Add -march=interaptiv.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
2
3         * config/mips/mips-cpus.def (interaptiv): Define.
4         * config/mips/mips-tables.opt: Regenerate.
5         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
6         -mips32r2.
7         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
8         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
9
10 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11
12         PR target/63521
13         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
14         (HONOR_REG_ALLOC_ORDER): Define.
15
16 2015-07-22  Richard Biener  <rguenther@suse.de>
17
18         PR tree-optimization/66952
19         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
20         blocks we end up executing unconditionally reset all SSA
21         info such as range and alignment.
22         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
23         * tree-ssanames.c (reset_flow_sensitive_info): New function.
24
25 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
26
27         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
28         typo in attribute.
29
30 2015-07-22  Richard Biener  <rguenther@suse.de>
31
32         * genmatch.c (parser::parse_result): Properly handle
33         match with result operands and conditions.
34
35 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
36
37         PR target/63870
38         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
39         Add qualifier_struct_load_store_lane_index.
40         (aarch64_types_loadstruct_lane_qualifiers): Use
41         qualifier_struct_load_store_lane_index for lane index argument for
42         last argument.
43         (aarch64_types_storestruct_lane_qualifiers): Ditto.
44         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
45         (aarch64_simd_expand_args): Add new argument describing mode of
46         builtin. Check lane bounds for arguments with
47         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
48         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
49         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
50         (aarch64_simd_expand_builtin): Handle arguments with
51         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
52         aarch64_simd_expand_args.
53         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
54         vst[234]_lane with BUILTIN_VALLDIF.
55         * config/aarch64/aarch64-simd.md:
56         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
57         endianness reversal on lane index.
58         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
59         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
60         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
61         (vec_store_lanesci_lane<mode>): Ditto.
62         (vec_store_lanesxi_lane<mode>): Ditto.
63         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
64         reversal of lane index.
65         (aarch64_ld3_lane<mode>): Ditto.
66         (aarch64_ld4_lane<mode>): Ditto.
67         (aarch64_st2_lane<mode>): Ditto.
68         (aarch64_st3_lane<mode>): Ditto.
69         (aarch64_st4_lane<mode>): Ditto.
70         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
71         to qmode. Add new mode parameter. Update uses.
72         (__LD3_LANE_FUNC): Ditto.
73         (__LD4_LANE_FUNC): Ditto.
74         (__ST2_LANE_FUNC): Ditto.
75         (__ST3_LANE_FUNC): Ditto.
76         (__ST4_LANE_FUNC): Ditto.
77
78 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
79
80         * doc/invoke.texi (Language Independent Options): Rename node to
81         Diagnostic Message Formatting Options.
82
83 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
84
85         PR ipa/66424.
86         * lra-remat.c (operand_to_remat): Prevent using insns with input
87         subregs processed separately by IRA.
88
89 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
90
91         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
92         straight loops.
93         (single_imm_use): Check for iterator node.
94         (num_imm_uses): Likewise.
95         * tree-ssa-operands.c (has_zero_uses_1): Delete.
96         (single_imm_use_1): Check for iterator node.
97
98 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
99             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
100
101         * configure.ac: Add check for new options in isl-0.15.
102         * config.in, configure: Rebuilt.
103         * graphite-blocking.c: Include <isl/constraint.h>
104         * graphite-interchange.c,  graphite-poly.c: Likewise.
105         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
106         * graphite.c: Likewise.
107         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
108         <isl/union_set.h>.
109         * graphite-dependences.c: Include <isl/constraint.h>.
110         (max_number_of_out_dimensions): Returns isl_stat.
111         (extend_schedule_1): Likewise
112         (extend_schedule): Corresponding changes.
113         * graphite-optimize-isl.c: Include <isl/constraint.h> and
114         <isl/union_set.h>.
115         (getSingleMap): Change return type of isl_stat.
116         (optimize_isl): Conditionally use
117         isl_options_set_schedule_serialize_sccs.
118         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
119         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
120
121 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
122
123         PR target/66956
124         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
125         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
126
127 2015-07-21  Richard Biener  <rguenther@suse.de>
128
129         PR tree-optimization/66948
130         * genmatch.c (capture_info::walk_match): Also recurse to
131         captures.  Properly compute expr state from captures of
132         captures.
133         * match.pd: Add single-use guards to
134         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
135
136 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
137
138         * config/nvptx/mkoffload.c (process): Add static destructor call.
139
140 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
141
142         PR middle-end/66915
143         * match.pd (A - B -> A + (-B)): Don't allow folding
144         when type if a fixed-point type.
145
146 2015-07-20  DJ Delorie  <dj@redhat.com>
147
148         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
149         (iorqi3_real): Likewise for set1.
150
151 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
152
153         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
154         for !TARGET_64BIT.
155
156 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
157
158         * graphite-isl-ast-to-gimple.c:
159         Refactor so that each function can access 'region'. This will help
160         maintain a parameter rename_map within a region.
161
162 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
163
164         * config/rs6000/rs6000.md (*lt0_disi): New.
165
166 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
167
168         PR target/66217
169         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
170         "available letters" comment.
171         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
172         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
173         and_2rld_operand):  Delete.
174         (and_operand): Adjust.
175         (rotate_mask_operator): New.
176         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
177         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
178         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
179         extract_ME): Delete.
180         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
181         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
182         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
183         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
184         rs6000_emit_2insn_and): New.
185         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
186         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
187         includes_rldic_lshift_p, includes_rldicr_lshift_p,
188         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
189         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
190         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
191         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
192         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
193         rs6000_emit_2insn_and): New.
194         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
195         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
196         handling.
197         <NOT>: Don't fall through to next case.
198         <AND>: Handle the various rotate-and-mask cases directly.
199         <IOR>: Always cost as one insn.
200         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
201         (and<mode>3): Adjust expander for the new patterns.
202         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
203         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
204         (*and<mode>3_imm_dot_shifted): New.
205         (*and<mode>3_mask): Delete, rewrite as ...
206         (and<mode>3_mask): ... New.
207         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
208         (andsi3_internal0_nomc): Delete.
209         (*andsi3_internal6): Delete.
210         (*and<mode>3_2insn): New.
211         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
212         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
213         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
214         *insvdi_internal3): Delete.
215         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
216         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
217         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
218         *ior<mode>_mask): New.
219         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
220         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
221         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
222         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
223         Delete.
224         (ashr<mode>3): Delete expander.
225         (*ashr<mode>3): Rename to ...
226         (ashr<mode>3): ... This.
227         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
228         (*rotldi3_internal4, *rotldi3_internal5 and split,
229         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
230         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
231         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
232         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
233         (splitter for loading a mask): Adjust.
234         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
235
236 2015-07-20  Marek Polacek  <polacek@redhat.com>
237
238         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
239         output_add_clobbers, output_added_clobbers_hard_reg_p,
240         gen_rtx_scratch): Remove declarations.
241
242 2015-07-20  Marek Polacek  <polacek@redhat.com>
243
244         PR c++/55095
245         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
246
247 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
248
249         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
250         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
251
252 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
253
254         * combine.c (combine_simplify_rtx): Move simplification step
255         before various transformations/substitutions.
256
257 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
258
259         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
260         (struct int_traits): Likewise.
261
262 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
263
264         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
265         function to vmsdbgout_function_decl.
266
267 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
268
269         PR target/66922
270         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
271         from misaligned positions.
272         (ix86_expand_pinsr): Reject insertions to misaligned positions.
273
274 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
275
276         PR middle-end/46851
277         PR middle-end/60340
278         * Makefile.in: Removed omega.o.
279         * common.opt: Document flag fcheck-data-deps as deprecated.
280         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
281         its associated params: omega-max-vars, omega-max-geqs,
282         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
283         omega-max-keys, omega-eliminate-redundant-constraints.
284         * doc/loop.texi: Remove all the section on Omega.
285         * graphite-blocking.c: Include missing params.h: it used to be
286         included through tree-data-ref.h and omega.h.
287         * graphite-isl-ast-to-gimple.c: Same.
288         * graphite-optimize-isl.c: Same.
289         * graphite-sese-to-poly.c: Same.
290         * graphite.c: Same.
291         * omega.c: Remove.
292         * omega.h: Remove.
293         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
294         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
295         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
296         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
297         * passes.def: Remove pass_check_data_deps.
298         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
299         (dump_conflict_function): Same.
300         (dump_subscript): Same.
301         (print_direction_vector): Same.
302         (print_dir_vectors): Same.
303         (print_lambda_vector): Same.
304         (print_dist_vectors): Same.
305         (dump_data_dependence_relation): Same.
306         (dump_data_dependence_relations): Same.
307         (dump_dist_dir_vectors): Same.
308         (dump_ddrs): Same.
309         (init_omega_eq_with_af): Removed.
310         (omega_extract_distance_vectors): Removed.
311         (omega_setup_subscript): Removed.
312         (init_omega_for_ddr_1): Removed.
313         (init_omega_for_ddr): Removed.
314         (ddr_consistent_p): Removed.
315         (compute_affine_dependence): Do not use omega to check data
316         dependences.
317         (compute_data_dependences_for_bb): Removed.
318         (analyze_all_data_dependences): Removed.
319         (tree_check_data_deps): Removed.
320         * tree-data-ref.h: Do not include omega.h.
321         (compute_data_dependences_for_bb): Removed.
322         (tree_check_data_deps): Removed.
323         * tree-ssa-loop.c (pass_check_data_deps): Removed.
324         (make_pass_check_data_deps): Removed.
325         * tree-ssa-phiopt.c: Include params.h.
326         * tree-vect-data-refs.c: Same.
327         * tree-vect-slp.c: Same.
328
329 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
330
331         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
332         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
333         (mem->fpreg splitters): Ditto.
334         (general_operand->nonimmediate_operand splitter): Use explicit modes.
335         Disable DFmode for TARGET_64BIT.
336
337 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
338
339         PR target/66906
340         * config/i386/i386.c (ix86_expand_prologue): Replicate static
341         chain on the stack.
342
343 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
344
345         * config/nvptx/mkoffload.c (process): Constify host data.
346         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
347         Constify host data.
348         (generate_host_descr_file): Likewise.
349
350 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
351             Sebastian Pop  <s.pop@samsung.com>
352
353         PR middle-end/61929
354         * graphite-dependences.c (add_pdr_constraints): Renamed
355         pdr->extent to pdr->subscript_sizes.
356         * graphite-interchange.c (build_linearized_memory_access): Add
357         back all gcc_assert's that the "isl_int to isl_val conversion"
358         patch has removed.  Refactored.
359         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
360         * graphite-poly.c (new_poly_dr): Same.
361         (free_poly_dr): Same.
362         * graphite-poly.h (struct poly_dr): Same.
363         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
364         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
365         * graphite-scop-detection.h: Fix space.
366         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
367         back all gcc_assert's removed by a previous patch.
368         (wrap): Remove the_isl_ctx global variable that the same patch has
369         added.
370         (build_loop_iteration_domains): Same.
371         (add_param_constraints): Same.
372         (pdr_add_data_dimensions): Same.  Refactored.
373         (build_poly_dr): Renamed extent to subscript_sizes.
374
375 2015-07-17  Marek Polacek  <polacek@redhat.com>
376
377         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
378         * match.pd: ... here.
379
380 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
381
382         * config/nvptx/mkoffload.c (process): Constify target data.
383         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
384         Constify target data.
385         (generate_target_offloadend_file): Likewise.
386
387 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
388
389         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
390         to allow renaming of PHI arguments on edges incoming from outer
391         loop header, add corresponding check before start PHI iterator.
392         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
393         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
394         with true force_vectorize.  Set-up dominator for outer loop too.
395         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
396         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
397         was marked with force_vectorize and has restricted cfg.
398         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
399         inner loop.
400         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
401         do peeling for outer loops.
402
403 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
404             Matthias Klose  <doko@ubuntu.com>
405
406         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
407         build-sysroot, sysroot from the `Miscenalleous configure options' to
408         the `Directories' section and strip trailing `/' from with_sysroot.
409         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
410         * configure: Regenerated.
411
412 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
413
414         PR target/66824
415         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
416         (TARGET_HARD_DF_REGS): Ditto.
417         (TARGET_HARD_XF_REGS): Ditto.
418         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
419         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
420         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
421         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
422         (*movsf_internal): Add alternatives 16 and 17. Enable
423         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
424
425 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
426
427         PR rtl-optimization/66891
428         * calls.c (expand_call): Wrap precompute_register_parameters with
429         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
430
431 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
432
433         * config/nvptx/mkoffload.c (process): Constify mapping variables.
434         Define target data struct and initialize it.
435
436 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
437
438         PR rtl-optimization/66626
439         * ira.h (emit-rtl.h): Include.
440         (non_spilled_static_chain_regno_p): New.
441         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
442         unless it is non spilled static chain pseudo.
443         (assign_hard_rego): Spill memory profitable allocno unless it is
444         non spilled static chain pseudo.
445         (allocno_spill_priority_compare): Put non spilled static chain
446         pseudo at the end of sorted array.
447         (improve_allocation): Do nothing if we have static chain and
448         non-local goto.
449         (allocno__priority_compare_func): Put non spilled static chain
450         pseudo at the beginning of sorted array.
451         (move_spill_restore): Ignore non spilled static chain pseudo.
452         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
453         to non spilled static chain pseudo.
454         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
455         pseudo at the beginning of sorted array.
456         (spill_for): Spill non spilled static chain pseudo last.
457         * lra-constraints.c (lra_constraints): Remove static chain pseudo
458         check for equivalence.
459
460 2015-07-16  Martin Liska  <mliska@suse.cz>
461
462         PR ipa/66896.
463         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
464         dst_ctx if it does not exist.
465
466 2015-07-16  Martin Liska  <mliska@suse.cz>
467
468         * hash-set.h (remove): New function.
469         (iterator): New iteration class for hash_set.
470
471 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
472
473         * genattrtab.c (make_canonical): Add a file_location parameter.
474         Use fatal_at rather than fatal.
475         (get_attr_value): Likewise.  Update call to make_canonical.
476         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
477         (make_internal_attr): Update calls accordingly.
478
479 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
480
481         * read-md.h (message_with_line, error_with_line): Delete.
482         * read-md.c (message_with_line, error_with_line): Delete.
483         * gensupport.h: Include read-md.h.
484         (md_rtx_info): New structure.
485         (read_md_rtx): Use it.  Return a bool success value.
486         * gensupport.c (read_md_rtx): Likewise.
487         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
488         (main): Update after interface changes.
489         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
490         (main): Update after interface changes.
491         * genattrtab.c (insn_code_number): Delete.
492         (optimize_attrs): Add a max_insn_code parameter and use it instead
493         of insn_code_number.
494         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
495         Use *_at rather than *_with_line functions.
496         (gen_insn): Likewise.
497         (gen_delay): Likewise.
498         (gen_insn_reserv): Likewise.
499         (gen_bypass): Take an md_rtx_info rather than an rtx.
500         (main): Update after interface changes.  Use a local max_insn_code
501         variable instead of insn_code_number.
502         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
503         an rtx.  Use fatal_at rather than fatal.
504         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
505         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
506         (gen_absence_set, gen_final_absence_set, gen_automaton)
507         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
508         (main): Update after interface changes.
509         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
510         and code number.
511         (main): Update after interface changes.
512         * genconditions.c (main): Use new read_md_rtx interface.
513         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
514         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
515         (main): Update after interface changes.
516         * genemit.c (insn_code_number, insn_index_number): Delete.
517         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
518         Use fatal_at rather than fatal.
519         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
520         rather than fatal.
521         (gen_split): Likewise.
522         (main): Update after interface changes.
523         * genextract.c (line_no): Delete.
524         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
525         Update call to walk_rtx.
526         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
527         rather than message_with_line.
528         (walk_rtx): Add an md_rtx_info argument.  Update call to
529         VEC_safe_set_locstr.
530         (main): Update after interface changes.
531         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
532         and lineno.  Use error_at rather than separate message_with_line
533         calls and have_error assignments.
534         (main): Update after interface changes.
535         * genmddump.c (main): Use new read_md_rtx interface.
536         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
537         (main): Update after interface changes.
538         * genoutput.c (next_code_number): Delete.
539         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
540         (gen_peephole, gen_expand, gen_split): Likewise.
541         (note_constraint): Likewise.  Use *_at rather than *_with_line
542         functions.
543         (main): Update after interface changes.
544         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
545         rtx and lineno.
546         (main): Update after interface changes.
547         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
548         than an rtx and lineno.
549         (process_define_constraint): Likewise.
550         (process_define_register_constraint): Likewise.
551         (main): Update after interface changes.
552         * genrecog.c (next_insn_code, pattern_lineno): Delete.
553         (validate_pattern): Replace top-level rtx with an md_rtx_info.
554         Use *_at rather than *_with_line functions.
555         (match_pattern_2): Likewise.
556         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
557         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
558         Use *_at rather than *_with_line functions.
559         * gentarget-def.c (add_insn): New function.
560         (main): Use it.  Use new read_md_rtx interface.
561
562 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
563
564         * gensupport.h (compute_test_codes): Take a file_location rather
565         than a line number.
566         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
567         rather than *_with_line functions.
568         (process_define_predicate): Update call to compute_test_codes.
569         * genpreds.c (validate_exp): Take a file_location rather than a
570         line number.  Use *_at functions rather than *_with_line functions.
571         (process_define_predicate): Update call to validate_exp.
572         (constraint_data): Replace lineno field with a file_location.
573         (add_constraint): Take a file_location rather than a line number.
574         Use *_at functions rather than *_with_line functions.  Fix error
575         message for address constraints.  Update after changes to
576         validate_exp, constraint_data and compute_test_codes.
577         (process_define_constraint): Update accordingly.
578         (process_define_register_constraint): Likewise.
579
580 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
581
582         * genoutput.c (data): Use a file_location to record the source
583         position.
584         (nothing): Delete.
585         (idata, idata_end): Remove initialization.
586         (constraint_data): Replace lineno with a file_location.
587         (output_insn_data): Update after changes to data.
588         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
589         (scan_operands): Likewise, using *_at rather than *_with_line
590         functions.
591         (process_template): Likewise.
592         (validate_insn_alternatives): Likewise.
593         (validate_insn_operands): Likewise.
594         (validate_optab_operands): Likewise.
595         (init_insn_for_nothing): Initialize idata and idata_end.
596         (note_constraint): Update after changes to constraint_data,
597         using at rather than with_line functions.
598         (mdep_constraint_len): Take a file_location rather than a
599         line number.  Use at rather than with_line functions.
600
601 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
602
603         * read-md.h (fatal_at): Declare.
604         * read-md.c (fatal_at): New function.
605         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
606         to record the source position.
607         (check_attr_test): Take a file_location instead of a line number.
608         Use fatal_at instead of fatal.
609         (check_attr_value): Update after above changes, using "at"
610         rather than "with_line" reporting functions.
611         (convert_set_attr_alternative): Likewise.
612         (gen_attr): Likewise.
613         (check_defs): Likewise.  Don't assign to read_md_filename.
614         (gen_insn): Update initialization after above changes.
615         (gen_delay): Likewise.
616         (write_insn_cases): Print the filename for a define_peephole.
617         (gen_insn_reserv): Take a line number as argument and update
618         the call to check_attr_test.
619         (main): Pass a line number to gen_insn_reserv.
620
621 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
622
623         * read-md.h (file_location): New structure.
624         (directive_handler_t): Take a file_location rather than a line number.
625         (message_at, error_at): Declare.
626         (read_skip_construct): Delete.
627         * read-md.c (message_with_line_1): Replace with...
628         (message_at_1): ...this new function.
629         (message_at, error_at): New functions.
630         (message_with_line, error_with_line): Update to use message_at_1.
631         (handle_enum): Take a file_location rather than a line number
632         and use error_at for error reporting.
633         (handle_include): Likewise.
634         (read_skip_construct): Likewise.  Make static.
635         (handle_file): Update after above changes.  Pass a file_location
636         rather than a line number to handle_directive.
637         * gensupport.c (queue_elem): Replace separate filename and lineno
638         with a file_location.
639         (queue_pattern): Replace filename and lineno arguments with a
640         file_location.  Update after change to queue_elem.
641         (process_define_predicate): Replace lineno argument with a
642         file_location and use error_at for error reporting.  Update
643         after above changes.
644         (process_rtx): Likewise.
645         (subst_pattern_match): Likewise.
646         (get_alternatives_number): Likewise.
647         (alter_predicate_for_insn): Likewise.
648         (rtx_handle_directive): Likewise.
649         (is_predicable): Update after above changes, using error_at rather
650         than error_with_line.
651         (has_subst_attribute): Likewise.
652         (identify_predicable_attribute): Likewise.
653         (alter_attrs_for_subst_insn): Likewise.
654         (process_one_cond_exec): Likewise.
655         (process_substs_on_one_elem): Likewise.
656         (process_define_subst): Likewise.
657         (check_define_attr_duplicates): Likewise.
658         (read_md_rtx): Update after change to queue_elem.
659
660 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
661
662         * genoutput.c (next_index_number): Delete.
663         (data): Remove index_number.
664         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
665         (main): Remove manipulation of next_index_number.
666
667 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
668
669         * genattrtab.c (check_attr_value): Remove handling of null attrs.
670         (make_canonical): Likewise.
671
672 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
673
674         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
675         instead of adjust_address_nv.
676         (restore_stack_nonlocal): Likewise.
677         (nonlocal_goto): Likewise.
678
679 2015-07-16  Tom de Vries  <tom@codesourcery.com>
680
681         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
682         not have a corresponding loop header phi.
683
684 2015-07-16  Tom de Vries  <tom@codesourcery.com>
685
686         * tree-parloops.c (create_loads_for_reductions): Handle case that
687         reduction is unused.
688
689 2015-07-16  Richard Biener  <rguenther@suse.de>
690
691         PR tree-optimization/66894
692         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
693         about deriving NE_EXPR from truncated values.
694
695 2015-07-16  Martin Liska  <mliska@suse.cz>
696
697         * alloc-pool.h
698         (object_allocator): Add new class.
699         (pool_allocator::initialize): Use the underlying class.
700         (pool_allocator::allocate): Likewise.
701         (pool_allocator::remove): Likewise.
702         (operator new): A new generic allocator.
703         * asan.c (struct asan_mem_ref): Remove unused members.
704         (asan_mem_ref_new): Replace new operator with
705         object_allocator::allocate.
706         (free_mem_ref_resources): Change deallocation.
707         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
708         with object_allocator.
709         * config/sh/sh.c (add_constant): Replace new operator with
710         object_allocator::allocate.
711         (sh_reorg): Change call to a release method.
712         * cselib.c (struct elt_list): Remove unused members.
713         (new_elt_list): Replace new operator with
714         object_allocator::allocate.
715         (new_elt_loc_list): Likewise.
716         (new_cselib_val): Likewise.
717         (unchain_one_elt_list): Change delete operator with remove method.
718         (unchain_one_elt_loc_list): Likewise.
719         (unchain_one_value): Likewise.
720         (cselib_finish): Release newly added static allocators.
721         * cselib.h (struct cselib_val): Remove unused members.
722         (struct elt_loc_list): Likewise.
723         * df-problems.c (df_chain_alloc): Replace pool_allocator with
724         object_allocator.
725         * df-scan.c (struct df_scan_problem_data): Likewise.
726         (df_scan_alloc): Likewise.
727         * df.h (struct dataflow): Likewise.
728         * dse.c (struct read_info_type): Likewise.
729         (struct insn_info_type): Likewise.
730         (struct dse_bb_info_type): Likewise.
731         (struct group_info): Likewise.
732         (struct deferred_change): Likewise.
733         (get_group_info): Likewise.
734         (delete_dead_store_insn): Likewise.
735         (free_read_records): Likewise.
736         (replace_read): Likewise.
737         (check_mem_read_rtx): Likewise.
738         (scan_insn): Likewise.
739         (dse_step1): Likewise.
740         (dse_step7): Likewise.
741         * et-forest.c (struct et_occ): Remove unused members.
742         (et_new_occ): Use allocate instead of new operator.
743         (et_new_tree): Likewise.
744         (et_free_tree): Call release method explicitly.
745         (et_free_tree_force): Likewise.
746         (et_free_pools): Likewise.
747         (et_split): Use remove instead of delete operator.
748         * et-forest.h (struct et_node): Remove unused members.
749         * ipa-cp.c: Change pool_allocator to object_allocator.
750         * ipa-inline-analysis.c: Likewise.
751         * ipa-profile.c: Likewise.
752         * ipa-prop.c: Likewise.
753         * ipa-prop.h: Likewise.
754         * ira-build.c (initiate_cost_vectors): Cast return value.
755         (ira_allocate_cost_vector): Likewise.
756         * ira-color.c (struct update_cost_record): Remove unused members.
757         * lra-int.h (struct lra_live_range): Likewise.
758         (struct lra_copy): Likewise.
759         (struct lra_insn_reg): Likewise.
760         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
761         * lra.c (new_insn_reg): Replace new operator with allocate method.
762         (free_insn_regs): Same for operator delete.
763         (finish_insn_regs): Release new static allocator.
764         (finish_insn_recog_data): Likewise.
765         (lra_free_copies): Replace delete operator with remove method.
766         (lra_create_copy): Replace operator new with allocate method.
767         (invalidate_insn_data_regno_info): Same for remove method.
768         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
769         (free_debug_insn_changes): Replace delete operator with remove method.
770         (replace_oldest_value_reg): Replace operator new with allocate method.
771         (pass_cprop_hardreg::execute): Release new static variable.
772         * sched-deps.c (sched_deps_init): Change pool_allocator to
773         object_allocator.
774         * sel-sched-ir.c: Likewise.
775         * sel-sched-ir.h: Likewise.
776         * stmt.c (expand_case): Likewise.
777         (expand_sjlj_dispatch_table): Likewise.
778         * tree-sra.c (struct access): Remove unused members.
779         (struct assign_link): Likewise.
780         (sra_deinitialize): Release newly added static pools.
781         (create_access_1):Replace operator new with allocate method.
782         (build_accesses_from_assign): Likewise.
783         (create_artificial_child_access): Likewise.
784         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
785         pool_allocator to object_allocator.
786         * tree-ssa-pre.c: Likewise.
787         * tree-ssa-reassoc.c: Likewise.
788         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
789         * tree-ssa-strlen.c: Likewise.
790         * tree-ssa-structalias.c: Likewise.
791         * var-tracking.c (onepart_pool_allocate): New function.
792         (unshare_variable): Use the newly added function.
793         (variable_merge_over_cur): Likewise.
794         (variable_from_dropped): Likewise.
795         (variable_was_changed): Likewise.
796         (set_slot_part): Likewise.
797         (emit_notes_for_differences_1): Likewise.
798         (vt_finalize): Release newly added static pools.
799
800 2015-07-16  Martin Jambor  <mjambor@suse.cz>
801
802         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
803         all uses.  Fix two typos in its general comment.
804         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
805
806 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
807
808         * config/i386/linux-common.h (LINK_MPX): New.
809         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
810         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
811         indicating '-z bndplt' support by linker.
812         * configure: Regenerate.
813         * config.in: Regenerate.
814
815 2015-07-16  Richard Biener  <rguenther@suse.de>
816
817         * fold-const.c (fold_widened_comparison): Remove.
818         (fold_sign_changed_comparison): Likewise.
819         (fold_comparison): Move widened and sign-changed comparison
820         simplification ...
821         * match.pd: ... to patterns here.
822         * generic-match-head.c: Include target.h.
823         * gimple-match-head.c: Likewise.
824
825 2015-07-16  Richard Biener  <rguenther@suse.de>
826
827         * tree-ssa-dom.c (dom_valueize): New function.
828         (record_temporary_equivalences): Also record equivalences
829         for dominating stmts that have uses of equivalences we are
830         about to record.
831
832 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
833
834         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
835         add_autoinc_candidates.
836         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
837         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
838         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
839         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
840         Call new function.
841         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
842         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
843         Remove parameter struct iv*.  Call add_autoinc_candidates here.
844         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
845         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
846         Call new function.
847         (find_iv_candidates): Call new functions.
848
849 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
850
851         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
852         uninitialized-variable warning.
853
854 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
855
856         PR target/65249
857         * config/sh/sh.md (movdi): Split simple reg move to two movsi
858         when the destination is R0.
859
860 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
861
862         PR target/66866
863         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
864         * config/i386/i386.c (ix86_expand_pextr): New function.
865         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
866         for non-lowpart subregs.
867         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
868         (insv<mode>): Use SWI248 mode iterator.
869         (insv<mode>_1): Ditto.
870
871 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
872             Sebastian Pop  <s.pop@samsung.com>
873
874         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
875         iterator to use_stmt.
876
877 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
878             Sebastian Pop <s.pop@samsung.com>
879
880         * graphite-scop-detection.c (build_scops_1): Discard scops for
881         which entry==exit.
882
883 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
884             Sebastian Pop <s.pop@samsung.com>
885
886         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
887         case of a return statement in scop.
888
889 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
890             Sebastian Pop <s.pop@samsung.com>
891
892         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
893         INTEGER_TYPE parameters.
894         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
895         VECTOR_CST in scan_tree_for_params.
896         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
897
898 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
899
900         * gimple-pretty-print.h: Don't include pretty-print.h.
901         * tree-streamer.h: Don't include lto-streamer.h.
902         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
903         * gimple-streamer-in.c: Remove redundant includes.
904         * gimple-streamer-out.c: Likewise.
905         * ipa-devirt.c: Likewise.
906         * ipa-icf.c: Likewise.
907         * ipa-inline-analysis.c: Likewise.
908         * ipa-polymorphic-call.c: Likewise.
909         * ipa-profile.c: Likewise.
910         * ipa-prop.c: Likewise.
911         * ipa-pure-const.c: Likewise.
912         * lto-cgraph.c: Likewise.
913         * lto-streamer-in.c: Likewise.
914         * lto-streamer-out.c: Likewise.
915         * lto-streamer.c: Likewise.
916         * tree-streamer-in.c: Likewise.
917         * tree-streamer-out.c: Likewise.
918         * tree-streamer.c: Likewise.
919
920 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
921
922         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
923         include input.h.
924         * opts.c: Remove multiline #include comment.
925
926 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
927
928         * config/nvptx/mkoffload.c (process): Add C++ protection to
929         emitted code.
930
931 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
932
933         PR target/66854
934         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
935         null before IEEE 128-bit floating point support patch.
936
937 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
938
939         * simplify-rtx.c (simplify_ternary_operation): Add simplification
940         for (!c) != {0,...,0} ? a : b for vector modes.
941
942 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
943             Martin Jambor  <mjambor@suse.cz>
944
945         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
946         struct func_body_info* instead of struct ipa_node_params*, expecting
947         fbi->info to be filled in.  Replace throughout.  Adjust call to
948         ipa_load_from_parm_agg.
949         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
950         instead of struct ipa_node_params*.  Adjust calls to other functions
951         so that they pass either fbi or fbi->info.
952         (set_switch_stmt_execution_predicate): Likewise.
953         (will_be_nonconstant_predicate): Likewise.
954         (compute_bb_predicates): Likewise.
955         (estimate_function_body_sizes): Move asserts earlier.  Fill in
956         struct func_body_info, replace parms_info with fbi.info.  Adjust
957         calls to functions that now accept struct func_body_info.
958         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
959         (struct func_body_info): Likewise.
960         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
961         remove static.  Adjust callers.
962         (ipa_load_from_parm_agg): Remove.
963         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
964         (func_body_info): Likewise.
965         (ipa_load_from_parm_agg): Adjust prototype.
966
967 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
968
969         * gensupport.c (rtx_handle_directive): Adjust.
970         * read-rtl.c (apply_iterators): Take vector to add rtxs to
971         instead of expr list rtx.
972         (add_define_attr_for_define_subst): Likewise.
973         (add_define_subst_attr): Likewise.
974         (read_subst_mapping): Likewise.
975         (read_rtx): Likewise.
976         * rtl.h (read_rtx): Adjust.
977
978 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
979
980         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
981
982 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
983
984         PR target/58066
985         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
986         (*tls_local_dynamic_base_64_<mode>): Ditto.
987         (*tls_local_dynamic_base_64_largepic): Ditto.
988         (tls_global_dynamic_64_<mode>): Update expander pattern.
989         (tls_local_dynamic_base_64_<mode>): Ditto.
990
991 2015-07-15  Richard Biener  <rguenther@suse.de>
992
993         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
994         and bool_var == 1 -> bool_var simplifications ...
995         * match.pd: ... to patterns here.  Factor out negate_expr_p
996         cases from the A - B -> A + (-B) patterns as negate_expr_p
997         predicate and add a -(A + B) -> (-B) - A pattern.
998
999 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1000
1001         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
1002
1003 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1004             Robert Suchanek  <robert.suchanek@imgtec.com>
1005
1006         * config/mips/mips.c (mips_int_mask): New enum.
1007         (mips_shadow_set): Likewise.
1008         (int_mask): New variable.
1009         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
1010         (machine_function): Add int_mask and use_shadow_register_set.
1011         (mips_attribute_table): Add attribute handlers for interrupt and
1012         use_shadow_register_set.
1013         (mips_interrupt_mask): New static function.
1014         (mips_handle_interrupt_attr): Likewise.
1015         (mips_handle_use_shadow_register_set_attr): Likewise.
1016         (mips_use_shadow_register_set): Change return type to enum
1017         mips_shadow_set.  Add argument handling for use_shadow_register_set
1018         attribute.
1019         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
1020         compare with mips_shadow_set enum.
1021         (mips_compute_frame_info): Add interrupt mask and
1022         use_shadow_register_set to per-function information structure.
1023         Add a stack slot for EPC unconditionally.
1024         (mips_expand_prologue): Compare use_shadow_register_set value
1025         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
1026         masked interrupt register but in EIC mode use K0 and save Cause in K0.
1027         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
1028         copying the stack pointer from the shadow register set.
1029         * config/mips/mips.h (SR_IM0): New define.
1030         * config/mips/mips.md (mips_rdpgpr): Rename to...
1031         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
1032         * doc/extend.texi (Declaring Attributes of Functions): Document
1033         optional arguments for interrupt and use_shadow_register_set
1034         attributes.
1035
1036 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1037
1038         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
1039         interrupt attribute.
1040         (mips_expand_prologue): Disable the floating point unit in an ISR.
1041         * config/mips/mips.h (SR_COP1): New define.
1042
1043 2015-07-15  Richard Biener  <rguenther@suse.de>
1044
1045         * genmatch.c (parser::peek, parser::peek_ident): Add argument
1046         to tell how many tokens to peek ahead (default 1).
1047         (parser::eat_token, parser::eat_ident): Return token consumed.
1048         (parser::parse_result): Parse new switch statement.
1049         * match.pd: Use case statements where appropriate.
1050
1051 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1052
1053         PR rtl-optimization/58066
1054         * calls.c (expand_call): Precompute register parameters before stack
1055         alignment is performed.
1056
1057 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1058
1059         PR rtl-optimization/66838
1060         * postreload.c (reload_cse_move2add): Also process
1061         CALL_INSN_FUNCTION_USAGE when resetting information of
1062         call-clobbered registers.
1063
1064 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1065             Cesar Philippidis  <cesar@codesourcery.com>
1066             Chung-Lin Tang  <cltang@codesourcery.com>
1067
1068         * config/nios2/constraints.md (U, v): New constraints.
1069         * config/nios2/predicates.md (rdprs_dcache_operand): New.
1070         (ldstex_memory_operand): New.
1071         * config/nios2/sync.md: New file.
1072         * config/nios2/nios2.md (unspecv): Add new builtin function
1073         UNSPECV codes.
1074         (rdprs, flushd, flushda, wrpie, eni): New patterns.
1075         (top-level): Include sync.md.
1076         * config/nios2/nios2.c (N2_FTYPES): Add function types for
1077         new builtins.
1078         (N2_BUILTINS): Add arch field setting, add new builtins.
1079         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1080         for arch field.
1081         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1082         Also handle ldex/stex/ldsex/stsex builtins.
1083         (nios2_expand_rdprs_builtin): New function.
1084         (nios2_expand_cache_builtin): New function.
1085         (nios2_expand_wrpie_builtin): New function.
1086         (nios2_expand_eni_builtin): New function.
1087         (nios2_expand_builtin): Add arch field handling and new builtin
1088         cases.
1089         * doc/extend.texi (Altera Nios II Built-in Functions): Document
1090         new builtins.
1091         * doc/md.texi (Machine Constraints): Document U and v constraints.
1092
1093 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1094             Cesar Philippidis  <cesar@codesourcery.com>
1095             Chung-Lin Tang  <cltang@codesourcery.com>
1096
1097         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1098         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1099         callee_save_reg_size and uses_anonymous_args fields.
1100         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1101         (nios2_create_cfa_notes): New function.
1102         (nios2_adjust_stack): New function for adjusting stack.
1103         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1104         Use nios2_adjust_stack.
1105         (nios2_expand_epilogue): Likewise.
1106         (nios2_expand_return): New function.
1107         (nios2_can_use_return_insn): Update for CDX pop.n usage.
1108         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1109         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1110         * config/nios2/nios2.md (return): Use nios2_expand_return.
1111
1112 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1113             Cesar Philippidis  <cesar@codesourcery.com>
1114             Chung-Lin Tang  <cltang@codesourcery.com>
1115
1116         * config/nios2/predicates.md (pop_operation): New.
1117         (ldwm_operation, stwm_operation): New.
1118         (nios2_hard_register_operand): New.
1119         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1120         (ldstwm_operation_p): Declare.
1121         (gen_ldstwm_peep): Declare.
1122         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1123         (base_reg_adjustment_p): New.
1124         (pop_operation_p): New.
1125         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1126         (nios2_ldstwm_regset_p): New.
1127         (ldstwm_operation_p): New.
1128         (gen_ldst): New.
1129         (nios2_ldst_parallel): New.
1130         (struct ldswm_operand): Declare.
1131         (compare_ldstwm_operands): New.
1132         (can_use_cdx_ldstw): New.
1133         (gen_ldstwm_peep): New.
1134         * config/nios2/nios2-ldstwm.sml: New.
1135         * config/nios2/nios2.md: Include ldstwm.md.
1136         * config/nios2/ldstwm.md: Generated.
1137
1138 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1139             Cesar Philippidis  <cesar@codesourcery.com>
1140             Chung-Lin Tang  <cltang@codesourcery.com>
1141
1142         * config/nios2/nios2.h (LABEL_ALIGN): Define.
1143         (REG_ALLOC_ORDER): Define.
1144         (ADJUST_REG_ALLOC_ORDER): Define.
1145         (HONOR_REG_ALLOC_ORDER): Define.
1146         (CDX_REG_P): Define.
1147         (ANDCLEAR_INT): Define.
1148         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1149         (nios2_label_align): Declare.
1150         (nios2_cdx_narrow_form_p): Declare.
1151         (nios2_adjust_reg_alloc_order): Declare.
1152         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1153         operation.
1154         (nios2_large_unspec_reloc_p): New function, split from...
1155         (nios2_legitimate_pic_operand_p): ...here.
1156         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1157         (nios2_print_operand_punct_valid_p): New.
1158         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1159         (split_mem_address): New.
1160         (split_alu_insn): New.
1161         (cdxreg): New.
1162         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1163         (enum nios2_add_insn_kind): New.
1164         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1165         (nios2_add_insn_classify): New.
1166         (nios2_add_insn_asm): New.
1167         (nios2_cdx_narrow_form_p): New.
1168         (label_align, min_labelno, max_labelno): New.
1169         (nios2_reorg): New.
1170         (nios2_label_align): New.
1171         (nios2_adjust_reg_alloc_order): New.
1172         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1173         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1174         * config/nios2/constraints.md (P): New constraint.
1175         * config/nios2/predicates.md (const_and_operand): New.
1176         (and_operand): New.
1177         (stack_memory_operand): New.
1178         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1179         (length): Update to use nios2_cdx_narrow_form_p().
1180         (type): Add new insn type values.
1181         (control, alu, st, ld, shift): Update insn reservations with
1182         new insn type values.
1183         (*high, *lo_sum): Define new insn patterns for constant generation.
1184         (movqi_internal, movhi_internal, movsi_internal): Reduce
1185         alternatives, update asm template to handle CDX variants, update
1186         type attributes.
1187         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1188         template, update type attributes.
1189         (extendhisi2, extendqi<mode>2): Likewise.
1190         (addsi3): Change to use function for asm string.
1191         (subsi3): Add CDX notation to asm template, update type attributes.
1192         (negsi3, one_cmplsi3): Likewise.
1193         (andsi3): New pattern, specialized from logical patterns.
1194         (<code>si3): Remove and case, combine alternatives, update asm
1195         template.
1196         (<shift_op>si3): Add CDX notation, update type attributes.
1197         (rotrsi3): Update type attribute.
1198         (*merge, extzv, insv): New insn patterns.
1199         (return): Change to define_expand.
1200         (simple_return): Add CDX notation, update type attributes.
1201         (indirect_jump): Add CDX notation.
1202         (jump): Update asm cases, update length attribute expression.
1203         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1204         (nios2_cbranch): Update asm cases and length attribute expression
1205         to handle CDX variants.
1206         (nios2_cmp<code>): Update asm template.
1207         (nop): Add CDX notation, update type attributes.
1208         (trap): Add CDX notation.
1209         (ctrapsi4): Update asm cases and length attribute expression to
1210         handle CDX variant.
1211         * doc/md.texi (Machine Constraints): Document P constraint.
1212
1213 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1214             Cesar Philippidis  <cesar@codesourcery.com>
1215             Chung-Lin Tang  <cltang@codesourcery.com>
1216
1217         * config/nios2/nios2.h (SMALL_INT12): New macro.
1218         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1219         (nios2_valid_addr_expr_p): Use it.
1220         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1221         with implicit "io" instructions on R2.
1222         * config/nios2/constraints.md (w): New constraint.
1223         * config/nios2/predicates.md (ldstio_memory_operand): New.
1224         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1225         operand predicate and constraint.
1226         (ld<bh>io_signed, st<bhw>io>): Likewise.
1227         * doc/md.texi (Machine Constraints): Document w constraint.
1228
1229 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1230             Cesar Philippidis  <cesar@codesourcery.com>
1231             Chung-Lin Tang  <cltang@codesourcery.com>
1232
1233         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1234         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1235         Nios II architecture level.
1236         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1237         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1238         (OPTION_DEFAULT_SPECS): Define.
1239         (ASM_SPEC): Add -march= spec strings.
1240         * config/nios2/nios2.c (nios2_option_override): Check for
1241         conflicts involving new options.
1242         * config.gcc (nios2*-*-*): Support --with-arch=.
1243         * doc/invoke.texi (Option Summary, Nios II Options): Document
1244         -march=, -mbmx, and -mcdx.
1245
1246 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1247
1248         PR rtl-optimization/66626
1249         * lra-constraints.c (lra_constraints): Prevent equivalence
1250         substitution for static chain pseudo in functions with nonlocal
1251         goto.
1252
1253 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1254
1255         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1256         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1257         -fstack-limit-symbol as well as -fstack-limit-register.
1258         (nios2_expand_prologue): Emit only a single stack limit check,
1259         even if multiple stack adjustments are required.
1260         (nios2_option_override): Diagnose unsupported combination of -fpic
1261         and -stack-limit-symbol.
1262
1263 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1264
1265         * Makefile.in (top_srcdir): New.
1266         * configure.ac: Use AM_ZLIB.
1267         * configure: Regeneated.
1268
1269 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1270
1271         PR target/66840
1272         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1273
1274 2015-07-14  Richard Biener  <rguenther@suse.de>
1275
1276         PR tree-optimization/66863
1277         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1278         what we record for conversion use stmt lhs inequalities.
1279
1280 2015-07-14  Richard Biener  <rguenther@suse.de>
1281
1282         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1283         (decision_tree::gen_gimple): Likewise.
1284
1285 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1286
1287         * gcc.c (greater_than_spec_func): Declare forward.
1288         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1289         -ftree-parallelize-loops={0,1}.
1290         (static_spec_functions): Add greater_than_spec_func function with name
1291         "gt".
1292         (greater_than_spec_func): New function.
1293
1294 2015-07-14  Richard Biener  <rguenther@suse.de>
1295
1296         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1297         wideing type conversion case from record_equivalences_from_incoming_edge
1298         and use record_equality to record equivalences.
1299         (record_equivalences_from_incoming_edge): Call
1300         record_temporary_equivalences.
1301
1302 2015-07-14  Richard Biener  <rguenther@suse.de>
1303
1304         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1305         (struct if_expr): New.
1306         (struct with_expr): Likewise.
1307         (is_a_helper): Add helpers for if_expr and with_expr.
1308         (struct simplify): Add simplify_kind enum and member.  Remove
1309         ifexpr_vec member.
1310         (simplify::simplify): Adjust.
1311         (lower_commutative): Adjust.
1312         (lower_opt_convert): Likewise.
1313         (lower_cond): Likewise.
1314         (replace_id): Handle with_expr and if_expr.
1315         (lower_for): Adjust.
1316         (dt_simplify::gen_1): New recursive worker, split out from ...
1317         (dt_simplify::gen): ... here.  Deal with if and with expansion
1318         recursively.
1319         (capture_info::capture_info): Take context argument
1320         (capture_info::walk_result): Only analyze specific result.
1321         (parser::parse_result): New function.
1322         (parser::parse_simplify): Adjust to parse ifs with then end
1323         else case.
1324         (parser::parse_if): Simplify.
1325         (parser::parse_pattern): Pass down simplify kind.
1326         * match.pd: Convert if structure to new syntax.
1327
1328 2015-07-13  Marek Polacek  <polacek@redhat.com>
1329
1330         * rtl.c (rtx_equal_p_cb): Fix typo.
1331
1332 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1333
1334         * omega.h: Don't include config.h, don't include params.h again if
1335         omega.h has already been included.
1336         * graphite-poly.h: Include sese.h.
1337         * graphite.c: Don't include sese.h, remove needless includes and
1338         minimize includes outside #ifdef HAVE_isl block.
1339         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1340         and wrap entire file in #ifdef HAVE_isl
1341         * graphite-dependences.c: Likewise.
1342         * graphite-interchange.c: Likewise.
1343         * graphite-isl-ast-to-gimple.c: Likewise.
1344         * graphite-optimize-isl.c: Likewise.
1345         * graphite-poly.c: Likewise.
1346         * graphite-scop-detection.c: Likewise.
1347         * graphite-sese-to-poly.c: Likewise.
1348
1349 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1350
1351         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1352
1353 2015-07-13  Renlin Li  <renlin.li@arm.com>
1354
1355         PR rtl/66556
1356         * simplify-rtx.c (simplify_const_relational_operation): Add
1357         side_effects_p checks.
1358
1359 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1360
1361         * bitmap.h: Fix double word typos.
1362         * builtins.c: Same.
1363         * calls.c: Same.
1364         * cfgloopmanip.c: Same.
1365         * cgraph.c: Same.
1366         * cgraph.h: Same.
1367         * cgraphclones.c: Same.
1368         * combine.c: Same.
1369         * config/aarch64/aarch64-protos.h: Same.
1370         * config/aarch64/aarch64.c: Same.
1371         * config/aarch64/aarch64.md: Same.
1372         * config/arm/arm.md: Same.
1373         * config/arm/arm1020e.md: Same.
1374         * config/arm/arm1026ejs.md: Same.
1375         * config/arm/arm926ejs.md: Same.
1376         * config/arm/fa526.md: Same.
1377         * config/arm/fa606te.md: Same.
1378         * config/arm/fa626te.md: Same.
1379         * config/arm/fa726te.md: Same.
1380         * config/arm/fmp626.md: Same.
1381         * config/darwin.c: Same.
1382         * config/epiphany/epiphany.c: Same.
1383         * config/frv/frv.c: Same.
1384         * config/ft32/ft32.c: Same.
1385         * config/gnu-user.h: Same.
1386         * config/h8300/constraints.md: Same.
1387         * config/i386/i386.c: Same.
1388         * config/i386/i386.md: Same.
1389         * config/iq2000/iq2000.md: Same.
1390         * config/mips/mips.c: Same.
1391         * config/mmix/mmix.md: Same.
1392         * config/moxie/moxie.c: Same.
1393         * config/nds32/nds32.md: Same.
1394         * config/pa/pa.h: Same.
1395         * config/rs6000/aix.h: Same.
1396         * config/rs6000/rs6000.h: Same.
1397         * config/sh/sh.c: Same.
1398         * config/tilegx/tilegx.md: Same.
1399         * config/tilepro/gen-mul-tables.cc: Same.
1400         * cse.c: Same.
1401         * dbxout.c: Same.
1402         * doc/invoke.texi: Same.
1403         * dse.c: Same.
1404         * dwarf2out.c: Same.
1405         * final.c: Same.
1406         * gcc.c: Same.
1407         * genmatch.c: Same.
1408         * gimplify.c: Same.
1409         * hash-table.h: Same.
1410         * internal-fn.c: Same.
1411         * ipa-cp.c: Same.
1412         * ipa-devirt.c: Same.
1413         * ipa-icf.c: Same.
1414         * ipa-icf.h: Same.
1415         * ipa-profile.c: Same.
1416         * ipa-prop.c: Same.
1417         * ipa-prop.h: Same.
1418         * ira.c: Same.
1419         * omp-low.c: Same.
1420         * reg-stack.c: Same.
1421         * regcprop.c: Same.
1422         * reorg.c: Same.
1423         * rtl.h: Same.
1424         * sbitmap.h: Same.
1425         * tree-eh.c: Same.
1426         * tree-inline.c: Same.
1427         * tree-sra.c: Same.
1428         * tree-ssa-dom.c: Same.
1429         * tree-ssa-loop-ivopts.c: Same.
1430         * tree-ssa-structalias.c: Same.
1431         * tree-ssa-tail-merge.c: Same.
1432         * tree-ssa-ter.c: Same.
1433         * tree-ssa-threadupdate.c: Same.
1434         * tree-ssa-uninit.c: Same.
1435         * tree-ssanames.c: Same.
1436         * tree-vect-loop-manip.c: Same.
1437         * tree-vrp.c: Same.
1438         * tree.c: Same.
1439         * valtrack.c: Same.
1440         * vec.h: Same.
1441
1442 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1443
1444         PR middle-end/66726
1445         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1446         tree_ssa_phiopt_worker): Call it.
1447
1448 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1449
1450         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1451         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1452         REG_EQUAL note.
1453
1454 2015-07-11  Marek Polacek  <polacek@redhat.com>
1455
1456         PR middle-end/66353
1457         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1458         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1459         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1460         rather than bb_has_abnormal_call_pred.
1461         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1462         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1463         rather than bb_has_abnormal_call_pred.
1464
1465 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1466
1467         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1468         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1469         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1470         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1471         v850_legitimate_address_p): New functions.
1472         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1473
1474 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1475
1476         PR target/66819
1477         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1478         indirect sibcall with register arguments if register available
1479         for argument passing.
1480         (init_cumulative_args): Set cfun->machine->arg_reg_available
1481         to (cum->nregs > 0) or to true if function has a variable
1482         argument list.
1483         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1484         to false if cum->nregs <= 0.
1485         * config/i386/i386.h (machine_function): Add arg_reg_available.
1486
1487 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1488
1489         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1490         and gen_higpart instead of gen_rtx_SUBREG.
1491         * config/i386/i386.md
1492         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1493         (read-modify peephole2): Use gen_lowpart instead of
1494         gen_rtx_SUBREG for operand 5.
1495
1496 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1497
1498         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1499         generated files.
1500         * config/tilepro/mul-tables.c: Regenerate.
1501         * config/tilegx/mul-tables.c: Regenerate.
1502
1503 2015-07-10  Richard Biener  <rguenther@suse.de>
1504
1505         * fold-const.c (distribute_bit_expr): Remove.
1506         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1507         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1508         to A & (B | C) and simplifying A << C1 << C2 to ...
1509         * match.pd: ... patterns here.
1510
1511 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1512
1513         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1514         Mark mem as READONLY and NOTRAP for PIC symbol.
1515
1516 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1517
1518         * gimple-predict.h: New file.
1519         (gimple_predict_predictor, gimple_predict_set_predictor,
1520         gimple_predict_outcome, gimple_predict_set_outcome,
1521         gimple_build_predict): Relocate here.
1522         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1523         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1524         gimple-predict.h.
1525         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1526         * basic-block.h: Don't include cfghooks.h.
1527         * backend.h: Don't include predict.h.
1528         * cfghooks.h: Include predict.h.
1529         * gimple-pretty-print.c: Include gimple-predict.h.
1530         * gimplify.c: Likwise.
1531         * predict.c: Adjust includes.
1532         * tree-inline.c: Likewise.
1533         * asan.c: Likewise.
1534         * auto-inc-dec.c: Likewise.
1535         * auto-profile.c: Likewise.
1536         * bb-reorder.c: Likewise.
1537         * builtins.c: Likewise.
1538         * caller-save.c: Likewise.
1539         * calls.c: Likewise.
1540         * cfganal.c: Likewise.
1541         * cfgbuild.c: Likewise.
1542         * cfg.c: Likewise.
1543         * cfgcleanup.c: Likewise.
1544         * cfgexpand.c: Likewise.
1545         * cfghooks.c: Likewise.
1546         * cfgloopanal.c: Likewise.
1547         * cfgloop.c: Likewise.
1548         * cfgloopmanip.c: Likewise.
1549         * cfgrtl.c: Likewise.
1550         * cgraph.c: Likewise.
1551         * cgraphunit.c: Likewise.
1552         * combine.c: Likewise.
1553         * cprop.c: Likewise.
1554         * cse.c: Likewise.
1555         * dce.c: Likewise.
1556         * dojump.c: Likewise.
1557         * dse.c: Likewise.
1558         * except.c: Likewise.
1559         * expmed.c: Likewise.
1560         * expr.c: Likewise.
1561         * final.c: Likewise.
1562         * fold-const.c: Likewise.
1563         * function.c: Likewise.
1564         * fwprop.c: Likewise.
1565         * gcc-plugin.h: Likewise.
1566         * gcse.c: Likewise.
1567         * genattrtab.c: Likewise.
1568         * genemit.c: Likewise.
1569         * gengtype.c: Likewise.
1570         * genopinit.c: Likewise.
1571         * genoutput.c: Likewise.
1572         * genpreds.c: Likewise.
1573         * genrecog.c: Likewise.
1574         * gimple-fold.c: Likewise.
1575         * gimple-iterator.c: Likewise.
1576         * gimple-ssa-isolate-paths.c: Likewise.
1577         * gimple-ssa-strength-reduction.c: Likewise.
1578         * graph.c: Likewise.
1579         * graphite-blocking.c: Likewise.
1580         * graphite.c: Likewise.
1581         * graphite-dependences.c: Likewise.
1582         * graphite-interchange.c: Likewise.
1583         * graphite-isl-ast-to-gimple.c: Likewise.
1584         * graphite-optimize-isl.c: Likewise.
1585         * graphite-poly.c: Likewise.
1586         * graphite-scop-detection.c: Likewise.
1587         * graphite-sese-to-poly.c: Likewise.
1588         * haifa-sched.c: Likewise.
1589         * ifcvt.c: Likewise.
1590         * internal-fn.c: Likewise.
1591         * ipa-cp.c: Likewise.
1592         * ipa-profile.c: Likewise.
1593         * ipa-split.c: Likewise.
1594         * ipa-utils.c: Likewise.
1595         * ira-build.c: Likewise.
1596         * ira-color.c: Likewise.
1597         * ira-conflicts.c: Likewise.
1598         * ira-costs.c: Likewise.
1599         * ira-emit.c: Likewise.
1600         * ira-lives.c: Likewise.
1601         * jump.c: Likewise.
1602         * loop-doloop.c: Likewise.
1603         * loop-init.c: Likewise.
1604         * loop-invariant.c: Likewise.
1605         * loop-unroll.c: Likewise.
1606         * lower-subreg.c: Likewise.
1607         * lra-assigns.c: Likewise.
1608         * lra.c: Likewise.
1609         * lra-coalesce.c: Likewise.
1610         * lra-constraints.c: Likewise.
1611         * lra-lives.c: Likewise.
1612         * lto-cgraph.c: Likewise.
1613         * lto-streamer-in.c: Likewise.
1614         * mode-switching.c: Likewise.
1615         * modulo-sched.c: Likewise.
1616         * omp-low.c: Likewise.
1617         * optabs.c: Likewise.
1618         * passes.c: Likewise.
1619         * postreload.c: Likewise.
1620         * postreload-gcse.c: Likewise.
1621         * profile.c: Likewise.
1622         * recog.c: Likewise.
1623         * regstat.c: Likewise.
1624         * reload1.c: Likewise.
1625         * reorg.c: Likewise.
1626         * rtlanal.c: Likewise.
1627         * sched-ebb.c: Likewise.
1628         * sel-sched-ir.c: Likewise.
1629         * sese.c: Likewise.
1630         * shrink-wrap.c: Likewise.
1631         * simplify-rtx.c: Likewise.
1632         * stmt.c: Likewise.
1633         * store-motion.c: Likewise.
1634         * tracer.c: Likewise.
1635         * trans-mem.c: Likewise.
1636         * tree-call-cdce.c: Likewise.
1637         * tree-cfg.c: Likewise.
1638         * tree-cfgcleanup.c: Likewise.
1639         * tree-chkp.c: Likewise.
1640         * tree-complex.c: Likewise.
1641         * tree-eh.c: Likewise.
1642         * tree-if-conv.c: Likewise.
1643         * tree-loop-distribution.c: Likewise.
1644         * tree-outof-ssa.c: Likewise.
1645         * tree-parloops.c: Likewise.
1646         * tree-predcom.c: Likewise.
1647         * tree-pretty-print.c: Likewise.
1648         * tree-profile.c: Likewise.
1649         * tree-sra.c: Likewise.
1650         * tree-ssa.c: Likewise.
1651         * tree-ssa-coalesce.c: Likewise.
1652         * tree-ssa-dce.c: Likewise.
1653         * tree-ssa-dom.c: Likewise.
1654         * tree-ssa-forwprop.c: Likewise.
1655         * tree-ssa-ifcombine.c: Likewise.
1656         * tree-ssa-loop-ch.c: Likewise.
1657         * tree-ssa-loop-im.c: Likewise.
1658         * tree-ssa-loop-ivcanon.c: Likewise.
1659         * tree-ssa-loop-ivopts.c: Likewise.
1660         * tree-ssa-loop-manip.c: Likewise.
1661         * tree-ssa-loop-prefetch.c: Likewise.
1662         * tree-ssa-loop-unswitch.c: Likewise.
1663         * tree-ssa-math-opts.c: Likewise.
1664         * tree-ssa-phiopt.c: Likewise.
1665         * tree-ssa-pre.c: Likewise.
1666         * tree-ssa-reassoc.c: Likewise.
1667         * tree-ssa-sink.c: Likewise.
1668         * tree-ssa-tail-merge.c: Likewise.
1669         * tree-ssa-threadedge.c: Likewise.
1670         * tree-ssa-threadupdate.c: Likewise.
1671         * tree-switch-conversion.c: Likewise.
1672         * tree-tailcall.c: Likewise.
1673         * tree-vect-data-refs.c: Likewise.
1674         * tree-vect-loop.c: Likewise.
1675         * tree-vect-loop-manip.c: Likewise.
1676         * tree-vectorizer.c: Likewise.
1677         * tree-vrp.c: Likewise.
1678         * ubsan.c: Likewise.
1679         * value-prof.c: Likewise.
1680         * varasm.c: Likewise.
1681         * var-tracking.c: Likewise.
1682         * config/aarch64/aarch64-builtins.c: Likewise.
1683         * config/aarch64/aarch64.c: Likewise.
1684         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1685         * config/alpha/alpha.c: Likewise.
1686         * config/arc/arc.c: Likewise.
1687         * config/arm/arm.c: Likewise.
1688         * config/avr/avr.c: Likewise.
1689         * config/bfin/bfin.c: Likewise.
1690         * config/c6x/c6x.c: Likewise.
1691         * config/cr16/cr16.c: Likewise.
1692         * config/cris/cris.c: Likewise.
1693         * config/darwin.c: Likewise.
1694         * config/darwin-c.c: Likewise.
1695         * config/epiphany/epiphany.c: Likewise.
1696         * config/epiphany/mode-switch-use.c: Likewise.
1697         * config/epiphany/resolve-sw-modes.c: Likewise.
1698         * config/fr30/fr30.c: Likewise.
1699         * config/frv/frv.c: Likewise.
1700         * config/ft32/ft32.c: Likewise.
1701         * config/h8300/h8300.c: Likewise.
1702         * config/i386/i386.c: Likewise.
1703         * config/i386/winnt.c: Likewise.
1704         * config/ia64/ia64.c: Likewise.
1705         * config/iq2000/iq2000.c: Likewise.
1706         * config/lm32/lm32.c: Likewise.
1707         * config/m32c/m32c.c: Likewise.
1708         * config/m32r/m32r.c: Likewise.
1709         * config/m68k/m68k.c: Likewise.
1710         * config/mcore/mcore.c: Likewise.
1711         * config/mep/mep.c: Likewise.
1712         * config/microblaze/microblaze.c: Likewise.
1713         * config/mips/mips.c: Likewise.
1714         * config/mmix/mmix.c: Likewise.
1715         * config/mn10300/mn10300.c: Likewise.
1716         * config/moxie/moxie.c: Likewise.
1717         * config/msp430/msp430.c: Likewise.
1718         * config/nds32/nds32.c: Likewise.
1719         * config/nds32/nds32-cost.c: Likewise.
1720         * config/nds32/nds32-fp-as-gp.c: Likewise.
1721         * config/nds32/nds32-intrinsic.c: Likewise.
1722         * config/nds32/nds32-isr.c: Likewise.
1723         * config/nds32/nds32-md-auxiliary.c: Likewise.
1724         * config/nds32/nds32-memory-manipulation.c: Likewise.
1725         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1726         * config/nds32/nds32-predicates.c: Likewise.
1727         * config/nios2/nios2.c: Likewise.
1728         * config/nvptx/nvptx.c: Likewise.
1729         * config/pa/pa.c: Likewise.
1730         * config/pdp11/pdp11.c: Likewise.
1731         * config/rl78/rl78.c: Likewise.
1732         * config/rs6000/rs6000.c: Likewise.
1733         * config/rx/rx.c: Likewise.
1734         * config/s390/s390.c: Likewise.
1735         * config/sh/sh.c: Likewise.
1736         * config/sh/sh-mem.cc: Likewise.
1737         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1738         * config/sh/sh_treg_combine.cc: Likewise.
1739         * config/sparc/sparc.c: Likewise.
1740         * config/spu/spu.c: Likewise.
1741         * config/stormy16/stormy16.c: Likewise.
1742         * config/tilegx/tilegx.c: Likewise.
1743         * config/tilepro/tilepro.c: Likewise.
1744         * config/v850/v850.c: Likewise.
1745         * config/vax/vax.c: Likewise.
1746         * config/visium/visium.c: Likewise.
1747         * config/xtensa/xtensa.c: Likewise.
1748
1749 2015-07-10  Richard Biener  <rguenther@suse.de>
1750
1751         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
1752         (decision_tree::gen_gimple): Likewise.
1753         (decision_tree::gen_generic): Likewise.
1754
1755 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1756
1757         PR target/66813
1758         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
1759         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
1760
1761 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
1762
1763         PR middle-end/66820
1764         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
1765         or ORT_TASK contexts.
1766         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
1767         is non-zero.
1768
1769 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1770
1771         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
1772         above function.
1773
1774 2015-07-10  Tom de Vries  <tom@codesourcery.com>
1775
1776         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
1777         insert nit + 1 bound.
1778
1779 2015-07-10  Richard Biener  <rguenther@suse.de>
1780
1781         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
1782         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
1783         (if_convertible_loop_p_1): For this always compute bb predicates.
1784         (if_convertible_loop_p): And free them.
1785
1786 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1787
1788         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
1789         in dump message.
1790
1791 2015-07-10  Richard Biener  <rguenther@suse.de>
1792
1793         PR tree-optimization/66823
1794         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
1795         inverted predicate.
1796
1797 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
1798
1799         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
1800         to handle mips[32|64]r3 and mips[32|64]r5.
1801
1802 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
1803
1804         PR middle-end/66633
1805         * tree-nested.c (get_static_chain): Or in a flag into
1806         info->static_chain_added.
1807         (get_frame_field, get_nonlocal_debug_decl): Likewise.
1808         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
1809         2015-07-01 changes.
1810         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
1811         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
1812         add it to clauses.
1813
1814         PR tree-optimization/66718
1815         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
1816         field.
1817         (vect_simd_lane_linear): New function.
1818         (vectorizable_simd_clone_call): Support using linear arguments for
1819         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
1820
1821 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         PR target/66821
1824         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
1825
1826 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1827
1828         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
1829         Use machine mode, not enum machine_mode in the prototype.
1830
1831         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
1832         classify 128-bit floating point support.
1833         (FLOAT128_IBM_P): Likewise.
1834         (FLOAT128_VECTOR_P): Likewise.
1835         (FLOAT128_2REG_P): Likewise.
1836         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
1837         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
1838         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1839         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
1840
1841         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
1842         tests against TFmode/TDmode, since those modes do not use VSX
1843         addresses.
1844         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
1845         support.
1846         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
1847         tests against TFmode, etc.
1848         (invalid_e500_subreg): Add tests against IFmode/KFmode.
1849         (reg_offset_addressing_ok_p): Likewise.
1850         (rs6000_legitimate_offset_address_p): Likewise.
1851         (rs6000_legitimize_address): Likewise.
1852         (rs6000_legitimize_reload_address): Likewise.
1853         (rs6000_legitimate_address_p): Clean up tests against TFmode and
1854         TDmode to use the new helper macros, which will include IFmode and
1855         KFmode.
1856         (rs6000_emit_move): Likewise.
1857         (rs6000_darwin64_record_arg_recurse): Likewise.
1858         (print_operand): Likewise.
1859         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
1860         that uses a single vector register as a vector and not as a
1861         floating point register in terms of the calling sequence.
1862         (rs6000_discover_homogeneous_aggregate): Likewise.
1863         (rs6000_return_in_memory): Likewise.
1864         (init_cumulative_args): Likewise.
1865         (rs6000_function_arg_boundary): Likewise.
1866         (rs6000_function_arg_advance_1): Likewise.
1867         (rs6000_function_arg): Likewise.
1868         (rs6000_pass_by_reference): Likewise.
1869         (rs6000_gimplify_va_arg): Likewise.
1870         (rs6000_secondary_reload_memory): Use machine_mode not enum
1871         machine mode.
1872         (rs6000_split_multireg_move): Use new helper macros.
1873         (spe_func_has_64bit_regs_p): Likewise.
1874         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
1875         (output_toc): Use new helper macros.
1876         (rs6000_register_move_cost): Likewise.
1877         (rs6000_function_value): Add IEEE 128-bit floating point calling
1878         sequence support.
1879         (rs6000_libcall_value): Likewise.
1880         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
1881         floating point support.
1882         (rs6000_vector_mode_supported_p): Likewise.
1883
1884 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
1885
1886         PR rtl-optimization/66782
1887         * lra-int.h (struct lra_insn_recog_data): Add comment about
1888         clobbered hard regs for arg_hard_regs.
1889         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
1890         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
1891         Add condition for processing used hard regs.
1892         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
1893         Process clobbered hard regs.
1894
1895 2015-07-09  Michael Matz  <matz@suse.de>
1896
1897         * genmatch.c (fprintf_indent): New function.
1898         (operand::gen_transform): Add indent parameter.
1899         (expr::gen_transform, c_expr::gen_transform,
1900         capture::gen_transform): Ditto and use fprintf_indent.
1901         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
1902         (dt_operand::gen, dt_operand::gen_predicate,
1903         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
1904         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
1905         (decision_tree::gen_gimple): Adjust calls and indent generated
1906         code.
1907         (decision_tree::gen_generic): Ditto.
1908         (write_predicate): Ditto.
1909
1910 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1911
1912         PR target/66814
1913         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
1914         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
1915         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
1916         {GENERAL,SSE,MMX}_REG_P where appropriate.
1917
1918 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1919
1920         * lto-streamer.h: Don't include target.h and alloc-pool.h.
1921         * builtins.c: Adjust includes.
1922         * gimple.c: Likewise.
1923         * ipa-icf.c: Likewise.
1924         * lto-opts.c: Likewise.
1925         * ipa-reference.c: Likewise.
1926         * lto-section-out.c: Likewise.
1927         * lto-streamer-in.c: Likewise.
1928         * lto-streamer-out.c: Likewise.
1929         * opts-global.c: Likewise.
1930         * symtab.c: Likewise.
1931         * tree-chkp.c: Likewise.
1932         * tree-ssa-live.c: Likewise.
1933         * tree-streamer-in.c: Likewise.
1934         * tree-streamer-out.c: Likewise.
1935         * config/darwin.c: Likewise.
1936         * config/i386/winnt.c: Likewise.
1937
1938 2015-07-09  Richard Biener  <rguenther@suse.de>
1939
1940         * genmatch.c (struct expr): Add force_single_use flag.
1941         (expr::expr): Add copy constructor.
1942         (capture_info::walk_match): Gather force_single_use captures.
1943         (expr::gen_transform): Use possibly NULLified sequence.
1944         (dt_simplify::gen): Apply single-use restrictions by NULLifying
1945         seq if any constrained expr is not single-use.
1946         (parser::parse_expr): Refactor to allow multiple flags.  Handle
1947         's' flag to force an expression have a single-use if the pattern
1948         simplifies to more than one statement.
1949         * match.pd: Convert most single_use conditionals to :s flags.
1950
1951 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1952
1953         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
1954         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1955         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1956
1957 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1958
1959         * flags.h: Don't include flag-types.h or options.h.
1960         * opts-common.c: Adjust includes.
1961         * opts-global.c: Likewise.
1962         * common/config/epiphany/epiphany-common.c: Likewise.
1963
1964 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1965
1966         PR target/66818
1967         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
1968         for IA MCU.
1969
1970 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1971
1972         PR target/66817
1973         * config/i386/i386.c (ix86_return_in_memory): Return true
1974         if int_size_in_bytes returns negative for IA MCU.
1975
1976 2015-07-09  Marek Polacek  <polacek@redhat.com>
1977
1978         PR tree-optimization/66718
1979         * Makefile.in (OBJS): Add gimple-laddress.o.
1980         * passes.def: Schedule pass_laddress.
1981         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
1982         * tree-pass.h (make_pass_laddress): Declare.
1983         * gimple-laddress.c: New file.
1984
1985 2015-07-09  Richard Biener  <rguenther@suse.de>
1986
1987         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
1988
1989 2015-07-09  Richard Biener  <rguenther@suse.de>
1990
1991         PR tree-optimization/66807
1992         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
1993
1994 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
1995
1996         * function.c (stack_protect_epilogue): Use if rather than switch for
1997         check targetm.have_stack_protect_test.
1998
1999 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2000
2001         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
2002         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
2003         * config/arc/arc.h: Likewise.
2004         * config/arm/arm.h: Likewise.
2005         * config/bfin/bfin.h: Likewise.
2006         * config/epiphany/epiphany.h: Likewise.
2007         * config/frv/frv.h: Likewise.
2008         * config/ia64/ia64.h: Likewise.
2009         * config/iq2000/iq2000.h: Likewise.
2010         * config/lm32/lm32.h: Likewise.
2011         * config/m32r/m32r.h: Likewise.
2012         * config/mcore/mcore.h: Likewise.
2013         * config/mep/mep.h: Likewise.
2014         * config/microblaze/microblaze.h: Likewise.
2015         * config/mips/mips.h: Likewise.
2016         * config/mmix/mmix.h: Likewise.
2017         * config/mn10300/mn10300.h: Likewise.
2018         * config/nds32/nds32.h: Likewise.
2019         * config/nios2/nios2.h: Likewise.
2020         * config/pa/pa.h: Likewise.
2021         * config/rl78/rl78.h: Likewise.
2022         * config/sh/sh.h: Likewise.
2023         * config/sparc/sparc.h: Likewise.
2024         * config/stormy16/stormy16.h: Likewise.
2025         * config/tilegx/tilegx.h: Likewise.
2026         * config/tilepro/tilepro.h: Likewise.
2027         * config/v850/v850.h: Likewise.
2028         * config/xtensa/xtensa.h: Likewise.
2029         * doc/tm.texi: Regenerate.
2030         * doc/tm.texi.in: Adjust.
2031         * combine.c (simplify_set): Likewise.
2032         (simplify_comparison): Likewise.
2033         * expr.c (store_constructor): Likewise.
2034         * internal-fn.c (expand_arith_overflow): Likewise.
2035         * reload.c (push_reload): Likewise.
2036         (find_reloads): Likewise.
2037         (find_reloads_subreg_address): Likewise.
2038         * reload1.c (eliminate_regs_1): Likewise.
2039         * rtlanal.c (nonzero_bits1): Likewise.
2040         (num_sign_bit_copies1): Likewise.
2041         * simplify-rtx.c (simplify_truncation): Likewise.
2042
2043 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2044
2045         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
2046         of AUTO_INC_DEC with the preprocessor.
2047         * combine.c (combine_instructions): Likewise.
2048         (can_combine_p): Likewise.
2049         (try_combine): Likewise.
2050         * emit-rtl.c (try_split): Likewise.
2051         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2052         * lower-subreg.c (resolve_simple_move): Likewise.
2053         * lra.c (update_inc_notes): Likewise.
2054         * recog.c (asm_operand_ok): Likewise.
2055         (constrain_operands): Likewise.
2056         * regrename.c (scan_rtx_address): Likewise.
2057         * reload.c (update_auto_inc_notes): Likewise.
2058         (reg_inc_found_and_valid_p): Likewise.
2059         * reload1.c (reload): Likewise.
2060         (emit_input_reload_insns): Likewise.
2061         (delete_output_reload): Likewise.
2062         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2063         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2064
2065 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2066
2067         * rtl.h: Always define AUTO_INC_DEC.
2068         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
2069         * combine.c (combine_instructions): Likewise.
2070         (can_combine_p): Likewise.
2071         (try_combine): Likewise.
2072         * emit-rtl.c (try_split): Likewise.
2073         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2074         * lower-subreg.c (resolve_simple_move): Likewise.
2075         * lra.c (update_inc_notes): Likewise.
2076         * recog.c (asm_operand_ok): Likewise.
2077         (constrain_operands): Likewise.
2078         * regrename.c (scan_rtx_address): Likewise.
2079         * reload.c (update_auto_inc_notes): Likewise.
2080         (find_equiv_reg): Likewise.
2081         * reload1.c (reload): Likewise.
2082         (reload_as_needed): Likewise.
2083         (choose_reload_regs): Likewise.
2084         (emit_input_reload_insns): Likewise.
2085         (delete_output_reload): Likewise.
2086         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2087         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2088
2089 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2090
2091         * combine.c (can_combine_def_p): Don't check the value of
2092         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2093         (combinable_i3pat): Likewise.
2094         (mark_used_regs_combine): Likewise.
2095         * regrename.c (rename_chains): Likewise.
2096         * reload.c (find_reloads_address): Likewise.
2097         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2098
2099 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2100
2101         * combine.c (update_rsp_from_reg_equal): Don't check if
2102         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2103         (reg_nonzero_bits_for_combine): Likewise.
2104         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2105         1.
2106         * config/frv/frv.h: Likewise.
2107         * config/lm32/lm32.h: Likewise.
2108         * config/mep/mep.h: Likewise.
2109         * config/mips/mips.h: Likewise.
2110         * config/rs6000/rs6000.h: Likewise.
2111         * config/sh/sh.h: Likewise.
2112         * config/tilegx/tilegx.h (enum reg_class): Likewise.
2113         * config/tilepro/tilepro.h: Likewise.
2114         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2115         * doc/tm.texi: Regenerate.
2116         * doc/tm.texi.in: Adjust.
2117         * rtlanal.c (nonzero_bits1): Likewise.
2118
2119 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2120
2121         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2122         with the preprocessor.
2123         (combine_instructions): Likewise.
2124         (try_combine): Likewise.
2125         (subst): Likewise.
2126         (distribute_notes): Likewise.
2127
2128 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2129
2130         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2131         defined.
2132         (simplify_set): Likewise.
2133         * cse.c (cse_insn): Likewise.
2134         * fold-const.c (fold_single_bit_test): Likewise.
2135         (fold_unary_loc): Likewise.
2136         * postreload.c (reload_cse_simplify_set): Likewise.
2137         (reload_cse_simplify_operands): Likewise.
2138
2139 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
2140
2141         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2142         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2143
2144 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2145
2146         PR target/66746
2147         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2148         __iamcu__ is defined.
2149
2150 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2151
2152         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2153
2154 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2155
2156         PR target/66523
2157         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2158         names from preservation.
2159
2160 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2161
2162         PR target/66806
2163         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2164         change for IAMCU.
2165         (function_arg_advance_32): Don't pass vectors in registers for
2166         IAMCU.
2167         (function_arg_32): Likewise.
2168         (ix86_return_in_memory): Don't return vectors in registers for
2169         IAMCU.
2170
2171 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2172
2173         PR middle-end/66334
2174         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2175         hard regno live at the start of BB with incoming abnormal edges.
2176         * lra-lives.c (process_bb_lives): Ditto.
2177
2178 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2179
2180         PR libgomp/65099
2181         * config/nvptx/mkoffload.c (main): Create an offload image only in
2182         64-bit configurations.
2183
2184 2015-07-08  Martin Liska  <mliska@suse.cz>
2185
2186         PR bootstrap/66744
2187         * tree-sra.c (create_access_1): Call ctor without brackets.
2188         (create_artificial_child_access): Likewise.
2189
2190 2015-07-08  Richard Biener  <rguenther@suse.de>
2191
2192         PR tree-optimization/66793
2193         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2194         Properly split the block after stmts ending it.
2195
2196 2015-07-08  Richard Biener  <rguenther@suse.de>
2197
2198         PR tree-optimization/66794
2199         * passes.c (execute_function_todo): Assert that post-dominators
2200         are not computed.
2201         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2202         Free post-dominators.
2203
2204 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2205
2206         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2207         with early exit.
2208
2209 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2210
2211         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2212         more than or equal 8 and less than 32 when optimizing for size.
2213
2214 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2215
2216         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2217         COSTS_N_INSNS (1) and increment it appropriately throughout the
2218         function.
2219
2220 2015-07-08  Richard Biener  <rguenther@suse.de>
2221
2222         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2223
2224 2015-07-08  Alan Modra  <amodra@gmail.com>
2225
2226         * target.def (rtx_costs): Remove "code" param, add "mode".
2227         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2228         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2229         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2230         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2231         call.  Track mode when given in rtx.
2232         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2233         (default_address_cost): Pass Pmode to rtx_cost.
2234         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2235         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2236         with NULL set.
2237         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2238         (notreg_cost): Add mode param.  Use it.
2239         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2240         mode param and pass to set_src_cost.  Update all calls.
2241         (hash_scan_set): Formatting.
2242         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2243         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2244         * hooks.h: Ditto.
2245         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2246         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2247         emit_store_flag): Update set_src_cost and rtx_cost calls.
2248         * auto-inc-dec.c (attempt_change): Likewise.
2249         * calls.c (precompute_register_parameters): Likewise.
2250         * combine.c (expand_compound_operation, make_extraction,
2251         force_to_mode, distribute_and_simplify_rtx): Likewise.
2252         * dojump.c (prefer_and_bit_test): Likewise.
2253         * dse.c (find_shift_sequence): Likewise.
2254         * expr.c (compress_float_constant): Likewise.
2255         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2256         * ifcvt.c (noce_try_sign_mask): Likewise.
2257         * loop-doloop.c (doloop_optimize): Likewise.
2258         * loop-invariant.c (create_new_invariant): Likewise.
2259         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2260         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2261         lshift_cheap_p): Likewise.
2262         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2263         try_replace_in_use, reload_cse_move2add): Likewise.
2264         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2265         Likewise.
2266         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2267         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2268         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2269         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2270         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2271         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2272         to rtx_cost calls.
2273         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2274         * config/arc/arc.c (arc_rtx_costs): Likewise.
2275         * config/arm/arm.c (arm_rtx_costs): Likewise.
2276         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2277         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2278         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2279         * config/cris/cris.c (cris_rtx_costs): Likewise.
2280         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2281         * config/frv/frv.c (frv_rtx_costs): Likewise.
2282         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2283         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2284         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2285         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2286         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2287         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2288         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2289         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2290         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2291         * config/mep/mep.c (mep_rtx_cost): Likewise.
2292         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2293         * config/mips/mips.c (mips_rtx_costs): Likewise.
2294         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2295         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2296         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2297         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2298         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2299         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2300         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2301         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2302         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2303         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2304         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2305         * config/s390/s390.c (s390_rtx_costs): Likewise.
2306         * config/sh/sh.c (sh_rtx_costs): Likewise.
2307         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2308         * config/spu/spu.c (spu_rtx_costs): Likewise.
2309         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2310         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2311         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2312         * config/v850/v850.c (v850_rtx_costs): Likewise.
2313         * config/vax/vax.c (vax_rtx_costs): Likewise.
2314         * config/visium/visium.c (visium_rtx_costs): Likewise.
2315         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2316         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2317         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2318         mode to rtx_cost calls.
2319         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2320         calls.
2321         (aarch64_rtx_costs_wrapper): Update.
2322         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2323         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2324         rtx_cost calls.
2325         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2326         and rtx_cost calls.
2327         (avr_operand_rtx_cost): Similarly.
2328         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2329         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2330         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2331         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2332         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2333         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2334         rtx_cost.
2335         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2336         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2337         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2338         * doc/tm.texi: Regenerate.
2339
2340 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2341
2342         * tree-core.h: Include symtab.h.
2343         * rtl.h: Include hard-reg-set.h but not flags.h.
2344         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2345         hard-reg-set.h is always included.
2346         * regs.h: Don't include hard-reg-set.h or rtl.h.
2347         * cfg.h: Include dominance.h.
2348         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2349         * backend.h: New.  Aggregate commonly used backend header files.
2350         * gimple-ssa.h: Don't include tree-hasher.h.
2351         * ssa.h: New.  Aggregate commonly used SSA header files.
2352         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2353         * sel-sched-ir.h: Flatten includes.
2354         * lra-int.h: Flatten completely.
2355         * sel-sched-dump.h: Flatten includes.
2356         * ira-int.h: Flatten includes.
2357         * gimple-streamer.h: Remove all includes.
2358         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2359         * resource.h: Flatten hard-reg-set.h and df.h.
2360         * sched-int.h: Flatten insn-arrt.h and df.h.
2361         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2362         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2363         * genattrtab.c (write_header): Adjust generated includes.
2364         * genautomata.c (main): Likewise.
2365         * genconditions.c (write-header): Likewise.
2366         * genemit.c (main): Likewise.
2367         * gengtype.c (open_base_files): Likewise.
2368         * genopinit.c (main): Likewise.
2369         * genoutput.c (output_prologue): Likewise.
2370         * genpeep.c (main): Likewise.
2371         * genpreds.c (write_insn_preds_c): Likewise.
2372         * genrecog.c (write_header): Likewise.
2373         * alias.c: Adjust includes.
2374         * asan.c: Likewise.
2375         * attribs.c: Likewise.
2376         * auto-inc-dec.c: Likewise.
2377         * auto-profile.c: Likewise.
2378         * bb-reorder.c: Likewise.
2379         * bt-load.c: Likewise.
2380         * builtins.c: Likewise.
2381         * caller-save.c: Likewise.
2382         * calls.c: Likewise.
2383         * ccmp.c: Likewise.
2384         * cfg.c: Likewise.
2385         * cfganal.c: Likewise.
2386         * cfgbuild.c: Likewise.
2387         * cfgcleanup.c: Likewise.
2388         * cfgexpand.c: Likewise.
2389         * cfghooks.c: Likewise.
2390         * cfgloop.c: Likewise.
2391         * cfgloopanal.c: Likewise.
2392         * cfgloopmanip.c: Likewise.
2393         * cfgrtl.c: Likewise.
2394         * cgraph.c: Likewise.
2395         * cgraphbuild.c: Likewise.
2396         * cgraphclones.c: Likewise.
2397         * cgraphunit.c: Likewise.
2398         * cilk-common.c: Likewise.
2399         * combine-stack-adj.c: Likewise.
2400         * combine.c: Likewise.
2401         * compare-elim.c: Likewise.
2402         * convert.c: Likewise.
2403         * coverage.c: Likewise.
2404         * cppbuiltin.c: Likewise.
2405         * cprop.c: Likewise.
2406         * cse.c: Likewise.
2407         * cselib.c: Likewise.
2408         * data-streamer-in.c: Likewise.
2409         * data-streamer-out.c: Likewise.
2410         * data-streamer.c: Likewise.
2411         * dbxout.c: Likewise.
2412         * dce.c: Likewise.
2413         * ddg.c: Likewise.
2414         * debug.c: Likewise.
2415         * df-core.c: Likewise.
2416         * df-problems.c: Likewise.
2417         * df-scan.c: Likewise.
2418         * dfp.c: Likewise.
2419         * dojump.c: Likewise.
2420         * dominance.c: Likewise.
2421         * domwalk.c: Likewise.
2422         * double-int.c: Likewise.
2423         * dse.c: Likewise.
2424         * dumpfile.c: Likewise.
2425         * dwarf2asm.c: Likewise.
2426         * dwarf2cfi.c: Likewise.
2427         * dwarf2out.c: Likewise.
2428         * emit-rtl.c: Likewise.
2429         * et-forest.c: Likewise.
2430         * except.c: Likewise.
2431         * explow.c: Likewise.
2432         * expmed.c: Likewise.
2433         * expr.c: Likewise.
2434         * final.c: Likewise.
2435         * fixed-value.c: Likewise.
2436         * fold-const.c: Likewise.
2437         * function.c: Likewise.
2438         * fwprop.c: Likewise.
2439         * gcc-plugin.h: Likewise.
2440         * gcse-common.c: Likewise.
2441         * gcse.c: Likewise.
2442         * generic-match-head.c: Likewise.
2443         * ggc-page.c: Likewise.
2444         * gimple-builder.c: Likewise.
2445         * gimple-expr.c: Likewise.
2446         * gimple-fold.c: Likewise.
2447         * gimple-iterator.c: Likewise.
2448         * gimple-low.c: Likewise.
2449         * gimple-match-head.c: Likewise.
2450         * gimple-pretty-print.c: Likewise.
2451         * gimple-ssa-isolate-paths.c: Likewise.
2452         * gimple-ssa-strength-reduction.c: Likewise.
2453         * gimple-streamer-in.c: Likewise.
2454         * gimple-streamer-out.c: Likewise.
2455         * gimple-walk.c: Likewise.
2456         * gimple.c: Likewise.
2457         * gimplify-me.c: Likewise.
2458         * gimplify.c: Likewise.
2459         * godump.c: Likewise.
2460         * graph.c: Likewise.
2461         * graphite-blocking.c: Likewise.
2462         * graphite-dependences.c: Likewise.
2463         * graphite-interchange.c: Likewise.
2464         * graphite-isl-ast-to-gimple.c: Likewise.
2465         * graphite-optimize-isl.c: Likewise.
2466         * graphite-poly.c: Likewise.
2467         * graphite-scop-detection.c: Likewise.
2468         * graphite-sese-to-poly.c: Likewise.
2469         * graphite.c: Likewise.
2470         * haifa-sched.c: Likewise.
2471         * hw-doloop.c: Likewise.
2472         * ifcvt.c: Likewise.
2473         * init-regs.c: Likewise.
2474         * internal-fn.c: Likewise.
2475         * ipa-chkp.c: Likewise.
2476         * ipa-comdats.c: Likewise.
2477         * ipa-cp.c: Likewise.
2478         * ipa-devirt.c: Likewise.
2479         * ipa-icf-gimple.c: Likewise.
2480         * ipa-icf.c: Likewise.
2481         * ipa-inline-analysis.c: Likewise.
2482         * ipa-inline-transform.c: Likewise.
2483         * ipa-inline.c: Likewise.
2484         * ipa-polymorphic-call.c: Likewise.
2485         * ipa-profile.c: Likewise.
2486         * ipa-prop.c: Likewise.
2487         * ipa-pure-const.c: Likewise.
2488         * ipa-ref.c: Likewise.
2489         * ipa-reference.c: Likewise.
2490         * ipa-split.c: Likewise.
2491         * ipa-utils.c: Likewise.
2492         * ipa-visibility.c: Likewise.
2493         * ipa.c: Likewise.
2494         * ira-build.c: Likewise.
2495         * ira-color.c: Likewise.
2496         * ira-conflicts.c: Likewise.
2497         * ira-costs.c: Likewise.
2498         * ira-emit.c: Likewise.
2499         * ira-lives.c: Likewise.
2500         * ira.c: Likewise.
2501         * jump.c: Likewise.
2502         * langhooks.c: Likewise.
2503         * lcm.c: Likewise.
2504         * loop-doloop.c: Likewise.
2505         * loop-init.c: Likewise.
2506         * loop-invariant.c: Likewise.
2507         * loop-iv.c: Likewise.
2508         * loop-unroll.c: Likewise.
2509         * lower-subreg.c: Likewise.
2510         * lra-assigns.c: Likewise.
2511         * lra-coalesce.c: Likewise.
2512         * lra-constraints.c: Likewise.
2513         * lra-eliminations.c: Likewise.
2514         * lra-lives.c: Likewise.
2515         * lra-remat.c: Likewise.
2516         * lra-spills.c: Likewise.
2517         * lra.c: Likewise.
2518         * lto-cgraph.c: Likewise.
2519         * lto-compress.c: Likewise.
2520         * lto-opts.c: Likewise.
2521         * lto-section-in.c: Likewise.
2522         * lto-section-out.c: Likewise.
2523         * lto-streamer-in.c: Likewise.
2524         * lto-streamer-out.c: Likewise.
2525         * lto-streamer.c: Likewise.
2526         * mcf.c: Likewise.
2527         * mode-switching.c: Likewise.
2528         * modulo-sched.c: Likewise.
2529         * omega.c: Likewise.
2530         * omp-low.c: Likewise.
2531         * optabs.c: Likewise.
2532         * opts-global.c: Likewise.
2533         * passes.c: Likewise.
2534         * plugin.c: Likewise.
2535         * postreload-gcse.c: Likewise.
2536         * postreload.c: Likewise.
2537         * predict.c: Likewise.
2538         * print-rtl.c: Likewise.
2539         * print-tree.c: Likewise.
2540         * profile.c: Likewise.
2541         * real.c: Likewise.
2542         * realmpfr.c: Likewise.
2543         * recog.c: Likewise.
2544         * ree.c: Likewise.
2545         * reg-stack.c: Likewise.
2546         * regcprop.c: Likewise.
2547         * reginfo.c: Likewise.
2548         * regrename.c: Likewise.
2549         * regstat.c: Likewise.
2550         * reload.c: Likewise.
2551         * reload1.c: Likewise.
2552         * reorg.c: Likewise.
2553         * resource.c: Likewise.
2554         * rtl-chkp.c: Likewise.
2555         * rtlanal.c: Likewise.
2556         * rtlhooks.c: Likewise.
2557         * sanopt.c: Likewise.
2558         * sched-deps.c: Likewise.
2559         * sched-ebb.c: Likewise.
2560         * sched-rgn.c: Likewise.
2561         * sched-vis.c: Likewise.
2562         * sdbout.c: Likewise.
2563         * sel-sched-dump.c: Likewise.
2564         * sel-sched-ir.c: Likewise.
2565         * sel-sched.c: Likewise.
2566         * sese.c: Likewise.
2567         * shrink-wrap.c: Likewise.
2568         * simplify-rtx.c: Likewise.
2569         * stack-ptr-mod.c: Likewise.
2570         * stmt.c: Likewise.
2571         * stor-layout.c: Likewise.
2572         * store-motion.c: Likewise.
2573         * stringpool.c: Likewise.
2574         * symtab.c: Likewise.
2575         * target-globals.c: Likewise.
2576         * targhooks.c: Likewise.
2577         * toplev.c: Likewise.
2578         * tracer.c: Likewise.
2579         * trans-mem.c: Likewise.
2580         * tree-affine.c: Likewise.
2581         * tree-browser.c: Likewise.
2582         * tree-call-cdce.c: Likewise.
2583         * tree-cfg.c: Likewise.
2584         * tree-cfgcleanup.c: Likewise.
2585         * tree-chkp-opt.c: Likewise.
2586         * tree-chkp.c: Likewise.
2587         * tree-chrec.c: Likewise.
2588         * tree-complex.c: Likewise.
2589         * tree-data-ref.c: Likewise.
2590         * tree-dfa.c: Likewise.
2591         * tree-diagnostic.c: Likewise.
2592         * tree-dump.c: Likewise.
2593         * tree-eh.c: Likewise.
2594         * tree-emutls.c: Likewise.
2595         * tree-if-conv.c: Likewise.
2596         * tree-inline.c: Likewise.
2597         * tree-into-ssa.c: Likewise.
2598         * tree-iterator.c: Likewise.
2599         * tree-loop-distribution.c: Likewise.
2600         * tree-nested.c: Likewise.
2601         * tree-nrv.c: Likewise.
2602         * tree-object-size.c: Likewise.
2603         * tree-outof-ssa.c: Likewise.
2604         * tree-parloops.c: Likewise.
2605         * tree-phinodes.c: Likewise.
2606         * tree-predcom.c: Likewise.
2607         * tree-pretty-print.c: Likewise.
2608         * tree-profile.c: Likewise.
2609         * tree-scalar-evolution.c: Likewise.
2610         * tree-sra.c: Likewise.
2611         * tree-ssa-address.c: Likewise.
2612         * tree-ssa-alias.c: Likewise.
2613         * tree-ssa-ccp.c: Likewise.
2614         * tree-ssa-coalesce.c: Likewise.
2615         * tree-ssa-copy.c: Likewise.
2616         * tree-ssa-copyrename.c: Likewise.
2617         * tree-ssa-dce.c: Likewise.
2618         * tree-ssa-dom.c: Likewise.
2619         * tree-ssa-dse.c: Likewise.
2620         * tree-ssa-forwprop.c: Likewise.
2621         * tree-ssa-ifcombine.c: Likewise.
2622         * tree-ssa-live.c: Likewise.
2623         * tree-ssa-loop-ch.c: Likewise.
2624         * tree-ssa-loop-im.c: Likewise.
2625         * tree-ssa-loop-ivcanon.c: Likewise.
2626         * tree-ssa-loop-ivopts.c: Likewise.
2627         * tree-ssa-loop-manip.c: Likewise.
2628         * tree-ssa-loop-niter.c: Likewise.
2629         * tree-ssa-loop-prefetch.c: Likewise.
2630         * tree-ssa-loop-unswitch.c: Likewise.
2631         * tree-ssa-loop.c: Likewise.
2632         * tree-ssa-math-opts.c: Likewise.
2633         * tree-ssa-operands.c: Likewise.
2634         * tree-ssa-phiopt.c: Likewise.
2635         * tree-ssa-phiprop.c: Likewise.
2636         * tree-ssa-pre.c: Likewise.
2637         * tree-ssa-propagate.c: Likewise.
2638         * tree-ssa-reassoc.c: Likewise.
2639         * tree-ssa-sccvn.c: Likewise.
2640         * tree-ssa-scopedtables.c: Likewise.
2641         * tree-ssa-sink.c: Likewise.
2642         * tree-ssa-strlen.c: Likewise.
2643         * tree-ssa-structalias.c: Likewise.
2644         * tree-ssa-tail-merge.c: Likewise.
2645         * tree-ssa-ter.c: Likewise.
2646         * tree-ssa-threadedge.c: Likewise.
2647         * tree-ssa-threadupdate.c: Likewise.
2648         * tree-ssa-uncprop.c: Likewise.
2649         * tree-ssa-uninit.c: Likewise.
2650         * tree-ssa.c: Likewise.
2651         * tree-ssanames.c: Likewise.
2652         * tree-stdarg.c: Likewise.
2653         * tree-streamer-in.c: Likewise.
2654         * tree-streamer-out.c: Likewise.
2655         * tree-streamer.c: Likewise.
2656         * tree-switch-conversion.c: Likewise.
2657         * tree-tailcall.c: Likewise.
2658         * tree-vect-data-refs.c: Likewise.
2659         * tree-vect-generic.c: Likewise.
2660         * tree-vect-loop-manip.c: Likewise.
2661         * tree-vect-loop.c: Likewise.
2662         * tree-vect-patterns.c: Likewise.
2663         * tree-vect-slp.c: Likewise.
2664         * tree-vect-stmts.c: Likewise.
2665         * tree-vectorizer.c: Likewise.
2666         * tree-vrp.c: Likewise.
2667         * tree.c: Likewise.
2668         * tsan.c: Likewise.
2669         * ubsan.c: Likewise.
2670         * valtrack.c: Likewise.
2671         * value-prof.c: Likewise.
2672         * var-tracking.c: Likewise.
2673         * varasm.c: Likewise.
2674         * varpool.c: Likewise.
2675         * vmsdbgout.c: Likewise.
2676         * vtable-verify.c: Likewise.
2677         * web.c: Likewise.
2678         * wide-int.cc: Likewise.
2679         * xcoffout.c: Likewise.
2680         * config/aarch64/aarch64-builtins.c: Likewise.
2681         * config/aarch64/aarch64.c: Likewise.
2682         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2683         * config/alpha/alpha.c: Likewise.
2684         * config/arc/arc.c: Likewise.
2685         * config/arm/aarch-common.c: Likewise.
2686         * config/arm/arm-builtins.c: Likewise.
2687         * config/arm/arm-c.c: Likewise.
2688         * config/arm/arm.c: Likewise.
2689         * config/avr/avr-c.c: Likewise.
2690         * config/avr/avr-log.c: Likewise.
2691         * config/avr/avr.c: Likewise.
2692         * config/bfin/bfin.c: Likewise.
2693         * config/c6x/c6x.c: Likewise.
2694         * config/cr16/cr16.c: Likewise.
2695         * config/cris/cris.c: Likewise.
2696         * config/darwin-c.c: Likewise.
2697         * config/darwin.c: Likewise.
2698         * config/epiphany/epiphany.c: Likewise.
2699         * config/epiphany/mode-switch-use.c: Likewise.
2700         * config/epiphany/resolve-sw-modes.c: Likewise.
2701         * config/fr30/fr30.c: Likewise.
2702         * config/frv/frv.c: Likewise.
2703         * config/ft32/ft32.c: Likewise.
2704         * config/h8300/h8300.c: Likewise.
2705         * config/i386/i386-c.c: Likewise.
2706         * config/i386/i386.c: Likewise.
2707         * config/i386/msformat-c.c: Likewise.
2708         * config/i386/winnt-cxx.c: Likewise.
2709         * config/i386/winnt-stubs.c: Likewise.
2710         * config/i386/winnt.c: Likewise.
2711         * config/ia64/ia64-c.c: Likewise.
2712         * config/ia64/ia64.c: Likewise.
2713         * config/iq2000/iq2000.c: Likewise.
2714         * config/lm32/lm32.c: Likewise.
2715         * config/m32c/m32c-pragma.c: Likewise.
2716         * config/m32c/m32c.c: Likewise.
2717         * config/m32r/m32r.c: Likewise.
2718         * config/m68k/m68k.c: Likewise.
2719         * config/mcore/mcore.c: Likewise.
2720         * config/mep/mep-pragma.c: Likewise.
2721         * config/mep/mep.c: Likewise.
2722         * config/microblaze/microblaze-c.c: Likewise.
2723         * config/microblaze/microblaze.c: Likewise.
2724         * config/mips/mips.c: Likewise.
2725         * config/mmix/mmix.c: Likewise.
2726         * config/mn10300/mn10300.c: Likewise.
2727         * config/moxie/moxie.c: Likewise.
2728         * config/msp430/msp430-c.c: Likewise.
2729         * config/msp430/msp430.c: Likewise.
2730         * config/nds32/nds32-cost.c: Likewise.
2731         * config/nds32/nds32-fp-as-gp.c: Likewise.
2732         * config/nds32/nds32-intrinsic.c: Likewise.
2733         * config/nds32/nds32-isr.c: Likewise.
2734         * config/nds32/nds32-md-auxiliary.c: Likewise.
2735         * config/nds32/nds32-memory-manipulation.c: Likewise.
2736         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2737         * config/nds32/nds32-predicates.c: Likewise.
2738         * config/nds32/nds32.c: Likewise.
2739         * config/nios2/nios2.c: Likewise.
2740         * config/nvptx/nvptx.c: Likewise.
2741         * config/pa/pa.c: Likewise.
2742         * config/pdp11/pdp11.c: Likewise.
2743         * config/rl78/rl78-c.c: Likewise.
2744         * config/rl78/rl78.c: Likewise.
2745         * config/rs6000/rs6000-c.c: Likewise.
2746         * config/rs6000/rs6000.c: Likewise.
2747         * config/rx/rx.c: Likewise.
2748         * config/s390/s390-c.c: Likewise.
2749         * config/s390/s390.c: Likewise.
2750         * config/sh/sh-c.c: Likewise.
2751         * config/sh/sh-mem.cc: Likewise.
2752         * config/sh/sh.c: Likewise.
2753         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2754         * config/sh/sh_treg_combine.cc: Likewise.
2755         * config/sol2-c.c: Likewise.
2756         * config/sol2-cxx.c: Likewise.
2757         * config/sol2-stubs.c: Likewise.
2758         * config/sol2.c: Likewise.
2759         * config/sparc/sparc-c.c: Likewise.
2760         * config/sparc/sparc.c: Likewise.
2761         * config/spu/spu-c.c: Likewise.
2762         * config/spu/spu.c: Likewise.
2763         * config/stormy16/stormy16.c: Likewise.
2764         * config/tilegx/mul-tables.c: Likewise.
2765         * config/tilegx/tilegx-c.c: Likewise.
2766         * config/tilegx/tilegx.c: Likewise.
2767         * config/tilepro/mul-tables.c: Likewise.
2768         * config/tilepro/tilepro-c.c: Likewise.
2769         * config/tilepro/tilepro.c: Likewise.
2770         * config/v850/v850-c.c: Likewise.
2771         * config/v850/v850.c: Likewise.
2772         * config/vax/vax.c: Likewise.
2773         * config/visium/visium.c: Likewise.
2774         * config/vms/vms-c.c: Likewise.
2775         * config/vms/vms.c: Likewise.
2776         * config/vxworks.c: Likewise.
2777         * config/xtensa/xtensa.c: Likewise.
2778
2779 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
2780
2781         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
2782         Remove operand constraints.  Change operand 2 predicate to
2783         nonmemory operand.  Limit const_int values to mode bitsize.  Only
2784         allow const_int values less than 32 when optimizing for size.
2785         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
2786         Remove operand constraints.
2787         (*bt<mode>): Use SImode for const_int values less than 32.
2788         (regmode): Remove mode attribute.
2789
2790 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
2791
2792         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2793         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
2794           moxie_legitimate_address_p): New functions.
2795           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2796
2797 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2798
2799         PR tree-optimization/66642
2800         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
2801         header comment.  Rename split_edge variable to edge_at_split.  Split
2802         exit edge to create new loop exit bb.  Insert loop exit phis in new
2803         loop exit bb.
2804
2805 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2806
2807         * tree-cfg.c (get_virtual_phi): New function.
2808         * tree-cfg.h (get_virtual_phi): Declare.
2809         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
2810         (rewrite_virtuals_into_loop_closed_ssa): New function.
2811         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
2812         Declare.
2813         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
2814         (transform_to_exit_first_loop_alt): Use
2815         rewrite_virtuals_into_loop_closed_ssa.
2816
2817 2015-07-07  Richard Biener  <rguenther@suse.de>
2818
2819         * fold-const.c (fold_binary_loc): Move
2820         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
2821         * match.pd: ... here.
2822         Add (X * C1) % C2 -> 0 simplification pattern derived from
2823         extract_muldiv_1.
2824
2825 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2826
2827         PR target/66780
2828         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
2829         change for target/65249.
2830
2831 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
2832
2833         * symtab.c (address_matters_1): Fix typo in comment above.
2834         (can_increase_alignment_p): Likewise.
2835
2836 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2837
2838         * function.c (free_after_compilation): Clear PROP_cfg in
2839         f->curr_properties.
2840
2841 2015-07-07  Richard Biener  <rguenther@suse.de>
2842
2843         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
2844         add which use to.
2845         (add_control_edge): Remove excessive vertical space in dumping.
2846         (process_ssa_edge_worklist): Simulate at most one statement and
2847         return whether we did.  Do not simulate PHIs if they are in a
2848         BB not yet simulated.
2849         (ssa_propagate): Adjust to always drain the BB worklist whenever
2850         a BB is available there, likewise the VARYING edges list before
2851         the interesting edge list.
2852
2853 2015-07-07  Christian Bruel  <christian.bruel@st.com>
2854
2855         PR target/52144
2856         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
2857
2858 2015-07-07  Richard Biener  <rguenther@suse.de>
2859
2860         PR middle-end/66739
2861         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
2862         A - B.
2863
2864 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2865
2866         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
2867         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
2868         Copy operand 0 to a temporary if !ext_register_operand.  Remove
2869         ancient extract_bit_field workaround.
2870         (insv<mode>_1): Rename from mov<mode>_insv_1.
2871         (*insvqi): Rename from *movqi_insv_2.
2872         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
2873         for renamed insvsi_1.
2874         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
2875
2876 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2877
2878         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
2879         call to nvptx_reorg_subreg.
2880
2881 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
2882
2883         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
2884         * graphite-dependencies.c, graphite-interchange.c,
2885         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
2886         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
2887         Likewise.
2888
2889 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
2890
2891         * match.pd: Remove element_mode inside HONOR_*.
2892         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
2893         (~X | X -> -1, ~X ^ X -> -1): Merge.
2894         * tree.c (build_each_one_cst): New function.
2895         * tree.h (build_each_one_cst): Likewise.
2896
2897 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2898
2899         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2900         PROCESSOR_IAMCU.
2901
2902 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
2903
2904         * config.gcc <mips*-*-*>: Add fused-madd.opt.
2905         * config/mips/mips.opt (mfused-madd): Remove.
2906         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
2907         * config/mips/mips.h (TARGET_MIPS8000): New.
2908         (ISA_HAS_FP_MADD4_MSUB4): Remove.
2909         (ISA_HAS_FP_MADDF_MSUBF): Remove.
2910         (ISA_HAS_FP_MADD3_MSUB3): Remove.
2911         (ISA_HAS_NMADD4_NMSUB4): Remove.
2912         (ISA_HAS_NMADD3_NMSUB3): Remove.
2913         (ISA_HAS_FUSED_MADD4): New.
2914         (ISA_HAS_UNFUSED_MADD4): New.
2915         (ISA_HAS_FUSED_MADDF): New.
2916         (ISA_HAS_FUSED_MADD3): New.
2917         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
2918         (*fma<mode>4_madd3) New.
2919         (*fma<mode>4_madd4) New.
2920         (*fma<mode>4_maddf) New.
2921         (fms<mode>4) New.
2922         (*fms<mode>4_msub3) New.
2923         (*fms<mode>4_msub4) New.
2924         (fnma<mode>4) New.
2925         (*fnma<mode>4_nmadd3) New.
2926         (*fnma<mode>4_nmadd4) New.
2927         (fnms<mode>4) New.
2928         (*fnms<mode>4_nmsub3) New.
2929         (*fnms<mode>4_nmsub4) New.
2930         (*madd4<mode>) Modify to be unfused only.
2931         (*msub4<mode>) Modify to be unfused only.
2932         (*nmadd4<mode>) Modify to be unfused only.
2933         (*nmsub4<mode>) Modify to be unfused only.
2934         (*madd3<mode>) Remove.
2935         (*msub3<mode>) Remove.
2936         (*nmadd3<mode>) Remove.
2937         (*nmsub3<mode>) Remove.
2938         (*nmadd3<mode>_fastmath) Remove.
2939         (*nmsub3<mode>_fastmath) Remove.
2940         (*nmadd4<mode>_fastmath) Update condition.
2941         (*nmsub4<mode>_fastmath) Update condition.
2942
2943 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2944
2945         PR target/65956
2946         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
2947         alignment attribute, exploring one level down for records and arrays.
2948
2949 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2950
2951         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
2952         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
2953         Copy operand 1 to a temporary if !ext_register_operand.  Remove
2954         ancient extract_bit_field workaround.
2955         (*extv<mode>): Rename from *mov<mode>_extv_1.
2956         (*extvqi): Rename from *movqi_extv_1.
2957         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
2958         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
2959         to a temporary if !ext_register_operand.  Remove ancient
2960         extract_bit_field workaround.
2961         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
2962         (*extzvqi): Rename from *movqi_extzv_2.
2963         (*testqi_ext_3): Remove modes from const_int_operand predicated
2964         operands.  Add "n" constraint.
2965         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
2966         operand.  Add "J" constraint.
2967         (*btsq, *btrq, *btcq peephole2s): Remove mode from
2968         const_0_to_63 predicated operand.
2969         (regmode): New insn attribute.
2970         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
2971         to nonmemory_operand.  Use regmode insn attribute.
2972         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
2973         (*jcc_bt<mode>_mask): Remove mode from operand 3.
2974         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
2975         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
2976         operands.  Use "N" constraint instead of "n".
2977
2978 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2979
2980         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
2981
2982 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         PR target/66749
2985         * config/i386/i386.c (iamcu_cost): New.
2986         (m_IAMCU): Likewise.
2987         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
2988         (processor_target_table): Add an entry for "iamcu".
2989         (processor_alias_table): Likewise.
2990         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
2991         (ix86_adjust_cost): Likewise.
2992         (ia32_multipass_dfa_lookahead): Likewise.
2993         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
2994         * config/i386/x86-tune.def: Updated for m_IAMCU.
2995
2996 2015-07-06  Richard Biener  <rguenther@suse.de>
2997
2998         PR tree-optimization/66772
2999         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
3000         values are available in the PHI node BB when there are
3001         still unexecutable edges.
3002
3003 2015-07-06  Richard Biener  <rguenther@suse.de>
3004
3005         PR tree-optimization/66767
3006         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
3007         Make sure to build the alignment test on a SSA name without
3008         final alignment info valid only if the alignment test
3009         evaluates to true.
3010
3011 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3012
3013         PR target/66620
3014         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
3015         loop start when inserting LSETUP.
3016
3017 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3018
3019         PR target/53383
3020         * config/i386/i386.c (ix86_option_override_internal): Allow
3021         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
3022
3023 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3024
3025         * read-md.c (decimal_string): Rename to ...
3026         (md_decimal_string): ... this.
3027         (handle_enum): Reflect this.
3028
3029 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3030
3031         PR target/66731
3032         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
3033
3034 2015-07-06  Richard Biener  <rguenther@suse.de>
3035
3036         PR middle-end/66759
3037         * match.pd: Add missing constraint of y to REAL_CST in
3038         REAL_CST - x CMP y to y - CST CMP x simplification.
3039
3040 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3041
3042         PR tree-optimization/66757
3043         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
3044
3045 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
3046             Sandra Loosemore <sandra@codesourcery.com>
3047
3048         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
3049         Delete extern declaration.
3050         (gprel_constant_p): Add extern declaration.
3051         * config/nios2/constraints.md ("S"): Use gprel_constant_p
3052         instead of nios2_symbol_ref_in_small_data_p.
3053         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
3054         (nios2_symbol_ref_in_small_data_p): Make static.
3055         (gprel_constant_p): Make non-static.
3056
3057 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
3058
3059         * doc/fragments.texi (Target Fragment): Convert debian.org
3060         link to use https.
3061         * doc/install.texi (Configuration): Ditto.
3062
3063 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
3064
3065         PR tree-optimization/66718
3066         * tree-vect-stmts.c (vectorizable_call): Replace uses of
3067         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
3068
3069         PR tree-optimization/66718
3070         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
3071         vectorizable_load, vectorizable_condition): Move vectype,
3072         nunits, ncopies computation after checking what kind of statement
3073         stmt is.
3074
3075 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3076
3077         * target-insns.def (extv, extzv, insv): New targetm instruction
3078         patterns.
3079         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3080         interface.
3081         * recog.c (simplify_while_replacing): Likewise.
3082
3083 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3084
3085         * target-insns.def (doloop_begin, doloop_end): New targetm
3086         instruction patterns.
3087         * loop-init.c: Include target.h.
3088         (pass_loop2::gate): Use the new targetm patterns instead of
3089         HAVE_*/gen_* interface.
3090         (pass_rtl_doloop::gate): Likewise.
3091         (pass_rtl_doloop::execute): Remove preprocessor condition.
3092         * hw-doloop.c: Build unconditionally.
3093         * loop-doloop.c: Likewise.
3094         (doloop_optimize): Use the new targetm patterns instead of
3095         HAVE_*/gen_* interface.
3096         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3097         * modulo-sched.c (doloop_register_get): Likewise.
3098
3099 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3100
3101         * target-insns.def (clear_cache): New targetm instruction pattern.
3102         * builtins.c (expand_builtin___clear_cache): Use it instead of
3103         HAVE_*/gen_* interface.
3104
3105 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3106
3107         * target-insns.def (allocate_stack, check_stack, probe_stack)
3108         (probe_stack_address, split_stack_prologue, split_stack_space_check):
3109         New targetm instruction patterns.
3110         * explow.c (allocate_dynamic_stack_space): Use them instead of
3111         HAVE_*/gen_* interface.
3112         (emit_stack_probe): Likewise.
3113         (probe_stack_range): Likewise.
3114         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3115
3116 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3117
3118         * target-insns.def (stack_protect_set, stack_protect_test): New
3119         targetm instruction patterns.
3120         * cfgexpand.c (stack_protect_prologue): Use them instead of
3121         HAVE_*/gen_* interface.
3122         * function.c (stack_protect_epilogue): Likewise.
3123
3124 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3125
3126         * expr.h (gen_move_insn_uncast): Delete.
3127         * expr.c (gen_move_insn_uncast): Delete.
3128
3129 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3130
3131         * target-insns.def (restore_stack_block, restore_stack_function)
3132         (restore_stack_nonlocal, save_stack_block, save_stack_function)
3133         (save_stack_nonlocal): New targetm instruction patterns.
3134         * builtins.c (expand_builtin_apply): Use them instead of
3135         HAVE_*/gen_* interface.
3136         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3137
3138 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3139
3140         * target-insns.def (trap): New targetm instruction pattern.
3141         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3142         interface.
3143         * explow.c (allocate_dynamic_stack_space): Likewise.
3144         * ifcvt.c (find_if_header): Likewise.
3145
3146 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3147
3148         * target-insns.def (prefetch): New targetm instruction pattern.
3149         * tree-ssa-loop-prefetch.c: Include targeth.
3150         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3151         of HAVE_*/gen_* interface.
3152         * builtins.c (expand_builtin_prefetch): Likewise.
3153         * toplev.c (process_options): Likewise.
3154
3155 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3156
3157         * target-insns.def (untyped_call, untyped_return): New targetm
3158         instruction patterns.
3159         * builtins.c (expand_builtin_apply): Use them instead of
3160         HAVE_*/gen_* interface.
3161         (result_vector): Define unconditionally.
3162
3163 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3164
3165         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3166         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3167         (nonlocal_goto_receiver): New targetm instruction patterns.
3168         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3169         of HAVE_*/gen_* interface.
3170         (expand_builtin_setjmp_receiver): Likewise.
3171         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3172         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3173
3174 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3175
3176         * target.def: Add code_for_* hooks.
3177         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3178         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3179         * target-insns.def (casesi, tablejump): New targetm instruction
3180         patterns.
3181         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3182         (do_tablejump): Likewise.
3183         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3184         (expand_sjlj_dispatch_table): Likewise.
3185         * targhooks.c (default_case_values_threshold): Likewise.
3186
3187 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3188
3189         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3190         Use rtx_insn * instead of rtx.
3191         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3192         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3193         (nios2_call_tls_get_addr): Likewise.
3194         (nios2_emit_expensive_div): Likewise.
3195         (nios2_emit_move_sequence): Change return type to bool.
3196         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3197         Change return type to bool.
3198
3199 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3200
3201         PR target/66747
3202         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3203
3204 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3205
3206         PR target/66114
3207         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3208         of register_operand.  Remove constraint.
3209
3210 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3211
3212         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3213         the first argument.
3214
3215 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3216
3217         * attribs.c (decl_attributes): Guard inform with the return value
3218         of the preceding warning.
3219
3220 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3221
3222         * doc/invoke.texi (moverride): Move to correct section.
3223
3224 2015-07-03  Richard Biener  <rguenther@suse.de>
3225
3226         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3227         Copy from tree.c
3228         (dt_operand::gen_gimple_expr): After valueizing operands
3229         re-canonicalize operand order for commutative tree codes.
3230
3231 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3232
3233         PR target/66746.
3234         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3235         is defined.
3236         (__crc32w): Likewise.
3237         (__crc32d): Likewise.
3238         (__rdpmc): Likewise.
3239         (__rdtscp): Likewise.
3240         (_rdpmc): Likewise.
3241         (_rdtscp): Likewise.
3242         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3243         is defined.
3244
3245 2015-07-03  Richard Biener  <rguenther@suse.de>
3246
3247         * fold-const.c (fold_mathfn_compare): Remove.
3248         (fold_inf_compare): Likewise.
3249         (fold_comparison): Move floating point comparison simplifications...
3250         * match.pd: ... to patterns here.  Introduce simple_comparisons
3251         operator list and use it for patterns formerly in fold_comparison.
3252
3253 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3254
3255         PR tree-optimization/66119
3256         * toplev.c (process_options): Don't set up default values for
3257         the sra_max_scalarization_size_{speed,size} parameters.
3258         * tree-sra (analyze_all_variable_accesses): If no values
3259         have been set for the sra_max_scalarization_size_{speed,size}
3260         parameters, call get_move_ratio to get target defaults.
3261
3262 2015-07-03  Richard Biener  <rguenther@suse.de>
3263
3264         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3265         * match.pd: ... here.
3266
3267 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3268
3269         PR target/37072
3270         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3271         is not actually the default on FreeBSD.
3272
3273 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3274
3275         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3276         definition.
3277         (CMPGE_8HI): Likewise.
3278         (CMPGE_4SI): Likewise.
3279         (CMPGE_2DI): Likewise.
3280         (CMPGE_U16QI): Likewise.
3281         (CMPGE_U8HI): Likewise.
3282         (CMPGE_U4SI): Likewise.
3283         (CMPGE_U2DI): Likewise.
3284         (CMPLE_16QI): Likewise.
3285         (CMPLE_8HI): Likewise.
3286         (CMPLE_4SI): Likewise.
3287         (CMPLE_2DI): Likewise.
3288         (CMPLE_U16QI): Likewise.
3289         (CMPLE_U8HI): Likewise.
3290         (CMPLE_U4SI): Likewise.
3291         (CMPLE_U2DI): Likewise.
3292         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3293         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3294         ALTIVEC_BUILTIN_VEC_CMPLE.
3295         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3296         floating-point vector modes.
3297         (vector_nlt<mode>): New define_expand.
3298         (vector_nltu<mode>): Likewise.
3299         (vector_ngt<mode>): Likewise.
3300         (vector_ngtu<mode>): Likewise.
3301
3302 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3303
3304         PR rtl-optimization/66706
3305         * combine.c (make_compound_operation): If an AND of SUBREG of
3306         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3307
3308 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3309
3310         * tree-pass.h (make_pass_ch_vect): New.
3311         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3312
3313         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3314         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3315         make_pass_ch_vect): New.
3316         (pass_ch): Extend ch_base.
3317
3318         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3319         (ch_base::copy_headers): ...here.
3320
3321 2015-07-02  Richard Biener  <rguenther@suse.de>
3322
3323         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3324         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3325         (fold_binary_loc): Implement (T)ptr & CST in terms of
3326         get_pointer_alignment_1.
3327         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3328         Make sure to build the alignment test on a SSA name without
3329         final alignment info valid only after the prologue.
3330
3331 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3332
3333         * config/cris/cris.md ("epilogue"): Remove condition.
3334         ("prologue"): Ditto.
3335
3336 2015-07-02  Richard Biener  <rguenther@suse.de>
3337
3338         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3339         parameter to record a condition that is false.
3340         (record_conditions): When recording an extra NE_EXPR that is
3341         true also record a EQ_EXPR that is false.
3342
3343 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3344
3345         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3346         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3347         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3348         (set_iv, find_interesting_uses_address, add_candidate_1): New
3349         argument to alloc_iv.
3350         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3351         duplicate struct iv.
3352         (free_loop_data): Don't free struct iv explicitly.
3353         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3354
3355 2015-07-01  DJ Delorie  <dj@redhat.com>
3356
3357         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3358         (LIB_SPEC): Add.
3359         (SUPPORTS_DISCRIMINATOR): Define.
3360
3361 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3362
3363         PR bootstrap/66685
3364         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3365         there are no CALLs in the same pattern.
3366
3367 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3368
3369         PR rtl-optimization/61047
3370         * rtlanal.c (get_initial_register_offset): New function.
3371         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3372
3373 2015-07-01  Richard Biener  <rguenther@suse.de>
3374
3375         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3376         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3377         ~X CMP C -> X CMP' ~C to ...
3378         * match.pd: ... patterns here.
3379
3380 2015-07-01  Nick Clifton  <nickc@redhat.com>
3381
3382         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3383         a 16-bit value into a 20-bit memory slot.
3384
3385 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3386
3387         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3388         "aarch64_tiny", "aarch64_small", "aarch64_large",
3389         "aarch64_little_endian", "aarch64_big_endian".
3390
3391 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3392
3393         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3394         Document "aarch64_small_fpic".
3395
3396 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3397
3398         * configure.ac: Add check for aarch64 assembler -fpic relocation
3399         modifier support.
3400         * configure: Regenerate.
3401         * config.in: Regenerate.
3402         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3403         to -fPIC if not support of -fpic relocation modifier in assembler.
3404
3405 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3406
3407         PR bootstrap/66685
3408         * rtl.c (classify_insn): Handle returns in PARALLELs.
3409
3410 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3411
3412         PR middle-end/66633
3413         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3414         to true if the function is nested and if not optimizing.
3415         (convert_local_omp_clauses): Initialize need_frame to true if the
3416         function contains nested functions and if not optimizing.
3417
3418 2015-07-01  Richard Biener  <rguenther@suse.de>
3419
3420         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3421         (X & Y) ^ Y -> ~X & Y transforms to ...
3422         * match.pd: ... here.
3423
3424 2015-07-01  Richard Biener <rguenther@suse.de>
3425
3426         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3427         of converts to avoid uninteresting noise from the conversion
3428         simplifying patterns.
3429
3430 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3431
3432         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3433         gcc_assert evaluating its argument for side-effect.
3434
3435 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3436
3437         PR target/64833
3438         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3439         flag_pic is set.
3440
3441 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3442
3443         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3444         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3445         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3446         to the inner DFS walk.
3447
3448 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3449
3450         * target-insns.def (jump): New targetm instruction pattern.
3451         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3452         instead of gen_jump.
3453         (fix_up_crossing_landing_pad): Likewise.
3454         (add_labels_and_missing_jumps): Likewise.
3455         (fix_crossing_conditional_branches): Likewise.
3456         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3457         (force_nonfallthru_and_redirect): Likewise.
3458         * cse.c (cse_insn): Likewise.
3459         * expmed.c (expand_divmod): Likewise.
3460         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3461         * haifa-sched.c (init_before_recovery): Likewise.
3462         (sched_create_recovery_edges): Likewise.
3463         * ifcvt.c (find_cond_trap): Likewise.
3464         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3465         (expand_float, expand_fix): Likewise.
3466         * stmt.c (emit_jump): Likewise.
3467
3468 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3469
3470         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3471         (HAVE_store_multiple, gen_store_multiple): Delete.
3472         * target-insns.def (load_multiple, store_multiple): New targetm
3473         instruction patterns.
3474         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3475         of HAVE_*/gen_* interface.
3476
3477 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3478
3479         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3480         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3481         (gen_mem_signal_fence): Delete.
3482         * target-insns.def (mem_signal_fence, mem_thread_fence)
3483         (memory_barrier): New targetm instruction patterns.
3484         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3485         interface.
3486         (expand_mem_signal_fence): Likewise.
3487
3488 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3489
3490         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3491         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3492         targetm instruction patterns.
3493         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3494         interface.
3495         * calls.c (expand_call): Likewise.
3496         * cfgrtl.c (cfg_layout_finalize): Likewise.
3497         * df-scan.c (df_get_entry_block_def_set): Likewise.
3498         (df_get_exit_block_use_set): Likewise.
3499         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3500         * final.c (final_start_function): Likewise.
3501         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3502         (reposition_prologue_and_epilogue_notes): Likewise.
3503         * reorg.c (find_end_label): Likewise.
3504         * toplev.c (process_options): Likewise.
3505
3506 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3507
3508         * typed-splay-tree.h: New file.
3509
3510 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3511
3512         PR debug/66691
3513         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3514         (lra_substitute_pseudo_within_insn): Ditto.
3515         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3516         of constant.
3517         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3518         to lra_substitute_pseudo.
3519         * lra-lives.c (process_bb_lives): Add an argument to
3520         lra_substitute_pseudo_within_insn call.
3521         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3522         argument to lra_substitute_pseudo and
3523         lra_substitute_pseudo_within_insn calls.
3524         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3525
3526 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3527
3528         * configure: Regenerated.
3529
3530 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3531
3532         * config.gcc: Support i[34567]86-*-elfiamcu target.
3533         * config/i386/iamcu.h: New.
3534         * config/i386/i386.opt: Add -miamcu.
3535         * doc/invoke.texi: Document -miamcu.
3536         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3537         off x87/MMX/SSE/AVX codegen for -miamcu.
3538         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3539         __iamcu/__iamcu__ for -miamcu.
3540         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3541         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3542         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3543         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3544         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3545         MCU by default.  Default long double to 64-bit for Intel MCU.
3546         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3547         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3548         AVX is turned on.
3549         (function_arg_advance_32): Pass value whose size is no larger
3550         than 8 bytes in registers for Intel MCU.
3551         (function_arg_32): Likewise.
3552         (ix86_return_in_memory): Return value whose size is no larger
3553         than 8 bytes in registers for Intel MCU.
3554         (iamcu_alignment): New function.
3555         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3556         true.
3557         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3558         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3559         true.
3560
3561 2015-06-30  Marek Polacek  <polacek@redhat.com>
3562
3563         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3564         both operands of the resulting expression.
3565
3566         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3567         the final expression with the operand's type and then convert
3568         it to the type of the expression.
3569
3570 2015-06-30  Richard Biener  <rguenther@suse.de>
3571
3572         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3573         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3574         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3575         * match.pd: ... to patterns here.
3576
3577 2015-06-30  Richard Biener  <rguenther@suse.de>
3578
3579         PR tree-optimization/66704
3580         * tree-vect-data-refs.c (vect_setup_realignment): Use
3581         make_ssa_name for non-SSA name source.
3582
3583 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3584
3585         PR middle-end/66702
3586         * omp-low.c (simd_clone_adjust): Handle addressable linear
3587         or uniform parameters or non-gimple type uniform parameters.
3588
3589 2015-06-30  Richard Biener  <rguenther@suse.de>
3590
3591         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3592         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3593         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3594         * match.pd: ... here.
3595         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3596         Move (x & y) | x -> x and friends before
3597         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3598
3599 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3600
3601         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3602         -mfix-ut699 is not specified.
3603         (leon3_load): Rename into...
3604         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3605         is specified.
3606
3607 2015-06-30  Marek Polacek  <polacek@redhat.com>
3608
3609         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3610         * match.pd: ... here.
3611
3612 2015-06-30  Richard Biener  <rguenther@suse.de>
3613
3614         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3615         * fold-const.c (build_range_check): Replace uses of
3616         HAVE_canonicalize_funcptr_for_compare.
3617         (fold_widened_comparison): Likewise.
3618         (fold_sign_changed_comparison): Likewise.
3619         * dojump.c: Include "target.h".
3620         (do_compare_and_jump): Replace uses of
3621         HAVE_canonicalize_funcptr_for_compare and
3622         gen_canonicalize_funcptr_for_compare.
3623         * expr.c (do_store_flag): Likewise.
3624
3625 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3626
3627         PR tree-optimization/66652
3628         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3629         max_loop_iterations to determine if nit + 1 overflows.
3630
3631 2015-06-30  Richard Biener  <rguenther@suse.de>
3632
3633         * tree-vrp.c (register_edge_assert_for_2): Also register
3634         asserts for dominating conversion results.
3635
3636 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3637
3638         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3639         field in struct iv.
3640
3641 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3642
3643         PR target/66509
3644         * configure.ac: Fix filds and fildq test for 64-bit.
3645         * configure: Regenerated.
3646
3647 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3648
3649         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3650         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3651
3652 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3653
3654         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3655         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3656
3657 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3658
3659         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3660         Set attribute "length_nobnd" instead of "length".
3661         (*jcc_2): Ditto.
3662         (jump): Ditto.
3663         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3664
3665 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3666
3667         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3668         assert less restrictive.
3669
3670 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3671
3672         PR fortran/66605
3673         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3674         do_warn_unused_parameter.
3675         * function.c (do_warn_unused_parameter): Move from here.
3676         * function.h (do_warn_unused_parameter): Do not declare.
3677
3678 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3679
3680         PR target/65697
3681         * gcc.target/arm/armv-sync-comp-swap.c: New.
3682         * gcc.target/arm/armv-sync-op-acquire.c: New.
3683         * gcc.target/arm/armv-sync-op-full.c: New.
3684         * gcc.target/arm/armv-sync-op-release.c: New.
3685
3686 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3687
3688         PR target/65697
3689         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3690         initial acquire barrier with final barrier.
3691
3692 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3693
3694         PR target/65697
3695         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3696         initial acquire barrier with final barrier.
3697
3698 2015-06-29  Richard Henderson  <rth@redhat.com>
3699
3700         * config/i386/constraints.md (Bf): New constraint.
3701         * config/i386/i386-c.c (ix86_target_macros): Define
3702         __GCC_ASM_FLAG_OUTPUTS__.
3703         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3704         as flags outputs.
3705         * doc/extend.texi (FlagOutputOperands): Document them.
3706
3707 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3708
3709         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3710         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3711         unspec name.
3712         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3713         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3714         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3715         (aarch64_symbol_context): Ditto.
3716         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3717         and use new pattern name.
3718         (aarch64_expand_mov_immediate): Ditto.
3719         (aarch64_print_operand): Ditto.
3720         (aarch64_classify_tls_symbol): Ditto.
3721
3722 2015-06-29  Marek Polacek  <polacek@redhat.com>
3723             Marc Glisse  <marc.glisse@inria.fr>
3724
3725         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
3726         * match.pd: ... pattern here.
3727
3728 2015-06-29  Tom de Vries  <tom@codesourcery.com>
3729
3730         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
3731         function structure.
3732
3733 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3734
3735         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
3736         feature description, split out the native option, add a link to
3737         the feature documentation, rearrange and slightly rewrite text.
3738         (Aarch64 options, -mcpu): Likewise.
3739         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
3740         +rdma implies Adv. SIMD.
3741
3742 2015-06-29  Marek Polacek  <polacek@redhat.com>
3743
3744         PR c/66322
3745         * function.c (stack_protect_epilogue): Remove a cast to int.
3746         * doc/invoke.texi: Update -Wswitch-bool description.
3747
3748 2015-06-29  Richard Biener  <rguenther@suse.de>
3749
3750         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
3751         * fold-const.c (fold_binary_loc): Move &A - &B simplification
3752         via ptr_difference_const ...
3753         * match.pd: ... here.
3754         When matching (X ^ Y) == Y also match with swapped operands.
3755
3756 2015-06-29  Richard Biener  <rguenther@suse.de>
3757
3758         * lto-streamer.h (LTO_major_version): Bump to 5.
3759
3760 2015-06-29  Richard Biener  <rguenther@suse.de>
3761
3762         PR tree-optimization/66677
3763         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
3764         STMT_VINFO_VEC_STMT clobbering less strict.
3765
3766 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3767
3768         PR middle-end/64130
3769         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
3770         division, compute max and min when value ranges for dividend and
3771         divisor are available.
3772
3773 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
3774             Sandra Loosemore <sandra@codesourcery.com>
3775
3776         * regrename.h (regrename_do_replace): Change to return bool.
3777         * regrename.c (rename_chains): Check return value of
3778         regname_do_replace.
3779         (regrename_do_replace): Re-validate the modified insns and
3780         return bool status.
3781         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
3782         Update to match rename_chains changes.
3783         * config/c6x/c6x.c (try_rename_operands): Assert that
3784         regrename_do_replace returns true.
3785
3786 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
3787
3788         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
3789         operand 2 here.  Use copy_addr_to_reg to copy non-index
3790         register operand 2 to a temporary.
3791         (<mode>_stx): Ditto for operand 1.
3792         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
3793         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
3794         (ix86_store_bounds): Ditto.
3795
3796 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
3797
3798         * print-tree.c (print_node) [TREE_VEC]: Print its length.
3799
3800 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
3801
3802         * gimple.c (gimple_call_set_fndecl): Remove.
3803         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
3804         build1_loc directly instead of build_fold_addr_expr_loc.
3805
3806 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3807
3808         * hash-map.h (hash_map::traverse): Use the definition of the
3809         Key typedef rather than the typedef itself.
3810
3811 2015-06-26  Martin Jambor  <mjambor@suse.cz>
3812
3813         PR debug/66301
3814         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
3815         NULL instead of calling dump_enabled_p.
3816
3817 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3818
3819         * config/aarch64/aarch64.opt: (override): New.
3820         * doc/invoke.texi (override): Document.
3821         * config/aarch64/aarch64.c (aarch64_flag_desc): New
3822         (aarch64_fusible_pairs): Likewise.
3823         (aarch64_tuning_flags): Likewise.
3824         (aarch64_tuning_override_function): Likewise.
3825         (aarch64_tuning_override_functions): Likewise.
3826         (aarch64_parse_one_option_token): Likewise.
3827         (aarch64_parse_boolean_options): Likewise.
3828         (aarch64_parse_fuse_string): Likewise.
3829         (aarch64_parse_tune_string): Likewise.
3830         (aarch64_parse_one_override_token): Likewise.
3831         (aarch64_parse_override_string): Likewise.
3832         (aarch64_override_options): Parse the -override string if it
3833         is present.
3834
3835 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3836
3837         * config/aarch64/aarch64-protos.h (tune_params): Remove
3838         const from members.
3839         (aarch64_tune_params): Remove const, change to no longer be
3840         a pointer.
3841         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
3842         change to no longer be a pointer, initialize to generic_tunings.
3843         (aarch64_min_divisions_for_recip_mul): Change dereference of
3844         aarch64_tune_params to member access.
3845         (aarch64_reassociation_width): Likewise.
3846         (aarch64_rtx_mult_cost): Likewise.
3847         (aarch64_address_cost): Likewise.
3848         (aarch64_branch_cost): Likewise.
3849         (aarch64_rtx_costs): Likewise.
3850         (aarch64_register_move_cost): Likewise.
3851         (aarch64_memory_move_cost): Likewise.
3852         (aarch64_sched_issue_rate): Likewise.
3853         (aarch64_builtin_vectorization_cost): Likewise.
3854         (aarch64_override_options): Take a copy of the selected tuning
3855         struct in to aarch64_tune_params, rather than just setting
3856         a pointer, change dereferences of aarch64_tune_params to member
3857         accesses.
3858         (aarch64_override_options_after_change): Change dereferences of
3859         aarch64_tune_params to member access.
3860         (aarch64_macro_fusion_p): Likewise.
3861         (aarch_macro_fusion_pair_p): Likewise.
3862         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
3863
3864 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3865
3866         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
3867         (aarch64_tune_flags): Likewise.
3868         (AARCH64_TUNE_FMA_STEERING): Likewise.
3869         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
3870         to AARCH64_FL_USE_FMA_STEERING_PASS.
3871         (cortex-a57.cortex-a53): Likewise.
3872         (cortex-a72): Use cortexa72_tunings.
3873         (cortex-a72.cortex-a53): Likewise.
3874         (exynos-m1): Likewise.
3875         * config/aarch64/aarch64-protos.h (tune_params): Add
3876         a field: extra_tuning_flags.
3877         * config/aarch64/aarch64-tuning-flags.def: New.
3878         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
3879         (aarch64_extra_tuning_flags): Likewise.
3880         (aarch64_tune_params): Declare here.
3881         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
3882         (cortexa53_tunings): Likewise.
3883         (cortexa57_tunings): Likewise.
3884         (thunderx_tunings): Likewise.
3885         (xgene1_tunings): Likewise.
3886         (cortexa72_tunings): New.
3887         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
3888          (gate): Check against aarch64_tune_params.
3889         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
3890         aarch64-protos.h.
3891
3892 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3893
3894         * config/aarch64/aarch64-fusion-pairs.def: New.
3895         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
3896         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
3897         aarch64_fusion_pairs.
3898         (AARCH64_FUSE_MOV_MOVK): Likewise.
3899         (AARCH64_FUSE_ADRP_ADD): Likewise.
3900         (AARCH64_FUSE_MOVK_MOVK): Likewise.
3901         (AARCH64_FUSE_ADRP_LDR): Likewise.
3902         (AARCH64_FUSE_CMP_BRANCH): Likewise.
3903
3904 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3905
3906         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
3907         SYMBOL_SMALL_GOT_28K.
3908         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
3909         relocation modifiers.
3910         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
3911         (ldr_got_small_28k_<mode>): New.
3912         (ldr_got_small_28k_sidi): New.
3913         * config/aarch64/iterators.md (got_modifier): New mode iterator.
3914         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
3915         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
3916         SYMBOL_SMALL_GOT_28K.
3917         (aarch64_rtx_costs): Add costs for new instruction sequences.
3918         (initialize_aarch64_code_model): Initialize new model.
3919         (aarch64_classify_symbol): Recognize new model and new symbol classification.
3920         (aarch64_asm_preferred_eh_data_format): Support new model.
3921         (aarch64_load_symref_appropriately): Generate new instruction
3922         sequences for -fpic.
3923         (TARGET_USE_PSEUDO_PIC_REG): New definition.
3924         (aarch64_use_pseudo_pic_reg): New function.
3925
3926 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3927
3928         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
3929         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
3930         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
3931         (aarch64_expand_mov_immediate): Ditto.
3932         (aarch64_print_operand): Ditto.
3933         (aarch64_classify_symbol): Ditto.
3934
3935 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3936
3937         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
3938
3939 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
3940
3941         PR bootstrap/66638
3942         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
3943         assertion failed.  Remove assertion itself.
3944
3945 2015-06-26  Richard Biener  <rguenther@suse.de>
3946
3947         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
3948         and -A CMP CST -> A CMP -CST which is redundant with a pattern
3949         in match.pd.
3950         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
3951         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
3952         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
3953         * match.pd: ... patterns here.
3954
3955 2015-06-26  Marek Polacek  <polacek@redhat.com>
3956
3957         * match.pd ((x | y) & ~(x & y) -> x ^ y,
3958         (x | y) & (~x ^ y) -> x & y): New patterns.
3959
3960 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3961
3962         * rtl.h (emit): Add an optional boolean parameter to control
3963         whether barriers are emitted.
3964         * emit-rtl.c (emit): Likewise.
3965         * gensupport.c (get_emit_function): Return null rather than "emit".
3966         * genemit.c (gen_emit_seq): Handle the null return value.
3967         Don't emit barriers after the final instruction in the sequence.
3968         * gentarget-def.c (main): Don't emit barriers after the instruction.
3969
3970 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3971
3972         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
3973         TARGET_UNIFIED_ASM.
3974
3975 2015-06-26  Richard Biener  <rguenther@suse.de>
3976
3977         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
3978
3979 2015-06-26  Richard Biener  <rguenther@suse.de>
3980
3981         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
3982         irrespective on whether the inner operation has a single use
3983         of both off are constant.
3984
3985 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
3986             Segher Boessenkool  <segher@kernel.crashing.org>
3987
3988         PR target/66412
3989         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
3990         before doing PUT_MODE or PUT_CODE on operands to avoid
3991         in-place RTX modification.
3992
3993 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3994
3995         * gentarget-def.c (def_target_insn): Cast return of strtol to
3996         unsigned int.
3997
3998 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3999
4000         * gimple.h (gimple_call_set_fn): Move inline function.
4001         * gimple.c (gimple_call_set_fn): Relocate here.
4002
4003 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
4004
4005         PR target/65979
4006         PR target/66611
4007         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
4008         the replacement insn will work.
4009
4010 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4011
4012         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
4013         by default.
4014
4015 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4016
4017         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
4018         * cgraph.h: Include ipa-ref.h and plugin-api.h.
4019         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
4020         (symtab_node::address_can_be_compared_p): Move function.
4021         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
4022         definition here.
4023         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
4024         * auto-profile.c: Likewise.
4025         * bb-reorder.c: Likewise.
4026         * builtins.c: Likewise.
4027         * calls.c: Likewise.
4028         * cfgexpand.c: Likewise.
4029         * cgraphbuild.c: Likewise.
4030         * cgraphclones.c: Likewise.
4031         * cgraphunit.c: Likewise.
4032         * combine.c: Likewise.
4033         * coverage.c: Likewise.
4034         * data-streamer-in.c: Likewise.
4035         * data-streamer-out.c: Likewise.
4036         * data-streamer.c: Likewise.
4037         * dbxout.c: Likewise.
4038         * dwarf2out.c: Likewise.
4039         * except.c: Likewise.
4040         * expr.c: Likewise.
4041         * final.c: Likewise.
4042         * fold-const.c: Likewise.
4043         * ggc-page.c: Likewise.
4044         * gimple-fold.c: Likewise.
4045         * gimple-iterator.c: Likewise.
4046         * gimple-pretty-print.c: Likewise.
4047         * gimple-streamer-in.c: Likewise.
4048         * gimple-streamer-out.c: Likewise.
4049         * gimple.c: Likewise.
4050         * gimplify.c: Likewise.
4051         * ipa-chkp.c: Likewise.
4052         * ipa-comdats.c: Likewise.
4053         * ipa-cp.c: Likewise.
4054         * ipa-devirt.c: Likewise.
4055         * ipa-icf-gimple.c: Likewise.
4056         * ipa-icf.c: Likewise.
4057         * ipa-inline-analysis.c: Likewise.
4058         * ipa-inline-transform.c: Likewise.
4059         * ipa-inline.c: Likewise.
4060         * ipa-polymorphic-call.c: Likewise.
4061         * ipa-profile.c: Likewise.
4062         * ipa-prop.c: Likewise.
4063         * ipa-pure-const.c: Likewise.
4064         * ipa-ref.c: Likewise.
4065         * ipa-reference.c: Likewise.
4066         * ipa-split.c: Likewise.
4067         * ipa-utils.c: Likewise.
4068         * ipa-visibility.c: Likewise.
4069         * ipa.c: Likewise.
4070         * langhooks.c: Likewise.
4071         * lto-cgraph.c: Likewise.
4072         * lto-compress.c: Likewise.
4073         * lto-opts.c: Likewise.
4074         * lto-section-in.c: Likewise.
4075         * lto-section-out.c: Likewise.
4076         * lto-streamer-in.c: Likewise.
4077         * lto-streamer-out.c: Likewise.
4078         * lto-streamer.c: Likewise.
4079         * omp-low.c: Likewise.
4080         * opts-global.c: Likewise.
4081         * passes.c: Likewise.
4082         * predict.c: Likewise.
4083         * print-tree.c: Likewise.
4084         * profile.c: Likewise.
4085         * ree.c: Likewise.
4086         * sanopt.c: Likewise.
4087         * stor-layout.c: Likewise.
4088         * symtab.c: Likewise.
4089         * toplev.c: Likewise.
4090         * trans-mem.c: Likewise.
4091         * tree-cfg.c: Likewise.
4092         * tree-chkp.c: Likewise.
4093         * tree-eh.c: Likewise.
4094         * tree-emutls.c: Likewise.
4095         * tree-inline.c: Likewise.
4096         * tree-nested.c: Likewise.
4097         * tree-parloops.c: Likewise.
4098         * tree-pretty-print.c: Likewise.
4099         * tree-profile.c: Likewise.
4100         * tree-sra.c: Likewise.
4101         * tree-ssa-alias.c: Likewise.
4102         * tree-ssa-live.c: Likewise.
4103         * tree-ssa-loop-ivcanon.c: Likewise.
4104         * tree-ssa-loop-ivopts.c: Likewise.
4105         * tree-ssa-pre.c: Likewise.
4106         * tree-ssa-sccvn.c: Likewise.
4107         * tree-ssa-strlen.c: Likewise.
4108         * tree-ssa-structalias.c: Likewise.
4109         * tree-streamer-in.c: Likewise.
4110         * tree-streamer-out.c: Likewise.
4111         * tree-streamer.c: Likewise.
4112         * tree-switch-conversion.c: Likewise.
4113         * tree-tailcall.c: Likewise.
4114         * tree-vect-data-refs.c: Likewise.
4115         * tree-vect-stmts.c: Likewise.
4116         * tree-vectorizer.c: Likewise.
4117         * tree.c: Likewise.
4118         * tsan.c: Likewise.
4119         * ubsan.c: Likewise.
4120         * value-prof.c: Likewise.
4121         * varasm.c: Likewise.
4122         * varpool.c: Likewise.
4123         * config/arm/arm.c: Likewise.
4124         * config/bfin/bfin.c: Likewise.
4125         * config/c6x/c6x.c: Likewise.
4126         * config/cris/cris.c: Likewise.
4127         * config/darwin-c.c: Likewise.
4128         * config/darwin.c: Likewise.
4129         * config/i386/i386.c: Likewise.
4130         * config/i386/winnt.c: Likewise.
4131         * config/microblaze/microblaze.c: Likewise.
4132         * config/mips/mips.c: Likewise.
4133         * config/rs6000/rs6000.c: Likewise.
4134         * config/rx/rx.c: Likewise.
4135         * config/s390/s390.c: Likewise.
4136         * config/tilegx/mul-tables.c: Likewise.
4137
4138 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4139
4140         * config/aarch64/aarch64.c, config/alpha/alpha.c,
4141         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4142         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4143         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4144         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4145         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4146         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4147         config/microblaze/microblaze.c, config/mips/mips.c,
4148         config/mmix/mmix.c, config/mn10300/mn10300.c,
4149         config/moxie/moxie.c, config/msp430/msp430.c,
4150         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4151         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4152         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4153         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4154         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4155         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4156         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4157         target-def.h include.
4158         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4159
4160 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4161
4162         * Makefile.in (TARGET_DEF): Add target-insns.def.
4163         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4164         (build/gentarget-def.o): New rule.
4165         (genprogrtl): Add target-def.
4166         * target-insns.def, gentarget-def.c: New files.
4167         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4168         based on the contents of target-insns.def.
4169         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4170         (HAVE_return, gen_return): Delete.
4171         * target-def.h: Include insn-target-def.h.
4172         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4173         instead of direct calls.  Rely on them to do the appropriate assertions.
4174         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4175         (convert_jumps_to_returns): Use targetm interface instead of
4176         direct calls.
4177         (thread_prologue_and_epilogue_insns): Likewise.
4178         * reorg.c (find_end_label, dbr_schedule): Likewise.
4179         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4180         * shrink-wrap.c (convert_to_simple_return): Likewise.
4181         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4182
4183 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4184
4185         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4186         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4187         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4188         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4189         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4190         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4191         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4192         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4193         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4194         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4195         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4196         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4197         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4198         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4199         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4200         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4201         includes to end.
4202
4203 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4204
4205         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4206         (unbounded_int_hashmap_traits::key_type): Likewise.
4207         * hash-map.h (hash_map): Get the key type from the traits.
4208         * hash-traits.h (default_hash_traits): By default, inherit from the
4209         template parameter.
4210         * alias.c (alias_set_traits): Delete.
4211         (alias_set_entry_d::children): Use alias_set_hash as the first
4212         template parameter.
4213         (record_alias_subset): Update accordingly.
4214         * except.c (tree_hash_traits): Delete.
4215         (type_to_runtime_map): Use tree_hash as the first template parameter.
4216         (init_eh): Update accordingly.
4217         * genmatch.c (capture_id_map_hasher): Delete.
4218         (cid_map_t): Use nofree_string_hash as first template parameter.
4219         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4220         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4221         Use symbol_compare_hash as the first template parameter in
4222         subdivide_hash_map.
4223         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4224         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4225         template parameter.
4226         * passes.c (pass_registry_hasher): Delete.
4227         (name_to_pass_map): Use nofree_string_hash as the first template
4228         parameter.
4229         (register_pass_name): Update accordingly.
4230         * sanopt.c (sanopt_tree_map_traits): Delete.
4231         (sanopt_tree_triplet_map_traits): Delete.
4232         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4233         template parameter.
4234         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4235         the first template parameter.
4236         * sese.c (rename_map_hasher): Delete.
4237         (rename_map_type): Use tree_ssa_name_hash as the first template
4238         parameter.
4239         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4240         (function_summary::m_map): Use map_hash as the first template
4241         parameter.
4242         (function_summary::release): Update accordingly.
4243         * tree-if-conv.c (phi_args_hash_traits): Delete.
4244         (predicate_scalar_phi): Use tree_operand_hash as the first template
4245         parameter to phi_arg_map.
4246         * tree-inline.h (dependence_hasher): Delete.
4247         (copy_body_data::dependence_map): Use dependence_hash as the first
4248         template parameter.
4249         * tree-inline.c (remap_dependence_clique): Update accordingly.
4250         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4251         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4252         parameter.
4253         (addr_stridxptr): Update accordingly.
4254         * value-prof.c (profile_id_traits): Delete.
4255         (cgraph_node_map): Use profile_id_hash as the first template
4256         parameter.
4257         (init_node_map): Update accordingly.
4258         * config/alpha/alpha.c (string_traits): Delete.
4259         (machine_function::links): Use nofree_string_hash as the first
4260         template parameter.
4261         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4262         * config/m32c/m32c.c (pragma_traits): Delete.
4263         (pragma_htab): Use nofree_string_hash as the first template parameter.
4264         (m32c_note_pragma_address): Update accordingly.
4265         * config/mep/mep.c (pragma_traits): Delete.
4266         (pragma_htab): Use nofree_string_hash as the first template parameter.
4267         (mep_note_pragma_flag): Update accordingly.
4268         * config/mips/mips.c (mips16_flip_traits): Delete.
4269         (mflip_mips16_htab): Use nofree_string_hash as the first template
4270         parameter.
4271         (mflip_mips16_use_mips16_p): Update accordingly.
4272         (local_alias_traits): Delete.
4273         (mips16_local_aliases): Use nofree_string_hash as the first template
4274         parameter.
4275         (mips16_local_alias): Update accordingly.
4276
4277 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4278
4279         * hash-map-traits.h (default_hashmap_traits): Delete.
4280
4281 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4282
4283         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4284         (unbounded_int_hashmap_traits): Likewise.
4285         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4286
4287 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4288
4289         * ipa-icf.h (symbol_compare_hash): New class.
4290         (symbol_compare_hashmap_traits): Use it.
4291         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4292         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4293         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4294         default_hashmap_traits.
4295         * sanopt.c (sanopt_tree_triplet_hash): New class.
4296         (sanopt_tree_triplet_map_traits): Use it.
4297
4298 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4299
4300         * gengtype-parse.c (require_template_declaration): Allow '+' in
4301         template parameters.  Consolidate cases.
4302         * hash-traits.h (int_hash): New class.
4303         * alias.c (alias_set_hash): New structure.
4304         (alias_set_traits): Use it.
4305         * symbol-summary.h (function_summary::map_hash): New class.
4306         (function_summary::summary_hashmap_traits): Use it.
4307         * tree-inline.h (dependence_hash): New class.
4308         (dependence_hasher): Use it.
4309         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4310         * value-prof.c (profile_id_hash): New class.
4311         (profile_id_traits): Use it.
4312
4313 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4314
4315         * config/mips/mips.c (mips16_flip_traits): Use it.
4316         (local_alias_traits, mips16_local_aliases): Convert from a map of
4317         rtxes to a map of symbol names.
4318         (mips16_local_alias): Update accordingly.
4319
4320 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4321
4322         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4323         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4324         * passes.c (pass_registry_hasher): Likewise.
4325         * config/alpha/alpha.c (string_traits): Likewise.
4326         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4327         * config/m32c/m32c.c (pragma_traits): Likewise.
4328         * config/mep/mep.c (pragma_traits): Likewise.
4329
4330 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4331
4332         * tree-hash-traits.h (tree_hash): New class.
4333         * except.c: Include tree-hash-traits.h.
4334         (tree_hash_traits): Use tree_hash.
4335
4336 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4337
4338         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4339         * sese.c: Include tree-hash-traits.h.
4340         (rename_map_hasher): Use tree_ssa_name_hasher.
4341
4342 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4343
4344         * tree-hash-traits.h (tree_decl_hash): New class.
4345         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4346         (stridxlist_hash_traits): Use tree_decl_hash.
4347
4348 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4349
4350         * tree-hash-traits.h: New file.
4351         (tree_operand_hash): New class.
4352         * sanopt.c: Include tree-hash-traits.h.
4353         (sanopt_tree_map_traits): Use tree_operand_hash.
4354         * tree-if-conv.c: Include tree-hash-traits.h.
4355         (phi_args_hash_traits): Use tree_operand_hash.
4356         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4357         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4358
4359 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4360
4361         * hash-map-traits.h: Include hash-traits.h.
4362         (simple_hashmap_traits): New class.
4363         * mem-stats.h (hash_map): Change the default traits to
4364         simple_hashmap_traits<default_hash_traits<Key> >.
4365
4366 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4367
4368         * hash-table.h: Update comments.
4369
4370 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4371
4372         * hash-traits.h (default_hash_traits): New structure.
4373         * hash-set.h (default_hashset_traits): Delete.
4374         (hash_set): Use default_hash_traits<Key> instead of
4375         default_hashset_traits.  Delete hash_entry type and use Key directly.
4376         * ipa-devirt.c (pair_traits): Delete.
4377         (default_hash_traits <type_pair>): Override.
4378         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4379         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4380
4381 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4382
4383         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4384
4385 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4386
4387         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4388         (has_is_empty, is_empty_helper): Delete.
4389         (has_mark_deleted, mark_deleted_helper): Delete.
4390         (has_mark_empty, mark_empty_helper): Delete.
4391         (hash_table::is_deleted): Call the Descriptor unconditionally.
4392         (hash_table::is_empty): Likewise.
4393         (hash_table::mark_deleted): Likewise.
4394         (hash_table::mark_empty): Likewise.
4395
4396 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4397
4398         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4399         redundant typedefs and members.
4400         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4401         redundant typedefs.
4402         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4403         * ipa-devirt.c (odr_name_hasher): Likewise.
4404         (polymorphic_call_target_hasher): Likewise.
4405         * ira-costs.c (cost_classes_hasher): Likewise.
4406         * statistics.c (stats_counter_hasher): Likewise.
4407         * trans-mem.c (log_entry_hasher): Likewise.
4408         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4409         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4410         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4411         * var-tracking.c (variable_hasher): Likewise.
4412         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4413         Remove redundant typedefs and members.
4414
4415 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4416
4417         * hash-traits.h (ggc_cache_hasher): Rename to...
4418         (ggc_cache_remove): ...this and remove typedefs.
4419         (ggc_cache_ptr_hash): New class.
4420         * hash-table.h: Update commentary.
4421         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4422         rather than ggc_cache_hasher.
4423         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4424         (const_double_hasher, const_fixed_hasher): Likewise.
4425         * function.c (insn_cache_hasher): Likewise.
4426         * trans-mem.c (tm_wrapper_hasher): Likewise.
4427         * tree.h (tree_decl_map_cache_hasher): Likewise.
4428         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4429         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4430         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4431         * varasm.c (tm_clone_hasher): Likewise.
4432         * config/i386/i386.c (dllimport_hasher): Likewise.
4433         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4434         (tree_hasher): Likewise.
4435
4436 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4437
4438         * hash-traits.h (ggc_hasher): Rename to...
4439         (ggc_remover): ...this and remove typedefs.
4440         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4441         (ggc_ptr_hash): New class.
4442         * hash-table.h: Update comment.
4443         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4444         ggc_hasher.
4445         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4446         (tree_descriptor_hasher): Likewise.
4447         * cgraph.c (function_version_hasher): Likewise.
4448         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4449         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4450         (dw_loc_list_hasher, addr_hasher): Likewise.
4451         * function.h (used_type_hasher): Likewise.
4452         * function.c (temp_address_hasher): Likewise.
4453         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4454         * libfuncs.h (libfunc_hasher): Likewise.
4455         * lto-streamer.h (decl_state_hasher): Likewise.
4456         * optabs.c (libfunc_decl_hasher): Likewise.
4457         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4458         * varasm.c (section_hasher, object_block_hasher): Likewise.
4459         (const_rtx_desc_hasher): Likewise.
4460         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4461         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4462
4463 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4464
4465         * hash-traits.h (free_ptr_hash): New class.
4466         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4467         rather than typed_free_remove.  Remove redudant typedefs.
4468         (external_ref_hasher): Likewise.
4469         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4470         (ehspec_hasher): Likewise.
4471         * ggc-common.c (saving_hasher): Likewise.
4472         * gimplify.c (gimplify_hasher): Likewise.
4473         * haifa-sched.c (delay_i2_hasher): Likewise.
4474         * loop-invariant.c (invariant_expr_hasher): Likewise.
4475         * loop-iv.c (biv_entry_hasher): Likewise.
4476         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4477         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4478         * tree-cfg.c (locus_discrim_hasher): Likewise.
4479         * tree-eh.c (finally_tree_hasher): Likewise.
4480         * tree-into-ssa.c (var_info_hasher): Likewise.
4481         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4482         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4483         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4484         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4485         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4486         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4487         (shared_bitmap_hasher): Likewise.
4488         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4489         * tree-vectorizer.h (peel_info_hasher): Likewise.
4490         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4491         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4492
4493 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4494
4495         * hash-table.h: Update comments.
4496         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4497         (nofree_ptr_hash): New class.
4498         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4499         than typed_noop_remove.  Remove redudant typedefs.
4500         * attribs.c (attribute_hasher): Likewise.
4501         * cfg.c (bb_copy_hasher): Likewise.
4502         * cselib.c (cselib_hasher): Likewise.
4503         * dse.c (invariant_group_base_hasher): Likewise.
4504         * dwarf2cfi.c (trace_info_hasher): Likewise.
4505         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4506         (comdat_type_hasher, loc_list_hasher): Likewise.
4507         * gcse.c (pre_ldst_expr_hasher): Likewise.
4508         * genmatch.c (id_base): Likewise.
4509         * genrecog.c (test_pattern_hasher): Likewise.
4510         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4511         * haifa-sched.c (delay_i1_hasher): Likewise.
4512         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4513         * ipa-icf.h (congruence_class_group_hash): Likewise.
4514         * ipa-profile.c (histogram_hash): Likewise.
4515         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4516         * lto-streamer.h (string_slot_hasher): Likewise.
4517         * lto-streamer.c (tree_entry_hasher): Likewise.
4518         * plugin.c (event_hasher): Likewise.
4519         * postreload-gcse.c (expr_hasher): Likewise.
4520         * store-motion.c (st_expr_hasher): Likewise.
4521         * tree-sra.c (uid_decl_hasher): Likewise.
4522         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4523         (ssa_name_var_hash): Likewise.
4524         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4525         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4526         * tree-ssa-pre.c (pre_expr_d): Likewise.
4527         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4528         * vtable-verify.h (registration_hasher): Likewise.
4529         * vtable-verify.c (vtbl_map_hasher): Likewise.
4530         * config/arm/arm.c (libcall_hasher): Likewise.
4531         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4532         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4533         * config/sol2.c (comdat_entry_hasher): Likewise.
4534         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4535         (print_fold_checksum, fold_checksum_tree): Likewise.
4536         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4537         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4538         (fold_build_call_array_loc): Likewise.
4539         * tree-ssa-ccp.c (gimple_htab): Likewise.
4540         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4541         rather than pointer_type.
4542
4543 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4544
4545         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4546         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4547
4548 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4549
4550         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4551         (ggc_hasher::ggc_mx): Likewise.
4552         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4553         that duplicate ggc_hasher ones.
4554
4555 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4556
4557         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4558         (gt_cleare_cache): Check here for deleted and empty entries.
4559         Replace handle_cache_entry with a call to keep_cache_entry.
4560         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4561         (ggc_cache_hasher::keep_cache_entry): New function.
4562         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4563         (tm_wrapper_hasher::keep_cache_entry): New function.
4564         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4565         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4566         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4567         (type_cache_hasher::keep_cache_entry): New function.
4568         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4569         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4570         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4571         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4572         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4573         (tm_clone_hasher::keep_cache_entry): New function.
4574         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4575         (dllimport_hasher::keep_cache_entry): New function.
4576
4577 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4578
4579         * hash-table.h: Include hash-traits.h.
4580         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4581         (ggc_cache_hasher): Move to...
4582         * hash-traits.h: ...this new file.
4583
4584 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4585
4586         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4587         struct cl_optimization.
4588         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4589         * tree.c (make_node_stat): Allocate cl_optimization struct.
4590         (copy_node_stat): Allocate and copy cl_optimization struct.
4591
4592 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4593
4594         * function.h (struct incoming_args): Move struct.
4595         (pass_by_reference, reference_callee_copied): Remove prototypes.
4596         * emit-rtl.h (struct incoming_args): Relocate struct here.
4597         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4598         prototypes here.
4599         * function.c (pass_by_reference, reference_callee_copied): Move.
4600         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4601         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4602         * ipa-chkp.c: Include calls.h.
4603
4604 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4605
4606         * alias.h (alias_set_type): Move typedef.
4607         * coretypes.h (alias_set_type): Relocate typedef here.
4608         * rtl.h: Don't include alias.h.
4609
4610 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4611
4612         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4613         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4614         and instance.
4615         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4616         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4617         doesn't exist.
4618         * calls.c: Include hard-reg-set.h before rtl.h.
4619         * ira.c: Likewise.
4620
4621 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4622             Vladimir Makarov  <vmakarov@redhat.com>
4623
4624         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4625         Add assert.
4626
4627 2015-06-25  Richard Biener  <rguenther@suse.de>
4628
4629         * fold-const.c (fold_binary_loc): Move simplification of
4630         (X <<>> C1) & C2 ...
4631         * match.pd: ... here.
4632
4633 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4636
4637 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4638
4639         * match.pd: Add patterns for vec_conds between 1 and 0.
4640
4641 2015-06-25  Richard Biener  <rguenther@suse.de>
4642
4643         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4644         STMT_VINFO_VEC_STMT for SLP.
4645         (vectorizable_store): Likewise.
4646         (vectorizable_load): Likewise.
4647         (vect_transform_stmt): Catch SLP vectorization clobbering
4648         STMT_VINFO_VEC_STMT.
4649
4650 2015-06-25  Richard Biener  <rguenther@suse.de>
4651
4652         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4653         dumping.
4654         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4655         cleanup resulting dead code and parameters.
4656         (vect_transform_slp_perm_load): Adjust.
4657
4658 2015-06-25  Nick Clifton  <nickc@redhat.com>
4659
4660         * config/bfin/bfin.c (bfin_expand_prologue): Set
4661         current_function_static_stack_size if flag_stack_usage_info is set.
4662         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4663         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4664         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4665         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4666
4667 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4668
4669         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4670         comment that the generated IV is unsigned.
4671
4672 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4673
4674         PR target/29693
4675         * config/arm/arm.c (arm_dbx_register_number): Return
4676         DWARF_FRAME_REGISTERS by default.
4677
4678 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4679
4680         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4681         argument.  Call verify_dominator when reusing dominator info.
4682
4683 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4684
4685         PR target/66563
4686         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4687         an additional element of the unspec vector.  Modify indices
4688         of operands.
4689         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4690         * config/sh/sh.c (prepare_move_operands): Pass incremented
4691         const_int to gen_GOTaddr2picreg.
4692         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4693
4694 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4695
4696         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4697         Condition on TARGET_FLOAT.
4698
4699 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4700
4701         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4702         and (no)crypto.
4703
4704 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4705
4706         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4707
4708         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4709         aarch64_err_no_fpadvsimd.
4710
4711         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4712         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4713         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4714         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4715         Turn error into assert, test TARGET_FLOAT.
4716         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4717         TARGET_FLOAT.
4718
4719 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4720
4721         PR debug/66482
4722         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4723
4724 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4725
4726         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
4727
4728 2015-06-24 Renlin Li <renlin.li@arm.com>
4729
4730         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
4731         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
4732
4733 2015-06-24  Richard Biener  <rguenther@suse.de>
4734
4735         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
4736         (main): Likewise.
4737         (lower_opt_convert): Support lowering of conditional view_convert.
4738         (parser::parse_operation): Likewise.
4739         (parser::parse_for): Likewise.
4740
4741 2015-06-24  Renlin Li  <renlin.li@arm.com>
4742
4743         * varasm.c (emit_local): Use unsigned int for align variable.
4744
4745 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4746
4747         PR target/63408
4748         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
4749         for negative numbers.
4750
4751 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4752
4753         PR rtl-optimization/66306
4754         * reload.c (find_reloads): Swap the match_dup info for
4755         commutative operands.
4756
4757 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4758
4759         * config/s390/vx-builtins.md
4760         ("vec_scatter_element<mode>_<non_vec_int>")
4761         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
4762         attribute with bhfgq.
4763
4764 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4765
4766         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
4767
4768 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4769
4770         * config/s390/s390-builtin-types.def: Add flag to indicate the
4771         options under which the function type is needed.
4772         * config/s390/s390-builtins.def: Add flag to indicate the options
4773         under which the builtin is enabled.
4774         * config/s390/s390-builtins.h: Add flags parameter to macro
4775         definitions.
4776         (bflags_for_builtin): New function.
4777         (flags_for_builtin): Renamed to ...
4778         (opflags_for_builtin): ... this.
4779         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
4780         flags_for_builtin to bflags_for_builtin and
4781         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
4782         * config/s390/s390.c: Add initialization of bflags_builtin and
4783         opflags_builtin arrays.
4784         Remove code for flags_builtin.
4785         (s390_init_builtins): Only create builtin function types if one of
4786         their flags is active.
4787         Only create builtins if all of their flags are active.
4788         (s390_expand_builtin): Rename flags_for_builtin to
4789         opflags_for_builtin.
4790
4791 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4792
4793         * config/s390/vecintrin.h: Remove internal builtins.
4794
4795 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4796
4797         * config/s390/s390.c (s390_secondary_reload): Fix check for
4798         GENERAL_REGS register class.
4799
4800 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4801
4802         * config/s390/s390.c (s390_support_vector_misalignment): Call
4803         default implementation for !TARGET_VX.
4804
4805 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4806
4807         * config/s390/s390.c (s390_legitimate_constant_p): Add
4808         TARGET_VX check.
4809
4810 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4811
4812         * config/s390/s390.c (s390_vector_abi): New variable definition.
4813         (s390_check_type_for_vector_abi): New function.
4814         (TARGET_ASM_FILE_END): New macro definition.
4815         (s390_asm_file_end): New function.
4816         (s390_function_arg): Call s390_check_type_for_vector_abi.
4817         (s390_gimplify_va_arg): Likewise.
4818         * configure: Regenerate.
4819         * configure.ac: Check for .gnu_attribute Binutils feature.
4820
4821 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
4822
4823         PR target/65803
4824         * config/bfin/bfin.c (hwloop_optimize): Initialize
4825         JUMP_LABEL for newly created jump.
4826
4827 2015-06-23  Tristan Gingold  <gingold@adacore.com>
4828
4829         * collect-utils.c (collect_wait): Unlink the response file here
4830         instead of...
4831         (do_wait): ...here.
4832         (utils_cleanup): ...and here.
4833
4834 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
4835
4836         * df-scan.c: Don't include target-def.h.
4837         * targhooks.c: Likewise.
4838         * config/arm/arm-c.c: Likewise.
4839         * config/i386/i386-c.c: Likewise.
4840         * config/nds32/nds32-cost.c: Likewise.
4841         * config/nds32/nds32-fp-as-gp.c: Likewise.
4842         * config/nds32/nds32-intrinsic.c: Likewise.
4843         * config/nds32/nds32-isr.c: Likewise.
4844         * config/nds32/nds32-md-auxiliary.c: Likewise.
4845         * config/nds32/nds32-memory-manipulation.c: Likewise.
4846         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4847         * config/nds32/nds32-predicates.c: Likewise.
4848
4849 2015-06-23  Richard Biener  <rguenther@suse.de>
4850
4851         PR tree-optimization/66636
4852         * tree-vect-stmts.c (vectorizable_store): Properly compute the
4853         def type for further defs for strided stores.
4854
4855 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
4856
4857         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
4858         conditional selects.
4859         (setcc_int<mode>, setcc_float<mode>): Reformat.
4860
4861 2015-06-23  Marek Polacek  <polacek@redhat.com>
4862
4863         * match.pd ((x + y) - (x | y) -> x & y,
4864         (x + y) - (x & y) -> x | y): New patterns.
4865
4866 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
4867
4868         PR 65711
4869         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
4870         '-dynamic-linker' within %{!shared: ...}.
4871
4872 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
4873
4874         PR target/66560
4875         * config/i386/predicates.md (addsub_vm_operator): New predicate.
4876         (addsub_vs_operator): Ditto.
4877         (addsub_vs_parallel): Ditto.
4878         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
4879         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
4880         Put minus RTX before plus and adjust vec_merge selector.
4881         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
4882         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
4883         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
4884         (addsub vec_merge splitters): New combiner splitters.
4885         (addsub vec_select/vec_concat splitters): Ditto.
4886
4887 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
4888
4889         PR tree-optimization/66449
4890         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
4891         POINTER_PLUS_EXPR for pointers.
4892
4893 2015-06-23  Alan Modra  <amodra@gmail.com>
4894
4895         * rtlanal.c (commutative_operand_precedence): Correct comments.
4896         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
4897         declaration.  Return an int.  Distinguish REG,REG return from
4898         others.
4899         (struct simplify_plus_minus_op_data): Make local to function.
4900         (simplify_plus_minus): Don't set canonicalized if merely sorting
4901         registers.  Avoid packing ops if nothing changes.  White space fixes.
4902
4903 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
4904
4905         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
4906         -fdump-ada-spec is passed but not if -fsyntax-only is.
4907
4908 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
4909
4910         PR bootstrap/63740
4911         * lra-lives.c (process_bb_lives): Check insn copying the same
4912         reload pseudo and don't create a copy for it.
4913
4914 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4915
4916         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
4917         for cond_stmt.
4918
4919 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4920
4921         * builtins.def (DEF_GOMP_BUILTIN): Test
4922         'flag_tree_parallelize_loops > 1' instead of
4923         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
4924
4925 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4926
4927         * dominance.c (calculate_dominance_info): Verify dominators if
4928         early-out.
4929
4930 2015-06-22  Marek Polacek  <polacek@redhat.com>
4931
4932         * match.pd ((x ^ y) ^ (x | y) -> x & y,
4933         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
4934         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
4935         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
4936
4937 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
4938
4939         PR target/65871
4940         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
4941         cost of embedded comparison.
4942
4943 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4944
4945         PR target/65914
4946         * config/rs6000/predicates.md (altivec_register_operand): Permit
4947         virtual stack registers.
4948         (vsx_register_operand): Likewise.
4949         (vfloat_operand): Likewise.
4950         (vint_operand): Likewise.
4951         (vlogical_operand): Likewise.
4952
4953 2015-06-22  Richard Biener  <rguenther@suse.de>
4954
4955         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
4956         and single_scalar_iteration_cost members.
4957         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
4958         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
4959         (vect_get_single_scalar_iteration_cost): Remove.
4960         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
4961         Use LOOP_VINFO_SCALAR_ITERATION_COST.
4962         * tree-vect-loop.c (destroy_loop_vec_info): Free
4963         scalar_cost_vec.
4964         (vect_get_single_scalar_iteration_cost): Compute result into
4965         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
4966         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
4967         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
4968         (vect_estimate_min_profitable_iters): Use them.
4969
4970 2015-06-22  Christian Bruel  <christian.bruel@st.com>
4971
4972         PR target/52144
4973         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
4974         (TARGET_INSERT_ATTRIBUTES): Define.
4975         (thumb_flipper): New var.
4976         * config/arm/arm.opt (-mflip-thumb): New switch.
4977
4978 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4979             Martin Liska  <mliska@suse.cz>
4980
4981         PR ipa/65908
4982         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
4983         construction of arg_types.
4984         (sem_function::sem_function): Likewise.
4985         (sem_function::~sem_function): Remove destruction of arg_types.
4986         (sem_function::compatible_parm_types_p): New function.
4987         (sem_function::equals_wpa): Reorg matching of return values
4988         and parameter types.
4989         (sem_function::equals_private): Reorg mathcing of argument types.
4990         (sem_function::parse_tree_args): Remove.
4991         * ipa-icf.h (init_wpa): Do not call it.
4992         (parse_tree_args): Remove.
4993         (compatible_parm_types_p): Declare.
4994         (result_type): Remove.
4995         (arg_types): Remove.
4996
4997 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4998
4999         PR ipa/66351
5000         * ipa-polymorphic-call.c
5001         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
5002         initializing alias oracle; fix formating; set base_alias_set if it
5003         is known.
5004
5005 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
5006
5007         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
5008         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
5009         (find_inc): Likewise.
5010         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
5011         swapping.
5012         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5013         * df-scan.c (df_swap_refs): Remove.
5014         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
5015         * dominance.c (link_roots): Use std::swap instead of manually swapping.
5016         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
5017         * fold-const.c (fold_relational_const): Likewise.
5018         * genattrtab.c (simplify_test_exp): Likewise.
5019         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
5020         gimple_simplify): Likewise.
5021         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
5022         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
5023         * ipa-devirt.c (add_type_duplicate): Likewise.
5024         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
5025         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
5026         * lra.c (lra_create_copy): Likewise.
5027         * lto-streamer-out.c (DFS::DFS): Likewise.
5028         * modulo-sched.c (get_sched_window): Likewise.
5029         * omega.c (omega_pretty_print_problem): Likewise.
5030         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
5031         * reload1.c (reloads_unique_chain_p): Likewise.
5032         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
5033         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
5034         use std::swap.
5035         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
5036         manually swapping.
5037         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
5038         predicate_mem_writes): Likewise.
5039         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
5040         * tree-predcom.c (combine_chains): Likewise.
5041         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
5042         refs_may_alias_p_1): Likewise.
5043         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
5044         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
5045         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
5046         number_of_iterations_cond): Likewise.
5047         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
5048         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5049         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
5050         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5051         * tree-vrp.c (extract_range_from_binary_expr_1,
5052         extract_range_from_unary_expr_1): Likewise.
5053
5054 2015-06-20  Marek Polacek  <polacek@redhat.com>
5055
5056         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
5057
5058 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5059
5060         PR target/66591
5061         * config/sh/sh.c (prepare_move_operands): Replace subreg
5062         index term with R0 for base and index addressing.
5063
5064 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
5065
5066         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
5067         op1 is an fp zero.
5068         (movsf_aarch64): Change condition from register_operand to
5069         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
5070         load1.  Change type for alternative 7 to store1.
5071         (movdf_aarch64): Likewise.
5072
5073 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
5074
5075         * config/vax/vax.md: Adjust sign/zero extend patterns to
5076         handle SUBREGs in operands[1].
5077
5078 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5079
5080         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5081         of manually swapping.
5082         (expand_vec_perm_interleave2): Likewise.
5083
5084 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
5085
5086         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5087         reuse bounds created for abnormal ssa names.
5088
5089 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
5090
5091         * config/nvptx/nvptx.md (allocate_stack): Rename to...
5092         (allocate_stack_<mode>): ... this, and add :P on both
5093         match_operand and unspec.
5094         (allocate_stack): New expander.
5095
5096 2015-06-19  Christian Bruel  <christian.bruel@st.com>
5097
5098         PR target/66541
5099         PR target/52144
5100         * config/arm/arm.c (arm_set_current_function): Handle
5101         explicit default options.
5102
5103 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5104
5105         * config/i386/i386.md (*movsicc_noc_zext): New insn.
5106         (zero-extended cmove with mem peephole2): New pattern.
5107         (cmove with mem peephole2): Merge patterns.
5108
5109 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5110
5111         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5112
5113 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
5114
5115         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5116         * config/mips/mips.md (*madd4<mode>): Ditto.
5117         (*nmadd3<mode>) Ditto.
5118         (*nmadd4<mode>_fastmath): Ditto.
5119         (*nmadd3<mode>_fastmath): Ditto.
5120         (*nmsub4<mode>): Ditto.
5121         (*nmsub3<mode>): Ditto.
5122         (*nmsub4<mode>_fastmath): Ditto.
5123         (*nmsub3<mode>_fastmath): Ditto.
5124
5125 2015-06-18  Michael Matz  <matz@suse.de>
5126
5127         PR middle-end/66253
5128         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5129         grouped strided stores.
5130         (vectorizable_load): Don't use the DR from first_stmt in
5131         the non-SLP grouped strided case.
5132
5133 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5134
5135         PR target/66569
5136         * function.c (assign_bounds): Add arguments assign_regs,
5137         assign_special, assign_bt.
5138         (assign_parms): For vararg functions handle bounds in BT
5139         and special slots after incoming vararg bounds.
5140
5141 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5142
5143         PR middle-end/66568
5144         * cfgexpand.c (expand_return): Handle missing bounds.
5145         (expand_gimple_stmt_1): Likewise.
5146         * tree-chkp.c (chkp_expand_zero_bounds): New.
5147         * tree-chkp.h (chkp_expand_zero_bounds): New.
5148
5149 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5150
5151         PR middle-end/66567
5152         * ipa-chkp.c (chkp_maybe_create_clone): Require
5153         functions to be instrumentable.
5154         * tree-chkp.c (chkp_replace_function_pointer): Use
5155         chkp_instrumentable_p instead of attribute check.
5156
5157 2015-06-18  Richard Biener  <rguenther@suse.de>
5158
5159         PR tree-optimization/66510
5160         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5161         number of vector loads for SLP permuted loads.
5162         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5163         check the stride for loop vectorization.
5164         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5165         vectorization factor.
5166         (vect_analyze_group_access): If the group size is not a power
5167         of two require a epilogue loop.
5168         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5169         compute and optimizing and alias test pruning after final
5170         vectorization factor computation.
5171         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5172         vector alignment.
5173         (vect_transform_slp_perm_load): Properly compute the original
5174         number of vector load stmts.
5175
5176 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5177
5178         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5179         "unlikely character , in @var" warning.
5180
5181 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5182
5183         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5184         (ix86_function_arg_advance): Ditto.
5185         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5186
5187 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5188
5189         * function.h (struct rtl_data): Remove struct and accessor macros.
5190         * emit-rtl.h (struct rtl_data): Relocate to here.
5191         * Makefile.in (GTFILES): Add emit-rtl.h.
5192         * df-core.c: Include emit-rtl.h.
5193         * genattrtab.c: Likewise.
5194         * genconditions.c: Likewise.
5195         * genpreds.c: Likewise.
5196         * genrecog.c: Likewise.
5197         * regcprop.c: Likewise.
5198         * resource.c: Likewise.
5199         * sched-rgn.c: Likewise.
5200         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5201         * config/i386/winnt.c: Likewise.
5202
5203 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5204
5205         PR middle-end/66429
5206         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5207         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5208         and has_force_vectorize_loops flags from cfun into
5209         child_cfun.
5210         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5211         if simduid is non-NULL.
5212         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5213         * passes.def (pass_simduid_cleanup): Add new pass after loop
5214         passes.
5215         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5216         indirection from htab argument's type.
5217         (shrink_simd_arrays): New function.
5218         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5219         Don't call adjust_simduid_builtins if there are no loops.
5220         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5221         (pass_simduid_cleanup::execute): New method.
5222         (make_pass_simduid_cleanup): New function.
5223
5224 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5225
5226         * tree-core.h (tree_target_option): Make opts field a pointer to a
5227         cl_target_option instead of an instance of the struct.
5228         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5229         the structure.
5230         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5231         TARGET_OPTION_NODE.
5232         (copy_node_stat): Allocate and copy struct cl_target_option.
5233
5234 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5235
5236         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5237         Remove conditional exposure of prototypes.
5238         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5239         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5240         definitions in tree.h with functions.
5241         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5242         anon_aggrname_p.
5243         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5244
5245 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5246
5247         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5248         (*cmp<mode>_signed): ... this.
5249         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5250         (*cmp<mode>_unsigned): ... this.  Remove %b.
5251
5252 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5253
5254         * coretypes.h: Include input.h and as-a.h.
5255         * rtl.h: Include input.h and as-a.h for generator files.
5256         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5257         * vec.c: Don't include diagnostic-core.h.
5258         * alias.c: Do not include input.h, line-map.h or is-a.h.
5259         * asan.c: Likewise.
5260         * attribs.c: Likewise.
5261         * auto-inc-dec.c: Likewise.
5262         * auto-profile.c: Likewise.
5263         * bb-reorder.c: Likewise.
5264         * bt-load.c: Likewise.
5265         * builtins.c: Likewise.
5266         * caller-save.c: Likewise.
5267         * calls.c: Likewise.
5268         * ccmp.c: Likewise.
5269         * cfg.c: Likewise.
5270         * cfganal.c: Likewise.
5271         * cfgbuild.c: Likewise.
5272         * cfgcleanup.c: Likewise.
5273         * cfgexpand.c: Likewise.
5274         * cfghooks.c: Likewise.
5275         * cfgloop.c: Likewise.
5276         * cfgloop.h: Likewise.
5277         * cfgloopanal.c: Likewise.
5278         * cfgloopmanip.c: Likewise.
5279         * cfgrtl.c: Likewise.
5280         * cgraph.c: Likewise.
5281         * cgraphbuild.c: Likewise.
5282         * cgraphclones.c: Likewise.
5283         * cgraphunit.c: Likewise.
5284         * cilk-common.c: Likewise.
5285         * combine-stack-adj.c: Likewise.
5286         * combine.c: Likewise.
5287         * compare-elim.c: Likewise.
5288         * convert.c: Likewise.
5289         * coverage.c: Likewise.
5290         * cppbuiltin.c: Likewise.
5291         * cprop.c: Likewise.
5292         * cse.c: Likewise.
5293         * cselib.c: Likewise.
5294         * data-streamer-in.c: Likewise.
5295         * data-streamer-out.c: Likewise.
5296         * data-streamer.c: Likewise.
5297         * dbxout.c: Likewise.
5298         * dce.c: Likewise.
5299         * ddg.c: Likewise.
5300         * debug.c: Likewise.
5301         * df-core.c: Likewise.
5302         * df-problems.c: Likewise.
5303         * df-scan.c: Likewise.
5304         * df.h: Likewise.
5305         * dfp.c: Likewise.
5306         * diagnostic-core.h: Likewise.
5307         * diagnostic.c: Likewise.
5308         * dojump.c: Likewise.
5309         * dominance.c: Likewise.
5310         * domwalk.c: Likewise.
5311         * double-int.c: Likewise.
5312         * dse.c: Likewise.
5313         * dumpfile.c: Likewise.
5314         * dumpfile.h: Likewise.
5315         * dwarf2asm.c: Likewise.
5316         * dwarf2cfi.c: Likewise.
5317         * dwarf2out.c: Likewise.
5318         * emit-rtl.c: Likewise.
5319         * et-forest.c: Likewise.
5320         * except.c: Likewise.
5321         * explow.c: Likewise.
5322         * expmed.c: Likewise.
5323         * expr.c: Likewise.
5324         * final.c: Likewise.
5325         * fixed-value.c: Likewise.
5326         * fold-const.c: Likewise.
5327         * function.c: Likewise.
5328         * fwprop.c: Likewise.
5329         * gcc-plugin.h: Likewise.
5330         * gcse.c: Likewise.
5331         * generic-match-head.c: Likewise.
5332         * ggc-page.c: Likewise.
5333         * gimple-builder.c: Likewise.
5334         * gimple-expr.c: Likewise.
5335         * gimple-fold.c: Likewise.
5336         * gimple-iterator.c: Likewise.
5337         * gimple-low.c: Likewise.
5338         * gimple-match-head.c: Likewise.
5339         * gimple-pretty-print.c: Likewise.
5340         * gimple-ssa-isolate-paths.c: Likewise.
5341         * gimple-ssa-strength-reduction.c: Likewise.
5342         * gimple-streamer-in.c: Likewise.
5343         * gimple-streamer-out.c: Likewise.
5344         * gimple-streamer.h: Likewise.
5345         * gimple-walk.c: Likewise.
5346         * gimple.c: Likewise.
5347         * gimplify-me.c: Likewise.
5348         * gimplify.c: Likewise.
5349         * godump.c: Likewise.
5350         * graph.c: Likewise.
5351         * graphite-blocking.c: Likewise.
5352         * graphite-dependences.c: Likewise.
5353         * graphite-interchange.c: Likewise.
5354         * graphite-isl-ast-to-gimple.c: Likewise.
5355         * graphite-optimize-isl.c: Likewise.
5356         * graphite-poly.c: Likewise.
5357         * graphite-scop-detection.c: Likewise.
5358         * graphite-sese-to-poly.c: Likewise.
5359         * graphite.c: Likewise.
5360         * haifa-sched.c: Likewise.
5361         * hw-doloop.c: Likewise.
5362         * ifcvt.c: Likewise.
5363         * init-regs.c: Likewise.
5364         * input.c: Likewise.
5365         * internal-fn.c: Likewise.
5366         * ipa-chkp.c: Likewise.
5367         * ipa-comdats.c: Likewise.
5368         * ipa-cp.c: Likewise.
5369         * ipa-devirt.c: Likewise.
5370         * ipa-icf-gimple.c: Likewise.
5371         * ipa-icf.c: Likewise.
5372         * ipa-inline-analysis.c: Likewise.
5373         * ipa-inline-transform.c: Likewise.
5374         * ipa-inline.c: Likewise.
5375         * ipa-polymorphic-call.c: Likewise.
5376         * ipa-profile.c: Likewise.
5377         * ipa-prop.c: Likewise.
5378         * ipa-pure-const.c: Likewise.
5379         * ipa-ref.c: Likewise.
5380         * ipa-reference.c: Likewise.
5381         * ipa-split.c: Likewise.
5382         * ipa-utils.c: Likewise.
5383         * ipa-visibility.c: Likewise.
5384         * ipa.c: Likewise.
5385         * ira-build.c: Likewise.
5386         * ira-color.c: Likewise.
5387         * ira-conflicts.c: Likewise.
5388         * ira-costs.c: Likewise.
5389         * ira-emit.c: Likewise.
5390         * ira-lives.c: Likewise.
5391         * ira.c: Likewise.
5392         * jump.c: Likewise.
5393         * langhooks.c: Likewise.
5394         * lcm.c: Likewise.
5395         * loop-doloop.c: Likewise.
5396         * loop-init.c: Likewise.
5397         * loop-invariant.c: Likewise.
5398         * loop-iv.c: Likewise.
5399         * loop-unroll.c: Likewise.
5400         * lower-subreg.c: Likewise.
5401         * lra-assigns.c: Likewise.
5402         * lra-coalesce.c: Likewise.
5403         * lra-constraints.c: Likewise.
5404         * lra-eliminations.c: Likewise.
5405         * lra-lives.c: Likewise.
5406         * lra-remat.c: Likewise.
5407         * lra-spills.c: Likewise.
5408         * lra.c: Likewise.
5409         * lto-cgraph.c: Likewise.
5410         * lto-compress.c: Likewise.
5411         * lto-opts.c: Likewise.
5412         * lto-section-in.c: Likewise.
5413         * lto-section-out.c: Likewise.
5414         * lto-streamer-in.c: Likewise.
5415         * lto-streamer-out.c: Likewise.
5416         * lto-streamer.c: Likewise.
5417         * mcf.c: Likewise.
5418         * mode-switching.c: Likewise.
5419         * modulo-sched.c: Likewise.
5420         * omega.c: Likewise.
5421         * omp-low.c: Likewise.
5422         * optabs.c: Likewise.
5423         * opts-global.c: Likewise.
5424         * opts.h: Likewise.
5425         * passes.c: Likewise.
5426         * plugin.c: Likewise.
5427         * postreload-gcse.c: Likewise.
5428         * postreload.c: Likewise.
5429         * predict.c: Likewise.
5430         * pretty-print.h: Likewise.
5431         * print-rtl.c: Likewise.
5432         * print-tree.c: Likewise.
5433         * profile.c: Likewise.
5434         * real.c: Likewise.
5435         * realmpfr.c: Likewise.
5436         * recog.c: Likewise.
5437         * ree.c: Likewise.
5438         * reg-stack.c: Likewise.
5439         * regcprop.c: Likewise.
5440         * reginfo.c: Likewise.
5441         * regrename.c: Likewise.
5442         * regstat.c: Likewise.
5443         * reload.c: Likewise.
5444         * reload1.c: Likewise.
5445         * reorg.c: Likewise.
5446         * resource.c: Likewise.
5447         * rtl-chkp.c: Likewise.
5448         * rtl-error.c: Likewise.
5449         * rtlanal.c: Likewise.
5450         * rtlhooks.c: Likewise.
5451         * sanopt.c: Likewise.
5452         * sched-deps.c: Likewise.
5453         * sched-ebb.c: Likewise.
5454         * sched-rgn.c: Likewise.
5455         * sched-vis.c: Likewise.
5456         * sdbout.c: Likewise.
5457         * sel-sched-dump.c: Likewise.
5458         * sel-sched-ir.c: Likewise.
5459         * sel-sched.c: Likewise.
5460         * sese.c: Likewise.
5461         * shrink-wrap.c: Likewise.
5462         * simplify-rtx.c: Likewise.
5463         * stack-ptr-mod.c: Likewise.
5464         * statistics.c: Likewise.
5465         * stmt.c: Likewise.
5466         * stor-layout.c: Likewise.
5467         * store-motion.c: Likewise.
5468         * streamer-hooks.c: Likewise.
5469         * stringpool.c: Likewise.
5470         * symtab.c: Likewise.
5471         * target-globals.c: Likewise.
5472         * targhooks.c: Likewise.
5473         * toplev.c: Likewise.
5474         * tracer.c: Likewise.
5475         * trans-mem.c: Likewise.
5476         * tree-affine.c: Likewise.
5477         * tree-browser.c: Likewise.
5478         * tree-call-cdce.c: Likewise.
5479         * tree-cfg.c: Likewise.
5480         * tree-cfgcleanup.c: Likewise.
5481         * tree-chkp-opt.c: Likewise.
5482         * tree-chkp.c: Likewise.
5483         * tree-chrec.c: Likewise.
5484         * tree-complex.c: Likewise.
5485         * tree-data-ref.c: Likewise.
5486         * tree-dfa.c: Likewise.
5487         * tree-diagnostic.c: Likewise.
5488         * tree-dump.c: Likewise.
5489         * tree-eh.c: Likewise.
5490         * tree-emutls.c: Likewise.
5491         * tree-if-conv.c: Likewise.
5492         * tree-inline.c: Likewise.
5493         * tree-into-ssa.c: Likewise.
5494         * tree-iterator.c: Likewise.
5495         * tree-loop-distribution.c: Likewise.
5496         * tree-nested.c: Likewise.
5497         * tree-nrv.c: Likewise.
5498         * tree-object-size.c: Likewise.
5499         * tree-outof-ssa.c: Likewise.
5500         * tree-parloops.c: Likewise.
5501         * tree-phinodes.c: Likewise.
5502         * tree-predcom.c: Likewise.
5503         * tree-pretty-print.c: Likewise.
5504         * tree-profile.c: Likewise.
5505         * tree-scalar-evolution.c: Likewise.
5506         * tree-sra.c: Likewise.
5507         * tree-ssa-address.c: Likewise.
5508         * tree-ssa-alias.c: Likewise.
5509         * tree-ssa-ccp.c: Likewise.
5510         * tree-ssa-coalesce.c: Likewise.
5511         * tree-ssa-copy.c: Likewise.
5512         * tree-ssa-copyrename.c: Likewise.
5513         * tree-ssa-dce.c: Likewise.
5514         * tree-ssa-dom.c: Likewise.
5515         * tree-ssa-dse.c: Likewise.
5516         * tree-ssa-forwprop.c: Likewise.
5517         * tree-ssa-ifcombine.c: Likewise.
5518         * tree-ssa-live.c: Likewise.
5519         * tree-ssa-loop-ch.c: Likewise.
5520         * tree-ssa-loop-im.c: Likewise.
5521         * tree-ssa-loop-ivcanon.c: Likewise.
5522         * tree-ssa-loop-ivopts.c: Likewise.
5523         * tree-ssa-loop-manip.c: Likewise.
5524         * tree-ssa-loop-niter.c: Likewise.
5525         * tree-ssa-loop-prefetch.c: Likewise.
5526         * tree-ssa-loop-unswitch.c: Likewise.
5527         * tree-ssa-loop.c: Likewise.
5528         * tree-ssa-math-opts.c: Likewise.
5529         * tree-ssa-operands.c: Likewise.
5530         * tree-ssa-phiopt.c: Likewise.
5531         * tree-ssa-phiprop.c: Likewise.
5532         * tree-ssa-pre.c: Likewise.
5533         * tree-ssa-propagate.c: Likewise.
5534         * tree-ssa-reassoc.c: Likewise.
5535         * tree-ssa-sccvn.c: Likewise.
5536         * tree-ssa-scopedtables.c: Likewise.
5537         * tree-ssa-sink.c: Likewise.
5538         * tree-ssa-strlen.c: Likewise.
5539         * tree-ssa-structalias.c: Likewise.
5540         * tree-ssa-tail-merge.c: Likewise.
5541         * tree-ssa-ter.c: Likewise.
5542         * tree-ssa-threadedge.c: Likewise.
5543         * tree-ssa-threadupdate.c: Likewise.
5544         * tree-ssa-uncprop.c: Likewise.
5545         * tree-ssa-uninit.c: Likewise.
5546         * tree-ssa.c: Likewise.
5547         * tree-ssanames.c: Likewise.
5548         * tree-stdarg.c: Likewise.
5549         * tree-streamer-in.c: Likewise.
5550         * tree-streamer-out.c: Likewise.
5551         * tree-streamer.c: Likewise.
5552         * tree-switch-conversion.c: Likewise.
5553         * tree-tailcall.c: Likewise.
5554         * tree-vect-data-refs.c: Likewise.
5555         * tree-vect-generic.c: Likewise.
5556         * tree-vect-loop-manip.c: Likewise.
5557         * tree-vect-loop.c: Likewise.
5558         * tree-vect-patterns.c: Likewise.
5559         * tree-vect-slp.c: Likewise.
5560         * tree-vect-stmts.c: Likewise.
5561         * tree-vectorizer.c: Likewise.
5562         * tree-vrp.c: Likewise.
5563         * tree.c: Likewise.
5564         * tsan.c: Likewise.
5565         * ubsan.c: Likewise.
5566         * valtrack.c: Likewise.
5567         * value-prof.c: Likewise.
5568         * var-tracking.c: Likewise.
5569         * varasm.c: Likewise.
5570         * varpool.c: Likewise.
5571         * vmsdbgout.c: Likewise.
5572         * vtable-verify.c: Likewise.
5573         * web.c: Likewise.
5574         * wide-int.cc: Likewise.
5575         * xcoffout.c: Likewise.
5576         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5577         * common/common-targhooks.c: Likewise.
5578         * config/aarch64/aarch64-builtins.c: Likewise.
5579         * config/aarch64/aarch64.c: Likewise.
5580         * config/alpha/alpha.c: Likewise.
5581         * config/arc/arc.c: Likewise.
5582         * config/arm/aarch-common.c: Likewise.
5583         * config/arm/arm-builtins.c: Likewise.
5584         * config/arm/arm-c.c: Likewise.
5585         * config/arm/arm.c: Likewise.
5586         * config/avr/avr-c.c: Likewise.
5587         * config/avr/avr-log.c: Likewise.
5588         * config/avr/avr.c: Likewise.
5589         * config/bfin/bfin.c: Likewise.
5590         * config/c6x/c6x.c: Likewise.
5591         * config/cr16/cr16.c: Likewise.
5592         * config/cris/cris.c: Likewise.
5593         * config/darwin-c.c: Likewise.
5594         * config/darwin.c: Likewise.
5595         * config/default-c.c: Likewise.
5596         * config/epiphany/epiphany.c: Likewise.
5597         * config/epiphany/mode-switch-use.c: Likewise.
5598         * config/epiphany/resolve-sw-modes.c: Likewise.
5599         * config/fr30/fr30.c: Likewise.
5600         * config/frv/frv.c: Likewise.
5601         * config/ft32/ft32.c: Likewise.
5602         * config/glibc-c.c: Likewise.
5603         * config/h8300/h8300.c: Likewise.
5604         * config/i386/i386-c.c: Likewise.
5605         * config/i386/i386.c: Likewise.
5606         * config/i386/msformat-c.c: Likewise.
5607         * config/i386/winnt-cxx.c: Likewise.
5608         * config/i386/winnt-stubs.c: Likewise.
5609         * config/i386/winnt.c: Likewise.
5610         * config/ia64/ia64-c.c: Likewise.
5611         * config/ia64/ia64.c: Likewise.
5612         * config/iq2000/iq2000.c: Likewise.
5613         * config/lm32/lm32.c: Likewise.
5614         * config/m32c/m32c-pragma.c: Likewise.
5615         * config/m32c/m32c.c: Likewise.
5616         * config/m32r/m32r.c: Likewise.
5617         * config/m68k/m68k.c: Likewise.
5618         * config/mcore/mcore.c: Likewise.
5619         * config/mep/mep-pragma.c: Likewise.
5620         * config/mep/mep.c: Likewise.
5621         * config/microblaze/microblaze-c.c: Likewise.
5622         * config/microblaze/microblaze.c: Likewise.
5623         * config/mips/mips.c: Likewise.
5624         * config/mmix/mmix.c: Likewise.
5625         * config/mn10300/mn10300.c: Likewise.
5626         * config/moxie/moxie.c: Likewise.
5627         * config/msp430/msp430-c.c: Likewise.
5628         * config/msp430/msp430.c: Likewise.
5629         * config/nds32/nds32-cost.c: Likewise.
5630         * config/nds32/nds32-fp-as-gp.c: Likewise.
5631         * config/nds32/nds32-intrinsic.c: Likewise.
5632         * config/nds32/nds32-isr.c: Likewise.
5633         * config/nds32/nds32-md-auxiliary.c: Likewise.
5634         * config/nds32/nds32-memory-manipulation.c: Likewise.
5635         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5636         * config/nds32/nds32-predicates.c: Likewise.
5637         * config/nds32/nds32.c: Likewise.
5638         * config/nios2/nios2.c: Likewise.
5639         * config/nvptx/nvptx.c: Likewise.
5640         * config/pa/pa.c: Likewise.
5641         * config/pdp11/pdp11.c: Likewise.
5642         * config/rl78/rl78-c.c: Likewise.
5643         * config/rl78/rl78.c: Likewise.
5644         * config/rs6000/rs6000-c.c: Likewise.
5645         * config/rs6000/rs6000.c: Likewise.
5646         * config/rx/rx.c: Likewise.
5647         * config/s390/s390-c.c: Likewise.
5648         * config/s390/s390.c: Likewise.
5649         * config/sh/sh-c.c: Likewise.
5650         * config/sh/sh-mem.cc: Likewise.
5651         * config/sh/sh.c: Likewise.
5652         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5653         * config/sh/sh_treg_combine.cc: Likewise.
5654         * config/sol2-c.c: Likewise.
5655         * config/sol2-cxx.c: Likewise.
5656         * config/sol2-stubs.c: Likewise.
5657         * config/sol2.c: Likewise.
5658         * config/sparc/sparc-c.c: Likewise.
5659         * config/sparc/sparc.c: Likewise.
5660         * config/spu/spu-c.c: Likewise.
5661         * config/spu/spu.c: Likewise.
5662         * config/stormy16/stormy16.c: Likewise.
5663         * config/tilegx/mul-tables.c: Likewise.
5664         * config/tilegx/tilegx-c.c: Likewise.
5665         * config/tilegx/tilegx.c: Likewise.
5666         * config/tilepro/mul-tables.c: Likewise.
5667         * config/tilepro/tilepro-c.c: Likewise.
5668         * config/tilepro/tilepro.c: Likewise.
5669         * config/v850/v850-c.c: Likewise.
5670         * config/v850/v850.c: Likewise.
5671         * config/vax/vax.c: Likewise.
5672         * config/visium/visium.c: Likewise.
5673         * config/vms/vms-c.c: Likewise.
5674         * config/vms/vms.c: Likewise.
5675         * config/vxworks.c: Likewise.
5676         * config/winnt-c.c: Likewise.
5677         * config/xtensa/xtensa.c: Likewise.
5678
5679 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5680
5681         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5682         function.
5683         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5684
5685 2015-06-17  Richard Biener  <rguenther@suse.de>
5686
5687         PR tree-optimization/66251
5688         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5689         stmts for SLP strided stores.
5690
5691         Revert
5692         2015-05-22  Richard Biener  <rguenther@suse.de>
5693
5694         PR tree-optimization/66251
5695         * tree-vect-stmts.c (vectorizable_conversion): Properly
5696         set STMT_VINFO_VEC_STMT even for the SLP case.
5697
5698         2015-05-26  Michael Matz  <matz@suse.de>
5699
5700         PR middle-end/66251
5701         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5702         STMT_VINFO_VEC_STMT, also with SLP.
5703
5704 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5705
5706         PR target/56766
5707         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5708         (*avx_addsubv4df3_1s): Ditto.
5709         (*sse3_addsubv2df3_1): Ditto.
5710         (*sse3_addsubv2df3_1s): Ditto.
5711         (*avx_addsubv8sf3_1): Ditto.
5712         (*avx_addsubv8sf3_1s): Ditto.
5713         (*sse3_addsubv4sf3_1): Ditto.
5714         (*sse3_addsubv4sf3_1s): Ditto.
5715
5716 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5717
5718         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5719         (SYSROOT_SUFFIX_SPEC): Update.
5720         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5721         (STARTFILE_PREFIX_SPEC): Update.
5722         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5723         (MULTILIB_REQUIRED): New.
5724         (MULTILIB_OSDIRNAMES): New.
5725         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
5726         (MULTILIB_REQUIRED): New.
5727         (MULTILIB_OSDIRNAMES): New.
5728
5729 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
5730
5731         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
5732         * config/aarch64/aarch64-options-extensions.def: Update "fP",
5733         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
5734         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
5735         (AARCH64_FL_PAN): New.
5736         (AARCH64_FL_LOR): New.
5737         (AARCH64_FL_RDMA): New.
5738         (AARCH64_FL_FOR_ARCH8_1): New.
5739         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
5740         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
5741
5742 2015-06-16  Martin Liska  <mliska@suse.cz>
5743
5744         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
5745         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
5746         guard.
5747
5748 2015-06-16  Richard Biener  <rguenther@suse.de>
5749
5750         * tree-vect-stmts.c (vectorizable_store): Adjust.
5751         (vectorizable_load): Likewise.
5752         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5753         Simplify.
5754         (vect_create_data_ref_ptr): Likewise.
5755         (bump_vector_ptr): Adjust.
5756
5757 2015-06-16  Richard Biener  <rguenther@suse.de>
5758
5759         * tree-vect-stmts.c (vectorizable_load): Properly start loads
5760         with the first element if this is grouped loads.
5761
5762 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
5763
5764         * config/arm/arm-protos.h (struct tune_params): Rename
5765         log_op_non_sc to log_op_non_short_circuit, and rename enum
5766         values to expand SC to SHORT_CIRCUIT.
5767         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
5768         to LOG_OP_NON_SHORT_CIRCUIT.
5769         (arm_fastmul_tune):Likewise
5770         (arm_strongarm_tune): Likewise.
5771         (arm_xscale_tune): Likewise.
5772         (arm_9e_tune): Likewise.
5773         (arm_marvell_pj4_tune): Likewise.
5774         (arm_v6t2_tune): Likewise.
5775         (arm_cortex_tune): Likewise.
5776         (arm_cortex_a8_tune): Likewise.
5777         (arm_cortex_a7_tune): Likewise.
5778         (arm_cortex_a15_tune): Likewise.
5779         (arm_cortex_a53_tune): Likewise.
5780         (arm_cortex_a57_tune): Likewise.
5781         (arm_xgene1_tune): Likewise.
5782         (arm_cortex_a5_tune): Likewise.
5783         (arm_cortex_a9_tune): Likewise.
5784         (arm_cortex_a12_tune): Likewise.
5785         (arm_v7m_tune): Likewise.
5786         (arm_cortex_m7_tune): Likewise.
5787         (arm_v6m_tune): Likewise.
5788         (arm_fa726te_tune): Likewise.
5789
5790 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
5791
5792         * altivec.md: Delete UNSPEC_VMLADDUHM.
5793         (mulv4si3_p8): New pattern.
5794         (mulv4si3): Use it for POWER8.
5795         (mulv8hi3): Use vmladduhm with zero addend.
5796         (altivec_vmladduhm): Descriptive RTL.
5797
5798 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
5799
5800         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
5801         to use neon_move instead of mov_imm.
5802         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
5803         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
5804
5805         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
5806         aarch64_float_const_zero_rtx_p check before TFmode check.
5807         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
5808         an fp zero.
5809         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
5810         code and attributes to match.  Change condition from register_operand
5811         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
5812         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
5813         to store2.
5814
5815 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
5816
5817         PR debug/66535
5818         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
5819         there is no parent.
5820
5821 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
5822
5823         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
5824         HOST_WIDE_INT parameter.
5825
5826 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
5827
5828         PR ipa/66181
5829         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
5830         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
5831         TYPE_NO_FORCE_BLK.
5832         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5833
5834 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
5835
5836         * rtl.h (classify_insn): Declare.
5837         * emit-rtl.c (classify_insn): Move to...
5838         * rtl.c: ...here and add generator support.
5839         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
5840         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
5841         * genemit.c (gen_emit_seq): New function.
5842         (gen_expand, gen_split): Use it.
5843
5844 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
5845
5846         * tree.c (make_vector_stat): Fix comment to state that the
5847         function returns a VECTOR_CST.
5848
5849 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
5850
5851         * gensupport.h (add_implicit_parallel): Declare.
5852         * genrecog.c (add_implicit_parallel): Move to...
5853         * gensupport.c (add_implicit_parallel): ...here.
5854         (process_one_cond_exec): Use it.
5855         * genemit.c (gen_insn): Likewise.
5856
5857 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
5858
5859         PR bootstrap/66448
5860         * passes.c (rest_of_decl_compilation): Do not register globals for
5861         early debug if they are declared in built-ins.
5862
5863 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
5864
5865         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
5866
5867 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5868
5869         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
5870         manually swapping.
5871         (noce_try_cmove_arith): Likewise.
5872         (noce_get_alt_condition): Likewise.
5873
5874 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5875
5876         * common/config/i386/i386-common.c
5877         (OPTION_MASK_ISA_MWAITX_SET): New.
5878         (ix86_handle_option): Handle mwaitx.
5879         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
5880         (x86_64-*-*): Likewise.
5881         * config/i386/mwaitxintrin.h: New header.
5882         * config/i386/cpuid.h (bit_MWAITX):  Define.
5883         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5884         MWAITX support.
5885         * config/i386/i386.opt (mwaitx): New.
5886         * config/i386/i386-builtin-types.def
5887         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
5888         * config/i386/i386-c.c: Define __MWAITX__ if needed.
5889         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
5890         (PTA_MWAITX): New.
5891         (ix86_option_override_internal): Handle new option.
5892         (processor_alias_table): Added PTA_MWAITX.
5893         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
5894         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
5895         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
5896         IX86_BUILTIN_MONITORX  built-ins.
5897         * config/i386/i386.h (TARGET_MWAITX): New.
5898         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
5899         UNSPEC_MONITORX.
5900         (mwaitx):  New pattern.
5901         (monitorx_<mode>): New pattern.
5902         * config/i386/x86intrin.h: Include mwaitxintrin.h.
5903         * doc/extend.texi: Document monitorx and mwaitx builtins.
5904         * doc/invoke.texi: Document -mmwaitx option.
5905
5906 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
5907
5908         * emit-rtl.c (need_atomic_barrier_p): Mask model with
5909         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
5910
5911 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5912
5913         * dbxout.c (xcoff_debug_hooks): Provide a function for
5914         register_main_translation_unit hook.
5915
5916 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5917
5918         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
5919         variants cases from switch.
5920         (rs6000_post_atomic_barrier): Same.
5921         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
5922         (rs6000_expand_atomic_exchange): Same.
5923         (rs6000_expand_atomic_op): Same.
5924         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
5925         SYNC variants cases from switch.
5926         (atomic_load): Same.
5927         (atomic_store): Same.
5928
5929 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
5930
5931         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
5932         CONST_INT for goto.
5933
5934 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
5935
5936         PR bootstrap/66448
5937         * dwarf2out.c (check_die): Check for common duplicate attributes.
5938         (add_location_or_const_value_attribute): Do not add duplicate
5939         attributes.
5940         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
5941         time around.
5942         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
5943         (gen_type_die_with_usage): Call check_die.
5944         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
5945
5946 2015-06-11  Jason Merrill  <jason@redhat.com>
5947
5948         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
5949         dies.
5950
5951 2015-06-11  Marek Polacek  <polacek@redhat.com>
5952
5953         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
5954
5955 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5956
5957         PR bootstrap/66252
5958         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
5959         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
5960         (*addx_extend_sp32): Fix pasto.
5961         (*subx_extend): Rename into...
5962         (*subx_extend_sp32): ...this.
5963         (*adddi3_extend_sp32): Add earlyclobber.
5964         (*subdi3_insn_sp32): Likewise.
5965         (*subdi3_extend_sp32): Likewise.
5966         (*and_not_di_sp32): Likewise.
5967         (*or_not_di_sp32): Likewise.
5968         (*xor_not_di_sp32): Likewise.
5969         (*negdi2_sp32): Likewise.
5970         (*one_cmpldi2_sp32): Likewise.
5971
5972 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
5973
5974         * debug.h (struct gcc_debug_hooks): Add a
5975         register_main_translation_unit hook.
5976         * debug.c (do_nothing_debug_hooks): Provide a function for this
5977         new hook.
5978         * dbxout.c (dbx_debug_hooks): Likewise.
5979         * sdbout.c (sdb_debug_hooks): Likewise.
5980         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5981         * dwarf2out.c (main_translation_unit): New global variable.
5982         (dwarf2out_register_main_translation_unit): New function
5983         implementing the new hook.
5984         (dwarf2_debug_hooks): Assign
5985         dwarf2out_register_main_translation_unit to this new hook.
5986         (dwarf2out_init): Associate any main translation unit to
5987         comp_unit_die ().
5988
5989 2015-06-11  Marek Polacek  <polacek@redhat.com>
5990
5991         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
5992
5993 2015-06-11  Marek Polacek  <polacek@redhat.com>
5994
5995         * match.pd: Use single_use throughout.
5996
5997 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5998
5999         * config/arm/arm.c (arm_option_params_internal): When optimising
6000         for speed set max_insns_skipped when arm_restrict_it.
6001
6002 2015-06-11  Christian Bruel  <christian.bruel@st.com>
6003
6004         PR target/52144
6005         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
6006          macros in ...
6007         (arm_cpu_builtins): New function.
6008         (arm_pragma_target_parse): Call arm_cpu_builtins.
6009         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
6010         (arm_register_target_pragmas): Likewise.
6011         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
6012          Call arm_register_target_pragmas.
6013         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
6014         (arm_pragma_target_parse): Likewise.
6015
6016 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6017
6018         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
6019         of the second operand.
6020
6021 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
6022
6023         PR target/66473
6024         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
6025         to prepare mask operand for AVX512 modes.
6026
6027 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6028
6029         PR target/66474
6030         * doc/md.texi (Machine Constraints): Document that on the PowerPC
6031         if you use a constraint that targets a VSX register, you must use
6032         %x<n> in the template.
6033
6034 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
6035
6036         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
6037         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
6038         (define_insn "trap"): New definition.
6039
6040 2015-06-10  Richard Biener  <rguenther@suse.de>
6041
6042         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
6043         out from ...
6044         (vect_supported_load_permutation_p): ... here.  Handle
6045         supportable permutations in reductions.
6046         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
6047         for vectorizing strided group loads.
6048
6049 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
6050
6051         PR target/66470
6052         * config/i386/i386.c (ix86_split_long_move): For collisions
6053         involving direct tls segment refs, move the UNSPEC_TP possibly
6054         wrapped in ZERO_EXTEND out of the address for lea, to each of
6055         the memory loads.
6056
6057 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6058
6059         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
6060         dmb sy. Adjust tabs.
6061
6062 2015-06-10  Tom de Vries  <tom@codesourcery.com>
6063
6064         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
6065
6066 2015-06-10  Martin Liska  <mliska@suse.cz>
6067
6068         PR bootstrap/66471
6069         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
6070         all enum values in mem_alloc_origin.
6071         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
6072         name.
6073         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
6074         * bitmap.c (bitmap_register): Likewise.
6075         (dump_bitmap_statistics): Likewise.
6076         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6077         (ggc_record_overhead): Likewise.
6078         * hash-map.h: Likewise.
6079         * hash-set.h: Likewise.
6080         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6081         * hash-table.h: Likewise.
6082         * vec.c (vec_prefix::register_overhead): Likewise.
6083         (vec_prefix::release_overhead): Likewise.
6084         (dump_vec_loc_statistics): Likewise.
6085
6086 2015-06-09  Christian Bruel  <christian.bruel@st.com>
6087
6088         PR target/52144
6089         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6090         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6091         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6092         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6093         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6094         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6095         (arm_valid_target_attribute_p): Likewise.
6096         (arm_set_current_function, arm_can_inline_p): Likewise.
6097         (arm_valid_target_attribute_rec): Likewise.
6098         (arm_previous_fndecl): New variable.
6099         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6100         (TARGET_CAN_INLINE_P): Define.
6101         (arm_asm_trampoline_template): Emit mode.
6102         (arm_file_start): Don't set unified syntax.
6103         (arm_declare_function_name): Set unified syntax and mode.
6104         (arm_option_override): Init target_option_default_node.
6105         and target_option_current_node.
6106         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6107         (*call_symbol): Likewise.
6108         * doc/extend.texi: Document ARM/Thumb target attribute.
6109         * doc/invoke.texi: Likewise.
6110
6111 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6112
6113         Revert:
6114         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6115         PR rtl-optimization/64164
6116         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6117         * tree-ssa-copyrename.c: Removed.
6118         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6119         -ftree-coalesce-vars.
6120         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6121         * common.opt (ftree-copyrename): Ignore.
6122         (ftree-coalesce-inlined-vars): Likewise.
6123         * doc/invoke.texi: Remove the ignored options above.
6124         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6125         * tree-ssa-coalesce.h: ... here.
6126         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6127         headers required by it.
6128         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6129         across variables when flag_tree_coalesce_vars.  Check register
6130         use and promoted modes to allow coalescing.  Moved to
6131         tree-ssa-coalesce.c.
6132         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6133         with its member functions to tree-ssa-coalesce.c.
6134         (var_map_base_init): Likewise.  Renamed to
6135         compute_samebase_partition_bases.
6136         (partition_view_normal): Drop want_bases parameter.
6137         (partition_view_bitmap): Likewise.
6138         * tree-ssa-live.h: Adjust declarations.
6139         * tree-ssa-coalesce.c: Include explow.h.
6140         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6141         default defs at the entry point.
6142         (dump_part_var_map): New.
6143         (compute_optimized_partition_bases): New, called by...
6144         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6145         of compute_samebase_partition_bases.  Adjust.
6146         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6147         * cfgexpand.c (leader_merge): New.
6148         (get_rtl_for_parm_ssa_default_def): New.
6149         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6150         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6151         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6152         redundant MEM attr setting.
6153         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6154         from...
6155         (expand_one_stack_var): ... this.  New wrapper to check and
6156         skip already expanded SSA partitions.
6157         (record_alignment_for_reg_var): New, factored out of...
6158         (expand_one_var): ... this.
6159         (expand_one_ssa_partition): New.
6160         (adjust_one_expanded_partition_var): New.
6161         (expand_one_register_var): Check and skip already expanded SSA
6162         partitions.
6163         (expand_used_vars): Don't create DECLs for anonymous SSA
6164         names.  Expand all SSA partitions, then adjust all SSA names.
6165         (pass::execute): Replace the loops that set
6166         SA.partition_to_pseudo from partition leaders and cleared
6167         DECL_RTL for multi-location variables, and that which used to
6168         rename vars and set attrs, with one that clears DECL_RTL and
6169         checks that PARMs and RESULTs default_defs match DECL_RTL.
6170         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6171         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6172         * explow.c (promote_ssa_mode): New.
6173         * explow.h (promote_ssa_mode): Declare.
6174         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6175         * function.c: Include cfgexpand.h.
6176         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6177         (use_register_for_parm_decl): Wrapper for the above to
6178         special-case the result_ptr.
6179         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6180         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6181         multiple locations.
6182         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6183         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6184         (assign_parm_setup_block): Prefer SSA-assigned location.
6185         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6186         if stack_parm is NULL.
6187         (assign_parm_setup_stack): Prefer SSA-assigned location.
6188         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6189         rtl before testing for pointer bounds.  Special-case result_ptr.
6190         (expand_function_start): Maybe reset DECL_RTL of result.
6191         Prefer SSA-assigned location for result and static chain.
6192         Factor out DECL_RESULT and SET_DECL_RTL.
6193         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6194         anonymous SSA names.  Use promote_ssa_mode.
6195         (get_temp_reg): Likewise.
6196         (remove_ssa_form): Adjust.
6197         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6198         and get its reg_usage for reg invalidation.
6199         (compute_bb_dataflow): Pass it insn.
6200         (emit_notes_in_bb): Likewise.
6201         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6202         fail assert on conversion between unsigned types.
6203
6204 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6205
6206         PR tree-optimization/65460
6207         * omp-low.c (expand_omp_target): Set parallelized_function on
6208         cgraph_node for child_fn.
6209
6210 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6211
6212         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6213         parallelized_function before add_new_function.
6214
6215 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6216
6217         * gcc-plugin.h: Move decls to plugin.h and include it.
6218         * plugin.h: Relocate decls from gcc-plugin.h
6219         * ggc-page.c: Include required header files.
6220         * passes.c: Likewise.
6221         * cgraphunit.c: Likewise.
6222
6223 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6224
6225         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6226
6227 2015-06-09  Jason Merrill  <jason@redhat.com>
6228
6229         PR bootstrap/66448
6230         * toplev.c (check_global_declaration): Don't warn about a clone.
6231
6232 2015-06-09  Marek Polacek  <polacek@redhat.com>
6233
6234         PR tree-optimization/66299
6235         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6236         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6237         patterns.
6238
6239 2015-06-09  Richard Biener  <rguenther@suse.de>
6240
6241         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6242         (vect_analyze_slp_instance): Instead do not falsely drop
6243         load permutations.
6244
6245 2015-06-09  Richard Biener  <rguenther@suse.de>
6246
6247         PR middle-end/66423
6248         * match.pd: Handle A % (unsigned)(1 << B).
6249
6250 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6251
6252         * varasm.c (output_object_block_htab): Remove.
6253         (output_object_block_compare): New.
6254         (output_object_blocks): Sort named object_blocks before outputting
6255         them.
6256
6257 2015-06-09  Richard Biener  <rguenther@suse.de>
6258
6259         PR tree-optimization/66419
6260         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6261         consider GROUP_GAP when detecting a perfect subchain.
6262
6263 2015-06-09  Nick Clifton  <nickc@redhat.com>
6264
6265         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6266         place read only data in the .frodata section.
6267
6268 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6269
6270         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6271         (atomic_store<mode>): Likewise.
6272
6273 2015-06-09  Richard Biener  <rguenther@suse.de>
6274
6275         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6276
6277 2015-06-09  Richard Biener  <rguenther@suse.de>
6278
6279         PR middle-end/66413
6280         * tree-inline.c (insert_init_debug_bind): Unshare value.
6281
6282 2015-06-09  Richard Biener  <rguenther@suse.de>
6283
6284         PR tree-optimization/66396
6285         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6286         Rename virtual operands.
6287
6288 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6289
6290         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6291         always return false.
6292
6293 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6294
6295         PR rtl-optimization/64164
6296         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6297         * tree-ssa-copyrename.c: Removed.
6298         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6299         -ftree-coalesce-vars.
6300         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6301         * common.opt (ftree-copyrename): Ignore.
6302         (ftree-coalesce-inlined-vars): Likewise.
6303         * doc/invoke.texi: Remove the ignored options above.
6304         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6305         * tree-ssa-coalesce.h: ... here.
6306         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6307         headers required by it.
6308         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6309         across variables when flag_tree_coalesce_vars.  Check register
6310         use and promoted modes to allow coalescing.  Moved to
6311         tree-ssa-coalesce.c.
6312         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6313         with its member functions to tree-ssa-coalesce.c.
6314         (var_map_base_init): Likewise.  Renamed to
6315         compute_samebase_partition_bases.
6316         (partition_view_normal): Drop want_bases parameter.
6317         (partition_view_bitmap): Likewise.
6318         * tree-ssa-live.h: Adjust declarations.
6319         * tree-ssa-coalesce.c: Include explow.h.
6320         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6321         default defs at the entry point.
6322         (dump_part_var_map): New.
6323         (compute_optimized_partition_bases): New, called by...
6324         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6325         of compute_samebase_partition_bases.  Adjust.
6326         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6327         * cfgexpand.c (leader_merge): New.
6328         (get_rtl_for_parm_ssa_default_def): New.
6329         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6330         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6331         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6332         redundant MEM attr setting.
6333         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6334         from...
6335         (expand_one_stack_var): ... this.  New wrapper to check and
6336         skip already expanded SSA partitions.
6337         (record_alignment_for_reg_var): New, factored out of...
6338         (expand_one_var): ... this.
6339         (expand_one_ssa_partition): New.
6340         (adjust_one_expanded_partition_var): New.
6341         (expand_one_register_var): Check and skip already expanded SSA
6342         partitions.
6343         (expand_used_vars): Don't create DECLs for anonymous SSA
6344         names.  Expand all SSA partitions, then adjust all SSA names.
6345         (pass::execute): Replace the loops that set
6346         SA.partition_to_pseudo from partition leaders and cleared
6347         DECL_RTL for multi-location variables, and that which used to
6348         rename vars and set attrs, with one that clears DECL_RTL and
6349         checks that PARMs and RESULTs default_defs match DECL_RTL.
6350         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6351         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6352         * explow.c (promote_ssa_mode): New.
6353         * explow.h (promote_ssa_mode): Declare.
6354         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6355         * function.c: Include cfgexpand.h.
6356         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6357         (use_register_for_parm_decl): Wrapper for the above to
6358         special-case the result_ptr.
6359         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6360         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6361         multiple locations.
6362         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6363         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6364         (assign_parm_setup_block): Prefer SSA-assigned location.
6365         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6366         if stack_parm is NULL.
6367         (assign_parm_setup_stack): Prefer SSA-assigned location.
6368         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6369         rtl before testing for pointer bounds.  Special-case result_ptr.
6370         (expand_function_start): Maybe reset DECL_RTL of result.
6371         Prefer SSA-assigned location for result and static chain.
6372         Factor out DECL_RESULT and SET_DECL_RTL.
6373         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6374         anonymous SSA names.  Use promote_ssa_mode.
6375         (get_temp_reg): Likewise.
6376         (remove_ssa_form): Adjust.
6377         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6378         and get its reg_usage for reg invalidation.
6379         (compute_bb_dataflow): Pass it insn.
6380         (emit_notes_in_bb): Likewise.
6381         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6382         fail assert on conversion between unsigned types.
6383
6384 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6385
6386         PR debug/58315
6387         * tree-inline.c (reset_debug_binding): New.
6388         (reset_debug_bindings): Likewise.
6389         (expand_call_inline): Call it.
6390
6391 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6392
6393         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6394         TYPE_STRING_FLAG.
6395
6396 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6397
6398         * lto-streamer-out.c (lto_output_location): Stream
6399         reserved locations correctly.
6400         * lto-streamer-in.c (lto_output_location): Likewise.
6401
6402 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6403
6404         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6405         * ggc.h: Don't include statistics.h>
6406         * hash-map.h: Remove all includes.
6407         * hash-set.h: Likewise.
6408         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6409         the include list. Remove <new>.
6410         * inchash.h: Remove all includes.
6411         * mem-stats.h: Likewise.
6412         * vec.h: No special processing for generators or ggc.
6413         * alias.c : Adjust include files.
6414         * alloc-pool.c : Likewise.
6415         * alloc-pool.h : Likewise.
6416         * asan.c : Likewise.
6417         * attribs.c : Likewise.
6418         * auto-inc-dec.c : Likewise.
6419         * auto-profile.c : Likewise.
6420         * bb-reorder.c : Likewise.
6421         * bitmap.c : Likewise.
6422         * bitmap.h : Likewise.
6423         * bt-load.c : Likewise.
6424         * builtins.c : Likewise.
6425         * caller-save.c : Likewise.
6426         * calls.c : Likewise.
6427         * ccmp.c : Likewise.
6428         * cfg.c : Likewise.
6429         * cfganal.c : Likewise.
6430         * cfgbuild.c : Likewise.
6431         * cfgcleanup.c : Likewise.
6432         * cfgexpand.c : Likewise.
6433         * cfghooks.c : Likewise.
6434         * cfgloop.c : Likewise.
6435         * cfgloop.h : Likewise.
6436         * cfgloopanal.c : Likewise.
6437         * cfgloopmanip.c : Likewise.
6438         * cfgrtl.c : Likewise.
6439         * cgraph.c : Likewise.
6440         * cgraphbuild.c : Likewise.
6441         * cgraphclones.c : Likewise.
6442         * cgraphunit.c : Likewise.
6443         * cilk-common.c : Likewise.
6444         * combine-stack-adj.c : Likewise.
6445         * combine.c : Likewise.
6446         * compare-elim.c : Likewise.
6447         * context.c : Likewise.
6448         * convert.c : Likewise.
6449         * coverage.c : Likewise.
6450         * cppbuiltin.c : Likewise.
6451         * cprop.c : Likewise.
6452         * cse.c : Likewise.
6453         * cselib.c : Likewise.
6454         * data-streamer-in.c : Likewise.
6455         * data-streamer-out.c : Likewise.
6456         * data-streamer.c : Likewise.
6457         * data-streamer.h : Likewise.
6458         * dbxout.c : Likewise.
6459         * dce.c : Likewise.
6460         * ddg.c : Likewise.
6461         * debug.c : Likewise.
6462         * df-core.c : Likewise.
6463         * df-problems.c : Likewise.
6464         * df-scan.c : Likewise.
6465         * df.h : Likewise.
6466         * dfp.c : Likewise.
6467         * dojump.c : Likewise.
6468         * dominance.c : Likewise.
6469         * domwalk.c : Likewise.
6470         * double-int.c : Likewise.
6471         * dse.c : Likewise.
6472         * dumpfile.c : Likewise.
6473         * dwarf2asm.c : Likewise.
6474         * dwarf2cfi.c : Likewise.
6475         * dwarf2out.c : Likewise.
6476         * emit-rtl.c : Likewise.
6477         * et-forest.c : Likewise.
6478         * except.c : Likewise.
6479         * except.h : Likewise.
6480         * explow.c : Likewise.
6481         * expmed.c : Likewise.
6482         * expr.c : Likewise.
6483         * final.c : Likewise.
6484         * fixed-value.c : Likewise.
6485         * fold-const.c : Likewise.
6486         * function.c : Likewise.
6487         * fwprop.c : Likewise.
6488         * gcc-plugin.h : Likewise.
6489         * gcc.c : Likewise.
6490         * gcse-common.c : Likewise.
6491         * gcse.c : Likewise.
6492         * genattrtab.c : Likewise.
6493         * genautomata.c : Likewise.
6494         * genconditions.c : Likewise.
6495         * genemit.c : Likewise.
6496         * generic-match-head.c : Likewise.
6497         * genextract.c : Likewise.
6498         * gengtype-state.c : Likewise.
6499         * gengtype.c : Likewise.
6500         * genhooks.c : Likewise.
6501         * genmatch.c : Likewise.
6502         * genmodes.c : Likewise.
6503         * genrecog.c : Likewise.
6504         * gensupport.c : Likewise.
6505         * ggc-common.c : Likewise.
6506         * ggc-internal.h : Likewise.
6507         * ggc-none.c : Likewise.
6508         * ggc-page.c : Likewise.
6509         * gimple-builder.c : Likewise.
6510         * gimple-expr.c : Likewise.
6511         * gimple-fold.c : Likewise.
6512         * gimple-iterator.c : Likewise.
6513         * gimple-low.c : Likewise.
6514         * gimple-match-head.c : Likewise.
6515         * gimple-pretty-print.c : Likewise.
6516         * gimple-ssa-isolate-paths.c : Likewise.
6517         * gimple-ssa-strength-reduction.c : Likewise.
6518         * gimple-ssa.h : Likewise.
6519         * gimple-streamer-in.c : Likewise.
6520         * gimple-streamer-out.c : Likewise.
6521         * gimple-streamer.h : Likewise.
6522         * gimple-walk.c : Likewise.
6523         * gimple.c : Likewise.
6524         * gimplify-me.c : Likewise.
6525         * gimplify.c : Likewise.
6526         * godump.c : Likewise.
6527         * graph.c : Likewise.
6528         * graphds.c : Likewise.
6529         * graphite-blocking.c : Likewise.
6530         * graphite-dependences.c : Likewise.
6531         * graphite-interchange.c : Likewise.
6532         * graphite-isl-ast-to-gimple.c : Likewise.
6533         * graphite-optimize-isl.c : Likewise.
6534         * graphite-poly.c : Likewise.
6535         * graphite-scop-detection.c : Likewise.
6536         * graphite-sese-to-poly.c : Likewise.
6537         * graphite.c : Likewise.
6538         * haifa-sched.c : Likewise.
6539         * hard-reg-set.h : Likewise.
6540         * hw-doloop.c : Likewise.
6541         * ifcvt.c : Likewise.
6542         * inchash.c : Likewise.
6543         * incpath.c : Likewise.
6544         * init-regs.c : Likewise.
6545         * input.c : Likewise.
6546         * internal-fn.c : Likewise.
6547         * ipa-chkp.c : Likewise.
6548         * ipa-comdats.c : Likewise.
6549         * ipa-cp.c : Likewise.
6550         * ipa-devirt.c : Likewise.
6551         * ipa-icf-gimple.c : Likewise.
6552         * ipa-icf.c : Likewise.
6553         * ipa-inline-analysis.c : Likewise.
6554         * ipa-inline-transform.c : Likewise.
6555         * ipa-inline.c : Likewise.
6556         * ipa-polymorphic-call.c : Likewise.
6557         * ipa-profile.c : Likewise.
6558         * ipa-prop.c : Likewise.
6559         * ipa-pure-const.c : Likewise.
6560         * ipa-ref.c : Likewise.
6561         * ipa-reference.c : Likewise.
6562         * ipa-split.c : Likewise.
6563         * ipa-utils.c : Likewise.
6564         * ipa-visibility.c : Likewise.
6565         * ipa.c : Likewise.
6566         * ira-build.c : Likewise.
6567         * ira-color.c : Likewise.
6568         * ira-conflicts.c : Likewise.
6569         * ira-costs.c : Likewise.
6570         * ira-emit.c : Likewise.
6571         * ira-lives.c : Likewise.
6572         * ira.c : Likewise.
6573         * jump.c : Likewise.
6574         * langhooks.c : Likewise.
6575         * lcm.c : Likewise.
6576         * libfuncs.h : Likewise.
6577         * lists.c : Likewise.
6578         * loop-doloop.c : Likewise.
6579         * loop-init.c : Likewise.
6580         * loop-invariant.c : Likewise.
6581         * loop-iv.c : Likewise.
6582         * loop-unroll.c : Likewise.
6583         * lower-subreg.c : Likewise.
6584         * lra-assigns.c : Likewise.
6585         * lra-coalesce.c : Likewise.
6586         * lra-constraints.c : Likewise.
6587         * lra-eliminations.c : Likewise.
6588         * lra-lives.c : Likewise.
6589         * lra-remat.c : Likewise.
6590         * lra-spills.c : Likewise.
6591         * lra.c : Likewise.
6592         * lto-cgraph.c : Likewise.
6593         * lto-compress.c : Likewise.
6594         * lto-opts.c : Likewise.
6595         * lto-section-in.c : Likewise.
6596         * lto-section-out.c : Likewise.
6597         * lto-streamer-in.c : Likewise.
6598         * lto-streamer-out.c : Likewise.
6599         * lto-streamer.c : Likewise.
6600         * lto-streamer.h : Likewise.
6601         * mcf.c : Likewise.
6602         * mode-switching.c : Likewise.
6603         * modulo-sched.c : Likewise.
6604         * omega.c : Likewise.
6605         * omp-low.c : Likewise.
6606         * optabs.c : Likewise.
6607         * opts-global.c : Likewise.
6608         * opts.h : Likewise.
6609         * passes.c : Likewise.
6610         * plugin.c : Likewise.
6611         * postreload-gcse.c : Likewise.
6612         * postreload.c : Likewise.
6613         * predict.c : Likewise.
6614         * print-rtl.c : Likewise.
6615         * print-tree.c : Likewise.
6616         * profile.c : Likewise.
6617         * read-md.c : Likewise.
6618         * read-md.h : Likewise.
6619         * read-rtl.c : Likewise.
6620         * real.c : Likewise.
6621         * realmpfr.c : Likewise.
6622         * recog.c : Likewise.
6623         * ree.c : Likewise.
6624         * reg-stack.c : Likewise.
6625         * regcprop.c : Likewise.
6626         * reginfo.c : Likewise.
6627         * regrename.c : Likewise.
6628         * regstat.c : Likewise.
6629         * reload.c : Likewise.
6630         * reload1.c : Likewise.
6631         * reorg.c : Likewise.
6632         * resource.c : Likewise.
6633         * rtl-chkp.c : Likewise.
6634         * rtl.c : Likewise.
6635         * rtl.h : Likewise.
6636         * rtlanal.c : Likewise.
6637         * rtlhash.c : Likewise.
6638         * rtlhash.h : Likewise.
6639         * rtlhooks.c : Likewise.
6640         * sanopt.c : Likewise.
6641         * sched-deps.c : Likewise.
6642         * sched-ebb.c : Likewise.
6643         * sched-rgn.c : Likewise.
6644         * sched-vis.c : Likewise.
6645         * sdbout.c : Likewise.
6646         * sel-sched-dump.c : Likewise.
6647         * sel-sched-ir.c : Likewise.
6648         * sel-sched-ir.h : Likewise.
6649         * sel-sched.c : Likewise.
6650         * sese.c : Likewise.
6651         * shrink-wrap.c : Likewise.
6652         * shrink-wrap.h : Likewise.
6653         * simplify-rtx.c : Likewise.
6654         * stack-ptr-mod.c : Likewise.
6655         * statistics.c : Likewise.
6656         * stmt.c : Likewise.
6657         * stor-layout.c : Likewise.
6658         * store-motion.c : Likewise.
6659         * stringpool.c : Likewise.
6660         * symtab.c : Likewise.
6661         * target-globals.c : Likewise.
6662         * targhooks.c : Likewise.
6663         * tlink.c : Likewise.
6664         * toplev.c : Likewise.
6665         * tracer.c : Likewise.
6666         * trans-mem.c : Likewise.
6667         * tree-affine.c : Likewise.
6668         * tree-affine.h : Likewise.
6669         * tree-browser.c : Likewise.
6670         * tree-call-cdce.c : Likewise.
6671         * tree-cfg.c : Likewise.
6672         * tree-cfgcleanup.c : Likewise.
6673         * tree-chkp-opt.c : Likewise.
6674         * tree-chkp.c : Likewise.
6675         * tree-chrec.c : Likewise.
6676         * tree-complex.c : Likewise.
6677         * tree-data-ref.c : Likewise.
6678         * tree-dfa.c : Likewise.
6679         * tree-diagnostic.c : Likewise.
6680         * tree-dump.c : Likewise.
6681         * tree-eh.c : Likewise.
6682         * tree-eh.h : Likewise.
6683         * tree-emutls.c : Likewise.
6684         * tree-hasher.h : Likewise.
6685         * tree-if-conv.c : Likewise.
6686         * tree-inline.c : Likewise.
6687         * tree-inline.h : Likewise.
6688         * tree-into-ssa.c : Likewise.
6689         * tree-iterator.c : Likewise.
6690         * tree-loop-distribution.c : Likewise.
6691         * tree-nested.c : Likewise.
6692         * tree-nrv.c : Likewise.
6693         * tree-object-size.c : Likewise.
6694         * tree-outof-ssa.c : Likewise.
6695         * tree-parloops.c : Likewise.
6696         * tree-phinodes.c : Likewise.
6697         * tree-predcom.c : Likewise.
6698         * tree-pretty-print.c : Likewise.
6699         * tree-profile.c : Likewise.
6700         * tree-scalar-evolution.c : Likewise.
6701         * tree-sra.c : Likewise.
6702         * tree-ssa-address.c : Likewise.
6703         * tree-ssa-alias.c : Likewise.
6704         * tree-ssa-ccp.c : Likewise.
6705         * tree-ssa-coalesce.c : Likewise.
6706         * tree-ssa-copy.c : Likewise.
6707         * tree-ssa-copyrename.c : Likewise.
6708         * tree-ssa-dce.c : Likewise.
6709         * tree-ssa-dom.c : Likewise.
6710         * tree-ssa-dse.c : Likewise.
6711         * tree-ssa-forwprop.c : Likewise.
6712         * tree-ssa-ifcombine.c : Likewise.
6713         * tree-ssa-live.c : Likewise.
6714         * tree-ssa-loop-ch.c : Likewise.
6715         * tree-ssa-loop-im.c : Likewise.
6716         * tree-ssa-loop-ivcanon.c : Likewise.
6717         * tree-ssa-loop-ivopts.c : Likewise.
6718         * tree-ssa-loop-manip.c : Likewise.
6719         * tree-ssa-loop-niter.c : Likewise.
6720         * tree-ssa-loop-prefetch.c : Likewise.
6721         * tree-ssa-loop-unswitch.c : Likewise.
6722         * tree-ssa-loop.c : Likewise.
6723         * tree-ssa-math-opts.c : Likewise.
6724         * tree-ssa-operands.c : Likewise.
6725         * tree-ssa-phiopt.c : Likewise.
6726         * tree-ssa-phiprop.c : Likewise.
6727         * tree-ssa-pre.c : Likewise.
6728         * tree-ssa-propagate.c : Likewise.
6729         * tree-ssa-reassoc.c : Likewise.
6730         * tree-ssa-sccvn.c : Likewise.
6731         * tree-ssa-scopedtables.c : Likewise.
6732         * tree-ssa-sink.c : Likewise.
6733         * tree-ssa-strlen.c : Likewise.
6734         * tree-ssa-structalias.c : Likewise.
6735         * tree-ssa-tail-merge.c : Likewise.
6736         * tree-ssa-ter.c : Likewise.
6737         * tree-ssa-threadedge.c : Likewise.
6738         * tree-ssa-threadupdate.c : Likewise.
6739         * tree-ssa-uncprop.c : Likewise.
6740         * tree-ssa-uninit.c : Likewise.
6741         * tree-ssa.c : Likewise.
6742         * tree-ssanames.c : Likewise.
6743         * tree-stdarg.c : Likewise.
6744         * tree-streamer-in.c : Likewise.
6745         * tree-streamer-out.c : Likewise.
6746         * tree-streamer.c : Likewise.
6747         * tree-streamer.h : Likewise.
6748         * tree-switch-conversion.c : Likewise.
6749         * tree-tailcall.c : Likewise.
6750         * tree-vect-data-refs.c : Likewise.
6751         * tree-vect-generic.c : Likewise.
6752         * tree-vect-loop-manip.c : Likewise.
6753         * tree-vect-loop.c : Likewise.
6754         * tree-vect-patterns.c : Likewise.
6755         * tree-vect-slp.c : Likewise.
6756         * tree-vect-stmts.c : Likewise.
6757         * tree-vectorizer.c : Likewise.
6758         * tree-vectorizer.h : Likewise.
6759         * tree-vrp.c : Likewise.
6760         * tree.c : Likewise.
6761         * tsan.c : Likewise.
6762         * ubsan.c : Likewise.
6763         * valtrack.c : Likewise.
6764         * valtrack.h : Likewise.
6765         * value-prof.c : Likewise.
6766         * var-tracking.c : Likewise.
6767         * varasm.c : Likewise.
6768         * varpool.c : Likewise.
6769         * vec.c: Likewise.
6770         * vmsdbgout.c : Likewise.
6771         * vtable-verify.c : Likewise.
6772         * vtable-verify.h : Likewise.
6773         * web.c : Likewise.
6774         * wide-int.cc : Likewise.
6775         * xcoffout.c : Likewise.
6776         * config/aarch64/aarch64-builtins.c : Likewise.
6777         * config/aarch64/aarch64.c : Likewise.
6778         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
6779         * config/alpha/alpha.c : Likewise.
6780         * config/arc/arc.c : Likewise.
6781         * config/arm/aarch-common.c : Likewise.
6782         * config/arm/arm-builtins.c : Likewise.
6783         * config/arm/arm-c.c : Likewise.
6784         * config/arm/arm.c : Likewise.
6785         * config/avr/avr-c.c : Likewise.
6786         * config/avr/avr-log.c : Likewise.
6787         * config/avr/avr.c : Likewise.
6788         * config/bfin/bfin.c : Likewise.
6789         * config/c6x/c6x.c : Likewise.
6790         * config/cr16/cr16.c : Likewise.
6791         * config/cris/cris.c : Likewise.
6792         * config/darwin-c.c : Likewise.
6793         * config/darwin.c : Likewise.
6794         * config/default-c.c : Likewise.
6795         * config/epiphany/epiphany.c : Likewise.
6796         * config/epiphany/mode-switch-use.c : Likewise.
6797         * config/epiphany/resolve-sw-modes.c : Likewise.
6798         * config/fr30/fr30.c : Likewise.
6799         * config/frv/frv.c : Likewise.
6800         * config/ft32/ft32.c : Likewise.
6801         * config/glibc-c.c : Likewise.
6802         * config/h8300/h8300.c : Likewise.
6803         * config/i386/i386-c.c : Likewise.
6804         * config/i386/i386.c : Likewise.
6805         * config/i386/msformat-c.c : Likewise.
6806         * config/i386/winnt-cxx.c : Likewise.
6807         * config/i386/winnt-stubs.c : Likewise.
6808         * config/i386/winnt.c : Likewise.
6809         * config/ia64/ia64-c.c : Likewise.
6810         * config/ia64/ia64.c : Likewise.
6811         * config/iq2000/iq2000.c : Likewise.
6812         * config/lm32/lm32.c : Likewise.
6813         * config/m32c/m32c-pragma.c : Likewise.
6814         * config/m32c/m32c.c : Likewise.
6815         * config/m32r/m32r.c : Likewise.
6816         * config/m68k/m68k.c : Likewise.
6817         * config/mcore/mcore.c : Likewise.
6818         * config/mep/mep-pragma.c : Likewise.
6819         * config/mep/mep.c : Likewise.
6820         * config/microblaze/microblaze-c.c : Likewise.
6821         * config/microblaze/microblaze.c : Likewise.
6822         * config/mips/mips.c : Likewise.
6823         * config/mmix/mmix.c : Likewise.
6824         * config/mn10300/mn10300.c : Likewise.
6825         * config/moxie/moxie.c : Likewise.
6826         * config/msp430/msp430-c.c : Likewise.
6827         * config/msp430/msp430.c : Likewise.
6828         * config/nds32/nds32-cost.c : Likewise.
6829         * config/nds32/nds32-fp-as-gp.c : Likewise.
6830         * config/nds32/nds32-intrinsic.c : Likewise.
6831         * config/nds32/nds32-isr.c : Likewise.
6832         * config/nds32/nds32-md-auxiliary.c : Likewise.
6833         * config/nds32/nds32-memory-manipulation.c : Likewise.
6834         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
6835         * config/nds32/nds32-predicates.c : Likewise.
6836         * config/nds32/nds32.c : Likewise.
6837         * config/nios2/nios2.c : Likewise.
6838         * config/nvptx/nvptx.c : Likewise.
6839         * config/pa/pa.c : Likewise.
6840         * config/pdp11/pdp11.c : Likewise.
6841         * config/rl78/rl78-c.c : Likewise.
6842         * config/rl78/rl78.c : Likewise.
6843         * config/rs6000/rs6000-c.c : Likewise.
6844         * config/rs6000/rs6000.c : Likewise.
6845         * config/rx/rx.c : Likewise.
6846         * config/s390/s390-c.c : Likewise.
6847         * config/s390/s390.c : Likewise.
6848         * config/sh/sh-c.c : Likewise.
6849         * config/sh/sh-mem.cc : Likewise.
6850         * config/sh/sh.c : Likewise.
6851         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
6852         * config/sh/sh_treg_combine.cc : Likewise.
6853         * config/sol2-c.c : Likewise.
6854         * config/sol2-cxx.c : Likewise.
6855         * config/sol2-stubs.c : Likewise.
6856         * config/sol2.c : Likewise.
6857         * config/sparc/sparc-c.c : Likewise.
6858         * config/sparc/sparc.c : Likewise.
6859         * config/spu/spu-c.c : Likewise.
6860         * config/spu/spu.c : Likewise.
6861         * config/stormy16/stormy16.c : Likewise.
6862         * config/tilegx/mul-tables.c : Likewise.
6863         * config/tilegx/tilegx-c.c : Likewise.
6864         * config/tilegx/tilegx.c : Likewise.
6865         * config/tilepro/mul-tables.c : Likewise.
6866         * config/tilepro/tilepro-c.c : Likewise.
6867         * config/tilepro/tilepro.c : Likewise.
6868         * config/v850/v850-c.c : Likewise.
6869         * config/v850/v850.c : Likewise.
6870         * config/vax/vax.c : Likewise.
6871         * config/visium/visium.c : Likewise.
6872         * config/vms/vms-c.c : Likewise.
6873         * config/vms/vms.c : Likewise.
6874         * config/vxworks.c : Likewise.
6875         * config/winnt-c.c : Likewise.
6876         * config/xtensa/xtensa.c : Likewise.
6877
6878 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6879
6880         PR lto/65378
6881         * ipa-utils.h (warn_types_mismatch): Update prototype.
6882         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
6883         parameters.
6884         (type_mismatch_p): New function.
6885         (warn_types_mismatch): Reorg to work better on non-C++ types.
6886         (odr_types_equivalent_p): Add loc1/loc2 parameters.
6887         (add_type_duplicate): Update.
6888
6889 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6890
6891         PR rtl-optimization/66444
6892         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
6893         call_used_regs.
6894
6895 2015-06-08  Richard Biener  <rguenther@suse.de>
6896
6897         PR tree-optimization/66422
6898         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
6899         block after inserted gcc_unreachable.
6900
6901 2015-06-08  Nick Clifton  <nickc@redhat.com>
6902
6903         * config/rx/rx.c (rx_function_value): Do not promote vector types.
6904         (rx_promote_function_mode): Likewise.
6905         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
6906
6907 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
6908
6909         * genattrtab.c (insn_alternatives): Change type from int *
6910         to uint64_t *.
6911         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
6912         (get_attr_value): Change type of num_alt to uint64_t.
6913         (compute_alternative_mask): Change return type from
6914         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
6915         (make_alternative_compare, mk_attr_alt): Change argument type
6916         from int to uint64_t.
6917         (simplify_test_exp): Change type of i from int to uint64_t.
6918         Shift ((uint64_t) 1) instead of 1 up.
6919         (main): Adjust oballocvec first argument from int to uint64_t.
6920         Shift ((uint64_t) 1) instead of 1 up.
6921
6922 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
6923
6924         PR other/65366
6925         * gdbhooks.py: Import sys.
6926         (intptr): New function.  Replace int(...) by intptr(...).
6927
6928 2015-06-08  Richard Biener  <rguenther@suse.de>
6929
6930         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
6931         adjustment for gaps at the end of a SLP load group properly.
6932         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
6933         all permutations we can generate.
6934         (vect_transform_slp_perm_load): Use the correct group-size.
6935
6936 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
6937
6938         * genmatch.c (expr::gen_transform): For conditions, guess the type
6939         from the second operand.
6940
6941 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6942
6943         PR tree-optimization/66442
6944         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
6945         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
6946         if the loop latch is not a singleton.  Use
6947         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
6948
6949 2015-06-08  Marek Polacek  <polacek@redhat.com>
6950
6951         PR sanitizer/66452
6952         * toplev.c (check_global_declaration): Don't warn about artificial
6953         decls.
6954
6955 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6956
6957         PR tree-optimization/66436
6958         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
6959         dump file.
6960         * gimplify.c: Add tree-dump.h include.
6961         (gimplify_function_tree): Dump function to gimple dump file.
6962         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
6963         dump file.
6964
6965 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6966
6967         PR tree-optimization/66435
6968         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
6969         function.
6970
6971 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
6972
6973         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
6974         of ptr_type_node to not be ptr_to_node.
6975         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
6976         TREE_TYPE of pointers.
6977         * gimple-expr.c (useless_type_conversion): Reorder the check for
6978         function pointers and TYPE_CANONICAL.
6979
6980 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
6981
6982         PR bootstrap/66319
6983         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
6984         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
6985         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
6986         later.
6987         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
6988         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
6989         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
6990         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
6991         and non iso if unix2003.
6992
6993 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
6994
6995         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
6996
6997 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
6998
6999         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
7000         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
7001         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
7002         except.c, final.c, function.c, gcse-common.c, genemit.c,
7003         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
7004         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
7005         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
7006         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
7007         more derived ones.
7008
7009 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
7010
7011         * combine.c (combine_split_insns): Remove cast.
7012         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
7013         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
7014         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
7015         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
7016         * genemit.c (gen_split): Change return type of generated functions to
7017         rtx_insn.
7018         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
7019         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
7020         gen_peephole2_* functions.
7021         (print_subroutine, main): Likewise.
7022         * recog.c (peephole2_optimize): Remove cast.
7023         (peep2_next_insn): Promote return type to rtx_insn.
7024         * recog.h (peep2_next_insn): Fix prototype.
7025         * rtl.h (try_split, split_insns): Likewise.
7026
7027 2015-06-06  DJ Delorie  <dj@redhat.com>
7028
7029         * config/msp430/msp430.c (msp430_asm_integer): Support addition
7030         and subtraction too.
7031
7032 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7033
7034         PR target/66410
7035         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
7036         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
7037         instead of Snd.  Disparage Sid/z alternative with '^'.
7038
7039 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
7040
7041         * dwarf2out.c: Remove deferred_locations*.
7042         (dwarf2_debug_hooks): Add early_finish hook.
7043         Remove global_decl hook.
7044         Add early_global_decl and late_global_decl hook.
7045         New global early_dwarf.
7046         New structure set_early_dwarf.
7047         (output_die): Indicate whether a DIE was generated early
7048         when generating assembly with -dA.
7049         (struct limbo_die_struct): Document created_for field.
7050         Remove file_table_last_lookup.
7051         (remove_AT): Return TRUE if successful.
7052         (remove_child_TAG): Clear die_parent.
7053         (reparent_child): New function abstracted from...
7054         (splice_child_die): ...here.
7055         (new_die): ICE if a DIE ends up in limbo too late.
7056         (check_die): New.
7057         (defer_location): Remove.
7058         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
7059         (fill_variable_array_bounds): New.
7060         (decl_start_label): Call fill_variable_array_bounds.
7061         (gen_formal_parameter_die): Rewrite to reuse previously generated
7062         DIEs.
7063         (gen_subprogram_die): Same.
7064         (gen_variable_die): Same.
7065         (gen_const_die): Same.
7066         (gen_label_die): Same.
7067         (gen_lexical_block_die): Same.
7068         (decl_will_get_specification_p): New.
7069         (local_function_static): New.
7070         (gen_struct_or_union_type_die): Fill in variable-length fields.
7071         (gen_typedef_die): Fill in variable-length typedefs.
7072         (gen_tagged_type_die): Gracefully return on error_mark_node.
7073         Handle re-entrancy.
7074         (gen_type_die_with_usage): Handle variable-length types.
7075         Remove duplicate code for ARRAY_TYPE case.
7076         (process_scope_var): Only process imported modules during early
7077         dwarf.
7078         (dwarf2out_early_global_decl): New.
7079         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7080         (dwarf2out_type_decl): Set early_dwarf while calling
7081         dwarf2out_decl.
7082         (dwarf2out_decl): Verify that we did not recreate a previously
7083         generated DIE.
7084         Do not return on DECL_EXTERNALs in VAR_DECLs.
7085         Abstract some code to local_function_static.
7086         (lookup_filename): Remove use of file_table_last_lookup.
7087         Gracefully exit on missing file_name.
7088         (dwarf2out_finish): Verify limbo list.
7089         Remove deferred_locations_list use.
7090         Move deferred_asm_name and limbo flushing to...
7091         (dwarf2out_early_finish): ...here.  New.
7092         (dwarf2out_c_finalize): Remove set of deferred_location_list,
7093         deferred_asm_name, and file_table_last_lookup.
7094         * cgraph.h (referred_to_p): Add default argument.
7095         * cgraphunit.c (referred_to_p): Add and handle include_self
7096         argument.
7097         (analyze_functions): Add first_time argument.
7098         Call check_global_declaration for all symbols.
7099         Call late_global_decl for nodes for moribund nodes.
7100         (finalize_compilation_unit): Add new argument to
7101         analyze_functions.
7102         Call early_global_decl for functions.
7103         Call early_finish debug hook.
7104         * dbxout.c (dbxout_early_global_decl): New.
7105         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
7106         (dbx_debug_hooks): Add new hooks.
7107         (xcoff_debug_hooks): Same.
7108         * debug.c (do_nothing_debug_hooks): Add early_finish field.
7109         Add early and late debug hooks.
7110         Remove global_decl hook.
7111         * debug.h (struct gcc_debug_hooks): Add early_finish,
7112         early_global_decl, and late_global_decl fields.
7113         Remove global_decl field.
7114         Document gcc_debug_hooks.
7115         * gengtype.c (output_typename): Remove.
7116         * godump.c (go_early_global_decl): New.
7117         (go_late_global_decl): New.
7118         (go_global_decl): Remove.
7119         (dump_go_spec_init): Remove global_decl.  Add
7120         {early,late}_global_decl.
7121         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7122         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7123         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7124         (write_global_declarations): Remove.
7125         (global_decl_processing): New.
7126         * langhooks.h (struct lang_hooks_for_decls): Remove
7127         final_write_globals field.
7128         Add post_compilation_parsing_cleanups field.
7129         * passes.c (rest_of_decl_compilation): Call early_global_decl.
7130         * sdbout.c: Add early and late_global_decl hooks.  Remove
7131         sdbout_global_decl hook.
7132         Add early_finish field for sdb_debug_hooks.
7133         (sdbout_global_decl): Remove.
7134         (sdbout_early_global_decl): New.
7135         (sdbout_late_global_decl): New.
7136         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7137         * toplev.c (check_global_declaration): Rename from
7138         check_global_declaration_1.
7139         Adapt to use symtab infrastructure.
7140         (check_global_declarations): Remove.
7141         (emit_debug_global_declarations): Remove.
7142         (compile_file): Remove call to final_write_globals langhook.
7143         Run the actual compilation process.
7144         Perform any post compilation parser cleanups.
7145         Generate late debug info.
7146         * toplev.h (check_global_declaration): New.
7147         (check_global_declaration_1): Remove.
7148         (check_global_declarations): Remove.
7149         (write_global_declarations): Remove.
7150         (emit_debug_global_declarations): Remove.
7151         (global_decl_processing): New.
7152         * tree-core.h (struct tree_block): Add DIE field.
7153         * tree.h (BLOCK_DIE): New.
7154         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7155         throughout.
7156         (vmsdbgout_early_global_decl): New.
7157         (vmsdbgout_late_global_decl): New.
7158         Add early_finish debug hook field to vmsdbg_debug_hooks.
7159         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7160         Add early and late_global_decl debug hooks.
7161
7162 2015-06-05  Julian Brown  <julian@codesourcery.com>
7163             Sandra Loosemore  <sandra@codesourcery.com>
7164
7165         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7166         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7167         to print-sysroot-suffix.sh script.
7168
7169 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7170
7171         merge from gomp4 branch:
7172         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7173
7174         PR tree-optimization/65443
7175         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7176         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7177         (try_transform_to_exit_first_loop_alt): New function.
7178         (transform_to_exit_first_loop): Use
7179         try_transform_to_exit_first_loop_alt.
7180
7181 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7182
7183         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7184         emit_cmp_and_jump_insns with the mode of target.
7185
7186 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7187
7188         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7189
7190 2015-06-04  DJ Delorie  <dj@redhat.com>
7191
7192         * config/msp430/msp430.md (movsi_s): New.  Special case for
7193         storing a 20-bit symbol into a 32-bit register.
7194         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7195         * config/msp430/predicates.md (msp430_symbol_operand): New.
7196
7197 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7198
7199         * c-family/c-common.c (noplt): New attribute.
7200         (handle_noplt_attribute): New handler.
7201         * calls.c (prepare_call_address): Check for noplt
7202         attribute.
7203         * config/i386/i386.c (ix86_expand_call): Check
7204         for noplt attribute.
7205         (ix86_nopic_noplt_attribute_p): New function.
7206         (ix86_output_call_insn): Output indirect call for non-pic
7207         no plt calls.
7208         * doc/extend.texi (noplt): Document new attribute.
7209         * doc/invoke.texi: Document new attribute.
7210
7211 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7212
7213         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7214         real.h, and fixed-value.h when included in host source files.
7215         * double-int.h: Remove redundant #includes listed above.
7216         * fixed-value.h: Likewise.
7217         * real.h: Likewise.
7218         * wide-int.h: Likewise.
7219         * inchash.h: Likewise.
7220         * rtl.h: Add some include files When included from a generator file.
7221         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7222         * internal-fn.h: Don't include coretypes.h.
7223         * alias.c: Adjust includes for restructured coretypes.h.
7224         * asan.c: Likewise.
7225         * attribs.c: Likewise.
7226         * auto-inc-dec.c: Likewise.
7227         * auto-profile.c: Likewise.
7228         * bb-reorder.c: Likewise.
7229         * bt-load.c: Likewise.
7230         * builtins.c: Likewise.
7231         * caller-save.c: Likewise.
7232         * calls.c: Likewise.
7233         * ccmp.c: Likewise.
7234         * cfg.c: Likewise.
7235         * cfganal.c: Likewise.
7236         * cfgbuild.c: Likewise.
7237         * cfgcleanup.c: Likewise.
7238         * cfgexpand.c: Likewise.
7239         * cfghooks.c: Likewise.
7240         * cfgloop.c: Likewise.
7241         * cfgloop.h: Likewise.
7242         * cfgloopanal.c: Likewise.
7243         * cfgloopmanip.c: Likewise.
7244         * cfgrtl.c: Likewise.
7245         * cgraph.c: Likewise.
7246         * cgraphbuild.c: Likewise.
7247         * cgraphclones.c: Likewise.
7248         * cgraphunit.c: Likewise.
7249         * cilk-common.c: Likewise.
7250         * combine-stack-adj.c: Likewise.
7251         * combine.c: Likewise.
7252         * compare-elim.c: Likewise.
7253         * convert.c: Likewise.
7254         * coverage.c: Likewise.
7255         * cppbuiltin.c: Likewise.
7256         * cprop.c: Likewise.
7257         * cse.c: Likewise.
7258         * cselib.c: Likewise.
7259         * data-streamer-in.c: Likewise.
7260         * data-streamer-out.c: Likewise.
7261         * data-streamer.c: Likewise.
7262         * dbxout.c: Likewise.
7263         * dce.c: Likewise.
7264         * ddg.c: Likewise.
7265         * debug.c: Likewise.
7266         * df-core.c: Likewise.
7267         * df-problems.c: Likewise.
7268         * df-scan.c: Likewise.
7269         * df.h: Likewise.
7270         * dfp.c: Likewise.
7271         * dojump.c: Likewise.
7272         * dominance.c: Likewise.
7273         * domwalk.c: Likewise.
7274         * double-int.c: Likewise.
7275         * dse.c: Likewise.
7276         * dumpfile.c: Likewise.
7277         * dwarf2asm.c: Likewise.
7278         * dwarf2cfi.c: Likewise.
7279         * dwarf2out.c: Likewise.
7280         * dwarf2out.h: Likewise.
7281         * emit-rtl.c: Likewise.
7282         * et-forest.c: Likewise.
7283         * except.c: Likewise.
7284         * explow.c: Likewise.
7285         * expmed.c: Likewise.
7286         * expr.c: Likewise.
7287         * final.c: Likewise.
7288         * fixed-value.c: Likewise.
7289         * fold-const.c: Likewise.
7290         * function.c: Likewise.
7291         * fwprop.c: Likewise.
7292         * gcc-plugin.h: Likewise.
7293         * gcse.c: Likewise.
7294         * generic-match-head.c: Likewise.
7295         * ggc-page.c: Likewise.
7296         * gimple-builder.c: Likewise.
7297         * gimple-expr.c: Likewise.
7298         * gimple-fold.c: Likewise.
7299         * gimple-iterator.c: Likewise.
7300         * gimple-low.c: Likewise.
7301         * gimple-match-head.c: Likewise.
7302         * gimple-pretty-print.c: Likewise.
7303         * gimple-ssa-isolate-paths.c: Likewise.
7304         * gimple-ssa-strength-reduction.c: Likewise.
7305         * gimple-streamer-in.c: Likewise.
7306         * gimple-streamer-out.c: Likewise.
7307         * gimple-streamer.h: Likewise.
7308         * gimple-walk.c: Likewise.
7309         * gimple.c: Likewise.
7310         * gimplify-me.c: Likewise.
7311         * gimplify.c: Likewise.
7312         * godump.c: Likewise.
7313         * graph.c: Likewise.
7314         * graphite-blocking.c: Likewise.
7315         * graphite-dependences.c: Likewise.
7316         * graphite-interchange.c: Likewise.
7317         * graphite-isl-ast-to-gimple.c: Likewise.
7318         * graphite-optimize-isl.c: Likewise.
7319         * graphite-poly.c: Likewise.
7320         * graphite-scop-detection.c: Likewise.
7321         * graphite-sese-to-poly.c: Likewise.
7322         * graphite.c: Likewise.
7323         * haifa-sched.c: Likewise.
7324         * hooks.h: Likewise.
7325         * hw-doloop.c: Likewise.
7326         * ifcvt.c: Likewise.
7327         * incpath.c: Likewise.
7328         * init-regs.c: Likewise.
7329         * internal-fn.c: Likewise.
7330         * ipa-chkp.c: Likewise.
7331         * ipa-comdats.c: Likewise.
7332         * ipa-cp.c: Likewise.
7333         * ipa-devirt.c: Likewise.
7334         * ipa-icf-gimple.c: Likewise.
7335         * ipa-icf.c: Likewise.
7336         * ipa-inline-analysis.c: Likewise.
7337         * ipa-inline-transform.c: Likewise.
7338         * ipa-inline.c: Likewise.
7339         * ipa-polymorphic-call.c: Likewise.
7340         * ipa-profile.c: Likewise.
7341         * ipa-prop.c: Likewise.
7342         * ipa-pure-const.c: Likewise.
7343         * ipa-ref.c: Likewise.
7344         * ipa-reference.c: Likewise.
7345         * ipa-split.c: Likewise.
7346         * ipa-utils.c: Likewise.
7347         * ipa-visibility.c: Likewise.
7348         * ipa.c: Likewise.
7349         * ira-build.c: Likewise.
7350         * ira-color.c: Likewise.
7351         * ira-conflicts.c: Likewise.
7352         * ira-costs.c: Likewise.
7353         * ira-emit.c: Likewise.
7354         * ira-lives.c: Likewise.
7355         * ira.c: Likewise.
7356         * jump.c: Likewise.
7357         * langhooks.c: Likewise.
7358         * lcm.c: Likewise.
7359         * loop-doloop.c: Likewise.
7360         * loop-init.c: Likewise.
7361         * loop-invariant.c: Likewise.
7362         * loop-iv.c: Likewise.
7363         * loop-unroll.c: Likewise.
7364         * lower-subreg.c: Likewise.
7365         * lra-assigns.c: Likewise.
7366         * lra-coalesce.c: Likewise.
7367         * lra-constraints.c: Likewise.
7368         * lra-eliminations.c: Likewise.
7369         * lra-lives.c: Likewise.
7370         * lra-remat.c: Likewise.
7371         * lra-spills.c: Likewise.
7372         * lra.c: Likewise.
7373         * lto-cgraph.c: Likewise.
7374         * lto-compress.c: Likewise.
7375         * lto-opts.c: Likewise.
7376         * lto-section-in.c: Likewise.
7377         * lto-section-out.c: Likewise.
7378         * lto-streamer-in.c: Likewise.
7379         * lto-streamer-out.c: Likewise.
7380         * lto-streamer.c: Likewise.
7381         * mcf.c: Likewise.
7382         * mode-switching.c: Likewise.
7383         * modulo-sched.c: Likewise.
7384         * omega.c: Likewise.
7385         * omp-low.c: Likewise.
7386         * optabs.c: Likewise.
7387         * opts-global.c: Likewise.
7388         * passes.c: Likewise.
7389         * plugin.c: Likewise.
7390         * postreload-gcse.c: Likewise.
7391         * postreload.c: Likewise.
7392         * predict.c: Likewise.
7393         * print-rtl.c: Likewise.
7394         * print-tree.c: Likewise.
7395         * profile.c: Likewise.
7396         * real.c: Likewise.
7397         * realmpfr.c: Likewise.
7398         * realmpfr.h: Likewise.
7399         * recog.c: Likewise.
7400         * ree.c: Likewise.
7401         * reg-stack.c: Likewise.
7402         * regcprop.c: Likewise.
7403         * reginfo.c: Likewise.
7404         * regrename.c: Likewise.
7405         * regs.h: Likewise.
7406         * regstat.c: Likewise.
7407         * reload.c: Likewise.
7408         * reload1.c: Likewise.
7409         * reorg.c: Likewise.
7410         * resource.c: Likewise.
7411         * rtl-chkp.c: Likewise.
7412         * rtlanal.c: Likewise.
7413         * rtlhooks.c: Likewise.
7414         * sanopt.c: Likewise.
7415         * sched-deps.c: Likewise.
7416         * sched-ebb.c: Likewise.
7417         * sched-rgn.c: Likewise.
7418         * sched-vis.c: Likewise.
7419         * sdbout.c: Likewise.
7420         * sel-sched-dump.c: Likewise.
7421         * sel-sched-ir.c: Likewise.
7422         * sel-sched.c: Likewise.
7423         * sese.c: Likewise.
7424         * shrink-wrap.c: Likewise.
7425         * shrink-wrap.h: Likewise.
7426         * simplify-rtx.c: Likewise.
7427         * stack-ptr-mod.c: Likewise.
7428         * statistics.c: Likewise.
7429         * stmt.c: Likewise.
7430         * stor-layout.c: Likewise.
7431         * store-motion.c: Likewise.
7432         * stringpool.c: Likewise.
7433         * symtab.c: Likewise.
7434         * target-globals.c: Likewise.
7435         * targhooks.c: Likewise.
7436         * toplev.c: Likewise.
7437         * tracer.c: Likewise.
7438         * trans-mem.c: Likewise.
7439         * tree-affine.c: Likewise.
7440         * tree-affine.h: Likewise.
7441         * tree-browser.c: Likewise.
7442         * tree-call-cdce.c: Likewise.
7443         * tree-cfg.c: Likewise.
7444         * tree-cfgcleanup.c: Likewise.
7445         * tree-chkp-opt.c: Likewise.
7446         * tree-chkp.c: Likewise.
7447         * tree-chrec.c: Likewise.
7448         * tree-complex.c: Likewise.
7449         * tree-data-ref.c: Likewise.
7450         * tree-dfa.c: Likewise.
7451         * tree-diagnostic.c: Likewise.
7452         * tree-dump.c: Likewise.
7453         * tree-eh.c: Likewise.
7454         * tree-emutls.c: Likewise.
7455         * tree-if-conv.c: Likewise.
7456         * tree-inline.c: Likewise.
7457         * tree-into-ssa.c: Likewise.
7458         * tree-iterator.c: Likewise.
7459         * tree-loop-distribution.c: Likewise.
7460         * tree-nested.c: Likewise.
7461         * tree-nrv.c: Likewise.
7462         * tree-object-size.c: Likewise.
7463         * tree-outof-ssa.c: Likewise.
7464         * tree-parloops.c: Likewise.
7465         * tree-phinodes.c: Likewise.
7466         * tree-predcom.c: Likewise.
7467         * tree-pretty-print.c: Likewise.
7468         * tree-pretty-print.h: Likewise.
7469         * tree-profile.c: Likewise.
7470         * tree-scalar-evolution.c: Likewise.
7471         * tree-sra.c: Likewise.
7472         * tree-ssa-address.c: Likewise.
7473         * tree-ssa-alias.c: Likewise.
7474         * tree-ssa-ccp.c: Likewise.
7475         * tree-ssa-coalesce.c: Likewise.
7476         * tree-ssa-copy.c: Likewise.
7477         * tree-ssa-copyrename.c: Likewise.
7478         * tree-ssa-dce.c: Likewise.
7479         * tree-ssa-dom.c: Likewise.
7480         * tree-ssa-dse.c: Likewise.
7481         * tree-ssa-forwprop.c: Likewise.
7482         * tree-ssa-ifcombine.c: Likewise.
7483         * tree-ssa-live.c: Likewise.
7484         * tree-ssa-loop-ch.c: Likewise.
7485         * tree-ssa-loop-im.c: Likewise.
7486         * tree-ssa-loop-ivcanon.c: Likewise.
7487         * tree-ssa-loop-ivopts.c: Likewise.
7488         * tree-ssa-loop-manip.c: Likewise.
7489         * tree-ssa-loop-niter.c: Likewise.
7490         * tree-ssa-loop-prefetch.c: Likewise.
7491         * tree-ssa-loop-unswitch.c: Likewise.
7492         * tree-ssa-loop.c: Likewise.
7493         * tree-ssa-loop.h: Likewise.
7494         * tree-ssa-math-opts.c: Likewise.
7495         * tree-ssa-operands.c: Likewise.
7496         * tree-ssa-phiopt.c: Likewise.
7497         * tree-ssa-phiprop.c: Likewise.
7498         * tree-ssa-pre.c: Likewise.
7499         * tree-ssa-propagate.c: Likewise.
7500         * tree-ssa-reassoc.c: Likewise.
7501         * tree-ssa-sccvn.c: Likewise.
7502         * tree-ssa-scopedtables.c: Likewise.
7503         * tree-ssa-sink.c: Likewise.
7504         * tree-ssa-strlen.c: Likewise.
7505         * tree-ssa-structalias.c: Likewise.
7506         * tree-ssa-tail-merge.c: Likewise.
7507         * tree-ssa-ter.c: Likewise.
7508         * tree-ssa-threadedge.c: Likewise.
7509         * tree-ssa-threadupdate.c: Likewise.
7510         * tree-ssa-uncprop.c: Likewise.
7511         * tree-ssa-uninit.c: Likewise.
7512         * tree-ssa.c: Likewise.
7513         * tree-ssanames.c: Likewise.
7514         * tree-stdarg.c: Likewise.
7515         * tree-streamer-in.c: Likewise.
7516         * tree-streamer-out.c: Likewise.
7517         * tree-streamer.c: Likewise.
7518         * tree-switch-conversion.c: Likewise.
7519         * tree-tailcall.c: Likewise.
7520         * tree-vect-data-refs.c: Likewise.
7521         * tree-vect-generic.c: Likewise.
7522         * tree-vect-loop-manip.c: Likewise.
7523         * tree-vect-loop.c: Likewise.
7524         * tree-vect-patterns.c: Likewise.
7525         * tree-vect-slp.c: Likewise.
7526         * tree-vect-stmts.c: Likewise.
7527         * tree-vectorizer.c: Likewise.
7528         * tree-vrp.c: Likewise.
7529         * tree.c: Likewise.
7530         * tsan.c: Likewise.
7531         * ubsan.c: Likewise.
7532         * valtrack.c: Likewise.
7533         * value-prof.c: Likewise.
7534         * var-tracking.c: Likewise.
7535         * varasm.c: Likewise.
7536         * varpool.c: Likewise.
7537         * vmsdbgout.c: Likewise.
7538         * vtable-verify.c: Likewise.
7539         * web.c: Likewise.
7540         * wide-int-print.cc: Likewise.
7541         * wide-int-print.h: Likewise.
7542         * wide-int.cc: Likewise.
7543         * xcoffout.c: Likewise.
7544         * config/aarch64/aarch64-builtins.c: Likewise.
7545         * config/aarch64/aarch64.c: Likewise.
7546         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7547         * config/alpha/alpha.c: Likewise.
7548         * config/arc/arc.c: Likewise.
7549         * config/arm/aarch-common.c: Likewise.
7550         * config/arm/arm-builtins.c: Likewise.
7551         * config/arm/arm-c.c: Likewise.
7552         * config/arm/arm.c: Likewise.
7553         * config/avr/avr-c.c: Likewise.
7554         * config/avr/avr-log.c: Likewise.
7555         * config/avr/avr.c: Likewise.
7556         * config/bfin/bfin.c: Likewise.
7557         * config/c6x/c6x.c: Likewise.
7558         * config/cr16/cr16.c: Likewise.
7559         * config/cris/cris.c: Likewise.
7560         * config/darwin-c.c: Likewise.
7561         * config/darwin.c: Likewise.
7562         * config/default-c.c: Likewise.
7563         * config/epiphany/epiphany.c: Likewise.
7564         * config/epiphany/mode-switch-use.c: Likewise.
7565         * config/epiphany/resolve-sw-modes.c: Likewise.
7566         * config/fr30/fr30.c: Likewise.
7567         * config/frv/frv.c: Likewise.
7568         * config/ft32/ft32.c: Likewise.
7569         * config/glibc-c.c: Likewise.
7570         * config/h8300/h8300.c: Likewise.
7571         * config/i386/i386-c.c: Likewise.
7572         * config/i386/i386.c: Likewise.
7573         * config/i386/msformat-c.c: Likewise.
7574         * config/i386/winnt-cxx.c: Likewise.
7575         * config/i386/winnt-stubs.c: Likewise.
7576         * config/i386/winnt.c: Likewise.
7577         * config/ia64/ia64-c.c: Likewise.
7578         * config/ia64/ia64.c: Likewise.
7579         * config/iq2000/iq2000.c: Likewise.
7580         * config/lm32/lm32.c: Likewise.
7581         * config/m32c/m32c-pragma.c: Likewise.
7582         * config/m32c/m32c.c: Likewise.
7583         * config/m32r/m32r.c: Likewise.
7584         * config/m68k/m68k.c: Likewise.
7585         * config/mcore/mcore.c: Likewise.
7586         * config/mep/mep-pragma.c: Likewise.
7587         * config/mep/mep.c: Likewise.
7588         * config/microblaze/microblaze-c.c: Likewise.
7589         * config/microblaze/microblaze.c: Likewise.
7590         * config/mips/mips.c: Likewise.
7591         * config/mmix/mmix.c: Likewise.
7592         * config/mn10300/mn10300.c: Likewise.
7593         * config/moxie/moxie.c: Likewise.
7594         * config/msp430/msp430-c.c: Likewise.
7595         * config/msp430/msp430.c: Likewise.
7596         * config/nds32/nds32-cost.c: Likewise.
7597         * config/nds32/nds32-fp-as-gp.c: Likewise.
7598         * config/nds32/nds32-intrinsic.c: Likewise.
7599         * config/nds32/nds32-isr.c: Likewise.
7600         * config/nds32/nds32-md-auxiliary.c: Likewise.
7601         * config/nds32/nds32-memory-manipulation.c: Likewise.
7602         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7603         * config/nds32/nds32-predicates.c: Likewise.
7604         * config/nds32/nds32.c: Likewise.
7605         * config/nios2/nios2.c: Likewise.
7606         * config/nvptx/nvptx.c: Likewise.
7607         * config/pa/pa.c: Likewise.
7608         * config/pdp11/pdp11.c: Likewise.
7609         * config/rl78/rl78-c.c: Likewise.
7610         * config/rl78/rl78.c: Likewise.
7611         * config/rs6000/rs6000-c.c: Likewise.
7612         * config/rs6000/rs6000.c: Likewise.
7613         * config/rx/rx.c: Likewise.
7614         * config/s390/s390-c.c: Likewise.
7615         * config/s390/s390.c: Likewise.
7616         * config/sh/sh-c.c: Likewise.
7617         * config/sh/sh-mem.cc: Likewise.
7618         * config/sh/sh.c: Likewise.
7619         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7620         * config/sh/sh_treg_combine.cc: Likewise.
7621         * config/sol2-c.c: Likewise.
7622         * config/sol2-cxx.c: Likewise.
7623         * config/sol2-stubs.c: Likewise.
7624         * config/sol2.c: Likewise.
7625         * config/sparc/sparc-c.c: Likewise.
7626         * config/sparc/sparc.c: Likewise.
7627         * config/spu/spu-c.c: Likewise.
7628         * config/spu/spu.c: Likewise.
7629         * config/stormy16/stormy16.c: Likewise.
7630         * config/tilegx/mul-tables.c: Likewise.
7631         * config/tilegx/tilegx-c.c: Likewise.
7632         * config/tilegx/tilegx.c: Likewise.
7633         * config/tilepro/mul-tables.c: Likewise.
7634         * config/tilepro/tilepro-c.c: Likewise.
7635         * config/tilepro/tilepro.c: Likewise.
7636         * config/v850/v850-c.c: Likewise.
7637         * config/v850/v850.c: Likewise.
7638         * config/vax/vax.c: Likewise.
7639         * config/visium/visium.c: Likewise.
7640         * config/vms/vms-c.c: Likewise.
7641         * config/vms/vms.c: Likewise.
7642         * config/vxworks.c: Likewise.
7643         * config/winnt-c.c: Likewise.
7644         * config/xtensa/xtensa.c: Likewise.
7645         * common/config/bfin/bfin-common.c: Likewise.
7646
7647 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7648
7649         * tree.h (tree_code_for_canonical_type_merging): New function.
7650         * tree.c (gimple_canonical_types_compatible_p): Use
7651         tree_code_for_canonical_type_merging..
7652
7653 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7654
7655         PR c++/66192
7656         PR target/66200
7657         * doc/tm.texi: Regenerate.
7658         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7659         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7660         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7661         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7662         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7663         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7664         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7665         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7666         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7667
7668 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7669
7670         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7671         register fma steering pass.
7672         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7673         AARCH64_TUNE_FMA_STEERING.
7674
7675 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7676
7677         * tree.c (verify_type_variant): Verify that type and variant is
7678         compatible.
7679         (gimple_canonical_types_compatible_p): Look for main variants.
7680
7681 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7682
7683         * config.gcc (powerpc*-*-*): Add support for a new configure
7684         option --with-advance-toolchain=<xxx> which overrides using the
7685         default header files, libraries and dynamic linker.
7686
7687         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7688         specs to support the configure --with-advance-toolchain=<xxx>
7689         option.
7690         (INCLUDE_EXTRA_SPEC): Likewise.
7691         (LINK_OS_EXTRA_SPEC32): Likewise.
7692         (LINK_OK_EXTRA_SPEC64): Likewise.
7693         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7694         (DYNAMIC_LINKER_PREFIX): Likewise.
7695         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7696         toolchain support.
7697         (GLIBC_DYNAMIC_LINKER32): Likewise.
7698         (GLIBC_DYNAMIC_LINKER64): Likewise.
7699         (LINK_OS_LINUX_SPEC32): Likewise.
7700         (LINK_OS_LINUX_SPEC64): Likewise.
7701
7702         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7703         configuration option.
7704
7705 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7706
7707         PR target/66275
7708         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7709         to determine current function ABI.
7710         (ix86_function_value_regno_p): Ditto.
7711
7712 2015-06-03  Martin Liska  <mliska@suse.cz>
7713
7714         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7715         * bitmap.h (struct bitmap_usage): Likewise.
7716         * ggc-common.c (struct ggc_usage): Likewise.
7717         * mem-stats.h (struct mem_location): Likewise.
7718         (struct mem_usage): Likewise.
7719         * vec.c (struct vec_usage): Likewise.
7720
7721 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7722
7723         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7724         -Bsymbolic.
7725
7726 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
7727
7728         * doc/plugins.texi (enum plugin_event): New event.
7729         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
7730         and PLUGIN_FINISH_FUNCTION.
7731         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
7732         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
7733
7734 2015-06-03  Richard Biener  <rguenther@suse.de>
7735
7736         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
7737         compute GROUP_GAP for the first element.
7738         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
7739         on in-group gaps.
7740
7741 2015-06-03  Nick Clifton  <nickc@redhat.com>
7742
7743         * config/rl78/rl78-real.md: Add peepholes to avoid a register
7744         copy when calling a function.
7745         * config/rl78/rl78.c (need_to_save): Do not push the frame
7746         pointer in an interrupt handler prologue if it is never used.
7747
7748 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7749
7750         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
7751
7752 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7753
7754         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
7755         reference when cloning alias node.
7756
7757 2015-06-03  Martin Liska  <mliska@suse.cz>
7758
7759         * alloc-pool.h (struct pool_usage): Correct space padding.
7760         * ggc-page.c (ggc_print_statistics): Align columns in a report.
7761         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
7762         * tree.c (dump_tree_statistics): Align columns in a report.
7763
7764 2015-06-03  Martin Liska  <mliska@suse.cz>
7765
7766         * alloc-pool.c (allocate_pool_descriptor): Remove.
7767         (struct pool_output_info): Likewise.
7768         (print_alloc_pool_statistics): Likewise.
7769         (dump_alloc_pool_statistics): Likewise.
7770         * alloc-pool.h (struct pool_usage): New struct.
7771         (pool_allocator::initialize): Change usage of memory statistics
7772         to a new interface.
7773         (pool_allocator::release): Likewise.
7774         (pool_allocator::allocate): Likewise.
7775         (pool_allocator::remove): Likewise.
7776         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
7777         for a pool allocator.
7778         * mem-stats.h (struct mem_location): Add new ctor.
7779         (struct mem_usage): Add counter for number of
7780         instances.
7781         (mem_alloc_description::register_descriptor): New overload of
7782         * mem-stats.h (mem_location::to_string): New function.
7783         * bitmap.h (struct bitmap_usage): Use this new function.
7784         * ggc-common.c (struct ggc_usage): Likewise.
7785         the function.
7786
7787 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7788
7789         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
7790         of GCC_INSN_FLAGS_H block.
7791
7792 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7793
7794         * explow.c (plus_constant): Update check after force_const_mem call
7795         to see if the value returned is not a NULL_RTX.
7796
7797 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7798
7799         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
7800         remove instumentation thunks calling reachable functions.
7801         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
7802         * lto/lto-partition.c (privatize_symbol_name_1): New.
7803         (privatize_symbol_name): Privatize both decl and orig_decl
7804         names for instrumented functions.
7805         * cgraph.c (cgraph_node::verify_node): Add transparent
7806         alias chain check for instrumented node.
7807
7808 2015-06-03  Marek Polacek  <polacek@redhat.com>
7809
7810         PR c/64223
7811         PR c/29358
7812         * tree.c (attribute_value_equal): Handle attribute format.
7813         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
7814
7815 2015-06-03  Richard Biener  <rguenther@suse.de>
7816
7817         PR tree-optimization/63916
7818         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7819         Forward-propagate non-invariant addresses by splicing their
7820         reference ops if the result isn't going to be used by PRE.
7821         (vn_reference_lookup_3): Remove pointless assert.
7822
7823 2015-06-03  Richard Biener  <rguenther@suse.de>
7824
7825         PR tree-optimization/66375
7826         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
7827         add to the evolution before following SSA edges.
7828
7829 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
7830
7831         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
7832         (dump_use, dump_cand, find_induction_variables): Pass new argument
7833         to dump_iv.
7834         (record_use): Preserve the ssa name information in IV.
7835
7836 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7837
7838         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
7839         NO_MODE_TEST.
7840         (add_mode_tests): Don't add mode tests if the predicate only
7841         accepts scalar constant integers.  Otherwise, allow the mode
7842         of "op" to be VOIDmode if the predicate does accept such integers.
7843
7844 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
7845
7846         PR target/66258
7847         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
7848         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
7849         (aarch64_secondary_reload): Likewise
7850         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
7851         to !TARGET_FLOAT.
7852         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
7853         Likewise.
7854
7855 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
7856             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7857
7858         PR target/65768
7859         * cprop.c (try_replace_reg): Check cost of constants before propagating.
7860
7861 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7862
7863         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
7864         provide access to the IBM extended double floating point mode if
7865         long double is IEEE 128-bit floating point.
7866         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
7867         point if long double is the IBM extended double type.
7868
7869         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
7870         enable adding IEEE 128-bit floating point support.
7871         (-mfloat128-software): Likewise.
7872         (-mfloat128-sw): Likewise.
7873
7874         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
7875         128-bit floating point types to occupy any register if
7876         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
7877         -mfloat128-software is enabled.
7878         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
7879         support.
7880         (rs6000_option_override_internal): Add -mfloat128-* support.
7881         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
7882
7883         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
7884         and float128 type nodes.
7885         (ieee128_float_type_node): Likewise.
7886         (ibm128_float_type_node): Likewise.
7887
7888 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7889
7890         PR target/66136
7891         * config/aarch64/geniterators.sh: Rewrite in awk.
7892
7893 2015-06-02  Martin Liska  <mliska@suse.cz>
7894
7895         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
7896         values to avoid -Wmaybe-uninitialized errors.
7897
7898 2015-06-02  Richard Biener  <rguenther@suse.de>
7899
7900         PR debug/65549
7901         * dwarf2out.c (lookup_context_die): New function.
7902         (resolve_addr): Avoid forcing a full DIE for the
7903         target of a DW_TAG_GNU_call_site during late compilation.
7904         Instead create a stub DIE without a type if we have a
7905         context DIE present.
7906
7907 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
7908
7909         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
7910
7911 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7912
7913         PR tree-optimization/48052
7914         * cfgloop.h (struct control_iv): New.
7915         (struct loop): New field control_ivs.
7916         * tree-ssa-loop-niter.c : Include "stor-layout.h".
7917         (number_of_iterations_lt): Set no_overflow information.
7918         (number_of_iterations_exit): Init control iv in niter struct.
7919         (record_control_iv): New.
7920         (estimate_numbers_of_iterations_loop): Call record_control_iv.
7921         (loop_exits_before_overflow): New.  Interface factored out of
7922         scev_probably_wraps_p.
7923         (scev_probably_wraps_p): Factor loop niter related code into
7924         loop_exits_before_overflow.
7925         (free_numbers_of_iterations_estimates_loop): Free control ivs.
7926         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
7927
7928 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7929
7930         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
7931         the target doesn't belong to the current function.
7932
7933 2015-06-02  Marek Polacek  <polacek@redhat.com>
7934
7935         PR middle-end/66345
7936         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
7937         get_maxval_strlen does not produce an INTEGER_CST.
7938
7939 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
7940
7941         * config/arc/constraints.md: Use lower-case names in match_code.
7942         * config/mmix/constraints.md: Likewise.
7943
7944 2015-06-02  Richard Biener  <rguenther@suse.de>
7945
7946         PR tree-optimization/65961
7947         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
7948         check and clarify dump message.
7949         (vect_build_slp_tree): If all children are built up from scalars
7950         build up the parent from scalars instead.
7951         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
7952
7953 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
7954
7955         PR other/65366
7956         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
7957         instead of print ... .
7958
7959 2015-06-02  Alan Modra  <amodra@gmail.com>
7960
7961         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
7962         2014-08-11 change.
7963
7964 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7965
7966         PR tree-optimization/52563
7967         PR tree-optimization/62173
7968         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
7969         (alloc_iv, set_iv): New parameter.
7970         (determine_biv_step): Delete.
7971         (find_bivs): Inline original determine_biv_step.  Pass new
7972         argument to set_iv.
7973         (idx_find_step): Use no_overflow information for conversion.
7974         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
7975         resolve_mixers handle folded_casts.
7976         (instantiate_scev_name): Change bool parameter to bool pointer.
7977         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
7978         (instantiate_array_ref, instantiate_scev_not): Ditto.
7979         (instantiate_scev_3, instantiate_scev_2): Ditto.
7980         (instantiate_scev_1, instantiate_scev_r): Ditto.
7981         (instantiate_scev_convert, ): Change parameter.  Pass argument
7982         to chrec_convert_aggressive.
7983         (instantiate_scev): Change argument.
7984         (resolve_mixers): New parameter and set it.
7985         (scev_const_prop): New argument.
7986         * tree-scalar-evolution.h (resolve_mixers): New parameter.
7987         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
7988         of chrec_conert_1.
7989         (chrec_convert): New parameter.  Move definition below.
7990         (chrec_convert_aggressive): New parameter and set it.  Call
7991         convert_affine_scev.
7992         * tree-chrec.h (chrec_convert): New parameter.
7993         (chrec_convert_aggressive): Ditto.
7994
7995 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
7996
7997         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
7998         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
7999         the LHS of a no-return call if its type has variable size.
8000         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
8001         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
8002
8003 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
8004
8005         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
8006         * config.in: Regenerate.
8007
8008 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
8009
8010         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8011         consecutive accesses within outer-loop with force_vectorize
8012         for references with zero step in inner-loop.
8013
8014 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8015
8016         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
8017         rather than from gcc/build directory.
8018
8019 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8020
8021         PR target/65697
8022         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
8023         for __sync memory models, emit initial loads and final barriers as
8024         appropriate.
8025
8026 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8027
8028         PR target/65697
8029         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
8030         (aarch64_split_atomic_op): Check for __sync memory models, emit
8031         appropriate initial loads and final barriers.
8032
8033 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8034
8035         * Makefile.in: Fix gcov dependencies that should
8036         not point to a build folder.
8037
8038 2015-06-01  Richard Biener  <rguenther@suse.de>
8039
8040         Revert
8041         2015-05-29  Richard Biener  <rguenther@suse.de>
8042
8043         PR tree-optimization/66314
8044         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8045         parameter that says which loop the new block belongs to.
8046         (ssa_create_duplicates): Blocks duplicated for the threaded
8047         path belong to the loop of the thread destination.
8048
8049 2015-06-01  Martin Liska  <mliska@suse.cz>
8050
8051         * sched-deps.c: Include pool-alloc.h before
8052         cselib.h header file is included.
8053
8054 2015-06-01  Richard Biener  <rguenther@suse.de>
8055
8056         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
8057         functions.
8058
8059 2015-06-01  Martin Liska  <mliska@suse.cz>
8060
8061         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
8062         a function local variable.
8063
8064 2015-06-01  Martin Liska  <mliska@suse.cz>
8065
8066         * alloc-pool.c (create_alloc_pool): Remove.
8067         (empty_alloc_pool): Likewise.
8068         (free_alloc_pool): Likewise.
8069         (free_alloc_pool_if_empty): Likewise.
8070         (pool_alloc): Likewise.
8071         (pool_free): Likewise.
8072         * alloc-pool.h: Remove old declarations.
8073
8074 2015-06-01  Martin Liska  <mliska@suse.cz>
8075
8076         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8077         (ira_create_object): Likewise.
8078         (ira_create_allocno): Likewise.
8079         (ira_create_live_range): Likewise.
8080         (copy_live_range): Likewise.
8081         (ira_finish_live_range): Likewise.
8082         (ira_free_allocno_costs): Likewise.
8083         (finish_allocno): Likewise.
8084         (finish_allocnos): Likewise.
8085         (initiate_prefs): Likewise.
8086         (ira_create_pref): Likewise.
8087         (finish_pref): Likewise.
8088         (finish_prefs): Likewise.
8089         (initiate_copies): Likewise.
8090         (ira_create_copy): Likewise.
8091         (finish_copy): Likewise.
8092         (finish_copies): Likewise.
8093         (finish_prefs): Likewise.
8094
8095 2015-06-01  Martin Liska  <mliska@suse.cz>
8096
8097         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8098         (allocate_and_init_ipcp_value): Likewise.
8099         (ipcp_lattice::add_value): Likewise.
8100         (merge_agg_lats_step): Likewise.
8101         (ipcp_driver): Likewise.
8102         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8103         (ipa_free_all_structures_after_iinln): Likewise.
8104         * ipa-prop.h: Likewise.
8105
8106 2015-06-01  Martin Liska  <mliska@suse.cz>
8107
8108         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8109         pool allocator.
8110         (set_hint_predicate): Likewise.
8111         (inline_summary_alloc): Likewise.
8112         (reset_inline_edge_summary): Likewise.
8113         (reset_inline_summary): Likewise.
8114         (set_cond_stmt_execution_predicate): Likewise.
8115         (set_switch_stmt_execution_predicate): Likewise.
8116         (compute_bb_predicates): Likewise.
8117         (estimate_function_body_sizes): Likewise.
8118         (inline_free_summary): Likewise.
8119
8120 2015-06-01  Martin Liska  <mliska@suse.cz>
8121
8122         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8123         (ipa_edge_duplication_hook): Likewise.
8124         (ipa_free_all_structures_after_ipa_cp): Likewise.
8125         (ipa_free_all_structures_after_iinln): Likewise.
8126
8127 2015-06-01  Martin Liska  <mliska@suse.cz>
8128
8129         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8130         (ipa_profile_generate_summary): Likewise.
8131         (ipa_profile_read_summary): Likewise.
8132         (ipa_profile): Likewise.
8133
8134 2015-06-01  Martin Liska  <mliska@suse.cz>
8135
8136         * tree-ssa-structalias.c (new_var_info): Use new type-based
8137         pool allocator.
8138         (new_constraint): Likewise.
8139         (init_alias_vars): Likewise.
8140         (delete_points_to_sets): Likewise.
8141
8142 2015-06-01  Martin Liska  <mliska@suse.cz>
8143
8144         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8145         (free_strinfo): Likewise.
8146         (pass_strlen::execute): Likewise.
8147
8148 2015-06-01  Martin Liska  <mliska@suse.cz>
8149
8150         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8151         pool allocator.
8152         (vn_reference_insert_pieces): Likewise.
8153         (vn_phi_insert): Likewise.
8154         (visit_reference_op_call): Likewise.
8155         (copy_phi): Likewise.
8156         (copy_reference): Likewise.
8157         (process_scc): Likewise.
8158         (allocate_vn_table): Likewise.
8159         (free_vn_table): Likewise.
8160
8161 2015-06-01  Martin Liska  <mliska@suse.cz>
8162
8163         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8164         pool allocator.
8165         (add_repeat_to_ops_vec): Likewise.
8166         (get_ops): Likewise.
8167         (maybe_optimize_range_tests): Likewise.
8168         (init_reassoc): Likewise.
8169         (fini_reassoc): Likewise.
8170
8171 2015-06-01  Martin Liska  <mliska@suse.cz>
8172
8173         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8174         pool allocator.
8175         (bitmap_set_new): Likewise.
8176         (get_or_alloc_expr_for_constant): Likewise.
8177         (get_or_alloc_expr_for): Likewise.
8178         (phi_translate_1): Likewise.
8179         (compute_avail): Likewise.
8180         (init_pre): Likewise.
8181         (fini_pre): Likewise.
8182
8183 2015-06-01  Martin Liska  <mliska@suse.cz>
8184
8185         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8186         (delete_dep_node): Likewise.
8187         (create_deps_list): Likewise.
8188         (free_deps_list): Likewise.
8189         (sched_deps_init): Likewise.
8190         (sched_deps_finish): Likewise.
8191
8192 2015-06-01  Martin Liska  <mliska@suse.cz>
8193
8194         * regcprop.c (free_debug_insn_changes): Use new type-based
8195         pool allocator.
8196         (replace_oldest_value_reg): Likewise.
8197         (pass_cprop_hardreg::execute): Likewise.
8198
8199 2015-06-01  Martin Liska  <mliska@suse.cz>
8200
8201         * ira-build.c (initiate_cost_vectors): Use new type-based
8202         pool allocator.
8203         (ira_allocate_cost_vector): Likewise.
8204         (ira_free_cost_vector): Likewise.
8205         (finish_cost_vectors): Likewise.
8206
8207 2015-06-01  Martin Liska  <mliska@suse.cz>
8208
8209         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8210         pool allocator.
8211         (free_sched_pools): Likewise.
8212         * sel-sched-ir.h (_list_alloc): Likewise.
8213         (_list_remove): Likewise.
8214
8215 2015-06-01  Martin Liska  <mliska@suse.cz>
8216
8217         * stmt.c (add_case_node): Use new type-based pool allocator.
8218         (expand_case): Likewise.
8219         (expand_sjlj_dispatch_table): Likewise.
8220
8221 2015-06-01  Martin Liska  <mliska@suse.cz>
8222
8223         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8224         (free_bb): Likewise.
8225         (pass_cse_reciprocals::execute): Likewise.
8226
8227 2015-06-01  Martin Liska  <mliska@suse.cz>
8228
8229         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8230         (sra_deinitialize) Likewise.
8231         (create_access_1) Likewise.
8232         (build_accesses_from_assign) Likewise.
8233         (create_artificial_child_access) Likewise.
8234
8235 2015-06-01  Martin Liska  <mliska@suse.cz>
8236
8237         * dse.c (get_group_info):Use new type-based pool allocator.
8238         (dse_step0) Likewise.
8239         (free_store_info) Likewise.
8240         (delete_dead_store_insn) Likewise.
8241         (free_read_records) Likewise.
8242         (record_store) Likewise.
8243         (replace_read) Likewise.
8244         (check_mem_read_rtx) Likewise.
8245         (scan_insn) Likewise.
8246         (dse_step1) Likewise.
8247         (dse_step7) Likewise.
8248
8249 2015-06-01  Martin Liska  <mliska@suse.cz>
8250
8251         * df-scan.c (struct df_scan_problem_data):Use new type-based
8252         pool allocator.
8253         (df_scan_free_internal) Likewise.
8254         (df_scan_alloc) Likewise.
8255         (df_grow_reg_info) Likewise.
8256         (df_free_ref) Likewise.
8257         (df_insn_create_insn_record) Likewise.
8258         (df_mw_hardreg_chain_delete) Likewise.
8259         (df_insn_info_delete) Likewise.
8260         (df_free_collection_rec) Likewise.
8261         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8262         (df_sort_and_compress_mws) Likewise.
8263         (df_ref_create_structure) Likewise.
8264         (df_ref_record) Likewise.
8265
8266 2015-06-01  Martin Liska  <mliska@suse.cz>
8267
8268         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8269         (df_chain_unlink_1) Likewise.
8270         (df_chain_unlink) Likewise.
8271         (df_chain_remove_problem) Likewise.
8272         (df_chain_alloc) Likewise.
8273         (df_chain_free) Likewise.
8274         * df.h (struct dataflow) Likewise.
8275
8276 2015-06-01  Martin Liska  <mliska@suse.cz>
8277
8278         * cselib.c (new_elt_list):Use new type-based pool allocator.
8279         (new_elt_loc_list) Likewise.
8280         (unchain_one_elt_list) Likewise.
8281         (unchain_one_elt_loc_list) Likewise.
8282         (unchain_one_value) Likewise.
8283         (new_cselib_val) Likewise.
8284         (cselib_init) Likewise.
8285         (cselib_finish) Likewise.
8286
8287 2015-06-01  Martin Liska  <mliska@suse.cz>
8288
8289         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8290         (sh_reorg) Likewise.
8291
8292 2015-06-01  Martin Liska  <mliska@suse.cz>
8293
8294         * cfg.c (initialize_original_copy_tables):Use new type-based
8295         pool allocator.
8296         (free_original_copy_tables) Likewise.
8297         (copy_original_table_clear) Likewise.
8298         (copy_original_table_set) Likewise.
8299
8300 2015-06-01  Martin Liska  <mliska@suse.cz>
8301
8302         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8303         pool allocator.
8304         (asan_mem_ref_new) Likewise.
8305         (free_mem_ref_resources) Likewise.
8306
8307 2015-06-01  Martin Liska  <mliska@suse.cz>
8308
8309         * var-tracking.c (variable_htab_free):Use new type-based
8310         pool allocator.
8311         (attrs_list_clear) Likewise.
8312         (attrs_list_insert) Likewise.
8313         (attrs_list_copy) Likewise.
8314         (shared_hash_unshare) Likewise.
8315         (shared_hash_destroy) Likewise.
8316         (unshare_variable) Likewise.
8317         (var_reg_delete_and_set) Likewise.
8318         (var_reg_delete) Likewise.
8319         (var_regno_delete) Likewise.
8320         (drop_overlapping_mem_locs) Likewise.
8321         (variable_union) Likewise.
8322         (insert_into_intersection) Likewise.
8323         (canonicalize_values_star) Likewise.
8324         (variable_merge_over_cur) Likewise.
8325         (dataflow_set_merge) Likewise.
8326         (remove_duplicate_values) Likewise.
8327         (variable_post_merge_new_vals) Likewise.
8328         (dataflow_set_preserve_mem_locs) Likewise.
8329         (dataflow_set_remove_mem_locs) Likewise.
8330         (variable_from_dropped) Likewise.
8331         (variable_was_changed) Likewise.
8332         (set_slot_part) Likewise.
8333         (clobber_slot_part) Likewise.
8334         (delete_slot_part) Likewise.
8335         (loc_exp_insert_dep) Likewise.
8336         (notify_dependents_of_changed_value) Likewise.
8337         (emit_notes_for_differences_1) Likewise.
8338         (vt_emit_notes) Likewise.
8339         (vt_initialize) Likewise.
8340         (vt_finalize) Likewise.
8341
8342 2015-06-01  Martin Liska  <mliska@suse.cz>
8343
8344         * ira-color.c (init_update_cost_records):Use new type-based
8345         pool allocator.
8346         (get_update_cost_record) Likewise.
8347         (free_update_cost_record_list) Likewise.
8348         (finish_update_cost_records) Likewise.
8349         (initiate_cost_update) Likewise.
8350
8351 2015-06-01  Martin Liska  <mliska@suse.cz>
8352
8353         * lra.c (init_insn_regs): Use new type-based pool allocator.
8354         (new_insn_reg) Likewise.
8355         (free_insn_reg) Likewise.
8356         (free_insn_regs) Likewise.
8357         (finish_insn_regs) Likewise.
8358         (init_insn_recog_data) Likewise.
8359         (init_reg_info) Likewise.
8360         (finish_reg_info) Likewise.
8361         (lra_free_copies) Likewise.
8362         (lra_create_copy) Likewise.
8363         (invalidate_insn_data_regno_info) Likewise.
8364
8365 2015-06-01  Martin Liska  <mliska@suse.cz>
8366
8367         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8368         (free_live_range_list) Likewise.
8369         (create_live_range) Likewise.
8370         (copy_live_range) Likewise.
8371         (lra_merge_live_ranges) Likewise.
8372         (remove_some_program_points_and_update_live_ranges) Likewise.
8373         (lra_live_ranges_init) Likewise.
8374         (lra_live_ranges_finish) Likewise.
8375
8376 2015-06-01  Martin Liska  <mliska@suse.cz>
8377
8378         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8379         (et_new_tree): Likewise.
8380         (et_free_tree): Likewise.
8381         (et_free_tree_force): Likewise.
8382         (et_free_pools): Likewise.
8383         (et_split): Likewise.
8384
8385 2015-06-01  Martin Liska  <mliska@suse.cz>
8386
8387         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8388         to header file.
8389         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8390         (pool_allocator::release): Likewise.
8391         (inline pool_allocator::release_if_empty): Likewise.
8392         (inline pool_allocator::~pool_allocator): Likewise.
8393         (pool_allocator::allocate): Likewise.
8394         (pool_allocator::remove): Likewise.
8395
8396 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8397
8398         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8399         in comment.
8400
8401 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8402
8403         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8404         to fusible_ops.
8405         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8406         (arm_macro_fusion_p): Likewise.
8407         (arm_macro_fusion_pair_p): Likewise.
8408
8409 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8410
8411         * config/aarch64/aarch64-protos.h (tune_params): Rename
8412         fuseable_ops to fusible_ops.
8413         * config/aarch64/aarch64.c (generic_tunings): Rename
8414         fuseable_ops to fusible_ops.
8415         (cortexa53_tunings): Likewise.
8416         (cortexa57_tunings): Likewise.
8417         (thunderx_tunings): Likewise.
8418         (xgene1_tunings): Likewise.
8419         (aarch64_macro_fusion_p): Likewise.
8420         (aarch64_macro_fusion_pair_p): Likewise.
8421
8422 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8423
8424         * config/s390/driver-native.c: New file.
8425         * config/s390/x-native: New file.
8426         * config.host: Add new files for s390.
8427         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8428         and -march=native
8429         * config.gcc: Likewise.
8430         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8431         * config/s390/s390-opts.h (enum processor_type): Ditto.
8432         * config/s390/s390.c (s390_option_override): Catch unhandled
8433         PROCESSOR_NATIVE
8434
8435 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8436
8437         PR target/65527
8438         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8439         redirection for instrumented calls.
8440         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8441         (append_compiler_options): Append -fcheck-pointer-bounds.
8442         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8443         (chkp_redirect_edge): New.
8444         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8445         (chkp_redirect_edge): New.
8446
8447 2015-06-01  Richard Biener  <rguenther@suse.de>
8448
8449         PR tree-optimization/66280
8450         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8451         def-use walking.
8452
8453 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8454
8455         * config/aarch64/aarch64.md
8456         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8457         logic_shift_imm.
8458
8459 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8460
8461         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8462         Remove obsolete kludge.
8463
8464 2015-06-01  Richard Biener  <rguenther@suse.de>
8465
8466         * tree-ssa-reassoc.c (get_rank): Simplify.
8467
8468 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8469
8470         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8471         * configure: Regenerated.
8472
8473 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8474
8475         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8476         issue (add space between string literal and macro).
8477         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8478
8479 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8480
8481         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8482         implict or explicit -fPIE or -fpie.
8483
8484 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8485
8486         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8487
8488 2015-05-28  DJ Delorie  <dj@redhat.com>
8489
8490         * expmed.c (extract_bit_field_1): Avoid clobbering a
8491         yet-to-be-used base/index register.
8492
8493 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8494
8495         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8496         (alias_stats): Add num_universal.
8497         (alias_set_subset_of): Special case pointers; be ready for NULL
8498         children.
8499         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8500         children.
8501         (init_alias_set_entry): Break out from ...
8502         (record_alias_subset): ... here; propagate new fields;
8503         allocate children only when really needed.
8504         (get_alias_set): Do less generous pointer globbing.
8505         (dump_alias_stats_in_alias_c): Update statistics.
8506
8507 2015-05-30  Alan Modra  <amodra@gmail.com>
8508
8509         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8510         correct block for use of r12.
8511         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8512
8513 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8514
8515         PR target/66215
8516         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8517         with -mhotpatch=.
8518
8519 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8520
8521         PR tree-optimization/66142
8522         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8523         virtual phis that feed themselves.
8524
8525 2015-05-29  Richard Biener  <rguenther@suse.de>
8526
8527         PR tree-optimization/66314
8528         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8529         parameter that says which loop the new block belongs to.
8530         (ssa_create_duplicates): Blocks duplicated for the threaded
8531         path belong to the loop of the thread destination.
8532
8533 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8534
8535         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8536         to cleanup-saved-temps.
8537         * doc/sourcebuild.texi (Clean up generated test files): Expand
8538         introduction.
8539         (dg-keep-saved-temps): Document new proc.
8540         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8541         cleanup-saved-temps): Remove.
8542
8543 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8544
8545         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8546         gcc_AC_CHECK_DECLS.
8547         * configure: Regenerate.
8548
8549 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8550
8551         * config/nios2/linux.h (CPP_SPEC): Define.
8552
8553 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8554
8555         * config/microblaze/linux.h (CPP_SPEC): Define.
8556
8557 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8558
8559         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8560         -pthread is specified.
8561
8562 2015-05-28  Richard Biener  <rguenther@suse.de>
8563
8564         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8565         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8566         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8567         after pattern recog.
8568         (vect_create_epilog_for_reduction): Properly handle reductions
8569         with patterns.
8570         (vectorizable_reduction): Likewise.
8571         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8572         reduction chains.
8573         (vect_get_constant_vectors): Create the correct number of
8574         initial values for reductions.
8575         (vect_schedule_slp_instance): Handle reduction chains that are
8576         type changing properly.
8577         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8578
8579 2015-05-28  Richard Biener  <rguenther@suse.de>
8580
8581         PR tree-optimization/66142
8582         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8583         values better in memcpy destination handling.  Handle non-aliasing
8584         we discover here.
8585
8586 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8587
8588         PR target/63810
8589         * config/darwin-c.c (version_components): New global enum.
8590         (parse_version, version_as_legacy_macro)
8591         (version_as_modern_macro, macosx_version_as_macro): New functions.
8592         (version_as_macro): Remove.
8593         (darwin_cpp_builtins): Use new function.
8594
8595 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8596
8597         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8598         with ATTRIBUTE_UNUSED.
8599
8600 2015-05-28  Julian Brown  <julian@codesourcery.com>
8601
8602         PR libgomp/65742
8603
8604         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8605         sequence for !ACCEL_COMPILER.
8606
8607 2015-05-28  Nick Clifton  <nickc@redhat.com>
8608
8609         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8610         (rx_expand_prologue): ... here.  Use push_regs to push even small
8611         spans of registers.
8612         (pop_regs): New function.
8613         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8614         registers.
8615
8616 2015-05-28  Richard Biener  <rguenther@suse.de>
8617
8618         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8619         member.
8620         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8621         (vect_update_slp_costs_according_to_vf): Likewise.
8622         (vect_slp_analyze_operations): Update prototype.
8623         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8624         vect_update_slp_costs_according_to_vf, adjust.
8625         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8626         (vect_analyze_slp_cost_1): Likewise.
8627         (vect_analyze_slp_cost): Likewise.  Properly deal with
8628         widening reduction ops.  Commit body costs.
8629         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8630         cost for loops from here.
8631         (vect_slp_analyze_operations): But do it from here when
8632         the vectorization factor is known and stmts are analyzed.
8633         (vect_bb_vectorization_profitable_p): Simplify.
8634         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8635         (vect_update_slp_costs_according_to_vf): Remove.
8636
8637 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8638             H.J. Lu  <hongjiu.lu@intel.com>
8639
8640         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8641         (BUILD_CFLAGS): Likewise.
8642         (BUILD_CXXFLAGS): Likewise.
8643         (LINKER): Add @NO_PIE_FLAG@.
8644         (BUILD_LDFLAGS): Likewise.
8645         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8646         --enable-default-pie.
8647         * common.opt (fPIE): Initialize to -1.
8648         (fpie): Likewise.
8649         (no-pie): New option.
8650         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8651         * configure.ac: Add --enable-default-pie.
8652         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8653         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8654         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8655         * gcc.c (NO_PIE_SPEC): New.
8656         (PIE_SPEC): Likewise.
8657         (NO_FPIE1_SPEC): Likewise.
8658         (FPIE1_SPEC): Likewise.
8659         (NO_FPIE2_SPEC): Likewise.
8660         (FPIE2_SPEC): Likewise.
8661         (NO_FPIE2_SPEC): Likewise.
8662         (FPIE_SPEC): Likewise.
8663         (NO_FPIE_SPEC): Likewise.
8664         (NO_FPIC1_SPEC): Likewise.
8665         (FPIC1_SPEC): Likewise.
8666         (NO_FPIC2_SPEC): Likewise.
8667         (FPIC2_SPEC): Likewise.
8668         (NO_FPIC2_SPEC): Likewise.
8669         (FPIC_SPEC): Likewise.
8670         (NO_FPIC_SPEC): Likewise.
8671         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8672         (FPIE1_OR_FPIC1_SPEC): Likewise.
8673         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8674         (FPIE2_OR_FPIC2_SPEC): Likewise.
8675         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8676         (FPIE_OR_FPIC_SPEC): Likewise.
8677         (LD_PIE_SPEC): Likewise.
8678         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8679         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8680         * config/darwin.h (PIE_SPEC): Renamed to ...
8681         (DARWIN_PIE_SPEC): This.
8682         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8683         * config/darwin9.h (PIE_SPEC): Renamed to ...
8684         (DARWIN_PIE_SPEC): This.
8685         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8686         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8687         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8688         FPIE2_OR_FPIC2_SPEC.
8689         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8690         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8691         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8692         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8693         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8694         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8695         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8696         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8697         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8698         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8699         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8700         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8701         * config/sparc/linux.h (ASM_SPEC): Likewise.
8702         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8703         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8704         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8705         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8706         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8707         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8708         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8709         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8710         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8711         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8712         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8713         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8714         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8715         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8716         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8717         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8718         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8719         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8720         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8721         * config/vax/linux.h (ASM_SPEC): Likewise.
8722         * doc/install.texi: Document --enable-default-pie.
8723         * doc/invoke.texi: Document -no-pie.
8724         * config.in: Regenerated.
8725         * configure: Likewise.
8726
8727 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8728
8729         PR rtl-optimization/66168
8730         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
8731         can_move_invariant_reg.
8732
8733 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
8734
8735         PR target/66148
8736         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
8737         REG_EQUAL note when doing insert.
8738
8739         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
8740         instead of "%d" for 'o' operand.
8741
8742 2015-05-27  Nathan Sidwell  <nathan@acm.org>
8743
8744         PR c++/66270
8745         * tree.c (build_pointer_type_for_mode): Canonical type does not
8746         inherit can_alias_all.
8747         (build_reference_type_for_mode): Likewise.
8748
8749 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8750
8751         * expr.h (array_at_struct_end_p): Move to...
8752         (array_ref_element_size): Likewise.
8753         (component_ref_field_offset): Likewise.
8754         * tree.h (array_ref_element_size): ...here.
8755         (array_at_struct_end_p): Likewise.
8756         (component_ref_field_offset): Likewise.
8757         * expr.c (array_ref_element_size): Move to...
8758         (array_ref_low_bound): Likewise.
8759         (array_at_struct_end_p): Likewise.
8760         (array_ref_up_bound): Likewise.
8761         (component_ref_field_offset): Likewise.
8762         * tree.c (array_ref_element_size): ...here.
8763         (array_ref_low_bound): Likewise.
8764         (array_ref_up_bound): Likewise.
8765         (array_at_struct_end_p): Likewise.
8766         (component_ref_field_offset): Likewise.
8767
8768 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8769             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8770
8771         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
8772
8773 2015-05-27  Jason Merrill  <jason@redhat.com>
8774
8775         PR bootstrap/66304
8776         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
8777         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
8778         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
8779
8780 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
8781
8782         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
8783         is true.
8784
8785         * statistics.c (statistics_fini_pass): Print pass name.
8786
8787 2015-05-27  Richard Biener  <rguenther@suse.de>
8788
8789         PR tree-optimization/66272
8790         Revert parts of
8791         2014-08-15  Richard Biener  <rguenther@suse.de>
8792
8793         PR tree-optimization/62031
8794         * tree-data-ref.c (dr_analyze_indices): Do not set
8795         DR_UNCONSTRAINED_BASE.
8796         (dr_may_alias_p): All indirect accesses have to go the
8797         formerly DR_UNCONSTRAINED_BASE path.
8798         * tree-data-ref.h (struct indices): Remove
8799         unconstrained_base member.
8800         (DR_UNCONSTRAINED_BASE): Remove.
8801
8802 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
8803
8804         * dwarf2out.c: Remove block_map.
8805         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
8806         (gen_lexical_block_die): Same.
8807         (dwarf2out_function_decl): Remove block_map use.
8808         (dwarf2out_c_finalize): Same.
8809         * tree-core.h (struct tree_block): Add die field.
8810         * tree.h (BLOCK_DIE): New.
8811
8812 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8813
8814         PR target/65358
8815         * expr.c (memory_load_overlap): New function.
8816         (emit_push_insn): When pushing partial args to the stack would
8817         clobber the register part load the overlapping part into a pseudo
8818         and put it into the hard reg after pushing.  Change return type
8819         to bool.  Add bool argument.
8820         * expr.h (emit_push_insn): Change return type to bool.
8821         Add bool argument.
8822         * calls.c (expand_call): Cancel sibcall optimization when encountering
8823         partial argument on targets with ARGS_GROW_DOWNWARD and
8824         !STACK_GROWS_DOWNWARD.
8825         (emit_library_call_value_1): Update callsite of emit_push_insn.
8826         (store_one_arg): Likewise.
8827
8828 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8829
8830         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
8831
8832 2015-05-27  Martin Liska  <mliska@suse.cz>
8833
8834         * Makefile.in: Add additional dependencies related to memory report
8835         enhancement.
8836         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
8837         * bitmap.c (struct bitmap_descriptor_d): Remove.
8838         (struct loc): Likewise.
8839         (struct bitmap_desc_hasher): Likewise.
8840         (bitmap_desc_hasher::hash): Likewise.
8841         (bitmap_desc_hasher::equal): Likewise.
8842         (get_bitmap_descriptor): Likewise.
8843         (bitmap_register): User new memory descriptor API.
8844         (register_overhead): Likewise.
8845         (bitmap_find_bit): Register nsearches and search_iter statistics.
8846         (struct bitmap_output_info): Remove.
8847         (print_statistics): Likewise.
8848         (dump_bitmap_statistics): Use new memory descriptor.
8849         * bitmap.h (struct bitmap_usage): New class.
8850         * genmatch.c: Extend header file inclusion.
8851         * genpreds.c: Likewise.
8852         * ggc-common.c (struct ggc_usage): New class.
8853         (struct ggc_loc_desc_hasher): Remove.
8854         (ggc_loc_desc_hasher::hash): Likewise.
8855         (ggc_loc_desc_hasher::equal): Likewise.
8856         (struct ggc_ptr_hash_entry): Likewise.
8857         (struct ptr_hash_hasher): Likewise.
8858         (ptr_hash_hasher::hash): Likewise.
8859         (ptr_hash_hasher::equal): Likewise.
8860         (make_loc_descriptor): Likewise.
8861         (ggc_prune_ptr): Likewise.
8862         (dump_ggc_loc_statistics): Use new memory descriptor.
8863         (ggc_record_overhead): Likewise.
8864         (ggc_free_overhead): Likewise.
8865         (final_cmp_statistic): Remove.
8866         (cmp_statistic): Likewise.
8867         (ggc_add_statistics): Liekwise.
8868         (ggc_prune_overhead_list): Likewise.
8869         * hash-map-traits.h: New file.
8870         * hash-map.h (struct default_hashmap_traits): Move the traits to a
8871         separate header file.
8872         * hash-set.h: Pass memory statistics info to ctor.
8873         * hash-table.c (void dump_hash_table_loc_statistics): New function.
8874         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
8875         (hash_table::~hash_table): Register memory release operation.
8876         (hash_table::alloc_entries): Handle memory allocation operation.
8877         (hash_table::expand): Likewise.
8878         * inchash.c (iterative_hash_hashval_t): Move implementation to header
8879         file.
8880         (iterative_hash_host_wide_int): Likewise.
8881         * inchash.h (class hash): Likewise.
8882         * mem-stats-traits.h: New file.
8883         * mem-stats.h: New file.
8884         (mem_location): Add new class.
8885         (mem_usage): Likewise.
8886         (mem_alloc_description): Likewise.
8887         * sese.c: Add new header file inclusision.
8888         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
8889         and hash_set.
8890         * tree-sra.c: Add new header file inclusision.
8891         * vec.c (struct vec_descriptor): Remove.
8892         (hash_descriptor): Likewise.
8893         (struct vec_usage): Likewise.
8894         (struct ptr_hash_entry): Likewise.
8895         (hash_ptr): Likewise.
8896         (eq_ptr): Likewise.
8897         (vec_prefix::register_overhead): Use new memory descriptor API.
8898         (vec_prefix::release_overhead): Likewise.
8899         (add_statistics): Remove.
8900         (dump_vec_loc_statistics): Use new memory descriptor API.
8901         * vec.h (struct vec_prefix): Likewise.
8902         (va_heap::reserve): Likewise.
8903         (va_heap::release): Likewise.
8904         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
8905
8906 2015-05-27  Richard Biener  <rguenther@suse.de>
8907
8908         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
8909         earlier and remove ??? comment.
8910         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
8911         and got called from loop analysis bail out.  Always pass the SLP
8912         node to the vectorizable_* functions.
8913         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
8914         the premature SLP check here.
8915         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
8916         detected SLP stmts.
8917         (vect_detect_hybrid_slp_1): Likewise.
8918
8919 2015-05-26  Jeff Law  <law@redhat.com>
8920
8921         * combine.c (find_split_point): Verify that the shift count is a
8922         constant when choosing (plus (ashift ...)) as a split point.
8923
8924         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
8925         No functional changes.
8926
8927 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
8928
8929         * ipa-polymorphic-call.c
8930         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
8931         case when call target is already known.
8932
8933 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
8934
8935         PR target/65979
8936         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
8937         take into account the case that operands[1] and operands[2]
8938         are the same register.
8939
8940 2015-05-26  Michael Matz  <matz@suse.de>
8941
8942         PR middle-end/66251
8943
8944         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
8945         stores.
8946         (vect_create_vectorized_demotion_stmts): Always set
8947         STMT_VINFO_VEC_STMT, also with SLP.
8948         (vectorizable_store): Handle strided group stores.
8949
8950 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8951
8952         PR target/66049
8953         * config/aarch64/aarch64.md
8954         (*adds_shift_imm_<mode>):  New pattern.
8955         (*subs_shift_imm_<mode>):  Likewise.
8956         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
8957         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
8958         (*add_uxt<mode>_shift2): Likewise.
8959         (*add_uxtsi_shift2_uxtw): Likewise.
8960         (*sub_uxt<mode>_shift2): Likewise.
8961         (*sub_uxtsi_shift2_uxtw): Likewise.
8962
8963 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
8964
8965         * config/rs6000/constraints.md (Y, U): Use match_test.
8966
8967 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8968
8969         PR target/52144
8970         * config/arm/arm.c (arm_option_check_internal)
8971         (arm_option_params_internal): Check opts->target_flags to set macros.
8972         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8973         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
8974         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8975         (builtin_define): Replaced with def_or_undef_macro.
8976         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8977         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
8978         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8979         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
8980         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
8981         (TARGET_ARM_FEATURE_LDREX_P)
8982         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
8983         * config/arm/arm-c.c (def_or_undef_macro): New function.
8984         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
8985
8986 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8987
8988         * c-common.h (builtin_define_with_int_value)
8989         (builtin_define_type_sizeof): Declare.
8990         * c-cppbuiltin.c (builtin_define_with_int_value)
8991         (builtin_define_type_sizeof): Externalize.
8992         (builtin_define_std): Cleanup declaration.
8993         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
8994         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
8995         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
8996         (builtin_define, builtin_assert): New macros.
8997
8998 2015-05-26  Richard Biener  <rguenther@suse.de>
8999
9000         PR tree-optimization/66142
9001         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
9002         MEM_REFs for the same base address.
9003
9004 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9005
9006         PR ipa/66181
9007         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
9008
9009 2015-05-26  Jason Merrill  <jason@redhat.com>
9010
9011         * configure.ac: Set CXXFLAGS for ISL test.
9012         * configure: Regenerate.
9013
9014         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
9015         strstr and basename.
9016         * configure: Regenerate.
9017
9018 2015-05-26  Richard Biener  <rguenther@suse.de>
9019
9020         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
9021         X % C -> X & (C - 1) for C being a power-of two to ...
9022         * match.pd: ... patterns.
9023
9024 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
9025
9026         * match.pd (swapped_tcc_comparison): New operator list.
9027         (-A CMP -B): New simplification.
9028         * fold-const.c (fold_comparison): Remove corresponding code.
9029
9030 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9031
9032         * caller-save.c (init_caller_save): Base temporary register numbers
9033         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
9034         * cfgloopanal.c (init_set_costs): Likewise.
9035         * dojump.c (prefer_and_bit_test): Likewise.
9036         * expr.c (init_expr_target): Likewise.
9037         * ira.c (setup_prohibited_mode_move_regs): Likewise.
9038         * lower-subreg.c (init_lower_subreg): Likewise.
9039         * postreload.c (reload_cse_regs_1): Likewise.
9040
9041 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9042
9043         * gensupport.h (compute_test_codes): Declare.
9044         * gensupport.c (compute_predicate_codes): Rename to...
9045         (compute_test_codes): ...this.  Generalize error message.
9046         (process_define_predicate): Update accordingly.
9047         * genpreds.c (compute_maybe_allows): Delete.
9048         (add_constraint): Use compute_test_codes to determine whether
9049         something can accept a SUBREG, REG or MEM.
9050
9051 2015-05-26  Torvald Riegel  <triegel@redhat.com>
9052
9053         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
9054         'memory model' to align with C++11; fix description of memory orders;
9055         fix a few typos.
9056
9057 2015-05-26  Richard Biener  <rguenther@suse.de>
9058
9059         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
9060         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
9061         detect whether we apply SLP.  Remove call to
9062         vect_update_slp_costs_according_to_vf.
9063         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
9064         vect_update_slp_costs_according_to_vf from here.  Dispatch
9065         to vect_slp_analyze_operations to analyze SLP stmts.
9066         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
9067         unused bb_vec_info parameter, adjust assert.
9068         (vect_slp_analyze_operations): Pass in the slp instance tree
9069         instead of bb_vec_info.
9070         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
9071         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
9072
9073 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9074
9075         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
9076         Q_REGS.  Expand comment.
9077         (REG_CLASS_NAMES): Ditto.
9078         (REG_CLASS_CONTENTS): Ditto.
9079
9080 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
9081
9082         PR target/66274
9083         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9084         when LEGACY_INT_REGNO_P is processed.
9085
9086 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9087
9088         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9089
9090 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9091
9092         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9093         register if not marked dead/unused, before return.
9094
9095 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9096
9097         PR lto/66180
9098         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9099         is set; check for assembler name at LTO time.
9100         (type_in_anonymous_namespace): Remove hacks, check that all
9101         anonymous types are called "<anon>"
9102         (odr_type_p): Simplify; add check for "<anon>"
9103         (odr_subtypes_equivalent): Add odr_type_p check.
9104         * tree.c (need_assembler_name_p): Even anonymous namespace needs
9105         assembler name.
9106
9107 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9108
9109         * ipa-utils.h (method_class_type): Remove.
9110         * cgraphunit.c (walk_polymorphic_call_targets): Use
9111         TYPE_METHOD_BASETYPE.
9112         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9113         on main variants only.
9114         (method_class_type): Remove.
9115         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9116         (build_type_inheritance_graph): Likewise.
9117         * ipa-icf.c (sem_function::equals_wpa): Likewise.
9118         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9119         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9120
9121 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9122
9123         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9124         is_typedef_decl, typedef_variant_p): Constify.
9125         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9126         is_typedef_decl, typedef_variant_p): Constify.
9127
9128 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9129
9130         * defaults.h (gen_tablejump): New function.
9131         (HAVE_tablejump): Add default value.
9132         * expr.c: Adjust.
9133         * stmt.c: Likewise.
9134
9135 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9136
9137         * defaults.h (gen_store_multiple): New function.
9138         (HAVE_store_multiple): Add default value.
9139         * expr.c (move_block_from_reg): Adjust.
9140
9141 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9142
9143         * defaults.h (gen_load_multiple): New function.
9144         (HAVE_load_multiple): Add default value.
9145         * expr.c (move_block_to_reg): Adjust.
9146
9147 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9148
9149         * defaults.h (gen_mem_signal_fence): New function.
9150         (HAVE_mem_signal_fence): Add default value.
9151         * optabs.c: Adjust.
9152
9153 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9154
9155         * defaults.h (gen_memory_barrier): New function.
9156         (HAVE_memory_barrier): Add default value.
9157         * optabs.c: Adjust.
9158
9159 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9160
9161         * defaults.h (gen_mem_thread_fence): New function.
9162         (HAVE_mem_thread_fence): Add default definition.
9163         * optabs.c: Adjust.
9164
9165 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9166
9167         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9168         instead of if it is defined.
9169         (combine_simplify_rtx): Likewise.
9170         * lra-constraints.c (process_address_1): Likewise.
9171         * config/darwin.c: Adjust.
9172         * genconfig.c (main): Always define HAVE_lo_sum.
9173
9174 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9175
9176         * genmatch.c (parser::parse_operation): Reject expanding
9177         operator-list inside 'for'.
9178
9179 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9180
9181         * genmatch.c (parser::parse_for): Reject iterator if used as
9182         operator-list.
9183
9184 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9185
9186         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9187         after end of id-list.
9188
9189 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9190
9191         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9192         we do not try to compute canonical type for type that does not need
9193         alias set.
9194         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9195         FUNCITON_TYPE.
9196         * tree.h (type_with_alias_set_p): New.
9197
9198 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9199
9200         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9201         function attributes.
9202         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9203
9204 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9205
9206         * Makefile.in (check_gcc_parallelize): Delete.
9207         (lang_checks_parallelized): Update comment.
9208
9209 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9210
9211         PR rtl-optimization/66237
9212         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9213         location of an "as_a" cast.
9214
9215 2015-05-22  Jeff Law  <law@redhat.com>
9216
9217         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9218         (peepholes with non-canonical RTL sources): Remove.
9219         (peepholes for indexed stores of FP regs in integer modes): Match and
9220         generate canonical RTL.
9221
9222 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9223
9224         PR tree-optimization/63387
9225         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9226         ((x ord x) & (y ord y) -> (x ord y),
9227         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9228         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9229         vectors like scalars.
9230
9231 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9232
9233         * convert.c (convert_to_integer, convert_to_vector): Include the
9234         types in the error message.
9235
9236 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9237
9238         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9239         simplifications.
9240
9241 2015-05-22  Jeff Law  <law@redhat.com>
9242
9243         * config/pa/pa.md (integer_indexed_store splitters): Use
9244         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9245         insns -- adjusting the constant 2nd operand accordingly.
9246
9247         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9248         (plus (ashift X log2) Y) if it is a split point.
9249
9250         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9251         out of hppa_legitimize_address to handle both forms of a multiply
9252         by 2, 4 or 8.
9253         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9254         Always generate the ASHIFT variant as the result is not directly
9255         used in a MEM.  Update comments and refactor slightly to improve
9256         readability.
9257
9258 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9259
9260         PR target/65491
9261         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9262         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9263         (aarch64_composite_type_p): Return false if given type and mode are
9264         for a short vector.
9265
9266 2015-05-22  Richard Biener  <rguenther@suse.de>
9267
9268         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9269         member.
9270         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9271         patterns when determining whether SLP is pure.
9272         (vect_is_slp_reduction): Remove check for pattern stmts.
9273         (vect_is_simple_reduction_1): Remove dead code.
9274         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9275         (vect_get_and_check_slp_defs): Pass in the stmt number.
9276         Allow the first def in a reduction to be not a pattern stmt when
9277         the rest of the stmts def are patterns.
9278         (vect_build_slp_tree_1): Allow tcc_expression codes like
9279         SAD_EXPR and DOT_PROD_EXPR.
9280         (vect_build_slp_tree): Adjust.
9281         (vect_analyze_slp): Refactor and move BB vect error message ...
9282         (vect_slp_analyze_bb_1): ... here.
9283
9284 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9285
9286         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9287         for CSWTCH temporary.
9288
9289 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9290
9291         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9292         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9293         unknown unspecs.
9294
9295 2015-05-22  Richard Biener  <rguenther@suse.de>
9296
9297         PR tree-optimization/66251
9298         * tree-vect-stmts.c (vectorizable_conversion): Properly
9299         set STMT_VINFO_VEC_STMT even for the SLP case.
9300
9301 2015-05-22  Marek Polacek  <polacek@redhat.com>
9302
9303         * doc/extend.texi: Use @pxref instead of @xref.
9304
9305 2015-05-22  hiraditya  <hiraditya@msn.com>
9306
9307         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9308         redundant if.
9309
9310 2015-05-22  Richard Biener  <rguenther@suse.de>
9311
9312         PR tree-optimization/65701
9313         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9314         Move peeling cost models into one place.  Peel for alignment
9315         for single loads only if an aligned load is cheaper than
9316         an unaligned load.
9317
9318 2015-05-22  Marek Polacek  <polacek@redhat.com>
9319
9320         PR c/47043
9321         * doc/extend.texi (Enumerator Attributes): New section.
9322         Document syntax of enumerator attributes.
9323
9324 2015-05-22  Richard Biener  <rguenther@suse.de>
9325
9326         * tree-vect-loop.c (get_reduction_op): New function.
9327         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9328         Make ready for BB reductions.
9329         (vect_create_epilog_for_reduction): Use get_reduction_op.
9330         (vectorizable_reduction): Init reduc_index to a valid value.
9331         Adjust vect_model_reduction_cost call.
9332         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9333         operand for reduction defaults.  Add SAD_EXPR support.
9334         Assert we have a neutral op for SLP reductions.
9335         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9336         walking pattern stmt ops only recurse to SSA names.
9337
9338 2015-05-22  Richard Biener  <rguenther@suse.de>
9339
9340         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9341         assert with guard, remove check on detected reduction.
9342         (vect_recog_sad_pattern): Likewise.
9343         (vect_recog_widen_sum_pattern): Likewise.
9344
9345 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9346
9347         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9348         __always_inline__ attribute.
9349         (vaesdq_u8): Likewise.
9350         (vaesmcq_u8): Likewise.
9351         (vaesimcq_u8): Likewise.
9352         (vsha1cq_u32): Likewise.
9353         (vsha1mq_u32): Likewise.
9354         (vsha1pq_u32): Likewise.
9355         (vsha1h_u32): Likewise.
9356         (vsha1su0q_u32): Likewise.
9357         (vsha1su1q_u32): Likewise.
9358         (vsha256hq_u32): Likewise.
9359         (vsha256h2q_u32): Likewise.
9360         (vsha256su0q_u32): Likewise.
9361         (vsha256su1q_u32): Likewise.
9362         (vmull_p64): Likewise.
9363         (vmull_high_p64): Likewise.
9364
9365 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9366
9367         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9368         preprocessor.
9369         * output.h: Likewise.
9370         * genconfig.c (main): Alwways define HAVE_peephole.
9371         * genpeep.c: Don't emit checks of HAVE_peephole.
9372
9373 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9374
9375         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9376         check HAVE_conditional_move with the preprocessor.
9377
9378 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9379
9380         * genconfig.c (main): Always define HAVE_conditional_move.
9381         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9382         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9383         is defined.
9384
9385 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9386
9387         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9388         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9389         and FRAME_POINTER_REGNUM with the preprocessor.
9390
9391 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9392
9393         * defaults.h: Add default for STACK_PUSH_CODE.
9394         * expr.c: Don't redefine STACK_PUSH_CODE.
9395         * recog.c: Likewise.
9396
9397 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9398
9399         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9400         sched-deps.c: Use if instead of preprocessor checks with
9401         STACK_GROWS_DOWNWARD.
9402
9403 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9404
9405         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9406         is defined.
9407         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9408         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9409         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9410         * doc/tm.texi: Regenerate.
9411
9412 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9413
9414         PR target/66232
9415         * config/i386/constraints.md (Bg): New constraint for GOT memory
9416         operand.
9417         * config/i386/i386.md (*call_got_x32): New pattern.
9418         (*call_value_got_x32): Likewise.
9419         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9420
9421 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9422
9423         PR tree-optimization/66233
9424         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9425         Simplify.
9426
9427 2015-05-21  Jeff Law  <law@redhat.com>
9428
9429         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9430         than MULT for shadd sequences.
9431
9432 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9433
9434         * alias.c (alias_stats): New static var.
9435         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9436         (dump_alias_stats_in_alias_c): New function.
9437         * alias.h (dump_alias_stats_in_alias_c): Declare.
9438         * tree-ssa-alias.c (dump_alias_stats): Call it.
9439
9440 2015-05-08  Michael Matz  <matz@suse.de>
9441
9442         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9443         to strided_p.
9444         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9445         (STMT_VINFO_STRIDED_P): ... this.
9446         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9447         (vect_verify_datarefs_alignment): Likewise.
9448         (vect_enhance_data_refs_alignment): Likewise.
9449         (vect_analyze_data_ref_access): Likewise.
9450         (vect_analyze_data_refs): Accept strided stores.
9451         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9452         (vect_model_load_cost): Adjust for macro rename.
9453         (vectorizable_mask_load_store): Likewise.
9454         (vectorizable_load): Likewise.
9455         (vectorizable_store): Open code strided stores.
9456
9457 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9458
9459         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9460         Document sqrt_insn.
9461
9462 2015-05-21  Richard Biener  <rguenther@suse.de>
9463
9464         PR c++/66211
9465         * match.pd: Guard pattern optimzing (int)(float)int
9466         conversions to apply only on GIMPLE.
9467
9468 2015-05-21  Jeff Law  <law@redhat.com>
9469
9470         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9471         multiply-accumulate/shift-add insn generation.
9472
9473 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9474
9475         PR target/54236
9476         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9477         operands[1] are the same.
9478
9479 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9480
9481         PR middle-end/66221
9482         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9483         build_distinct_type_copy to copy bounds.
9484
9485 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9486
9487         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9488         Change to unsigned int.
9489
9490 2015-05-20  Jeff Law  <law@redhat.com>
9491
9492         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9493         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9494         (pa_shadd_constant_p): Allow constants for shadd insns rather
9495         than valid scaling constants for memory addresses.
9496         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9497         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9498         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9499         (shift-add insns using ASHIFT): New patterns.
9500
9501 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9502
9503         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9504         feasible.
9505         (fix_up_fall_thru_edges): Likewise.
9506         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9507         from to rtx_insn to rtx_code_label where feasible.
9508         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9509         gen_move_insn (returned type changed to rtx_insn).
9510         * builtins.c (expand_errno_check): Fix arguments of
9511         do_compare_rtx_and_jump (now expects rtx_code_label).
9512         (expand_builtin_acc_on_device): Likewise.
9513         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9514         invert_jump (now exprects rtx_jump_insn).
9515         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9516         (construct_init_block): Use rtx_code_label.
9517         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9518         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9519         calling redirect_jump.
9520         (patch_jump_insn): Likewise.
9521         (redirect_branch_edge): Likewise.
9522         (force_nonfallthru_and_redirect): Likewise.
9523         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9524         when suitable.
9525         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9526         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9527         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9528         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9529         to store the value retured by gen_label_rtx.
9530         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9531         rtx_jump_insn.
9532         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9533         (split_branches): Fix calls of redirect_jump.
9534         * dojump.c (jumpifnot): Promote argument type from rtx to
9535         rtx_code_label.
9536         (jumpifnot_1): Likewise.
9537         (jumpif): Likewise.
9538         (jumpif_1): Likewise.
9539         (do_jump_1): Likewise.
9540         (do_jump): Likewise. Use rtx_code_label when feasible.
9541         (do_jump_by_parts_greater_rtx): Likewise.
9542         (do_jump_by_parts_zero_rtx): Likewise.
9543         (do_jump_by_parts_equality_rtx): Likewise.
9544         (do_compare_rtx_and_jump): Likewise.
9545         * dojump.h: Update function prototypes.
9546         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9547         returns rtx_insn).
9548         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9549         rtx_jump_insn.
9550         (emit_label_before): Likewise.
9551         (emit_jump_insn_after_noloc): Likewise.
9552         (emit_jump_insn_after_setloc): Likewise.
9553         (emit_jump_insn_after): Likewise
9554         (emit_jump_insn_before_setloc): Likewise.
9555         (emit_jump_insn_before): Likewise.
9556         (emit_label_before): Promote return type to rtx_code_label.
9557         (emit_label): Likewise.
9558         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9559         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9560         gen_move_insn.
9561         (emit_stack_restore): Likewise.
9562         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9563         (do_cmp_and_jump): Likewise.
9564         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9565         from rtx to rtx_code_label.
9566         (gen_move_insn_uncast): New function.
9567         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9568         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9569         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9570         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9571         invert_jump_1 and redirect_jump_1.
9572         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9573         do_compare_rtx_and_jump.
9574         (expand_addsub_overflow): Likewise.
9575         (expand_neg_overflow): Likewise.
9576         (expand_mul_overflow): Likewise.
9577         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9578         return value of gen_move_insn.
9579         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9580         * loop-doloop.c (add_test): Use rtx_code_label.
9581         (doloop_modify): Likewise.
9582         (doloop_optimize): Likewise.
9583         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9584         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9585         by gen_move_insn.
9586         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9587         (split_reg): Likewise.
9588         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9589         gen_move_insn.
9590         * optabs.c (expand_binop_directly): Remove casts of values returned by
9591         maybe_gen_insn.
9592         (expand_unop_direct): Likewise.
9593         (expand_abs): Likewise.
9594         (maybe_emit_unop_insn): Likewise.
9595         (maybe_gen_insn): Promote return type to rtx_insn.
9596         * optabs.h: Update prototype of maybe_gen_insn.
9597         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9598         redundant cast.
9599         * recog.c (struct peep2_insn_data): Promote type of insn field to
9600         rtx_insn.
9601         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9602         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9603         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9604         * recog.h (struct insn_gen_fn): Promote return types of function
9605         pointers and operator ().from rtx to rtx_insn.
9606         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9607         (fill_eager_delay_slots): Likewise.
9608         (relax_delay_slots): Likewise.
9609         (make_return_insns): Likewise.
9610         (dbr_schedule): Likewise.
9611         (optimize_skips): Likewise.
9612         (reorg_redirect_jump): Likewise.
9613         (fill_slots_from_thread): Likewise.
9614         * reorg.h: Update prototypes.
9615         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9616         rtx_jump_insn instead of check.  Use it's jump_target method.
9617         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9618         (rtx_jump_insn::jump_target): Define new method.
9619         (rtx_jump_insn::set_jump_target): Define new method.
9620         * rtlanal.c (tablejump_p): Promote type of one local variable.
9621         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9622         (sched_analyze_insn): Likewise.
9623         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9624         (print_insn): Likewise.
9625         * stmt.c (label_rtx): Promote return type to rtx_insn.
9626         (force_label_rtx): Likewise.
9627         (jump_target_rtx): Define new function.
9628         (expand_label): Use it, get rid of one cast.
9629         (expand_naked_return): Promote rtx to rtx_code_label.
9630         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9631         (expand_case): Use rtx_code_label instread of rtx where feasible.
9632         (expand_sjlj_dispatch_table): Likewise.
9633         (emit_case_nodes): Likewise.
9634         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9635         * store-motion.c (insert_store): Make use of new return type of
9636         gen_move_insn and remove a cast.
9637         (replace_store_insn): Likewise.
9638
9639 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9640
9641         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9642         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9643
9644 2015-05-20  Jeff Law  <law@redhat.com>
9645
9646         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9647         dispose of the jump thread path when the jump threading
9648         opportunity is cancelled.
9649
9650 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9651
9652         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9653         when printing the caret character.
9654
9655 2015-05-20  Marek Polacek  <polacek@redhat.com>
9656
9657         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9658
9659 2015-05-20  Marek Polacek  <polacek@redhat.com>
9660
9661         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9662         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9663         * gimple-fold.c (canonicalize_bool): Likewise.
9664         (same_bool_result_p): Likewise.
9665         * tree-if-conv.c (parse_predicate): Likewise.
9666
9667 2015-05-20  Marek Polacek  <polacek@redhat.com>
9668
9669         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9670         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9671
9672 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9673
9674         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9675         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9676         values.
9677
9678 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9679
9680         * config/mips/mips.h (micromips_globals): Declare.
9681
9682 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9683
9684         * timevar.def (TV_INITIALIZE_RTL): New.
9685         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9686         function's time to TV_INITIALIZE_RTL.
9687
9688 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9689
9690         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9691         gimple_build_nop calls.
9692         (chkp_find_bounds_for_elem): Likewise.
9693         (chkp_get_zero_bounds): Likewise.
9694         (chkp_get_none_bounds): Likewise.
9695         (chkp_get_bounds_by_definition): Likewise.
9696         (chkp_generate_extern_var_bounds): Likewise.
9697         (chkp_get_bounds_for_decl_addr): Likewise.
9698         (chkp_get_bounds_for_string_cst): Likewise.
9699
9700 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9701
9702         PR tree-optimization/65447
9703         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9704         (dump_use, dump_uses): Support to dump sub use.
9705         (record_use): New parameters to support sub use.  Remove call to
9706         dump_use.
9707         (record_sub_use, record_group_use): New functions.
9708         (compute_max_addr_offset, split_all_small_groups): New functions.
9709         (group_address_uses, rewrite_use_address): New functions.
9710         (strip_offset): New declaration.
9711         (find_interesting_uses_address): Call record_group_use.
9712         (add_candidate): New assertion.
9713         (infinite_cost_p): Move definition forward.
9714         (add_costs): Check INFTY cost and return immediately.
9715         (get_computation_cost_at): Clear setup cost and dependent bitmap
9716         for sub uses.
9717         (determine_use_iv_cost_address): Compute cost for sub uses.
9718         (rewrite_use_address_1): Rename from old rewrite_use_address.
9719         (free_loop_data): Free sub uses.
9720         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9721
9722 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9723             Jim Wilson  <jim.wilson@linaro.org>
9724
9725         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
9726         new  fields loadv and storev.
9727         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
9728         Initialize loadv and storev.
9729         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
9730         (cortexa53_extra_costs): Likewise.
9731         (cortexa57_extra_costs): Likewise.
9732         (xgene1_extra_costs): Likewise.
9733         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
9734         rtx_costs.
9735
9736 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9737
9738         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
9739          storev.
9740         (cortexa8_extra_costs): Likewise.
9741         (cortexa5_extra_costs): Likewise.
9742         (cortexa7_extra_costs): Likewise.
9743         (cortexa12_extra_costs): Likewise.
9744         (cortexa15_extra_costs): Likewise.
9745         (v7m_extra_costs): Likewise.
9746
9747 2015-05-20  Jeff Law  <law@redhat.com>
9748
9749         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
9750         instead of open-coded version.  Also delete the jump thread created
9751         within this function.
9752
9753 2015-05-20  Alan Modra  <amodra@gmail.com>
9754
9755         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
9756         stack adjusting insn.  Formatting.
9757         (rs6000_emit_prologue): Track stack adjusting insn, and use of
9758         r12.  If possible, emit first -fsplit-stack arg pointer insn
9759         before stack adjust.  Don't use r12 to save cr if split-stack.
9760
9761 2015-05-20  Alan Modra  <amodra@gmail.com>
9762
9763         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
9764         Define.
9765         (rs6000_supports_split_stack): New function.
9766         * gcc/config/rs6000/rs6000.c (machine_function): Add
9767         split_stack_arg_pointer.
9768         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
9769         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
9770         rather than virtual_incoming_args_rtx.
9771         (rs6000_va_start): Likewise.
9772         (split_stack_arg_pointer_used_p): New function.
9773         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
9774         (morestack_ref): New var.
9775         (gen_add3_const, rs6000_expand_split_stack_prologue,
9776         rs6000_internal_arg_pointer, rs6000_live_on_entry,
9777         rs6000_split_stack_space_check): New functions.
9778         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
9779         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
9780         (UNSPECV_SPLIT_STACK_RETURN): Define.
9781         (split_stack_prologue, load_split_stack_limit,
9782         load_split_stack_limit_di, load_split_stack_limit_si,
9783         split_stack_return, split_stack_space_check): New expands and insns.
9784         * gcc/config/rs6000/rs6000-protos.h
9785         (rs6000_expand_split_stack_prologue): Declare.
9786         (rs6000_split_stack_space_check): Declare.
9787
9788 2015-05-20  Alan Modra  <amodra@gmail.com>
9789
9790         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
9791         (direct_return): Test vrsave_size rather than vrsave_mask.
9792         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
9793         (rs6000_emit_epilogue): Likewise.
9794
9795 2015-05-20  Alan Modra  <amodra@gmail.com>
9796
9797         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
9798         when not saving registers.
9799         (debug_stack_info): Adjust to omit printing unused offsets,
9800         as before.
9801         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
9802         expression.
9803
9804 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9805
9806         PR c++/65835
9807         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
9808         value_type to const char *.
9809
9810 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
9811
9812         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
9813         to build a biarch toolchain again.
9814
9815 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9816
9817         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
9818         or implicit declarations.
9819         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
9820         into it.
9821         (get_odr_type): Check type has linkage before adding bases.
9822         (register_odr_type): Check that type has linkage before adding it.
9823         (type_known_to_have_no_deriavations_p): Rename to ..
9824         (type_known_to_have_no_derivations_p): This one.
9825         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
9826         (type_known_to_have_no_derivations_p): This one.
9827         * ipa-polymorphic-call.c
9828         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
9829         type has linkage.
9830
9831 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9832
9833         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
9834         (layout_type): Use RECORD_OR_UNION_TYPE_P.
9835
9836 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9837
9838         * config/s390/s390.c (s390_vector_bool_type_p): New function.
9839         (s390_invalid_binary_op): New function.
9840         (TARGET_INVALID_BINARY_OP): Define macro.
9841
9842 2015-05-19  David Sherwood  <david.sherwood@arm.com>
9843
9844         * loop-invariant.c (create_new_invariant): Don't calculate address cost
9845         if mode is not a scalar integer.
9846         (get_inv_cost): Increase computational cost for unused invariants.
9847
9848 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9849
9850         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
9851         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
9852         * config/s390/s390-builtin-types.def: New file.
9853         * config/s390/s390-builtins.def: New file.
9854         * config/s390/s390-builtins.h: New file.
9855         * config/s390/s390-c.c: New file.
9856         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
9857         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
9858         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
9859         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
9860         prototypes.
9861         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
9862         Include.
9863         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
9864         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
9865         variable definitions.
9866         (s390_const_operand_ok): New function.
9867         (s390_expand_builtin): Rewrite.
9868         (s390_init_builtins): New function.
9869         (s390_handle_vectorbool_attribute): New function.
9870         (s390_attribute_table): Add s390_vector_bool attribute.
9871         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
9872         (s390_branch_condition_mask): Generate masks for new modes.
9873         (s390_expand_vec_compare_cc): New function.
9874         (s390_mangle_type): Add mangling for vector bool types.
9875         (enum s390_builtin): Remove.
9876         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
9877         efpc builtins.
9878         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
9879         s390_cpu_cpp_builtins.
9880         (REGISTER_TARGET_PRAGMAS): New macro.
9881         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
9882         (insn_cmp mode attribute): Add new CC modes.
9883         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
9884         (lcbb): New pattern definition.
9885         * config/s390/s390intrin.h: Include vecintrin.h.
9886         * config/s390/t-s390: New file.
9887         * config/s390/vecintrin.h: New file.
9888         * config/s390/vector.md: Include vx-builtins.md.
9889         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
9890         support.
9891
9892 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9893
9894         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
9895         CCVFHE.
9896         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
9897         (s390_select_ccmode): Likewise.
9898         (s390_canonicalize_comparison): Swap operands if necessary.
9899         (s390_expand_vec_compare_scalar): Expand DFmode compare using
9900         single element vector instructions.
9901         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
9902         (s390_branch_condition_mask): Generate CC masks for the new modes.
9903         * config/s390/s390.md (v0, vf, vd): New mode attributes.
9904         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
9905         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
9906         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
9907         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
9908         (*extend<DSF:mode><BFP:mode>2): New insn definition.
9909         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
9910         (extend<DSF:mode><BFP:mode>2): Turn into expander.
9911         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
9912         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
9913         (sqrt<mode>2): Add vector instruction.
9914
9915 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9916
9917         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
9918         constraints.
9919         * config/s390/predicates.md (const0_operand, constm1_operand)
9920         (constable_operand): Accept vector operands.
9921         * config/s390/s390-modes.def: Add supported vector modes.
9922         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
9923         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
9924         (s390_bytemask_vector_p, s390_expand_vec_strlen)
9925         (s390_expand_vec_compare, s390_expand_vcond)
9926         (s390_expand_vec_init): Add prototypes.
9927         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
9928         (s390_vector_mode_supported_p): New function.
9929         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
9930         (s390_contiguous_bitmask_vector_p): New function.
9931         (s390_bytemask_vector_p): New function.
9932         (s390_split_ok_p): Vector regs don't work either.
9933         (regclass_map): Add VEC_REGS.
9934         (s390_legitimate_constant_p): Handle vector constants.
9935         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
9936         (legitimate_reload_vector_constant_p): New function.
9937         (s390_preferred_reload_class): Handle CONST_VECTOR.
9938         (s390_reload_symref_address):  Likewise.
9939         (s390_secondary_reload): Vector memory instructions only support
9940         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
9941         (s390_emit_ccraw_jump): New function.
9942         (s390_expand_vec_strlen): New function.
9943         (s390_expand_vec_compare): New function.
9944         (s390_expand_vcond): New function.
9945         (s390_expand_vec_init): New function.
9946         (s390_dwarf_frame_reg_mode): New function.
9947         (print_operand): Handle addresses with 'O' and 'R' constraints.
9948         (NR_C_MODES, constant_modes): Add vector modes.
9949         (s390_output_pool_entry): Handle vector constants.
9950         (s390_hard_regno_mode_ok): Handle vector registers.
9951         (s390_class_max_nregs): Likewise.
9952         (s390_cannot_change_mode_class): New function.
9953         (s390_invalid_arg_for_unprototyped_fn): New function.
9954         (s390_function_arg_vector): New function.
9955         (s390_function_arg_float): Remove size variable.
9956         (s390_pass_by_reference): Handle vector arguments.
9957         (s390_function_arg_advance): Likewise.
9958         (s390_function_arg): Likewise.
9959         (s390_return_in_memory): Vector values are returned in a VR if
9960         possible.
9961         (s390_function_and_libcall_value): Handle vector arguments.
9962         (s390_gimplify_va_arg): Likewise.
9963         (s390_call_saved_register_used): Consider the arguments named.
9964         (s390_conditional_register_usage): Disable v16-v31 for non-vec
9965         targets.
9966         (s390_preferred_simd_mode): New function.
9967         (s390_support_vector_misalignment): New function.
9968         (s390_vector_alignment): New function.
9969         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
9970         (TARGET_VECTOR_MODE_SUPPORTED_P)
9971         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
9972         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9973         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
9974         (TARGET_VECTOR_ALIGNMENT): Define target macro.
9975         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
9976         (FIRST_PSEUDO_REGISTER): Increase value.
9977         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
9978         (VECTOR_REG_P): Define macros.
9979         (FIXED_REGISTERS, CALL_USED_REGISTERS)
9980         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
9981         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
9982         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
9983         Add vector registers.
9984         (CANNOT_CHANGE_MODE_CLASS): Call C function.
9985         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
9986         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
9987         memory.
9988         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
9989         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
9990         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
9991         (VR*_REGNUM): New constants.
9992         (ALL): New mode iterator.
9993         (INTALL): Remove mode iterator.
9994         Include vector.md.
9995         (movti): Implement TImode moves for VRs.
9996         Disable TImode splitter for VR targets.
9997         Implement splitting TImode GPR<->VR moves.
9998         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
9999         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
10000         reload<mode>_la_in, reload<mode>_la_out.
10001         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
10002         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
10003         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
10004         (mov<mode> SF SD): Prefer lder, lde for loading.
10005         Add lrl and strl instructions.
10006         Add vector instructions.
10007         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
10008         Call s390_expand_vec_strlen on z13.
10009         (*cc_to_int): Change predicate to nonimmediate_operand.
10010         (addti3): Rename to *addti3.  New expander.
10011         (subti3): Rename to *subti3.  New expander.
10012         * config/s390/vector.md: New file.
10013
10014 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10015
10016         * common/config/s390/s390-common.c (processor_flags_table): Add
10017         z13.
10018         * config.gcc: Add z13.
10019         * config/s390/s390-opts.h (enum processor_type): Add
10020         PROCESSOR_2964_Z13.
10021         * config/s390/s390.c (s390_adjust_priority): Check for
10022         PROCESSOR_2964_Z13.
10023         (s390_reorg): Likewise.
10024         (s390_sched_reorder): Likewise.
10025         (s390_sched_variable_issue): Likewise.
10026         (s390_loop_unroll_adjust): Likewise.
10027         (s390_option_override): Likewise. Default to -mvx when available.
10028         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
10029         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
10030         (TARGET_VX_ABI): Define macros.
10031         macros.
10032         (TARGET_DEFAULT): Add MASK_OPT_VX.
10033         * config/s390/s390.md ("cpu" attribute): Add z13.
10034         ("cpu_facility" attribute): Add vec.
10035         * config/s390/s390.opt (processor_type): Add z13.
10036         (mvx): New options.
10037         * doc/invoke.texi: Add z13 option for -march.
10038
10039 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10040
10041         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
10042         mode check to make sure that only scalar integer values are
10043         accepted.
10044
10045 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10046
10047         * tree.c (verify_type_variant): Fix #undef.
10048         (gimple_canonical_types_compatible_p): Move here from lto.c
10049         (verify_type): Verify TYPE_CANONICAL compatibility.
10050         * tree.h (gimple_canonical_types_compatible_p): Declare.
10051
10052 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10053
10054         PR middle-end/66199
10055         * tree.h (OMP_TEAMS_COMBINED): Define.
10056         * gimplify.c (enum gimplify_omp_var_data): Add
10057         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
10058         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
10059         (omp_notice_variable): Accept both ORT_TEAMS
10060         and ORT_COMBINED_TEAMS.  Don't recurse if
10061         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
10062         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
10063         GOVD_FIRSTPRIVATE.
10064         (omp_no_lastprivate): New function.
10065         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
10066         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
10067         notice_outer and set appropriate bits, otherwise make
10068         sure default(none) combined constructs won't complain.
10069         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
10070         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
10071         omp_no_lastprivate either remove the clause or turn it
10072         into OMP_CLAUSE_PRIVATE.
10073         (gimplify_omp_for): Fix up handling of implicit
10074         lastprivate or linear iterators.
10075         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
10076         ORT_COMBINED_TEAMS.
10077         * omp-low.c (lower_omp_for_lastprivate): For combined
10078         for simd use fd.loop.n2 from the for rather than simd.
10079
10080 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10081
10082         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10083         instead of gen_rtx_raw_REG.
10084         (cris_expand_epilogue): Likewise.
10085         * config/microblaze/microblaze.c (microblaze_classify_address):
10086         Likewise.
10087         * config/sparc/sparc.md: Likewise.
10088
10089 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
10090
10091         * config/alpha/alpha.c (alpha_legitimize_reload_address)
10092         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10093         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10094         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10095         Use CASE_CONST_SCALAR_INT.
10096         (print_operand) <case 'M'>: Use mode_width_operand to check the
10097         value of the constant.
10098         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10099         * config/alpha/predicates.md (input_operand): Use general_operand
10100         instead of match_code as operand check.
10101         (symbolic_operand): Use match_code with subexpression digits.
10102         * config/alpha/constraints.md (Q): Ditto.
10103
10104 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10105
10106         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10107
10108 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10109
10110         * config/s390/s390.c (s390_secondary_reload): Fix check for
10111         load/store relative.
10112
10113 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10114
10115         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
10116         alternative_mask to uint64_t.
10117
10118 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR tree-optimization/66187
10121         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10122         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
10123         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10124
10125 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10126
10127         * diagnostic.c (diagnostic_report_current_module): Strengthen
10128         local "new_map" from const line_map * to
10129         const line_map_ordinary *.
10130         * genmatch.c (error_cb): Likewise for local "map".
10131         (output_line_directive): Likewise for local "map".
10132         * input.c (expand_location_1): Likewise for local "map".
10133         Pass NULL rather than &map to
10134         linemap_unwind_to_first_non_reserved_loc, since the value is never
10135         read from there, and the value written back not read from here.
10136         (is_location_from_builtin_token): Strengthen local "map" from
10137         const line_map * to const line_map_ordinary *.
10138         (dump_location_info): Strengthen locals "map" from
10139         line_map *, one to const line_map_ordinary *, the other
10140         to const line_map_macro *.
10141         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10142         const line_map * to const line_map_macro *.
10143         (maybe_unwind_expanded_macro_loc): Add a call to
10144         linemap_check_macro when writing to the "map" field of the
10145         loc_map_pair.
10146         Introduce local const line_map_ordinary * "ord_map", using it in
10147         place of "map" in the part of the function where we know we have
10148         an ordinary map.  Strengthen local "m" from const line_map * to
10149         const line_map_ordinary *.
10150
10151 2015-05-19  Nick Clifton  <nickc@redhat.com>
10152
10153         PR target/66156
10154         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10155         separate source and destination registers.
10156
10157 2015-05-19  Richard Biener  <rguenther@suse.de>
10158
10159         PR tree-optimization/66165
10160         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10161         for no load permutation.
10162
10163         PR tree-optimization/66185
10164         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10165         when building the SLP node from scalars.
10166
10167 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10168             Tristan Gingold  <gingold@adacore.com>
10169
10170         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10171         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10172         (expand_stack_restore): Call record_new_stack_level.
10173         (expand_stack_save): Do not call do_pending_stack_adjust.
10174         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10175         * calls.c (expand_call): Call record_new_stack_level for alloca.
10176         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10177         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10178         (update_sjlj_context): New global function.
10179         * except.h (update_sjlj_context): Declare.
10180         * explow.c (record_new_stack_level): New global function.
10181         (allocate_dynamic_stack_space): Call record_new_stack_level.
10182         * explow.h (record_new_stack_level): Declare.
10183         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10184         * cfgrtl.c (duplicate_insn_chain): Likewise.
10185
10186 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10187
10188         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10189         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10190         STACK_GROWS_DOWNWARD as normal if.
10191         (expand_call): Likewise.
10192
10193 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10194
10195         PR target/54236
10196         * config/sh/sh.md (*round_int_even): New insn_and_split and
10197         accompanying new unnamed split.
10198
10199 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10200
10201         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10202         (bitmap_clear_range): Likewise.
10203         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10204         bitmap_set_range unconditionally.
10205         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10206         * df-scan.c (df_mark_reg): Likewise.
10207         * haifa-sched.c (setup_ref_regs): Likewise.
10208         * sched-rgn.c (update_live_1): Likewise.
10209
10210 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10211
10212         * regs.h (END_HARD_REGNO): Delete.
10213         (END_REGNO): Move to...
10214         * rtl.h: ...here.
10215         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10216         * caller-save.c (mark_set_regs): Likewise.
10217         * combine.c (move_deaths, distribute_notes): Likewise.
10218         * cse.c (invalidate, invalidate_for_call): Likewise.
10219         * df-scan.c (df_ref_record): Likewise.
10220         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10221         (record_last_reg_set_info): Likewise.
10222         * reg-stack.c (convert_regs_exit): Likewise.
10223         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10224         * resource.c (update_live_status): Likewise.
10225         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10226
10227 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10228
10229         * rtl.h (reg_info): Add an nregs field.
10230         (REG_NREGS): Use it.
10231         (SET_REGNO_RAW): Delete.
10232         (set_regno_raw): New function.
10233         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10234         (END_REGNO): Redefine in terms of REG_NREGS.
10235         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10236         SET_REGNO_RAW.
10237         * emit-rtl.c (set_mode_and_regno): Likewise.
10238         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10239         instead of SET_REGNO_RAW.
10240
10241 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10242
10243         * rtl.h (PUT_MODE_RAW): New macro.
10244         (PUT_REG_NOTE_KIND): Use it.
10245         (set_mode_and_regno): Declare.
10246         (gen_raw_REG): Change regno to "unsigned int".
10247         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10248         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10249         use set_mode_and_regno to change the mode of registers.
10250         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10251         * emit-rtl.c (set_mode_and_regno): New function.
10252         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10253         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10254         * expr.c (init_expr_target): Likewise.
10255         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10256         * postreload.c (reload_cse_simplify_operands): Likewise.
10257
10258 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10259
10260         * caller-save.c (init_caller_save): Use word_mode and
10261         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10262         * expr.c (init_expr_target): Likewise.
10263         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10264         * postreload.c (reload_cse_regs_1): Likewise.
10265
10266 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10267
10268         * rtl.def (REG): Change format to "r".
10269         * rtl.h (rtunion): Remove rt_reg.
10270         (reg_info): New structure.
10271         (rtx_def): Add reg field to main union.
10272         (X0REGATTR): Delete.
10273         (REG_CHECK): New macro.
10274         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10275         * rtl.c (rtx_format): Document "r".
10276         (rtx_code_size): Handle REG specially.
10277         * gengenrtl.c (special_format): Return true for formats
10278         that include 'r'.
10279         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10280         Deal with REG_ATTRS after the field loop.
10281         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10282         * expmed.c (init_expmed): Call gen_raw_REG instead of
10283         gen_rtx_raw_REG.
10284         * expr.c (init_expr_target): Likewise.
10285         * regcprop.c (maybe_mode_change): Likewise.
10286         * varasm.c (make_decl_rtl): Likewise.
10287         * final.c (leaf_renumber_regs_insn): Return early after
10288         handling REGs.
10289         * genemit.c (gen_exp): Handle 'r' fields.
10290         * genpeep.c (match_rtx): Likewise.
10291         * gensupport.c (subst_pattern_match): Likewise.
10292         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10293         (alter_constraints, subst_dup): Likewise.
10294         * read-rtl.c (read_rtx_code): Likewise.
10295         * print-rtl.c (print_rtx): Likewise.
10296         * genrecog.c (find_operand, find_matching_operand): Likewise.
10297         (validate_pattern, match_pattern_2): Likewise.
10298         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10299         (rtx_test::regno_field): New function.
10300         (operator ==, safe_to_hoist_p, transition_parameter_type)
10301         (parameter_type_string, print_parameter_value)
10302         (print_nonbool_test, print_test): Handle new enum values.
10303         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10304         * lra-constraints.c (operands_match_p): Likewise.
10305
10306 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10307
10308         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10309         Change type of new_regno to unsigned int.
10310         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10311         new_regno to unsigned int.
10312         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10313         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10314         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10315         (SET_REGNO_RAW): Add space after ",".
10316
10317 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10318
10319         * rtl.h (REG_NREGS): New macro
10320         * alias.c (record_set): Use it.
10321         * cfgcleanup.c (mark_effect): Likewise.
10322         * combine.c (likely_spilled_retval_1): Likewise.
10323         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10324         (move_deaths, distribute_notes): Likewise.
10325         * cselib.c (cselib_record_set): Likewise.
10326         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10327         * df-scan.c (df_mark_reg): Likewise.
10328         * dse.c (look_for_hardregs): Likewise.
10329         * dwarf2out.c (reg_loc_descriptor): Likewise.
10330         (multiple_reg_loc_descriptor): Likewise.
10331         * expr.c (write_complex_part, read_complex_part): Likewise.
10332         (emit_move_complex): Likewise.
10333         * haifa-sched.c (setup_ref_regs): Likewise.
10334         * ira-lives.c (mark_hard_reg_live): Likewise.
10335         * lra.c (lra_set_insn_recog_data): Likewise.
10336         * mode-switching.c (create_pre_exit): Likewise.
10337         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10338         (reload_combine_recognize_pattern): Likewise.
10339         (reload_combine_note_use, move2add_record_mode): Likewise.
10340         (reload_cse_move2add): Likewise.
10341         * reg-stack.c (subst_stack_regs_pat): Likewise.
10342         * regcprop.c (kill_value, copy_value): Likewise.
10343         (copyprop_hardreg_forward_1): Likewise.
10344         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10345         (build_def_use): Likewise.
10346         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10347         (deps_analyze_insn): Likewise.
10348         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10349         * sel-sched.c (count_occurrences_equiv): Likewise.
10350         * valtrack.c (dead_debug_insert_temp): Likewise.
10351
10352 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10353
10354         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10355         * dse.c (note_add_store): Likewise.
10356         * ira-lives.c (mark_hard_reg_dead): Likewise.
10357         * loop-invariant.c (mark_reg_store): Likewise.
10358         (mark_reg_death): Likewise.
10359         * postreload.c (reload_combine): Likewise.
10360         (reload_combine_note_store): Likewise.
10361         (reload_combine_note_use): Likewise.
10362         * recog.c (peep2_reg_dead_p): Likewise.
10363
10364 2015-05-19  Alan Modra  <amodra@gmail.com>
10365
10366         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10367         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10368         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10369         unused predicates.
10370         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10371         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10372         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10373         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10374
10375 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10376
10377         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10378         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10379         (join2_loadhi): Likewise.
10380         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10381         load-load and store-stores.
10382         * config/mips/mips.opt (mload-store-pairs): New option.
10383         (TARGET_LOAD_STORE_PAIRS): New macro.
10384         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10385         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10386         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10387
10388 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10389
10390         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10391         explicit swaps.
10392         * dojump.c (do_compare_rtx_and_jump): Likewise.
10393         * expmed.c (emit_store_flag_1): Likewise.
10394         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10395         * final.c (sprint_ul): Use std::reverse for reversing a string.
10396         * fold-const.c (extract_muldiv_1): Use std::swap.
10397         * genmodes.c (emit_mode_int_n): Likewise.
10398         * ifcvt.c (dead_or_predicable): Likewise.
10399         * ira-build.c (ira_merge_live_ranges): Likewise.
10400         (swap_allocno_copy_ends_if_necessary): Likewise.
10401         * ira.c (ira_setup_alts): Likewise.
10402         * loop-iv.c (iv_analyze_expr): Likewise.
10403         (implies_p): Likewise.
10404         (canon_condition): Likewise.
10405         * lra-constraints.c (swap_operands): Likewise.
10406         * lra-lives.c (lra_merge_live_ranges): Likewise.
10407         * omega.c (swap): Remove.
10408         (bswap): Remove.
10409         (omega_unprotect_1): Use std::swap.
10410         (omega_solve_geq): Likewise.
10411         * optabs.c (expand_binop_directly): Likewise.
10412         (expand_binop): Likewise.
10413         (emit_conditional_move): Likewise.
10414         (emit_conditional_add): Likewise.
10415         * postreload.c (reload_cse_simplify_operands): Likewise.
10416         * reg-stack.c (emit_swap_insn): Likewise.
10417         (swap_to_top): Likewise.
10418         (compare_for_stack_reg): Likewise.
10419         (subst_asm_stack_regs): Likewise.
10420         * reload.c (find_reloads): Likewise.
10421         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10422         * sel-sched.c (invoke_reorder_hooks): Likewise.
10423         (create_block_for_bookkeeping): Likewise.
10424         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10425         (lambda_matrix_right_hermite): Use std::swap.
10426         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10427         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10428         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10429         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10430         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10431         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10432         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10433         * tree-vrp.c (compare_ranges): Likewise.
10434         * var-tracking.c (add_with_sets): Likewise.
10435         (vt_find_locations): Likewise.
10436
10437 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10438
10439         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10440         pie executables.
10441         (FBSD_ENDFILE_SPEC): Likewise.
10442         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10443         config/freebsd-spec.h.
10444         (ENDFILE_SPEC): Likewise.
10445
10446 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10447             Richard Henderson  <rth@redhat.com>
10448
10449         PR target/57032
10450         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10451         Check for a memory location that is not a reference (using an AND)
10452         to an unaligned location here.
10453         * config/alpha/predicates.md (normal_memory_operand): Remove.
10454
10455 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10456
10457         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10458         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10459
10460 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10461
10462         * config/mips/mips.c (micromips_globals): New variable.
10463         (mips_set_compression_mode): Save and reinitialize target-dependent
10464         state for microMIPS.
10465
10466 2015-05-18  Martin Liska  <mliska@suse.cz>
10467
10468         * dbgcnt.def: Add new counter.
10469         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10470
10471 2015-05-18  Martin Liska  <mliska@suse.cz>
10472
10473         * dbgcnt.def: Sort counters.
10474         * opts.c (common_handle_option): Do not compile if
10475         -fdbg-cnt-list is enabled.
10476
10477 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10478
10479         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10480         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10481         address operator to va_list operand.
10482         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10483         unconditionally.
10484         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10485         operand.
10486         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10487         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10488         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10489
10490 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10491
10492         * tree-ssa-tail-merge.c: Fix whitespace.
10493
10494 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10495
10496         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10497         cortex-a17, and cortex-a17.cortex-a7.
10498
10499 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10500
10501         PR target/54236
10502         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10503
10504 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10505
10506         PR target/66174
10507         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10508         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10509         to a register for AVX512F modes.
10510
10511 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10512
10513         * toplev.c (emit_debug_global_declarations): Do not output debug info
10514         when doing slim LTO objects.
10515
10516 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10517
10518         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10519         odr_types_equivalent_p): Declare.
10520         (odr_type_p): Use gcc_checking_assert.
10521         (type_in_anonymous_namespace_p) Declare.
10522         (type_with_linkage_p): Declare.
10523         * common.opt (Wlto-type-mismatch): New warning.
10524         * ipa-devirt.c (compound_type_base): New function.
10525         (odr_or_derived_type_p): New function.
10526         (odr_types_equivalent_p): New function.
10527         (add_type_duplicate): Simplify.
10528         (type_with_linkage_p): Add hack to prevent false positives on C types
10529         (type_in_anonymous_namespace_p): Likewise.
10530         * tree.c (need_assembler_name_p): Use type_with_linkage.
10531         * tree.h (type_in_anonymous_namespace_p): Remove.
10532         * doc/invoke.texi (-Wlto-type-mismatch): Document
10533
10534 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10535
10536         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10537         (verify_type): Verify STRING_FLAG.
10538
10539 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10540
10541         PR fortran/44054
10542         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10543         with accessor function.
10544         * tree-diagnostic.c (diagnostic_report_current_function): Use
10545         diagnostic_location function.
10546         (maybe_unwind_expanded_macro_loc): Likewise.
10547         (virt_loc_aware_diagnostic_finalizer): Likewise.
10548         (default_tree_printer): Replace locus pointer with accessor function.
10549         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10550         (diagnostic_set_info_translated): Initialize second location.
10551         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10552         (diagnostic_show_locus): Handle two locations. Call
10553         diagnostic_print_caret_line.
10554         (diagnostic_print_caret_line): New.
10555         (default_diagnostic_starter): Use diagnostic_location function.
10556         (diagnostic_report_diagnostic): Use diagnostic_location function.
10557         (verbatim): Do not set text.locus.
10558         * diagnostic.h (struct diagnostic_info): Remove location field.
10559         (struct diagnostic_context): Make caret_chars an array of two.
10560         (diagnostic_location): New inline.
10561         (diagnostic_expand_location): Handle two locations.
10562         (diagnostic_same_line): New inline.
10563         (diagnostic_print_caret_line): Declare.
10564         (CARET_LINE_MARGIN): New constant.
10565         * pretty-print.c (pp_printf): Do not set text.locus.
10566         (pp_verbatim): Do not set text.locus.
10567         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10568         (struct text_info): Replace locus pointer with locations
10569         array. Add accessor functions.
10570
10571 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10572             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10573
10574         PR target/65768
10575         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10576         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10577          large constants in register instead of splitting them.
10578
10579 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10580
10581         PR target/66140
10582         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10583         replacements in memory addresses.
10584         (get_unaligned_address): Ditto.
10585
10586 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10587
10588         * config/ft32/*: New files for FT32 port.
10589         * doc/install.texi: Add FT32 information.
10590         * doc/invoke.texi: Add FT32 information.
10591         * doc/md.texi: Add FT32 information.
10592         * doc/contrib.texi: Self added.
10593
10594 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10595
10596         PR tree-optimization/64454
10597         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10598         (-1 - A -> ~A): Remove unnecessary condition.
10599
10600 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10601
10602         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10603         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10604         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10605
10606 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10607
10608         * ipa-chkp.h (chkp_wrap_function): New.
10609         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10610         (chkp_wrap_function_name): New.
10611         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10612         to get wrapper name.
10613         * lto-cgraph.c: Include ipa-chkp.h.
10614         (input_cgraph_1): Avoid alias chain for wrappers.
10615
10616 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10617
10618         PR middle-end/66134
10619         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10620         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10621
10622 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10623
10624         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10625         (AARCH64_FL_SLOWMUL): Delete.
10626         (AARCH64_FL_CRC): Redefine to 1<<3.
10627         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10628
10629 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10630
10631         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10632         casting.
10633
10634 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10635
10636         * config/alpha/alpha.md (extendqidi2): Use general_operand
10637         instead of some_operand for operand[1] predicate.
10638         (extendhidi2): Ditto.
10639         (cbranchdi4): Use general_operand instead of some_operand
10640         for operand[1] and operands[2] predicates.
10641         (cstoredi4): Ditto.
10642         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10643         (some_ni_operand): Ditto.
10644
10645 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10646
10647         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10648         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10649         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10650         low part of the constant using alpha_emit_set_const_1.
10651         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10652
10653 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10654
10655         * varasm.c (output_constant_pool_1): Pass down alignment from
10656         constant pool entry's descriptor to output_constant_pool_2.
10657         (output_object_block): Add comment prior to call to
10658         output_constant_pool_1.
10659
10660 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10661
10662         PR rtl-optimization/65862
10663         * target.def (ira_change_pseudo_allocno_class): New hook.
10664         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10665         value of the hook.
10666         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10667         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10668         hook.
10669         * ira-costs.c (find_costs_and_classes): Call the hook and change
10670         classes when it is necessary.
10671         * doc/tm.texi: Update.
10672
10673 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10674
10675         * config/i386/i386.md (sibcall_memory): Check that register with
10676         callee address is not also used as one of the arguments, instead
10677         of checking that it is not live after the sibcall.
10678         (sibcall_pop_memory): Ditto.
10679         (sibcall_value_memory): Ditto.
10680         (sibcall_value_pop_memory): Ditto.
10681
10682 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10683
10684         * generic-match-head.c (types_match): Handle non-types.
10685         * gimple-match-head.c (types_match): Likewise.
10686         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10687
10688 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10689
10690         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10691         (csneg3<mode>_insn): Enable expansion of pattern.
10692
10693 2015-05-14  Nick Clifton  <nickc@redhat.com>
10694
10695         * config/rl78/rl78.c (rl78_select_section): Select the correct
10696         default section based upon the category of the decl.
10697
10698 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10699
10700         PR rtl-optimization/30967
10701         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10702         destination mode for the cost of scc patterns.
10703
10704 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10705
10706         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10707         using SWIM248 mode iterator.
10708         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10709         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10710         for operand[2] constraint.
10711         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10712
10713 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10714
10715         PR middle-end/66133
10716         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10717         make sure it is never noreturn, even when the task body does not
10718         return.
10719         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10720         right before GIMPLE_OMP_RETURN.
10721         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10722         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10723         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10724
10725 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10726
10727         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
10728         * tree-ssa-math-opts.c: Include params.h
10729         (pow_synth_sqrt_info): New struct.
10730         (representable_as_half_series_p): New function.
10731         (get_fn_chain): Likewise.
10732         (print_nested_fn): Likewise.
10733         (dump_fractional_sqrt_sequence): Likewise.
10734         (dump_integer_part): Likewise.
10735         (expand_pow_as_sqrts): Likewise.
10736         (gimple_expand_builtin_pow): Use above to attempt to expand
10737         pow as series of square roots.  Removed now unused variables.
10738
10739 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10740
10741         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
10742         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
10743         Remove *p0 and *p1 arguments.  Rewrite function.
10744         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
10745         (alpha_split_const_mov): Update calls to alpha_extract_integer and
10746         alpha_emit_set_long_const.
10747         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
10748         (alpha_output_mi_thunk_osf): Ditto.
10749         * config/alpha/alpha.md (movti): Do not check operands[1]
10750         for CONST_DOUBLE.
10751
10752 2015-05-13  Richard Biener  <rguenther@suse.de>
10753
10754         PR tree-optimization/66129
10755         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
10756         commutative.
10757         (vect_schedule_slp_instance): Fix typo.
10758
10759 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
10760
10761         * common.opt (fdump-internal-locations): New option.
10762         * input.c: Include diagnostic-core.h.
10763         (get_end_location): New function.
10764         (write_digit): New function.
10765         (write_digit_row): New function.
10766         (dump_location_range): New function.
10767         (dump_labelled_location_range): New function.
10768         (dump_location_info): New function.
10769         * input.h (dump_location_info): New prototype.
10770         * toplev.c (compile_file): Handle flag_dump_locations.
10771
10772 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10773
10774         * gimple-expr.h (is_gimple_constant): Reorder.
10775         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
10776
10777 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10778
10779         * combine.c (simplify_set): When generating a CC set, if the
10780         source already is in the correct mode, do not wrap it in a
10781         compare.  Simplify the rest of that code.
10782
10783 2015-05-13  Richard Biener  <rguenther@suse.de>
10784
10785         PR tree-optimization/66123
10786         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
10787         a taken edge.
10788
10789 2015-05-13  Richard Biener  <rguenther@suse.de>
10790
10791         PR middle-end/66110
10792         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
10793         specially.
10794         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
10795
10796 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
10797
10798         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
10799         * aclocal.m4: Regenerated with automake-1.11.6.
10800
10801 2015-05-13  Tom de Vries  <tom@codesourcery.com>
10802
10803         PR tree-optimization/66010
10804         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
10805         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
10806         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
10807         and rval based on do_deref.
10808
10809 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10810
10811         PR target/65103
10812         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
10813         link time constants into adress expressions and therefore set
10814         their cost to 0.
10815
10816 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10817
10818         PR target/66112
10819         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
10820         Use SWI248 iterator instead of SWI.
10821         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
10822         Use eq_attr "alternative" "0" instead of match_test in
10823         length_immediate attribute computation.
10824         (*mulvhi4, *mulvhi4_1): New define_insns.
10825
10826         PR target/66112
10827         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
10828         SIGNED to get precision of non-negative value.
10829
10830 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10831
10832         PR target/66048
10833         * function.c (diddle_return_value_1): Process bounds first.
10834         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
10835         register.
10836
10837 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10838
10839         PR rtl-optimization/64616
10840         * loop-invariant.c (can_move_invariant_reg): New.
10841         (move_invariant_reg): Call above new function to decide whether
10842         instruction can just be moved, skipping creation of temporary
10843         register.
10844
10845 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10846
10847         PR target/pr66047.c
10848         * i386.c (ix86_function_sseregparm): Only return -1 if local function
10849         with implied regparm is called from -mno-sse function.
10850         (init_cumulative_args): Output error if ix86_function_sseregparm
10851         return -1 and SSE register would be needed.
10852         (function_arg_advance_32): Likewise.
10853         (function_arg_32): Likewise.
10854         * i386.h (ix86_args): Add decl field.
10855
10856 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10857
10858         PR ipa/65873
10859         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
10860         inlines across optimization boundary.
10861
10862 2015-05-12  Jason Merrill  <jason@redhat.com>
10863
10864         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
10865         string literal and macro name.
10866
10867 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
10868
10869         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
10870         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
10871         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
10872
10873 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10874
10875         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
10876         (-Wmisleading-indentation): New option.
10877         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
10878
10879 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
10880
10881         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
10882         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
10883         (alpha_extract_integer): Ditto.
10884         (alpha_legitimate_constant_p): Ditto.
10885         (alpha_split_tmode_pair): Ditto.
10886         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
10887         (alpha_expand_mov): Ditto.
10888         (print_operand): Remove handling of 'H' modifier.
10889         <case 'm'>: Remove CONST_DOUBLE handling.
10890         (summarize_insn): Handle CONST_WIDE_INT.
10891         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
10892         (anddi3): Ditto.
10893         (movti): Handle CONST_WIDE_INT.
10894         * config/alpha/constraints.md ('H'): Remove constraint definition.
10895         ('G'): Do not match MODE_FLOAT class.
10896         * config/alpha/predicates.md (const0_operand): Also match
10897         const_wide_int.
10898         (non_add_const_operand): Ditto.
10899         (non_zero_const_operand): Ditto.
10900         (some_operand): Ditto.
10901         (input_operand): Ditto.  Handle CONST_WIDE_INT.
10902         (and_operand): Do not match const_double.
10903         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
10904
10905 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
10906
10907         PR target/65697
10908         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
10909         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
10910         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10911         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
10912         is_mm_seq_cst, is_mm_sync): New accessor functions.
10913         * builtins.c (expand_builtin_sync_operation,
10914         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
10915         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
10916         (get_memmodel,  expand_builtin_atomic_compare_exchange,
10917         expand_builtin_atomic_load, expand_builtin_atomic_store,
10918         expand_builtin_atomic_clear): Use new accessor routines.
10919         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
10920         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
10921         (maybe_emit_sync_lock_test_and_set): Use new accessors and
10922         MEMMODEL_SYNC_ACQUIRE.
10923         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
10924         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
10925         expand_atomic_store): Use new accessors.
10926         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
10927         * tsan.c (instrument_builtin_call): Update check for memory model beyond
10928         final enum to use MEMMODEL_LAST.
10929         * c-family/c-common.c: Use new accessor for memmodel_base.
10930         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
10931         accessors.
10932         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
10933         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
10934         mem_thread_fence, *dmb): Likewise.
10935         * config/alpha/alpha.c (alpha_split_compare_and_swap,
10936         alpha_split_compare_and_swap_12): Likewise.
10937         * config/arm/arm.c (arm_expand_compare_and_swap,
10938         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
10939         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
10940         atomic_loaddi): Likewise.
10941         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
10942         Likewise.
10943         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
10944         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
10945         use new accessors.
10946         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
10947         atomic_store<mode>, atomic_compare_and_swap<mode>,
10948         atomic_exchange<mode>): Use new accessors.
10949         * config/mips/mips.c (mips_process_sync_loop): Likewise.
10950         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
10951         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
10952         rs6000_post_atomic_barrier): Add new cases.
10953         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
10954         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
10955         (atomic_load<mode>): Add new cases and use new accessors.
10956         (store_quadpti): Add new cases.
10957         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
10958         accessors.
10959         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
10960         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
10961         model, not 8.
10962
10963 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10964
10965         * ipa-devirt.c (type_with_linkage_p): New function.
10966         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
10967         type has linkage.
10968         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
10969         (can_be_name_hashed_p): Simplify.
10970         (hash_odr_name): Check that type has linkage before checking if it is
10971         anonymous.
10972         (types_same_for_odr): Likewise.
10973         (odr_name_hasher::equal): Likewise.
10974         (odr_subtypes_equivalent_p): Likewise.
10975         (warn_types_mismatch): Likewise.
10976         (get_odr_type): Likewise.
10977         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
10978         * ipa-utils.h (odr_type_p): Move offline.
10979         * tree.c (need_assembler_name_p): Fix handling of types
10980         without linkages.
10981         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
10982
10983 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10984
10985         * timevar.c (timevar_enable): Delete in favor of...
10986         (g_timer): New global.
10987         (struct timevar_def): Move to timevar.h inside class timer.
10988         (struct timevar_stack_def): Likewise.
10989         (timevars): Delete global in favor of field "m_timevars" within
10990         class timer in timevar.h
10991         (stack): Likewise, in favor of field "m_stack".
10992         (unused_stack_instances): Likewise, in favor of field
10993         "m_unused_stack_instances".
10994         (start_time): Likewise, in favor of field "m_start_time".
10995         (get_time): Eliminate check for timevar_enable.
10996         (timer::timer): New function, built from part of timevar_init.
10997         (timevar_init): Rewrite idempotency test from using
10998         "timevar_enable" bool to using dynamic allocation of "g_timer".
10999         Move rest of implementation into timer's constructor.
11000         (timevar_push_1): Rename to...
11001         (timer::push): ...this, adding "m_" prefixes to variables that
11002         are now fields of timer.
11003         (timevar_pop_1): Likewise, rename to...
11004         (timer::pop): ...this, and add "m_" prefixes.
11005         (timevar_start): Replace test for "timevar_enable" with one for
11006         "g_timer", and move bulk of implementation to...
11007         (timer::start): ...here, adding "m_" prefixes.
11008         (timevar_stop): Likewise, from here...
11009         (timer::stop): ...to here.
11010         (timevar_cond_start): Likewise, from here...
11011         (timer::cond_start): ...to here.
11012         (timevar_cond_stop): Likewise, from here...
11013         (timer::cond_stop): ...to here.
11014         (validate_phases): Rename to...
11015         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
11016         locals "total" and "tv" const.
11017         (timevar_print): Rename to...
11018         (timer::print): ...this, and add "m_" prefixes.  Make locals
11019         "total" and "tv" const.  Eliminate test for timevar_enable.
11020         * timevar.h (timevar_enable): Eliminate.
11021         (g_timer): New declaration.
11022         (timevar_push_1): Eliminate.
11023         (timevar_pop_1): Eliminate.
11024         (timevar_print): Eliminate.
11025         (class timer): New class.
11026         (timevar_push): Rewrite to use g_timer.
11027         (timevar_pop): Likewise.
11028         * toplev.c (toplev::~toplev): Likewise.
11029
11030 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
11031
11032         * arm-protos.h (arm_sched_autopref): Delete.
11033         (tune_params): Re-organize, use enums for flag values.
11034         (FUSE_OPS): New macro.
11035         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
11036         (ARM_PREFETCH_BENEFICIAL): Likewise.
11037         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
11038         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11039         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
11040         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
11041         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
11042         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
11043         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
11044         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
11045         format.
11046         (arm_option_override, thumb2_reorg, arm_print_tune_info)
11047         (aarch_macro_fusion_pair_p): Update uses of current_tune.
11048         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
11049
11050 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
11051
11052         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
11053         "break".
11054
11055 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
11056             Sandra Loosemore <sandra@codesourcery.com>
11057
11058         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
11059         value.
11060         (REG_CLASS_NAMES): Add "IJMP_REGS".
11061         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
11062         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
11063         use new "c" register constraint.
11064         * config/nios2/constraint.md (c): New register constraint
11065         corresponding to IJMP_REGS.
11066
11067 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11068
11069         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
11070         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
11071         define_splits): Delete, revamp, transmogrify into ...
11072         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11073         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11074         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11075         New.
11076
11077 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11078
11079         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11080         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11081
11082 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11083
11084         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11085         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11086         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11087         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11088         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11089         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11090         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11091         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11092         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11093         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11094         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11095         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11096         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11097         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11098         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11099         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11100         and 30 corresponding splitters): Delete.
11101
11102 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11103
11104         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11105         zero_extract.
11106
11107 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11108
11109         * combine.c (recog_for_combine_1): New function, factored out
11110         from recog_for_combine.
11111         (change_zero_ext): New function.
11112         (recog_for_combine): If recog fails, try again with the pattern
11113         modified by change_zero_ext; if that still fails, restore the
11114         pattern.
11115
11116 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11117
11118         * combine.c (get_undo_marker): New function.
11119         (undo_to_marker): New function, largely factored out from ...
11120         (undo_all): ... this.  Adjust.
11121
11122 2015-05-12  Richard Biener  <rguenther@suse.de>
11123
11124         PR tree-optimization/66101
11125         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11126         fixup if we turn a loop exit edge to a fallthru edge.
11127
11128 2015-05-12  Richard Biener  <rguenther@suse.de>
11129
11130         PR tree-optimization/37021
11131         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11132         (SLP_TREE_TWO_OPERATORS): New define.
11133         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11134         SLP_TREE_TWO_OPERATORS.
11135         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11136         SLP node.
11137         (vect_build_slp_tree): Adjust.
11138         (vect_analyze_slp_cost_1): Likewise.
11139         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11140         emitting two vector stmts and mixing the results.
11141
11142 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11143
11144         * call.c (print_z_candidates): Remove dead code.
11145
11146 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11147
11148         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11149         and zEC12_simple_fp.
11150         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11151         to 1.
11152
11153 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11154
11155         PR tree-optimization/66010
11156         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11157         ifn_va_arg.
11158         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11159         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11160         va_lists are passed, and remove corresponding handling.
11161         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11162         do_deref argument to ifn_va_arg.
11163         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11164         ifn_va_arg.
11165
11166 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11167
11168         PR target/65955
11169         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11170         REG before taking its REGNO.
11171
11172 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11173
11174         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11175         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11176         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11177         present to get more accurate information about the number of sign bit
11178         copies and non zero bits.
11179
11180 2015-05-12  Richard Biener  <rguenther@suse.de>
11181
11182         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11183         do not allow unrolling.
11184
11185 2015-05-11  Richard Henderson  <rth@redhat.com>
11186
11187         * config/i386/i386-modes.def (CCP): New.
11188         * config/i386/i386.c (put_condition_code): Handle it.
11189         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11190
11191 2015-05-11  Richard Henderson  <rth@redhat.com>
11192
11193         * target.def (md_asm_clobbers): Replace with...
11194         (md_asm_adjust): this.
11195         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11196         (TARGET_MD_ASM_ADJUST): New.
11197         * tm.texi: Rebuild.
11198         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11199         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11200         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11201
11202         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11203         constraints instead of lists of outputs and inputs.
11204         (expand_asm_stmt): Save and restore input_location around the
11205         body of the function.  Move asm data into vectors instead of
11206         building tree lists.  Generate cleanup sequences as needed,
11207         rather than waiting til the end.  Use new md_asm_adjust hook.
11208
11209         * config/vxworks.c: Include vec.h before target.h.
11210         * gimple.c: Likewise.
11211         * incpath.c: Likewise.
11212         * mode-switching.c: Likewise.
11213
11214         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11215         (cris_md_asm_adjust): this.
11216         (TARGET_MD_ASM_CLOBBERS): Remove.
11217         (TARGET_MD_ASM_ADJUST): New.
11218         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11219         (ix86_md_asm_adjust): this.
11220         (TARGET_MD_ASM_CLOBBERS): Remove.
11221         (TARGET_MD_ASM_ADJUST): New.
11222         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11223         (mn10300_md_asm_adjust): this.
11224         (TARGET_MD_ASM_CLOBBERS): Remove.
11225         (TARGET_MD_ASM_ADJUST): New.
11226         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11227         (rs6000_md_asm_adjust): this.
11228         (TARGET_MD_ASM_CLOBBERS): Remove.
11229         (TARGET_MD_ASM_ADJUST): New.
11230         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11231         (visium_md_asm_adjust): this.
11232         (TARGET_MD_ASM_CLOBBERS): Remove.
11233         (TARGET_MD_ASM_ADJUST): New.
11234
11235 2015-05-11  Richard Henderson  <rth@redhat.com>
11236
11237         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11238         if noutputs is zero.
11239         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11240
11241         * cfgexpand.c (expand_asm_operands): Merge into...
11242         (expand_asm_stmt): ... here.
11243
11244         * cfgexpand.c (expand_asm_operands): Don't call
11245         resolve_asm_operand_names.
11246         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11247
11248 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11249
11250         * dwarf2out.c (gen_member_die): Sanity check that we access
11251         TYPE_MAIN_VARIANT for TYPE_METHODS.
11252         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11253         checking TYPE_METHODS.
11254         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11255         if non-null.
11256         (build_distinct_type_copy): Clear TYPE_METHODS.
11257         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11258         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11259         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11260
11261 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11262
11263         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11264         (emit_pattern_before_setloc): Likewise.
11265
11266 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11267
11268         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11269         for define_peephole2s.
11270         (get_peephole2_pattern): New function.
11271         (main): Use it.  Call validate_pattern.
11272
11273 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11274
11275         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11276         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11277         (Last callee saved reg is different for AVR_TINY architecture)
11278
11279 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11280
11281         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11282         when looking for memory references.
11283
11284 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11285
11286         PR target/65753
11287         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11288         via function pointers.
11289
11290 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11291
11292         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11293         indirect call by forcing address into a pseudo with -fno-plt.
11294         * common.opt (flag_plt): New option.
11295         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11296         ([-fno-plt]): Document.
11297
11298 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11299
11300         PR bootstrap/66105
11301         * config/rs6000/option-defaults.h: Add space between string literal
11302         and macro name.
11303
11304 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11305
11306         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11307         accross ARM targets.
11308
11309 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11310
11311         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11312         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11313
11314 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11315
11316         PR rtl-optimization/66076
11317         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11318         Don't grow the heap array if it is already big enough from a
11319         previous iteration.
11320
11321 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11322
11323         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11324         (is_called_in_ARM_mode): Remove.
11325         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11326         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11327         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11328          arm_declare_function_name.
11329
11330 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11331
11332         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11333         (arm_option_params_internal); New function.
11334         (arm_option_check_internal): New function.
11335         (arm_option_override_internal): New function.
11336         (thumb_code, thumb1_code): Remove.
11337         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11338         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11339         (thumb_code, thumb1_code): Remove.
11340         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11341
11342 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11343
11344         * config/alpha/alpha.c (alpha_emit_set_const_1)
11345         (alpha_emit_set_long_const, alpha_extract_integer)
11346         (alpha_legitimate_constant_p, alpha_split_const_mov)
11347         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11348         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11349         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11350         HOST_WIDE_INT_1U.
11351         * config/alpha/predicates.md (mode_mask_operand): Do not match
11352         const_double RTX.
11353         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11354         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11355         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11356         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11357         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11358
11359 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11360
11361         PR target/65780
11362         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11363         default_binds_local_p_2.
11364         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11365         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11366
11367 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11368
11369         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11370
11371 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11372
11373         Patch by Richard Biener
11374         * coverage.c (coverage_obj_init): Delay building of type variant
11375         until the type is finished.
11376
11377 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11378
11379         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11380         mismatch between C and C++ type; compoare correctly ARG_TYPES
11381         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11382         (odr_types_equivalent_p): Fix wording of warning about attributes;
11383         it is OK to match prototype and non-prototype.
11384
11385 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11386
11387         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11388         TYPE_ARG_TYPES list.
11389         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11390         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11391
11392 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11393
11394         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11395         * tree.h (is_lang_specific): Constify.
11396
11397 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11398
11399         PR tree-optimization/64454
11400         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11401         Rewrite.
11402
11403 2015-05-08  Jason Merrill  <jason@redhat.com>
11404
11405         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11406         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11407         config/darwin.h, config/darwin9.h, config/elfos.h,
11408         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11409         config/microblaze/microblaze.h, config/mips/mips.h,
11410         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11411         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11412         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11413         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11414         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11415         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11416         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11417         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11418         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11419         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11420         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11421         between string literal and macro name.
11422
11423 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11424
11425         * jump.c: Change argument types to rtx_insn *.
11426         * rtl.h: Adjust.
11427
11428 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11429
11430         * lra-constraints.c: Change argument type to rtx_insn *.
11431
11432 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11433
11434         * df-problems.c: Change argument type to rtx_insn *.
11435
11436 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11437
11438         * combine.c: Change argument type to rtx_insn *.
11439
11440 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11441
11442         * rtl.h: Adjust.
11443         * rtlanal.c: Change argument type to rtx_insn *.
11444
11445 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11446
11447         * sched-deps.c: Change argument types to rtx_insn *.
11448         * sched-int.h: Adjust.
11449
11450 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11451
11452         * dwarf2cfi.c: Change argument type to rtx_insn *.
11453
11454 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11455
11456         * ira.c (decrease_live_ranges_number): Changetype of local
11457         variable to rtx_insn *.
11458         * recog.c: Change argument types to rtx_insn *.
11459         * recog.h: Adjust.
11460
11461 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11462
11463         * reorg.c: Change argument types to rtx_insn *.
11464
11465 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11466
11467         * ira-color.c: Change argument types to rtx_insn *.
11468         * lra-eliminations.c: Likewise.
11469         * ira.h: Adjust.
11470
11471 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11472
11473         * gcse.c: Change argument types to rtx_insn *.
11474
11475 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11476
11477         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11478
11479 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11480
11481         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11482         rtx_insn *.
11483         * rtl.h: Adjust.
11484
11485 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11486
11487         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11488         * rtl.h: Adjust.
11489
11490 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11491
11492         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11493         * rtl.h: Adjust.
11494
11495 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11496
11497         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11498         * rtl.h: Adjust.
11499
11500 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11501
11502         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11503         * rtl.h: Adjust.
11504
11505 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11506
11507         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11508         to rtx_insn *.
11509         * rtl.h: Adjust.
11510
11511 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11512
11513         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11514         to rtx_insn *.
11515         * rtl.h: Likewise.
11516
11517 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11518
11519         * except.c (can_nonlocal_goto): Change type of argument to
11520         rtx_insn *.
11521         * rtl.h: Adjust.
11522
11523 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11524
11525         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11526         * rtl.h: Adjust.
11527
11528 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11529
11530         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11531         * cfgrtl.c (can_delete_label_p): Adjust.
11532         * rtl.h: likewise.
11533
11534 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11535
11536         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11537
11538 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11539
11540         * except.c (make_reg_eh_region_note): Change argument to
11541         rtx_insn *.
11542         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11543         * except.h: Adjust.
11544
11545 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11546
11547         * mode-switching.c (commit_mode_sets): Change type of local
11548         variable from rtx to rtx_insn *.
11549
11550 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11551
11552         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11553         Add ^ to grep command.
11554         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11555         arg to last gimple_simplify declaration.  Add missing gimple_build
11556         declaration for built-in function case with four tree args.
11557
11558 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11559             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11560
11561         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11562         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11563         (GNU_USER_DYNAMIC_LINKERN32): Update.
11564
11565 2015-05-08  Richard Biener  <rguenther@suse.de>
11566
11567         PR tree-optimization/66036
11568         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11569         Handle strided group loads.
11570         (vect_verify_datarefs_alignment): Likewise.
11571         (vect_enhance_data_refs_alignment): Likewise.
11572         (vect_analyze_group_access): Likewise.
11573         (vect_analyze_data_ref_access): Likewise.
11574         (vect_analyze_data_ref_accesses): Likewise.
11575         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11576         (vectorizable_load): Likewise.
11577
11578 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11579
11580         * config/rs6000/rs6000.md: Require operand inequality in one
11581         of the peepholes.
11582
11583 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11584             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11585
11586         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11587         from (set ...).
11588         * config/rx/rx.md (movdi, movdf): Likewise.
11589         Likewise for define_peephole2s.
11590
11591 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11592
11593         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11594         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11595         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11596         vtst_u64): Rewrite using gcc vector extensions.
11597
11598 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11599
11600         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11601         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11602
11603 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11604
11605         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11606
11607 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11608
11609         * config/glibc-stdint.h (OPTION_MUSL): Define.
11610         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11611         Change the definition based on OPTION_MUSL for 64 bit targets.
11612         * config/linux.h (OPTION_MUSL): Redefine.
11613         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11614         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11615         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11616
11617 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11618             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11619
11620         * config.gcc (LIBC_MUSL): New tm_defines macro.
11621         * config/linux.h (OPTION_MUSL): Define.
11622         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11623         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11624         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11625         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11626         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11627         * config/linux.opt (mmusl): New option.
11628         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11629         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11630         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11631         * configure: Regenerate.
11632
11633 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11634             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11635
11636         PR target/48904
11637         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11638         * config/i386/knetbsd-gnu64.h: New file.
11639
11640 2015-05-08  Marek Polacek  <polacek@redhat.com>
11641
11642         PR c/64918
11643         * doc/invoke.texi: Document -Woverride-init-side-effects.
11644
11645 2015-05-07  Marek Polacek  <polacek@redhat.com>
11646
11647         PR c/65179
11648         * doc/invoke.texi: Document -Wshift-negative-value.
11649
11650 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11651
11652         * gcov-tool.c (do_merge): Refactore to remove int ret.
11653         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11654         !type == FUNC to type != FUNC.
11655         * reload.h (struct target_reload): Changee to type of
11656         x_spill_indirect_levels from bool to unsigned char.
11657
11658 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11659
11660         * rtl.h (always_void_p): New function.
11661         * gengenrtl.c (always_void_p): Likewise.
11662         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11663         with code foo are always VOIDmode.
11664         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11665         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11666         compare-elim.c, config/aarch64/aarch64.c,
11667         config/aarch64/aarch64.md, config/alpha/alpha.c,
11668         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11669         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11670         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11671         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11672         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11673         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11674         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11675         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11676         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11677         config/ia64/vect.md, config/iq2000/iq2000.c,
11678         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11679         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11680         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11681         config/mep/mep.c, config/microblaze/microblaze.c,
11682         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11683         config/mn10300/mn10300.c, config/msp430/msp430.c,
11684         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11685         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11686         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11687         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11688         config/rs6000/rs6000.md, config/rs6000/vector.md,
11689         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11690         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11691         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11692         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11693         config/spu/spu.md, config/stormy16/stormy16.c,
11694         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11695         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11696         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11697         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11698         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11699         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11700         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11701         var-tracking.c: Update calls accordingly.
11702
11703 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11704
11705         PR middle-end/192
11706         PR middle-end/54303
11707         * varasm.c (function_mergeable_rodata_prefix): New function.
11708         (mergeable_string_section): Use it.
11709         (mergeable_constant_section): Use it.
11710
11711 2015-05-07  Jeff Law  <law@redhat.com>
11712
11713         PR target/39726
11714         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11715         simplifier to narrow arithmetic.
11716         * generic-match-head.c: (types_match, single_use): New functions.
11717         * gimple-match-head.c: (types_match, single_use): New functions.
11718
11719 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11720
11721         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11722         rtx type.
11723
11724 2015-05-07  Richard Biener  <rguenther@suse.de>
11725
11726         PR tree-optimization/66002
11727         * passes.def: Schedule another pass_merge_phi after ifcombine, right
11728         before phiopt.
11729
11730 2015-05-07  Marek Polacek  <polacek@redhat.com>
11731             Martin Uecker  <uecker@eecs.berkeley.edu>
11732
11733         * doc/invoke.texi: Document -fsanitize=bounds-strict.
11734         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
11735         into SANITIZE_NONDEFAULT.
11736         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
11737
11738 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
11739
11740         PR target/66015
11741         * config/alpha/alpha.c (alpha_override_options_after_change): New.
11742         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
11743         (alpha_override_options): Move align_loops, align_jumps and
11744         align_functions handling into alpha_override_options_after_change.
11745
11746 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
11747             Chris Jones  <chrisj@nvidia.com>
11748             Joshua Conner  <jconner@nvidia.com>
11749
11750         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
11751         linking of crtfastmath.o.
11752         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
11753
11754 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
11755
11756         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
11757         (cstore<mode>4_unsigned_imm): New expander.
11758         (cstore<mode>4): Remove empty constraint strings.  Use the new
11759         expanders.
11760
11761 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
11762
11763         PR target/64208
11764         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
11765         alternatives.
11766
11767 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11768
11769         * config/aarch64/geniterators.sh: Use standard BRE in sed.
11770
11771 2015-05-06  Alan Modra  <amodra@gmail.com>
11772
11773         PR target/66033
11774         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
11775         (UNSPEC_NOP): Define.
11776         (reload_vsx_from_gpr<mode>): Add missing DONE.
11777         (reload_gpr_from_vsx<mode>): Likewise.
11778         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11779         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
11780
11781 2015-05-06  Christian Bruel  <christian.bruel@st.com>
11782
11783         PR target/66015
11784         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
11785         align_jumps, align_functions into aarch64_override_options_after_change.
11786
11787 2015-05-06  Richard Biener  <rguenther@suse.de>
11788
11789         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
11790         vect_transform_slp_perm_load to check if we support a permutation
11791         for basic-block vectorization.
11792
11793 2015-05-06  Nick Clifton  <nickc@redhat.com>
11794
11795         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
11796         used, even if it is not being used as a frame pointer.
11797
11798 2015-05-05  Jason Merrill  <jason@redhat.com>
11799
11800         * dwarf2out.c (gen_member_die): Don't emit anything for an
11801         anonymous class constructor.
11802
11803 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
11804
11805         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
11806         that it reflects the block structure.
11807         (afdo_propagate_edge): Likewise.
11808         (afdo_calculate_branch_prob): Likewise.
11809         (afdo_annotate_cfg): Likewise.
11810         * cfgcleanup.c (equal_different_set_p): Likewise.
11811         (try_crossjump_to_edge): Likewise.
11812         * cgraph.c (cgraph_node::verify_node): Likewise.
11813         * cgraphunit.c (expand_all_functions): Likewise.
11814         * config/i386/i386.c (ix86_expand_copysign): Likewise.
11815         (exact_dependency_1): Likewise.
11816         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
11817         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
11818         * gensupport.c (process_define_subst): Likewise.
11819         * lto-wrapper.c (merge_and_complain): Likewise.
11820         * tree-if-conv.c (if_convertible_bb_p): Likewise.
11821         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
11822         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
11823         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11824         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11825         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11826         * tree-vect-stmts.c (vectorizable_shift): Likewise.
11827         * tree-vrp.c (vrp_finalize): Likewise.
11828         * tree.c (variably_modified_type_p): Likewise.
11829
11830 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
11831
11832         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
11833         on darwin12 and later.
11834         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
11835         file to pass -rdynamic on darwin12 and later.
11836         * config/darwin.opt (rdynamic): Add.
11837
11838 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11839
11840         * doc/extend.texi (C Extensions): Update menu for moved Variable
11841         Attributes and Type Attributes sections.
11842
11843 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11844
11845         PR target/65990
11846         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
11847         if rep_8byte stringop strategy was specified for 32-bit target.
11848
11849 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
11850
11851         PR target/65915
11852         * config/i386/i386.md (vector convert to float spltiter): Check for
11853         xmm16+, when splitting scalar float conversion.
11854         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
11855
11856 2015-05-05  Nick Clifton  <nickc@redhat.com>
11857
11858         * config/msp430/msp430-opts.h (enum msp430_regions): New.
11859         * config/msp430/msp430.c (msp430_override_options): Complain if
11860         -mcode-region or -mdata-region is used on a non MSP430X.
11861         (msp430_section_attr): New function.  Checks lower, upper and
11862         either attributes.
11863         (msp430_attribute_table): Add lower, upper and either.
11864         (gen_prefix): New function.  Generates a prefix for a section
11865         name.
11866         (msp430_select_section): New function - handles the choice of
11867         section for an object.  Takes into account memory region
11868         attributes and options.
11869         (msp430_function_section): Use gen_prefix.
11870         (TARGET_SECTION_TYPE_FLAGS): Define.
11871         (msp430_section_type_flags): New function.
11872         (TARGET_ASM_UNIQUE_SECTION): Define.
11873         (msp430_unique_section): New function.
11874         (msp430_output_aligned_decl_common): New function.
11875         (msp430_do_not_relax_short_jumps): New function.
11876         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
11877         Define.
11878         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11879         * config/msp430/msp430-protos.h
11880         (msp430_do_not_relax_short_jumps): New prototype.
11881         (msp430_output_aligned_decl_common): New prototype.
11882         * config/msp430/msp430.md (length): New attribute.
11883         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
11884         then use a long code sequence for short jumps.
11885         * config/msp430/msp430.opt (mcode-region): New.
11886         (mdata-region): New.
11887         * doc/invoke.texi: Document new options.
11888         * doc/extend.texi: Document new attributes.
11889
11890 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11891
11892         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
11893         (tune_params): Add field branch_costs.
11894         (aarch64_branch_cost): Declare.
11895         * gcc/config/aarch64.c (generic_branch_cost): New.
11896         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
11897         (cortexa53_tunings): Likewise.
11898         (cortexa57_tunings): Likewise.
11899         (thunderx_tunings): Likewise.
11900         (xgene1_tunings): Likewise.
11901         (aarch64_branch_cost): Define.
11902         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
11903
11904 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11905
11906         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
11907         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
11908         * config/i386/i386.md: Ditto.
11909         * config/i386/winnt.c: Ditto.
11910
11911 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11912
11913         * doc/extend.texi (__atomic Builtins): Move implementation details
11914         to the end of the description, rewrite opening paragraphs, state
11915         difference with __sync builtins, state C11/C++11 assumptions,
11916         weaken itemized descriptions, add explanation of memory model
11917         behaviour, expand description of compare-exchange, simplify text.
11918
11919 2015-05-05  Renlin Li  <renlin.li@arm.com>
11920
11921         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
11922
11923 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
11924
11925         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
11926         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11927         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
11928         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11929         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
11930         * configure: Regenerate.
11931         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
11932         * doc/install.texi (aarch64*-*-*): Document new
11933         --enable-fix-cortex-a53-843419 option.
11934         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
11935         and -mno-fix-cortex-a53-843419 options.
11936
11937 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11938
11939         PR target/65871
11940         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
11941
11942 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
11943
11944         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
11945         fix overactive TYPE_MIN_VALUE check and add FIXME for type
11946         compatibility problems.
11947
11948 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11949
11950         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
11951         constraints.
11952         (cbranchsi4_reg): New.
11953         * config/microblaze/microblaze.c
11954         (microblaze_expand_conditional_branch_reg): New.
11955         * config/microblaze/microblaze-protos.h
11956         (microblaze_expand_conditional_branch_reg): New prototype.
11957
11958 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11959
11960         * config/microblaze/microblaze.md (peephole2): New.
11961
11962 2015-05-04  Jeff Law  <law@redhat.com>
11963
11964         Revert:
11965         2015-05-04  Jeff Law  <law@redhat.com>
11966
11967         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11968         simplifier to narrow arithmetic.
11969         * generic-match-head.c: (types_match, single_use): New functions.
11970         * gimple-match-head.c: (types_match, single_use): New functions.
11971
11972 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11973
11974         PR target/65987
11975         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
11976         (split_branches): Likewise.
11977
11978 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
11979
11980         * common.opt (fdelete-null-pointer-checks): Init to -1.
11981         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
11982         override flag_delete_null_pointer_checks default.
11983         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
11984         behavior re address zero.  Better document target-specific behavior.
11985         (-fisolate-errneous-paths-dereference): Mention relationship to
11986         -fdelete-null-pointer-checks.
11987
11988 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11989
11990         PR tree-optimization/65984
11991         * ubsan.c: Include tree-cfg.h.
11992         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
11993         stmt_could_throw_p test, rename can_throw variable to ends_bb.
11994
11995 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11996
11997         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
11998         to CONST_DOUBLE_P predicate.
11999         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
12000         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
12001         allow only operands that satisfy standard_sse_constant_p predicate.
12002         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
12003         to CONST_DOUBLE_P predicate.
12004
12005 2015-05-04  Jeff Law  <law@redhat.com>
12006
12007         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12008         simplifier to narrow arithmetic.
12009         * generic-match-head.c: (types_match, single_use): New functions.
12010         * gimple-match-head.c: (types_match, single_use): New functions.
12011
12012 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
12013
12014         * config/arm/arm.c: Restore bootstrap.
12015
12016 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12017
12018         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
12019         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
12020         as CONST_WIDE_INT, not CONST_DOUBLE.
12021         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
12022         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
12023         (ix86_find_base_term): Do not check for CONST_DOUBLE.
12024         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
12025         (ix86_build_signbit_mask): Rewrite using wide ints.
12026         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
12027         (ix86_rtx_costs): Handle CONST_WIDE_INT.
12028         (find_constant): Ditto.
12029         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
12030         using gen_int_mode.
12031         * config/i386/predicates.md (x86_64_immediate_operand)
12032         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12033         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
12034         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12035         (const0_operand): Also match const_wide_int.
12036         (constm1_operand): Ditto.
12037         (const1_operand): Ditto.
12038
12039 2015-05-04  Richard Biener  <rguenther@suse.de>
12040
12041         PR tree-optimization/65965
12042         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
12043         store groups at gaps.
12044
12045 2015-05-04  Richard Biener  <rguenther@suse.de>
12046
12047         PR tree-optimization/65935
12048         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
12049         then make sure to apply that swapping to the IL.
12050
12051 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12052
12053         * Makefile.in (PATCHLEVEL_c): New variable.
12054         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
12055         expand the same way as if DEVPHASE_c was non-empty.
12056
12057 2015-05-04  Kai Tietz  <ktietz@redhat.com>
12058
12059         PR target/65559
12060         * lto-wrapper.c (run_gcc): Open filename
12061         in binary-mode.
12062
12063 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
12064
12065         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
12066         sections up in file, to immediately after the Function Attributes
12067         section.
12068
12069 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
12070
12071         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
12072
12073 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12074
12075         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
12076         (insert_partition_copy_on_edge): Adjust.
12077         (insert_rtx_to_part_on_edge): Likewise.
12078         (insert_part_to_rtx_on_edge): Likewise.
12079
12080 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12081
12082         * function.c (set_return_jump_label): Change type of argument to
12083         rtx_insn *.
12084         * function.h (set_return_jump_label): Adjust.
12085
12086 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12087
12088         * reload.h (struct reg_equivs_t): Change type of init to
12089         rtx_insn *.
12090         * ira.c (fix_reg_equiv_init): Adjust.
12091         * reload1.c (eliminate_regs_1): Likewise.
12092         (init_eliminable_invariants): Likewise.
12093
12094 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12095
12096         * cselib.c (fp_setter_insn): Take a rtx_insn *.
12097         * cselib.h (fp_setter_insn): Adjust.
12098
12099 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12100
12101         * recog.c (struct validate_replace_src_data): Change type of
12102         insn field to rtx_insn *.
12103         (validate_replace_src_group): Change type of argument to rtx_insn *.
12104         * recog.h (validate_replace_src_group): Adjust.
12105
12106 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12107
12108         * haifa-sched.c: Change the type of some variables to rtx_insn *.
12109         * sched-deps.c: Likewise.
12110         * sched-int.h: Likewise.
12111         * sched-rgn.c: Likewise.
12112         * sel-sched.c: Likewise.
12113
12114 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12115
12116         to rtx_insn *.
12117         * config/i386/i386.c: Change the type of some arguments to
12118         rtx_insn *.
12119         * config/arm/arm.c: Likewise.
12120
12121 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12122
12123         * lra-constraints.c: Change type of some arguments to rtx_insn *.
12124
12125 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12126
12127         * regcprop.c (kill_autoinc_value): Change type of argument to
12128         rtx_insn *.
12129
12130 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12131
12132         * genrecog.c (print_subroutine): Adjust.
12133         * recog.c (get_bool_attr_mask_uncached): Likewise.
12134         * recog.h (struct recog_data_d): Change the type of insn to
12135         rtx_insn *.
12136
12137 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12138
12139         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12140
12141 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12142
12143         * df-problems.c (df_set_note): Change type of argument to
12144         rtx_insn *.
12145
12146 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12147
12148         * builtins.c (expand_builtin_trap): Change type of local
12149         variable to rtx_insn *.
12150         (add_sched_insns_for_speculation): Likewise.
12151         (ix86_emit_save_regs): Likewise.
12152         (get_scratch_register_on_entry): Likewise.
12153         (ix86_emit_restore_reg_using_pop): Likewise.
12154         (ix86_emit_leave): Likewise.
12155         (ix86_emit_restore_regs_using_mov): Likewise.
12156         (ix86_expand_epilogue): Likewise.
12157         Likewise.
12158         (rl78_alloc_physical_registers_umul): Likewise.
12159         * cselib.c (discard_useless_locs): Likewise.
12160         (cselib_invalidate_regno): Likewise.
12161         (cselib_invalidate_mem): Likewise.
12162         * function.c (expand_function_start): Likewise.
12163         (emit_use_return_register_into_block): Likewise.
12164         * gcse.c: Likewise.
12165         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12166         * ifcvt.c (noce_get_alt_condition): Likewise.
12167         * loop-doloop.c (doloop_condition_get): Likewise.
12168         * lra-constraints.c (inherit_in_ebb): Likewise.
12169         * modulo-sched.c (sms_schedule_by_order): Likewise.
12170         * recog.c (next_insn_tests_no_inequality): Likewise.
12171         * reorg.c (emit_delay_sequence): Likewise.
12172         (update_reg_dead_notes): Likewise.
12173         (fix_reg_dead_note): Likewise.
12174         (fill_slots_from_thread): Likewise.
12175         (delete_computation): Likewise.
12176
12177 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12178
12179         * doc/extend.texi (Variable Attributes): Add menu and proper
12180         @nodes to subsections.  Move Microsoft Windows attributes to
12181         their own subsection.
12182         (Type Attributes): Reorganize introduction to remove duplicate
12183         list of attributes.  Add menu and proper @nodes to subsections.
12184         Alphabetize the main table of common attributes.
12185
12186 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12187
12188         * match.pd: New simplification patterns.
12189         (x + (x & 1))  -> ((x + 1) & ~1)
12190         (x & ~(x & y)) -> ((x & ~y))
12191         (x | ~(x | y)) -> ((x | ~y))
12192
12193 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12194
12195         * target.def (attribute_table): Mention that struct attribute_spec
12196         is defined in tree-core.h rather than tree.h
12197         * doc/tm.texi: Regenerate.
12198
12199 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12200
12201         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12202         accordingly.
12203
12204 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12205
12206         PR translation/65959
12207         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12208
12209 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12210
12211         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12212         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12213         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12214         Return value depending on target.
12215         (generic_tunings): Initialize new target settings.
12216         (cortexa53_tunings): Likewise.
12217         (cortexa57_tunings): Likewise.
12218         (thunderx_tunings): Likewise.
12219         (xgene1_tunings): Likewise.
12220
12221 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12222
12223         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12224         Make Cortex-A53 shift costs more accurate.
12225
12226 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12227
12228         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12229         UNSIGNED_FLOAT.
12230
12231 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12232
12233         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12234         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12235
12236 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12237
12238         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12239         Add cost of op0 in the compare-with-fpzero case.
12240
12241 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12242
12243         * builtins.c (fold_builtin_1): Remove spurious second
12244         semicolon.
12245         * cgraph.h (symtab_node::get_availability): Likewise.
12246         * opts.c (common_handle_option): Remove spurious second semicolon.
12247         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12248         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12249
12250 2015-04-30  Caroline Tice  <cmtice@google.com>
12251
12252         PR gcov-profile/65929
12253         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12254         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12255         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12256         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12257         * doc/tm.texi: Regenerate.
12258         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12259         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12260         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12261         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12262
12263 2015-04-30  Marek Polacek  <polacek@redhat.com>
12264
12265         * varasm.c (handle_cache_entry): Fix logic.
12266
12267 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12268
12269         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12270         (*extrsi5_insn_uxtw_alt): Likewise.
12271         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12272         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12273         operations.
12274
12275 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12276
12277         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12278         fabd in ABS case.
12279
12280 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12281
12282         * config/aarch64/aarch64.md
12283         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12284         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12285         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12286         appropriately.  Handle alternative EON form.
12287
12288 2015-04-30  Renlin Li  <renlin.li@arm.com>
12289
12290         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12291         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12292
12293 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12294
12295         PR ipa/65873
12296         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12297         -fstrict-aliasing boundaries.
12298
12299 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12300
12301         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12302         and [SU]MNEGL patterns.
12303
12304 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12305
12306         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12307         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12308         combined arithmetic-shift ops.  Properly handle all shift and extend
12309         operations that can occur in combination with PLUS/MINUS.
12310         Rename maybe_fma to compound_p.
12311         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12312         arithmetic and shift operations.
12313
12314 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12315
12316         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12317         rather than arith_shift cost when costing ADD/MINUS of an
12318         extended value.
12319
12320 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12321
12322         PR lto/65948
12323         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12324         to itself.
12325
12326 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12327
12328         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12329         are for the same position.
12330
12331 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12332
12333         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12334         vectorize_loops.
12335         (vectorize_loops): Use it.
12336
12337 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12338
12339         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12340         for aggregate types.
12341         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12342         type to be non_ODR.
12343         * tree.c (need_assembler_name_p): Compute mangled name for
12344         non-fundamental types and integer types.
12345
12346 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12347
12348         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12349         manual swaps.
12350         * expr.c (expand_expr_real_2): Likewise.
12351
12352 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12353
12354         * tree.c (build_common_builtin_nodes): Do not build
12355         __builtin_alloca_with_align as equivalent of library alloca.
12356
12357 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12358
12359         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12360         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12361         bugus variants.
12362         * tree.c: Include print-tree.h and ipa-utils.h
12363         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12364         (free_lang_data_in_cgraph): Call verify_type.
12365         (verify_type_variant): New function.
12366         (verify_type): New function.
12367         * tree.h (verify_type): Declare.
12368
12369 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12370
12371         * config/mips/mips-cpus.def: (mips4): Change default processor
12372         from PROCESSOR_R8000 to PROCESSOR_R10000.
12373
12374 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12375
12376         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12377         la/jalr instead of jal.
12378
12379 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12380
12381         PR target/65871
12382         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12383         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12384         (setcc+movzbl peephole2): Check also clobbered reg.
12385         (setcc+andl peephole2): Ditto.
12386
12387 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12388
12389         PR libgomp/65099
12390         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12391         (main): Set it depending on "-foffload-abi=[...]".
12392         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12393         compiler.
12394
12395 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12396
12397         PR target/65770
12398         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12399         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12400         Flip lane index back at assembly time for bigendian.
12401
12402 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12403
12404         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12405         * gimplify.c (gimplify_omp_workshare): Use it.
12406
12407 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12408
12409         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12410         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12411         build/inchash.o
12412         * genrecog.c: Rewrite most of the code except for the third page.
12413
12414 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12415
12416         * inchash.h, inchash.c: Include bconfig.h for build objects.
12417         * Makefile.in (build/inchash.o): New rule.
12418
12419 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12420
12421         PR target/65924
12422         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12423         number in type attribute expression.
12424
12425 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12426
12427         * loop-iv.c (canon_condition): Generalize to all types of integer
12428         constant.
12429
12430 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12431
12432         * gimple-walk.c: Prune duplicate or unneeded includes.
12433         (walk_gimple_asm): Only call parse_input_constraint or
12434         parse_output_constraint if their findings are used.
12435         Honour parse_input_constraint and parse_output_constraint
12436         result.
12437
12438 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12439
12440         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12441
12442 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12443
12444         PR tree-optimization/65893
12445         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12446         pass_dce.
12447
12448 2015-04-29  Richard Biener  <rguenther@suse.de>
12449
12450         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12451         compute GROUP_SIZE for basic-block SLP.
12452         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12453         take into account gaps.
12454         (vect_get_mask_element): Properly reject references to previous
12455         vectors.
12456         (vect_transform_slp_perm_load): Likewise.
12457
12458 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12459
12460         PR target/64835
12461         * config/i386/i386.c (ix86_default_align): New function.
12462         (ix86_override_options_after_change): Call ix86_default_align.
12463         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12464         (ix86_override_options_after_change): New function.
12465
12466 2015-04-28  Jeff Law  <law@redhat.com>
12467
12468         * tree-ssa-dom.c (record_equality); Fix comment typos.
12469
12470 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12471
12472         PR tree-optimization/65887
12473         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12474
12475 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12476
12477         * doc/extend.texi (Declaring Attributes of Functions): Split into
12478         subsections by target.  Alphabetize the table of common attributes.
12479         Rewrite some of the introductory text to reflect the new structure.
12480         Update some cross-references to point to the new subsections.
12481         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12482         duplicate copies in the discussion of function, label, and type
12483         attributes.
12484
12485 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12486
12487         PR bootstrap/65910
12488         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12489
12490 2015-04-28  Jason Merrill  <jason@redhat.com>
12491
12492         PR c++/65734
12493         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12494         (finalize_type_size): Respect TYPE_USER_ALIGN.
12495         (layout_type) [ARRAY_TYPE]: Likewise.
12496
12497 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12498
12499         * config/arm/arm.md (*arm_movt): Fix type attribute.
12500         (*cmpsi_shiftsi): Likewise.
12501         (*cmpsi_shiftsi_swp): Likewise.
12502         (*movsicc_insn): Likewise.
12503         (*cond_move): Likewise.
12504         (*if_plus_move): Likewise.
12505         (*if_move_plus): Likewise.
12506         (*if_arith_move): Likewise.
12507         (*if_move_arith): Likewise.
12508         (*if_shift_move): Likewise.
12509         (*if_move_shift): Likewise.
12510         (*arm_movtas_ze): Likewise.
12511         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12512         redundancy and type attribute.
12513         (*thumb2_movsi_insn): Fix type attribute.
12514         (*thumb2_addsi_short): Likewise.
12515         (thumb2_addsi3_compare0): Likewise.
12516         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12517         attributes accordingly.
12518
12519 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12520
12521         PR other/65911
12522         * function.c (pad_to_arg_alignment): Add parentheses.
12523
12524 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12525
12526         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12527         libgcc/config/frv/elf-lib.h.
12528
12529 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12530
12531         * tree-call-cdce.c: Fix example in header comment.
12532
12533 2015-04-28  Richard Biener  <rguenther@suse.de>
12534
12535         PR tree-optimization/62283
12536         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12537         fails fatally and we are vectorizing a basic-block simply
12538         cause the child to be constructed piecewise.
12539         (vect_analyze_slp_cost_1): Adjust.
12540         (vect_detect_hybrid_slp_stmts): Likewise.
12541         (vect_bb_slp_scalar_cost): Likewise.
12542         (vect_get_constant_vectors): For piecewise constructed
12543         constants place them after the last def.
12544         (vect_get_slp_defs): Adjust.
12545         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12546         externals for basic-block vectorization.
12547
12548 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12549
12550         PR target/63503
12551         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12552         aarch64-*-*.
12553         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12554         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12555         (AARCH64_TUNE_FMA_STEERING): Likewise.
12556         * config/aarch64/aarch64-cores.def: Set
12557         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12558         FMUL/FMADD instructions.
12559         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12560         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12561         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12562         * config/aarch64/cortex-a57-fma-steering.h: New file.
12563         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12564
12565 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12566
12567         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12568
12569 2015-04-28  Richard Biener  <rguenther@suse.de>
12570
12571         PR tree-optimization/65851
12572         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12573         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12574         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12575         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12576         (ccp_visit_phi_node): Adjust.
12577         (evaluate_stmt): For simplifications to SSA names return its
12578         lattice value if that isn't VARYING.  Return immediately when
12579         simplified to a constant.
12580         (visit_assignment): Adjust.
12581         (ccp_visit_stmt): Likewise.
12582
12583 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12584
12585         PR tree-optimization/65818
12586         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12587         evaluated.
12588
12589 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12590
12591         * calls.c (save_fixed_argument_area): Don't check
12592         ARGS_GROW_DOWNWARD with the preprocessor.
12593         (restore_fixed_argument_area): Likewise.
12594         (mem_overlaps_already_clobbered_arg_p): Likewise.
12595         (check_sibcall_argument_overlap): Likewise.
12596         (expand_call): Likewise.
12597         (emit_library_call_value_1): Likewise.
12598         (store_one_arg): Likewise.
12599         * function.c (assign_parms): Likewise.
12600         (locate_and_pad_parm): Likewise.
12601         (pad_to_arg_alignment): Likewise.
12602         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12603
12604 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12605
12606         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12607         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12608         * calls.c (save_fixed_argument_area): Don't chekc if
12609         ARGS_GROW_DOWNWARD is defined.
12610         (restore_fixed_argument_area): Likewise.
12611         (mem_overlaps_already_clobbered_arg_p): Likewise.
12612         (check_sibcall_argument_overlap): Likewise.
12613         (expand_call): Likewise.
12614         (emit_library_call_value_1): Likewise.
12615         (store_one_arg): Likewise.
12616         * function.c (assign_parms): Likewise.
12617         (locate_and_pad_parm): Likewise.
12618         (pad_to_arg_alignment): Likewise.
12619         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12620
12621 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12622
12623         * defaults.h (gen_epilogue): New function.
12624         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12625         defined.
12626         * cfgrtl.c (cfg_layout_finalize): Likewise.
12627         * df-scan.c: Likewise.
12628         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12629         (reposition_prologue_and_epilogue_notes): Likewise.
12630         * reorg.c (find_end_label): Likewise.
12631         * toplev.c: Likewise.
12632
12633 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12634
12635         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12636         * defaults.h (gen_simple_return): New function.
12637         (gen_simple_return): Likewise.
12638         (HAVE_return): Add default definition to false.
12639         (HAVE_simple_return): Likewise.
12640         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12641         HAVE_return and HAVE_simple_return are defined.
12642         * function.c (gen_return_pattern): Likewise.
12643         (convert_jumps_to_returns): Likewise.
12644         (thread_prologue_and_epilogue_insns): Likewise.
12645         * reorg.c (find_end_label): Likewise.
12646         (dbr_schedule): Likewise.
12647         * shrink-wrap.c: Likewise.
12648         * shrink-wrap.h: Likewise.
12649
12650 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12651
12652         * defaults.h (EPILOGUE_USES): Add default definition of false.
12653         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12654         * resource.c (init_resource_info): Likewise.
12655
12656 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12657
12658         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12659         to false.
12660         * dwarf2out.c (field_byte_offset): REmove check if
12661         PCC_BITFIELD_TYPE_MATTERS is defined.
12662         * stor-layout.c (layout_decl): Likewise.
12663         (update_alignment_for_field): Likewise.
12664         (place_field): Likewise.
12665
12666 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12667
12668         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12669         true.
12670         * regrename.c (check_new_reg_p): Remove check if
12671         HARD_REGNO_RENAME_OK is defined.
12672         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12673
12674 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12675
12676         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12677         * cse.c (fold_rtx): Likewise.
12678         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12679         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12680         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12681         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12682         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12683         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12684         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12685         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12686         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12687         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12688         * Likewise.
12689         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12690         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12691         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12692         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12693         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12694         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12695         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12696         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12697         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12698         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12699         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12700         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12701         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12702         * doc/tm.texi: Regenerate.
12703         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12704         either true or false.
12705
12706 2015-04-27  Jeff Law  <law@redhat.com>
12707
12708         PR tree-optimization/65217
12709         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12710         of them has a single use, make sure it is the LHS of the implied
12711         copy.
12712
12713 2015-04-28  Alan Modra  <amodra@gmail.com>
12714
12715         PR target/65810
12716         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12717         (offsettable_ok_by_alignment): Use minimum of decl and toc
12718         pointer alignment.  Replace dead code with assertion.
12719         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12720         case if size exceeds toc pointer alignment.
12721         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12722         (rs6000_emit_move): Likewise.
12723         * configure.ac: Add linker toc pointer alignment check.
12724         * configure: Regenerate.
12725         * config.in: Regenerate.
12726
12727 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
12728
12729         * config.gcc: Add h8300-*-linux.
12730         * config/h8300/linux.h: New.
12731         * config/h8300/t-linux: New.
12732         * config/h8300/h8300.c (h8300_option_override): Normal mode
12733         is not supported for h8300-*-linux.
12734         (h8300_file_start): Target priority change.
12735         (get_shift_alg): Likewise.
12736         (h8300_shift_need_scratch_p): Likewise.
12737         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12738         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
12739
12740 2015-04-27  Caroline Tice  <cmtice@google.com>
12741
12742         * final.c (final_scan_insn):  Output cold_function_name as function
12743         type.
12744         * varasm.c (cold_function_name):  Make global.
12745         (assemble_start_function):  Re-set cold_function_name.
12746         (assemble_end_function): Output cold partition size.
12747         * varasm.h (cold_function_name):  Declare global.
12748
12749 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
12750
12751         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
12752         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
12753         constraint.
12754         (*movxi_internal_avx512f): Ditto.
12755         (define_split): Check for xmm16+, when splitting scalar float_extend.
12756         (*extendsfdf2_mixed): Use "v" constraint.
12757         (define_split): Check for xmm16+, when splitting scalar float_truncate.
12758         (*truncdfsf_fast_sse): Use "v" constraint.
12759         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
12760         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
12761         (define_peephole2): Check for xmm16+, when converting scalar
12762         float_truncate.
12763         (define_peephole2): Check for xmm16+, when converting scalar
12764         float_extend.
12765         (*fop_<mode>_comm_mixed): Use "v" constraint.
12766         (*fop_<mode>_comm_sse): Ditto.
12767         (*fop_<mode>_1_mixed): Ditto.
12768         (*sqrt<mode>2_sse): Ditto.
12769         (*ieee_s<ieee_maxmin><mode>3): Ditto.
12770
12771 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12772
12773         * combine.c (simplify_if_then_else): Use std::swap instead
12774         of manually swapping.
12775         (known_cond): Likewise.
12776         (simplify_comparison): Likewise.
12777
12778 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
12779
12780         PR target/64579
12781         * config/rs6000/htm.md: Remove all define_expands.
12782         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
12783         UNSPECV_HTM_TABORTWCI): Remove.
12784         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
12785         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
12786         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
12787         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
12788         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
12789         tabortwci_internal): Remove define_insns.
12790         (tabort<wd>c, tabort<wd>ci): New define_insns.
12791         (tabort): Use gpc_reg_operand.
12792         (tcheck): Remove operand.
12793         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
12794         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
12795         expected value.
12796         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
12797         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
12798         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
12799         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
12800         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
12801         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
12802         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
12803         (tcheck): Remove builtin argument.
12804         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
12805         not TARGET_64BIT.
12806         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
12807         tabortdc and tabortdci builtins when not in 64-bit mode.
12808         Modify code to handle the loss of the HTM define_expands.
12809         Emit code to copy the CR register to TARGET.
12810         (htm_init_builtins): Modify code to handle the loss of the HTM
12811         define_expands.
12812         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
12813         (RS6000_BTC_64BIT): Likewise.
12814         (RS6000_BTC_CR): New macro.
12815         * doc/extend.texi: Update documentation for htm builtins.
12816
12817 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12818
12819         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
12820         of manually swapping.
12821         (simplify_associative_operation): Likewise.
12822         (simplify_binary_operation): Likewise.
12823         (simplify_plus_minus): Likewise.
12824         (simplify_relational_operation): Likewise.
12825         (simplify_ternary_operation): Likewise.
12826
12827 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12828
12829         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
12830         (xs_hi_nonmemory_operand): Remove error.
12831         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
12832         general_operand rather than xs_hi_general_operand.
12833
12834 2015-04-27  Richard Biener  <rguenther@suse.de>
12835
12836         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
12837         (record_equivalences_from_stmt): Valueize rhs.
12838         (record_equality): Canonicalize x and y order via
12839         tree_swap_operands_p.  Do not swap operands for same loop depth.
12840
12841 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
12842
12843         PR target/65296
12844         PR target/65895
12845         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
12846         Add hint how to use own spec file.
12847
12848 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
12849
12850         PR tree-optimization/65875
12851         * tree-vrp.c (update_value_range): If in is_new case setting
12852         old_vr to VR_VARYING, also set new_vr to it.  Remove
12853         old_vr->type == VR_VARYING test.
12854         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
12855         SSA_PROP_INTERESTING if update_value_range returned true,
12856         but new range is VR_VARYING.
12857
12858 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12859
12860         * combine.c (sign_extend_short_imm): New.
12861         (set_nonzero_bits_and_sign_copies): Use above new function for sign
12862         extension of src short immediate.
12863         (reg_nonzero_bits_for_combine): Likewise for tem.
12864
12865 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12866
12867         * stor-layout.c (self_referential_component_ref_p): New predicate.
12868         (copy_self_referential_tree_r): Use it.
12869         (self_referential_size): Punt for simple operations directly involving
12870         self-referential component references.
12871         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
12872
12873 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12874
12875         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
12876
12877 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12878
12879         * vec.h (vec): Make splice arguments const.  Update definitions
12880         accordingly.
12881
12882 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
12883
12884         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
12885         alternatives.
12886
12887 2015-04-26  Tom de Vries  <tom@codesourcery.com>
12888
12889         PR tree-optimization/65826
12890         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
12891
12892 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
12893
12894         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
12895         (*madd3<mode>): Ditto.
12896         (*msub4<mode>): Ditto.
12897         (*msub3<mode>): Ditto.
12898         (*nmadd4<mode>): Ditto.
12899         (*nmadd3<mode>): Ditto.
12900         (*nmadd4<mode>_fastmath): Ditto.
12901         (*nmadd3<mode>_fastmath): Ditto.
12902         (*nmsub4<mode>): Ditto.
12903         (*nmsub3<mode>): Ditto.
12904         (*nmsub4<mode>_fastmath): Ditto.
12905         (*nmsub3<mode>_fastmath): Ditto.
12906
12907 2015-04-24  Jason Merrill  <jason@redhat.com>
12908
12909         PR c++/50800
12910         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
12911         down when building TYPE_CANONICAL.
12912         (build_pointer_type_for_mode): Likewise.
12913
12914 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
12915
12916         * genrecog.c (validate_pattern): Check matching constraint refers
12917         to a lower numbered operand.
12918
12919 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12920
12921         PR target/65849
12922         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
12923         save to independent variables use the Save attribute.  This will
12924         allow these options to be modified with the #pragma/attribute
12925         target support.
12926         (-mallow-movmisalign): Likewise.
12927         (-mallow-df-permute): Likewise.
12928         (-msched-groups): Likewise.
12929         (-malways-hint): Likewise.
12930         (-malign-branch-targets): Likewise.
12931         (-mvectorize-builtins): Likewise.
12932         (-msave-toc-indirect): Likewise.
12933
12934         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
12935         can be set via the #pragma/attribute target support.
12936         (rs6000_opt_vars): Likewise.
12937         (rs6000_inner_target_options): If VSX was set, also set
12938         -mno-avoid-indexed-addresses.
12939
12940 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12941
12942         * config/arm/iterators.md (shiftable_ops): Rename to...
12943         (SHIFTABLE_OPS): ... This.  Update use in comments.
12944         (ior_xor): Rename to...
12945         (IOR_XOR): ... This.
12946         (vqh_ops): Rename to...
12947         (VQH_OPS): ... This.
12948         (vqhs_ops): Rename to...
12949         (VQHS_OPS): ... This.
12950         (rshifts): Rename to...
12951         (RSHIFTS): ... This.
12952         (returns): Rename to...
12953         (RETURNS): ... This.
12954         * config/arm/arm.md: Update uses of the above.
12955         * config/arm/neon.md: Likewise.
12956
12957 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12958
12959         * config.host (case ${host}): Add aarch64*-*-linux case.
12960         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
12961         fields to all the cores.
12962         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
12963         Add MCPU_MTUNE_NATIVE_SPECS.
12964         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
12965         field to all extensions.
12966         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
12967         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
12968         Adjust definition of AARCH64_OPT_EXTENSION.
12969         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
12970         (MCPU_MTUNE_NATIVE_SPECS): Define.
12971         * config/aarch64/driver-aarch64.c: New file.
12972         * config/aarch64/x-arch64: New file.
12973         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
12974         -mtune and -march.
12975
12976 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12977             Wei Mi  <wmi@google.com>
12978
12979         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
12980         * config/i386/i386.c (extract_base_offset_in_addr): New function.
12981         (ix86_operands_ok_for_move_multiple): Ditto.
12982         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
12983         (movlpd/movhpd to movupd peephole2): Ditto.
12984
12985 2015-04-24  Marek Polacek  <polacek@redhat.com>
12986
12987         PR c/61534
12988         * input.h (from_macro_expansion_at): Define.
12989
12990         PR c/63357
12991         * doc/invoke.texi: Update description of -Wlogical-op.
12992
12993 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12994
12995         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
12996         ternary operator in fprintf and harmonize spacing.
12997
12998 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12999
13000         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
13001         Mark operand1 commutative.
13002
13003 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13004
13005         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
13006         input operands in memory.
13007         (*vec_concatv2si_sse4_1): Ditto.
13008         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
13009         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
13010         register_operand.
13011         (vec_extract_hi_v32hi): Ditto.
13012         (vec_extract_hi_v64hi): Ditto.
13013         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
13014
13015 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13016             Steven Bosscher <steven@gcc.gnu.org>
13017
13018         PR rtl-optimization/34503
13019         * cprop.c (cprop_reg_p): New.
13020         (hash_scan_set): Use above function to check if register can be
13021         propagated.
13022         (find_avail_set): Return up to two sets, one whose source is a
13023         register and one whose source is a constant.  Sets are returned in an
13024         array passed as parameter rather than as a return value.
13025         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
13026         sets returned by find_avail_set, starting with the one whose source is
13027         a constant. Use cprop_reg_p to check if register can be propagated.
13028         (do_local_cprop): Use cprop_reg_p to check if register can be
13029         propagated.
13030         (implicit_set_cond_p): Likewise.
13031
13032 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13033
13034         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
13035         (sem_function::equals): IGNORED_NODES parameter is now unused;
13036         update call of equals_private.
13037         (sem_function::equals_private): Do not call equals_wpa; skip
13038         gimple body matching if there is no body.
13039         (sem_function::init): Add logic to hash tthunk info.
13040         (sem_function::parse): Also parse thunks.
13041         * ipa-icf.h (equals_private): Update declaration.
13042
13043 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13044
13045         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
13046         asterisk from name so this can be generated directly.
13047         (*altivec_stvx_<mode>_internal): Likewise.
13048         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
13049         that this is never called during or after reload/lra.
13050         (rs6000_frame_related): Remove split_reg
13051         argument and logic that references it.
13052         (emit_frame_save): Remove last parameter from call to
13053         rs6000_frame_related.
13054         (rs6000_emit_prologue): Remove last parameter from eight calls to
13055         rs6000_frame_related.  Force generation of stvx instruction for
13056         Altivec register saves.  Remove split_reg handling, which is no
13057         longer needed.
13058         (rs6000_emit_epilogue):  Force generation of lvx instruction for
13059         Altivec register restores.
13060
13061 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13062
13063         * config/rs6000/rs6000.opt (mcrypto): Change option description to
13064         match category changes in ISA 2.07B.
13065
13066 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13067
13068         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
13069         iterators.
13070         (cmp_op, cmp_type): New code attributes.
13071         (NEON_VCMP, NEON_VACMP): New int iterators.
13072         (cmp_op_unsp): New int attribute.
13073         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
13074         (neon_vceq<mode>): Delete.
13075         (neon_vc<cmp_op><mode>_insn): New pattern.
13076         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13077         (neon_vcgeu<mode>): Delete.
13078         (neon_vcle<mode>): Likewise.
13079         (neon_vclt<mode>: Likewise.
13080         (neon_vcage<mode>): Likewise.
13081         (neon_vcagt<mode>): Likewise.
13082         (neon_vca<cmp_op><mode>): New define_expand.
13083         (neon_vca<cmp_op><mode>_insn): New pattern.
13084         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13085
13086 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13087
13088         * tree.h (attribute_value_equal): Declare.
13089         * tree.c (attribute_value_equal): Export.
13090
13091 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13092
13093         * ipa-icf.c (sem_item::compare_attributes): New function.
13094         (sem_item::compare_referenced_symbol_properties): Compare variable
13095         attributes.
13096         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13097         (sem_function::param_used_p): New function.
13098         (sem_function::equals_wpa): Fix attribute comparsion; match
13099         parameter type codes; do not compare paremter flags when
13100         they are not used; compare edge flags; compare indirect calls.
13101         (sem_item::update_hash_by_addr_refs): Hash reference type.
13102         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13103         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13104         reference use type.
13105         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13106         * ipa-icf.h (compare_attributes, param_used_p): Declare.
13107
13108 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13109
13110         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13111         cleanup.
13112         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13113         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13114         (sem_item::compare_referenced_symbol_properties): New.
13115         (sem_item::hash_referenced_symbol_properties): New.
13116         (sem_item::compare_cgraph_references): Rename to ...
13117         (sem_item::compare_symbol_references): ... this one; use
13118         compare_referenced_symbol_properties.
13119         (sem_function::equals_wpa): Do not compare
13120         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13121         DECL_IS_OPERATOR_NEW; compare pointer sizes.
13122         (sem_item::update_hash_by_addr_refs): Call
13123         hash_referenced_symbol_properties.
13124         (sem_item::update_hash_by_local_refs): Cleanup.
13125         (sem_function::merge): Do not mix up symbol properties.
13126         (sem_variable::equals_wpa): Use compare_symbol_references.
13127         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13128         (sem_item::hash_referenced_symbol_properties): New.
13129         (sem_item::compare_symbol_references): New.
13130         (sem_item::compare_cgraph_references): Remove.
13131
13132 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
13133
13134         PR target/26702
13135         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13136         Emit size of local.
13137
13138 2015-04-23  Nick Clifton  <nickc@redhat.com>
13139
13140         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13141         ATTRIBUTE_UNUSED to x parameter.
13142         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13143
13144 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13145
13146         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13147         TARGET_CRYPTO to TARGET_P8_VECTOR>
13148         (crypto_vpermxor_<mode>): Likewise.
13149         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13150         (BU_CRYPTO_3A): Likewise.
13151         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13152         (BU_CRYPTO_OVERLOAD_3A): New #define.
13153         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13154         (VPMSUMH): Likewise.
13155         (VPMSUMW): Likewise.
13156         (VPMSUMD): Likewise.
13157         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13158         (VPERMXOR_V4SI): Likewise.
13159         (VPERMXOR_V8HI): Likewise.
13160         (VPERMXOR_V16QI): Likewise.
13161         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13162         BU_CRYPTO_OVERLOAD_2A.
13163         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13164         BU_CRYPTO_OVERLOAD_3A.
13165         * config/rs6000/rs6000.opt (mcrypto): Change description of
13166         option.
13167
13168 2015-04-23  Richard Biener  <rguenther@suse.de>
13169
13170         * passes.def: Remove copy propagation passes run directly after CCP.
13171         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13172         SSA names.
13173         (ccp_visit_phi_node): Rework to handle first executable edge
13174         specially.
13175
13176 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13177
13178         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13179         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13180         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13181         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13182         (thumb_legimitimize_reload_address): Remove.
13183         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13184         Remove.
13185         (thumb_legimitimize_reload_address): Remove.
13186
13187 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13188
13189         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13190
13191 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13192
13193         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13194         MAX_LDM_STM_OPS.
13195         (store_multiple): Likewise.
13196
13197 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13198
13199         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13200         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13201         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13202         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13203         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13204         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13205         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13206         Specify issue_rate value.
13207         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13208         large switch statement.
13209         (arm_marvell_pj4_tune): New struct.
13210         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13211         struct.
13212
13213 2015-04-23  Richard Biener  <rguenther@suse.de>
13214
13215         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13216         (vect_find_last_store_in_slp_instance): Rename to ...
13217         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13218         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13219         and vec_construct for external defs when estimating prologue cost.
13220         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13221         Compute costs here only when vectorizing loops.
13222         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13223         have been determined.
13224         (vect_schedule_slp_instance): Simplify vectorized code placement
13225         and prepare for in-BB external defs.
13226         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13227         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13228         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13229         guard.
13230         (vect_model_load_cost): Likewise.
13231         (vectorizable_store): Instead add it here.
13232         (vectorizable_load): Likewise.
13233         (vect_is_simple_use): Dump def type textually.
13234
13235 2015-04-23  Richard Biener  <rguenther@suse.de>
13236
13237         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13238         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13239         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13240         instead of get_eh_region_from_lp_number.
13241         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13242         the SCEV cache.
13243
13244 2015-04-23  Anton Blanchard  <anton@samba.org>
13245
13246         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13247         need for -mprofile-kernel to save LR to stack.
13248
13249 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13250
13251         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13252         adjustments.
13253         (insn_is_swappable_p): Return 1 for a convert from double to
13254         single precision when all of its uses are splats of BE element
13255         zero.
13256
13257 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13258
13259         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13260
13261 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13262
13263         PR target/65456
13264         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13265         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13266         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13267         option.
13268         (rs6000_builtin_mask_for_load): Return 0 for targets with
13269         efficient unaligned VSX accesses so that the vectorizer will use
13270         direct unaligned loads.
13271         (rs6000_builtin_support_vector_misalignment): Always return true
13272         for targets with efficient unaligned VSX accesses.
13273         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13274         stores on targets with efficient unaligned VSX accesses is almost
13275         always the same as the cost of an aligned load or store, so model
13276         it that way.
13277         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13278         unaligned vectors if we have efficient unaligned VSX accesses.
13279         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13280         undocumented option.
13281
13282 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13283
13284         Revert:
13285         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13286
13287         * config.gcc (LIBC_MUSL): New tm_defines macro.
13288         * config/linux.h (OPTION_MUSL): Define.
13289         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13290         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13291         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13292
13293         * config/linux.opt (mmusl): New option.
13294         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13295         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13296
13297         * configure: Regenerate.
13298
13299 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13300
13301         * config.gcc (LIBC_MUSL): New tm_defines macro.
13302         * config/linux.h (OPTION_MUSL): Define.
13303         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13304         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13305         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13306
13307         * config/linux.opt (mmusl): New option.
13308         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13309         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13310
13311         * configure: Regenerate.
13312
13313 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13314
13315         * doc/invoke.texi (-fsanitize-sections): Update description.
13316         * asan.c (set_sanitized_sections): Parse incoming arg.
13317         (section_sanitized_p): Support wildcards.
13318
13319 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13320
13321         PR tree-optimization/65823
13322         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13323         equality between ap_copy and ap.
13324
13325 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13326
13327         PR target/47098
13328         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13329
13330 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13331
13332         PR target/47122
13333         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13334
13335 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13336
13337         PR target/55144
13338         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13339         remove already contained t-files.
13340
13341 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13342
13343         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13344         Remove unneeded forward declarations.
13345         (suitable_for_tail_call_opt_p): Commentary typo fix.
13346
13347 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13348
13349         * varasm.c (emit_bss): Remove redundant guard.
13350
13351 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13352
13353         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13354
13355 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13356
13357         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13358
13359 2015-04-22  Hale Wang  <hale.wang@arm.com>
13360             Terry Guo  <terry.guo@arm.com>
13361
13362         PR rtl-optimization/64818
13363         * combine.c (can_combine_p): Don't combine user-specified
13364         register if it is in an asm input.
13365
13366 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13367
13368         PR ipa/65076
13369         * passes.def (early_optimizations): Add pass_dse.
13370
13371 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13372
13373         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13374         * reorg.c (redundant_insn): Remove ifdef
13375         INSN_REFERENCES_ARE_DELAYED.
13376         * resource.c (mark_referenced_resources): Likewise.
13377
13378 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13379
13380         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13381         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13382         * resource.c (mark_set_resources): Likewise.
13383
13384 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13385
13386         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13387         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13388         (flow_find_head_matching_sequence): Likewise.
13389         (try_head_merge_bb): Likewise.
13390         * combine.c (can_combine_p): Likewise.
13391         (try_combine): Likewise.
13392         (distribute_notes): Likewise.
13393         * df-problems.c (can_move_insns_across): Likewise.
13394         * final.c (final): Likewise.
13395         * gcse.c (insert_insn_end_basic_block): Likewise.
13396         * ira.c (find_moveable_pseudos): Likewise.
13397         * reorg.c (try_merge_delay_insns): Likewise.
13398         (fill_simple_delay_slots): Likewise.
13399         (fill_slots_from_thread): Likewise.
13400         * sched-deps.c (sched_analyze_2): Likewise.
13401
13402 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13403
13404         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13405         PIC_OFFSET_TABLE_REGNUM.
13406
13407 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13408
13409         * alias.c (init_alias_target): Remove ifdef
13410         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13411         * df-scan.c (df_insn_refs_collect): Likewise.
13412         (df_get_regular_block_artificial_uses): Likewise.
13413         (df_get_eh_block_artificial_uses): Likewise.
13414         (df_get_entry_block_def_set): Likewise.
13415         (df_get_exit_block_use_set): Likewise.
13416         * emit-rtl.c (gen_rtx_REG): Likewise.
13417         * ira.c (ira_setup_eliminable_regset): Likewise.
13418         * reginfo.c (init_reg_sets_1): Likewise.
13419         * regrename.c (rename_chains): Likewise.
13420         * reload1.c (reload): Likewise.
13421         (eliminate_regs_in_insn): Likewise.
13422         * resource.c (mark_referenced_resources): Likewise.
13423         (init_resource_info): Likewise.
13424
13425 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13426
13427         * defaults.h (MASK_RETURN_ADDR): New definition.
13428         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13429         MASK_RETURN_ADDR.
13430
13431 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13432
13433         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13434         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13435         RETURN_ADDR_OFFSET.
13436         (expand_builtin_frob_return_addr): Likewise.
13437
13438 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13439
13440         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13441         (try_redirect_by_replacing_jump): Likewise.
13442         (rtl_tidy_fallthru_edge): Likewise.
13443         * combine.c (insn_a_feeds_b): Likewise.
13444         (find_split_point): Likewise.
13445         (simplify_set): Likewise.
13446         * cprop.c (cprop_jump): Likewise.
13447         * cse.c (cse_extended_basic_block): Likewise.
13448         * df-problems.c (can_move_insns_across): Likewise.
13449         * function.c (emit_use_return_register_into_block): Likewise.
13450         * haifa-sched.c (sched_init): Likewise.
13451         * ira.c (find_moveable_pseudos): Likewise.
13452         * loop-invariant.c (find_invariant_insn): Likewise.
13453         * lra-constraints.c (curr_insn_transform): Likewise.
13454         * postreload.c (reload_combine_recognize_const_pattern):
13455         * Likewise.
13456         * reload.c (find_reloads): Likewise.
13457         * reorg.c (delete_scheduled_jump): Likewise.
13458         (steal_delay_list_from_target): Likewise.
13459         (steal_delay_list_from_fallthrough): Likewise.
13460         (redundant_insn): Likewise.
13461         (fill_simple_delay_slots): Likewise.
13462         (fill_slots_from_thread): Likewise.
13463         (delete_computation): Likewise.
13464         * sched-rgn.c (add_branch_dependences): Likewise.
13465
13466 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13467
13468         * genconfig.c (main): Always define HAVE_cc0.
13469         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13470         HAVE_cc0.
13471         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13472         (flow_find_head_matching_sequence): Likewise.
13473         (try_head_merge_bb): Likewise.
13474         * cfgrtl.c (rtl_merge_blocks): Likewise.
13475         (try_redirect_by_replacing_jump): Likewise.
13476         (rtl_tidy_fallthru_edge): Likewise.
13477         * combine.c (do_SUBST_MODE): Likewise.
13478         (insn_a_feeds_b): Likewise.
13479         (combine_instructions): Likewise.
13480         (can_combine_p): Likewise.
13481         (try_combine): Likewise.
13482         (find_split_point): Likewise.
13483         (subst): Likewise.
13484         (simplify_set): Likewise.
13485         (distribute_notes): Likewise.
13486         * cprop.c (cprop_jump): Likewise.
13487         * cse.c (cse_extended_basic_block): Likewise.
13488         * df-problems.c (can_move_insns_across): Likewise.
13489         * final.c (final): Likewise.
13490         (final_scan_insn): Likewise.
13491         * function.c (emit_use_return_register_into_block): Likewise.
13492         * gcse.c (insert_insn_end_basic_block): Likewise.
13493         * haifa-sched.c (sched_init): Likewise.
13494         * ira.c (find_moveable_pseudos): Likewise.
13495         * loop-invariant.c (find_invariant_insn): Likewise.
13496         * lra-constraints.c (curr_insn_transform): Likewise.
13497         * optabs.c (prepare_cmp_insn): Likewise.
13498         * postreload.c (reload_combine_recognize_const_pattern):
13499         * Likewise.
13500         * reload.c (find_reloads): Likewise.
13501         (find_reloads_address_1): Likewise.
13502         * reorg.c (delete_scheduled_jump): Likewise.
13503         (steal_delay_list_from_target): Likewise.
13504         (steal_delay_list_from_fallthrough): Likewise.
13505         (try_merge_delay_insns): Likewise.
13506         (redundant_insn): Likewise.
13507         (fill_simple_delay_slots): Likewise.
13508         (fill_slots_from_thread): Likewise.
13509         (delete_computation): Likewise.
13510         (relax_delay_slots): Likewise.
13511         * sched-deps.c (sched_analyze_2): Likewise.
13512         * sched-rgn.c (add_branch_dependences): Likewise.
13513
13514 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13515
13516         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13517         that is trivially ded on non cc0 targets.
13518         (simplify_set): Likewise.
13519         (mark_used_regs_combine): Likewise.
13520         * cse.c (new_basic_block): Likewise.
13521         (fold_rtx): Likewise.
13522         (cse_insn): Likewise.
13523         (cse_extended_basic_block): Likewise.
13524         (set_live_p): Likewise.
13525         * rtlanal.c (canonicalize_condition): Likewise.
13526         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13527
13528 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13529
13530         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13531         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13532         * final.c: Likewise.
13533         * jump.c: Likewise.
13534         * recog.c: Likewise.
13535         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13536         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13537
13538 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13539
13540         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13541         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13542         * builtins.c (expand_builtin): Remove check if
13543         EH_RETURN_DATA_REGNO is defined.
13544         * df-scan.c (df_bb_refs_collect): Likewise.
13545         (df_get_exit_block_use_set): Likewise.
13546         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13547         * ira-lives.c (process_bb_node_lives): Likewise.
13548         * lra-lives.c (process_bb_lives): Likewise.
13549
13550 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13551
13552         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13553         FIRST_PSEUDO_REG): New.
13554         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13555         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13556         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13557         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13558         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13559         (FIRST_INT_REG): New.
13560         (LAST_INT_REG): New.
13561         (FIRST_*_REG): Define using *_REG.
13562         (LAST_*_REG): Ditto.
13563         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13564         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13565         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13566
13567 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13568
13569         * expmed.c: (synth_mult): Only assume overlapping
13570         shift with previous steps in alg_sub_t_m2 case.
13571
13572 2015-04-21  Richard Biener  <rguenther@suse.de>
13573
13574         PR tree-optimization/65650
13575         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13576         transitions involving copies.
13577         (set_lattice_value): Adjust for copy lattice state.
13578         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13579         if that doesn't dominate the merge point.
13580         (bit_value_unop): Adjust what we treat as varying mask.
13581         (bit_value_binop): Likewise.
13582         (bit_value_assume_aligned): Likewise.
13583         (evaluate_stmt): When we simplified to a SSA name record a copy
13584         instead of dropping to varying.
13585         (visit_assignment): Simplify.
13586
13587         * gimple-match.h (gimple_simplify): Add another callback.
13588         * gimple-fold.c (fold_stmt_1): Adjust caller.
13589         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13590         for the 2nd callback.
13591         * gimple-match-head.c (gimple_simplify): Add a callback that is
13592         used to valueize the stmt operands and use it that way.
13593
13594 2015-04-21  Richard Biener  <rguenther@suse.de>
13595
13596         PR tree-optimization/65788
13597         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13598
13599 2015-04-21  Richard Biener  <rguenther@suse.de>
13600
13601         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13602         vec_construct cost by vec_stmt_cost.
13603
13604 2015-04-21  Richard Biener  <rguenther@suse.de>
13605
13606         * cfghooks.h (create_basic_block): Replace with two overloads
13607         for RTL and GIMPLE.
13608         (split_block): Likewise.
13609         * cfghooks.c (split_block): Rename to ...
13610         (split_block_1): ... this.
13611         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13612         (split_block_after_labels): Call split_block_1.
13613         (create_basic_block): Rename to ...
13614         (create_basic_block_1): ... this.
13615         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13616         (create_empty_bb): Call create_basic_block_1.
13617         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13618         split_block_after_labels.
13619         * omp-low.c (expand_parallel_call): Likewise.
13620         (expand_omp_target): Likewise.
13621         (simd_clone_adjust): Likewise.
13622         * tree-chkp.c (chkp_get_entry_block): Likewise.
13623         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13624         create_basic_block overload.
13625         (cgraph_node::expand_thunk): Likewise.
13626         * tree-cfg.c (make_blocks): Likewise.
13627         (handle_abnormal_edges): Likewise.
13628         * tree-inline.c (copy_bb): Likewise.
13629
13630 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13631
13632         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13633         New pattern.
13634         (*xor_one_cmplsidi3_ze): Likewise.
13635
13636 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13637
13638         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13639         use df_remove_problem rather than manually removing problems, leaving
13640         holes in df->problems_in_order[].
13641
13642 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13643
13644         PR tree-optimization/65802
13645         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13646
13647 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13648
13649         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13650         Increase to 128.
13651         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13652         at '.'.  Assert that there's enough space for everything.
13653
13654 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13655
13656         PR tree-optimization/64950
13657         Revert:
13658         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13659
13660         PR target/41089
13661         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13662         as volatile.
13663
13664 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13665
13666         PR rtl-optimization/64916
13667         * cfgcleanup.c (values_equal_p): New function.
13668         (can_replace_by): Use it.
13669
13670 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13671
13672         PR c++/65801
13673         * doc/invoke.texi ([-Wnarrowing]): Update.
13674
13675 2015-04-20  Jeff Law  <law@redhat.com>
13676
13677         PR tree-optimization/65658
13678         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13679         redundant test for GIMPLE_ASSIGN in last change.
13680
13681 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13682
13683         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13684         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13685         (legitimize_tls_address): Ditto.
13686         (ix86_expand_move): Ditto.
13687         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13688         (ix86_expand_unary_operator): Ditto.
13689         * config/i386/predicates.md (index_register_operand): Ditto.
13690
13691 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13692
13693         * reorg.c (try_merge_delay_insns): Improve correctness checking
13694         for targets with multiple delay slots.
13695
13696 2015-04-20  Jeff Law  <law@redhat.com>
13697
13698         PR tree-optimization/65658
13699         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13700         statements too.
13701
13702 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13703
13704         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13705         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13706         Delete.
13707
13708 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13709
13710         PR debug/65807
13711         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13712
13713 2015-04-20  Richard Biener  <rguenther@suse.de>
13714
13715         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13716         * gimple-fold.c (gimple_build_valueize): New function.
13717         (gimple_build): Always use gimple_build_valueize as valueize hook.
13718
13719 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13720
13721         PR target/64134
13722         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13723         and overwrite variable parts if <= 1/2 the elements are variable.
13724
13725 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13726
13727         PR rtl-optimization/65805
13728         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
13729         Don't use difference of offset and previous offset if
13730         update_sp_offset is non-zero.
13731         (eliminate_regs_in_insn): Ditto.
13732         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
13733         lra_eliminate_regs_1 call.
13734         * lra-constraints.c (get_equiv_with_elimination): Ditto.
13735
13736 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
13737
13738         * hash-table.h: Remove version of hash_table that stored value_type *.
13739         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
13740         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
13741         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
13742         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
13743         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
13744         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
13745         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
13746         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
13747         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
13748         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
13749         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
13750         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
13751         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
13752         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
13753         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13754         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
13755
13756 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13757             Jakub Jelinek  <jakub@redhat.com>
13758
13759         PR target/65787
13760         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
13761         subsequent SH_NONE operand does not overwrite an existing *special
13762         value.
13763         (adjust_extract): Handle case where a vec_extract operation is
13764         wrapped in a PARALLEL.
13765
13766 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13767
13768         PR target/65780
13769         * config/i386/i386.c (ix86_binds_local_p): Define only if
13770         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
13771
13772 2015-04-17  Jeff Law  <law@redhat.com>
13773
13774         PR tree-optimization/47679
13775         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
13776         * tree-ssa-scopedtables.c: New file.
13777         * tree-ssa-scopedtables.h: New file.
13778         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
13779         (const_and_copies): Change name/type.
13780         (record_const_or_copy): Move into tree-ssa-scopedtables.c
13781         (record_const_or_copy_1): Similarly.
13782         (restore_vars_to_original_value): Similarly.
13783         (pass_dominator::execute): Create and destroy const_and_copies table.
13784         (thread_across_edge): Update passing of const_and_copies.
13785         (record_temporary_equivalence): Use method calls rather than
13786         manipulating const_and_copies directly.
13787         (record_equality, cprop_into_successor_phis): Similarly.
13788         (dom_opt_dom_walker::before_dom_children): Similarly.
13789         (dom_opt_dom_walker::after_dom_children): Similarly.
13790         (eliminate_redundant_computations): Similarly.
13791         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
13792         (record_temporary_equivalence): Likewise.
13793         (invalidate_equivalences): Likewise.
13794         (record_temporary_equivalences_from_phis): Update due to type
13795         change of const_and_copies.  Use method calls rather than
13796         manipulating the stack directly.
13797         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
13798         (thread_through_normal_block, thread_across_edge): Likewise.
13799         (thread_across_edge): Likewise.
13800         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13801         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
13802         of equiv_stack.
13803         (identify_jump_threads): Update due to type change of equiv_stack.
13804         (finalize_jump_threads): Delete the equiv_stack when complete.
13805
13806 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
13807
13808         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13809         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
13810         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
13811
13812 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
13813
13814         PR target/65535
13815         * config.gcc: Exit with a comment when we do not have a major version
13816         number for the FreeBSD target.
13817
13818 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13819
13820         PR target/65689
13821         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
13822         maybe_allows_mem bitfields.
13823         (maybe_allows_none_start, maybe_allows_none_end,
13824         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
13825         maybe_allows_mem_end): New variables.
13826         (compute_maybe_allows): New function.
13827         (add_constraint): Use it to initialize maybe_allows_reg and
13828         maybe_allows_mem fields.
13829         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
13830         is_address constraints such that those that allow neither mem nor
13831         reg come first, then those that only allow reg but not mem, then
13832         those that only allow mem but not reg, then the rest.
13833         (write_allows_reg_mem_function): New function.
13834         (write_tm_preds_h): Call it.
13835         * stmt.c (parse_output_constraint, parse_input_constraint): Use
13836         the generated insn_extra_constraint_allows_reg_mem function
13837         instead of always setting *allows_reg = true; *allows_mem = true;
13838         for unknown extra constraints.
13839
13840 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13841
13842         PR target/65780
13843         * output.h (default_binds_local_p_3): New.
13844         * varasm.c (default_binds_local_p_3): Make it public.  Take an
13845         argument to indicate if common symbol may be local.  If common
13846         symbol may be local, treat non-external variable as defined
13847         locally.
13848         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
13849         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
13850         * config/i386/i386.c (ix86_binds_local_p): New.
13851         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
13852         ix86_binds_local_p.
13853
13854 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13855
13856         PR debug/65771
13857         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
13858         trying mem_loc_descriptor on XEXP (rtl, 0).
13859
13860 2015-04-17  Martin Liska  <mliska@suse.cz>
13861
13862         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
13863         Release symbol_compare_collection.
13864         * ipa-reference.c: Add TODO that a vector should be released.
13865
13866 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
13867
13868         PR target/65296
13869         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
13870         to new AVR-LibC file layout (bug #44574).
13871         (*avrlibc_devicelib): Same.
13872         * config/avr/avr-mcus.def: Adjust comments.
13873         * config/avr/avr.opt (nodevicelib): Adjust help.
13874
13875 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
13876
13877         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
13878
13879 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
13880
13881         PR c++/64527
13882         * gimplify.c (gimplify_init_constructor): Always emit a
13883         side-effecting constructor.
13884
13885 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13886
13887         PR tree-optimization/64950
13888         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
13889         in cfun->curr_properties.
13890         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
13891         if we generate an IFN_VA_ARG.
13892         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
13893         function if PROP_gimple_lva is not set in src function.
13894
13895 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13896             Michael Matz  <matz@suse.de>
13897
13898         PR tree-optimization/64950
13899         * gimple-iterator.c (update_modified_stmts): Remove static.
13900         * gimple-iterator.h (update_modified_stmts): Declare.
13901         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
13902         (gimplify_va_arg_internal): New function.
13903         (gimplify_va_arg_expr): Use IFN_VA_ARG.
13904         * gimplify.h (gimplify_va_arg_internal): Declare.
13905         * internal-fn.c (expand_VA_ARG): New unreachable function.
13906         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
13907         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
13908         (expand_ifn_va_arg): New function.
13909         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
13910         (pass_stdarg::execute): Call expand_ifn_va_arg.
13911         (pass_data_lower_vaarg): New pass_data.
13912         (pass_lower_vaarg): New gimple_opt_pass.
13913         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
13914         (make_pass_lower_vaarg): New function.
13915         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
13916         properties_required field.
13917         * passes.def (all_passes): Add pass_lower_vaarg.
13918         * tree-pass.h (PROP_gimple_lva): Add define.
13919         (make_pass_lower_vaarg): Declare.
13920
13921 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13922
13923         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
13924         * calls.c (call_expr_flags): Same.
13925
13926 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13927
13928         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
13929         (pass_stdarg::execute): ... here.
13930
13931 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13932             Michael Matz  <matz@suse.de>
13933
13934         * tree-cfg.c (make_blocks_1): Factor out of ...
13935         (make_blocks): ... here.
13936         (make_edges_bb): Factor out of ...
13937         (make_edges): ... here.
13938         (gimple_find_sub_bbs): New function.
13939         * tree-cfg.h (gimple_find_sub_bbs): Declare.
13940
13941 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13942
13943         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
13944
13945 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
13946
13947         * asan.c (set_sanitized_sections): New function.
13948         (section_sanitized_p): Ditto.
13949         (asan_protect_global): Optionally sanitize user-defined
13950         sections.
13951         * asan.h (set_sanitized_sections): Declare new function.
13952         * common.opt (fsanitize-sections): New option.
13953         * doc/invoke.texi (-fsanitize-sections): Document new option.
13954         * opts-global.c (handle_common_deferred_options): Handle new
13955         option.
13956
13957 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13958
13959         PR debug/65771
13960         * dwarf2out.c (loc_list_from_tree): Return NULL
13961         for DEBUG_EXPR_DECL.
13962
13963 2015-04-17  Christian Bruel  <christian.bruel@st.com>
13964
13965         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
13966         same attributes.
13967
13968 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
13969
13970         * ira-color.c (setup_left_conflict_sizes_p): Do not process
13971         node itself when computing left conflict subnode size.
13972
13973 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13974
13975         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
13976         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
13977         *fop_<mode>_1_sse using enabled attribute.  Use
13978         register_mixssei387nonimm_operand operand 1 predicate. Change
13979         alternative 3 constraints from "x" to "v".
13980
13981 2015-04-16  Richard Biener  <rguenther@suse.de>
13982
13983         PR tree-optimization/65774
13984         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
13985         bit-value tracking on.
13986
13987 2015-04-16  Richard Biener  <rguenther@suse.de>
13988
13989         PR tree-optimization/64277
13990         * tree-vrp.c (check_array_ref): Fix anti-range handling,
13991         simplify upper bound handling.
13992         (search_for_addr_array): Simplify.
13993         (check_array_bounds): Handle ADDR_EXPRs here.
13994         (check_all_array_refs): Simplify.
13995
13996 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13997
13998         * config/i386/i386.c (print_reg): Rewrite function.
13999
14000 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14001
14002         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
14003         Invert the condition.
14004
14005 2015-04-16  Renlin Li  <renlin.li@arm.com>
14006
14007         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
14008         simplifications for UNSIGNED_FLOAT.
14009
14010 2015-04-16  Nick Clifton  <nickc@redhat.com>
14011
14012         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
14013         MUL_UNINIT.
14014         (enum rl78_cpu_type): New.
14015         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
14016         (umulhi3_shift_virt): Remove m constraint from operand 1.
14017         (umulqihi3_virt): Likewise.
14018         * config/rl78/rl78.c (rl78_option_override): Add code to process
14019         -mcpu and -mmul options.
14020         (rl78_alloc_physical_registers): Add code to handle divhi and
14021         divsi valloc attributes.
14022         (set_origin): Likewise.
14023         * config/rl78/rl78.h (RL78_MUL_G14): Define.
14024         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
14025         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
14026         __RL78_Gxx__.
14027         (ASM_SPEC): Pass -mcpu on to assembler.
14028         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
14029         (mulqi3_rl78): Likewise.
14030         (mulhi3_g13): Likewise.
14031         (mulhi3): Generate the G13 or G14 versions of the insn directly.
14032         (mulsi3): Likewise.
14033         (mulhi3_g14): Add clobbers of AX and BC.
14034         (mulsi3_g14): Likewise.
14035         (mulsi3_g13): Likewise.
14036         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
14037         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
14038         * config/rl78/rl78.opt (mmul): Initialise value to
14039         RL78_MUL_UNINIT.
14040         (mcpu): New option.
14041         (m13, m14, mrl78): New option aliases.
14042         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
14043         (MULTILIB_DIRNAMES): Add g13 and g14.
14044         * doc/invoke.texi: Document -mcpu and -mmul options.
14045
14046 2015-04-16  Richard Biener  <rguenther@suse.de>
14047
14048         * tree-ssa-ccp.c (likely_value): See if we have operands that
14049         are marked as never simulate again and return CONSTANT in this
14050         case.
14051         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
14052         not have any operands that will be simulated again as
14053         not being simulated again.
14054
14055 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
14056
14057         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
14058         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
14059         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
14060         attribute.
14061         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
14062         enabled attribute.
14063         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
14064         *float<SWI48:mode><MODEF:mode>2_sse.
14065         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
14066         enabled attribute.
14067         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
14068         enabled attribute.
14069
14070 2015-04-15  Tom de Vries  <tom@codesourcery.com>
14071
14072         PR other/65487
14073         * function.c (push_dummy_function): New function.
14074         (init_dummy_function_start): Use push_dummy_function.
14075         (pop_dummy_function): New function.  Factored out of ...
14076         (expand_dummy_function_end): ... here.
14077         * function.h (push_dummy_function, pop_dummy_function): Declare.
14078         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14079         pop_dummy_function.
14080         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14081
14082 2015-04-15  Jeff Law  <law@redhat.com>
14083
14084         PR tree-optimization/47679
14085         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14086         need for forward declaration in upcoming changes.
14087         (record_conditions, record_edge_info): Likewise.
14088
14089         PR rtl-optimization/42522
14090         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14091         SIGN_EXTRACT as a whole object rather than simplifying
14092         its operand.
14093
14094 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
14095
14096         PR ipa/65765
14097         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14098         and GIMPLE_PREDICT use break instead of return true. For
14099         GIMPLE_EH_DISPATCH, compare dispatch region.
14100
14101 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
14102
14103         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
14104         details about the implementation.  Make clear preference for
14105         __atomic builtins.  Reduce possibility of future change.
14106
14107 2015-04-15  Nick Clifton  <nickc@redhat.com>
14108
14109         * config/rx/rx.opt (mallow-string-insns): New option.
14110         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14111         builtin if string instructions are denied.
14112         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14113         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14114         appropriate.
14115         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14116         * config/rx/rx.md (movstr): Enable pattern only if string
14117         instructions are allowed.
14118         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14119         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14120         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14121         (MULTILIB_DIRNAMES): Add no-strings.
14122         * doc/invoke.texi: Document -mno-allow-string-insns.
14123
14124 2015-04-15  Alan Modra  <amodra@gmail.com>
14125
14126         PR target/65408
14127         PR target/58744
14128         PR middle-end/36043
14129         * calls.c (load_register_parameters): Don't load past end of
14130         mem unless suitably aligned.
14131
14132 2015-04-15  Nick Clifton  <nickc@redhat.com>
14133
14134         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14135         decrement instruction as being frame related.
14136         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14137         based addresses.
14138         If zero extending a function address enclose the operation in
14139         %code(...).
14140         (rl78_preferred_reload_class): New function.
14141         (TARGET_PREFERRED_RELOAD_CLASS): Define.
14142         * config/rl78/rl78.md: Remove useless constraints in expanders.
14143         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14144         (mulhi3_rl78): Likewise.
14145         (mulhi3_g13): Likewise.
14146         (mulsi3_rl78): Likewise.
14147         (es_addr): Move to before the multiply patterns.
14148
14149 2015-04-15  Alan Modra  <amodra@gmail.com>
14150
14151         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14152         and sequence_stack.  Add seq.
14153         (seq_stack): Delete.
14154         * function.c (prepare_function_start): Don't access x_last_insn.
14155         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14156         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14157         * emit_rtl.c (start_sequence, push_topmost_sequence,
14158         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14159         sequence accessors.
14160         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14161         remove_insn): Likewise.  Simplify.
14162         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14163         and pop_topmost_sequence.
14164         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14165         debug insns.
14166         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14167
14168 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14169
14170         PR target/65729
14171         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14172         the assertiion.
14173
14174 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14175
14176         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14177         (LEGACY_INT_REGNO_P): Ditto.
14178         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14179         (ANY_MASK_REG_P): Remove.
14180         (BND_REG_P): Rename from ANY_BND_REG_P.
14181         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14182         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14183         Merge 64byte and 32byte SSE handling.
14184
14185 2015-04-14  Nick Clifton  <nickc@redhat.com>
14186
14187         * expr.c (expand_assignment): Force an address offset computation
14188         into a register before changing its mode.
14189         (expand_expr_real_1): Likewise.
14190
14191 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14192
14193         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14194         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14195         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14196         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14197         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14198         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14199         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14200         and __aarch64_vget_lane_any.
14201
14202 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14203
14204         PR rtl-optimization/65761
14205         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14206         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14207
14208 2015-04-14  Richard Biener  <rguenther@suse.de>
14209
14210         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14211         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14212
14213 2015-04-14  Richard Biener  <rguenther@suse.de>
14214
14215         PR tree-optimization/65758
14216         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14217         against -1.
14218         (ccp_lattice_meet): Likewise.
14219         (bit_value_unop): Likewise.
14220         (bit_value_binop): Likewise.
14221         (bit_value_assume_aligned): Likewise.
14222
14223 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14224
14225         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14226         function.
14227
14228 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14229
14230         PR tree-optimization/63387
14231         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14232         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14233
14234 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14235
14236         * config/i386/predicates.md (any_QIreg_operand): Rename from
14237         q_regs_operand.  Do not process subregs.
14238         (QIreg_operand): Use QI_REGNO_P predicate.
14239         (ext_QIreg_operand): Ditto.
14240         (ext_register_operand): Ditto.
14241         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14242         (AND splitters): Ditto.
14243         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14244         (AND with -256 splitter): Use any_QIreg_operand predicate and
14245         SWI248 mode for operand 0.
14246         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14247         mode for operand 0.
14248         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14249
14250 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14251
14252         * doc/plugins.texi: Rewrite first introductory paragraph.
14253
14254 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14255
14256         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14257         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14258
14259 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14260
14261         * ipa-profie.c (ipa_profile): Check number of parameters
14262         and possible polymorphic call targets before
14263         devirtualizing.
14264
14265 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14266
14267         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14268         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14269
14270 2015-04-13  Richard Biener  <rguenther@suse.de>
14271
14272         PR tree-optimization/65204
14273         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14274         takens for bit-CCP.
14275
14276 2015-04-13  Richard Biener  <rguenther@suse.de>
14277
14278         PR target/65660
14279         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14280         and cond_not_taken_branch_cost to 4 and 2.
14281         (bdver2_cost): Likewise.
14282         (bdver3_cost): Likewise.
14283         (bdver4_cost): Likewise.
14284
14285 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14286
14287         * hash-table.h (hash_table constructor): Add mem stats.
14288         (alloc_entries): Likewise.
14289
14290 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14291
14292         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14293         * passes.c (execute_one_pass): Only add transform if pass has one.
14294
14295 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14296
14297         * config/i386/i386.c (ix86_option_override_internal): Don't set
14298         -fprefetch-loop-arrays if optimizing for size.
14299
14300 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14301             Gerald Pfeifer  <gerald@pfeifer.com>
14302
14303         * doc/contrib.texi (Contributors): Add Martin Jambor and
14304         Michael Matz.
14305
14306 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14307
14308         * BASE-VER: Set to 6.0.0.
14309
14310         PR tree-optimization/65747
14311         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14312         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14313
14314 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14315
14316         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14317         sentence.  Improve grammar.
14318
14319 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14320
14321         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14322
14323 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14324
14325         PR ipa/65743
14326         * ipa-inline-transform.c (speculation_removed): Remove static var.
14327         (check_speculations): New function.
14328         (clone_inlined_nodes): Do not check spculations.
14329         (inline_call): Call check_speculations.
14330         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14331         consider non-invariants.
14332
14333 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14334             Martin Liska  <mliska@suse.cz>
14335
14336         PR ipa/65722
14337         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14338         variable can not match.
14339         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14340         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14341
14342 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14343
14344         PR tree-optimization/65735
14345         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14346         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14347         same bb rather than just into the same phi node.
14348         (thread_through_normal_block): Adjust caller.
14349
14350 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14351
14352         * doc/contrib.texi (Contributors): Add Ira Rosen.
14353
14354 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14355
14356         * gcov.c (find_source): Fix miswording in error message.
14357         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14358         (ix86_expand_sse_comi_round): Fix typo in error message.
14359
14360 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14361
14362         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14363
14364 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14365
14366         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14367
14368 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14369
14370         PR target/65710
14371         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14372         Print bad_spills_num and insn_pseudos_num.
14373
14374 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14375
14376         PR target/65694
14377         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14378         when creating +1 values for SImode.
14379
14380 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14381
14382         PR target/65729
14383         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14384         assert.
14385
14386 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14387             Iain Sandoe  <iain@codesourcery.com>
14388
14389         PR target/65351
14390         * configure: Regenerate.
14391
14392 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14393
14394         PR target/65671
14395         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14396
14397 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14398
14399         * doc/contrib.texi (Contributors): Add John Marino.
14400
14401 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14402
14403         PR tree-optimization/65709
14404         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14405         TREE_TYPE (TREE_TYPE (t)).
14406
14407 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14408
14409         PR target/65710
14410         * lra-int.h (lra_bad_spill_regno_start): New.
14411         * lra.c (lra_bad_spill_regno_start): New.
14412         (lra): Set up lra_bad_spill_regno_start.  Set up
14413         lra_constraint_new_regno_start unconditionally.
14414         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14415         spill preferences.
14416
14417 2015-04-09  Marek Polacek  <polacek@redhat.com>
14418             Jakub Jelinek  <jakub@redhat.com>
14419
14420         PR middle-end/65554
14421         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14422         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14423         of STRIP_NOPS.
14424
14425 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14426
14427         PR rtl-optimization/65693
14428         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14429         #ifndef HAVE_cc0.
14430
14431 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14432
14433         PR target/65296
14434         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14435         device specs file if "device-specs%s" didn't resolve to a path.
14436
14437 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14438
14439         PR target/65676
14440         * config/i386/i386.c (fixup_modeless_constant): New.
14441         (ix86_expand_args_builtin): Fixup modeless constant operand.
14442         (ix86_expand_round_builtin): Ditto.
14443         (ix86_expand_special_args_builtin): Ditto.
14444         (ix86_expand_builtin): Ditto.
14445
14446 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14447
14448         PR target/65693
14449         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14450         any pow2 integer in between 2 and 0x80000000U inclusive.
14451
14452 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14453
14454         PR rtl-optimization/65693
14455         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14456         from an rtx_insn * to an rtx.
14457         (try_combine): Adjust both callers.  Use it once more.
14458
14459 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14460
14461         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14462         (chkp_make_static_const_bounds): Search existing
14463         symbol by assembler name.  Use make_decl_one_only.
14464         (chkp_get_zero_bounds_var): Remove node search which
14465         is now performed in chkp_make_static_const_bounds.
14466         (chkp_get_none_bounds_var): Likewise.
14467
14468 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14469
14470         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14471         to an example.
14472
14473 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14474
14475         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14476
14477 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14478
14479         * doc/extend.texi (__sync Builtins): Fix grammar.
14480
14481 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14482
14483         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14484
14485 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14486
14487         * varasm.c (emit_local): Move definition of align.
14488
14489 2015-04-08  Julian Brown  <julian@codesourcery.com>
14490
14491         * config/nvptx/mkoffload.c (process): Support variable mapping.
14492
14493 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14494
14495         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14496         alpha_links **.
14497         (alpha_write_one_linkage): Correct typo.
14498
14499 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14500
14501         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14502
14503 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14504
14505         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14506
14507 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14508
14509         * tree-chkp.h (chkp_insert_retbnd_call): New.
14510         * tree-chkp.c (chkp_insert_retbnd_call): New.
14511         * ipa-split.c (insert_bndret_call_after): Remove.
14512         (split_function): Use chkp_insert_retbnd_call.
14513         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14514         bounds for instrumented functions.
14515
14516 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14517
14518         PR ipa/65540
14519         * calls.c (initialize_argument_information): When producing tail
14520         call also turn SSA_NAMES passed by references to original PARM_DECLs
14521
14522 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14523
14524         PR target/65648
14525         * lra-remat.c (do_remat): Process input and non-input insn
14526         registers separately.
14527
14528 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14529
14530         PR debug/65678
14531         * valtrack.c (debug_lowpart_subreg): New function.
14532         (dead_debug_insert_temp): Use it.
14533
14534         PR middle-end/65680
14535         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14536         into signed HOST_WIDE_INT the same as negative bit_offset.
14537
14538 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14539
14540         * ipa-comdats.c (ipa_comdats): Visit all thunks
14541         to set proper comdat group.
14542
14543 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14544
14545         PR target/65489
14546         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14547         on constants for NEON VSTRUCT modes.
14548
14549 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14550             Iain Sandoe  <iain@codesourcery.com>
14551
14552         PR target/65351
14553         * configure: Regenerate.
14554
14555 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14556
14557         PR target/65614
14558         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14559         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14560         that LFD is used to load double constants instead of LFS.  Add
14561         defaults for all costs structures.  Add comments for missing
14562         initialization fields.
14563         (size32_cost): Likewise.
14564         (size64_cost): Likewise.
14565         (rs64a_cost): Likewise.
14566         (mpccore_cost): Likewise.
14567         (ppc403_cost): Likewise.
14568         (ppc405_cost): Likewise.
14569         (ppc440_cost): Likewise.
14570         (ppc476_cost): Likewise.
14571         (ppc601_cost): Likewise.
14572         (ppc603_cost): Likewise.
14573         (ppc604_cost): Likewise.
14574         (ppc604e_cost): Likewise.
14575         (ppc620_cost): Likewise.
14576         (ppc630_cost): Likewise.
14577         (ppccell_cost): Likewise.
14578         (ppc750_cost): Likewise.
14579         (ppc7450_cost): Likewise.
14580         (ppc8540_cost): Likewise.
14581         (ppce300c2c3_cost): Likewise.
14582         (ppce500mc_cost): Likewise.
14583         (ppce500mc64_cost): Likewise.
14584         (ppce5500_cost): Likewise.
14585         (ppce6500_cost): Likewise.
14586         (titan_cost): Likewise.
14587         (power4_cost): Likewise.
14588         (power6_cost): Likewise.
14589         (power7_cost): Likewise.
14590         (power8_cost): Likewise.
14591         (ppca2_cost): Likewise.
14592         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14593
14594         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14595         instead of XXLOR to copy SFmode to clear out dirty bits created
14596         when SFmode denormals are generated.
14597         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14598         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14599
14600 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14601
14602         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14603         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14604         * config/aarch64/aarch64-tune.md: Regenerate.
14605
14606 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14607
14608         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14609         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14610         * config/arm/arm-cores.def (exynos-m1): New core.
14611         * config/arm/arm-tune.md: Regenerate.
14612         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14613         * config/arm/bpabi.h: Likewise.
14614
14615 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14616
14617         * ipa-cp (set_single_call_flag): Remove too
14618         restrictive assert.
14619
14620 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14621
14622         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14623         GOMP_offload_unregister from the destructor.
14624
14625 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14626
14627         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14628         flags for instrumentation thunk.
14629         (chkp_produce_thunks): Likewise.
14630
14631 2015-04-05  Martin Liska  <mliska@suse.cz>
14632
14633         PR ipa/65665
14634         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14635         has computed data structure.
14636         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14637
14638 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14639
14640         * invoke.texi (inline-unit-growth): Increase growth to 20%
14641         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14642
14643 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14644
14645         PR target/65647
14646         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14647         value checking.
14648         (lra_rematerialization_iter): New.
14649         * lra.c (lra): Initialize lra_rematerialization_iter.
14650         Stop updating lra_constraint_new_regno_start after switching of
14651         inheritance and rematerialization.
14652         * lra-remat.c (lra_rematerialization_iter): New.
14653         (lra_remat): Add printing pass iteration.  Do rematerialization
14654         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14655
14656 2015-04-04  Richard Biener  <rguenther@suse.de>
14657
14658         PR tree-optimization/64909
14659         PR tree-optimization/65660
14660         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14661         to take a cost vector for scalar iteration cost.
14662         (vect_get_single_scalar_iteration_cost): Likewise.
14663         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14664         Compute the scalar iteration cost into a cost vector.
14665         (vect_get_known_peeling_cost): Use the scalar cost vector to
14666         account for the cost of the peeled iterations.
14667         (vect_estimate_min_profitable_iters): Likewise.
14668         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14669         Likewise.
14670
14671 2015-04-04  Alan Modra  <amodra@gmail.com>
14672
14673         PR target/65576
14674         PR target/65240
14675         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14676         0.0 constant unless TARGET_VSX.
14677         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14678         alternative.
14679
14680 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14681
14682         PR ipa/65654
14683         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14684         around the ICE
14685
14686 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14687
14688         PR ipa/65655
14689         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14690         speculative indirect edges to avoid ordering issue.
14691
14692 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14693
14694         PR ipa/65076
14695         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14696
14697 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14698
14699         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14700         TYPE_ARTIFICIAL on the .omp_data* types.
14701
14702 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14703
14704         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14705         instrumentation thunks.
14706
14707 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14708
14709         * config/i386/i386.c (ix86_expand_call): Avoid nested
14710         PARALLEL in returned call value.
14711
14712 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14713
14714         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14715         assembler name with original one.
14716
14717 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14718
14719         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14720
14721 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14722
14723         Revert parts of r216820.
14724         * config/i386/i386.md (movqi_internal): Correct type calculation
14725         for alternatives 3 and 5.
14726
14727 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
14728
14729         PR preprocessor/61977
14730         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
14731         predefine __vector/__bool/__pixel macros nor context sensitive
14732         macros for CLK_ASM.
14733         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
14734
14735 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
14736
14737         * config/pa/pa.c (pa_output_move_double): Directly handle register
14738         indexed memory operand.  Simplify handling of scaled register indexed
14739         memory operands.
14740
14741 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14742
14743         PR driver/65444
14744         * config/i386/linux-common.h (MPX_SPEC): New.
14745         (CHKP_SPEC): Add MPX_SPEC.
14746         * doc/invoke.texi (-fcheck-pointer-boudns): Document
14747         possible issues with '-z bndplt' support in linker.
14748
14749 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14750
14751         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
14752         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
14753         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
14754         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
14755         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
14756
14757 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
14758
14759         * config/i386/sync.md (UNSPEC_MOVA): Remove.
14760         (atomic_load<mode>): Change operand 0 predicate to
14761         nonimmediate_operand and fix up the destination when needed.
14762         Use UNSPEC_LDA.
14763         (atomic_loaddi_fpu): Use UNSPEC_LDA.
14764         (atomic_store<mode>): Change operand 1 predicate to
14765         nonimmendate_operand and move the source to register when needed.
14766         Use UNSPEC_STA.
14767         (atomic_store<mode>_1): Use UNSPEC_STA.
14768         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
14769         Fix moves from memory operand.  Use UNSPEC_STA.
14770
14771 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14772
14773         * expmed.c (strict_volatile_bitfield_p): Check that the access will
14774         not cross a MODESIZE boundary.
14775         (store_bit_field, extract_bit_field): Added assertions in the
14776         strict volatile bitfields code path.
14777
14778 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14779
14780         PR target/65624
14781         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
14782         Increase args array size by one to avoid buffer overflow.
14783
14784 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14785
14786         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14787         split_part.
14788         * ipa-inline.c (edge_badness): Add wrapper penalty.
14789         (sum_callers): Move up.
14790         (inline_small_functions): Set single_caller.
14791         * ipa-inline.h (inline_summary): Add single_caller.
14792         * ipa-split.c (split_function): Set split_part.
14793         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
14794         * cgraph.h (cgraph_node): Add split_part.
14795
14796 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
14797
14798         PR target/58945
14799         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14800         Do not split operands 0 and operands 2 to halfmode.
14801         (atomic_compare_and_swap<mode>): Update for
14802         atomic_compare_and_swap<dwi>_doubleword changes.
14803
14804 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14805
14806         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
14807         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
14808         no caching is done.
14809
14810 2015-03-31  Martin Liska  <mliska@suse.cz>
14811
14812         PR ipa/65557
14813         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
14814         has already filled up function summary.
14815         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14816
14817 2015-03-31  Richard Biener  <rguenther@suse.de>
14818
14819         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
14820         of types.
14821
14822 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14823
14824         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
14825         nested functions.
14826         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
14827         (s390_asm_output_function_label): Adapt to new signature of
14828         s390_function_num_hotpatch_hw
14829         Optimise the code generating assembler output.
14830         Add comments to assembler file.
14831
14832 2015-03-31  Richard Biener  <rguenther@suse.de>
14833
14834         PR middle-end/65626
14835         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
14836         of the noreturn call so it is last and cleanup_control_flow_bb
14837         can do the CFG part.
14838
14839 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
14840
14841         PR target/65531
14842         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
14843         same_comdat_group for external symbols.
14844         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
14845         infinite same_comdat_group traversal loop.
14846
14847 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
14848
14849         PR plugins/61176
14850         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
14851         automatically to $headers.
14852
14853 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
14854
14855         PR ipa/65610
14856         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
14857         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
14858         function.
14859         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
14860         Use it.
14861         * ipa-prop.c (param_type_may_change_p): Likewise.
14862         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
14863         (remove_unused_scope_block_p): Add in_ctor_dtor_block
14864         argument.  Before inlining, preserve
14865         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
14866         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
14867         recursive calls.
14868         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
14869
14870 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14871
14872         PR ipa/65076
14873         * ipa-inline.c (edge_badness): Base denominator on callee's
14874         grwoth squared.
14875
14876 2015-03-27  Martin Jambor  <mjambor@suse.cz>
14877
14878         PR ipa/65478
14879         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
14880         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
14881         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
14882         node_calling_single_call.
14883         * ipa-cp.c (count_callers): New function.
14884         (set_single_call_flag): Likewise.
14885         (initialize_node_lattices): Count callers and set single_flag_call if
14886         necessary.
14887         (incorporate_penalties): New function.
14888         (good_cloning_opportunity_p): Use it, dump new flags.
14889         (propagate_constants_topo): Set node_within_scc flag if appropriate.
14890         * doc/invoke.texi (ipa-cp-recursion-penalty,
14891         ipa-cp-single-call-pentalty): Document.
14892
14893 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14894
14895         PR ipa/65588
14896         * symtab.c (symtab_node::get_partitioning_class): Register vars
14897         are duplicated.
14898         * varpool.c (symbol_table::output_variables) Do not assemble unefined
14899         decls for non-symbols.
14900
14901 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14902
14903         PR target/65248
14904         * output.h (default_binds_local_p_2): New.
14905         * varasm.c (default_binds_local_p_2): Renamed to ...
14906         (default_binds_local_p_3): This.  Don't return true on protected
14907         data symbol if protected data may be external.
14908         (default_binds_local_p): Use default_binds_local_p_3.
14909         (default_binds_local_p_1): Likewise.
14910         (default_binds_local_p_2): New.
14911         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
14912         default_binds_local_p_2 if TARGET_MACHO is undefined.
14913
14914 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
14915
14916         PR target/65593
14917         * config/i386/i386.c (legitimize_pic_address): If base
14918         is SYMBOL_REF or LABEL_REF using %rip addressing, force
14919         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
14920
14921 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14922
14923         PR target/65531
14924         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
14925         comdat groups.
14926
14927 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14928
14929         PR ipa/65600
14930         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
14931         of optimized out indirect call.
14932         (redirect_to_unreachable): Always build symbol table node for
14933         BUILT_IN_UNREACHABLE
14934
14935 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
14936
14937         PR target/65407
14938         * ira-costs.c (record_reg_classes): Process all constraint string
14939         containing 0-9.
14940
14941 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
14942
14943         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
14944         memory_operand.
14945
14946         PR target/65052
14947         * config/c6x/constraints.md (S3): New constraint.
14948         * config/c6x/c6x.md (real_jump): Use it.
14949
14950 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14951
14952         PR middle-end/65595
14953         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
14954         do redirection if the call is not optimized out.
14955
14956 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
14957
14958         PR target/65495
14959         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
14960         (fchkp-check-incomplete-type): Add LTO.
14961         (fchkp-zero-input-bounds-for-main): Likewise.
14962         (fchkp-first-field-has-own-bounds): Likewise.
14963         (fchkp-narrow-bounds): Likewise.
14964         (fchkp-narrow-to-innermost-array): Likewise.
14965         (fchkp-use-static-bounds): Likewise.
14966         (fchkp-use-static-const-bounds): Likewise.
14967         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14968
14969 2015-03-27  Marek Polacek  <polacek@redhat.com>
14970
14971         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
14972
14973 2015-03-27  Marek Polacek  <polacek@redhat.com>
14974
14975         PR sanitizer/65583
14976         * ubsan.c (ubsan_create_edge): New function.
14977         (instrument_bool_enum_load): Call it.
14978         (instrument_nonnull_arg): Likewise.
14979         (instrument_nonnull_return): Likewise.
14980         (instrument_object_size): Likewise.
14981
14982 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14983
14984         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
14985         auto_vec.
14986
14987 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14988
14989         PR lto/65536
14990         * lto-streamer.h (class lto_location_cache): New.
14991         (struct data_in): Add location_cache.
14992         (lto_input_location): Update prototype.
14993         (stream_input_location_now): New.
14994         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
14995         pointer to location.
14996         (stream_input_location): Update.
14997         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
14998         (warn_odr): Apply location cache before warning.
14999         (lto_input_location): Update prototype.
15000         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
15001         Use stream_input_location_now.
15002         * lto-streamer-in.c (lto_location_cache::current_cache): New static
15003         variable.
15004         (lto_location_cache::cmp_loc): New function.
15005         (lto_location_cache::apply_location_cache): New function.
15006         (lto_location_cache::accept_location_cache): New function.
15007         (lto_location_cache::revert_location_cache): New function.
15008         (lto_location_cache::input_location): New function.
15009         (lto_input_location): Do location caching.
15010         (stream_input_location_now): New function.
15011         (input_eh_region, input_struct_function_base): Use
15012         stream_input_location_now.
15013         (lto_data_in_create): use new.
15014         (lto_data_in_delete): Use delete.
15015         * tree-streamer-in.c (unpack_ts_block_value_fields,
15016         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
15017         lto_input_ts_exp_tree_pointers): Update for cached location api.
15018
15019 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15020
15021         PR ipa/65076
15022         * passes.def: Add pass_nothrow.
15023         * ipa-pure-const.c: (pass_data_nothrow): New.
15024         (pass_nothrow): New.
15025         (pass_nothrow::execute): New.
15026         (make_pass_nothrow): New.
15027         * tree-pass.h (make_pass_nothrow): Declare.
15028
15029 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15030
15031         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
15032         edge to change by speculation resolution or redirection.
15033         (edge_set_predicate): Likewise.
15034         (inline_summary_t::duplicate): Likewise.
15035         (remap_edge_summaries): Likewise.
15036
15037 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15038
15039         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
15040         New macros.
15041         (can_inline_edge_p): Relax option matching for always inline functions.
15042
15043 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
15044
15045         PR target/65561
15046         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
15047         Check operand 4 and operand 0 for equality.
15048         (avx512f_vextract<shuffletype>32x4_1_maskm):
15049         Check operand 6 and operand 0 for equality.
15050         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
15051         for equality.
15052         (vec_extract_hi_<mode>_maskm): Ditto.
15053
15054 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15055
15056         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
15057         dead calls back to live.
15058         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
15059         cross check to ...
15060         (cgraph_node::verify_node): ... here; verify only callee edges,
15061         not caller.
15062         * cif-code.def (CILK_SPAWN): New code.
15063
15064 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15065
15066         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
15067         (edge_set_predicate): Use it to mark unreachable edges.
15068         (inline_summary_t::duplicate): Remove unnecesary code.
15069         (remap_edge_summaries): Likewise.
15070         (dump_inline_summary): Report contains_cilk_spawn.
15071         (compute_inline_parameters): Compute contains_cilk_spawn.
15072         (inline_read_section, inline_write_summary): Stream
15073         contains_cilk_spawn.
15074         * ipa-inline.c (can_inline_edge_p): Do not touch
15075         DECL_STRUCT_FUNCTION that may not be available;
15076         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15077         remove check for callee_fun->can_throw_non_call_exceptions and
15078         replace it by optimization attribute check; check for flag_exceptions.
15079         * ipa-inline-transform.c (inline_call): Maintain
15080         DECL_FUNCTION_PERSONALITY
15081         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15082
15083 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15084
15085         PR tree-optimization/65551
15086         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15087         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15088
15089 2015-03-26  Richard Biener  <rguenther@suse.de>
15090
15091         PR middle-end/65555
15092         * tree-cfg.c (verify_gimple_call): Do not require a call to
15093         have no LHS if it wasn't recognized as control altering yet.
15094
15095 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15096
15097         PR tree-optimization/64715
15098         * passes.def: Add another instance of pass_object_sizes before ccp1.
15099         * tree-object-size.c (pass_object_sizes::execute): In
15100         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15101         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15102         __bos result and the computed constant.  Remove redundant
15103         checks, obsoleted by gimple_call_builtin_p test.
15104
15105         * var-tracking.c (variable_tracking_main_1): Don't track
15106         variables for targetm.no_register_allocation targets.
15107
15108 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
15109
15110         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15111         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15112
15113 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15114
15115         PR target/65569
15116         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15117         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
15118         0.0 is correctly setup.
15119         (extenddftf2_internal): Likewise.
15120
15121 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
15122
15123         PR tree-optimization/65177
15124         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15125         (bb_in_bbs): New.
15126         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
15127         edges not adjacent on the path to the original code.
15128
15129 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
15130
15131         PR bootstrap/65537
15132         * doc/install.texi (Building a native compiler): Document new
15133         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
15134         configuration assumes that the host supports the linker plugin.
15135
15136 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15137
15138         PR target/65508
15139         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15140         chain for generated call.
15141
15142 2015-03-25  Richard Biener  <rguenther@suse.de>
15143
15144         * passes.c (pass_manager::execute_early_local_passes): Guard
15145         execution of pass_chkp_instrumentation_passes with
15146         flag_check_pointer_bounds.
15147         (pass_chkp_instrumentation_passes::gate): Likewise.
15148
15149 2015-03-25  Martin Liska  <mliska@suse.cz>
15150
15151         PR tree-optimization/65538
15152         * symbol-summary.h (function_summary::~function_summary):
15153         Relese memory for allocated summaries.
15154         (function_summary::release): New function.
15155
15156 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15157
15158         PR lto/65515
15159         * lto-streamer-out.c (DFS::worklist): New struct.
15160         (DFS::worklist_vec): New data member.
15161         (DFS::next_dfs_num): Remove.
15162         (DFS::DFS): Rewritten using worklist instead of recursion,
15163         using most of code from DFS::DFS_write_tree.
15164         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15165         pass it to DFS_write_tree calls.
15166         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15167         quick initial checks push it into worklist_vec and return.
15168
15169 2015-03-25  Richard Biener  <rguenther@suse.de>
15170
15171         PR middle-end/65519
15172         * genmatch.c (expr::gen_transform): Re-write to avoid
15173         using gimple_build.
15174
15175 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15176
15177         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15178
15179 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15180
15181         * config/arm/arm.opt (print_tune_info): New option.
15182         * config/arm/arm.c (arm_print_tune_info): New function.
15183         (arm_file_start): Call arm_print_tune_info.
15184         * config/arm/arm-protos.h (struct tune_params): Add comment.
15185         * doc/invoke.texi (@item -mprint-tune-info): New item.
15186         (-mtune): mention it in ARM Option Summary.
15187
15188 2015-03-25  DJ Delorie  <dj@redhat.com>
15189
15190         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15191         correct clause.
15192
15193 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15194             Martin Liska  <mliska@suse.cz>
15195
15196         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15197         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15198         (sem_item::add_type): New function.
15199         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15200         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15201         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15202         (sem_function::equals_wpa): Fix typo.
15203         * ipa-icf.h (sem_item::add_type): New function.
15204         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15205         order.
15206
15207 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15208
15209         PR tree-optimization/65533
15210         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15211         with swapped operands, call vect_free_slp_tree on
15212         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15213         vector.
15214
15215 2015-03-24  Richard Biener  <rguenther@suse.de>
15216
15217         PR middle-end/65517
15218         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15219         for fixup if necessary.
15220
15221 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15222
15223         * doc/extend.texi (Function Attributes): Add @cindex entries
15224         for all attributes and regularize their format.  Delete text
15225         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15226         information about "eightbit_data", "tiny_data", and "model"
15227         variable attributes to the Variable Attributes section.  Fix
15228         some obvious typos and copy-editing issues.
15229         (Variable Attributes, Type Attributes): Likewise add/fix
15230         @cindex entries for all attributes.
15231
15232 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15233
15234         PR target/65523
15235         * tree-chkp.c (chkp_build_returned_bound): Ignore
15236         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15237
15238 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15239
15240         PR target/65505
15241         * config/sh/predicates.md (simple_mem_operand,
15242         displacement_mem_operand): Add test for reg.
15243         (short_displacement_mem_operand): Test for displacement_mem_operand
15244         before invoking sh_disp_addr_displacement.
15245         * config/sh/constraints.md (Sdd, Sra): Simplify.
15246         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15247         Remove redundant displacement_mem_operand tests.
15248
15249 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15250
15251         PR target/65296
15252         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15253         the same -mmcu=MCU more than once.
15254
15255 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15256
15257         PR bootstrap/65522
15258         * ipa-devirt.c: Remove duplicate demangle.h include.
15259
15260         PR target/65504
15261         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15262         on the pseudo.
15263         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15264         REG_POINTER on *destptr after adjusting it for prologue size.
15265
15266         PR ipa/65521
15267         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15268         ultimate_alias_target ()->order ints instead of
15269         ultimate_alias_target () pointers.
15270
15271 2015-03-23  Richard Biener  <rguenther@suse.de>
15272
15273         PR tree-optimization/65518
15274         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15275         interleaving cases we generate absymal code for.
15276
15277 2015-03-23  Richard Biener  <rguenther@suse.de>
15278
15279         PR tree-optimization/65494
15280         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15281         matches here.
15282         (vect_analyze_slp_instance): But do that here, always and once.
15283
15284 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15285
15286         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15287         adding T or multiplying by T+1 and subracting T.
15288
15289 2015-03-22  Jeff Law  <law@redhat.com>
15290
15291         PR rtl-optimization/64317
15292         * Makefile.in (OBJS): Add gcse-common.c
15293         * gcse.c: Include gcse-common.h
15294         (struct modify_pair_s): Move structure definition to gcse-common.h
15295         (compute_transp): Move function to gcse-common.c.
15296         (canon_list_insert): Similarly.
15297         (record_last_mem_set_info): Break out some code and put it into
15298         gcse-common.c.  Call into the new common code.
15299         (compute_local_properties): Pass additional arguments to compute_transp.
15300         * postreload-gcse.c: Include gcse-common.h and df.h
15301         (modify_mem_list_set, blocks_with_calls): New variables.
15302         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15303         (get_bb_avail_insn): Pass in the expression index too.
15304         (alloc_mem): Allocate memory for the new bitmaps and lists.
15305         (free_mem): Free memory for the new bitmaps and lists.
15306         (insert_expr_in_table): Record a bitmap index for each entry we
15307         add to the table.
15308         (record_last_mem_set_info): Call into common code in gcse-common.c.
15309         (get_bb_avail_insn): If no available insn was found in the requested
15310         BB.  If BB has a single predecessor, see if the expression is
15311         transparent in BB and available in that single predecessor.
15312         (compute_expr_transp): New wrapper for compute_transp.
15313         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15314         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15315         (gcse_after_reload_main): If there are elements in the hash table,
15316         then compute transparency for all the elements in the hash table.
15317         * gcse-common.h: New file.
15318         * gcse-common.c: New file.
15319
15320 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15321
15322         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15323         as an adjective.
15324         (System Headers): Likewise.
15325         (Ifdef): Likewise.
15326         (Traditional macros): Likewise.
15327         (Invocation): Likewise.
15328         (Option Index): Likewise.
15329         * doc/cppopts.texi (-M): Likewise.
15330         (-finput-charset): Likewise.
15331         (--help): Likewise.
15332         * doc.invoke.texi (AVR Options): Likewise.
15333         (V850 Options): Likewise.
15334
15335 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15336
15337         PR ipa/65475
15338         * ipa-devirt.c: Include demangle.h
15339         (odr_type_d): Add field rtti_broken.
15340         (odr_subtypes_equivalent_p): Do not require name to match.
15341         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15342         bypass the tests; be ready for function referneces in vtables that are
15343         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15344         (warn_odr): Give up for nameless types.
15345         (warn_types_mismatch): Report mismatch in mangled names;
15346         report mismatch in anonymous namespaces; look into component types to
15347         give useful error; report when mismatch is dragged in from other ODR
15348         type.
15349         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15350         duplicated diagnostics.
15351         (add_type_duplicate): Reorder checks so more informative ones come
15352         first; fix typo; do not output "the extra base is defined here" when
15353         we did not warn.
15354         (BINFO_N_BASE_BINFOS): Relax sanity check.
15355
15356 2015-03-22  Martin Liska  <mliska@suse.cz>
15357             Jakub Jelinek  <jakub@redhat.com>
15358
15359         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15360         masks that can potentially include a builtin.
15361         (ix86_add_new_builtins): Introduce fast filter for isa values
15362         that cannot trigger builtin inclusion.
15363
15364 2015-03-22  Martin Liska  <mliska@suse.cz>
15365
15366         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15367         (sem_item::update_hash_by_local_refs): Likewise.
15368         (sem_variable::get_hash): Empty line is fixed.
15369         (sem_item_optimizer::execute): Include adding of hash references.
15370         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15371         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15372         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15373         (sem_item::update_hash_by_local_refs): Likewise.
15374
15375 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15376
15377         PR ipa/65502
15378         * ipa-comdats.c (enqueue_references): Walk through thunks.
15379         (ipa_comdats): Likewise.
15380         (set_comdat_group_1): New function.
15381
15382 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15383
15384         PR ipa/65475
15385         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15386         non-polymorphic
15387
15388 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15389             Gerald Pfeifer  <gerald@pfeifer.com>
15390
15391         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15392
15393 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15394             Sandra Loosemore  <sandra@codesourcery.com>
15395
15396         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15397         function parameter declaration.
15398         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15399         Update arguments to nios2_adjust_call_address().
15400         (sibcall_internal): Rename from *sibcall.
15401         (sibcall_value_internal): Rename from *sibcall_value.
15402         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15403         (nios2_large_got_address): Add target temp reg parameter.
15404         (nios2_got_address): Adjust call to nios2_large_got_address, add
15405         force_reg around it.
15406         (nios2_load_pic_address): Add target temp reg parameter, replace call
15407         to nios2_got_address with corresponding code.
15408         (nios2_legitimize_constant_address): Update call to
15409         nios2_load_pic_address.
15410         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15411         to use temp reg for PIC loading purposes.
15412         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15413         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15414         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15415
15416 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15417
15418         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15419         usage of "the @option{...}".
15420         (-Wopenmp-simd): Likewise.
15421         (-fsanitize-recover): Likewise.
15422         (-fsanitize-undefined-trap-on-error): Likewise.
15423         (-flto): Likewise.
15424         (tracer-dynamic-coverage-feedback): Likewise.
15425         (reorder-block-duplicate-feedback): Likewise.
15426         (loop-unroll-jam-size): Likewise.
15427         (-B): Likewise.
15428         (-I-): Likewise.
15429         (-mabs=legacy): Likewise.
15430         (-mupper-regs-df): Likewise.
15431         (-mupper-regs-sf): Likewise.
15432         (-mpointers-to-nested-functions): Likewise.
15433
15434 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15435
15436         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15437
15438 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15439
15440         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15441         additional index entries and cross-references.
15442         (-fchkp-check-incomplete-type): Likewise.
15443         (-fchkp-first-field-has-own-bounds): Likewise.
15444         (-fchkp-narrow-to-innermost-array): Likewise.
15445         (-fchkp-use-fast-string-functions): Likewise.
15446         (-fchkp-use-nochk-string-functions): Likewise.
15447         (-fchkp-use-static-const-bounds): Likewise.
15448         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15449         (-fchkp-instrument-marked-only): Likewise.
15450         (-fchkp-use-wrappers): Likewise.
15451         (-static-libmpx): Likewise.
15452         (-static-libmpxwrappers): Likewise.
15453         * doc/extend.texi (bnd_legacy): Likewise.
15454         (bnd_instrument): Likewise.
15455         (bnd_variable_size): Likewise.
15456         (Pointer Bounds Checker builtins): Likewise.
15457
15458 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15459
15460         PR tree-optimization/65458
15461         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15462         * cgraph.h (cgraph_node): Add parallelized_function field.
15463         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15464         (input_overwrite_node): Read parallelized_function field.
15465         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15466         parallelized_function on cgraph_node for child_fn.
15467         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15468         Remove include of gt-tree-parloops.h.
15469         (parallelized_functions): Remove static variable.
15470         (parallelized_function_p): Rewrite using parallelized_function field of
15471         cgraph_node.
15472         (create_loop_fn): Remove adding to parallelized_functions.
15473         * Makefile.in (GTFILES): Remove tree-parloops.c
15474
15475 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15476
15477         PR rtl-optimization/64366
15478         * lra.c (lra_update_insn_regno_info): Consider regs in
15479         CALL_INSN_FUNCTION_USAGE memory.
15480
15481 2015-03-20  Richard Biener  <rguenther@suse.de>
15482
15483         PR middle-end/64715
15484         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15485         for type comparison and gcc_checking_assert.
15486         (chrec_fold_plus_poly_poly): Likewise.
15487         (chrec_fold_multiply_poly_poly): Likewise.
15488         (chrec_convert_1): Likewise.
15489         * gimplify.c (gimplify_expr): Remove premature folding of
15490         &X + CST to &MEM[&X, CST].
15491
15492 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15493
15494         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15495         already is final.
15496         (ipa_inline): Recompute inline_failed codes.
15497         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15498         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15499         CIF_FINAL_ERROR.
15500
15501 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15502
15503         PR rtl-optimization/60851
15504         * recog.c (constrain_operands): Accept a pseudo register before reload
15505         for LRA enabled targets.
15506
15507 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15508
15509         PR target/65240
15510         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15511         -ffast-math handling that kept non-0 constants live in the RTL
15512         until reload.  Remove logic testing the number of instructions it
15513         took to create a constant in a GPR that was never used, due to a
15514         test for soft-float earlier.
15515         (memory_fp_constant): Delete, no longer used.
15516
15517         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15518         alternatives for loading non-0 constants into GPRs for hard
15519         floating point that is no longer needed due to changes in
15520         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15521         (mov<mode>_hardfloat32): Likewise.
15522         (mov<mode>_hardfloat64): Likewise.
15523         (mov<mode>_64bit_dm): Likewise.
15524         (movtd_64bit_nodm): Likewise.
15525         (pre-reload move FP constant define_split): Delete define_split,
15526         since it is no longer used.
15527         (extenddftf2_internal): Remove GHF constraints that are not valid
15528         for extenddftf2.
15529
15530 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15531
15532         PR rtl-optimization/63491
15533         * lra-constraints.c (check_and_process_move): Use src instead of
15534         sreg.  Remove some dead code.
15535
15536 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15537
15538         PR ipa/65380
15539         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15540         (sem_variable::merge): Likewise.
15541
15542 2015-03-19  Martin Liska  <mliska@suse.cz>
15543
15544         PR ipa/65465
15545         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15546         all fields of cgraph_thunk_info.
15547
15548 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15549
15550         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15551         clone instrumented thunks.
15552
15553 2015-03-19  Richard Biener  <rguenther@suse.de>
15554
15555         Revert
15556         2015-03-10  Richard Biener  <rguenther@suse.de>
15557
15558         PR middle-end/63155
15559         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15560         * tree-ssa-coalesce.c: Include timevar.h.
15561         (attempt_coalesce): Handle graph being NULL.
15562         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15563         Split out abnormal coalescing to ...
15564         (perform_abnormal_coalescing): ... this function.
15565         (coalesce_ssa_name): Perform abnormal coalescing without computing
15566         live/conflict.
15567         (verify_ssa_coalescing_worker): New function.
15568         (verify_ssa_coalescing): Likewise.
15569
15570 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15571             Jakub Jelinek  <jakub@redhat.com>
15572
15573         PR sanitizer/65400
15574         * tsan.c (instrument_gimple): Clear tail call flag on
15575         calls.
15576
15577 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15578
15579         PR sanitizer/65400
15580         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15581         call in the return bb.
15582         (find_split_points): Add RETURN_BB argument, don't call
15583         find_return_bb.
15584         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15585         if true append TSAN_FUNC_EXIT internal call after the call to
15586         the split off function.
15587         (execute_split_functions): Call find_return_bb here.
15588         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15589         Adjust find_split_points and split_function calls.
15590
15591 2015-03-18  DJ Delorie  <dj@redhat.com>
15592
15593         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15594         (iorqi3_virt): Likewise.
15595
15596 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15597
15598         * tree-parloops.c (parallelize_loops): Make static.
15599         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15600
15601 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15602
15603         PR middle-end/64491
15604         Revert:
15605         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15606
15607         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15608         condition would be removed due to undefined behaviour.
15609
15610 2015-03-18  Martin Liska  <mliska@suse.cz>
15611
15612         PR ipa/65432
15613         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15614         xstrdup_for_dump wrapper.
15615         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15616         sem_item::name.
15617         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15618         with xstrdup_for_dump.
15619         (sem_variable::equals): Likewise.
15620         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15621         sem_item::name.
15622         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15623         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15624         symtab_node::asm_name with xstrdup_for_dump.
15625         (congruence_class::dump): Use symtab_node::name instead of
15626         sem_item::name.
15627         * ipa-icf.h (symtab_node::name): Remove.
15628         (symtab_node::asm_name): Likewise.
15629
15630 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15631
15632         PR tree-optimization/65450
15633         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15634         function.
15635         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15636         it instead of duplicate_ssa_name_ptr_info.
15637
15638         PR target/65222
15639         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15640
15641 2015-03-18  Richard Biener  <rguenther@suse.de>
15642
15643         * tree-data-ref.h (struct access_matrix): Remove.
15644         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15645         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15646         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15647         (am_vector_index_for_loop): Likewise.
15648         (struct data_reference): Remove access_matrix member.
15649         (DR_ACCESS_MATRIX): Remove.
15650         (lambda_vector_new): Add comment.
15651         (lambda_matrix_new): Use XOBNEWVEC.
15652
15653 2015-03-18  Richard Biener  <rguenther@suse.de>
15654
15655         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15656         (pass_ch::execute): Cleanup the CFG only if we did sth.
15657         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15658
15659 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15660
15661         * expmed.c (synth_mult): Use std::swap instead of manually
15662         swapping algorithms.
15663
15664 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15665
15666         PR target/65078
15667         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15668
15669 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15670
15671         PR target/65296
15672         * config/avr/avr.opt (-nodevicelib): New option.
15673         * doc/invoke.texi (AVR Options): Document it.
15674         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15675         libgcc.a, libc.a, libm.a.
15676         * config/avr/specs.h: Same.
15677         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15678         which don't (directly) depend on the device.  Print more help.
15679         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15680         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15681         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15682         case of an error.
15683         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15684         for specs file name.
15685         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15686         * config/avr/avr-mcus.def: Adjust initializers and comments.
15687
15688 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15689
15690         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15691         DECL_ONE_ONLY to check if decl is one only.
15692         * ipa-split.c (consider_split): Limit splitt of one only functions.
15693
15694 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15695
15696         PR tree-optimization/65427
15697         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15698         functions.
15699         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15700
15701 2015-03-16  Marek Polacek  <polacek@redhat.com>
15702
15703         * cgraph.h (add_new_static_var): Remove declaration.
15704         * varpool.c (add_new_static_var): Remove function.
15705
15706 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15707
15708         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15709         instead of vec<tree> * with vec_alloc and release for args.
15710         Adjust all users.
15711
15712         PR middle-end/65431
15713         * omp-low.c (delete_omp_context): Only splay_tree_delete
15714         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15715         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15716
15717 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15718
15719         PR sanitizer/64820
15720         * cfgexpand.c (align_base): New function.
15721         (alloc_stack_frame_space): Call it.
15722         (expand_stack_vars): Align prev_frame to be sure
15723         data->asan_vec elements aligned properly.
15724
15725 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
15726
15727         PR middle-end/65409
15728         * expr.c (store_field): Do not do a direct block copy if the source is
15729         a PARALLEL with BLKmode.
15730
15731 2015-03-16  Tom de Vries  <tom@codesourcery.com>
15732
15733         PR middle-end/65414
15734         Revert:
15735         2015-03-12  Tom de Vries  <tom@codesourcery.com>
15736
15737         PR rtl-optimization/64895
15738         * lra-lives.c (check_pseudos_live_through_calls): Use
15739         actual_call_used_reg_set instead of call_used_reg_set, if available.
15740
15741 2015-03-16  Alan Modra  <amodra@gmail.com>
15742
15743         PR target/63150
15744         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
15745         Modify Z->r bswapdi splitter to use dest in place of scratch.
15746         In r->Z and Z->r bswapdi splitter rename word_high, word_low
15747         to word1, word2 and rearrange logic to suit.
15748         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
15749         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
15750         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
15751         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
15752         early clobber.
15753
15754 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
15755
15756         PR tree-optimization/65369
15757         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
15758         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
15759         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
15760
15761         PR tree-optimization/65418
15762         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
15763         are casts in the first PLUS_EXPR operand, ensure tbias and
15764         *totallowp are in the inner type.
15765
15766         PR rtl-optimization/65401
15767         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
15768         argument.  If true, adjust_address_nv of x with big-endian
15769         correction for the mode widening to GET_MODE (y).
15770         (make_field_assignment): Don't do MEM mode widening here.
15771         Use MEM_P instead of GET_CODE == MEM.
15772
15773 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
15774
15775         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
15776         the external decls.
15777
15778 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15779
15780         PR target/64600
15781         * config/arm/arm.c (arm_gen_constant, AND case): Use
15782         ARM_SIGN_EXTEND when constructing AND mask.
15783
15784 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15785
15786         * graph.c (print_graph_cfg): Make function names visible and append
15787         parenthesis to it.  Also make groups of basic blocks belonging to the
15788         same function visible.
15789
15790 2015-03-12  Richard Biener  <rguenther@suse.de>
15791
15792         PR middle-end/44563
15793         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
15794         to avoid quadratic behavior with inline expansion splitting blocks.
15795         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
15796         with the successor if the predecessor will be merged with it.
15797         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
15798         entry block with its successor.
15799
15800 2015-03-13  Richard Biener  <rguenther@suse.de>
15801
15802         PR middle-end/44563
15803         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
15804         (cleanup_tree_cfg_1): Do not call it.
15805         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
15806         (fixup_noreturn_call): Mark the stmt as control altering.
15807         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
15808         here.
15809         (pass_data_fixup_cfg): Produce a dump file.
15810         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
15811         (need_noreturn_fixup): New global.
15812         (pass_dominator::execute): Fixup queued noreturn calls.
15813         (optimize_stmt): Queue calls that became noreturn for fixup.
15814         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
15815         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
15816         (el_to_fixup): New global.
15817         (eliminate_dom_walker::before_dom_childre): Queue calls that
15818         became noreturn for fixup.
15819         (eliminate): Fixup queued noreturn calls.
15820         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
15821         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
15822         (substitute_and_fold_dom_walker::before_dom_children): Queue
15823         alls that became noreturn for fixup.
15824         (substitute_and_fold): Fixup queued noreturn calls.
15825
15826 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
15827
15828         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
15829         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
15830         are building; for methods check ODR type of class they belong to if
15831         they may lead to a polymorphic call.
15832         (sem_function::compare_polymorphic_p): Be bit smarter about testing
15833         when function may lead to a polymorphic call.
15834         (sem_function::compare_type_list): Remove.
15835         (sem_variable::equals): Update use of compatible_types_p.
15836         (sem_variable::parse_tree_refs): Remove.
15837         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
15838         cdtor.
15839         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
15840         matching here.
15841         (func_checker::compatible_polymorphic_types_p): Break out from ...
15842         (unc_checker::compatible_types_p): ... here.
15843         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
15844         Declare.
15845         (unc_checker::compatible_types_p): Update.
15846         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
15847         Remove.
15848
15849 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15850
15851         PR rtl-optimization/65235
15852         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
15853         When first element of vec_concat is const_int, calculate its size
15854         using second element.
15855
15856 2015-03-12  Richard Biener  <rguenther@suse.de>
15857
15858         PR middle-end/65270
15859         * fold-const.c (operand_equal_p): Fix ordering of resetting
15860         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
15861
15862 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15863
15864         * config/s390/s390.c (s390_reorg): Move code to output nops after label
15865         to s390_reorg ().
15866         (s390_asm_output_function_label): Likewise.
15867         * config/s390/s390.c (s390_asm_output_function_label):
15868         Fix function label alignment with -mhtopatch.
15869         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
15870         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
15871         ("nop_2_byte"): New define_insn.
15872         ("nop_4_byte"): Likewise.
15873         ("nop_6_byte"): Likewise.
15874         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
15875         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
15876
15877 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15878
15879         PR target/65103
15880         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
15881         register.
15882
15883 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15884
15885         PR target/65044
15886         * toplev.c (process_options): Restrict Pointer Bounds Checker
15887         usage with Address Sanitizer.
15888
15889 2015-03-12  Richard Biener  <rguenther@suse.de>
15890
15891         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
15892         to split on.
15893         * omp-low.c (expand_omp_taskreg): Split block before removing
15894         the stmt.
15895         (expand_omp_target): Likewise.
15896         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
15897         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
15898         stmt to split_block.
15899
15900 2015-03-12  Tom de Vries  <tom@codesourcery.com>
15901
15902         PR rtl-optimization/64895
15903         * lra-lives.c (check_pseudos_live_through_calls): Use
15904         actual_call_used_reg_set instead of call_used_reg_set, if available.
15905
15906 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15907
15908         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
15909         (cgraph_node::remove): Likewise.
15910         (cgraph_node::get_untransformed_body): Likewise.
15911         * varpool.c (varpool_node::remove): Likewise.
15912         (varpool_node::get_constructor): Add sanity check.
15913
15914 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15915
15916         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
15917         old GCC versions.
15918         (-fabi-compat-version): Likewise.
15919         (-ffriend-injection): Likewise.
15920         (-Wdeclaration-after-statement): Likewise.
15921         (-fomit-frame-pointer): Likewise.
15922         (-ftree-coalesce-inlined-vars): Likewise.
15923         (-fvisibility=): Likewise.
15924         * doc/extend.texi (Typeof): Likewise.
15925         (Zero Length): Likewise.
15926         (Escaped Newlines): Likewise.
15927         (Compound Literals): Likewise.
15928         (Function Attributes): Likewise.
15929         (Label Attributes): Likewise.
15930         (Type Attributes): Likewise.
15931         (Function Names): Likewise.
15932         (Other Builtins): Likewise.
15933         (Function Specific Option Pragmas): Likewise.
15934         (C++ Interface): Likewise.
15935
15936 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
15937
15938         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
15939
15940 2015-03-11  Marek Polacek  <polacek@redhat.com>
15941
15942         PR tree-optimization/65388
15943         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
15944
15945 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15946
15947         PR target/65296
15948         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
15949         * configure: Regenerate.
15950         * config.in: Regenerate.
15951         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
15952         [-mn-flash]: Document it.
15953         [__AVR_ARCH__]: Document avrtiny.
15954
15955         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
15956         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
15957         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
15958
15959 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15960
15961         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
15962
15963 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15964
15965         PR target/65242
15966         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
15967         allow reloads of PLUS in floating point/VSX registers.
15968
15969 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
15970
15971         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
15972         crypto_sha256_fast.
15973         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
15974
15975 2015-03-11  Richard Biener  <rguenther@suse.de>
15976
15977         PR tree-optimization/65310
15978         * tree-sra.c (build_ref_for_offset): Also preserve larger
15979         alignment.
15980
15981 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
15982
15983         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
15984
15985 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15986
15987         PR target/65368
15988         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
15989         new define_expand.
15990         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
15991
15992 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15993
15994         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
15995         (sem_function::equals_wpa): ... here.
15996
15997 2015-03-10  Marek Polacek  <polacek@redhat.com>
15998             Jakub Jelinek  <jakub@redhat.com>
15999
16000         PR sanitizer/65367
16001         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
16002         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
16003         separately.
16004
16005 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16006
16007         PR target/65286
16008         * config/rs6000/t-linux: For powerpc64* target set
16009         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
16010
16011 2015-03-10  Richard Biener  <rguenther@suse.de>
16012
16013         PR middle-end/44563
16014         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
16015         for redirect_all_calls.
16016
16017 2015-03-10  Marek Polacek  <polacek@redhat.com>
16018
16019         * gdbinit.in (pcfun): Define and document.
16020
16021 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
16022
16023         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
16024         of libgomp-plugin.h.
16025         (find_target_compiler): Support a case when the path to gcc is
16026         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
16027         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
16028         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
16029         libgomp-plugin.h.
16030         (main): Use GCC_INSTALL_NAME as target_driver_name.
16031         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
16032         define.
16033         (mkoffload.o): Remove obsolete include path and defines.
16034         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
16035
16036 2015-03-10  Richard Biener  <rguenther@suse.de>
16037
16038         PR middle-end/63155
16039         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16040         * tree-ssa-coalesce.c: Include timevar.h.
16041         (attempt_coalesce): Handle graph being NULL.
16042         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16043         Split out abnormal coalescing to ...
16044         (perform_abnormal_coalescing): ... this function.
16045         (coalesce_ssa_name): Perform abnormal coalescing without computing
16046         live/conflict.
16047         (verify_ssa_coalescing_worker): New function.
16048         (verify_ssa_coalescing): Likewise.
16049
16050 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16051
16052         PR target/65296
16053         * config.gcc (extra_options) [avr]: Remove.
16054         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
16055         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
16056         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
16057
16058         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
16059         (-mmcu=): Add Var and MissingArgError properties.
16060         (-march=): Remove.
16061         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
16062         * config/avr/t-multilib: Regenerate.
16063         * config/avr/specs.h: New file.
16064         * config/avr/driver-avr.c: New file.
16065         * config/avr/genopt.sh: Remove file.
16066         * config/avr/avr-tables.opt: Remove file.
16067         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
16068         * config/avr/avr-c.c: Same.
16069         * avr-arch.h: Same.
16070         (avr_current_device): Remove proto.
16071         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
16072         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
16073         (EXTRA_SPEC_FUNCTIONS): Define.
16074         (avr_devicespecs_file): New specs function proto.
16075         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
16076         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16077         (avr_current_device): Remove definition and usage.
16078         (avr_set_core_architecture): New static function.
16079         (avr_option_override): Use it.
16080         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16081         (mcu_name): New static array.
16082         (comparator, avr_archs_str, avr_mcus_str): New static functions.
16083         (avr_inform_devices, avr_inform_core_architectures): New functions.
16084         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16085         (avrlibc.h) [WITH_AVRLIBC]: Include.
16086         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16087         (print_mcu): Rewrite from scratch.
16088         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16089         Forward to avr-specific specs defined in device-specs file.
16090         * config/avr/t-avr (driver-avr.o): New rule.
16091         (avr-devices.o): Depend on avr-arch.h.
16092         (avr-mcus): No more depend on avr-tables.opt.
16093         (avr-tables.opt): Remove rule.
16094         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16095
16096 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16097
16098         * c-family/c.opt (fchkp-use-wrappers): New.
16099         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16100         (chkp_wrap_function): New.
16101         (chkp_build_instrumented_fndecl): Support wrapped
16102         functions.
16103         * doc/invoke.texi (-fcheck-pointer-bounds): New.
16104         (-fchkp-check-incomplete-type): New.
16105         (-fchkp-first-field-has-own-bounds): New.
16106         (-fchkp-narrow-bounds): New.
16107         (-fchkp-narrow-to-innermost-array): New.
16108         (-fchkp-optimize): New.
16109         (-fchkp-use-fast-string-functions): New.
16110         (-fchkp-use-nochk-string-functions): New.
16111         (-fchkp-use-static-bounds): New.
16112         (-fchkp-use-static-const-bounds): New.
16113         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16114         (-fchkp-check-read): New.
16115         (-fchkp-check-write): New.
16116         (-fchkp-store-bounds): New.
16117         (-fchkp-instrument-calls): New.
16118         (-fchkp-instrument-marked-only): New.
16119         (-fchkp-use-wrappers): New.
16120         (-static-libmpx): New.
16121         (-static-libmpxwrappers): New.
16122
16123 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16124
16125         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16126         (CHKP_SPEC): Add wrappers library.
16127         * c-family/c.opt (static-libmpxwrappers): New.
16128
16129 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16130
16131         * config/i386/linux-common.h (LIBMPX_LIBS): New.
16132         (LIBMPX_SPEC): New.
16133         (CHKP_SPEC): New.
16134         * gcc.c (CHKP_SPEC): New.
16135         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16136         * c-family/c.opt (static-libmpx): New.
16137
16138 2015-03-10  Richard Biener  <rguenther@suse.de>
16139
16140         PR middle-end/44563
16141         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16142         for compare_type.
16143         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16144         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16145         (cgraph_add_edge_to_call_site_hash): Likewise.
16146         (cgraph_node::get_edge): Likewise.
16147         (cgraph_edge::set_call_stmt): Likewise.
16148         (cgraph_edge::remove_caller): Likewise.
16149
16150 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16151
16152         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16153         (callee_saved_gpr_regs_size): ... this.
16154         (callee_saved_regs_first_regno): Rename to ...
16155         (callee_saved_first_gpr_regno): ... this.
16156         (callee_saved_regs_last_regno) Rename to ...
16157         (callee_saved_last_gpr_regno): ... this.
16158         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16159         variables.
16160         (nds32_initial_elimination_offset): Likewise.
16161         (nds32_expand_prologue): Likewise.
16162         (nds32_expand_epilogue): Likewise.
16163         (nds32_expand_prologue_v3push): Likewise.
16164         (nds32_expand_epilogue_v3pop): Likewise.
16165         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16166         Adjust renamed variables.
16167         (nds32_output_stack_pop): Likewise.
16168
16169 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16170
16171         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16172         code in comment.
16173
16174 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16175
16176         PR rtl-optimization/65321
16177         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16178         than shift mode.
16179         * var-tracking.c (use_narrower_mode): Likewise.
16180
16181 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16182
16183         PR tree-optimization/65355
16184         * varasm.c (notice_global_symbol): Do not produce RTL.
16185         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16186         anchor.
16187         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16188         check for section anchors.
16189
16190 2015-03-10  Alan Modra  <amodra@gmail.com>
16191
16192         PR target/65286
16193         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16194         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16195         given --with-cpu=native.
16196         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16197         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16198         and powerpc64le.
16199         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16200         rs6000_isa_flags rather than TARGET_64BIT.
16201
16202 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16203             Kaz Kojima  <kkojima@gcc.gnu.org>
16204
16205         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16206
16207 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16208
16209         PR lto/65361
16210         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16211         on a TREE_BINFO, instead use BINFO_TYPE.
16212
16213 2015-03-09  Richard Biener  <rguenther@suse.de>
16214
16215         PR middle-end/65270
16216         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16217         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16218         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16219         of that.  When comparing dereferences compare alignment.
16220         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16221
16222 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16223
16224         * ipa-inline-analysis.c (check_callers): Check
16225         node->can_remove_if_no_direct_calls_and_refs_p.
16226         (growth_likely_positive): Reorganize to call
16227         can_remove_if_no_direct_calls_p later.
16228         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16229         will_be_removed_from_program_if_no_direct_calls_p): Add
16230         will_inline parameter.
16231         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16232         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16233         Handle inliner case correctly.
16234
16235 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16236
16237         PR tree-optimization/63743
16238         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16239         had its definition forwarded by TER.
16240
16241 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16242
16243         PR lto/65316
16244         * ipa-utils.h (types_odr_comparable): Add strict argument.
16245         * ipa-devirt.c: Fix whitespace;
16246         (odr_hasher): Remove.
16247         (odr_name_hasher, odr_vtable_hasher): New hashers.
16248         (can_be_name_hashed_p): New predicate.
16249         (hash_type_name): remove.
16250         (hash_odr_name): New.
16251         (odr_name_hasher::hash): new.
16252         (can_be_vtable_hashed_p): New.
16253         (hash_odr_vtable): New.
16254         (odr_vtable_hasher::hash): New.
16255         (types_same_for_odr): Add strict parameter.
16256         (types_odr_comparable): Likewise.
16257         (odr_name_hasher::equal): New.
16258         (odr_vtable_hasher::equal): New.
16259         (odr_name_hasher::remove): New.
16260         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16261         (odr_vtable_hash_type): New.
16262         (odr_vtable_hash): New.
16263         (odr_subtypes_equivalent_p): Do strict comparsion.
16264         (add_type_duplicate): Merge type names; cleanup; avoid type
16265         duplicates.
16266         (register_odr_type): Initialize vtable hash.
16267         (build_type_inheritance_graph): Likewise
16268         (get_odr_type): Reorg to use two hashes.
16269         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16270         output.
16271         (ipa_devirt): Dump type_inheritance_graph.
16272         (types_same_for_odr): Add strict mode.
16273
16274 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16275
16276         PR ipa/65334
16277         * cgraph.h (symtab_node): Add definition_alignment,
16278         can_increase_alignment_p and increase_alignment.
16279         * symtab.c (symtab_node::can_increase_alignment_p,
16280         increase_alignment_1, symtab_node::increase_alignment,
16281         symtab_node::definition_alignment): New.
16282         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16283         can_increase_alignment_p.
16284         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16285         * tree-vect-stmts.c (ensure_base_align): Likewise.
16286         * varasm.c (function_section_1): Use definition_alignment.
16287         (assemble_start_function): Likewise.
16288         (emit_local): likewise.
16289         (build_constant_desc): Likewsie.
16290         (output_constant_def_contents): Likewise.
16291         (place_block_symbol): Likewise.
16292         (output_object_block): Likewise.
16293
16294 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16295
16296         PR ipa/65316
16297         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16298         when outputting debug.
16299
16300 2015-03-07  Marek Polacek  <polacek@redhat.com>
16301             Martin Uecker  <uecker@eecs.berkeley.edu>
16302
16303         PR sanitizer/65280
16304         * doc/invoke.texi: Update description of -fsanitize=bounds.
16305
16306 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16307
16308         * tree-ssa-phiopt.c (neg_replacement): Remove.
16309         (tree_ssa_phiopt_worker): Remove negate optimization.
16310
16311 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16312
16313         PR ipa/65302
16314         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16315
16316 2015-03-06  Richard Biener  <rguenther@suse.de>
16317
16318         PR middle-end/64928
16319         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16320         and liveout_obstack members.
16321         (calculate_live_on_exit): Remove.
16322         (calculate_live_ranges): Change declaration.
16323         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16324         (new_tree_live_info): Adjust.
16325         (calculate_live_ranges): Delete livein when not wanted.
16326         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16327         Deal with partly deleted live info.
16328         (loe_visit_block): Remove temporary bitmap by using
16329         bitmap_ior_and_compl_into.
16330         (live_worklist): Adjust accordingly.
16331         (calculate_live_on_exit): Make static.
16332         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16333         we do not need livein.
16334
16335 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16336
16337         * real.c (real_from_string): Fix typo in assertion.
16338
16339 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16340
16341         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16342         the patch.
16343
16344 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16345
16346         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16347
16348 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16349
16350         PR target/64342
16351         * lra-assigns.c (find_hard_regno_for): Rename to
16352         find_hard_regno_for_1.  Add a new parameter.
16353         (find_hard_regno_for): New function using find_hard_regno_for_1.
16354
16355 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16356
16357         PR rtl-optimization/65067
16358         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16359         strict volatile bitfield handling.
16360
16361 2015-03-05  Martin Liska  <mliska@suse.cz>
16362
16363         PR ipa/65318
16364         * ipa-icf.c (sem_variable::equals): Compare variables types.
16365
16366 2015-03-05  Richard Henderson  <rth@redhat.com>
16367
16368         PR target/65121
16369         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16370         correctly check weak symbol binding.
16371
16372 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16373
16374         PR middle-end/65315
16375         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16376         needed alignment.
16377
16378 2015-03-05  Martin Liska  <mliska@suse.cz>
16379
16380         * ipa-inline.c (inline_small_functions): Set default value to
16381         prevent warning during bootstrap.
16382         * tree.h: Add pragma guard that ignores false positives during
16383         bootstrap.
16384
16385 2015-03-05  Richard Biener  <rguenther@suse.de>
16386
16387         PR tree-optimization/65310
16388         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16389         Properly preserve alignment of the base of the access.
16390
16391 2015-03-05  Richard Biener  <rguenther@suse.de>
16392
16393         PR ipa/65270
16394         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16395         Compare dependence info.
16396
16397 2015-03-05  Richard Biener  <rguenther@suse.de>
16398
16399         PR middle-end/65233
16400         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16401         tree-into-ssa.h.
16402         (walk_ssa_copies): Revert last chage.  Instead do not walk
16403         SSA names registered for SSA update.
16404
16405 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16406
16407         PR ipa/65270
16408         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16409         vtable references for their containing type.
16410         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16411         and type attributes.
16412
16413 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16414
16415         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16416         before negating it.
16417         * stor-layout.c (finalize_record_size): Revert latest change.
16418
16419 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16420
16421         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16422
16423 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16424
16425         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16426         for correct comdat handling.
16427         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16428         Likewise.
16429         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16430         (used_from_object_file_p_worker): Remove.
16431         (cgraph_node::only_called_directly_or_alised): Add
16432         used_from_object_file_p.
16433         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16434         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16435         can_remove_if_no_direct_calls_and_refs_p.
16436
16437 2015-03-04  Nick Clifton  <nickc@redhat.com>
16438
16439         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16440         General register class.
16441         * config/rl78/rl78-real.md: Replace general register constraints
16442         with real+virtual register constraints.
16443
16444 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16445
16446         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16447         from checking for -mhtm option.
16448
16449 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16450
16451         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16452         (struct ipa_sra_check_caller_data): Add has_thunk field.
16453         (ipa_sra_check_caller): Check for thunk.
16454         (ipa_sra_preliminary_function_checks): Give up on function with
16455         thunks.
16456         (ipa_early_sra): Use call_for_symbol_and_aliases.
16457
16458 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16459
16460         PR target/65249
16461         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16462         called for __stack_chk_guard symbol.
16463
16464 2015-03-03  DJ Delorie  <dj@redhat.com>
16465
16466         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16467         inc/dec.
16468         (*addhi3_real): Likewise.
16469         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16470         pattern to match incrementing memory.
16471         * config/rl78/predicates.md (rl78_1_2_operand): New.
16472         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16473         it's the same and only mem.
16474         (rl78_alloc_physical_registers_op2): If there's effectively only
16475         one MEM, transcode it into HL.
16476         (rl78_far_p): Reject addresses that aren't legitimate.
16477
16478 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16479
16480         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16481         negating it.
16482
16483         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16484
16485 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16486
16487         Implement call0 ABI for xtensa
16488         * config/xtensa/constraints.md ("a" constraint): Include stack
16489         pointer in case of call0 ABI.
16490         ("q" constraint): Make empty in case of call0 ABI.
16491         ("D" constraint): Include stack pointer in case of call0 ABI.
16492         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16493         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16494         prototypes.
16495         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16496         variable.
16497         (xtensa_regno_to_class): Make it a local variable in the
16498         function xtensa_regno_to_class.
16499         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16500         macro, function prototype and implementation.
16501         (reg_nonleaf_alloc_order): Make it a local variable in the
16502         function order_regs_for_local_alloc.
16503         (xtensa_conditional_register_usage): New function.
16504         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16505         (xtensa_valid_move): Allow direct moves to stack pointer
16506         register in call0 ABI.
16507         (xtensa_setup_frame_addresses): Only spill register windows in
16508         windowed ABI.
16509         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16510         call0 ABI respectively.
16511         (xtensa_function_arg_1): Only mark a7 register for copying in
16512         windowed ABI.
16513         (xtensa_call_save_reg): New function.
16514         (compute_frame_size): Add space for callee saved register
16515         storage to the frame size in call0 ABI.
16516         (xtensa_expand_prologue): Generate code to set up stack frame
16517         and save callee-saved registers in call0 ABI.
16518         (xtensa_expand_epilogue): New function.
16519         (xtensa_set_return_address): New function.
16520         (xtensa_return_addr): Calculate return address in call0 ABI.
16521         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16522         emit copying code in windowed ABI.
16523         (order_regs_for_local_alloc): Add preferred register allocation
16524         order for non-leaf function in call0 ABI.
16525         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16526         (xtensa_asm_trampoline_template): Add trampoline generation for
16527         call0 ABI.
16528         (xtensa_trampoline_init): Add trampoline initialization for
16529         call0 ABI.
16530         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16531         functions.
16532         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16533         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16534         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16535         ABI call-used registers.
16536         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16537         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16538         call0 ABI.
16539         (REG_CLASS_CONTENTS): Include all registers into the preferred
16540         reload registers set, adjust the set in the
16541         xtensa_conditional_register_usage.
16542         (xtensa_regno_to_class): Drop variable declaration.
16543         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16544         function.
16545         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16546         respectively.
16547         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16548         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16549         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16550         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16551         location in call0 ABI.
16552         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16553         stack adjustment size when handling exception.
16554         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16555         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16556         definitions.
16557         ("return" pattern): Generate ret.n/ret in call0 ABI.
16558         ("epilogue" pattern): Expand epilogue.
16559         ("nonlocal_goto" pattern): Use default in call0 ABI.
16560         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16561         emit eh_set_a0_* depending on ABI.
16562         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16563         ("eh_set_a0_call0", "blockage"): New patterns.
16564
16565 2015-03-03  Martin Liska  <mliska@suse.cz>
16566
16567         PR ipa/65287
16568         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16569
16570 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16571
16572         PR 65138/target
16573         * config/rs6000/rs6000-tables.opt: Regenerate table.
16574
16575 2015-03-03  Renlin Li  <renlin.li@arm.com>
16576
16577         * doc/md.texi (@item ^): Change ? into ^.
16578
16579 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16580
16581         * doc/tm.texi: Regenerated.
16582
16583 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16584
16585         * builtins.c (expand_builtin_return_addr): Add
16586         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16587         surrounding #ifdef.
16588         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16589         definition to 1.
16590         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16591         Likewise.
16592         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16593         undefined.
16594         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16595         paragraph.
16596
16597 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16598             Eric Botcazou  <ebotcazou@adacore.com>
16599
16600         * tree-sra.c (ipa_sra_check_caller_data): New type.
16601         (has_caller_p): Removed.
16602         (ipa_sra_check_caller): New function.
16603         (ipa_sra_preliminary_function_checks): Use it.
16604
16605 2015-03-03  Martin Liska  <mliska@suse.cz>
16606
16607         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16608         instead of if branch.
16609
16610 2015-03-03  Martin Liska  <mliska@suse.cz>
16611
16612         PR ipa/65282
16613         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16614
16615 2015-03-23  Jeff Law  <law@redhat.com>
16616
16617         PR tree-optimization/65241
16618         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16619         hash table if INSERT is true.
16620
16621 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16622
16623         PR target/65296
16624         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16625
16626 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16627
16628         PR target/64331
16629         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16630         (avr_pass_data_recompute_notes): New static variable.
16631         (avr_pass_recompute_notes): New class.
16632         (avr_register_passes): New static function.
16633         (avr_option_override): Call it.
16634
16635 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16636
16637         Fix various problems with specs file generation.
16638
16639         PR target/65296
16640         * config.gcc (extra_gcc_objs) [avr]: Remove.
16641         * config/avr/driver-avr.c: Remove file.
16642         * config/avr/t-avr (driver-avr.o): Remove rule.
16643         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16644         INCLUDES to build.  Depend on TM_H.
16645         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16646         build warnings.  Fix non-matching types and non-existing %-codes.
16647         (tm.h): Include.
16648         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16649         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16650         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16651         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16652         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16653         (LIBGCC_SPEC): Remove definitions.
16654
16655 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16656
16657         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16658         to create a register in testing mode.
16659
16660 2015-03-03  Martin Liska  <mliska@suse.cz>
16661             Jan Hubicka  <hubicka@ucw.cz>
16662
16663         PR ipa/65263
16664         * cgraph.c (cgraph_node::has_thunk_p): New function.
16665         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16666         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16667         (sem_function::merge): Assert is changed.
16668
16669 2015-03-03  Martin Liska  <mliska@suse.cz>
16670             Martin Jambor  <mjambor@suse.cz>
16671
16672         PR ipa/65087
16673         * ipa-icf.c (sem_item_optimizer::execute): Change function
16674         return value to boolean.
16675         (sem_item_optimizer::merge_classes): Likewise.
16676         (ipa_icf_driver): Return TODO_remove_functions in case there's
16677         a merge operation processed.
16678         * ipa-icf.h: Change function return value to boolean.
16679
16680 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16681
16682         PR 65138/target
16683         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16684         processor type for 64-bit little endian PowerPC.
16685
16686         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16687         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16688         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16689         printing built-in mask so it does not pass NULL pointers.
16690
16691         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16692         -mcpu=powerpc64le.
16693
16694 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16695
16696         PR target/58158
16697         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16698         !ISA_HAS_FP_CONDMOVE.
16699
16700 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16701
16702         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16703         reload_completed.
16704
16705 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16706
16707         * doc/invoke.texi (Options for Code Generation Conventions):
16708         Fix URL of DSO paper.
16709
16710 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16711
16712         PR ipa/65130
16713         * ipa-inline.c (check_callers): Looks for recursion.
16714         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16715         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16716         summary of inline clones.
16717         (do_estimate_growth_1): Fix recursion check.
16718
16719 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16720
16721         PR ipa/64988
16722         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16723         comdat groups.
16724
16725 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16726             Aldy Hernandez  <aldyh@redhat.com>
16727
16728         PR lto/65276
16729         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
16730         when checking TYPE_BINFO.
16731
16732 2015-03-02  Richard Biener  <rguenther@suse.de>
16733
16734         PR ipa/65270
16735         * ipa-icf-gimple.c: Include builtins.h.
16736         (func_checker::compare_memory_operand): Compare base alignment.
16737
16738 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16739
16740         PR target/65184
16741         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
16742         are never passed by reference.
16743
16744 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16745
16746         PR target/65183
16747         * tree-chkp.c (chkp_check_lower): Don't check against
16748         zero bounds for already instrumented functions.
16749         (chkp_check_upper): Likewise.
16750         (chkp_fini): Clean pass local data to avoid wrong reusage.
16751
16752 2015-02-28  Martin Liska  <mliska@suse.cz>
16753             Jan Hubicka  <hubicka@ucw.cz>
16754
16755         * ipa-icf.c (sem_variable::equals): Improve debug output;
16756         get variable constructor.
16757         (sem_variable::parse): Do not filter out too early; give up on
16758         volatile and register vars.
16759         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
16760         variables.
16761         * ipa-icf.h (sem_variable::init): Do not set ctor.
16762         (sem_variable::ctor): Remove.
16763
16764 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
16765
16766         PR middle-end/65233
16767         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
16768
16769 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16770
16771         * ipa-icf.c: Include stor-layout.h
16772         (sem_function::compare_cgraph_references): Rename to ...
16773         (sem_item::compare_cgraph_references): ... this one.
16774         (sem_variable::equals_wpa): New function
16775         (sem_variable::equals): Do not check stuff already verified by
16776         equals_wpa.
16777         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
16778         * ipa-icf.h (sem_item): Add compare_cgraph_references.
16779         (sem_function): Remove compare_cgraph_references.
16780         (sem_variable): Turns equals_wpa into non-inline.
16781
16782 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16783
16784         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
16785         (sem_item::add_expr): New function.
16786         (sem_function::hash_stmt): Handle operands of most statements.
16787         (sem_variable::get_hash): Hash the actual constructor.
16788         * ipa-icf.h (sem_item): Add add_expr.
16789         (sem_function): Update prototype of hash_stmt
16790
16791 2015-02-28  Martin Liska  <mliska@suse.cz>
16792             Jan Hubicka  <hubicka@ucw.cz>
16793
16794         PR ipa/65245
16795         * ipa-icf-gimple.c (func_checker::compare_function_decl):
16796         Remove.
16797         (func_checker::compare_variable_decl): Skip symtab vars.
16798         (func_checker::compare_cst_or_decl): Update.
16799         * ipa-icf.c (sem_function::parse): Do not consider aliases.
16800         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
16801         use correct symtab predicates.
16802         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
16803         (sem_variable::parse):  Update comment.
16804         (sem_item_optimizer::build_graph): Consider ultimate aliases
16805         for references.
16806
16807 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16808
16809         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
16810         of OBJ_TYPE_REF.
16811
16812 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16813
16814         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
16815         (sem_variable::merge) Likewise.
16816
16817 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16818
16819         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
16820         target; also match flag_ipa_devirt.
16821
16822 2015-03-01  Martin Liska  <mliska@suse.cz>
16823             Jan Hubicka  <hubicka@ucw.cz>
16824
16825         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
16826         Validate variable alignment.
16827         * ipa-icf.c (sem_function::equals_private): Be more precise
16828         about non-common function attributes.
16829         (sem_variable::equals): Likewise.
16830
16831 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16832
16833         PR ipa/65237
16834         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
16835         across COMDAT group boundary.
16836
16837 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16838
16839         PR ipa/65232
16840         * ipa-icf.c (clear_decl_rtl): New function.
16841         (sem_function::merge): Clear RTL before forming alias.
16842         (sem_variable::merge): Clear RTL before forming alias.
16843
16844 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16845
16846         PR ipa/65236
16847         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
16848
16849 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
16850
16851         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
16852         to neon_to_gp<q>.
16853
16854 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16855
16856         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
16857         a typo in the description.
16858
16859 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16860
16861         PR target/64317
16862         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16863         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16864         * lra-constraints.c: Include "params.h".
16865         (EBB_PROBABILITY_CUTOFF): Use
16866         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
16867         (lra_inheritance): Use '<' instead of '<=' for
16868         EBB_PROBABILITY_CUTOFF.
16869         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
16870         Document change.
16871
16872 2015-02-27  Martin Liska  <mliska@suse.cz>
16873
16874         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
16875         vector length condition.
16876
16877 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
16878
16879         * doc/extend.texi (x86 transactional memory intrinsics):
16880         Reorganize discussion of _xbegin.  Clarify that the return
16881         value is a bit mask.  Expand example and move to end of section.
16882
16883 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16884             Aldy Hernandez  <aldyh@redhat.com>
16885
16886         PR rtl-optimization/65220
16887         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
16888
16889 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16890
16891         PR target/65032
16892         * lra-remat.c (update_scratch_ops): New.
16893         (do_remat): Call it.
16894         * lra.c (lra_register_new_scratch_op): New. Take code from ...
16895         (remove_scratches): ... here.
16896         * lra-int.h (lra_register_new_scratch_op): New prototype.
16897
16898 2015-02-27  Marek Polacek  <polacek@redhat.com>
16899
16900         PR c/65040
16901         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
16902         -Wformat-signedness anymore.
16903
16904 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16905
16906         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
16907         function.
16908         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
16909
16910 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16911
16912         * config/s390/s390.c (enum s390_builtin):
16913         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
16914         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
16915         (s390_init_builtins): Generate new builtin functions.
16916         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
16917         (s390_sfpc, s390_efpc): New pattern definitions.
16918
16919 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16920
16921         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
16922         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
16923         (s390_builtin_decls): New array.
16924         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
16925         (s390_builtin_decl): New function.
16926         (TARGET_BUILTIN_DECL): Define macro.
16927
16928 2015-02-27  Richard Biener  <rguenther@suse.de>
16929
16930         PR middle-end/63175
16931         * builtins.c (get_object_alignment_2): Make sure to re-apply
16932         the ANDed mask after recursing to its operand gets us a new
16933         misalignment bit position.
16934
16935 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
16936             Martin Liska  <mliska@suse.cz>
16937
16938         PR bootstrap/65150
16939         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
16940         Use address_matters_p.
16941         (redirect_all_callers, set_addressable): New functions.
16942         (sem_function::merge): Reorganize and fix merging issues.
16943         (sem_variable::merge): Likewise.
16944         (sem_variable::compare_sections): Remove.
16945         * common.opt (fmerge-all-constants, fmerge-constants): Remove
16946         Optimization flag.
16947         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
16948         redirect them.
16949         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
16950         decl is used.
16951         (address_matters_1): New function.
16952         (symtab_node::address_matters_p): New function.
16953         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
16954         check for merged flag.
16955         * cgraph.h (address_matters_p): Declare.
16956         (symtab_node::address_taken_from_non_vtable_p): Remove.
16957         (symtab_node::address_can_be_compared_p): New method.
16958         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
16959         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
16960         Remove.
16961         (comdat_can_be_unshared_p_1) Use address_matters_p.
16962         (update_vtable_references): Fix formating.
16963         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
16964         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
16965         * cgraphclones.c: Preserve merged and icf_merged flags.
16966
16967 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
16968
16969         * doc/extend.texi (Function Attributes): Fix spelling and typos.
16970         (Label Attributes): Likewise.
16971         (Cilk Plus Builtins): Likewise.
16972         (ARC SIMD Built-in Functions): Likewise.
16973         (ARM C Language Extensions (ACLE)): Likewise.
16974         (PowerPC Built-in Functions): Likewise.
16975         (PowerPC Hardware Transactional Memory Built-in Functions):
16976         Likewise.
16977
16978 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16979
16980         PR tree-optimization/65216
16981         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
16982         new stmt and new SSA_NAME for lhs whenever the arguments have
16983         changed and weren't just swapped.  Fix comment typo.
16984
16985         PR tree-optimization/65215
16986         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
16987         for PDP endian targets.
16988         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
16989         Fix up formatting issues.
16990         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
16991         size is smaller than the original, adjust MEM_REF offset by the
16992         difference of sizes.  Use is_gimple_mem_ref_addr instead of
16993         is_gimple_min_invariant test to avoid adding address temporaries.
16994
16995 2015-02-26  Martin Liska  <mliska@suse.cz>
16996             Jan Hubicka  <hubicka@ucw.cz>
16997
16998         PR ipa/64693
16999         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
17000         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
17001         (sem_item_optimizer::process_cong_reduction): Include division by
17002         sensitive references.
17003         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
17004         * ipa-ref.c (ipa_ref::address_matters_p): New function.
17005         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
17006
17007 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
17008
17009         PR target/65192
17010         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
17011         Remove.
17012         * config/avr/avr.c: Same.
17013         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
17014         Refuse any constant address not in 0..0xbf.
17015         * config/avr/avr.md (*mov<mode>, *movsf): Remove
17016         tiny_valid_direct_memory_access_range from insn conditions.
17017         (mov<mode>): Don't special-case expansion of avrtiny addresses.
17018
17019 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
17020
17021         PR target/61142
17022         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
17023         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
17024         * config/sh/predicates.md (const_logical_operand): New predicate.
17025         * config/sh/sh.md: Add new peephole2 patterns.
17026
17027 2015-02-26  Marek Polacek  <polacek@redhat.com>
17028
17029         PR ipa/65008
17030         * ipa-inline.c (early_inliner): Recompute inline parameters.
17031
17032 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17033
17034         PR target/65171
17035         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
17036         instructions with TImode operands are included in the analysis.
17037
17038 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17039
17040         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
17041         of an EDGE_FSM_THREAD.
17042
17043 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
17044
17045         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
17046
17047 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
17048
17049         PR debug/46102
17050         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
17051
17052 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17053
17054         PR tree-optimization/65048
17055         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
17056         (thread_through_all_blocks): Call valid_jump_thread_path.
17057         Remove invalid FSM jump-thread paths.
17058
17059 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17060
17061         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
17062         (ipa_write_optimization_summaries): Likewise.
17063         * tree-streamer.h: Include data-streamer.h.
17064         (streamer_mode_table): Declare extern variable.
17065         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
17066         * lto-streamer-out.c (lto_output_init_mode_table,
17067         lto_write_mode_table): New functions.
17068         (produce_asm_for_decls): Call lto_write_mode_table when streaming
17069         offloading LTO.
17070         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
17071         (lto_create_simple_input_block): Add mode_table argument to the
17072         lto_input_block constructors.
17073         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
17074         Likewise.
17075         * data-streamer-in.c (string_for_index): Likewise.
17076         * ipa-inline-analysis.c (inline_read_section): Likewise.
17077         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17078         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17079         * lto-streamer-in.c (lto_read_body_or_constructor,
17080         lto_input_toplevel_asms): Likewise.
17081         (lto_input_mode_table): New function.
17082         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17083         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17084         Use bp_pack_machine_mode.
17085         * real.h (struct real_format): Add name field.
17086         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17087         (class lto_input_block): Add mode_table member.
17088         (lto_input_block::lto_input_block): Add mode_table_ argument,
17089         initialize mode_table.
17090         (struct lto_file_decl_data): Add mode_table field.
17091         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17092         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17093         unpack_ts_decl_common_value_fields,
17094         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17095         * tree-streamer.c (streamer_mode_table): New variable.
17096         * real.c (ieee_single_format, mips_single_format,
17097         motorola_single_format, spu_single_format, ieee_double_format,
17098         mips_double_format, motorola_double_format,
17099         ieee_extended_motorola_format, ieee_extended_intel_96_format,
17100         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17101         ibm_extended_format, mips_extended_format, ieee_quad_format,
17102         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17103         decimal_single_format, decimal_double_format, decimal_quad_format,
17104         ieee_half_format, arm_half_format, real_internal_format): Add name
17105         field.
17106         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17107
17108 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
17109
17110         PR target/65161
17111         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17112         reordering for selective scheduling.
17113
17114 2015-02-26  Terry Guo  <terry.guo@arm.com>
17115
17116         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17117         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17118         (arm_arch_no_volatile_ce): Declare new global variable.
17119         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17120         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17121         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17122         (TARGET_NO_VOLATILE_CE): New macro.
17123         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17124         volatile memory access in IT block
17125
17126 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17127
17128         PR tree-optimization/61917
17129         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17130         that reduc_def_stmt is null.
17131
17132 2015-02-25  Martin Liska  <mliska@suse.cz>
17133
17134         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17135         hard register variables.
17136
17137 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17138
17139         PR target/64212
17140         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17141         (symtab::noninterposable_alias): Likewise.
17142
17143 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
17144
17145         PR target/65167
17146         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17147         bounds registers.
17148         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17149
17150 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17151
17152         PR target/64997
17153         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17154         as split condition; force split via '#' in output pattern.
17155
17156 2015-02-25  Richard Biener  <rguenther@suse.de>
17157             Kai Tietz  <ktietz@redhat.com>
17158
17159         PR tree-optimization/61917
17160         * tree-vect-loop.c (vectorizable_reduction): Allow
17161         vect_internal_def without reduction to exit graceful.
17162
17163 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17164
17165         PR target/65196
17166         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17167         only with NONDEBUG_INSN_P.
17168
17169 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17170
17171         Use variadic macros with avr-log.c.
17172
17173         * config/avr/avr-protos.h (avr_vdump): New prototype.
17174         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17175         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17176         * config/avr/avr-log.c: Adjust comments.
17177         (avr_vdump): New function.
17178         (avr_vadump): Pass caller as 2nd argument instead of format string.
17179         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17180         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17181
17182 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17183
17184         PR lto/64374
17185         * target.def (target_option_stream_in): New target hook.
17186         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17187         targetm.target_option.post_stream_in if non-NULL.
17188         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17189         * doc/tm.texi: Updated.
17190         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17191         function.
17192         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17193
17194 2015-02-24  Jeff Law  <law@redhat.com>
17195
17196         PR target/65117
17197         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17198         of operand 0 and operand 2.
17199         (zero_cost_loop_end, loop_end): Similarly.
17200
17201 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17202
17203         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17204         CXX_MEM_STAT_INFO.
17205
17206 2015-02-24  DJ Delorie  <dj@redhat.com>
17207
17208         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17209         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17210         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17211         instead of hardcoding SImode.
17212
17213 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17214
17215         * omp-low.c (create_omp_child_function): Tag entrypoint
17216         functions with a special attribute.
17217
17218 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17219
17220         PR target/65058
17221         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17222
17223 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17224
17225         PR rtl-optimization/65123
17226         * lra-remat.c (operand_to_remat): Check hard regs in insn
17227         definition too.
17228
17229 2015-02-24  Nick Clifton  <nickc@redhat.com>
17230
17231         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17232         to the assembler.
17233
17234 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17235
17236         PR libgomp/64625
17237         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17238         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17239         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17240         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17241         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17242         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17243         (BUILT_IN_GOACC_PARALLEL): Specify as
17244         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17245         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17246         * builtin-types.def
17247         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17248         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17249         Remove function types.
17250         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17251         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17252         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17253         New function types.
17254
17255 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17256
17257         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17258
17259 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17260
17261         PR tree-optimization/65170
17262         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17263         if val[1] < 0, clear also val[2] and return 3.
17264
17265 2015-02-24  Alan Modra  <amodra@gmail.com>
17266
17267         PR target/65172
17268         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17269         when *base is a reg.  Handle nested plus addresses.  Simplify
17270         pre_modify test.
17271
17272 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17273
17274         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17275         use natural alignment when optimizing for size.
17276
17277 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17278
17279         PR target/65153
17280         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17281         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17282         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17283
17284 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17285
17286         PR fortran/63427
17287         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17288         too big for a wide_int.  Implement missing wrapping operation.
17289
17290 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17291
17292         PR target/65163
17293         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17294         instead of const_int 4294901760.
17295
17296 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17297
17298         * config/avr/t-avr: Fix typo in comment.
17299
17300 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17301
17302         * doc/rtl.texi (fma): Clarify documentation.
17303
17304 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17305
17306         PR debug/58123
17307         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17308         over input_location.
17309
17310 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17311
17312         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17313         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17314         restrict alignments to absolute_biggest_alignment.
17315         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17316         Define.
17317         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17318         * doc/tm.texi: Regenerate.
17319         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17320
17321 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17322
17323         PR target/64172
17324         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17325
17326 2015-02-20  Richard Biener  <rguenther@suse.de>
17327
17328         PR tree-optimization/65136
17329         * tree-ssa-propagate.c: Include cfgloop.h.
17330         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17331         arguments with constants.
17332
17333 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17334             Martin Liska  <mliska@suse.cz>
17335
17336         PR target/63892
17337         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17338         don't try to create_thunk if stdarg_p.  If
17339         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17340         redirect_callers if possible.
17341         (sem_item_optimizer::execute): Call unregister_hooks here...
17342         (ipa_icf_driver): ... instead of here.
17343
17344 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17345
17346         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17347         Mark operand 0 as earlyclobber in 2nd alternative.
17348         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17349         Write negated shift amount into QI lowpart operand 0 and use it
17350         in the shift step.
17351         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17352
17353 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17354
17355         * cgraph.h (clone_function_name_1): Declare.
17356         * cgraphclones.c (clone_function_name_1): New function.
17357         (clone_function_name): Use it.
17358         * lto-partition.c: Include "stringpool.h".
17359         (must_not_rename, maybe_rewrite_identifier)
17360         (validize_symbol_for_target): New static functions.
17361         (privatize_symbol_name): Use must_not_rename.
17362         (promote_symbol): Call validize_symbol_for_target.
17363         (lto_promote_cross_file_statics): Likewise.
17364         (lto_promote_statics_nonwpa): Likewise.
17365
17366 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17367
17368         PR target/64452
17369         * config/avr/avr.md (pushhi_insn): New insn.
17370         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17371
17372 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17373             Jakub Jelinek  <jakub@redhat.com>
17374
17375         * tree-streamer.c (preload_common_nodes): Don't preload
17376         TI_VA_LIST* for offloading.
17377         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17378         in_lto_p.
17379
17380 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17381
17382         * config/pa/pa.c (pa_emit_move_sequence): Always force
17383         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17384         note on insn.
17385
17386         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17387         (TARGET_ASM_RELOC_RW_MASK): Define.
17388         (pa_cannot_force_const_mem): Revert previous change.
17389
17390 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17391             Jan Hubicka  <hubicka@ucw.cz>
17392
17393         PR ipa/65028
17394         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17395         across jump functions.
17396
17397 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17398
17399         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17400
17401 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17402
17403         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17404
17405 2015-02-19  Richard Henderson  <rth@redhat.com>
17406
17407         PR middle-end/65074
17408         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17409         test DECL_EXTERNAL independent of symtab_node.
17410
17411 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17412
17413         PR lto/65012
17414         * varpool.c (varpool_node::get_constructor): Return early
17415         if this->lto_file_data is NULL.
17416
17417 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17418
17419         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17420         (rank_for_schedule_debug): Update.
17421         (ready_sort): Make static.  Move sorting logic to ...
17422         (ready_sort_debug, ready_sort_real): New static functions.
17423         (schedule_block): Sort both debug insns and real insns in preparation
17424         for ready list trimming.  Improve debug output.
17425         * sched-int.h (ready_sort): Remove global declaration.
17426
17427 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17428
17429         * ipa-icf.c (sem_function::equals_private): Adjust.
17430         (sem_function::bb_dict_test): Take a vec<int> * instead of
17431         auto_vec<int>.
17432         * ipa-icf.h (bb_dict_test): Likewise.
17433
17434 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17435
17436         PR gcov-profile/64634
17437         * tree-eh.c (frob_into_branch_around): Fix up typos
17438         in function comment.
17439         (lower_catch): Put eh_seq resulting from EH lowering of
17440         the cleanup sequence after the cleanup rather than before it.
17441
17442 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17443
17444         * common.opt (fstdarg-opt): New option.
17445         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17446         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17447         (@item -fstdarg-opt): New item.
17448
17449 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17450
17451         PR target/65064
17452         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17453         for common symbols.
17454
17455 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17456
17457         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17458         insn-modes.h.
17459         (ALL_HOST_OBJS): Add mkoffload.o.
17460         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17461
17462 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17463
17464         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17465         (compare_virtual_tables): Be smarter about skipping typeinfos;
17466         do sane output on virtual table table mismatch.
17467         (warn_odr): Be ready for forward declarations of enums;
17468         output sane info on base mismatch and virtual table mismatch.
17469         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17470         when only one type is polymorphic.
17471         (get_odr_type): Fix hashtable corruption.
17472         (dump_odr_type): Dump mangled names.
17473
17474 2015-02-18  Richard Biener  <rguenther@suse.de>
17475
17476         PR tree-optimization/65063
17477         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17478         have replaced looparound PHIs.
17479
17480 2015-02-18  Martin Liska  <mliska@suse.cz>
17481
17482         * lto-streamer.c (lto_streamer_init): Encapsulate
17483         streamer_check_handled_ts_structures with checking macro.
17484
17485 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17486
17487         PR ipa/65087
17488         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17489         section if !implicit_section.
17490         (cgraph_node::create_version_clone_with_body): Likewise.
17491         * trans-mem.c (ipa_tm_create_version): Likewise.
17492
17493 2015-02-18  Richard Biener  <rguenther@suse.de>
17494
17495         PR tree-optimization/62217
17496         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17497         into BIVs.
17498
17499 2015-02-18  Marek Polacek  <polacek@redhat.com>
17500
17501         PR sanitizer/65081
17502         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17503         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17504         is in range [-16K, -1].  Don't issue run-time error if
17505         (ptr > ptr + offset).
17506
17507 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17508
17509         * doc/install.texi (nvptx-*-none): New section.
17510         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17511         * config/nvptx/nvptx.opt: Update.
17512
17513         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17514         (access_check): New functions, copied from
17515         config/i386/intelmic-mkoffload.c.
17516         (main): For non-installed testing, look in all COMPILER_PATHs for
17517         GCC_INSTALL_NAME.
17518
17519         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17520
17521 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17522             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17523
17524         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17525         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17526
17527 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17528
17529         * ipa-visibility.c (function_and_variable_visibility): Only
17530         check locality if node is not already local.
17531         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17532         call_for_symbol_and_aliases instead of
17533         call_for_symbol_thunks_and_aliases.
17534         (ipa_inline): Likewise.
17535         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17536         first walk aliases.
17537         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17538         call_for_symbol_and_aliases.
17539         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17540         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17541         (ipa_propagate_frequency): Update.
17542         (ipa_profile): Add opt_for_fn gueards.
17543
17544 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17545
17546         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17547         * doc/invoke.texi (SH options): Document it.
17548         * config/sh/sh.c (sh_insn_length_adjustment): Check
17549         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17550
17551 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17552
17553         * common.opt (fipa-cp-alignment): New.
17554         * ipa-cp.c (ipcp_store_alignment_results): Check
17555         flag_ipa_cp_alignment.
17556         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17557         -O2.
17558         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17559         * doc/invoke.texi: Document -fipa-cp-alignment.
17560
17561 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17562
17563         PR target/64793
17564         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17565         to nil.  Adjust comments.
17566
17567 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17568
17569         * ipa-visibility.c (function_and_variable_visibility): Only
17570         check locality if node is not already local.
17571         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17572         call_for_symbol_and_aliases instead of
17573         call_for_symbol_thunks_and_aliases.
17574         (ipa_inline): Likewise.
17575         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17576         first walk aliases.
17577         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17578         call_for_symbol_and_aliases.
17579         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17580         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17581         (ipa_propagate_frequency): Update.
17582         (ipa_profile): Add opt_for_fn guards.
17583
17584 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17585
17586         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17587         skipping of "strange" tokens.
17588
17589 2015-02-17  Jeff Law  <law@redhat.com>
17590
17591         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17592         obsolete comment.
17593
17594 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17595
17596         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17597         as forcing a HARD_DEP between instructions, thereby
17598         disallowing rewriting to break dependencies.
17599
17600 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17601
17602         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17603         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17604         variables in boundary that have no inlitalizer encoded and are
17605         not aliases.
17606         * varasm.c (default_binds_local_p_2): External definitions do not
17607         count as definitions here.
17608
17609 2015-02-16  Jeff Law  <law@redhat.com>
17610
17611         PR tree-optimization/64823
17612         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17613         statements.
17614         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17615         threading through blocks with PHIs, but no statements.
17616         (thread_through_normal_block): Distinguish between blocks where
17617         we did not process all the statements and blocks with no statements.
17618
17619 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17620             James Greenhalgh  <james.greenhalgh@arm.com>
17621
17622         PR ipa/64963
17623         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17624         section if not linkonce.  Fix up formatting.
17625         (cgraph_node::create_version_clone_with_body): Copy section.
17626         * trans-mem.c (ipa_tm_create_version): Likewise.
17627
17628 2015-02-16  Richard Biener  <rguenther@suse.de>
17629
17630         PR tree-optimization/65077
17631         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17632         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17633         (find_func_aliases): Allow float values to carry pointers again.
17634
17635 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17636
17637         * doc/install.texi (Specific): Reorder targets list to put
17638         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17639         from the top menu.
17640
17641 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17642             David Edelsohn  <dje.gcc@gmail.com>
17643
17644         PR target/65058
17645         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17646         mapping class to external variable or function reference.
17647         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17648         mapping class.
17649
17650 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17651
17652         PR target/53348
17653         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17654         ASM_WEAKEN_DECL if defined.
17655
17656 2015-02-16  Richard Biener  <rguenther@suse.de>
17657
17658         PR lto/65015
17659         * varasm.c (default_file_start): For LTO produced units
17660         emit <artificial> as file directive.
17661
17662 2015-02-16  Richard Biener  <rguenther@suse.de>
17663
17664         PR tree-optimization/63593
17665         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17666         stmts and releasing SSA names until...
17667         (execute_pred_commoning): ... after processing all chains.
17668
17669 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17670
17671         PR ipa/65059
17672         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17673         external functions.
17674
17675 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17676
17677         * doc/bugreport.texi: Adjust section titles throughout the file
17678         to use "Title Case".
17679         * doc/extend.texi: Likewise.
17680         * doc/gcov.texi: Likewise.
17681         * doc/implement-c.texi: Likewise.
17682         * doc/implement-cxx.texi: Likewise.
17683         * doc/invoke.texi: Likewise.
17684         * doc/objc.texi: Likewise.
17685         * doc/standards.texi: Likewise.
17686         * doc/trouble.texi: Likewise.
17687
17688 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17689
17690         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17691         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17692         * tree.c (lookup_binfo_at_offset): Make static.
17693         (get_binfo_at_offset): Do not shadow offset; add explanatory
17694         comment.
17695
17696 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17697
17698         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17699         for all floading point loads and stores except those using a register
17700         index address.
17701         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17702         to a register.
17703
17704 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17705
17706         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17707         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17708         (estimate_growth): Handle uninlinable edges correctly.
17709         (check_callers): New.
17710         (growth_likely_positive): Handle aliases correctly.
17711
17712 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17713
17714         * ipa-chkp.c: Use iterate_direct_aliases.
17715         * symtab.c (resolution_used_from_other_file_p): Move inline.
17716         (symtab_node::create_reference): Fix formating.
17717         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17718         (symtab_node::iterate_reference): Move inline.
17719         (symtab_node::iterate_referring): Move inline.
17720         (symtab_node::iterate_direct_aliases): Move inline.
17721         (symtab_node::used_from_object_file_p_worker): Inline into ...
17722         (symtab_node::used_from_object_file_p): ... this one; move inline.
17723         (symtab_node::call_for_symbol_and_aliases): Move inline;
17724         use iterate_direct_aliases.
17725         (symtab_node::call_for_symbol_and_aliases_1): New method.
17726         (cgraph_node::call_for_symbol_and_aliases): Move inline;
17727         use iterate_direct_aliases.
17728         (cgraph_node::call_for_symbol_and_aliases_1): New method.
17729         (varpool_node::call_for_node_and_aliases): Rename to ...
17730         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
17731         use iterate_direct_aliases.
17732         (varpool_node::call_for_symbol_and_aliases_1): New method.
17733         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
17734         (ipa_discover_readonly_nonaddressable_var): Update.
17735         * ipa-devirt.c: Fix formating.
17736         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
17737         Move inline.
17738         (cgraph_node::call_for_symbol_and_aliases): Move inline.
17739         (cgraph_node::call_for_symbol_and_aliases_1): New function..
17740         * cgraph.h (used_from_object_file_p_worker): Remove.
17741         (resolution_used_from_other_file_p): Move inline.
17742         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17743         (symtab_node::iterate_reference): Move inline.
17744         (symtab_node::iterate_referring): Move inline.
17745         (symtab_node::iterate_direct_aliases): Move inline.
17746         (symtab_node::used_from_object_file_p_worker): Inline into ...
17747         (symtab_node::used_from_object_file_p): Move inline.
17748         * tree-emutls.c (ipa_lower_emutls): Update.
17749         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
17750         (varpool_node::call_for_node_and_aliases): Remove.
17751
17752 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
17753
17754         PR tree-optimization/62209
17755         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
17756         op == range->exp, insert seq and gimplified code after labels
17757         instead of after the phi.
17758
17759 2015-02-13  Jeff Law  <law@redhat.com>
17760
17761         PR bootstrap/65060
17762         Revert my change for tree-optimization/64823.
17763
17764 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17765
17766         PR tree-optimization/65053
17767         * tree-ssa-phiopt.c (value_replacement): When moving assign before
17768         cond, either reset VR on lhs or set it to phi result VR.
17769
17770 2015-02-13  Jeff Law  <law@redhat.com>
17771
17772         PR tree-optimization/64823
17773         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
17774         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17775         threading through blocks with PHIs, but no statements.
17776         (thread_through_normal_block): Distinguish between blocks where
17777         we did not process all the statements and blocks with no statements.
17778
17779         PR rtl-optimization/47477
17780         * match.pd (convert (plus/minus (convert @0) (convert @1): New
17781         simplifier to narrow arithmetic.
17782
17783 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
17784
17785         PR ipa/65028
17786         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
17787         polymorphic call info when type is not known to be preserved.
17788
17789 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
17790
17791         PR ipa/65028
17792         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
17793         (inline_call): Use it.
17794
17795 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
17796
17797         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
17798         GOMP_DEVICE_NVIDIA_PTX.
17799
17800 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17801
17802         PR ipa/65034
17803         * stmt.c (emit_case_nodes): Use void_type_node instead of
17804         NULL_TREE as LABEL_DECL type.
17805
17806 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
17807
17808         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
17809         constraints.
17810         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
17811         symbolic references to data to be forced to constant memory on the
17812         SOM target.
17813
17814 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17815
17816         PR tree-optimization/65002
17817         * tree-cfg.c (pass_data_fixup_cfg): Don't update
17818         SSA on start.
17819         * tree-sra.c (some_callers_have_no_vuse_p): New.
17820         (ipa_early_sra): Reject functions whose callers
17821         assume function is read only.
17822
17823 2015-02-13  Richard Biener  <rguenther@suse.de>
17824
17825         PR lto/65015
17826         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
17827         for LTO produced CUs.
17828
17829 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
17830
17831         PR tree-optimization/64705
17832         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
17833         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
17834         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
17835         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
17836         expand_simple_operations.
17837
17838 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17839             Richard Henderson  <rth@redhat.com>
17840
17841         PR rtl/32219
17842         * cgraphunit.c (cgraph_node::finalize_function): Set definition
17843         before notice_global_symbol.
17844         (varpool_node::finalize_decl): Likewise.
17845         * varasm.c (default_binds_local_p_2): Rename from
17846         default_binds_local_p_1, add weak_dominate argument.  Use direct
17847         returns instead of assigning to local variable.  Unify varpool and
17848         cgraph paths via symtab_node.  Reject undef weak variables before
17849         testing visibility.  Reorder tests for simplicity.
17850         (default_binds_local_p): Use default_binds_local_p_2.
17851         (default_binds_local_p_1): Likewise.
17852         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
17853         via symtab_node.
17854         (default_elf_asm_output_external): Emit visibility when specified.
17855
17856 2015-02-13  Alan Modra  <amodra@gmail.com>
17857
17858         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
17859         code setting up r11 for out-of-line fp restore.
17860
17861 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17862
17863         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
17864         (muser-mode): Likewise.
17865
17866 2015-02-13  Alan Modra  <amodra@gmail.com>
17867
17868         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
17869         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
17870
17871 2015-02-12  David Howells  <dhowells@redhat.com>
17872
17873         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
17874         warning.
17875         * tree-ssa-uninit.c (dump_predicates): Likewise.
17876         * opts.c (print_filtered_help): Likewise.
17877
17878 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17879
17880         * dwarf2out.c (output_die): Use "%s", name instead of name to
17881         avoid -Wformat-security warning.
17882
17883         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
17884         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17885         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
17886         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17887
17888 2015-02-12  Jason Merrill  <jason@redhat.com>
17889
17890         * common.opt (-flifetime-dse): New.
17891
17892 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17893
17894         PR sanitizer/65019
17895         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
17896
17897         PR tree-optimization/65014
17898         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
17899         use original second operand of arg0 or arg1 instead of
17900         that adjusted by STRIP_NOPS.
17901
17902 2015-02-11  Jeff Law  <law@redhat.com>
17903
17904         PR target/63347
17905         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
17906         that needs to be queued, just queue it for a single cycle.
17907
17908 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
17909
17910         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
17911         bodies of thunks; comment on why.
17912         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
17913         symbols are extern.
17914
17915 2015-02-11  Richard Henderson  <rth@redhat.com>
17916
17917         PR sanitize/65000
17918         * tree-eh.c (mark_reachable_handlers): Mark source and destination
17919         regions of __builtin_eh_copy_values.
17920
17921 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17922
17923         PR middle-end/65003
17924         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
17925         ultimate alias is MEM with SYMBOL_REF satisfying
17926         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
17927         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
17928
17929 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
17930
17931         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
17932         "diagnostic-core.h".
17933         (main): Initialize progname, and call diagnostic_initialize.
17934
17935         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
17936         instead of __OPENMP_TARGET__.
17937
17938         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
17939         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
17940         hard-coding PTX_ID.
17941
17942 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
17943
17944         * doc/sourcebuild.texi (pie_enabled): Document.
17945
17946 2015-02-11  Martin Liska  <mliska@suse.cz>
17947
17948         PR ipa/64813
17949         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
17950         a return value for call to a function that is noreturn.
17951
17952 2015-02-11  Richard Biener  <rguenther@suse.de>
17953
17954         PR lto/65015
17955         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
17956         and -fresolution.
17957
17958 2015-02-11  Andrew Pinski  <apinski@cavium.com>
17959
17960         PR target/64893
17961         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17962         Change the first argument type to size_type_node and add another
17963         size_type_node.
17964         (aarch64_simd_expand_builtin): Handle the new argument to
17965         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
17966         print an out when the first two arguments are not
17967         nonzero integer constants.
17968         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
17969         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
17970
17971 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17972
17973         PR target/61925
17974         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
17975         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
17976         (ix86_set_current_function): Rewritten.
17977         (ix86_add_new_builtins): Temporarily clear current_target_pragma
17978         when creating builtin fndecls.
17979
17980 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17981
17982         PR ipa/65005
17983         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
17984         function.
17985         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
17986         have no comdat group.
17987         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
17988         (lto_output_varpool_node): Always output alias info.
17989         (output_refs): Output refs of boundary aliases, too.
17990         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
17991         (output_symtab): Output call eges in thunks in boundary.
17992         (get_alias_symbol): Remove.
17993         (input_node, input_varpool_node): Do not special case weakrefs.
17994         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
17995         alias and thunks targets in the boundary; do not take removed symbols
17996         from their comdat groups.
17997         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
17998         (cgraph_node::global_info): Remove.
17999         (cgraph_node::rtl_info): Look through aliases and thunks.
18000         * cgrpah.h (global_info): Remove.
18001         (non_local_p): Remove.
18002
18003 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18004             Sandra Loosemore  <sandra@codesourcery.com>
18005
18006         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
18007         to inline asm.  List dialects in proper order.
18008
18009 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18010             Sandra Loosemore  <sandra@codesourcery.com>
18011
18012         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
18013
18014 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18015
18016         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
18017         modified) reference to Solaris.
18018
18019 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
18020
18021         * doc/extend.texi (Extended Asm): Fix typos.
18022
18023 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
18024
18025         PR sanitizer/65004
18026         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
18027
18028 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
18029
18030         PR target/64661
18031         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
18032         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
18033         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
18034         * config/sh/constraints.md (Ara, Add): New constraints.
18035         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
18036         predicates.
18037         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
18038         atomic_mem_operand_0.  Don't use force_reg on the memory address.
18039         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
18040         Sra constraint.  Convert to insn_and_split.  Add workaround for
18041         PR 64974.
18042         (atomic_compare_and_swap<mode>_hard): Copy to
18043         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
18044         Use atomic_mem_operand_0 predicate.
18045         (atomic_compare_and_swap<mode>_soft_gusa,
18046         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
18047         AraAdd constraints.
18048         (atomic_compare_and_swap<mode>_soft_tcb,
18049         atomic_compare_and_swap<mode>_soft_imask,
18050         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
18051         atomic_mem_operand_0 predicate and SraSdd constraints.
18052         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
18053         constraint.
18054         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
18055         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
18056         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
18057         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
18058         force_reg on the memory address.
18059         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
18060         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
18061         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
18062         atomic_mem_operand_1 predicate and Sra constraint.
18063         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
18064         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18065         Use atomic_mem_operand_1 predicate.
18066         (atomic_<fetchop_name><mode>_hard): Copy to
18067         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18068         Use atomic_mem_operand_1 predicate.
18069         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
18070         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18071         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
18072         insn_and_split.  Use atomic_mem_operand_1 predicate.
18073         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
18074         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
18075         Use atomic_mem_operand_1 predicate.
18076         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18077         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18078         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18079         in generated insn with original mem operand before emitting the insn.
18080         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18081         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18082         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18083         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18084         Use atomic_mem_operand_1 predicate and AraAdd constraints.
18085         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18086         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18087         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18088         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18089         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18090         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18091         atomic_not_fetch<mode>_soft_tcb,
18092         atomic_<fetchop_name>_fetch<mode>_soft_imask,
18093         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18094         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18095         Use atomic_mem_operand_1 predicate and SraSdd constraints.
18096
18097 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
18098
18099         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18100         and 3 earlyclobber operands.
18101
18102 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18103
18104         * common.opt (fstack-reuse): Mark as optimization.
18105
18106 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18107
18108         PR ipa/64982
18109         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18110
18111 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
18112
18113         PR tree-optimization/64326
18114         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18115
18116 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
18117
18118         PR gcov-profile/61889
18119         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18120
18121 2015-02-10  Richard Biener  <rguenther@suse.de>
18122
18123         PR tree-optimization/64995
18124         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18125         value we use is final.
18126         (visit_reference_op_store): Always valueize op.
18127         (visit_use): Properly valueize vuses.
18128
18129 2015-02-10  Richard Biener  <rguenther@suse.de>
18130
18131         PR tree-optimization/64909
18132         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18133         pass a scalar-stmt count estimate to the cost model.
18134         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18135
18136 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
18137
18138         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18139         enabled by default together with var-tracking.
18140
18141 2015-02-10  Nick Clifton  <nickc@redhat.com>
18142
18143         * config/rl78/rl78.c: Remove DIV attribute code accidentally
18144         included in previous rl78 commit.
18145
18146 2015-02-10  Richard Biener  <rguenther@suse.de>
18147
18148         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18149         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18150         return the bitpack.
18151
18152 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18153
18154         PR gcov-profile/61889
18155         * config.in: regenerate.
18156         * configure.in: Likewise.
18157         * configure.ac: Check for ftw.h.
18158         * gcov-tool.c: Check for ftw.h before using nftw.
18159
18160 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18161
18162         PR lto/64076
18163         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18164         assert when not in lto mode.
18165
18166 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18167
18168         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18169         initialization/assignment of conflict_size.
18170
18171 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18172
18173         PR ipa/64978
18174         * ipa-cp.c (gather_caller_stats): Skip thunks.
18175         (propagate_constants_topo): Skip aliases.
18176
18177 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18178
18179         PR target/64761
18180         * config/sh/sh.c (sh_option_override): Don't change
18181         -freorder-blocks-and-partition to -freorder-blocks even when
18182         unwinding is enabled.
18183         (sh_can_follow_jump): Return false if the followee jump is
18184         a crossing jump when -freorder-blocks-and-partition is specified.
18185         * config/sh/sh.md (*jump_compact_crossing): New insn.
18186
18187 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18188             Kaz Kojima  <kkojima@gcc.gnu.org>
18189
18190         PR target/64761
18191         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18192         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18193         (sh_can_redirect_branch): Rename to ...
18194         (sh_can_follow_jump): ... this.  Constify argument types.
18195         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18196         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18197         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18198         * doc/tm.texi: Regenerate.
18199
18200 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18201
18202         PR sanitizer/64981
18203         * builtins.c (expand_builtin): Call targetm.expand_builtin
18204         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18205
18206 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18207
18208         PR ipa/61548
18209         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18210
18211 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18212
18213         PR ipa/63566
18214         * ipa-icf.c (set_local): New function.
18215         (sem_function::merge): Use it.
18216
18217 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18218
18219         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18220         (add_type_duplicate): Fix comparison of BINFOs.
18221
18222 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18223
18224         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18225         on getting VOID pointer.
18226
18227 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18228
18229         PR target/64979
18230         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18231         va_list escapes.
18232
18233 2015-02-09  Richard Biener  <rguenther@suse.de>
18234
18235         * genmatch.c (replace_id): Copy expr_type.
18236
18237 2015-02-09  Richard Biener  <rguenther@suse.de>
18238
18239         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18240         (streamer_write_tree_bitfields): Declare.
18241         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18242         properly unpack padding.
18243         (unpack_value_fields): Inline ...
18244         (streamer_read_tree_bitfields): ... here.
18245         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18246         and properly add padding bits.
18247         (streamer_pack_tree_bitfields): Fold into ...
18248         (streamer_write_tree_bitfields): ... this new function,
18249         exposing the bitpack object.
18250         * lto-streamer-out.c (lto_write_tree_1): Call
18251         streamer_write_tree_bitfields.
18252
18253 2015-02-09  Richard Biener  <rguenther@suse.de>
18254
18255         PR tree-optimization/54000
18256         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18257         (struct ivopts_data): Add loop_loc member.
18258         (tree_ssa_iv_optimize_loop): Dump loop location.
18259         (create_new_ivs): Likewise, also dump number of IVs generated.
18260
18261 2015-02-09  Martin Liska  <mliska@suse.cz>
18262
18263         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18264         just if not yet registered.
18265         (ipa_icf_generate_summary): Register callgraph hooks.
18266
18267 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18268
18269         * config/aarch64/aarch64.c (gty_dummy): Delete.
18270
18271 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18272
18273         PR ipa/63566
18274         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18275         (cgraph_node::local_p): Remove thunk related FIXME.
18276
18277 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18278
18279         PR ipa/63566
18280         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18281         is local and optimized.
18282         (ix86_function_sseregparm): Likewise; also use target's SSE math
18283         settings; error out instead of silently generating wrong code
18284         on mismatches.
18285         (init_cumulative_args): Look through aliases.
18286
18287 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18288
18289         PR ipa/63566
18290         * ipa-split.c (execute_split_functions): Split if function has aliases.
18291
18292 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18293
18294         PR ipa/63566
18295         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18296         aliases before trying to expand it.
18297         (cgraph_node::expand_thunk): Fix formating.
18298
18299 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18300
18301         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18302         (Using Assembly Language with C): Expand introduction.
18303         (Basic Asm): Copy-edit.  Add more information about uses of
18304         basic asm.
18305         (Extended Asm): Copy-edit.  Document new escape syntax and
18306         %l[label] syntax.
18307         (Global Reg Vars): Copy-edit.
18308         (Local Reg Vars): Likewise.
18309
18310 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18311
18312         PR debug/2714
18313         PR bootstrap/64256
18314         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18315         (DBX_CONTIN_CHAR): Define.
18316
18317 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18318             Brian Rzycki  <b.rzycki@samsung.com>
18319
18320         PR tree-optimization/64878
18321         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18322         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18323         Stop recursion at loop phi nodes after having visited a loop phi node.
18324
18325 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18326
18327         * toplev.c (process_options): Change flag_ipa_ra before creating
18328         optimization_{default,current}_node.
18329
18330         PR ipa/64896
18331         * cgraphunit.c (cgraph_node::expand_thunk): If
18332         restype is not is_gimple_reg_type nor the thunk_fndecl
18333         returns aggregate_value_p, set restmp to a temporary variable
18334         instead of resdecl.
18335
18336 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18337
18338         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18339
18340 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18341
18342         PR target/64205
18343         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18344         add a general secondary reload handler for SDmode, unless we have
18345         both read/write support for SDmode.
18346
18347 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18348
18349         PR middle-end/64937
18350         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18351         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18352         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18353         1 before, push it to abstract_vec.
18354         (dwarf2out_abstract_function): Adjust caller.  Don't call
18355         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18356         DECL_ABSTRACT_P flags for all abstract_vec elts.
18357
18358 2015-02-06  Renlin Li  <renlin.li@arm.com>
18359
18360         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18361         complex gimple.
18362         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18363
18364 2015-02-06  Jeff Law  <law@redhat.com>
18365
18366         PR target/64889
18367         * config/h8300/h8300.c (push): New argument "in_prologue".
18368         Pass "in_prologue" along to "F".
18369         (h8300_push_pop): Corresponding changes.
18370         (h8300_expand_prologue): Likewise.
18371         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18372
18373 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18374
18375         PR rtl-optimization/64957
18376         PR debug/64817
18377         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18378         IOR rather than for AND.
18379
18380 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18381
18382         PR target/62631
18383         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18384         of shift-add and (add + shift) operations.  Rename local variable.
18385
18386 2015-02-05  Jeff Law  <law@redhat.com>
18387
18388         PR target/17306
18389         * config/h8300/constraints.md (U): Correctly dectect
18390         "eightbit_data" memory addresses.
18391         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18392         handle (const (plus (symbol_ref (x)))) where x is declared
18393         as an 8-bit data memory address.
18394         * config/h8300/h8300.md (call, call_value): Correctly detect
18395         "funcvec" functions.
18396
18397         PR target/43264
18398         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18399         24 to 28 bits for the H8/300.
18400
18401 2015-02-06  Alan Modra  <amodra@gmail.com>
18402
18403         PR target/64876
18404         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18405         (rs6000_call_aix): Use it.
18406
18407 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18408
18409         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18410         check.
18411
18412 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18413
18414         * config/h8300/constraints.md ("U" constraint): Use strict
18415         variant of REG_OK_FOR_BASE_P after reload has started.
18416
18417 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18418
18419         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18420         define to zero if !TARGET_NEON.
18421         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18422
18423 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18424             Trevor Saunders  <tsaunders@mozilla.com>
18425
18426         PR ipa/61548
18427         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18428
18429 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18430
18431         PR ipa/61548
18432         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18433         when removing varpool nodes.
18434
18435 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18436
18437         PR ipa/61548
18438         * varpool.c (varpool_node::remove): Fix order of variables.
18439
18440 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18441
18442         PR ipa/64686
18443         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18444         speculation resolution and key updates.
18445
18446 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18447
18448         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18449         about not letting any speculative edges unupdated.
18450
18451 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18452
18453         PR gcov/64123
18454         * gcov-io.c (gcov_var): Export.
18455
18456 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18457
18458         PR middle-end/64922
18459         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18460         edges that become speculative.
18461
18462 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18463
18464         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18465         or DW_LANG_Fortran08.
18466         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18467         DW_LANG_Fortran08.
18468         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18469         "GNU Fortran2008" language strings.
18470         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18471         * langhooks.h (lang_GNU_Fortran): New prototype.
18472         * langhooks.c (lang_GNU_Fortran): New function.
18473         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18474         lang_GNU_Fortran.
18475
18476 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18477
18478         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18479         (RTX_OK_FOR_OLO10_P): Likewise.
18480
18481 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18482
18483         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18484
18485 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18486
18487         PR middle-end/64922
18488         * gimple.c: Include gimple-ssa.h.
18489         (maybe_remove_unused_call_args): New function.
18490         * gimple.h (maybe_remove_unused_call_args): Declare.
18491         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18492         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18493         * gimple-fold.c (gimple_fold_call): Likewise.
18494
18495 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18496
18497         PR rtl-optimization/64905
18498         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18499         pointer alignment if it isn't needed.
18500
18501 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18502
18503         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18504         cortex-a72.cortex-a53.
18505         * config/aarch64/aarch64-tune.md: Regenerate.
18506         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18507
18508 2015-02-04  Nick Clifton  <nickc@redhat.com>
18509
18510         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18511         inside a MEM.
18512
18513 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18514
18515         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18516         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18517         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18518         of DEF_BUILTIN.
18519         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18520         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18521         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18522         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18523         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18524         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18525         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18526         * tree-core.h (enum built_in_function): In between
18527         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18528         for builtins that use DEF_BUILTIN_CHKP macro.
18529
18530 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18531
18532         PR debug/64817
18533         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18534         operands for tcc_comparison exprs.  Fix typos.
18535
18536         PR debug/64817
18537         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18538         of two XORs that have an intervening AND or IOR.
18539
18540         PR debug/64817
18541         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18542         simplification of XOR of AND to not allocate new rtx before
18543         committing to a simplification.
18544
18545 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18546
18547         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18548         manual swaps in all peepholes.
18549
18550 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18551
18552         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18553         of manual swapping implementation.
18554         (aarch64_expand_vec_perm_const_1): Likewise.
18555
18556 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18557
18558         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18559         (generic_addrcost_table): Remove NAMED_PARAM.
18560         (cortexa57_addrcost_table): Likewise.
18561         (xgene1_addrcost_table): Likewise.
18562         (generic_regmove_table): Likewise.
18563         (cortexa53_regmove_table): Likewise.
18564         (xgene1_regmove_table): Likewise.
18565         (generic_vector_table): Likewise.
18566         (cortexa57_vector_table): Likewise.
18567         (xgene1_vector_table): Likewise.
18568         (generic_tunings): Likewise.
18569         (cortexa53_tunings): Likewise.
18570         (cortexa57_tunings): Likewise.
18571         (xgene1_tunings): Likewise.
18572
18573 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18574
18575         * config/arm/arm-cores.def: Add cortex-a72 and
18576         cortex-a72.cortex-a53.
18577         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18578         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18579         * config/arm/arm-tune.md: Regenerate.
18580         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18581         "cortex-a72.cortex-a53".
18582         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18583
18584 2015-02-04  Nick Clifton  <nickc@redhat.com>
18585
18586         PR target/64408
18587         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18588         of accepted codes.
18589         (nonimmediate_di_operand): Likewise.
18590
18591         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18592         prefixes of known F5 using MSP430 MCUs.
18593
18594 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18595
18596         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18597         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18598         instead of __builtin_sqrt.
18599
18600 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18601
18602         * varasm.c (do_assemble_alias): Follow transparent alias
18603         chain for target.
18604         (default_assemble_visibility): Follow transparent alias
18605         chain for decl name.
18606
18607 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18608
18609         PR middle-end/62103
18610         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18611         to compute size of referenced value in the constant case.
18612
18613 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18614
18615         PR rtl-optimization/64756
18616         * cse.c (invalidate_dest): New function.
18617         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18618         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18619         invalidate and do not record it.
18620
18621 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18622
18623         PR target/64660
18624         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18625         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18626         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18627         atomic_nand<mode>_soft_tcb): New insns.
18628         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18629         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18630         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18631         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18632         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18633         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18634         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18635         atomic_not<mode>_hard if operands[0] is unused.
18636         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18637         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18638         if operands[0] is unused.
18639         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18640         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18641         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18642         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18643         unused.
18644         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18645         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18646         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18647         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18648         if operands[0] is unused.
18649         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18650         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18651         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18652         atomic_nand_fetchsi_hard if operands[0] is unused.
18653         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18654         atomic_nand<mode>_hard if operands[0] is unused.
18655         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18656         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18657         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18658         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18659         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18660         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18661         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18662         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18663         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18664         atomic_not<mode>_hard if operands[0] is unused.
18665         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18666         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18667         unused.
18668         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18669         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18670         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18671         atomic_nand<mode>_hard if operands[0] is unused.
18672         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18673         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18674
18675 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18676
18677         PR jit/64810
18678         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18679         * gcc-main.c: New file, containing "main" taken from gcc.c.
18680         * gcc.c (do_self_spec): Free decoded_options.
18681         (class driver): Move declaration to gcc.h.
18682         (main): Move declaration and implementation to new file
18683         gcc-main.c.
18684         (driver_get_configure_time_options): New function.
18685         * gcc.h (class driver): Move this declaration here, from
18686         gcc.c.
18687         (driver_get_configure_time_options): New declaration.
18688
18689 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18690
18691         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18692         cross-module inlining.
18693         * cgraph.h (cgraph_node): Add flag merged.
18694         * ipa-icf.c (sem_function::merge): Maintain it.
18695
18696 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18697
18698         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18699         instead of OBJECT_P.
18700
18701 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18702
18703         PR target/62631
18704         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18705         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18706         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18707         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18708
18709 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18710
18711         PR other/63504
18712         * combine.c (reg_n_sets_max): New variable.
18713         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18714         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18715         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18716         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18717         (rest_of_handle_combine): Initialize reg_n_sets_max.
18718
18719 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18720
18721         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18722         if some always_inline was inlined, apply changes before inlining
18723         heuristically.
18724
18725 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
18726
18727         PR jit/64810
18728         * config/arm/arm.c (arm_option_override): Set
18729         arm_selected_arch/cpu/tune to NULL on entry.
18730
18731 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
18732             Andrew Pinski  <pinskia@gcc.gnu.org>
18733             Jakub Jelinek  <jakub@gcc.gnu.org>
18734
18735         PR target/64231
18736         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
18737         integer typing for small model. Use IN_RANGE.
18738
18739 2015-02-02  Richard Biener  <rguenther@suse.de>
18740
18741         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
18742         * tree-vrp.c (vrp_valueize_1): Likewise.
18743
18744 2015-02-02  Alan Modra  <amodra@gmail.com>
18745
18746         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
18747         than mem for toc_restore.
18748         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
18749         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
18750         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
18751
18752 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
18753
18754         PR target/64047
18755         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
18756         explicit default options.
18757
18758 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
18759
18760         PR ipa/64872
18761         * ipa-utils.c (ipa_merge_profiles): Add release argument.
18762         * ipa-icf.c (sem_function::merge): Do not release body when merging.
18763         * ipa-utils.h (ipa_merge_profiles): Update prototype.
18764
18765 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
18766
18767         PR debug/64817
18768         * cfgexpand.c (deep_ter_debug_map): New variable.
18769         (avoid_deep_ter_for_debug): New function.
18770         (expand_debug_expr): If TERed SSA_NAME is in
18771         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
18772         instead of trying to expand SSA_NAME's def stmt.
18773         (expand_debug_locations): When expanding debug bind
18774         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
18775         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
18776         value.
18777         (pass_expand::execute): Call avoid_deep_ter_for_debug on
18778         all debug bind stmts.  Delete deep_ter_debug_map after
18779         expand_debug_location if non-NULL and clear it.
18780
18781 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
18782
18783         PR target/64851
18784         * config/sh/sync.md (atomic_fetch_notsi_hard,
18785         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
18786         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
18787         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
18788         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
18789         atomic_not_fetch<mode>_soft_imask): New insns.
18790
18791 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18792
18793         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
18794         (rank_for_schedule_debug): Split from ...
18795         (rank_for_schedule): ... this.
18796         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
18797         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
18798
18799 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18800
18801         * doc/md.texi (Machine Constraints): Alphabetize table by target.
18802         * doc/extend.texi (x86 Variable Attributes): Move section to
18803         correct alphabetization after renaming.
18804         (x86 Type Attributes): Likewise.
18805         (Target Builtins): Re-alphabetize menu.
18806         (x86 Built-in Functions): Move section to correct alphabetization
18807         after renaming.
18808         (x86 transactional memory intrinsics): Likewise.
18809         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
18810         and x86 Windows Options in table and menu.
18811         (x86 Options): Move section to correct alphabetization after
18812         renaming.
18813         (x86 Windows Options): Likewise.
18814
18815 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18816
18817         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
18818         preferred names of the architecture and its 32- and 64-bit
18819         variants.
18820         * doc/invoke.texi: Likewise.
18821         * doc/md.texi: Likewise.
18822
18823 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18824
18825         PR target/64882
18826         * config/i386/predicates.md (address_no_seg_operand): Reject
18827         non-CONST_INT_P operands in invalid mode.
18828
18829 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18830
18831         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
18832         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
18833         * config/i386/predicates.md (address_no_seg_operand): Call
18834         address_operand with VOIDmode.
18835         (vsib_address_operand): Ditto.
18836         (address_mpx_no_base_operand): Ditto.
18837         (address_mpx_no_index_operand): Ditto.
18838
18839 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18840
18841         PR target/64688
18842         * lra-constraints.c (original_subreg_reg_mode): New.
18843         (simplify_operand_subreg): Try to simplify subreg of const.  Use
18844         original_subreg_reg_mode for it.
18845         (swap_operands): Update original_subreg_reg_mode.
18846         (curr_insn_transform): Set up original_subreg_reg_mode.
18847
18848 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18849
18850         PR target/64617
18851         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
18852         function.
18853         (process_alt_operands): Use it.
18854         (curr_insn_transform): Check the optional reload pseudo class is
18855         ok for the mode.
18856
18857 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
18858
18859         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
18860         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
18861         prototype.
18862         * toplev.h (init_asm_output): Update comment on use of
18863         UNKNOWN_LOCATION with fatal_error.
18864         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
18865         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
18866         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
18867         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
18868         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
18869         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
18870         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
18871         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
18872         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
18873         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
18874         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
18875         fatal_error changed to pass input_location as first argument.
18876
18877 2015-01-30  Martin Liska  <mliska@suse.cz>
18878
18879         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
18880         in #pragma GCC diagnostic guards.
18881
18882 2015-01-30  Richard Biener  <rguenther@suse.de>
18883
18884         PR tree-optimization/64829
18885         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
18886         not add a widening conversion pattern but hand off extra
18887         widenings to callers.
18888         (vect_recog_widen_mult_pattern): Handle extra widening produced
18889         by vect_handle_widen_op_by_const.
18890         (vect_recog_widen_shift_pattern): Likewise.
18891         (vect_pattern_recog_1): Remove excess vertical space in dumping.
18892         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18893         (vect_init_vector_1): Likewise.
18894         (vect_get_vec_def_for_operand): Likewise.
18895         (vect_finish_stmt_generation): Likewise.
18896         (vectorizable_load): Likewise.
18897         (vect_analyze_stmt): Likewise.
18898         (vect_is_simple_use): Likewise.
18899
18900 2015-01-29  Jeff Law  <law@redhat.com>
18901
18902         * combine.c (try_combine): Fix typo in comment.
18903
18904 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
18905
18906         PR target/64580
18907         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
18908         (rs6000_stack_info): Add assert.
18909         (rs6000_output_savres_externs): New function, split off from...
18910         (rs6000_output_function_prologue): ... here.  Do not call it for
18911         thunks.
18912
18913 2015-01-29  Jeff Law  <law@redhat.com>
18914
18915         PR target/15184
18916         * combine.c (try_combine): If I0 is a memory load and I3 a store
18917         to a related address, increase the "goodness" of doing a 4-insn
18918         combination with I0-I3.
18919         (make_field_assignment): Handle SUBREGs in the ior+and case.
18920
18921 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
18922
18923         PR tree-optimization/64746
18924         * tree-if-conv.c (mask_exists): New function.
18925         (predicate_mem_writes): Save created mask with given size for further
18926         use.
18927         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
18928         (ifcvt_repair_bool_pattern): Collect all statements that are root
18929         of bool pattern and use iterative algorithm to remove multiple uses
18930         of predicates, display number of required iterations.
18931
18932 2015-01-29  Richard Biener  <rguenther@suse.de>
18933
18934         PR tree-optimization/64853
18935         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
18936         stmt will get simulated again.
18937         * tree-ssa-ccp.c (valueize_op_1): Likewise.
18938
18939 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18940
18941         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
18942         return_in_pc.  Remove redundant assignments.
18943         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
18944         (arm_expand_epilogue): Don't compare boolean with true in if condition.
18945
18946 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
18947
18948         * config/i386/i386.c (ix86_mode_after): Make static.
18949
18950 2015-01-29  Richard Biener  <rguenther@suse.de>
18951
18952         PR tree-optimization/64844
18953         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
18954         dump cost model analysis.
18955         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18956         Do not register adjusted load/store costs here.
18957
18958 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18959             Uros Bizjak  <ubizjak@gmail.com>
18960
18961         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
18962         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
18963         using x86_use_pseudo_pic_reg.
18964         * config/i386/i386.c (ix86_conditional_register_usage): Remove
18965         support for fixed PIC register.
18966         (ix86_use_pseudo_pic_reg): Not static any more.
18967
18968 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18969
18970         PR middle-end/64805
18971         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
18972         to avoid error in cgraph node verification.
18973
18974 2015-01-29  Marek Polacek  <polacek@redhat.com>
18975
18976         * doc/standards.texi: Reflect that the default for C is gnu11.
18977
18978 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18979
18980         PR target/64761
18981         * reorg.c (switch_text_sections_between_p): New function.
18982         (relax_delay_slots): Call it when testing if the jump insn
18983         is removable.  Use targetm.can_follow_jump when testing if
18984         the conditional branch can follow an unconditional jump.
18985
18986 2015-01-27  Caroline Tice  <cmtice@google.com>
18987
18988         Committing VTV Cywin/Ming patch for Patrick Wollgast
18989         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
18990         if -fvtable-verify=preinit/std is used.
18991         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
18992         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
18993         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
18994         if -fvtable-verify=preinit/std is used.
18995         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
18996         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
18997         if -fvtable-verify=preinit/std is used.
18998         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
18999         * config/i386/mingw32.h (LIB_SPEC): Likewise.
19000         * varasm.c (assemble_variable): Add code to properly set the comdat
19001         section and name for the .vtable_map_vars section in case the
19002         target is PE or COFF.
19003
19004 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19005
19006         PR ipa/64801
19007         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
19008         make sane BB profile.
19009         (cgraph_node::expand_thunk): Make sane BB profile.
19010         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
19011         * cgraph.h (init_lowered_empty_function): Update prototype.
19012         * config/i386/i386.c (make_resolver_func): Update call.
19013         * predict.c (gate): Disable branch prediction pass if
19014         profile is already there.
19015
19016 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19017
19018         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
19019         * opth-gen.awk: Likewise.
19020         * common.opt: Mark flag_fp_contract_mode as Optimization.
19021
19022 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19023
19024         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
19025         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
19026
19027 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
19028
19029         PR target/64659
19030         * config/sh/predicates.md (atomic_arith_operand,
19031         atomic_logical_operand): Remove.
19032         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
19033         (atomic_arith_operand_0): New predicate.
19034         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
19035         Use atomic_arith_operand_0 for input values.
19036         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
19037         atomic_compare_and_swap<mode>_soft_gusa,
19038         atomic_compare_and_swap<mode>_soft_tcb,
19039         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
19040         arith_reg_operand instead of register_operand.
19041         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
19042         atomic_arith_operand_0 for newval input.
19043         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
19044         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
19045         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
19046         arith_reg_operand instead of register_operand.
19047         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
19048         fetchop_predicate_1, fetchop_constraint_1_llcs,
19049         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
19050         fetchop_constraint_1_imask): New code iterator attributes.
19051         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
19052         register_operand.  Use fetchop_predicate_1.
19053         (atomic_fetch_<fetchop_name>si_hard,
19054         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
19055         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
19056         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
19057         and arith_reg_operand instead of register_operand.  Use
19058         fetchop_predicate_1, fetchop_constraint_1_gusa.
19059         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
19060         and arith_reg_operand instead of register_operand.  Use
19061         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
19062         to allow R0 usage.
19063         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
19064         and arith_reg_operand instead of register_operand.  Use
19065         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
19066         to allow R0 usage.
19067         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
19068         register_operand.  Use atomic_logical_operand_1.
19069         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
19070         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
19071         arith_reg_operand instead of register_operand.
19072         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
19073         Use arith_reg_dest and arith_reg_operand instead of register_operand.
19074         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
19075         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
19076         register_operand.  Use fetchop_predicate_1.
19077         (atomic_<fetchop_name>_fetchsi_hard,
19078         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19079         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19080         fetchop_constraint_1_llcs.
19081         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19082         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19083         fetchop_constraint_1_gusa.
19084         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19085         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19086         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
19087         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19088         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19089         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
19090         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19091         register_operand.  Use atomic_logical_operand_1.
19092         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19093         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19094         arith_reg_operand instead of register_operand.
19095         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19096         arith_reg_operand instead of register_operand.  Use logical_operand
19097         and K08.  Adjust asm sequence to allow R0 usage.
19098         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19099         arith_reg_operand instead of register_operand.  Use logical_operand
19100         and K08.
19101
19102 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19103
19104         PR other/63504
19105         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19106         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19107         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19108         only get_full_len HOST_WIDE_INTs from get_val () array rather than
19109         all bits in *val_wide.
19110
19111 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
19112
19113         * varpool.c (tls_model_names): Fix names.
19114         (varpool_node::dump): Dump tls- prefix for tls models.
19115
19116 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
19117             Bernd Schmidt  <bernds@codesourcery.com>
19118             Nathan Sidwell  <nathan@codesourcery.com>
19119
19120         * config/nvptx/mkoffload.c: New file.
19121         * config/nvptx/t-nvptx: Add build rules for it.
19122         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19123         (extra_programs): Add mkoffload.
19124         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19125         function.
19126         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19127
19128 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
19129
19130         PR middle-end/64809
19131         * cfgexpand.c (reorder_operands): Skip debug gimples.
19132
19133 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
19134
19135         PR tree-optimization/64277
19136         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19137         range info when possible to refine estimation.
19138
19139 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19140
19141         PR tree-optimization/64718
19142         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19143         be a 16bit unsigned integer when n->range is 16.
19144         (bswap_replace): Convert src to that type if necessary for all bswap
19145         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19146         set in pass_optimize_bswap::execute ().
19147
19148 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19149
19150         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19151         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19152         integer and floating point variants.
19153         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19154
19155 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19156
19157         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19158         for all vector modes.
19159
19160 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19161
19162         PR bootstrap/64612
19163         * doc/sourcebuild.texi (comdat_group): Document.
19164
19165 2015-01-28  Terry Guo  <terry.guo@arm.com>
19166
19167         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19168
19169 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19170
19171         * toplev.c (print_version): Add param "show_global_state", and
19172         only print GGC and plugin information if it is true.
19173         (init_asm_output): Pass in "true" for the new param when calling
19174         print_version.
19175         (process_options): Likewise.
19176         (toplev::main): Likewise.
19177         * toplev.h (print_version): Add new param to decl.
19178
19179 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19180
19181         PR ipa/60871
19182         PR ipa/64139
19183         * tree.c (lookup_binfo_at_offset): New function.
19184         (get_binfo_at_offset): Use it.
19185
19186 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19187
19188         PR ipa/64282
19189         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19190         on vtable being vtable.
19191
19192 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19193
19194         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19195         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19196         -mhotpatch= option.
19197         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19198         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19199         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19200         Renamed.
19201         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19202         (s390_hotpatch_hw_max): New name.
19203         (s390_hotpatch_trampoline_halfwords): Renamed.
19204         (s390_hotpatch_hw_before_label): New name.
19205         (get_hotpatch_attribute): Removed.
19206         (s390_hotpatch_hw_after_label): New name.
19207         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19208         attribute.
19209         (s390_attribute_table): Ditto.
19210         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19211         (s390_function_num_hotpatch_hw): New name.
19212         Remove special handling of inline functions and hotpatching.
19213         Return number of nops before and after the function label.
19214         (s390_can_inline_p): Removed.
19215         (s390_asm_output_function_label): Emit a configurable number of nops
19216         after the function label.
19217         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19218         (TARGET_CAN_INLINE_P) Removed.
19219         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19220
19221 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19222             Jiong Wang  <jiong.wang@arm.com>
19223
19224         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19225         of scratch reg.
19226         (cb<optab><mode>1): Likewise.
19227         * config/aarch64/iterators.md (bcond): New define_code_attr.
19228
19229 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19230
19231         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19232         memory accesses.
19233
19234 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19235
19236         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19237         FPR->GPR moves.
19238
19239 2015-01-27  Richard Biener  <rguenther@suse.de>
19240
19241         * tree-vrp.c (update_value_range): Intersect the range with
19242         old recorded SSA name range information.
19243
19244 2015-01-27  Nick Clifton  <nickc@redhat.com>
19245
19246         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19247         BC, DE and HL registers directly, not via AX.
19248         When decrementing the stack pointer by a large amount, transfer SP
19249         into AX and perform the subtraction there.
19250         (rl78_expand_epilogue): Perform the inverse of the above
19251         enhancements.
19252
19253 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19254
19255         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19256
19257 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19258             Yury Gribov  <y.gribov@samsung.com>
19259
19260         PR ubsan/64741
19261         * ubsan.c (ubsan_source_location): Refactor code.
19262         (ubsan_type_descriptor): Update type size. Refactor code.
19263
19264 2015-01-27  Richard Biener  <rguenther@suse.de>
19265
19266         PR tree-optimization/56273
19267         PR tree-optimization/59124
19268         PR tree-optimization/64277
19269         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19270         from the first VRP pass.
19271
19272 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19273
19274         PR ipa/64776
19275         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19276         handle the first argument in the same loop as all the other arguments.
19277
19278         PR rtl-optimization/61058
19279         * jump.c (cleanup_barriers): Update basic block boundaries
19280         if BLOCK_FOR_INSN is non-NULL on PREV.
19281
19282 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19283
19284         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19285         bounds narrowing, already instrumented calls and calls to
19286         not instrumentable functions.
19287
19288 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19289
19290         PR tree-optimization/64807
19291         * wide-int.cc (wi::divmod_internal): Clear
19292         b_dividend[dividend_blocks_needed].
19293
19294 2015-01-26  DJ Delorie  <dj@redhat.com>
19295
19296         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19297         volatile memory references.
19298
19299 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19300
19301         PR target/49263
19302         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19303         remove_insn.
19304         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19305         shifts if it already fits into K08.
19306
19307 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19308
19309         PR ipa/64730
19310         * ipa-inline.c (inline_small_functions): Print "unknown" even
19311         if edge->call_stmt is non-NULL, but has builtins or unknown
19312         location.
19313
19314         PR middle-end/64421
19315         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19316         with asterisk, skip the first character.
19317
19318 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19319
19320         PR target/64806
19321         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19322         order change.
19323
19324 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19325
19326         PR target/64795
19327         * config/i386/i386.md (*movdi_internal): Also check operand 0
19328         to determine TYPE_LEA operand.
19329         (*movsi_internal): Ditto.
19330
19331 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19332
19333         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19334         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19335
19336 2015-01-26  Renlin Li  <renlin.li@arm.com>
19337
19338         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19339         the comment.
19340         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19341         for higher part.
19342
19343 2015-01-26  Richard Biener  <rguenther@suse.de>
19344
19345         PR middle-end/64764
19346         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19347         combining two BIT_AND_EXPR predicates.
19348
19349 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19350
19351         PR bootstrap/64754
19352         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19353
19354 2015-01-26  Terry Guo  <terry.guo@arm.com>
19355
19356         * config/arm/arm.c (arm_file_start): Update the assignment of
19357         Tag_ABI_HardFP_use.
19358
19359 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19360
19361         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19362         pipeline model.
19363         config/arm/arm.md: Include the new Cortex-A57 model.
19364         (generic_sched): Don't use generic_sched when tuning for
19365         Cortex-A57.
19366
19367 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19368             Uros Bizjak  <ubizjak@gmail.com>
19369
19370         * config/i386/i386.c (get_builtin_code_for_version): Add
19371         support for BMI and BMI2 multiversion functions.
19372
19373 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19374
19375         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19376         (extract_bit_field): Likewise.
19377         (extract_low_bits): Likewise.
19378         (expand_mult): Likewise.
19379         (expand_mult_highpart_adjust): Likewise.
19380
19381 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19382
19383         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19384         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19385         * config/i386/i386.c (processor_model): Add
19386         M_INTEL_COREI7_BROADWELL.
19387         (arch_names_table): Add "broadwell".
19388
19389 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19390
19391         PR target/49263
19392         PR target/53987
19393         PR target/64345
19394         PR target/59533
19395         PR target/52933
19396         PR target/54236
19397         PR target/51244
19398         * config/sh/sh-protos.h
19399         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19400         sh_extending_set_of_reg::use_as_unextended_reg,
19401         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19402         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19403         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19404         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19405         (sh_treg_insns): New class.
19406         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19407         (scope_counter): New class.
19408         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19409         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19410         sh_extending_set_of_reg::can_use_as_unextended_reg,
19411         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19412         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19413         sh_split_treg_set_expr): New functions.
19414         (addsubcosts): Handle treg_set_expr.
19415         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19416         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19417         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19418         (sh_insn_operands_modified_between_p): Make non-static.
19419         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19420         simple_mem_operand in addition to displacement_mem_operand.
19421         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19422         (treg_set_expr, treg_set_expr_not_const01,
19423         arith_reg_or_treg_set_expr): New predicates.
19424         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19425         arith_or_int_operand instead of logical_operand.  Convert to
19426         insn_and_split.  Try to optimize constant operand in splitter.
19427         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19428         (*tstqi_t_zero): Delete.
19429         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19430         (tstsi_t_and_not): Delete.
19431         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19432         Convert to insn_and_split.
19433         (unnamed split, tstsi_t_zero_extract_xor,
19434         tstsi_t_zero_extract_subreg_xor_little,
19435         tstsi_t_zero_extract_subreg_xor_big): Delete.
19436         (*tstsi_t_shift_mask): New insn_and_split.
19437         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19438         to recombine with surrounding insns when splitting.
19439         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19440         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19441         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19442         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19443         (*cbranch_div0s: Delete.
19444         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19445         Try to recombine with surrounding insns when splitting.  Add operand
19446         order variants.
19447         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19448         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19449         *addc_r_r_msb, *addc_2r_msb): Delete.
19450         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19451         order variant.
19452         (*addc_negreg_t): New insn_and_split.
19453         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19454         Try to recombine with surrounding insns when splitting.
19455         Add operand order variants.
19456         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19457         insn_and_split patterns.
19458         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19459         surrounding insns when splitting.
19460         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19461         (*rotcl): Likewise.  Add zero_extract variant.
19462         (*ashrsi2_31): New insn_and_split.
19463         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19464         (*zero_extend<mode>si2_disp_mem): Update comment.
19465         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19466         condition.
19467         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19468         with surrounding insns when splitting.
19469         (any_treg_expr_to_reg): New insn_and_split.
19470         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19471         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19472         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19473         *zero_extract_2): New single bit zero extract patterns.
19474         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19475         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19476         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19477         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19478         set destination.
19479         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19480         register_operand for set source.
19481
19482 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19483
19484         * i386.opt (prefetch_sse): New targetsave.
19485         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19486         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19487         ix86_cost/ix86_tune_cost.
19488
19489 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19490
19491         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19492         Support the JIT by using 0 as the language type.
19493
19494 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19495
19496         PR target/64317
19497         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19498         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19499         (mark_regno_live, process_bb_lives): Pass new parameter value to
19500         make_hard_regno_born.
19501
19502 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19503
19504         PR rtl-optimization/63637
19505         PR rtl-optimization/60663
19506         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19507         if elt->cost is MAX_COST for ASM_OPERANDS.
19508         (find_sets_in_insn): Fix up comment typo.
19509         (cse_insn): Don't set src_volatile for all non-volatile
19510         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19511         or with "memory" clobber.  Set elt->cost to MAX_COST
19512         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19513         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19514
19515 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19516
19517         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19518         alternative 1.
19519
19520 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19521
19522         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19523         libgcc/config/i386/elf-lib.h.
19524
19525 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19526
19527         PR driver/64737
19528         * gcc.c (print_configuration): Don't print a blank line at the end
19529         here...
19530         (run_attempt): ... but here unstead.
19531
19532         PR middle-end/64734
19533         * omp-low.c (scan_sharing_clauses): Don't ignore
19534         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19535         on target data/update constructs.
19536
19537 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19538
19539         PR target/50928
19540         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19541         (DEBUG_RELOAD): Removed define.
19542         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19543         (m32c_function_arg): Added a type cast.
19544         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19545         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19546         * config/m32c/bitops.md (andqi3_16): Likewise.
19547         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19548         (push_a01_l): Likewise.
19549
19550 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19551
19552         PR jit/64721
19553         * main.c (main): Construct toplev instances with init_signals=true.
19554         * toplev.c (general_init): Add param "init_signals", and use it to
19555         conditionalize the calls to signal and host_hooks.extra_signals.
19556         (toplev::toplev): Add param "init_signals".
19557         (toplev::main): When invoking general_init, pass m_init_signals
19558         to control whether signal-handlers are installed.
19559         * toplev.h (toplev::toplev): Add param "init_signals".
19560         (toplev::m_init_signals): New field.
19561
19562 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19563
19564         PR jit/64722
19565         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19566         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19567         latter may be affected by the former (e.g. on i686).
19568
19569 2015-01-23  Martin Liska  <mliska@suse.cz>
19570
19571         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19572         false positive during profiledbootstrap.
19573
19574 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19575
19576         PR libgomp/64672
19577         * lto-opts.c (lto_write_options): Output non-explicit conservative
19578         -fno-openacc.
19579         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19580         (append_compiler_options): Pass -fopenacc through.
19581
19582 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19583
19584         PR libgomp/64707
19585         * lto-opts.c (lto_write_options): Output non-explicit conservative
19586         -fno-openmp.
19587         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19588         (append_compiler_options): Pass -fopenmp through.
19589
19590 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19591
19592         PR debug/64511
19593         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19594         GTY markup.
19595
19596         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19597         * diagnostic.def (DK_ICE_NOBT): New kind.
19598         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19599         like DK_ICE, but never print backtrace.
19600         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19601         (internal_error_no_backtrace): New function.
19602         * gcc.c (execute): Use internal_error_no_backtrace instead of
19603         internal_error.
19604
19605 2015-01-22  Jeff Law  <law@redhat.com>
19606
19607         PR target/52076
19608         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19609         improve code density for small immediate to memory case.
19610         (insv): Better handle bitfield assignments when the field is
19611         being set to all ones.
19612         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19613         operand predicate.
19614
19615 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19616             Jakub Jelinek  <jakub@redhat.com>
19617
19618         PR middle-end/64729
19619         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19620         for !TARGET_LIBC_PROVIDES_SSP version and
19621         -fstack-protector-{all,strong,explicit} otherwise.
19622         * config/freebsd.h (LINK_SSP_SPEC): Handle
19623         -fstack-protector-{strong,explicit}.
19624
19625 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19626             H.J. Lu  <hongjiu.lu@intel.com>
19627
19628         PR ipa/64694
19629         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19630         heap.
19631
19632 2015-01-22  Wei Mi  <wmi@google.com>
19633
19634         PR rtl-optimization/64557
19635         * dse.c (record_store): Call get_addr for mem_addr.
19636         (check_mem_read_rtx): Likewise.
19637
19638 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19639
19640         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19641
19642 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19643
19644         * toplev.c (init_local_tick): Process the failure when read
19645         fails for random_seed.
19646
19647         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19648         'pretty_name' to avoid memory overflow.
19649
19650 2015-01-22  Richard Biener  <rguenther@suse.de>
19651
19652         PR middle-end/64728
19653         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19654         abnormal coalescing on undefined SSA names.
19655
19656 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19657
19658         PR target/64688
19659         PR target/64477
19660         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19661         for alternative 3.
19662         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19663
19664 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19665
19666         PR middle-end/63325
19667         * fold-const.c (fold_checksum_tree): Don't include value of
19668         expr->decl_with_vis.symtab_node in the checksum.
19669
19670 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19671
19672         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19673
19674 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19675
19676         PR driver/64690
19677         * gcc.c (insert_comments): New function.
19678         (try_generate_repro): Call it.
19679         (append_text): Removed.
19680
19681 2015-01-22  Richard Biener  <rguenther@suse.de>
19682
19683         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19684         with IL incompatible options.  Properly honor user optimize
19685         attributes.
19686
19687 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19688
19689         PR rtl-optimization/64682
19690         * combine.c (distribute_notes): When moving a death note for
19691         a register that is set in the new I2, make sure to put it
19692         before that new I2.
19693
19694 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19695
19696         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19697         not TARGET_DEFAULT.
19698
19699 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19700
19701         PR debug/64511
19702         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19703         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19704         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19705
19706         PR sanitizer/64706
19707         * doc/invoke.texi (-fsanitize=vptr): Document.
19708
19709         PR rtl-optimization/62078
19710         * dse.c: Include cfgcleanup.h.
19711         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19712         anything call purge_all_dead_edges and cleanup_cfg at the end
19713         of the pass.
19714
19715 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19716
19717         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19718         edges.
19719
19720 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19721
19722         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19723         decl attribute.
19724
19725 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19726             Tejas Belagod <Tejas.Belagod@arm.com>
19727
19728         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
19729         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
19730         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
19731         Removed.
19732
19733 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19734             Tejas Belagod <Tejas.Belagod@arm.com>
19735
19736         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
19737         (aarch64_reverse_mask): New decls.
19738         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
19739         (insn_count): New mode_attr.
19740         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
19741         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
19742         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
19743         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
19744         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
19745         (aarch64_simd_st4): New patterns.
19746         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
19747         (aarch64_reverse_mask): New functions.
19748
19749 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
19750
19751         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
19752         Declare.
19753         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
19754         addressing modes for BE.
19755         (aarch64_print_operand): Add 'R' specifier.
19756         (aarch64_simd_disambiguate_copy): Delete.
19757         (aarch64_simd_emit_reg_reg_move): New function.
19758         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
19759         in define_splits for structural moves.
19760         (mov<mode>): Use less restrictive predicates.
19761         (*aarch64_mov<mode>): Simplify and only allow for LE.
19762         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
19763
19764 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
19765
19766         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
19767
19768 2015-01-21  Richard Henderson  <rth@redhat.com>
19769
19770         PR target/64669
19771         * ccmp.c (used_in_cond_stmt_p): Remove.
19772         (expand_ccmp_expr): Don't use it.
19773
19774 2015-01-21  Nick Clifton  <nickc@redhat.com>
19775
19776         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
19777         PARALLELs.
19778
19779 2015-01-21  Richard Biener  <rguenther@suse.de>
19780
19781         PR middle-end/64313
19782         * tree-core.h (builtin_info, builtin_info_type): Turn from
19783         an object with two arrays into an array of an object with
19784         decl and two flags, implicit_p and declared_p.
19785         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
19786         set_builtin_decl, set_builtin_decl_implicit_p,
19787         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
19788         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
19789         * builtins.c (builtin_info): Adjust.
19790         * gimplify.c (gimplify_addr_expr): References to builtins
19791         that have been declared by the user makes them eligible for
19792         use by the compiler.  Call set_builtin_decl_implicit_p on them.
19793
19794 2015-01-20  Jeff Law  <law@redhat.com>
19795
19796         PR target/59946
19797         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
19798         allow pc-relative addresses in operand predicates or constraints.
19799
19800 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
19801
19802         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
19803         neon on aarch32 processors for stringops.
19804
19805 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19806
19807         PR ipa/63576
19808         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
19809
19810 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19811
19812         PR lto/45375
19813         * ipa-inline.c: Include lto-streamer.h
19814         (report_inline_failed_reason): Output source file differences and
19815         flags on optimization/target node mismatch.
19816         (can_inline_edge_p): Consider caller to be the outer inline function;
19817         be less restrictive about matching opimize and optimize_size attributes.
19818         (inline_account_function_p): Break out from ...
19819         (inline_small_functions): ... here.
19820         * ipa-inline-transform.c (clone_inlined_nodes): Use
19821         inline_account_function_p.
19822         (inline_call): Use optimize attribution; use inline_account_function_p.
19823         (inline_transform): Use opt_for_fn.
19824         * ipa-inline.h (inline_account_function_p): Declare.
19825
19826 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
19827
19828         PR debug/64663
19829         * dwarf2out.c (decl_piece_node): Don't put bitsize into
19830         mode if bitsize <= 0.
19831         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
19832         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
19833         sizes and positions.
19834
19835 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
19836
19837         * config/nios2/nios2.c (nios2_asm_file_end): Implement
19838         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
19839         needed.
19840         (TARGET_ASM_FILE_END): Define.
19841
19842 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19843
19844         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
19845         (struct tune_params): Use the enum.
19846         * arm.c (arm_*_tune): Update.
19847         (arm_option_override): Update.
19848
19849 2015-01-20  Richard Biener  <rguenther@suse.de>
19850
19851         PR ipa/64684
19852         * ipa-reference.c (add_static_var): Inline ...
19853         (analyze_function): ... here after splitting out from ...
19854         (is_proper_for_analysis): ... this.
19855
19856 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
19857
19858         PR target/64149
19859         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
19860         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
19861         replace the conditional with it's true branch.
19862         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
19863         (arm_lra_p): Remove.
19864
19865 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19866
19867         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
19868
19869 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19870
19871         * config/tilegx/mul-tables.c: Move symtab.h include after
19872         coretypes.h include.
19873         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
19874         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
19875         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
19876         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
19877         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19878
19879 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
19880
19881         PR bootstrap/64676
19882         Revert:
19883         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19884
19885         PR rtl-optimization/64081
19886         * loop-iv.c (def_pred_latch_p): New function.
19887         (latch_dominating_def): Allow specific cases with non-single
19888         definitions.
19889         (iv_get_reaching_def): Likewise.
19890         (check_complex_exit_p): New function.
19891         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19892         with exits not executing on any iteration.
19893
19894 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19895
19896         PR lto/45375
19897         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
19898         to set branch cost.
19899
19900 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19901
19902         PR lto/45375
19903         * i386.c (gate): Check flag_expensive_optimizations and
19904         optimize_size.
19905         (ix86_option_override_internal): Drop optimize_size condition
19906         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
19907         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
19908         MASK_PREFER_AVX128.
19909         (ix86_avx256_split_vector_move_misalign,
19910         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
19911         * sse.md (all uses of TARGET_PREFER_AVX128): Add
19912         optimize_insn_for_speed_p check.
19913
19914 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19915
19916         * config/mips/mips.h (FP_ASM_SPEC): New define.
19917         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
19918         instead.
19919
19920 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
19921
19922         PR target/53988
19923         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
19924         nullptr for insn when reaching the first insn.
19925         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
19926         (sh_insn_operands_modified_between_p): Add nullptr check.
19927         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
19928         sign extending mem load if the insn contains any UNSPEC or
19929         UNSPEC_VOLATILE.
19930
19931 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19932
19933         * params.def (inline-unit-growth): Drop to 15%.
19934         * invoke.texi (inline-unit-growth): Document change.
19935
19936 2015-01-19  Martin Liska  <mliska@suse.cz>
19937
19938         PR ipa/64668
19939         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
19940         function for second argument of OBJ_TYPE_REF.
19941
19942 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19943
19944         PR ipa/64218
19945         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
19946         whether function is an alias.
19947
19948 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19949
19950         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
19951         cases.
19952
19953 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19954
19955         PR rtl-optimization/64671
19956         * lra-remat.c (operand_to_remat): Don't consider jump and call
19957         insns.
19958
19959 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
19960
19961         PR target/59828
19962         * config/rs6000/default64.h: Include rs6000-cpus.def.
19963         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
19964         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
19965         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
19966         and POWER8.
19967         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
19968         POWER8.
19969         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
19970         pseudo-op to specify assembler dialect.
19971
19972 2015-01-19  Martin Liska  <mliska@suse.cz>
19973
19974         PR ipa/64664
19975         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
19976         Handle safe potentially removed nodes during filtering.
19977
19978 2015-01-19  Martin Liska  <mliska@suse.cz>
19979
19980         * doc/extend.texi (no_icf): Add new attribute description.
19981         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
19982         where the pass attempts to merge a function with no_icf attribute.
19983
19984 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19985
19986         PR target/64532
19987         * doc/md.texi (ARM Options): Document register constraints.
19988
19989 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
19990             Andrew Pinski  <apinski@cavium.com>
19991
19992         PR target/64304
19993         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
19994         (ashl<mode>3): Don't expand if operands[2] is not constant.
19995
19996 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19997
19998         PR target/64448
19999         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
20000         Match xor-and-xor RTL pattern.
20001
20002 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20003
20004         PR rtl-optimization/64081
20005         * loop-iv.c (def_pred_latch_p): New function.
20006         (latch_dominating_def): Allow specific cases with non-single
20007         definitions.
20008         (iv_get_reaching_def): Likewise.
20009         (check_complex_exit_p): New function.
20010         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20011         with exits not executing on any iteration.
20012
20013 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
20014
20015         * common.opt (fgraphite): Fix a typo.
20016
20017 2015-01-19  Felix Yang  <felix.yang@huawei.com>
20018
20019         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
20020         pattern.
20021         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
20022         uminp, smax_nanp, smin_nanp): New builtins.
20023         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
20024         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
20025         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
20026         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
20027         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
20028         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
20029         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
20030         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
20031         vpminnms_f32): Rewrite using builtin functions.
20032
20033 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
20034
20035         PR libgomp/64625
20036         * omp-low.c (offload_symbol_decl): Remove variable.
20037         (get_offload_symbol_decl): Remove function.
20038         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
20039         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
20040         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
20041         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
20042         BUILT_IN_GOACC_UPDATE don't pass it at all.
20043
20044 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20045
20046         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
20047         callers.
20048
20049 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20050
20051         * ipa-chkp.c (chkp_produce_thunks): Add early param
20052         to split thunks production into two passes.  Keep
20053         'always_inline' function bodies after the first pass.
20054         (pass_data_ipa_chkp_early_produce_thunks): New.
20055         (pass_ipa_chkp_early_produce_thunks): New.
20056         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
20057         chkp_produce_thunks signature.
20058         (make_pass_ipa_chkp_early_produce_thunks): New.
20059         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
20060         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
20061         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
20062
20063 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20064
20065         * cgraph.c (cgraph_node::dump): Dump profile flags.
20066
20067 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
20068
20069         PR target/64652
20070         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
20071         reg appear first in the parallel.
20072
20073 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20074
20075         * ipa-reference.c (set_reference_optimization_summary,
20076         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20077         disabled.
20078         (ignore_module_statics): New static var.
20079         (propagate_bits): If ipa-reference is disabled, do not look into local
20080         properties.
20081         (analyze_function): Disable analysis when ipa_reference is disabled.
20082         (generate_summary): Do not dump when reference is disabled;
20083         collect vars accessed from functions with ipa-reference disabled.
20084         (get_read_write_all_from_node): When ipa-reference is disabled, use the
20085         node flags.
20086         (gate): Enable for LTO.
20087         (ignore_edge_p): New function.
20088         (propagate): Skip functions w/o ipa-reference analysis.
20089         * optc-save-gen.awk: Handle optimize_debug correctly.
20090         * opth-gen.awk: Likewise.
20091         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20092         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20093         fira-share-save-slots, fira-share-spill-slots,
20094         fmodulo-sched-allow-regmoves, fpartial-inlining,
20095         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20096         ftracer, ftree-parallelize-loops, fassociative-math,
20097         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20098         Optimization
20099         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20100         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20101         Optimization.
20102         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20103         Fix for IPA.
20104
20105 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20106
20107         PR ipa/64378
20108         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20109         flag correctly.
20110         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20111
20112 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
20113
20114         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20115         Remove duplicate option listings.
20116
20117 2015-01-18  Felix Yang  <felix.yang@huawei.com>
20118
20119         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20120         (autofdo_source_profile::get_callsite_total_count,
20121         function_instance::get_function_instance_by_decl,
20122         string_table::get_index, string_table::get_index_by_decl,
20123         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20124         Fix comment typos. Reformatting and minor code rearrangement.
20125
20126 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20127
20128         * config/rs6000/rs6000.md (probe_stack): Delete.
20129         (probe_stack_address): New.
20130
20131 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20132
20133         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20134         to test for 32-bit ABIs, not !TARGET_POWERPC64.
20135
20136 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20137
20138         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20139         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
20140         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
20141         snafu.
20142         (rs6000_libcall_value): Use the new function.
20143
20144 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20145
20146         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20147
20148 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20149
20150         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20151         implement a more precise life analysis for it during backward scan.
20152
20153 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20154
20155         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20156
20157 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20158
20159         PR rtl-optimization/52773
20160         * calls.c (emit_library_call_value): When pushing arguments use
20161         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20162         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20163         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20164
20165 2015-01-17  Jeff Law  <law@redhat.com>
20166
20167         PR rtl-optimization/32790
20168         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20169         not ZERO_EXTEND in SET_DESTs.
20170
20171 2015-01-17  Alan Modra  <amodra@gmail.com>
20172
20173         * cprop.c (do_local_cprop): Revert last change.
20174
20175 2015-01-16  DJ Delorie  <dj@redhat.com>
20176             Nick Clifton  <nickc@redhat.com>
20177
20178         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20179         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20180         (subqi3_real): Likewise.
20181         (subhi3_real): Likewise.
20182         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20183         (cbranchhi4_real): Likewise.
20184         (cbranchhi4_real_inverted): Likewise.
20185         (cbranchsi4_real_lt): Likewise.
20186         (cbranchsi4_real_ge): Likewise.
20187         (cbranchsi4_real_ge): Likewise.
20188         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20189         (sub<mode>3_virt): Likewise.
20190         (cbranchqi4_virt): Likewise.
20191         (cbranchhi4_virt): Likewise.
20192         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20193         always use '[reg+imm]' even when imm is zero.
20194         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20195         (rl78_general_operand): New.
20196         (rl78_nonimmediate_operand): New.
20197         (rl78_nonfar_operand): Use them.
20198         (rl78_nonfar_nonimm_operand): Likewise.
20199         (rl78_stack_based_mem): Fix.
20200         * config/rl78/constraints.md (Ibqi): New.
20201         (IBqi): New.
20202         (Wsa): New.
20203         (Wsf): New.
20204         (Cs1): Fix.
20205         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20206         (iorqi3): Likewise.
20207         (xorqi3): Likewise.
20208         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20209
20210         * config/rl78/constrains (Qs8): New constraint.
20211         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20212         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20213         * config/rl78/rl78-real.md (update_Z): New attribute.
20214         Update patterns to set it.
20215         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20216         shorter compare and branch sequence can be used.
20217         (cbranchhi4_real): Likewise.
20218         (cbranchhi4_real_inverted): Likewise.
20219
20220         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20221         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20222         address space.
20223         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20224         (rl78_option_override): Allow -mes0 only if C.
20225         (characterize_address): Support subregs of symbol_refs.
20226         (rl78_addr_space_address_mode): Move.  Add __near.
20227         (rl78_far_p): Likewise.
20228         (rl78_addr_space_pointer_mode): Likewise.
20229         (rl78_as_legitimate_address): Likewise.
20230         (rl78_addr_space_subset_p): Likewise.
20231         (rl78_addr_space_convert): Likewise.
20232         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20233         symbols with -mes0.
20234         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20235         addressing.
20236         (rl78_alloc_physical_registers_op1): Change logic to prefer
20237         symbol[BC] addressing.
20238         (frodata_section): New.
20239         (rl78_asm_init_sections): Initialize it.
20240         (rl78_select_section): Put __far readonly symbols in .frodata.
20241         (rl78_make_type_far): New.
20242         (rl78_insert_attributes): Force all readonly symbols to be
20243         __far when -mes0.
20244         (rl78_asm_out_integer): New.
20245         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20246         * config/rl78/rl78.opt (-mes0): New.
20247
20248         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20249         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20250         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20251         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20252         (rl78_saddr_p): New.
20253         (rl78_output_aligned_common): New.
20254         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20255         (rl78_handle_saddr_attribute): New.
20256         (rl78_handle_naked_attribute): New.
20257         (rl78_attribute_table): Add saddr.
20258         (rl78_print_operand_1): Don't print '!' on saddr operands.
20259         (rl78_print_operand_1): Strip encodings.
20260         (rl78_sfr_p): New.
20261         (rl78_strip_name_encoding): New.
20262         (rl78_attrlist_to_encoding): New.
20263         (rl78_encode_section_info): New.
20264         (rl78_asm_init_sections): New.
20265         (rl78_select_section): New.
20266         (rl78_output_labelref): New.
20267         (rl78_output_aligned_common): New.
20268         (rl78_asm_out_integer): New.
20269         (rl78_asm_ctor_dtor): New.
20270         (rl78_asm_constructor): New.
20271         (rl78_asm_destructor): New.
20272
20273         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20274         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20275         (transcode_memory_rtx): Update.
20276         (rl78_expand_epilogue): Use A_REG instead of 0.
20277
20278 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20279
20280         * config/arm/arm-protos.h (struct tune_params): New field
20281         sched_autopref_queue_depth.
20282         * config/arm/arm.c (sched-int.h): Include header.
20283         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20284         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20285         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20286         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20287         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20288         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20289         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20290         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20291         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20292         * config/arm/t-arm (arm.o): Update.
20293         * haifa-sched.c (update_insn_after_change): Update.
20294         (rank_for_schedule): Use auto-prefetcher model, if requested.
20295         (autopref_multipass_init): New static function.
20296         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20297         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20298         variable for debug dumps.
20299         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20300         (autopref_multipass_dfa_lookahead_guard): New global function that
20301         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20302         (init_h_i_d): Update.
20303         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20304         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20305         (autopref_multipass_data_): Structure for auto-prefetcher data.
20306         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20307         (struct _haifa_insn_data:autopref_multipass_data): New field.
20308         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20309         (autopref_multipass_dfa_lookahead_guard): Declare.
20310
20311 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20312
20313         * rtlanal.c (get_base_term): Handle SCRATCH.
20314
20315 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20316
20317         * config/aarch64/aarch64.c
20318         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20319         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20320         * config/arm/arm.c
20321         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20322         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20323
20324 2015-01-17  Alan Modra  <amodra@gmail.com>
20325
20326         * cprop.c (do_local_cprop): Disallow replacement of fixed
20327         hard registers.
20328
20329 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20330
20331         PR target/62066
20332         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20333         early return 0.
20334
20335 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20336
20337         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20338         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20339
20340 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20341
20342         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20343         * config/arm/thumb1.md: ... Here.
20344
20345 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20346
20347         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20348         TImode for TARGET_32BIT.
20349
20350 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20351
20352         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20353         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20354         as ...
20355         (rs6000_abi_word_mode): New function.
20356
20357 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20358
20359         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20360         instead of UNITS_PER_WORD to describe the size of stack slots.
20361
20362 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20363
20364         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20365         as rs6000_promote_function_mode.  Move comment to there.
20366         (rs6000_promote_function_mode): New function.
20367
20368 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20369
20370         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20371         -mpowerpc64 is active.
20372
20373 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20374
20375         PR middle-end/64353
20376         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20377         virtuals on start.
20378
20379 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20380
20381         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20382         introduced in revision 219724.
20383
20384 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20385             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20386
20387         PR target/64263
20388         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20389         destination is not a GP reg.
20390         (*movdi_aarch64): Likewise.
20391
20392 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20393
20394         PR target/64623
20395         * config/rs6000/default64.h: Revert ISA change.
20396
20397 2015-01-16  Richard Biener  <rguenther@suse.de>
20398
20399         PR middle-end/64614
20400         * tree-ssa-uninit.c: Include tree-cfg.h.
20401         (MAX_SWITCH_CASES): New define.
20402         (convert_control_dep_chain_into_preds): Handle switch statements.
20403         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20404         (normalize_one_pred_1): Do not split bit-manipulations.
20405         Record (x & CST).
20406
20407 2015-01-16  Richard Biener  <rguenther@suse.de>
20408
20409         PR tree-optimization/64568
20410         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20411         complex load rewriting for TARGET_MEM_REFs.
20412
20413 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20414
20415         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20416
20417 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20418
20419         PR target/64149
20420         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20421         variable.
20422         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20423         (aarch64_lra_p): Remove.
20424
20425 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20426
20427         PR target/64363
20428         * ipa-chkp.h (chkp_instrumentable_p): New.
20429         * ipa-chkp.c: Include tree-inline.h.
20430         (chkp_instrumentable_p): New.
20431         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20432         Fix processing of not instrumentable functions.
20433         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20434         not instrumentable functions.
20435         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20436         chkp_instrumentable_p.
20437         * tree-inline.h (copy_forbidden): New.
20438         * tree-inline.c (copy_forbidden): Not static anymore.
20439
20440 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20441
20442         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20443         ptr1, ptr2 unused.
20444
20445 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20446
20447         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20448         type OP_OUT to OP_INOUT.
20449
20450 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20451
20452         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20453         (high x) y) to y if x and y have the same base.
20454
20455 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20456
20457         * config/arm/cortex-a57.md: New.
20458         * config/aarch64/aarch64.md: Include it.
20459         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20460         * config/aarch64/aarch64-tune.md: Regenerate.
20461
20462 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20463
20464         PR target/64015
20465         * ccmp.c (expand_ccmp_next): New function.
20466         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20467         and compare insn sequence.
20468         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20469         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20470         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20471         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20472         (*ccmp_ior): Changed to ccmp_ior<mode>.
20473         (cmp<mode>): New pattern.
20474         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20475         parameters.
20476         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20477
20478 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20479
20480         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20481         _mm256_bsrli_epi128): New.
20482         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20483
20484 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20485
20486         * expmed.c (store_bit_field_using_insv): Improve warning message.
20487         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20488
20489 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20490
20491         PR rtl-optimization/64011
20492         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20493         there is partial overflow.
20494
20495 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20496
20497         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20498         prototype.
20499         (nds32_expand_epilogue_v3pop): Likewise.
20500         * config/nds32/nds32.md (sibcall): Define this for sibling call
20501         optimization.
20502         (sibcall_register): Likewise.
20503         (sibcall_immediate): Likewise.
20504         (sibcall_value): Likewise.
20505         (sibcall_value_register): Likewise.
20506         (sibcall_value_immediate): Likewise.
20507         (sibcall_epilogue): Likewise.
20508         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20509         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20510         (nds32_expand_epilogue_v3pop): Likewise.
20511
20512 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20513
20514         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20515         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20516         (return_internal): New.
20517         (return): Define this named pattern.
20518         (simple_return): Define this named pattern.
20519         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20520         pattern instead of unspec_volatile_func_return.
20521         (nds32_expand_epilogue_v3pop): Likewise.
20522         (nds32_can_use_return_insn): New function.
20523
20524 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20525
20526         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20527         * config/nds32/nds32.md (pop25return): New.
20528         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20529         pop25return pattern.
20530
20531 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20532
20533         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20534         -mforbid-fp-as-gp, and -mex9 options.
20535
20536 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20537
20538         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20539         remove -mgp-direct option.
20540
20541 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20542
20543         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20544         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20545
20546 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20547
20548         * ipa-inline.c (inline_small_functions): Work around hints
20549         cache issue.
20550
20551 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20552
20553         PR target/59710
20554         * doc/invoke.texi (Option Summary): Document new Nios II
20555         -mgpopt= syntax.
20556         (Nios II Options): Likewise.
20557         * config/nios2/nios2.opt: Add -mgpopt= option support.
20558         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20559         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20560         * config/nios2/nios2.c (nios2_option_override): Adjust
20561         -mgpopt defaulting.
20562         (nios2_in_small_data_p): Return true for explicit small data
20563         sections even with -G0.
20564         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20565         option choices.
20566
20567 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20568
20569         PR ipa/64612
20570         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20571         of comdat locals.
20572         (inline_call): Fix removal of aliases.
20573
20574 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20575
20576         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20577         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20578         * opts.c (common_handle_option): Add -fsanitize=vptr.
20579         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20580         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20581         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20582         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20583         (ubsan_expand_vptr_ifn): New prototype.
20584         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20585         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20586         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20587         expand_LOOP_VECTORIZED): Make argument nameless, remove
20588         ATTRIBUTE_UNUSED.
20589         (expand_UBSAN_VPTR): New function.
20590         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20591         in fn spec.
20592         (UBSAN_VPTR): New internal function.
20593         * sanopt.c (tree_map_traits): Renamed to ...
20594         (sanopt_tree_map_traits): ... this.
20595         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20596         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20597         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20598         (maybe_optimize_ubsan_vptr_ifn): New function.
20599         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20600         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20601         -fsanitize=vptr.
20602         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20603         internal calls like pure functions for aliasing, even when they
20604         have other side-effects that prevent making them ECF_PURE.
20605         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20606         (ubsan_expand_vptr_ifn): New function.
20607
20608 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20609
20610         PR rtl-optimization/64110
20611         * stmt.c (parse_output_constraint): Process '^' and '$'.
20612         (parse_input_constraint): Ditto.
20613         * lra-constraints.c (process_alt_operands): Process the new
20614         constraints.
20615         * ira-costs.c (record_reg_classes): Process the new constraint
20616         '^'.
20617         * genoutput.c (indep_constraints): Add '^' and '$'.
20618         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20619         * doc/md.texi: Add description of the new constraints.
20620
20621 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20622             Bernd Schmidt  <bernds@codesourcery.com>
20623             Cesar Philippidis  <cesar@codesourcery.com>
20624             James Norris  <jnorris@codesourcery.com>
20625             Tom de Vries  <tom@codesourcery.com>
20626             Ilmir Usmanov  <i.usmanov@samsung.com>
20627             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20628             Evgeny Gavrin  <e.gavrin@samsung.com>
20629             Jakub Jelinek  <jakub@redhat.com>
20630
20631         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20632         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20633         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20634         New function types.
20635         * builtins.c: Include "gomp-constants.h".
20636         (expand_builtin_acc_on_device): New function.
20637         (expand_builtin, is_inexpensive_builtin): Handle
20638         BUILT_IN_ACC_ON_DEVICE.
20639         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20640         New macros.
20641         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20642         flag_openmp.
20643         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20644         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20645         i386/intelmic-offload.h.
20646         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20647         to libgomp and its dependencies.
20648         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20649         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20650         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20651         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20652         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20653         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20654         * doc/generic.texi: Update for OpenACC changes.
20655         * doc/gimple.texi: Likewise.
20656         * doc/invoke.texi: Likewise.
20657         * doc/sourcebuild.texi: Likewise.
20658         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20659         GF_OMP_FOR_KIND_OACC_LOOP.
20660         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20661         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20662         GF_OMP_TARGET_KIND_OACC_UPDATE,
20663         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20664         Dump more data.
20665         * gimple.c: Update comments for OpenACC changes.
20666         * gimple.def: Likewise.
20667         * gimple.h: Likewise.
20668         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20669         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20670         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20671         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20672         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20673         appropriate place.
20674         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20675         * gimplify.c: Include "gomp-constants.h".
20676         Update comments for OpenACC changes.
20677         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20678         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20679         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20680         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20681         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20682         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20683         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20684         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20685         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20686         OMP_CLAUSE_SEQ.
20687         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20688         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20689         OMP_CLAUSE_SET_MAP_KIND.
20690         (gimplify_oacc_cache): New function.
20691         (gimplify_omp_for): Handle OACC_LOOP.
20692         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20693         OACC_DATA.
20694         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20695         OACC_EXIT_DATA, OACC_UPDATE.
20696         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20697         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20698         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20699         (gimplify_body): Consider flag_openacc next to flag_openmp.
20700         * lto-streamer-out.c: Include "gomp-constants.h".
20701         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20702         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20703         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20704         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20705         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20706         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20707         * omp-low.c: Include "gomp-constants.h".
20708         Update comments for OpenACC changes.
20709         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20710         members.
20711         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20712         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20713         (create_omp_child_function, scan_omp_for, scan_omp_target)
20714         (check_omp_nesting_restrictions, lower_reduction_clauses)
20715         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20716         Update for OpenACC changes.
20717         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20718         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20719         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20720         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20721         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20722         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20723         OMP_CLAUSE_MAP_*.
20724         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
20725         Handle GF_OMP_FOR_KIND_OACC_LOOP.
20726         (expand_omp_target, lower_omp_target): Handle
20727         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20728         GF_OMP_TARGET_KIND_OACC_UPDATE,
20729         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
20730         GF_OMP_TARGET_KIND_OACC_DATA.
20731         (pass_expand_omp::execute, execute_lower_omp)
20732         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
20733         flag_openmp.
20734         (offload_symbol_decl): New variable.
20735         (oacc_get_reduction_array_id, oacc_max_threads)
20736         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
20737         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
20738         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
20739         (oacc_gimple_assign, oacc_initialize_reduction_data)
20740         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
20741         functions.
20742         (is_targetreg_ctx): Remove function.
20743         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
20744         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
20745         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20746         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
20747         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
20748         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
20749         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
20750         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
20751         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
20752         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
20753         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
20754         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
20755         * tree-core.h: Update comments for OpenACC changes.
20756         (enum omp_clause_map_kind): Remove.
20757         (struct tree_omp_clause): Change type of map_kind member from enum
20758         omp_clause_map_kind to unsigned char.
20759         * tree-inline.c: Update comments for OpenACC changes.
20760         * tree-nested.c: Likewise.  Include "gomp-constants.h".
20761         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
20762         (convert_tramp_reference_stmt, convert_gimple_call): Update for
20763         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20764         OMP_CLAUSE_SET_MAP_KIND.
20765         * tree-pretty-print.c: Include "gomp-constants.h".
20766         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
20767         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
20768         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
20769         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
20770         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20771         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
20772         instead of OMP_CLAUSE_MAP_*.
20773         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
20774         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
20775         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20776         * tree-streamer-in.c: Include "gomp-constants.h".
20777         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
20778         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
20779         * tree-streamer-out.c: Include "gomp-constants.h".
20780         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
20781         OMP_CLAUSE_MAP_*.
20782         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
20783         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
20784         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
20785         * tree.c (omp_clause_num_ops): Update accordingly.
20786         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
20787         Likewise.
20788         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
20789         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
20790         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
20791         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
20792         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
20793         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
20794         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
20795         (OMP_CLAUSE_SET_MAP_KIND): New macro.
20796         * varpool.c (varpool_node::get_create): Consider flag_openacc next
20797         to flag_openmp.
20798         * config/i386/intelmic-offload.h: New file.
20799         * config/nvptx/offload.h: Likewise.
20800
20801 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20802
20803         * explow.h: Remove duplicate contents.
20804         * dojump.h: Likewise.
20805
20806 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
20807
20808         * arm.c (arm_xgene_tune): Add default initializer for instruction
20809         fusion.
20810
20811 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20812
20813         PR ipa/64068
20814         PR ipa/64559
20815         * ipa.c (symbol_table::remove_unreachable_nodes):
20816         Do not put abstract origins into boundary.
20817
20818 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
20819
20820         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
20821         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
20822
20823 2015-01-15  Steve Ellcey  <sellcey@mips.com>
20824
20825         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
20826         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
20827         builtins.def, and chkp-builtins.def.
20828
20829 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
20830
20831         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
20832         ISA 2.7 (POWER8).
20833
20834 2015-01-15  Richard Biener  <rguenther@suse.de>
20835
20836         PR tree-optimization/61743
20837         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
20838         information on PHIs for some simple cases.
20839
20840 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20841
20842         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
20843         Include xgene1.md.
20844         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
20845         * config/arm/arm-cores.def (xgene1): New entry.
20846         * config/arm/arm-tables.opt: Regenerate.
20847         * config/arm/arm-tune.md: Regenerate.
20848         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
20849
20850 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20851
20852         * tree-if-conv.c: Include hash-map.h.
20853         (aggressive_if_conv): New variable.
20854         (fold_build_cond_expr): Add simplification of non-zero condition.
20855         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
20856         destination block is not always executed.
20857         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
20858         than two predecessors if AGGRESSIVE_IF_CONV is true.
20859         (if_convertible_stmt_p): Fix commentary.
20860         (all_preds_critical_p): New function.
20861         (has_pred_critical_p): New function.
20862         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
20863         BB can have more than two predecessors and all incoming edges can be
20864         critical.
20865         (predicate_bbs): Skip predication for loop exit block, use build2_loc
20866         to compute predicate for true edge.
20867         (find_phi_replacement_condition): Delete this function.
20868         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
20869         Allow interchange PHI arguments if EXTENDED is false.
20870         Change check that block containing reduction statement candidate
20871         is predecessor of phi-block since phi may have more than two arguments.
20872         (phi_args_hash_traits): New helper structure.
20873         (struct phi_args_hash_traits): New type.
20874         (phi_args_hash_traits::hash): New function.
20875         (phi_args_hash_traits::equal_keys): New function.
20876         (gen_phi_arg_condition): New function.
20877         (predicate_scalar_phi): Add handling of phi nodes with more than two
20878         arguments, delete COND and TRUE_BB arguments, insert body of
20879         find_phi_replacement_condition to predicate ordinary phi nodes.
20880         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
20881         delete call of find_phi_replacement_condition and invoke
20882         predicate_scalar_phi with two arguments.
20883         (insert_gimplified_predicates): Add assert that non-predicated block
20884         don't have statements to insert.
20885         (ifcvt_split_critical_edges): New function.
20886         (ifcvt_split_def_stmt): Likewise.
20887         (ifcvt_walk_pattern_tree): Likewise.
20888         (stmt_is_root_of_bool_pattern): Likewise.
20889         (ifcvt_repair_bool_pattern): Likewise.
20890         (ifcvt_local_dce): Likewise.
20891         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
20892         is copy of inner or outer loop force_vectorize field, invoke
20893         ifcvt_split_critical_edges, ifcvt_local_dce and
20894         ifcvt_repair_bool_pattern for aggressive if-conversion.
20895
20896 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
20897
20898         * config/aarch64/aarch64.md: Include xgene1.md.
20899         * config/aarch64/xgene1.md: New file.
20900
20901 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20902
20903         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
20904         xgene1 (APM XGene-1) core definition.
20905         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
20906         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
20907         * doc/invoke.texi: Document -mcpu=xgene1.
20908
20909 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20910
20911         * dojump.h: New header file.
20912         * explow.h: Likewise.
20913         * expr.h: Remove includes.
20914         Move expmed.c prototypes to expmed.h.
20915         Move dojump.c prototypes to dojump.h.
20916         Move alias.c prototypes to alias.h.
20917         Move explow.c prototypes to explow.h.
20918         Move calls.c prototypes to calls.h.
20919         Move emit-rtl.c prototypes to emit-rtl.h.
20920         Move varasm.c prototypes to varasm.h.
20921         Move stmt.c prototypes to stmt.h.
20922         (saved_pending_stack_adjust): Move to dojump.h.
20923         (adjust_address): Move to explow.h.
20924         (adjust_address_nv): Move to emit-rtl.h.
20925         (adjust_bitfield_address): Likewise.
20926         (adjust_bitfield_address_size): Likewise.
20927         (adjust_bitfield_address_nv): Likewise.
20928         (adjust_automodify_address_nv): Likewise.
20929         * explow.c (expr_size): Move to expr.c.
20930         (int_expr_size): Likewise.
20931         (tree_expr_size): Likewise.
20932         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20933         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20934         * genemit.c (main): Generate includes statistics.h, real.h,
20935         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
20936         stmt.h.
20937         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
20938         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
20939         explow.h, emit-rtl.h, stmt.h.
20940         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
20941         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
20942         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
20943         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
20944         emit-rtl.h, varasm.h, stmt.h.
20945         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
20946         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
20947         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
20948         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
20949         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20950         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
20951         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
20952         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
20953         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
20954         tm.h tree.h varasm.h vec.h wide-int.h.
20955         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20956         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20957         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
20958         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
20959         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
20960         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
20961         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
20962         * loop-iv.c: Likewise.
20963         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
20964         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
20965         statistics.h stmt.h tree.h varasm.h wide-int.h.
20966         * lra-constraints.c: Likewise.
20967         * lra-eliminations.c: Likewise.
20968         * lra-lives.c: Likewise.
20969         * lra-remat.c: Likewise.
20970         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20971         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
20972         statistics.h stmt.h tree.h varasm.h wide-int.h.
20973         * hw-doloop.c: Likewise.
20974         * ira-color.c: Likewise.
20975         * ira-emit.c: Likewise.
20976         * loop-doloop.c: Likewise.
20977         * loop-invariant.c: Likewise.
20978         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20979         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
20980         statistics.h stmt.h tree.h varasm.h wide-int.h.
20981         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
20982         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
20983         statistics.h stmt.h tree.h varasm.h wide-int.h.
20984         * combine-stack-adj.c: Likewise.
20985         * cse.c: Likewise.
20986         * ddg.c: Likewise.
20987         * ifcvt.c: Likewise.
20988         * ira-costs.c: Likewise.
20989         * jump.c: Likewise.
20990         * lra-coalesce.c: Likewise.
20991         * lra-spills.c: Likewise.
20992         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20993         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
20994         stmt.h varasm.h wide-int.h.
20995         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20996         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20997         varasm.h.
20998         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
20999         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
21000         statistics.h stmt.h varasm.h wide-int.h.
21001         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
21002         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
21003         varasm.h wide-int.h.
21004         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
21005         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21006         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
21007         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
21008         statistics.h stmt.h.
21009         * config/tilepro/tilepro.c: Likewise.
21010         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
21011         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
21012         * config/pdp11/pdp11.c: Likewise.
21013         * config/xtensa/xtensa.c: Likewise.
21014         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
21015         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21016         varasm.h.
21017         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21018         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21019         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
21020         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21021         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21022         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
21023         * rtl-chkp.c: Likewise.
21024         * tree-chkp-opt.c: Likewise.
21025         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
21026         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21027         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
21028         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21029         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21030         statistics.h stmt.h.
21031         * tree-vect-data-refs.c: Likewise.
21032         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
21033         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21034         rtl.h statistics.h stmt.h varasm.h.
21035         * internal-fn.c: Likewise.
21036         * ipa-icf-gimple.c: Likewise.
21037         * lto-section-out.c: Likewise.
21038         * tree-data-ref.c: Likewise.
21039         * tree-nested.c: Likewise.
21040         * tree-outof-ssa.c: Likewise.
21041         * tree-predcom.c: Likewise.
21042         * tree-pretty-print.c: Likewise.
21043         * tree-scalar-evolution.c: Likewise.
21044         * tree-ssa-strlen.c: Likewise.
21045         * tree-vect-loop.c: Likewise.
21046         * tree-vect-patterns.c: Likewise.
21047         * tree-vect-slp.c: Likewise.
21048         * tree-vect-stmts.c: Likewise.
21049         * tsan.c: Likewise.
21050         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21051         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
21052         stmt.h.
21053         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
21054         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21055         statistics.h stmt.h varasm.h.
21056         * loop-unroll.c: Likewise.
21057         * ubsan.c: Likewise.
21058         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
21059         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
21060         stmt.h varasm.h.
21061         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21062         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
21063         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
21064         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21065         statistics.h stmt.h.
21066         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
21067         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21068         statistics.h stmt.h varasm.h.
21069         * gimple-match-head.c: Likewise.
21070         * lto-cgraph.c: Likewise.
21071         * lto-section-in.c: Likewise.
21072         * lto-streamer-in.c: Likewise.
21073         * lto-streamer-out.c: Likewise.
21074         * tree-affine.c: Likewise.
21075         * tree-cfg.c: Likewise.
21076         * tree-cfgcleanup.c: Likewise.
21077         * tree-if-conv.c: Likewise.
21078         * tree-into-ssa.c: Likewise.
21079         * tree-ssa-alias.c: Likewise.
21080         * tree-ssa-copyrename.c: Likewise.
21081         * tree-ssa-dse.c: Likewise.
21082         * tree-ssa-forwprop.c: Likewise.
21083         * tree-ssa-live.c: Likewise.
21084         * tree-ssa-math-opts.c: Likewise.
21085         * tree-ssa-pre.c: Likewise.
21086         * tree-ssa-sccvn.c: Likewise.
21087         * tree-tailcall.c: Likewise.
21088         * tree-vect-generic.c: Likewise.
21089         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21090         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21091         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21092         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21093         * varasm.c: Likewise.
21094         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21095         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21096         varasm.h.
21097         * init-regs.c: Likewise.
21098         * ira.c: Likewise.
21099         * omp-low.c: Likewise.
21100         * stack-ptr-mod.c: Likewise.
21101         * tree-ssa-reassoc.c: Likewise.
21102         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21103         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21104         varasm.h.
21105         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21106         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21107         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21108         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21109         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21110         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21111         * tree-ssa-phiopt.c: Likewise.
21112         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21113         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21114         * config/fr30/fr30.c: Likewise.
21115         * config/frv/frv.c: Likewise.
21116         * expr.c: Likewise.
21117         * final.c: Likewise.
21118         * optabs.c: Likewise.
21119         * passes.c: Likewise.
21120         * simplify-rtx.c: Likewise.
21121         * stmt.c: Likewise.
21122         * toplev.c: Likewise.
21123         * var-tracking.c: Likewise.
21124         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21125         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21126         * lower-subreg.c: Likewise.
21127         * postreload-gcse.c: Likewise.
21128         * ree.c: Likewise.
21129         * reginfo.c: Likewise.
21130         * store-motion.c: Likewise.
21131         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21132         fixed-value.h hashtab.h real.h stmt.h varasm.h.
21133         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21134         fixed-value.h hashtab.h statistics.h stmt.h.
21135         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21136         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21137         * except.c: Likewise.
21138         * explow.c: Likewise.
21139         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21140         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21141         varasm.h.
21142         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21143         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21144         * tree-ssa-structalias.c: Likewise.
21145         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21146         fixed-value.h insn-config.h real.h statistics.h.
21147         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21148         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21149         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21150         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21151         * cfgbuild.c: Likewise.
21152         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21153         fixed-value.h real.h rtl.h statistics.h stmt.h.
21154         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21155         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21156         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21157         fixed-value.h real.h statistics.h stmt.h.
21158         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21159         fixed-value.h real.h statistics.h stmt.h varasm.h.
21160         * cprop.c: Likewise.
21161         * modulo-sched.c: Likewise.
21162         * postreload.c: Likewise.
21163         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21164         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21165         statistics.h stmt.h varasm.h.
21166         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21167         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21168         rtl.h statistics.h stmt.h varasm.h.
21169         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21170         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21171         varasm.h.
21172         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21173         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21174         varasm.h.
21175         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21176         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21177         varasm.h.
21178         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21179         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21180         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21181         function.h real.h statistics.h stmt.h varasm.h.
21182         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21183         insn-config.h real.h statistics.h stmt.h.
21184         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21185         statistics.h stmt.h.
21186         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21187         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21188         statistics.h stmt.h varasm.h.
21189         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21190         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21191         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21192         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21193         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21194         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21195         statistics.h stmt.h varasm.h.
21196         * ipa-polymorphic-call.c: Likewise.
21197         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21198         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21199         statistics.h stmt.h.
21200         * config/c6x/c6x.c: Likewise.
21201         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21202         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21203         statistics.h stmt.h varasm.h.
21204         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21205         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21206         stmt.h varasm.h.
21207         * ipa-split.c: Likewise.
21208         * tree-eh.c: Likewise.
21209         * tree-ssa-dce.c: Likewise.
21210         * tree-ssa-loop-niter.c: Likewise.
21211         * tree-vrp.c: Likewise.
21212         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21213         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21214         stmt.h.
21215         * config/nds32/nds32-fp-as-gp.c: Likewise.
21216         * config/nds32/nds32-intrinsic.c: Likewise.
21217         * config/nds32/nds32-isr.c: Likewise.
21218         * config/nds32/nds32-md-auxiliary.c: Likewise.
21219         * config/nds32/nds32-memory-manipulation.c: Likewise.
21220         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21221         * config/nds32/nds32-predicates.c: Likewise.
21222         * config/nds32/nds32.c: Likewise.
21223         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21224         fixed-value.h hashtab.h real.h statistics.h.
21225         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21226         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21227         * config/arm/arm.c: Likewise.
21228         * config/avr/avr.c: Likewise.
21229         * config/bfin/bfin.c: Likewise.
21230         * config/h8300/h8300.c: Likewise.
21231         * config/i386/i386.c: Likewise.
21232         * config/ia64/ia64.c: Likewise.
21233         * config/iq2000/iq2000.c: Likewise.
21234         * config/m32c/m32c.c: Likewise.
21235         * config/m32r/m32r.c: Likewise.
21236         * config/m68k/m68k.c: Likewise.
21237         * config/mcore/mcore.c: Likewise.
21238         * config/mep/mep.c: Likewise.
21239         * config/mips/mips.c: Likewise.
21240         * config/mn10300/mn10300.c: Likewise.
21241         * config/moxie/moxie.c: Likewise.
21242         * config/pa/pa.c: Likewise.
21243         * config/rl78/rl78.c: Likewise.
21244         * config/rx/rx.c: Likewise.
21245         * config/s390/s390.c: Likewise.
21246         * config/sh/sh.c: Likewise.
21247         * config/sparc/sparc.c: Likewise.
21248         * config/spu/spu.c: Likewise.
21249         * config/stormy16/stormy16.c: Likewise.
21250         * config/v850/v850.c: Likewise.
21251         * config/vax/vax.c: Likewise.
21252         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21253         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21254         * config/msp430/msp430.c: Likewise.
21255         * predict.c: Likewise.
21256         * value-prof.c: Likewise.
21257         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21258         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21259         * config/microblaze/microblaze.c: Likewise.
21260         * config/nios2/nios2.c: Likewise.
21261         * config/rs6000/rs6000.c: Likewise.
21262         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21263         insn-config.h real.h rtl.h statistics.h stmt.h.
21264         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21265         insn-config.h real.h statistics.h stmt.h.
21266         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21267         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21268         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21269         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21270         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21271         fixed-value.h real.h statistics.h stmt.h.
21272         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21273         fixed-value.h statistics.h stmt.h.
21274         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21275         stmt.h.
21276
21277 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21278
21279         * gengtype.c (create_user_defined_type): Workaround
21280         -Wmaybe-uninitialized false positives.
21281         * cse.c (fold_rtx): Likewise.
21282         * loop-invariant.c (gain_for_invariant): Likewise.
21283
21284 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21285
21286         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21287         set the memory attributes in all cases but clear MEM_EXPR if need be.
21288
21289 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21290
21291         PR tree-optimization/64434
21292         * cfgexpand.c (reorder_operands): New function.
21293         (expand_gimple_basic_block): Insert call of reorder_operands if
21294         optimized is true.
21295
21296 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21297
21298         * config/mips/micromips.md (*swp): Remove explicit parallel.
21299         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21300         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21301         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21302         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21303         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21304         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21305         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21306         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21307         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21308         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21309         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21310         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21311         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21312         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21313         (mips_wrdsp): Likewise.
21314         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21315         parallel.
21316         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21317         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21318         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21319         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21320         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21321         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21322         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21323         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21324         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21325
21326 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21327
21328         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21329         (mips_print_operand): Support 'y' to print exact log2 in decimal
21330         of a const_int.
21331         * config/mips/mips.h (ISA_HAS_LSA): New define.
21332         (ISA_HAS_DLSA): Likewise.
21333         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21334         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21335
21336 2015-01-15  Martin Liska  <mliska@suse.cz>
21337
21338         PR target/64377
21339         * optc-save-gen.awk: Add support for array types.
21340
21341 2015-01-15  Richard Biener  <rguenther@suse.de>
21342
21343         PR middle-end/64365
21344         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21345         for MEM_REF access functions with the same base can never partially
21346         overlap.
21347
21348 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21349
21350         * common.opt: New option -fstack-protector-explicit.
21351         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21352         (stack_protect_decl_phase): Handle stack_protect attribute for
21353         explicit stack protection requests.
21354         (expand_used_vars): Similarly.
21355         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21356         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21357         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21358
21359 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21360
21361         PR target/53988
21362         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21363         reg-reg copies.
21364         (sh_extending_set_of_reg): New struct.
21365         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21366         sh_remove_reg_dead_or_unused_notes): New Declarations.
21367         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21368         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21369         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21370         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21371         convert to insn_and_split and use new function sh_split_tst_subregs.
21372
21373 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21374
21375         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21376         option.
21377         (Optimization Options): Move -fuse-ld documentation to...
21378         (Link Options): ...here.
21379
21380 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21381
21382         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21383         offsets.
21384         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21385         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21386         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21387         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21388         instead of ZR for the memory operand of LL/SC.
21389         (compare_and_swap_12, sync_add<mode>): Likewise.
21390         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21391         (sync_new_<optab>_12, sync_nand_12): Likewise.
21392         (sync_old_nand_12, sync_new_nand_12): Likewise.
21393         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21394         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21395         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21396         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21397         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21398         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21399         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21400         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21401         * doc/md.texi (ZC): Update description.
21402
21403 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21404
21405         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21406         memory model is CONSUME.
21407         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21408         expand_builtin_atomic_store): Change invalid memory model errors to
21409         warnings.
21410         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21411         and issue warning for CONSUME.
21412
21413 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21414
21415         * lto-cgraph: Update function comments for
21416         lto_symtab_encoder_encode_*.
21417
21418 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21419
21420         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21421
21422 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21423
21424         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21425         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21426         lto_stream_offload_p instead.
21427         * lto-streamer.h (select_what_to_stream): Remove argument.
21428         * passes.c (ipa_write_summaries): Likewise.
21429         * tree-pass.h (ipa_write_summaries): Likewise.
21430
21431 2015-01-14  Richard Biener  <rguenther@suse.de>
21432
21433         PR tree-optimization/59354
21434         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21435         groups larger than the slp group size as having gaps.
21436
21437 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21438
21439         PR middle-end/59448
21440         * builtins.c (get_memmodel): Promote consume to acquire always.
21441
21442 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21443
21444         PR target/64386
21445         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21446         V32HImode.
21447
21448 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21449
21450         PR target/64393
21451         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21452         Enable AVX512BW.
21453         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21454         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21455         AVX512VBMI, as it implies AVX512BW.
21456
21457 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21458
21459         PR target/64387
21460         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21461         (vec_unpacks_hi_v16sf): Ditto.
21462
21463 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21464
21465         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21466         is not available.
21467
21468 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21469
21470         * doc/invoke.texi (mapcs): Mention deprecation.
21471         (mapcs-frame): Likewise.
21472
21473 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21474
21475         PR target/64453
21476         * config/arm/arm.c (callee_saved_reg_p): Define.
21477         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21478         register is callee saved instead of !call_used_regs[reg].
21479         (thumb1_compute_save_reg_mask): Likewise.
21480
21481 2015-01-14  Hale Wang  <hale.wang@arm.com>
21482
21483         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21484         Cortex-M7.
21485
21486 2015-01-14  Richard Biener  <rguenther@suse.de>
21487
21488         PR lto/64415
21489         * tree-inline.c (insert_debug_decl_map): Check destination
21490         function MAY_HAVE_DEBUG_STMTS.
21491         (insert_init_debug_bind): Likewise.
21492         (insert_init_stmt): Remove redundant check.
21493         (remap_gimple_stmt): Drop debug stmts if the destination
21494         function has var-tracking assignments disabled.
21495
21496 2015-01-14  Martin Liska  <mliska@suse.cz>
21497
21498         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21499         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21500
21501 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21502
21503         PR target/64460
21504         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21505         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21506
21507 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21508
21509         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21510         level from an ARCH; do not inject the default.
21511         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21512         MIPS_ISA_LEVEL_SPEC.
21513         (MIPS_ISA_NAN2008_SPEC): Update comment.
21514         (BASE_DRIVER_SELF_SPECS): Likewise.
21515         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21516         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21517         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21518         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21519         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21520
21521 2015-01-14  Richard Biener  <rguenther@suse.de>
21522
21523         PR tree-optimization/64493
21524         PR tree-optimization/64495
21525         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21526         assign the proper vectorized PHI to the inner loop exit PHIs.
21527
21528 2015-01-14  Joey Ye  <joey.ye@arm.com>
21529
21530         * config/arm/arm.c (arm_compute_save_reg_mask):
21531         Do not save lr in case of tail call.
21532         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21533
21534 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21535
21536         * tree-vrp.c (check_array_ref): Emit more warnings
21537         for warn_array_bounds >= 2.
21538         * common.opt: New option -Warray-bounds=.
21539         * doc/invoke.texi: Document -Warray-bounds=.
21540
21541 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21542
21543         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21544         (mforbid-fp-as-gp): Remove.
21545         (mex9): Remove.
21546         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21547         (nds32_symbol_load_store_p): Remove.
21548         (nds32_fp_as_gp_check_available): Clean up implementation.
21549         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21550         cases.
21551         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21552         fp-as-gp and ex9 cases.
21553
21554 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21555
21556         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21557         for bintuils bug 14342.
21558         (init_ic_make_global_vars): Likewise.
21559         (gimple_init_edge_profiler): Likewise.
21560         (gimple_gen_ic_func_profiler): Likewise.
21561
21562 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21563
21564         * ipa-inline.c (inline_small_functions): Swap the operands in
21565         enum.
21566
21567 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21568
21569         PR ipa/64481
21570         * ipa-inline-analysis.c (node_growth_cache): Remove.
21571         (initialize_growth_caches): Do not initialize it.
21572         (free_growth_caches): Do not free it.
21573         (do_estimate_growth): Rename to ...
21574         (estimate_growth): ... this one; drop growth cache code.
21575         (growth_likely_positive): Always go the heuristics way.
21576         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21577         (reset_edge_caches): Do not reset node growth.
21578         (heap_edge_removal_hook): Do not maintain cache.
21579         (inline_small_functions): Likewise; strenghten sanity check.
21580         (ipa_inline): Do not maintain caches.
21581         * ipa-inline.h (node_growth_cache): Remove.
21582         (do_estimate_growth): Remove to ...
21583         (estimate_growth): this one; remove inline version.
21584         (reset_node_growth_cache): Remove.
21585
21586 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21587
21588         PR ipa/64565
21589         * ipa-inline.c (inline_small_functions): Update callee keys after
21590         resolving speculation
21591         (inline_small_functions): Always check monotonicity of the queue.
21592
21593 2015-01-13  Marek Polacek  <polacek@redhat.com>
21594
21595         PR middle-end/64391
21596         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21597
21598 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21599
21600         PR rtl-optimization/64286
21601         * ree.c (combine_reaching_defs): Move part of comment earlier,
21602         remove !SCALAR_INT_MODE_P check.
21603         (add_removable_extension): Don't add vector mode
21604         extensions if all uses of the source register aren't the same
21605         vector extensions.
21606
21607 2015-01-13  Renlin Li  <renlin.li@arm.com>
21608
21609         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21610         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21611
21612 2015-01-13  Martin Liska  <mliska@suse.cz>
21613
21614         * ipa-icf.c (sem_function::equals_private): Call new functions
21615         cl_target_option_print_diff and cl_optimization_print_diff.
21616         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21617         (cl_optimization_print_diff): Likewise.
21618         * opth-gen.awk: Likewise.
21619
21620 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21621
21622         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21623         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21624         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21625         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21626         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21627         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21628
21629 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21630
21631         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21632         instead of src mode.
21633
21634 2015-01-13  Richard Biener  <rguenther@suse.de>
21635
21636         PR lto/64373
21637         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21638         DECL_CONTEXT.
21639
21640 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21641
21642         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21643         volatile mems.
21644         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21645
21646 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21647
21648         PR middle-end/63974
21649         * cfgexpand.c (expand_computed_goto): Don't call
21650         convert_memory_address here.
21651
21652 2015-01-13  Richard Biener  <rguenther@suse.de>
21653
21654         PR tree-optimization/64406
21655         * tree-loop-distibution.c (pass_loop_distribution::execute):
21656         Reset the SCEV hashtable if we distributed anything.
21657
21658 2015-01-13  Richard Biener  <rguenther@suse.de>
21659
21660         PR tree-optimization/64404
21661         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21662         SLP types for CSEd loads.
21663
21664 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21665
21666         PR tree-optimization/64436
21667         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21668         merge of two symbolic numbers for a bitwise OR to ...
21669         (perform_symbolic_merge): This. Also fix computation of the range and
21670         end of the symbolic number corresponding to the result of a bitwise OR.
21671
21672 2015-01-13  Richard Biener  <rguenther@suse.de>
21673
21674         PR tree-optimization/64568
21675         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21676         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21677
21678 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21679
21680         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21681         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21682
21683 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21684
21685         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21686         target-specific symbol_ref flag.
21687         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21688         resides in rodata section.
21689         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21690         (nds32_encode_section_info): New function.
21691
21692 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21693
21694         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21695         clobbers TA_REGNUM if large code model is specified.
21696         (call_register): Likewise.
21697         (call_immediate): Likewise.
21698         (call_value): Likewise.
21699         (call_value_register): Likewise.
21700         (call_value_immediate): Likewise.
21701
21702 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21703
21704         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21705         (TARGET_CMODEL_MEDIUM): New macro.
21706         (TARGET_CMODEL_LARGE): New macro.
21707         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21708         code model setting in assembly code.
21709
21710 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21711
21712         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21713         Remove MASK_GP_DIRECT flag.
21714         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21715         one of the multilib default options.
21716         * config/nds32/nds32.opt (mgp-direct): Remove.
21717         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21718         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21719
21720 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21721
21722         * config/nds32/nds32.opt (mcmodel): Add new option.
21723         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21724         to describe code model.
21725
21726 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
21727
21728         PR target/64479
21729         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
21730
21731 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
21732
21733         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
21734         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
21735         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
21736         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
21737         __builtin_sh_set_fpscr.
21738
21739 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21740
21741         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
21742         after a funtion name just to indicate it is a function.
21743         ([-fsanitize-undefined-trap-on-error]): Likewise.
21744         ([-fdbg-cnt=]): Likewise.
21745         ([-mmemcpy]): Likewise.
21746         ([-mflush-func]): Likewise.
21747         ([-msynci]): Likewise.
21748
21749 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21750
21751         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
21752         example.
21753
21754 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
21755
21756         PR tree-optimization/64563
21757         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
21758         instead of != VR_VARYING.
21759
21760         PR target/64513
21761         * config/i386/i386.c (ix86_expand_prologue): Add
21762         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
21763
21764         PR tree-optimization/64454
21765         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
21766         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
21767         for signed or [0, op1 - 1] for unsigned modulo.
21768         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
21769         even if op1 does not satisfy integer_pow2p.
21770
21771         PR other/64370
21772         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
21773
21774 2015-01-12  Jeff Law  <law@redhat.com>
21775
21776         PR target/64461
21777         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
21778         (trunchiqi2, truncsihi2): Similarly.
21779
21780         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
21781         rather than calling F.
21782
21783 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21784
21785         * tsan.c (instrument_expr): Use force_gimple_operand.
21786         Use may_be_nonaddressable_p instead of is_gimple_addressable.
21787
21788 2015-01-12  Richard Biener  <rguenther@suse.de>
21789
21790         PR tree-optimization/64530
21791         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
21792         back dr1.
21793
21794 2015-01-12  Richard Biener  <rguenther@suse.de>
21795
21796         PR middle-end/64357
21797         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
21798         latches properly.
21799
21800 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21801
21802         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
21803         Cortex-A17 tuning parameters.
21804         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
21805
21806 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21807
21808         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
21809         * config/arm/arm.c (arm_macro_fusion_p): New function.
21810         (arm_macro_fusion_pair_p): Likewise.
21811         (TARGET_SCHED_MACRO_FUSION_P): Define.
21812         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
21813         (ARM_FUSE_NOTHING): Likewise.
21814         (ARM_FUSE_MOVW_MOVT): Likewise.
21815         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
21816         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
21817         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
21818         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
21819         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
21820         arm_cortex_a5_tune): Specify fuseable_ops value.
21821
21822 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
21823
21824         PR bootstrap/64561
21825         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
21826         test for PIE with copy reloc.
21827         * configure: Regenerated.
21828
21829 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21830
21831         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
21832         in gen_rtx_REG.
21833         (arm_tls_descseq_addr): Likewise.
21834         (arm_gen_movmemqi): Likewise.
21835         (arm_expand_epilogue_apcs_frame): Likewise.
21836         (arm_expand_epilogue): Likewise.
21837         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
21838         in gen_rtx_REG.
21839
21840 2015-01-12  Martin Liska  <mliska@suse.cz>
21841
21842         PR ipa/64550
21843         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
21844         volatility for correct operands.
21845
21846 2015-01-12  Martin Liska  <mliska@suse.cz>
21847
21848         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
21849         indication that a function is not leaf.
21850         (sem_function::compare_polymorphic_p): Likewise.
21851
21852 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21853
21854         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
21855         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
21856         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
21857         fold-const.h, tree-check.h.
21858
21859 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21860
21861         PR ipa/63967
21862         PR ipa/64425
21863         * ipa-inline.c (compute_uninlined_call_time,
21864         compute_inlined_call_time): Use counts for extra precision when
21865         needed possible.
21866         (big_speedup_p): Fix formating.
21867         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
21868         (relative_time_benefit): Remove.
21869         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
21870         merge guessed and read profile paths.
21871         (inline_small_functions): Count only !optimize_size functions into
21872         initial size; be more lax about sanity check when profile is used;
21873         be sure to update inlined function profile when profile is read.
21874
21875 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21876
21877         PR ipa/63470
21878         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
21879         cost when edge becomes direct.
21880         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
21881         is resolved or when introducing new speculation.
21882
21883 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
21884
21885         PR ipa/64551
21886         PR ipa/64552
21887         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
21888         '||' to fix typo issue.
21889
21890         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
21891         accept and return NULL.
21892
21893 2015-01-12  Martin Liska  <mliska@suse.cz>
21894
21895         * cgraph.c (cgraph_edge::remove_callee): Move function to header
21896         file for being inlined.
21897         (cgraph_set_edge_callee): Delete.
21898         (cgraph_edge::redirect_callee): Move function to header file
21899         for being inlined.
21900         (cgraph_edge::make_direct): Use new function.
21901         (cgraph_edge::dump_edge_flags): New function created from
21902         static dump_edge_flags function.
21903         (cgraph_node::dump): Use new function.
21904         (cgraph_edge::verify_count_and_frequency): New function created
21905         from verify_edge_count_and_frequency.
21906         (cgraph_edge::verify_corresponds_to_fndecl): New function created
21907         from verify_edge_corresponds_to_fndecl.
21908         (verify_edge_corresponds_to_fndecl): Delete.
21909         (cgraph_node::verify_node): Use new function.
21910         * cgraph.h (cgraph_edge::set_callee): New function.
21911         (cgraph_edge::dump_edge_flags): Likewise.
21912         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
21913
21914 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
21915
21916         * ipa-utils.c (estimate_function_body_sizes): Do not
21917         free node params when called late with early=true.
21918
21919 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
21920
21921         * doc/md.texi (Instruction Patterns): Rewrite text for
21922         clarity.
21923         (Example): Likewise.
21924
21925 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
21926
21927         * doc/invoke.texi (Option Summary): Break long lines.
21928         [(-fdiagnostics-color)]: Put long literal in @smallexample
21929         instead of inline.
21930         [(-fsanitize-recover)]: Likewise.
21931         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
21932         [(-ffast-math)]: Likewise.
21933         [(--param max-inline-insns-recursive)]: Likewise.
21934         [(--param max-inline-recursive-depth)]: Likewise.
21935         [(-mno-text-section-literals)]: Likewise.
21936
21937 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
21938
21939         * doc/install.texi: Update for libgomp being renamed from "GNU
21940         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
21941         Runtime Library".
21942         * doc/sourcebuild.texi: Likewise.
21943
21944 2015-01-10  Anthony Green  <green@moxielogic.com>
21945
21946         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
21947         mul.x availability for moxiebox configuration.
21948
21949 2015-01-09  Anthony Green  <green@moxielogic.com>
21950
21951         * config/moxie/moxie.md: Tabify assembly output.
21952
21953 2015-01-09  Anthony Green  <green@moxielogic.com>
21954
21955         * config/moxie/moxie.md (CC_REG): Correct register definition.
21956
21957 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
21958
21959         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
21960         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
21961         of log files.
21962
21963 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21964
21965         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
21966
21967 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
21968             Jakub Jelinek  <jakub@redhat.com>
21969
21970         PR middle-end/64412
21971         * lto-streamer.h (lto_stream_offload_p): New declaration.
21972         * lto-streamer.c (lto_stream_offload_p): New variable.
21973         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
21974         at the same time as section_name_prefix.
21975         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
21976         if lto_stream_offload_p.
21977         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
21978         stream TREE_TARGET_OPTION if lto_stream_offload_p.
21979         (write_ts_function_decl_tree_pointers): Don't
21980         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
21981         * tree-streamer-in.c (unpack_value_fields): Don't stream
21982         TREE_TARGET_OPTION in if ACCEL_COMPILER.
21983         (lto_input_ts_function_decl_tree_pointers): Don't stream
21984         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
21985         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
21986         instead of section_name_prefix string comparisons.
21987
21988 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
21989
21990         PR rtl-optimization/64536
21991         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
21992         tablejumps.
21993
21994 2015-01-09  Michael Collison  <michael.collison@linaro.org>
21995
21996         PR tree-optimization/64322
21997         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
21998         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
21999
22000 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22001
22002         PR rtl-optimization/64539
22003         * regcprop.c (kill_clobbered_values): Factor out of ...
22004         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
22005         instead of note_stores with kill_clobbered_value.
22006
22007 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22008
22009          * ginclude/unwind-arm-common.h: Revert previous commit.
22010
22011 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22012
22013         * config.gcc (arm*-*-freebsd*): New configuration.
22014         * config/arm/freebsd.h: New file.
22015         * config.host: Add extra components for arm*-*-freebsd*.
22016         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
22017         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
22018
22019 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22020
22021         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
22022         for -mcpu=e6500.
22023         * config/rs6000/t-rtems: Add e6500 multilibs.
22024
22025 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22026
22027         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
22028         MPC8540.
22029
22030 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22031
22032         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
22033         MULTILIB_EXCEPTIONS.
22034
22035 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22036
22037         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
22038         MULTILIB_EXCEPTIONS.
22039
22040 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22041
22042         * config/arm/t-rtems-eabi: Rename to...
22043         * config/arm/t-rtems: ...this.
22044         * config/arm/rtems-eabi.h: Rename to...
22045         * config/arm/rtems.h: ...this.
22046         * config.gcc (arm*-*-rtems*): Reflect changes above.
22047
22048 2015-01-09  Richard Biener  <rguenther@suse.de>
22049
22050         PR tree-optimization/64410
22051         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
22052         on the LHS.
22053         (execute_update_addresses_taken): Deal with that.
22054         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
22055         loads/stores for complex variables.
22056
22057 2015-01-09  Martin Liska  <mliska@suse.cz>
22058
22059         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
22060         name comparison.
22061         (func_checker::compare_memory_operand): New function.
22062         (func_checker::compare_operand): Split case to newly
22063         added functions.
22064         (func_checker::compare_cst_or_decl): New function.
22065         (func_checker::compare_gimple_call): Identify
22066         memory operands.
22067         (func_checker::compare_gimple_assign): Likewise.
22068         * ipa-icf-gimple.h: New function.
22069
22070 2015-01-09  Martin Liska  <mliska@suse.cz>
22071
22072         PR ipa/64503
22073         * sreal.c (sreal::dump): Change unsigned format to signed for
22074         m_exp value.
22075         (sreal::to_double): Replace exp2 with scalbln.
22076
22077 2015-01-09  Martin Liska  <mliska@suse.cz>
22078
22079         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22080         * ipa-icf.c (sem_function::equals_private): Add support for target and
22081         (sem_item_optimizer::merge_classes): Remove redundant function
22082         optimization flags comparison.
22083         * tree.h (target_opts_for_fn): New function.
22084
22085 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22086
22087         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22088
22089 2015-01-09  Kito Cheng  <kito@0xlab.org>
22090
22091         PR rtl-optimization/64348
22092         * lra-constraints.c (split_reg): Fix caller-save store/restore
22093         instruction generation.
22094
22095 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
22096
22097         PR gcov-profile/61790
22098         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22099         long long.  Fallback to int64_t if host doesn't have long long and
22100         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
22101
22102 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22103
22104         PR tree-optimization/63989
22105         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22106         from 1000 to 10000.
22107         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22108         (get_stridx): If we don't have a record for certain SSA_NAME,
22109         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22110         constant offset, call get_stridx_plus_constant.
22111         (get_stridx_plus_constant): New function.
22112         (zero_length_string): Don't use get_stridx here.
22113
22114         PR target/55023
22115         PR middle-end/64388
22116         * dse.c (struct insn_info): Mention frame_read set also
22117         before reload for tail calls on some targets.
22118         (scan_insn): Revert 2014-12-22 change.  Set frame_read
22119         also before reload for tail calls if
22120         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
22121         instead of add_non_frame_wild_read for non-const/memset
22122         tail calls after reload.
22123
22124 2015-01-08  Jason Merrill  <jason@redhat.com>
22125
22126         * ubsan.c (do_ubsan_in_current_function): New.
22127         (pass_ubsan::gate): Use it.
22128         * ubsan.h: Declare it.
22129         * convert.c (convert_to_integer): Use it.
22130
22131 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22132
22133         PR target/64338
22134         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22135         compare_code when it is unconditionally overwritten afterwards.
22136         Use ix86_reverse_condition instead of reverse_condition.  Don't
22137         change code if *reverse_condition* returned UNKNOWN and don't
22138         swap ct/cf and negate diff in that case.
22139
22140 2015-01-08  Mike Stump  <mikestump@comcast.net>
22141
22142         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22143         (pass_tsan_O0::gate): Likewise.
22144         * extend.texi (Function Attributes): Add no_sanitize_thread
22145         documentation.
22146
22147 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22148
22149         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22150         for registering builtins.
22151         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22152         add -fopenmp to the argv_obstack used when invoking
22153         compile_for_target.
22154
22155         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22156         add "-m32" or "-m64" to argv_obstack.
22157         (generate_host_descr_file): Likewise, when invoking host_compiler.
22158         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22159         ld.
22160
22161 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22162
22163         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22164         tstsi_t insns.
22165
22166 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22167
22168         PR target/55212
22169         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22170         constant load if constant operand fits into I08.
22171
22172 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22173
22174         PR sanitizer/64336
22175         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22176         and TREE_THIS_VOLATILE for MEM_REFs.
22177         (build5_stat): Fix up initialization of TREE_READONLY and
22178         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22179
22180 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22181
22182         PR target/64533
22183         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22184         of r for the second alternative of the destination operand.
22185
22186 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22187
22188         PR target/36557
22189         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22190
22191 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22192
22193         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22194         keywords.
22195         ([-fivar-visibility], [-fvisibility]): Likewise.
22196
22197 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22198
22199         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22200         the file where @code, @command, etc is more appropriate.
22201
22202 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22203
22204         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22205         of -mrecip= documentation.
22206
22207 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22208
22209         PR target/64505
22210         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22211         correct reload handler if -m32 -mpowerpc64 is used.
22212
22213 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22214
22215         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22216
22217 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22218
22219         PR target/64507
22220         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22221
22222 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22223
22224         PR tree-optimization/63259
22225         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22226         if optab exists for 16bit byteswap.
22227
22228 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22229
22230         * opts.c (common_handle_option): Add support for
22231         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22232         * doc/invoke.texi: Document -fno-sanitize=all,
22233         -f{,no-}sanitize-recover=all.  Document that
22234         -fsanitize=float-cast-overflow is not enabled
22235         by -fsanitize=undefined.  Fix up documentation
22236         of -f{,no-}sanitize-recover.
22237
22238 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22239
22240         * config.gcc: Add Visium support.
22241         * configure.ac: Likewise.
22242         * configure: Regenerate.
22243         * doc/extend.texi (interrupt attribute): Add Visium.
22244         * doc/invoke.texi: Document Visium options.
22245         * doc/install.texi: Document Visium target.
22246         * doc/md.texi: Document Visium constraints.
22247         * common/config/visium: New directory.
22248         * config/visium: Likewise.
22249
22250 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22251
22252         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22253         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22254
22255 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22256
22257         * combine.c (combine_validate_cost): Do not count the cost of a
22258         split I2 twice.  Do not display it twice in the dump, either.
22259
22260 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22261
22262         Revert parts of r219199.
22263         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22264         <inttypes.h>.
22265         ([-Wtraditional]): Restore markup on <limits.h>.
22266
22267 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22268
22269         PR c++/31397
22270         * doc/invoke.texi: Document -Wsuggest-override.
22271
22272 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22273
22274         PR rtl-optimization/64287
22275         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22276         (process_options): Disable flag_ipa_ra if profiling.
22277
22278 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22279
22280         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22281
22282 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22283
22284         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22285         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22286         put under #if TARGET_LOOPS guard.
22287
22288 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22289
22290         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22291
22292 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22293
22294         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22295         * rtl.h (refers_to_regno_p): Add overload.
22296         * cse.c: Use it.
22297         * bt-load.c: Likewise.
22298         * combine.c: Likewise.
22299         * df-scan.c: Likewise.
22300         * sched-deps.c: Likewise.
22301         * config/s390/s390.c: Likewise.
22302         * config/m32r/m32r.c: Likewise.
22303         * config/rs6000/spe.md: Likewise.
22304         * config/rs6000/rs6000.c: Likewise.
22305         * config/pa/pa.c: Likewise.
22306         * config/stormy16/stormy16.c: Likewise.
22307         * config/cris/cris.c: Likewise.
22308         * config/arc/arc.md: Likewise.
22309         * config/arc/arc.c: Likewise.
22310         * config/sh/sh.md: Likewise.
22311         * config/sh/sh.c: Likewise.
22312         * config/frv/frv.c: Likewise.
22313
22314 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22315
22316         PR sanitizer/64265
22317         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22318         call as cleanup of the whole body.
22319         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22320         * tsan.c (replace_func_exit): New function.
22321         (instrument_func_exit): Moved earlier.
22322         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22323         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22324         been found.
22325         (tsan_pass): Don't call instrument_func_exit.
22326         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22327         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22328         inlining.
22329
22330         PR sanitizer/64344
22331         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22332         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22333         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22334         if the result is integer_zerop, return NULL_TREE.
22335         * convert.c (convert_to_integer): Pass expr as ARG.
22336
22337         PR tree-optimization/64465
22338         * tree-inline.c (redirect_all_calls): During inlining
22339         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22340         changed the stmt to a non-throwing call.
22341
22342 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22343
22344         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22345         etc markup throughout the file.
22346
22347 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22348
22349         Enable experimental TSAN support for Ada.
22350         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22351
22352 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22353
22354         PR tree-optimization/64494
22355         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22356         clear SSA_NAME_ANTI_RANGE_P flag.
22357
22358 2015-01-05  Marek Polacek  <polacek@redhat.com>
22359
22360         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22361
22362 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22363
22364         Update copyright years.
22365
22366         * gcc.c (process_command): Update copyright notice dates.
22367         * gcov-dump.c: Ditto.
22368         * gcov.c: Ditto.
22369         * doc/cpp.texi: Bump @copying's copyright year.
22370         * doc/cppinternals.texi: Ditto.
22371         * doc/gcc.texi: Ditto.
22372         * doc/gccint.texi: Ditto.
22373         * doc/gcov.texi: Ditto.
22374         * doc/install.texi: Ditto.
22375         * doc/invoke.texi: Ditto.
22376
22377         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22378
22379 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22380
22381         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22382         verb tense, etc.
22383         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22384         ([-Wabi]): Likewise.
22385         ([-fmessage-length]): Likewise.
22386         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22387         ([-Wno-discarded-qualifiers]): Likewise.
22388         ([-Wnodiscarded-array-qualifiers]): Likewise.
22389         ([-Wno-virtual-move-assign]): Likewise.
22390         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22391         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22392         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22393         ([-fsanitize-undefined-trap-on-error]): Likewise.
22394         ([-floop-interchange]): Likewise.
22395         ([-ftree-coalesce-inlined-vars]): Likewise.
22396         ([-fvect-cost-model]): Likewise.
22397         ([-flto]): Likewise.
22398         ([--param]): Likewise.
22399         (Spec Files): Likewise.
22400         ([-mstrict-align]): Likewise.
22401         ([-mfix-cortex-a53-835769]): Likewise.
22402         ([-march], [-mtune]): Likewise.
22403         ([-mpic-register]): Likewise.
22404         ([-munaligned-access]): Likewise.
22405         ([-msp8]): Likewise.
22406         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22407         (AVR Built-in Macros): Likewise.
22408         ([-mpreferred-stack-boundary]): Likewise.
22409         ([-mtune-crtl]): Likewise.
22410         ([-mashf]): Likewise.
22411         ([-mmcu=]): Likewise.
22412         ([-minrt]): Likewise.
22413         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22414         ([-mupper-regs]): Likewise.
22415         ([-matomic-model]): Likewise.
22416         ([-mdiv]): Likewise.
22417         ([-mzdcbranch]): Likewise.
22418         ([-mdisable-callt]): Likewise.
22419         ([-msoft-float]): Likewise.
22420         ([-m8byte-align]): Likewise.
22421         ([-fstack-reuse]): Likewise.
22422
22423 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22424
22425         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22426         Fix markup, light copy-editing.
22427         ([-fauto-profile]): Rewrite to fix formatting and content
22428         problems.
22429
22430 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22431
22432         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22433         Copy-edit description.
22434         ([-fisolate-erroneous-paths-attribute]): Likewise.
22435         * common.opt (fisolate-erroneous-paths-dereference):
22436         Copy-edit description.
22437         (fisolate-erroneous-paths-attribute): Likewise.
22438
22439 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22440
22441         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22442         tidy grammar.
22443
22444 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22445
22446         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22447         ([-fvtv-debug]): Likewise.
22448         ([-Wc++-compat]): Likewise.
22449         ([-Wc++11-compat]): Likewise.
22450         ([-Wc++14-compat]): Likewise.
22451         ([-Wno-sized-deallocation]): Likewise.
22452         ([-femit-class-debug-always]): Likewise.
22453         ([-femit-struct-debug-detailed]): Likewise.
22454         ([-fno-keep-inline-dllexport]): Likewise.
22455         ([-fira-algorithm]): Likewise.
22456         ([-fira-region]): Likewise.
22457         ([-flra-remat]): Likewise.
22458         ([-fipa-ra]): Likewise.
22459         ([-fhoist-adjacent-loads]): Likewise.
22460         ([-fisolate-erroneous-paths-dereference]): Likewise.
22461         ([-fisolate-erroneous-paths-attribute]): Likewise.
22462         ([-ftree-switch-conversion]): Likewise.
22463         ([-ftree-tail-merge]): Likewise.
22464         ([-ftree-loop-if-convert]): Likewise.
22465         ([-ftree-loop-if-convert-stores]): Likewise.
22466         ([-ftree-loop-distribution]): Likewise.
22467         ([-ftree-loop-distribute-patterns]): Likewise.
22468         ([-flto-compression-level]): Likewise.
22469         ([-flto-report]): Likewise.
22470         ([-flto-report-wpa]): Likewise.
22471         ([-fuse-linker-plugin]): Likewise.
22472         ([-mfix-cortex-a53-835769]): Likewise.
22473         ([-mno-fix-cortex-a53-835769]): Likewise.
22474         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22475         explicit listing; add a note to the discussion indicating they
22476         exist.  Reorder table to group similar options.  Add missing
22477         @opindex entries.  Add @need commands throughout the table to
22478         allow it to be split across multiple pages.
22479         ([-m8bit-idiv]): Fix @opindex.
22480         ([-mavx256-split-unaligned-load]): Likewise.
22481         ([-mavx256-split-unaligned-store]): Likewise.
22482         ([-mstack-protector-guard]): Likewise.
22483         ([-mcpu=]): Likewise.
22484         ([-mcpu]): Likewise.
22485         ([-mpointer-size=]): Likewise.
22486
22487 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22488
22489         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22490         instead of `m' constraint.  Likewise for unnamed movb comparison
22491         patterns using reg_before_reload_operand predicate.
22492         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22493         predicate to reject register index and LO_SUM DLT memory forms
22494         after reload.
22495
22496 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22497
22498         * doc/invoke.texi (Option Summary): Fix spelling of
22499         -fdevirtualize-at-ltrans.
22500         ([-fdevirtualize]): Fix markup.
22501         ([-fdevirtualize-speculatively]): Fix typo.
22502         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22503         implementor-speaky.
22504         * common.opt (fdevirtualize-at-ltrans): Likewise.
22505         * ipa-devirt.c: Fix typos in comments throughout the file.
22506         (ipa_devirt): Fix typos in format strings for dump output.
22507
22508 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22509
22510         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22511         discussion of defaults, light copy-editing.
22512
22513 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22514
22515         * tsan.c (instrument_expr): corrected previous checkin.
22516
22517 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22518
22519         Instrument bit field and unaligned accesses for TSAN.
22520         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22521         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22522         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22523         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22524         unaligned memory regions.
22525
22526 2015-01-01  Anthony Green  <green@moxielogic.com>
22527
22528         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22529         Restrict move source register offsets to 16 bits.
22530 \f
22531 Copyright (C) 2015 Free Software Foundation, Inc.
22532
22533 Copying and distribution of this file, with or without modification,
22534 are permitted in any medium without royalty provided the copyright
22535 notice and this notice are preserved.