93139cb40c256a0362bbcff52e1b32429268c56a
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-22  Richard Biener  <rguenther@suse.de>
2
3         * genmatch.c (expr::gen_transform): Clarify error message
4         and display location.
5
6 2015-07-22  Richard Biener  <rguenther@suse.de>
7
8         * genmatch.c (struct operand): Add location member.
9         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
10         constructors.
11         (struct simplify): Remove match_location and result_location
12         members.
13         (elsehwere): Adjust.
14
15 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
16
17         * config/mips/m5100.md: New file.
18         * config/mips/mips-cpus.def (m5100, m5101): Define.
19         * config/mips/mips-tables.opt: Regenerate.
20         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
21         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
22         -march=m5101 to -mips32r5.
23         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
24         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
25         !-msoft-float.
26         * config/mips/mips.md: Include m5100.md.
27         (processor): Add m5100.
28         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
29
30 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
31
32         * config/mips/mips-cpus.def (interaptiv): Define.
33         * config/mips/mips-tables.opt: Regenerate.
34         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
35         -mips32r2.
36         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
37         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
38
39 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
40
41         PR target/63521
42         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
43         (HONOR_REG_ALLOC_ORDER): Define.
44
45 2015-07-22  Richard Biener  <rguenther@suse.de>
46
47         PR tree-optimization/66952
48         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
49         blocks we end up executing unconditionally reset all SSA
50         info such as range and alignment.
51         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
52         * tree-ssanames.c (reset_flow_sensitive_info): New function.
53
54 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
55
56         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
57         typo in attribute.
58
59 2015-07-22  Richard Biener  <rguenther@suse.de>
60
61         * genmatch.c (parser::parse_result): Properly handle
62         match with result operands and conditions.
63
64 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
65
66         PR target/63870
67         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
68         Add qualifier_struct_load_store_lane_index.
69         (aarch64_types_loadstruct_lane_qualifiers): Use
70         qualifier_struct_load_store_lane_index for lane index argument for
71         last argument.
72         (aarch64_types_storestruct_lane_qualifiers): Ditto.
73         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
74         (aarch64_simd_expand_args): Add new argument describing mode of
75         builtin. Check lane bounds for arguments with
76         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
77         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
78         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
79         (aarch64_simd_expand_builtin): Handle arguments with
80         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
81         aarch64_simd_expand_args.
82         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
83         vst[234]_lane with BUILTIN_VALLDIF.
84         * config/aarch64/aarch64-simd.md:
85         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
86         endianness reversal on lane index.
87         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
88         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
89         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
90         (vec_store_lanesci_lane<mode>): Ditto.
91         (vec_store_lanesxi_lane<mode>): Ditto.
92         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
93         reversal of lane index.
94         (aarch64_ld3_lane<mode>): Ditto.
95         (aarch64_ld4_lane<mode>): Ditto.
96         (aarch64_st2_lane<mode>): Ditto.
97         (aarch64_st3_lane<mode>): Ditto.
98         (aarch64_st4_lane<mode>): Ditto.
99         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
100         to qmode. Add new mode parameter. Update uses.
101         (__LD3_LANE_FUNC): Ditto.
102         (__LD4_LANE_FUNC): Ditto.
103         (__ST2_LANE_FUNC): Ditto.
104         (__ST3_LANE_FUNC): Ditto.
105         (__ST4_LANE_FUNC): Ditto.
106
107 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
108
109         * doc/invoke.texi (Language Independent Options): Rename node to
110         Diagnostic Message Formatting Options.
111
112 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
113
114         PR ipa/66424.
115         * lra-remat.c (operand_to_remat): Prevent using insns with input
116         subregs processed separately by IRA.
117
118 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
119
120         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
121         straight loops.
122         (single_imm_use): Check for iterator node.
123         (num_imm_uses): Likewise.
124         * tree-ssa-operands.c (has_zero_uses_1): Delete.
125         (single_imm_use_1): Check for iterator node.
126
127 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
128             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
129
130         * configure.ac: Add check for new options in isl-0.15.
131         * config.in, configure: Rebuilt.
132         * graphite-blocking.c: Include <isl/constraint.h>
133         * graphite-interchange.c,  graphite-poly.c: Likewise.
134         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
135         * graphite.c: Likewise.
136         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
137         <isl/union_set.h>.
138         * graphite-dependences.c: Include <isl/constraint.h>.
139         (max_number_of_out_dimensions): Returns isl_stat.
140         (extend_schedule_1): Likewise
141         (extend_schedule): Corresponding changes.
142         * graphite-optimize-isl.c: Include <isl/constraint.h> and
143         <isl/union_set.h>.
144         (getSingleMap): Change return type of isl_stat.
145         (optimize_isl): Conditionally use
146         isl_options_set_schedule_serialize_sccs.
147         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
148         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
149
150 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
151
152         PR target/66956
153         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
154         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
155
156 2015-07-21  Richard Biener  <rguenther@suse.de>
157
158         PR tree-optimization/66948
159         * genmatch.c (capture_info::walk_match): Also recurse to
160         captures.  Properly compute expr state from captures of
161         captures.
162         * match.pd: Add single-use guards to
163         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
164
165 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
166
167         * config/nvptx/mkoffload.c (process): Add static destructor call.
168
169 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
170
171         PR middle-end/66915
172         * match.pd (A - B -> A + (-B)): Don't allow folding
173         when type if a fixed-point type.
174
175 2015-07-20  DJ Delorie  <dj@redhat.com>
176
177         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
178         (iorqi3_real): Likewise for set1.
179
180 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
181
182         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
183         for !TARGET_64BIT.
184
185 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
186
187         * graphite-isl-ast-to-gimple.c:
188         Refactor so that each function can access 'region'. This will help
189         maintain a parameter rename_map within a region.
190
191 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
192
193         * config/rs6000/rs6000.md (*lt0_disi): New.
194
195 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
196
197         PR target/66217
198         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
199         "available letters" comment.
200         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
201         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
202         and_2rld_operand):  Delete.
203         (and_operand): Adjust.
204         (rotate_mask_operator): New.
205         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
206         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
207         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
208         extract_ME): Delete.
209         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
210         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
211         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
212         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
213         rs6000_emit_2insn_and): New.
214         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
215         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
216         includes_rldic_lshift_p, includes_rldicr_lshift_p,
217         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
218         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
219         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
220         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
221         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
222         rs6000_emit_2insn_and): New.
223         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
224         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
225         handling.
226         <NOT>: Don't fall through to next case.
227         <AND>: Handle the various rotate-and-mask cases directly.
228         <IOR>: Always cost as one insn.
229         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
230         (and<mode>3): Adjust expander for the new patterns.
231         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
232         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
233         (*and<mode>3_imm_dot_shifted): New.
234         (*and<mode>3_mask): Delete, rewrite as ...
235         (and<mode>3_mask): ... New.
236         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
237         (andsi3_internal0_nomc): Delete.
238         (*andsi3_internal6): Delete.
239         (*and<mode>3_2insn): New.
240         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
241         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
242         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
243         *insvdi_internal3): Delete.
244         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
245         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
246         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
247         *ior<mode>_mask): New.
248         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
249         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
250         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
251         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
252         Delete.
253         (ashr<mode>3): Delete expander.
254         (*ashr<mode>3): Rename to ...
255         (ashr<mode>3): ... This.
256         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
257         (*rotldi3_internal4, *rotldi3_internal5 and split,
258         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
259         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
260         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
261         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
262         (splitter for loading a mask): Adjust.
263         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
264
265 2015-07-20  Marek Polacek  <polacek@redhat.com>
266
267         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
268         output_add_clobbers, output_added_clobbers_hard_reg_p,
269         gen_rtx_scratch): Remove declarations.
270
271 2015-07-20  Marek Polacek  <polacek@redhat.com>
272
273         PR c++/55095
274         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
275
276 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
277
278         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
279         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
280
281 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
282
283         * combine.c (combine_simplify_rtx): Move simplification step
284         before various transformations/substitutions.
285
286 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
287
288         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
289         (struct int_traits): Likewise.
290
291 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
292
293         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
294         function to vmsdbgout_function_decl.
295
296 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
297
298         PR target/66922
299         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
300         from misaligned positions.
301         (ix86_expand_pinsr): Reject insertions to misaligned positions.
302
303 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
304
305         PR middle-end/46851
306         PR middle-end/60340
307         * Makefile.in: Removed omega.o.
308         * common.opt: Document flag fcheck-data-deps as deprecated.
309         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
310         its associated params: omega-max-vars, omega-max-geqs,
311         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
312         omega-max-keys, omega-eliminate-redundant-constraints.
313         * doc/loop.texi: Remove all the section on Omega.
314         * graphite-blocking.c: Include missing params.h: it used to be
315         included through tree-data-ref.h and omega.h.
316         * graphite-isl-ast-to-gimple.c: Same.
317         * graphite-optimize-isl.c: Same.
318         * graphite-sese-to-poly.c: Same.
319         * graphite.c: Same.
320         * omega.c: Remove.
321         * omega.h: Remove.
322         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
323         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
324         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
325         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
326         * passes.def: Remove pass_check_data_deps.
327         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
328         (dump_conflict_function): Same.
329         (dump_subscript): Same.
330         (print_direction_vector): Same.
331         (print_dir_vectors): Same.
332         (print_lambda_vector): Same.
333         (print_dist_vectors): Same.
334         (dump_data_dependence_relation): Same.
335         (dump_data_dependence_relations): Same.
336         (dump_dist_dir_vectors): Same.
337         (dump_ddrs): Same.
338         (init_omega_eq_with_af): Removed.
339         (omega_extract_distance_vectors): Removed.
340         (omega_setup_subscript): Removed.
341         (init_omega_for_ddr_1): Removed.
342         (init_omega_for_ddr): Removed.
343         (ddr_consistent_p): Removed.
344         (compute_affine_dependence): Do not use omega to check data
345         dependences.
346         (compute_data_dependences_for_bb): Removed.
347         (analyze_all_data_dependences): Removed.
348         (tree_check_data_deps): Removed.
349         * tree-data-ref.h: Do not include omega.h.
350         (compute_data_dependences_for_bb): Removed.
351         (tree_check_data_deps): Removed.
352         * tree-ssa-loop.c (pass_check_data_deps): Removed.
353         (make_pass_check_data_deps): Removed.
354         * tree-ssa-phiopt.c: Include params.h.
355         * tree-vect-data-refs.c: Same.
356         * tree-vect-slp.c: Same.
357
358 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
359
360         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
361         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
362         (mem->fpreg splitters): Ditto.
363         (general_operand->nonimmediate_operand splitter): Use explicit modes.
364         Disable DFmode for TARGET_64BIT.
365
366 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
367
368         PR target/66906
369         * config/i386/i386.c (ix86_expand_prologue): Replicate static
370         chain on the stack.
371
372 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
373
374         * config/nvptx/mkoffload.c (process): Constify host data.
375         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
376         Constify host data.
377         (generate_host_descr_file): Likewise.
378
379 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
380             Sebastian Pop  <s.pop@samsung.com>
381
382         PR middle-end/61929
383         * graphite-dependences.c (add_pdr_constraints): Renamed
384         pdr->extent to pdr->subscript_sizes.
385         * graphite-interchange.c (build_linearized_memory_access): Add
386         back all gcc_assert's that the "isl_int to isl_val conversion"
387         patch has removed.  Refactored.
388         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
389         * graphite-poly.c (new_poly_dr): Same.
390         (free_poly_dr): Same.
391         * graphite-poly.h (struct poly_dr): Same.
392         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
393         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
394         * graphite-scop-detection.h: Fix space.
395         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
396         back all gcc_assert's removed by a previous patch.
397         (wrap): Remove the_isl_ctx global variable that the same patch has
398         added.
399         (build_loop_iteration_domains): Same.
400         (add_param_constraints): Same.
401         (pdr_add_data_dimensions): Same.  Refactored.
402         (build_poly_dr): Renamed extent to subscript_sizes.
403
404 2015-07-17  Marek Polacek  <polacek@redhat.com>
405
406         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
407         * match.pd: ... here.
408
409 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
410
411         * config/nvptx/mkoffload.c (process): Constify target data.
412         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
413         Constify target data.
414         (generate_target_offloadend_file): Likewise.
415
416 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
417
418         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
419         to allow renaming of PHI arguments on edges incoming from outer
420         loop header, add corresponding check before start PHI iterator.
421         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
422         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
423         with true force_vectorize.  Set-up dominator for outer loop too.
424         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
425         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
426         was marked with force_vectorize and has restricted cfg.
427         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
428         inner loop.
429         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
430         do peeling for outer loops.
431
432 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
433             Matthias Klose  <doko@ubuntu.com>
434
435         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
436         build-sysroot, sysroot from the `Miscenalleous configure options' to
437         the `Directories' section and strip trailing `/' from with_sysroot.
438         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
439         * configure: Regenerated.
440
441 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
442
443         PR target/66824
444         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
445         (TARGET_HARD_DF_REGS): Ditto.
446         (TARGET_HARD_XF_REGS): Ditto.
447         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
448         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
449         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
450         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
451         (*movsf_internal): Add alternatives 16 and 17. Enable
452         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
453
454 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
455
456         PR rtl-optimization/66891
457         * calls.c (expand_call): Wrap precompute_register_parameters with
458         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
459
460 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
461
462         * config/nvptx/mkoffload.c (process): Constify mapping variables.
463         Define target data struct and initialize it.
464
465 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
466
467         PR rtl-optimization/66626
468         * ira.h (emit-rtl.h): Include.
469         (non_spilled_static_chain_regno_p): New.
470         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
471         unless it is non spilled static chain pseudo.
472         (assign_hard_rego): Spill memory profitable allocno unless it is
473         non spilled static chain pseudo.
474         (allocno_spill_priority_compare): Put non spilled static chain
475         pseudo at the end of sorted array.
476         (improve_allocation): Do nothing if we have static chain and
477         non-local goto.
478         (allocno__priority_compare_func): Put non spilled static chain
479         pseudo at the beginning of sorted array.
480         (move_spill_restore): Ignore non spilled static chain pseudo.
481         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
482         to non spilled static chain pseudo.
483         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
484         pseudo at the beginning of sorted array.
485         (spill_for): Spill non spilled static chain pseudo last.
486         * lra-constraints.c (lra_constraints): Remove static chain pseudo
487         check for equivalence.
488
489 2015-07-16  Martin Liska  <mliska@suse.cz>
490
491         PR ipa/66896.
492         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
493         dst_ctx if it does not exist.
494
495 2015-07-16  Martin Liska  <mliska@suse.cz>
496
497         * hash-set.h (remove): New function.
498         (iterator): New iteration class for hash_set.
499
500 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
501
502         * genattrtab.c (make_canonical): Add a file_location parameter.
503         Use fatal_at rather than fatal.
504         (get_attr_value): Likewise.  Update call to make_canonical.
505         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
506         (make_internal_attr): Update calls accordingly.
507
508 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
509
510         * read-md.h (message_with_line, error_with_line): Delete.
511         * read-md.c (message_with_line, error_with_line): Delete.
512         * gensupport.h: Include read-md.h.
513         (md_rtx_info): New structure.
514         (read_md_rtx): Use it.  Return a bool success value.
515         * gensupport.c (read_md_rtx): Likewise.
516         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
517         (main): Update after interface changes.
518         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
519         (main): Update after interface changes.
520         * genattrtab.c (insn_code_number): Delete.
521         (optimize_attrs): Add a max_insn_code parameter and use it instead
522         of insn_code_number.
523         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
524         Use *_at rather than *_with_line functions.
525         (gen_insn): Likewise.
526         (gen_delay): Likewise.
527         (gen_insn_reserv): Likewise.
528         (gen_bypass): Take an md_rtx_info rather than an rtx.
529         (main): Update after interface changes.  Use a local max_insn_code
530         variable instead of insn_code_number.
531         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
532         an rtx.  Use fatal_at rather than fatal.
533         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
534         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
535         (gen_absence_set, gen_final_absence_set, gen_automaton)
536         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
537         (main): Update after interface changes.
538         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
539         and code number.
540         (main): Update after interface changes.
541         * genconditions.c (main): Use new read_md_rtx interface.
542         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
543         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
544         (main): Update after interface changes.
545         * genemit.c (insn_code_number, insn_index_number): Delete.
546         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
547         Use fatal_at rather than fatal.
548         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
549         rather than fatal.
550         (gen_split): Likewise.
551         (main): Update after interface changes.
552         * genextract.c (line_no): Delete.
553         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
554         Update call to walk_rtx.
555         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
556         rather than message_with_line.
557         (walk_rtx): Add an md_rtx_info argument.  Update call to
558         VEC_safe_set_locstr.
559         (main): Update after interface changes.
560         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
561         and lineno.  Use error_at rather than separate message_with_line
562         calls and have_error assignments.
563         (main): Update after interface changes.
564         * genmddump.c (main): Use new read_md_rtx interface.
565         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
566         (main): Update after interface changes.
567         * genoutput.c (next_code_number): Delete.
568         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
569         (gen_peephole, gen_expand, gen_split): Likewise.
570         (note_constraint): Likewise.  Use *_at rather than *_with_line
571         functions.
572         (main): Update after interface changes.
573         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
574         rtx and lineno.
575         (main): Update after interface changes.
576         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
577         than an rtx and lineno.
578         (process_define_constraint): Likewise.
579         (process_define_register_constraint): Likewise.
580         (main): Update after interface changes.
581         * genrecog.c (next_insn_code, pattern_lineno): Delete.
582         (validate_pattern): Replace top-level rtx with an md_rtx_info.
583         Use *_at rather than *_with_line functions.
584         (match_pattern_2): Likewise.
585         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
586         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
587         Use *_at rather than *_with_line functions.
588         * gentarget-def.c (add_insn): New function.
589         (main): Use it.  Use new read_md_rtx interface.
590
591 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
592
593         * gensupport.h (compute_test_codes): Take a file_location rather
594         than a line number.
595         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
596         rather than *_with_line functions.
597         (process_define_predicate): Update call to compute_test_codes.
598         * genpreds.c (validate_exp): Take a file_location rather than a
599         line number.  Use *_at functions rather than *_with_line functions.
600         (process_define_predicate): Update call to validate_exp.
601         (constraint_data): Replace lineno field with a file_location.
602         (add_constraint): Take a file_location rather than a line number.
603         Use *_at functions rather than *_with_line functions.  Fix error
604         message for address constraints.  Update after changes to
605         validate_exp, constraint_data and compute_test_codes.
606         (process_define_constraint): Update accordingly.
607         (process_define_register_constraint): Likewise.
608
609 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
610
611         * genoutput.c (data): Use a file_location to record the source
612         position.
613         (nothing): Delete.
614         (idata, idata_end): Remove initialization.
615         (constraint_data): Replace lineno with a file_location.
616         (output_insn_data): Update after changes to data.
617         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
618         (scan_operands): Likewise, using *_at rather than *_with_line
619         functions.
620         (process_template): Likewise.
621         (validate_insn_alternatives): Likewise.
622         (validate_insn_operands): Likewise.
623         (validate_optab_operands): Likewise.
624         (init_insn_for_nothing): Initialize idata and idata_end.
625         (note_constraint): Update after changes to constraint_data,
626         using at rather than with_line functions.
627         (mdep_constraint_len): Take a file_location rather than a
628         line number.  Use at rather than with_line functions.
629
630 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
631
632         * read-md.h (fatal_at): Declare.
633         * read-md.c (fatal_at): New function.
634         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
635         to record the source position.
636         (check_attr_test): Take a file_location instead of a line number.
637         Use fatal_at instead of fatal.
638         (check_attr_value): Update after above changes, using "at"
639         rather than "with_line" reporting functions.
640         (convert_set_attr_alternative): Likewise.
641         (gen_attr): Likewise.
642         (check_defs): Likewise.  Don't assign to read_md_filename.
643         (gen_insn): Update initialization after above changes.
644         (gen_delay): Likewise.
645         (write_insn_cases): Print the filename for a define_peephole.
646         (gen_insn_reserv): Take a line number as argument and update
647         the call to check_attr_test.
648         (main): Pass a line number to gen_insn_reserv.
649
650 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
651
652         * read-md.h (file_location): New structure.
653         (directive_handler_t): Take a file_location rather than a line number.
654         (message_at, error_at): Declare.
655         (read_skip_construct): Delete.
656         * read-md.c (message_with_line_1): Replace with...
657         (message_at_1): ...this new function.
658         (message_at, error_at): New functions.
659         (message_with_line, error_with_line): Update to use message_at_1.
660         (handle_enum): Take a file_location rather than a line number
661         and use error_at for error reporting.
662         (handle_include): Likewise.
663         (read_skip_construct): Likewise.  Make static.
664         (handle_file): Update after above changes.  Pass a file_location
665         rather than a line number to handle_directive.
666         * gensupport.c (queue_elem): Replace separate filename and lineno
667         with a file_location.
668         (queue_pattern): Replace filename and lineno arguments with a
669         file_location.  Update after change to queue_elem.
670         (process_define_predicate): Replace lineno argument with a
671         file_location and use error_at for error reporting.  Update
672         after above changes.
673         (process_rtx): Likewise.
674         (subst_pattern_match): Likewise.
675         (get_alternatives_number): Likewise.
676         (alter_predicate_for_insn): Likewise.
677         (rtx_handle_directive): Likewise.
678         (is_predicable): Update after above changes, using error_at rather
679         than error_with_line.
680         (has_subst_attribute): Likewise.
681         (identify_predicable_attribute): Likewise.
682         (alter_attrs_for_subst_insn): Likewise.
683         (process_one_cond_exec): Likewise.
684         (process_substs_on_one_elem): Likewise.
685         (process_define_subst): Likewise.
686         (check_define_attr_duplicates): Likewise.
687         (read_md_rtx): Update after change to queue_elem.
688
689 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
690
691         * genoutput.c (next_index_number): Delete.
692         (data): Remove index_number.
693         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
694         (main): Remove manipulation of next_index_number.
695
696 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
697
698         * genattrtab.c (check_attr_value): Remove handling of null attrs.
699         (make_canonical): Likewise.
700
701 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
702
703         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
704         instead of adjust_address_nv.
705         (restore_stack_nonlocal): Likewise.
706         (nonlocal_goto): Likewise.
707
708 2015-07-16  Tom de Vries  <tom@codesourcery.com>
709
710         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
711         not have a corresponding loop header phi.
712
713 2015-07-16  Tom de Vries  <tom@codesourcery.com>
714
715         * tree-parloops.c (create_loads_for_reductions): Handle case that
716         reduction is unused.
717
718 2015-07-16  Richard Biener  <rguenther@suse.de>
719
720         PR tree-optimization/66894
721         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
722         about deriving NE_EXPR from truncated values.
723
724 2015-07-16  Martin Liska  <mliska@suse.cz>
725
726         * alloc-pool.h
727         (object_allocator): Add new class.
728         (pool_allocator::initialize): Use the underlying class.
729         (pool_allocator::allocate): Likewise.
730         (pool_allocator::remove): Likewise.
731         (operator new): A new generic allocator.
732         * asan.c (struct asan_mem_ref): Remove unused members.
733         (asan_mem_ref_new): Replace new operator with
734         object_allocator::allocate.
735         (free_mem_ref_resources): Change deallocation.
736         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
737         with object_allocator.
738         * config/sh/sh.c (add_constant): Replace new operator with
739         object_allocator::allocate.
740         (sh_reorg): Change call to a release method.
741         * cselib.c (struct elt_list): Remove unused members.
742         (new_elt_list): Replace new operator with
743         object_allocator::allocate.
744         (new_elt_loc_list): Likewise.
745         (new_cselib_val): Likewise.
746         (unchain_one_elt_list): Change delete operator with remove method.
747         (unchain_one_elt_loc_list): Likewise.
748         (unchain_one_value): Likewise.
749         (cselib_finish): Release newly added static allocators.
750         * cselib.h (struct cselib_val): Remove unused members.
751         (struct elt_loc_list): Likewise.
752         * df-problems.c (df_chain_alloc): Replace pool_allocator with
753         object_allocator.
754         * df-scan.c (struct df_scan_problem_data): Likewise.
755         (df_scan_alloc): Likewise.
756         * df.h (struct dataflow): Likewise.
757         * dse.c (struct read_info_type): Likewise.
758         (struct insn_info_type): Likewise.
759         (struct dse_bb_info_type): Likewise.
760         (struct group_info): Likewise.
761         (struct deferred_change): Likewise.
762         (get_group_info): Likewise.
763         (delete_dead_store_insn): Likewise.
764         (free_read_records): Likewise.
765         (replace_read): Likewise.
766         (check_mem_read_rtx): Likewise.
767         (scan_insn): Likewise.
768         (dse_step1): Likewise.
769         (dse_step7): Likewise.
770         * et-forest.c (struct et_occ): Remove unused members.
771         (et_new_occ): Use allocate instead of new operator.
772         (et_new_tree): Likewise.
773         (et_free_tree): Call release method explicitly.
774         (et_free_tree_force): Likewise.
775         (et_free_pools): Likewise.
776         (et_split): Use remove instead of delete operator.
777         * et-forest.h (struct et_node): Remove unused members.
778         * ipa-cp.c: Change pool_allocator to object_allocator.
779         * ipa-inline-analysis.c: Likewise.
780         * ipa-profile.c: Likewise.
781         * ipa-prop.c: Likewise.
782         * ipa-prop.h: Likewise.
783         * ira-build.c (initiate_cost_vectors): Cast return value.
784         (ira_allocate_cost_vector): Likewise.
785         * ira-color.c (struct update_cost_record): Remove unused members.
786         * lra-int.h (struct lra_live_range): Likewise.
787         (struct lra_copy): Likewise.
788         (struct lra_insn_reg): Likewise.
789         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
790         * lra.c (new_insn_reg): Replace new operator with allocate method.
791         (free_insn_regs): Same for operator delete.
792         (finish_insn_regs): Release new static allocator.
793         (finish_insn_recog_data): Likewise.
794         (lra_free_copies): Replace delete operator with remove method.
795         (lra_create_copy): Replace operator new with allocate method.
796         (invalidate_insn_data_regno_info): Same for remove method.
797         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
798         (free_debug_insn_changes): Replace delete operator with remove method.
799         (replace_oldest_value_reg): Replace operator new with allocate method.
800         (pass_cprop_hardreg::execute): Release new static variable.
801         * sched-deps.c (sched_deps_init): Change pool_allocator to
802         object_allocator.
803         * sel-sched-ir.c: Likewise.
804         * sel-sched-ir.h: Likewise.
805         * stmt.c (expand_case): Likewise.
806         (expand_sjlj_dispatch_table): Likewise.
807         * tree-sra.c (struct access): Remove unused members.
808         (struct assign_link): Likewise.
809         (sra_deinitialize): Release newly added static pools.
810         (create_access_1):Replace operator new with allocate method.
811         (build_accesses_from_assign): Likewise.
812         (create_artificial_child_access): Likewise.
813         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
814         pool_allocator to object_allocator.
815         * tree-ssa-pre.c: Likewise.
816         * tree-ssa-reassoc.c: Likewise.
817         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
818         * tree-ssa-strlen.c: Likewise.
819         * tree-ssa-structalias.c: Likewise.
820         * var-tracking.c (onepart_pool_allocate): New function.
821         (unshare_variable): Use the newly added function.
822         (variable_merge_over_cur): Likewise.
823         (variable_from_dropped): Likewise.
824         (variable_was_changed): Likewise.
825         (set_slot_part): Likewise.
826         (emit_notes_for_differences_1): Likewise.
827         (vt_finalize): Release newly added static pools.
828
829 2015-07-16  Martin Jambor  <mjambor@suse.cz>
830
831         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
832         all uses.  Fix two typos in its general comment.
833         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
834
835 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
836
837         * config/i386/linux-common.h (LINK_MPX): New.
838         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
839         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
840         indicating '-z bndplt' support by linker.
841         * configure: Regenerate.
842         * config.in: Regenerate.
843
844 2015-07-16  Richard Biener  <rguenther@suse.de>
845
846         * fold-const.c (fold_widened_comparison): Remove.
847         (fold_sign_changed_comparison): Likewise.
848         (fold_comparison): Move widened and sign-changed comparison
849         simplification ...
850         * match.pd: ... to patterns here.
851         * generic-match-head.c: Include target.h.
852         * gimple-match-head.c: Likewise.
853
854 2015-07-16  Richard Biener  <rguenther@suse.de>
855
856         * tree-ssa-dom.c (dom_valueize): New function.
857         (record_temporary_equivalences): Also record equivalences
858         for dominating stmts that have uses of equivalences we are
859         about to record.
860
861 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
862
863         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
864         add_autoinc_candidates.
865         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
866         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
867         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
868         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
869         Call new function.
870         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
871         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
872         Remove parameter struct iv*.  Call add_autoinc_candidates here.
873         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
874         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
875         Call new function.
876         (find_iv_candidates): Call new functions.
877
878 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
879
880         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
881         uninitialized-variable warning.
882
883 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
884
885         PR target/65249
886         * config/sh/sh.md (movdi): Split simple reg move to two movsi
887         when the destination is R0.
888
889 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
890
891         PR target/66866
892         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
893         * config/i386/i386.c (ix86_expand_pextr): New function.
894         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
895         for non-lowpart subregs.
896         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
897         (insv<mode>): Use SWI248 mode iterator.
898         (insv<mode>_1): Ditto.
899
900 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
901             Sebastian Pop  <s.pop@samsung.com>
902
903         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
904         iterator to use_stmt.
905
906 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
907             Sebastian Pop <s.pop@samsung.com>
908
909         * graphite-scop-detection.c (build_scops_1): Discard scops for
910         which entry==exit.
911
912 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
913             Sebastian Pop <s.pop@samsung.com>
914
915         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
916         case of a return statement in scop.
917
918 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
919             Sebastian Pop <s.pop@samsung.com>
920
921         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
922         INTEGER_TYPE parameters.
923         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
924         VECTOR_CST in scan_tree_for_params.
925         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
926
927 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
928
929         * gimple-pretty-print.h: Don't include pretty-print.h.
930         * tree-streamer.h: Don't include lto-streamer.h.
931         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
932         * gimple-streamer-in.c: Remove redundant includes.
933         * gimple-streamer-out.c: Likewise.
934         * ipa-devirt.c: Likewise.
935         * ipa-icf.c: Likewise.
936         * ipa-inline-analysis.c: Likewise.
937         * ipa-polymorphic-call.c: Likewise.
938         * ipa-profile.c: Likewise.
939         * ipa-prop.c: Likewise.
940         * ipa-pure-const.c: Likewise.
941         * lto-cgraph.c: Likewise.
942         * lto-streamer-in.c: Likewise.
943         * lto-streamer-out.c: Likewise.
944         * lto-streamer.c: Likewise.
945         * tree-streamer-in.c: Likewise.
946         * tree-streamer-out.c: Likewise.
947         * tree-streamer.c: Likewise.
948
949 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
950
951         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
952         include input.h.
953         * opts.c: Remove multiline #include comment.
954
955 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
956
957         * config/nvptx/mkoffload.c (process): Add C++ protection to
958         emitted code.
959
960 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
961
962         PR target/66854
963         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
964         null before IEEE 128-bit floating point support patch.
965
966 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
967
968         * simplify-rtx.c (simplify_ternary_operation): Add simplification
969         for (!c) != {0,...,0} ? a : b for vector modes.
970
971 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
972             Martin Jambor  <mjambor@suse.cz>
973
974         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
975         struct func_body_info* instead of struct ipa_node_params*, expecting
976         fbi->info to be filled in.  Replace throughout.  Adjust call to
977         ipa_load_from_parm_agg.
978         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
979         instead of struct ipa_node_params*.  Adjust calls to other functions
980         so that they pass either fbi or fbi->info.
981         (set_switch_stmt_execution_predicate): Likewise.
982         (will_be_nonconstant_predicate): Likewise.
983         (compute_bb_predicates): Likewise.
984         (estimate_function_body_sizes): Move asserts earlier.  Fill in
985         struct func_body_info, replace parms_info with fbi.info.  Adjust
986         calls to functions that now accept struct func_body_info.
987         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
988         (struct func_body_info): Likewise.
989         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
990         remove static.  Adjust callers.
991         (ipa_load_from_parm_agg): Remove.
992         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
993         (func_body_info): Likewise.
994         (ipa_load_from_parm_agg): Adjust prototype.
995
996 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
997
998         * gensupport.c (rtx_handle_directive): Adjust.
999         * read-rtl.c (apply_iterators): Take vector to add rtxs to
1000         instead of expr list rtx.
1001         (add_define_attr_for_define_subst): Likewise.
1002         (add_define_subst_attr): Likewise.
1003         (read_subst_mapping): Likewise.
1004         (read_rtx): Likewise.
1005         * rtl.h (read_rtx): Adjust.
1006
1007 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1008
1009         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
1010
1011 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1012
1013         PR target/58066
1014         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
1015         (*tls_local_dynamic_base_64_<mode>): Ditto.
1016         (*tls_local_dynamic_base_64_largepic): Ditto.
1017         (tls_global_dynamic_64_<mode>): Update expander pattern.
1018         (tls_local_dynamic_base_64_<mode>): Ditto.
1019
1020 2015-07-15  Richard Biener  <rguenther@suse.de>
1021
1022         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
1023         and bool_var == 1 -> bool_var simplifications ...
1024         * match.pd: ... to patterns here.  Factor out negate_expr_p
1025         cases from the A - B -> A + (-B) patterns as negate_expr_p
1026         predicate and add a -(A + B) -> (-B) - A pattern.
1027
1028 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1029
1030         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
1031
1032 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1033             Robert Suchanek  <robert.suchanek@imgtec.com>
1034
1035         * config/mips/mips.c (mips_int_mask): New enum.
1036         (mips_shadow_set): Likewise.
1037         (int_mask): New variable.
1038         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
1039         (machine_function): Add int_mask and use_shadow_register_set.
1040         (mips_attribute_table): Add attribute handlers for interrupt and
1041         use_shadow_register_set.
1042         (mips_interrupt_mask): New static function.
1043         (mips_handle_interrupt_attr): Likewise.
1044         (mips_handle_use_shadow_register_set_attr): Likewise.
1045         (mips_use_shadow_register_set): Change return type to enum
1046         mips_shadow_set.  Add argument handling for use_shadow_register_set
1047         attribute.
1048         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
1049         compare with mips_shadow_set enum.
1050         (mips_compute_frame_info): Add interrupt mask and
1051         use_shadow_register_set to per-function information structure.
1052         Add a stack slot for EPC unconditionally.
1053         (mips_expand_prologue): Compare use_shadow_register_set value
1054         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
1055         masked interrupt register but in EIC mode use K0 and save Cause in K0.
1056         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
1057         copying the stack pointer from the shadow register set.
1058         * config/mips/mips.h (SR_IM0): New define.
1059         * config/mips/mips.md (mips_rdpgpr): Rename to...
1060         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
1061         * doc/extend.texi (Declaring Attributes of Functions): Document
1062         optional arguments for interrupt and use_shadow_register_set
1063         attributes.
1064
1065 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1066
1067         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
1068         interrupt attribute.
1069         (mips_expand_prologue): Disable the floating point unit in an ISR.
1070         * config/mips/mips.h (SR_COP1): New define.
1071
1072 2015-07-15  Richard Biener  <rguenther@suse.de>
1073
1074         * genmatch.c (parser::peek, parser::peek_ident): Add argument
1075         to tell how many tokens to peek ahead (default 1).
1076         (parser::eat_token, parser::eat_ident): Return token consumed.
1077         (parser::parse_result): Parse new switch statement.
1078         * match.pd: Use case statements where appropriate.
1079
1080 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1081
1082         PR rtl-optimization/58066
1083         * calls.c (expand_call): Precompute register parameters before stack
1084         alignment is performed.
1085
1086 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1087
1088         PR rtl-optimization/66838
1089         * postreload.c (reload_cse_move2add): Also process
1090         CALL_INSN_FUNCTION_USAGE when resetting information of
1091         call-clobbered registers.
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/constraints.md (U, v): New constraints.
1098         * config/nios2/predicates.md (rdprs_dcache_operand): New.
1099         (ldstex_memory_operand): New.
1100         * config/nios2/sync.md: New file.
1101         * config/nios2/nios2.md (unspecv): Add new builtin function
1102         UNSPECV codes.
1103         (rdprs, flushd, flushda, wrpie, eni): New patterns.
1104         (top-level): Include sync.md.
1105         * config/nios2/nios2.c (N2_FTYPES): Add function types for
1106         new builtins.
1107         (N2_BUILTINS): Add arch field setting, add new builtins.
1108         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1109         for arch field.
1110         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1111         Also handle ldex/stex/ldsex/stsex builtins.
1112         (nios2_expand_rdprs_builtin): New function.
1113         (nios2_expand_cache_builtin): New function.
1114         (nios2_expand_wrpie_builtin): New function.
1115         (nios2_expand_eni_builtin): New function.
1116         (nios2_expand_builtin): Add arch field handling and new builtin
1117         cases.
1118         * doc/extend.texi (Altera Nios II Built-in Functions): Document
1119         new builtins.
1120         * doc/md.texi (Machine Constraints): Document U and v constraints.
1121
1122 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1123             Cesar Philippidis  <cesar@codesourcery.com>
1124             Chung-Lin Tang  <cltang@codesourcery.com>
1125
1126         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1127         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1128         callee_save_reg_size and uses_anonymous_args fields.
1129         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1130         (nios2_create_cfa_notes): New function.
1131         (nios2_adjust_stack): New function for adjusting stack.
1132         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1133         Use nios2_adjust_stack.
1134         (nios2_expand_epilogue): Likewise.
1135         (nios2_expand_return): New function.
1136         (nios2_can_use_return_insn): Update for CDX pop.n usage.
1137         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1138         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1139         * config/nios2/nios2.md (return): Use nios2_expand_return.
1140
1141 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1142             Cesar Philippidis  <cesar@codesourcery.com>
1143             Chung-Lin Tang  <cltang@codesourcery.com>
1144
1145         * config/nios2/predicates.md (pop_operation): New.
1146         (ldwm_operation, stwm_operation): New.
1147         (nios2_hard_register_operand): New.
1148         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1149         (ldstwm_operation_p): Declare.
1150         (gen_ldstwm_peep): Declare.
1151         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1152         (base_reg_adjustment_p): New.
1153         (pop_operation_p): New.
1154         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1155         (nios2_ldstwm_regset_p): New.
1156         (ldstwm_operation_p): New.
1157         (gen_ldst): New.
1158         (nios2_ldst_parallel): New.
1159         (struct ldswm_operand): Declare.
1160         (compare_ldstwm_operands): New.
1161         (can_use_cdx_ldstw): New.
1162         (gen_ldstwm_peep): New.
1163         * config/nios2/nios2-ldstwm.sml: New.
1164         * config/nios2/nios2.md: Include ldstwm.md.
1165         * config/nios2/ldstwm.md: Generated.
1166
1167 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1168             Cesar Philippidis  <cesar@codesourcery.com>
1169             Chung-Lin Tang  <cltang@codesourcery.com>
1170
1171         * config/nios2/nios2.h (LABEL_ALIGN): Define.
1172         (REG_ALLOC_ORDER): Define.
1173         (ADJUST_REG_ALLOC_ORDER): Define.
1174         (HONOR_REG_ALLOC_ORDER): Define.
1175         (CDX_REG_P): Define.
1176         (ANDCLEAR_INT): Define.
1177         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1178         (nios2_label_align): Declare.
1179         (nios2_cdx_narrow_form_p): Declare.
1180         (nios2_adjust_reg_alloc_order): Declare.
1181         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1182         operation.
1183         (nios2_large_unspec_reloc_p): New function, split from...
1184         (nios2_legitimate_pic_operand_p): ...here.
1185         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1186         (nios2_print_operand_punct_valid_p): New.
1187         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1188         (split_mem_address): New.
1189         (split_alu_insn): New.
1190         (cdxreg): New.
1191         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1192         (enum nios2_add_insn_kind): New.
1193         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1194         (nios2_add_insn_classify): New.
1195         (nios2_add_insn_asm): New.
1196         (nios2_cdx_narrow_form_p): New.
1197         (label_align, min_labelno, max_labelno): New.
1198         (nios2_reorg): New.
1199         (nios2_label_align): New.
1200         (nios2_adjust_reg_alloc_order): New.
1201         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1202         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1203         * config/nios2/constraints.md (P): New constraint.
1204         * config/nios2/predicates.md (const_and_operand): New.
1205         (and_operand): New.
1206         (stack_memory_operand): New.
1207         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1208         (length): Update to use nios2_cdx_narrow_form_p().
1209         (type): Add new insn type values.
1210         (control, alu, st, ld, shift): Update insn reservations with
1211         new insn type values.
1212         (*high, *lo_sum): Define new insn patterns for constant generation.
1213         (movqi_internal, movhi_internal, movsi_internal): Reduce
1214         alternatives, update asm template to handle CDX variants, update
1215         type attributes.
1216         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1217         template, update type attributes.
1218         (extendhisi2, extendqi<mode>2): Likewise.
1219         (addsi3): Change to use function for asm string.
1220         (subsi3): Add CDX notation to asm template, update type attributes.
1221         (negsi3, one_cmplsi3): Likewise.
1222         (andsi3): New pattern, specialized from logical patterns.
1223         (<code>si3): Remove and case, combine alternatives, update asm
1224         template.
1225         (<shift_op>si3): Add CDX notation, update type attributes.
1226         (rotrsi3): Update type attribute.
1227         (*merge, extzv, insv): New insn patterns.
1228         (return): Change to define_expand.
1229         (simple_return): Add CDX notation, update type attributes.
1230         (indirect_jump): Add CDX notation.
1231         (jump): Update asm cases, update length attribute expression.
1232         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1233         (nios2_cbranch): Update asm cases and length attribute expression
1234         to handle CDX variants.
1235         (nios2_cmp<code>): Update asm template.
1236         (nop): Add CDX notation, update type attributes.
1237         (trap): Add CDX notation.
1238         (ctrapsi4): Update asm cases and length attribute expression to
1239         handle CDX variant.
1240         * doc/md.texi (Machine Constraints): Document P constraint.
1241
1242 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1243             Cesar Philippidis  <cesar@codesourcery.com>
1244             Chung-Lin Tang  <cltang@codesourcery.com>
1245
1246         * config/nios2/nios2.h (SMALL_INT12): New macro.
1247         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1248         (nios2_valid_addr_expr_p): Use it.
1249         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1250         with implicit "io" instructions on R2.
1251         * config/nios2/constraints.md (w): New constraint.
1252         * config/nios2/predicates.md (ldstio_memory_operand): New.
1253         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1254         operand predicate and constraint.
1255         (ld<bh>io_signed, st<bhw>io>): Likewise.
1256         * doc/md.texi (Machine Constraints): Document w constraint.
1257
1258 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1259             Cesar Philippidis  <cesar@codesourcery.com>
1260             Chung-Lin Tang  <cltang@codesourcery.com>
1261
1262         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1263         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1264         Nios II architecture level.
1265         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1266         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1267         (OPTION_DEFAULT_SPECS): Define.
1268         (ASM_SPEC): Add -march= spec strings.
1269         * config/nios2/nios2.c (nios2_option_override): Check for
1270         conflicts involving new options.
1271         * config.gcc (nios2*-*-*): Support --with-arch=.
1272         * doc/invoke.texi (Option Summary, Nios II Options): Document
1273         -march=, -mbmx, and -mcdx.
1274
1275 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1276
1277         PR rtl-optimization/66626
1278         * lra-constraints.c (lra_constraints): Prevent equivalence
1279         substitution for static chain pseudo in functions with nonlocal
1280         goto.
1281
1282 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1283
1284         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1285         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1286         -fstack-limit-symbol as well as -fstack-limit-register.
1287         (nios2_expand_prologue): Emit only a single stack limit check,
1288         even if multiple stack adjustments are required.
1289         (nios2_option_override): Diagnose unsupported combination of -fpic
1290         and -stack-limit-symbol.
1291
1292 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1293
1294         * Makefile.in (top_srcdir): New.
1295         * configure.ac: Use AM_ZLIB.
1296         * configure: Regeneated.
1297
1298 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1299
1300         PR target/66840
1301         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1302
1303 2015-07-14  Richard Biener  <rguenther@suse.de>
1304
1305         PR tree-optimization/66863
1306         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1307         what we record for conversion use stmt lhs inequalities.
1308
1309 2015-07-14  Richard Biener  <rguenther@suse.de>
1310
1311         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1312         (decision_tree::gen_gimple): Likewise.
1313
1314 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1315
1316         * gcc.c (greater_than_spec_func): Declare forward.
1317         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1318         -ftree-parallelize-loops={0,1}.
1319         (static_spec_functions): Add greater_than_spec_func function with name
1320         "gt".
1321         (greater_than_spec_func): New function.
1322
1323 2015-07-14  Richard Biener  <rguenther@suse.de>
1324
1325         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1326         wideing type conversion case from record_equivalences_from_incoming_edge
1327         and use record_equality to record equivalences.
1328         (record_equivalences_from_incoming_edge): Call
1329         record_temporary_equivalences.
1330
1331 2015-07-14  Richard Biener  <rguenther@suse.de>
1332
1333         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1334         (struct if_expr): New.
1335         (struct with_expr): Likewise.
1336         (is_a_helper): Add helpers for if_expr and with_expr.
1337         (struct simplify): Add simplify_kind enum and member.  Remove
1338         ifexpr_vec member.
1339         (simplify::simplify): Adjust.
1340         (lower_commutative): Adjust.
1341         (lower_opt_convert): Likewise.
1342         (lower_cond): Likewise.
1343         (replace_id): Handle with_expr and if_expr.
1344         (lower_for): Adjust.
1345         (dt_simplify::gen_1): New recursive worker, split out from ...
1346         (dt_simplify::gen): ... here.  Deal with if and with expansion
1347         recursively.
1348         (capture_info::capture_info): Take context argument
1349         (capture_info::walk_result): Only analyze specific result.
1350         (parser::parse_result): New function.
1351         (parser::parse_simplify): Adjust to parse ifs with then end
1352         else case.
1353         (parser::parse_if): Simplify.
1354         (parser::parse_pattern): Pass down simplify kind.
1355         * match.pd: Convert if structure to new syntax.
1356
1357 2015-07-13  Marek Polacek  <polacek@redhat.com>
1358
1359         * rtl.c (rtx_equal_p_cb): Fix typo.
1360
1361 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1362
1363         * omega.h: Don't include config.h, don't include params.h again if
1364         omega.h has already been included.
1365         * graphite-poly.h: Include sese.h.
1366         * graphite.c: Don't include sese.h, remove needless includes and
1367         minimize includes outside #ifdef HAVE_isl block.
1368         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1369         and wrap entire file in #ifdef HAVE_isl
1370         * graphite-dependences.c: Likewise.
1371         * graphite-interchange.c: Likewise.
1372         * graphite-isl-ast-to-gimple.c: Likewise.
1373         * graphite-optimize-isl.c: Likewise.
1374         * graphite-poly.c: Likewise.
1375         * graphite-scop-detection.c: Likewise.
1376         * graphite-sese-to-poly.c: Likewise.
1377
1378 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1379
1380         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1381
1382 2015-07-13  Renlin Li  <renlin.li@arm.com>
1383
1384         PR rtl/66556
1385         * simplify-rtx.c (simplify_const_relational_operation): Add
1386         side_effects_p checks.
1387
1388 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1389
1390         * bitmap.h: Fix double word typos.
1391         * builtins.c: Same.
1392         * calls.c: Same.
1393         * cfgloopmanip.c: Same.
1394         * cgraph.c: Same.
1395         * cgraph.h: Same.
1396         * cgraphclones.c: Same.
1397         * combine.c: Same.
1398         * config/aarch64/aarch64-protos.h: Same.
1399         * config/aarch64/aarch64.c: Same.
1400         * config/aarch64/aarch64.md: Same.
1401         * config/arm/arm.md: Same.
1402         * config/arm/arm1020e.md: Same.
1403         * config/arm/arm1026ejs.md: Same.
1404         * config/arm/arm926ejs.md: Same.
1405         * config/arm/fa526.md: Same.
1406         * config/arm/fa606te.md: Same.
1407         * config/arm/fa626te.md: Same.
1408         * config/arm/fa726te.md: Same.
1409         * config/arm/fmp626.md: Same.
1410         * config/darwin.c: Same.
1411         * config/epiphany/epiphany.c: Same.
1412         * config/frv/frv.c: Same.
1413         * config/ft32/ft32.c: Same.
1414         * config/gnu-user.h: Same.
1415         * config/h8300/constraints.md: Same.
1416         * config/i386/i386.c: Same.
1417         * config/i386/i386.md: Same.
1418         * config/iq2000/iq2000.md: Same.
1419         * config/mips/mips.c: Same.
1420         * config/mmix/mmix.md: Same.
1421         * config/moxie/moxie.c: Same.
1422         * config/nds32/nds32.md: Same.
1423         * config/pa/pa.h: Same.
1424         * config/rs6000/aix.h: Same.
1425         * config/rs6000/rs6000.h: Same.
1426         * config/sh/sh.c: Same.
1427         * config/tilegx/tilegx.md: Same.
1428         * config/tilepro/gen-mul-tables.cc: Same.
1429         * cse.c: Same.
1430         * dbxout.c: Same.
1431         * doc/invoke.texi: Same.
1432         * dse.c: Same.
1433         * dwarf2out.c: Same.
1434         * final.c: Same.
1435         * gcc.c: Same.
1436         * genmatch.c: Same.
1437         * gimplify.c: Same.
1438         * hash-table.h: Same.
1439         * internal-fn.c: Same.
1440         * ipa-cp.c: Same.
1441         * ipa-devirt.c: Same.
1442         * ipa-icf.c: Same.
1443         * ipa-icf.h: Same.
1444         * ipa-profile.c: Same.
1445         * ipa-prop.c: Same.
1446         * ipa-prop.h: Same.
1447         * ira.c: Same.
1448         * omp-low.c: Same.
1449         * reg-stack.c: Same.
1450         * regcprop.c: Same.
1451         * reorg.c: Same.
1452         * rtl.h: Same.
1453         * sbitmap.h: Same.
1454         * tree-eh.c: Same.
1455         * tree-inline.c: Same.
1456         * tree-sra.c: Same.
1457         * tree-ssa-dom.c: Same.
1458         * tree-ssa-loop-ivopts.c: Same.
1459         * tree-ssa-structalias.c: Same.
1460         * tree-ssa-tail-merge.c: Same.
1461         * tree-ssa-ter.c: Same.
1462         * tree-ssa-threadupdate.c: Same.
1463         * tree-ssa-uninit.c: Same.
1464         * tree-ssanames.c: Same.
1465         * tree-vect-loop-manip.c: Same.
1466         * tree-vrp.c: Same.
1467         * tree.c: Same.
1468         * valtrack.c: Same.
1469         * vec.h: Same.
1470
1471 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1472
1473         PR middle-end/66726
1474         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1475         tree_ssa_phiopt_worker): Call it.
1476
1477 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1478
1479         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1480         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1481         REG_EQUAL note.
1482
1483 2015-07-11  Marek Polacek  <polacek@redhat.com>
1484
1485         PR middle-end/66353
1486         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1487         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1488         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1489         rather than bb_has_abnormal_call_pred.
1490         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1491         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1492         rather than bb_has_abnormal_call_pred.
1493
1494 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1495
1496         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1497         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1498         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1499         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1500         v850_legitimate_address_p): New functions.
1501         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1502
1503 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1504
1505         PR target/66819
1506         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1507         indirect sibcall with register arguments if register available
1508         for argument passing.
1509         (init_cumulative_args): Set cfun->machine->arg_reg_available
1510         to (cum->nregs > 0) or to true if function has a variable
1511         argument list.
1512         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1513         to false if cum->nregs <= 0.
1514         * config/i386/i386.h (machine_function): Add arg_reg_available.
1515
1516 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1517
1518         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1519         and gen_higpart instead of gen_rtx_SUBREG.
1520         * config/i386/i386.md
1521         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1522         (read-modify peephole2): Use gen_lowpart instead of
1523         gen_rtx_SUBREG for operand 5.
1524
1525 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1526
1527         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1528         generated files.
1529         * config/tilepro/mul-tables.c: Regenerate.
1530         * config/tilegx/mul-tables.c: Regenerate.
1531
1532 2015-07-10  Richard Biener  <rguenther@suse.de>
1533
1534         * fold-const.c (distribute_bit_expr): Remove.
1535         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1536         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1537         to A & (B | C) and simplifying A << C1 << C2 to ...
1538         * match.pd: ... patterns here.
1539
1540 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1541
1542         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1543         Mark mem as READONLY and NOTRAP for PIC symbol.
1544
1545 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1546
1547         * gimple-predict.h: New file.
1548         (gimple_predict_predictor, gimple_predict_set_predictor,
1549         gimple_predict_outcome, gimple_predict_set_outcome,
1550         gimple_build_predict): Relocate here.
1551         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1552         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1553         gimple-predict.h.
1554         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1555         * basic-block.h: Don't include cfghooks.h.
1556         * backend.h: Don't include predict.h.
1557         * cfghooks.h: Include predict.h.
1558         * gimple-pretty-print.c: Include gimple-predict.h.
1559         * gimplify.c: Likwise.
1560         * predict.c: Adjust includes.
1561         * tree-inline.c: Likewise.
1562         * asan.c: Likewise.
1563         * auto-inc-dec.c: Likewise.
1564         * auto-profile.c: Likewise.
1565         * bb-reorder.c: Likewise.
1566         * builtins.c: Likewise.
1567         * caller-save.c: Likewise.
1568         * calls.c: Likewise.
1569         * cfganal.c: Likewise.
1570         * cfgbuild.c: Likewise.
1571         * cfg.c: Likewise.
1572         * cfgcleanup.c: Likewise.
1573         * cfgexpand.c: Likewise.
1574         * cfghooks.c: Likewise.
1575         * cfgloopanal.c: Likewise.
1576         * cfgloop.c: Likewise.
1577         * cfgloopmanip.c: Likewise.
1578         * cfgrtl.c: Likewise.
1579         * cgraph.c: Likewise.
1580         * cgraphunit.c: Likewise.
1581         * combine.c: Likewise.
1582         * cprop.c: Likewise.
1583         * cse.c: Likewise.
1584         * dce.c: Likewise.
1585         * dojump.c: Likewise.
1586         * dse.c: Likewise.
1587         * except.c: Likewise.
1588         * expmed.c: Likewise.
1589         * expr.c: Likewise.
1590         * final.c: Likewise.
1591         * fold-const.c: Likewise.
1592         * function.c: Likewise.
1593         * fwprop.c: Likewise.
1594         * gcc-plugin.h: Likewise.
1595         * gcse.c: Likewise.
1596         * genattrtab.c: Likewise.
1597         * genemit.c: Likewise.
1598         * gengtype.c: Likewise.
1599         * genopinit.c: Likewise.
1600         * genoutput.c: Likewise.
1601         * genpreds.c: Likewise.
1602         * genrecog.c: Likewise.
1603         * gimple-fold.c: Likewise.
1604         * gimple-iterator.c: Likewise.
1605         * gimple-ssa-isolate-paths.c: Likewise.
1606         * gimple-ssa-strength-reduction.c: Likewise.
1607         * graph.c: Likewise.
1608         * graphite-blocking.c: Likewise.
1609         * graphite.c: Likewise.
1610         * graphite-dependences.c: Likewise.
1611         * graphite-interchange.c: Likewise.
1612         * graphite-isl-ast-to-gimple.c: Likewise.
1613         * graphite-optimize-isl.c: Likewise.
1614         * graphite-poly.c: Likewise.
1615         * graphite-scop-detection.c: Likewise.
1616         * graphite-sese-to-poly.c: Likewise.
1617         * haifa-sched.c: Likewise.
1618         * ifcvt.c: Likewise.
1619         * internal-fn.c: Likewise.
1620         * ipa-cp.c: Likewise.
1621         * ipa-profile.c: Likewise.
1622         * ipa-split.c: Likewise.
1623         * ipa-utils.c: Likewise.
1624         * ira-build.c: Likewise.
1625         * ira-color.c: Likewise.
1626         * ira-conflicts.c: Likewise.
1627         * ira-costs.c: Likewise.
1628         * ira-emit.c: Likewise.
1629         * ira-lives.c: Likewise.
1630         * jump.c: Likewise.
1631         * loop-doloop.c: Likewise.
1632         * loop-init.c: Likewise.
1633         * loop-invariant.c: Likewise.
1634         * loop-unroll.c: Likewise.
1635         * lower-subreg.c: Likewise.
1636         * lra-assigns.c: Likewise.
1637         * lra.c: Likewise.
1638         * lra-coalesce.c: Likewise.
1639         * lra-constraints.c: Likewise.
1640         * lra-lives.c: Likewise.
1641         * lto-cgraph.c: Likewise.
1642         * lto-streamer-in.c: Likewise.
1643         * mode-switching.c: Likewise.
1644         * modulo-sched.c: Likewise.
1645         * omp-low.c: Likewise.
1646         * optabs.c: Likewise.
1647         * passes.c: Likewise.
1648         * postreload.c: Likewise.
1649         * postreload-gcse.c: Likewise.
1650         * profile.c: Likewise.
1651         * recog.c: Likewise.
1652         * regstat.c: Likewise.
1653         * reload1.c: Likewise.
1654         * reorg.c: Likewise.
1655         * rtlanal.c: Likewise.
1656         * sched-ebb.c: Likewise.
1657         * sel-sched-ir.c: Likewise.
1658         * sese.c: Likewise.
1659         * shrink-wrap.c: Likewise.
1660         * simplify-rtx.c: Likewise.
1661         * stmt.c: Likewise.
1662         * store-motion.c: Likewise.
1663         * tracer.c: Likewise.
1664         * trans-mem.c: Likewise.
1665         * tree-call-cdce.c: Likewise.
1666         * tree-cfg.c: Likewise.
1667         * tree-cfgcleanup.c: Likewise.
1668         * tree-chkp.c: Likewise.
1669         * tree-complex.c: Likewise.
1670         * tree-eh.c: Likewise.
1671         * tree-if-conv.c: Likewise.
1672         * tree-loop-distribution.c: Likewise.
1673         * tree-outof-ssa.c: Likewise.
1674         * tree-parloops.c: Likewise.
1675         * tree-predcom.c: Likewise.
1676         * tree-pretty-print.c: Likewise.
1677         * tree-profile.c: Likewise.
1678         * tree-sra.c: Likewise.
1679         * tree-ssa.c: Likewise.
1680         * tree-ssa-coalesce.c: Likewise.
1681         * tree-ssa-dce.c: Likewise.
1682         * tree-ssa-dom.c: Likewise.
1683         * tree-ssa-forwprop.c: Likewise.
1684         * tree-ssa-ifcombine.c: Likewise.
1685         * tree-ssa-loop-ch.c: Likewise.
1686         * tree-ssa-loop-im.c: Likewise.
1687         * tree-ssa-loop-ivcanon.c: Likewise.
1688         * tree-ssa-loop-ivopts.c: Likewise.
1689         * tree-ssa-loop-manip.c: Likewise.
1690         * tree-ssa-loop-prefetch.c: Likewise.
1691         * tree-ssa-loop-unswitch.c: Likewise.
1692         * tree-ssa-math-opts.c: Likewise.
1693         * tree-ssa-phiopt.c: Likewise.
1694         * tree-ssa-pre.c: Likewise.
1695         * tree-ssa-reassoc.c: Likewise.
1696         * tree-ssa-sink.c: Likewise.
1697         * tree-ssa-tail-merge.c: Likewise.
1698         * tree-ssa-threadedge.c: Likewise.
1699         * tree-ssa-threadupdate.c: Likewise.
1700         * tree-switch-conversion.c: Likewise.
1701         * tree-tailcall.c: Likewise.
1702         * tree-vect-data-refs.c: Likewise.
1703         * tree-vect-loop.c: Likewise.
1704         * tree-vect-loop-manip.c: Likewise.
1705         * tree-vectorizer.c: Likewise.
1706         * tree-vrp.c: Likewise.
1707         * ubsan.c: Likewise.
1708         * value-prof.c: Likewise.
1709         * varasm.c: Likewise.
1710         * var-tracking.c: Likewise.
1711         * config/aarch64/aarch64-builtins.c: Likewise.
1712         * config/aarch64/aarch64.c: Likewise.
1713         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1714         * config/alpha/alpha.c: Likewise.
1715         * config/arc/arc.c: Likewise.
1716         * config/arm/arm.c: Likewise.
1717         * config/avr/avr.c: Likewise.
1718         * config/bfin/bfin.c: Likewise.
1719         * config/c6x/c6x.c: Likewise.
1720         * config/cr16/cr16.c: Likewise.
1721         * config/cris/cris.c: Likewise.
1722         * config/darwin.c: Likewise.
1723         * config/darwin-c.c: Likewise.
1724         * config/epiphany/epiphany.c: Likewise.
1725         * config/epiphany/mode-switch-use.c: Likewise.
1726         * config/epiphany/resolve-sw-modes.c: Likewise.
1727         * config/fr30/fr30.c: Likewise.
1728         * config/frv/frv.c: Likewise.
1729         * config/ft32/ft32.c: Likewise.
1730         * config/h8300/h8300.c: Likewise.
1731         * config/i386/i386.c: Likewise.
1732         * config/i386/winnt.c: Likewise.
1733         * config/ia64/ia64.c: Likewise.
1734         * config/iq2000/iq2000.c: Likewise.
1735         * config/lm32/lm32.c: Likewise.
1736         * config/m32c/m32c.c: Likewise.
1737         * config/m32r/m32r.c: Likewise.
1738         * config/m68k/m68k.c: Likewise.
1739         * config/mcore/mcore.c: Likewise.
1740         * config/mep/mep.c: Likewise.
1741         * config/microblaze/microblaze.c: Likewise.
1742         * config/mips/mips.c: Likewise.
1743         * config/mmix/mmix.c: Likewise.
1744         * config/mn10300/mn10300.c: Likewise.
1745         * config/moxie/moxie.c: Likewise.
1746         * config/msp430/msp430.c: Likewise.
1747         * config/nds32/nds32.c: Likewise.
1748         * config/nds32/nds32-cost.c: Likewise.
1749         * config/nds32/nds32-fp-as-gp.c: Likewise.
1750         * config/nds32/nds32-intrinsic.c: Likewise.
1751         * config/nds32/nds32-isr.c: Likewise.
1752         * config/nds32/nds32-md-auxiliary.c: Likewise.
1753         * config/nds32/nds32-memory-manipulation.c: Likewise.
1754         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1755         * config/nds32/nds32-predicates.c: Likewise.
1756         * config/nios2/nios2.c: Likewise.
1757         * config/nvptx/nvptx.c: Likewise.
1758         * config/pa/pa.c: Likewise.
1759         * config/pdp11/pdp11.c: Likewise.
1760         * config/rl78/rl78.c: Likewise.
1761         * config/rs6000/rs6000.c: Likewise.
1762         * config/rx/rx.c: Likewise.
1763         * config/s390/s390.c: Likewise.
1764         * config/sh/sh.c: Likewise.
1765         * config/sh/sh-mem.cc: Likewise.
1766         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1767         * config/sh/sh_treg_combine.cc: Likewise.
1768         * config/sparc/sparc.c: Likewise.
1769         * config/spu/spu.c: Likewise.
1770         * config/stormy16/stormy16.c: Likewise.
1771         * config/tilegx/tilegx.c: Likewise.
1772         * config/tilepro/tilepro.c: Likewise.
1773         * config/v850/v850.c: Likewise.
1774         * config/vax/vax.c: Likewise.
1775         * config/visium/visium.c: Likewise.
1776         * config/xtensa/xtensa.c: Likewise.
1777
1778 2015-07-10  Richard Biener  <rguenther@suse.de>
1779
1780         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
1781         (decision_tree::gen_gimple): Likewise.
1782         (decision_tree::gen_generic): Likewise.
1783
1784 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1785
1786         PR target/66813
1787         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
1788         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
1789
1790 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR middle-end/66820
1793         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
1794         or ORT_TASK contexts.
1795         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
1796         is non-zero.
1797
1798 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1799
1800         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
1801         above function.
1802
1803 2015-07-10  Tom de Vries  <tom@codesourcery.com>
1804
1805         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
1806         insert nit + 1 bound.
1807
1808 2015-07-10  Richard Biener  <rguenther@suse.de>
1809
1810         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
1811         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
1812         (if_convertible_loop_p_1): For this always compute bb predicates.
1813         (if_convertible_loop_p): And free them.
1814
1815 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1816
1817         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
1818         in dump message.
1819
1820 2015-07-10  Richard Biener  <rguenther@suse.de>
1821
1822         PR tree-optimization/66823
1823         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
1824         inverted predicate.
1825
1826 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
1827
1828         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
1829         to handle mips[32|64]r3 and mips[32|64]r5.
1830
1831 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
1832
1833         PR middle-end/66633
1834         * tree-nested.c (get_static_chain): Or in a flag into
1835         info->static_chain_added.
1836         (get_frame_field, get_nonlocal_debug_decl): Likewise.
1837         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
1838         2015-07-01 changes.
1839         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
1840         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
1841         add it to clauses.
1842
1843         PR tree-optimization/66718
1844         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
1845         field.
1846         (vect_simd_lane_linear): New function.
1847         (vectorizable_simd_clone_call): Support using linear arguments for
1848         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
1849
1850 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1851
1852         PR target/66821
1853         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
1854
1855 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1856
1857         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
1858         Use machine mode, not enum machine_mode in the prototype.
1859
1860         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
1861         classify 128-bit floating point support.
1862         (FLOAT128_IBM_P): Likewise.
1863         (FLOAT128_VECTOR_P): Likewise.
1864         (FLOAT128_2REG_P): Likewise.
1865         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
1866         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
1867         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1868         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
1869
1870         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
1871         tests against TFmode/TDmode, since those modes do not use VSX
1872         addresses.
1873         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
1874         support.
1875         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
1876         tests against TFmode, etc.
1877         (invalid_e500_subreg): Add tests against IFmode/KFmode.
1878         (reg_offset_addressing_ok_p): Likewise.
1879         (rs6000_legitimate_offset_address_p): Likewise.
1880         (rs6000_legitimize_address): Likewise.
1881         (rs6000_legitimize_reload_address): Likewise.
1882         (rs6000_legitimate_address_p): Clean up tests against TFmode and
1883         TDmode to use the new helper macros, which will include IFmode and
1884         KFmode.
1885         (rs6000_emit_move): Likewise.
1886         (rs6000_darwin64_record_arg_recurse): Likewise.
1887         (print_operand): Likewise.
1888         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
1889         that uses a single vector register as a vector and not as a
1890         floating point register in terms of the calling sequence.
1891         (rs6000_discover_homogeneous_aggregate): Likewise.
1892         (rs6000_return_in_memory): Likewise.
1893         (init_cumulative_args): Likewise.
1894         (rs6000_function_arg_boundary): Likewise.
1895         (rs6000_function_arg_advance_1): Likewise.
1896         (rs6000_function_arg): Likewise.
1897         (rs6000_pass_by_reference): Likewise.
1898         (rs6000_gimplify_va_arg): Likewise.
1899         (rs6000_secondary_reload_memory): Use machine_mode not enum
1900         machine mode.
1901         (rs6000_split_multireg_move): Use new helper macros.
1902         (spe_func_has_64bit_regs_p): Likewise.
1903         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
1904         (output_toc): Use new helper macros.
1905         (rs6000_register_move_cost): Likewise.
1906         (rs6000_function_value): Add IEEE 128-bit floating point calling
1907         sequence support.
1908         (rs6000_libcall_value): Likewise.
1909         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
1910         floating point support.
1911         (rs6000_vector_mode_supported_p): Likewise.
1912
1913 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
1914
1915         PR rtl-optimization/66782
1916         * lra-int.h (struct lra_insn_recog_data): Add comment about
1917         clobbered hard regs for arg_hard_regs.
1918         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
1919         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
1920         Add condition for processing used hard regs.
1921         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
1922         Process clobbered hard regs.
1923
1924 2015-07-09  Michael Matz  <matz@suse.de>
1925
1926         * genmatch.c (fprintf_indent): New function.
1927         (operand::gen_transform): Add indent parameter.
1928         (expr::gen_transform, c_expr::gen_transform,
1929         capture::gen_transform): Ditto and use fprintf_indent.
1930         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
1931         (dt_operand::gen, dt_operand::gen_predicate,
1932         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
1933         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
1934         (decision_tree::gen_gimple): Adjust calls and indent generated
1935         code.
1936         (decision_tree::gen_generic): Ditto.
1937         (write_predicate): Ditto.
1938
1939 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1940
1941         PR target/66814
1942         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
1943         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
1944         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
1945         {GENERAL,SSE,MMX}_REG_P where appropriate.
1946
1947 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1948
1949         * lto-streamer.h: Don't include target.h and alloc-pool.h.
1950         * builtins.c: Adjust includes.
1951         * gimple.c: Likewise.
1952         * ipa-icf.c: Likewise.
1953         * lto-opts.c: Likewise.
1954         * ipa-reference.c: Likewise.
1955         * lto-section-out.c: Likewise.
1956         * lto-streamer-in.c: Likewise.
1957         * lto-streamer-out.c: Likewise.
1958         * opts-global.c: Likewise.
1959         * symtab.c: Likewise.
1960         * tree-chkp.c: Likewise.
1961         * tree-ssa-live.c: Likewise.
1962         * tree-streamer-in.c: Likewise.
1963         * tree-streamer-out.c: Likewise.
1964         * config/darwin.c: Likewise.
1965         * config/i386/winnt.c: Likewise.
1966
1967 2015-07-09  Richard Biener  <rguenther@suse.de>
1968
1969         * genmatch.c (struct expr): Add force_single_use flag.
1970         (expr::expr): Add copy constructor.
1971         (capture_info::walk_match): Gather force_single_use captures.
1972         (expr::gen_transform): Use possibly NULLified sequence.
1973         (dt_simplify::gen): Apply single-use restrictions by NULLifying
1974         seq if any constrained expr is not single-use.
1975         (parser::parse_expr): Refactor to allow multiple flags.  Handle
1976         's' flag to force an expression have a single-use if the pattern
1977         simplifies to more than one statement.
1978         * match.pd: Convert most single_use conditionals to :s flags.
1979
1980 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1981
1982         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
1983         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1984         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1985
1986 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1987
1988         * flags.h: Don't include flag-types.h or options.h.
1989         * opts-common.c: Adjust includes.
1990         * opts-global.c: Likewise.
1991         * common/config/epiphany/epiphany-common.c: Likewise.
1992
1993 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1994
1995         PR target/66818
1996         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
1997         for IA MCU.
1998
1999 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2000
2001         PR target/66817
2002         * config/i386/i386.c (ix86_return_in_memory): Return true
2003         if int_size_in_bytes returns negative for IA MCU.
2004
2005 2015-07-09  Marek Polacek  <polacek@redhat.com>
2006
2007         PR tree-optimization/66718
2008         * Makefile.in (OBJS): Add gimple-laddress.o.
2009         * passes.def: Schedule pass_laddress.
2010         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
2011         * tree-pass.h (make_pass_laddress): Declare.
2012         * gimple-laddress.c: New file.
2013
2014 2015-07-09  Richard Biener  <rguenther@suse.de>
2015
2016         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
2017
2018 2015-07-09  Richard Biener  <rguenther@suse.de>
2019
2020         PR tree-optimization/66807
2021         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
2022
2023 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
2024
2025         * function.c (stack_protect_epilogue): Use if rather than switch for
2026         check targetm.have_stack_protect_test.
2027
2028 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2029
2030         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
2031         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
2032         * config/arc/arc.h: Likewise.
2033         * config/arm/arm.h: Likewise.
2034         * config/bfin/bfin.h: Likewise.
2035         * config/epiphany/epiphany.h: Likewise.
2036         * config/frv/frv.h: Likewise.
2037         * config/ia64/ia64.h: Likewise.
2038         * config/iq2000/iq2000.h: Likewise.
2039         * config/lm32/lm32.h: Likewise.
2040         * config/m32r/m32r.h: Likewise.
2041         * config/mcore/mcore.h: Likewise.
2042         * config/mep/mep.h: Likewise.
2043         * config/microblaze/microblaze.h: Likewise.
2044         * config/mips/mips.h: Likewise.
2045         * config/mmix/mmix.h: Likewise.
2046         * config/mn10300/mn10300.h: Likewise.
2047         * config/nds32/nds32.h: Likewise.
2048         * config/nios2/nios2.h: Likewise.
2049         * config/pa/pa.h: Likewise.
2050         * config/rl78/rl78.h: Likewise.
2051         * config/sh/sh.h: Likewise.
2052         * config/sparc/sparc.h: Likewise.
2053         * config/stormy16/stormy16.h: Likewise.
2054         * config/tilegx/tilegx.h: Likewise.
2055         * config/tilepro/tilepro.h: Likewise.
2056         * config/v850/v850.h: Likewise.
2057         * config/xtensa/xtensa.h: Likewise.
2058         * doc/tm.texi: Regenerate.
2059         * doc/tm.texi.in: Adjust.
2060         * combine.c (simplify_set): Likewise.
2061         (simplify_comparison): Likewise.
2062         * expr.c (store_constructor): Likewise.
2063         * internal-fn.c (expand_arith_overflow): Likewise.
2064         * reload.c (push_reload): Likewise.
2065         (find_reloads): Likewise.
2066         (find_reloads_subreg_address): Likewise.
2067         * reload1.c (eliminate_regs_1): Likewise.
2068         * rtlanal.c (nonzero_bits1): Likewise.
2069         (num_sign_bit_copies1): Likewise.
2070         * simplify-rtx.c (simplify_truncation): Likewise.
2071
2072 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2073
2074         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
2075         of AUTO_INC_DEC with the preprocessor.
2076         * combine.c (combine_instructions): Likewise.
2077         (can_combine_p): Likewise.
2078         (try_combine): Likewise.
2079         * emit-rtl.c (try_split): Likewise.
2080         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2081         * lower-subreg.c (resolve_simple_move): Likewise.
2082         * lra.c (update_inc_notes): Likewise.
2083         * recog.c (asm_operand_ok): Likewise.
2084         (constrain_operands): Likewise.
2085         * regrename.c (scan_rtx_address): Likewise.
2086         * reload.c (update_auto_inc_notes): Likewise.
2087         (reg_inc_found_and_valid_p): Likewise.
2088         * reload1.c (reload): Likewise.
2089         (emit_input_reload_insns): Likewise.
2090         (delete_output_reload): Likewise.
2091         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2092         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2093
2094 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2095
2096         * rtl.h: Always define AUTO_INC_DEC.
2097         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
2098         * combine.c (combine_instructions): Likewise.
2099         (can_combine_p): Likewise.
2100         (try_combine): Likewise.
2101         * emit-rtl.c (try_split): Likewise.
2102         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2103         * lower-subreg.c (resolve_simple_move): Likewise.
2104         * lra.c (update_inc_notes): Likewise.
2105         * recog.c (asm_operand_ok): Likewise.
2106         (constrain_operands): Likewise.
2107         * regrename.c (scan_rtx_address): Likewise.
2108         * reload.c (update_auto_inc_notes): Likewise.
2109         (find_equiv_reg): Likewise.
2110         * reload1.c (reload): Likewise.
2111         (reload_as_needed): Likewise.
2112         (choose_reload_regs): Likewise.
2113         (emit_input_reload_insns): Likewise.
2114         (delete_output_reload): Likewise.
2115         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2116         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2117
2118 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2119
2120         * combine.c (can_combine_def_p): Don't check the value of
2121         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2122         (combinable_i3pat): Likewise.
2123         (mark_used_regs_combine): Likewise.
2124         * regrename.c (rename_chains): Likewise.
2125         * reload.c (find_reloads_address): Likewise.
2126         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2127
2128 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2129
2130         * combine.c (update_rsp_from_reg_equal): Don't check if
2131         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2132         (reg_nonzero_bits_for_combine): Likewise.
2133         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2134         1.
2135         * config/frv/frv.h: Likewise.
2136         * config/lm32/lm32.h: Likewise.
2137         * config/mep/mep.h: Likewise.
2138         * config/mips/mips.h: Likewise.
2139         * config/rs6000/rs6000.h: Likewise.
2140         * config/sh/sh.h: Likewise.
2141         * config/tilegx/tilegx.h (enum reg_class): Likewise.
2142         * config/tilepro/tilepro.h: Likewise.
2143         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2144         * doc/tm.texi: Regenerate.
2145         * doc/tm.texi.in: Adjust.
2146         * rtlanal.c (nonzero_bits1): Likewise.
2147
2148 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2149
2150         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2151         with the preprocessor.
2152         (combine_instructions): Likewise.
2153         (try_combine): Likewise.
2154         (subst): Likewise.
2155         (distribute_notes): Likewise.
2156
2157 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2158
2159         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2160         defined.
2161         (simplify_set): Likewise.
2162         * cse.c (cse_insn): Likewise.
2163         * fold-const.c (fold_single_bit_test): Likewise.
2164         (fold_unary_loc): Likewise.
2165         * postreload.c (reload_cse_simplify_set): Likewise.
2166         (reload_cse_simplify_operands): Likewise.
2167
2168 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
2169
2170         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2171         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2172
2173 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2174
2175         PR target/66746
2176         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2177         __iamcu__ is defined.
2178
2179 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2180
2181         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2182
2183 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2184
2185         PR target/66523
2186         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2187         names from preservation.
2188
2189 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2190
2191         PR target/66806
2192         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2193         change for IAMCU.
2194         (function_arg_advance_32): Don't pass vectors in registers for
2195         IAMCU.
2196         (function_arg_32): Likewise.
2197         (ix86_return_in_memory): Don't return vectors in registers for
2198         IAMCU.
2199
2200 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2201
2202         PR middle-end/66334
2203         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2204         hard regno live at the start of BB with incoming abnormal edges.
2205         * lra-lives.c (process_bb_lives): Ditto.
2206
2207 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2208
2209         PR libgomp/65099
2210         * config/nvptx/mkoffload.c (main): Create an offload image only in
2211         64-bit configurations.
2212
2213 2015-07-08  Martin Liska  <mliska@suse.cz>
2214
2215         PR bootstrap/66744
2216         * tree-sra.c (create_access_1): Call ctor without brackets.
2217         (create_artificial_child_access): Likewise.
2218
2219 2015-07-08  Richard Biener  <rguenther@suse.de>
2220
2221         PR tree-optimization/66793
2222         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2223         Properly split the block after stmts ending it.
2224
2225 2015-07-08  Richard Biener  <rguenther@suse.de>
2226
2227         PR tree-optimization/66794
2228         * passes.c (execute_function_todo): Assert that post-dominators
2229         are not computed.
2230         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2231         Free post-dominators.
2232
2233 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2234
2235         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2236         with early exit.
2237
2238 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2241         more than or equal 8 and less than 32 when optimizing for size.
2242
2243 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2244
2245         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2246         COSTS_N_INSNS (1) and increment it appropriately throughout the
2247         function.
2248
2249 2015-07-08  Richard Biener  <rguenther@suse.de>
2250
2251         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2252
2253 2015-07-08  Alan Modra  <amodra@gmail.com>
2254
2255         * target.def (rtx_costs): Remove "code" param, add "mode".
2256         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2257         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2258         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2259         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2260         call.  Track mode when given in rtx.
2261         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2262         (default_address_cost): Pass Pmode to rtx_cost.
2263         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2264         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2265         with NULL set.
2266         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2267         (notreg_cost): Add mode param.  Use it.
2268         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2269         mode param and pass to set_src_cost.  Update all calls.
2270         (hash_scan_set): Formatting.
2271         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2272         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2273         * hooks.h: Ditto.
2274         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2275         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2276         emit_store_flag): Update set_src_cost and rtx_cost calls.
2277         * auto-inc-dec.c (attempt_change): Likewise.
2278         * calls.c (precompute_register_parameters): Likewise.
2279         * combine.c (expand_compound_operation, make_extraction,
2280         force_to_mode, distribute_and_simplify_rtx): Likewise.
2281         * dojump.c (prefer_and_bit_test): Likewise.
2282         * dse.c (find_shift_sequence): Likewise.
2283         * expr.c (compress_float_constant): Likewise.
2284         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2285         * ifcvt.c (noce_try_sign_mask): Likewise.
2286         * loop-doloop.c (doloop_optimize): Likewise.
2287         * loop-invariant.c (create_new_invariant): Likewise.
2288         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2289         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2290         lshift_cheap_p): Likewise.
2291         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2292         try_replace_in_use, reload_cse_move2add): Likewise.
2293         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2294         Likewise.
2295         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2296         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2297         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2298         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2299         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2300         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2301         to rtx_cost calls.
2302         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2303         * config/arc/arc.c (arc_rtx_costs): Likewise.
2304         * config/arm/arm.c (arm_rtx_costs): Likewise.
2305         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2306         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2307         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2308         * config/cris/cris.c (cris_rtx_costs): Likewise.
2309         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2310         * config/frv/frv.c (frv_rtx_costs): Likewise.
2311         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2312         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2313         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2314         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2315         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2316         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2317         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2318         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2319         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2320         * config/mep/mep.c (mep_rtx_cost): Likewise.
2321         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2322         * config/mips/mips.c (mips_rtx_costs): Likewise.
2323         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2324         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2325         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2326         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2327         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2328         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2329         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2330         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2331         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2332         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2333         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2334         * config/s390/s390.c (s390_rtx_costs): Likewise.
2335         * config/sh/sh.c (sh_rtx_costs): Likewise.
2336         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2337         * config/spu/spu.c (spu_rtx_costs): Likewise.
2338         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2339         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2340         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2341         * config/v850/v850.c (v850_rtx_costs): Likewise.
2342         * config/vax/vax.c (vax_rtx_costs): Likewise.
2343         * config/visium/visium.c (visium_rtx_costs): Likewise.
2344         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2345         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2346         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2347         mode to rtx_cost calls.
2348         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2349         calls.
2350         (aarch64_rtx_costs_wrapper): Update.
2351         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2352         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2353         rtx_cost calls.
2354         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2355         and rtx_cost calls.
2356         (avr_operand_rtx_cost): Similarly.
2357         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2358         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2359         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2360         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2361         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2362         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2363         rtx_cost.
2364         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2365         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2366         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2367         * doc/tm.texi: Regenerate.
2368
2369 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2370
2371         * tree-core.h: Include symtab.h.
2372         * rtl.h: Include hard-reg-set.h but not flags.h.
2373         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2374         hard-reg-set.h is always included.
2375         * regs.h: Don't include hard-reg-set.h or rtl.h.
2376         * cfg.h: Include dominance.h.
2377         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2378         * backend.h: New.  Aggregate commonly used backend header files.
2379         * gimple-ssa.h: Don't include tree-hasher.h.
2380         * ssa.h: New.  Aggregate commonly used SSA header files.
2381         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2382         * sel-sched-ir.h: Flatten includes.
2383         * lra-int.h: Flatten completely.
2384         * sel-sched-dump.h: Flatten includes.
2385         * ira-int.h: Flatten includes.
2386         * gimple-streamer.h: Remove all includes.
2387         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2388         * resource.h: Flatten hard-reg-set.h and df.h.
2389         * sched-int.h: Flatten insn-arrt.h and df.h.
2390         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2391         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2392         * genattrtab.c (write_header): Adjust generated includes.
2393         * genautomata.c (main): Likewise.
2394         * genconditions.c (write-header): Likewise.
2395         * genemit.c (main): Likewise.
2396         * gengtype.c (open_base_files): Likewise.
2397         * genopinit.c (main): Likewise.
2398         * genoutput.c (output_prologue): Likewise.
2399         * genpeep.c (main): Likewise.
2400         * genpreds.c (write_insn_preds_c): Likewise.
2401         * genrecog.c (write_header): Likewise.
2402         * alias.c: Adjust includes.
2403         * asan.c: Likewise.
2404         * attribs.c: Likewise.
2405         * auto-inc-dec.c: Likewise.
2406         * auto-profile.c: Likewise.
2407         * bb-reorder.c: Likewise.
2408         * bt-load.c: Likewise.
2409         * builtins.c: Likewise.
2410         * caller-save.c: Likewise.
2411         * calls.c: Likewise.
2412         * ccmp.c: Likewise.
2413         * cfg.c: Likewise.
2414         * cfganal.c: Likewise.
2415         * cfgbuild.c: Likewise.
2416         * cfgcleanup.c: Likewise.
2417         * cfgexpand.c: Likewise.
2418         * cfghooks.c: Likewise.
2419         * cfgloop.c: Likewise.
2420         * cfgloopanal.c: Likewise.
2421         * cfgloopmanip.c: Likewise.
2422         * cfgrtl.c: Likewise.
2423         * cgraph.c: Likewise.
2424         * cgraphbuild.c: Likewise.
2425         * cgraphclones.c: Likewise.
2426         * cgraphunit.c: Likewise.
2427         * cilk-common.c: Likewise.
2428         * combine-stack-adj.c: Likewise.
2429         * combine.c: Likewise.
2430         * compare-elim.c: Likewise.
2431         * convert.c: Likewise.
2432         * coverage.c: Likewise.
2433         * cppbuiltin.c: Likewise.
2434         * cprop.c: Likewise.
2435         * cse.c: Likewise.
2436         * cselib.c: Likewise.
2437         * data-streamer-in.c: Likewise.
2438         * data-streamer-out.c: Likewise.
2439         * data-streamer.c: Likewise.
2440         * dbxout.c: Likewise.
2441         * dce.c: Likewise.
2442         * ddg.c: Likewise.
2443         * debug.c: Likewise.
2444         * df-core.c: Likewise.
2445         * df-problems.c: Likewise.
2446         * df-scan.c: Likewise.
2447         * dfp.c: Likewise.
2448         * dojump.c: Likewise.
2449         * dominance.c: Likewise.
2450         * domwalk.c: Likewise.
2451         * double-int.c: Likewise.
2452         * dse.c: Likewise.
2453         * dumpfile.c: Likewise.
2454         * dwarf2asm.c: Likewise.
2455         * dwarf2cfi.c: Likewise.
2456         * dwarf2out.c: Likewise.
2457         * emit-rtl.c: Likewise.
2458         * et-forest.c: Likewise.
2459         * except.c: Likewise.
2460         * explow.c: Likewise.
2461         * expmed.c: Likewise.
2462         * expr.c: Likewise.
2463         * final.c: Likewise.
2464         * fixed-value.c: Likewise.
2465         * fold-const.c: Likewise.
2466         * function.c: Likewise.
2467         * fwprop.c: Likewise.
2468         * gcc-plugin.h: Likewise.
2469         * gcse-common.c: Likewise.
2470         * gcse.c: Likewise.
2471         * generic-match-head.c: Likewise.
2472         * ggc-page.c: Likewise.
2473         * gimple-builder.c: Likewise.
2474         * gimple-expr.c: Likewise.
2475         * gimple-fold.c: Likewise.
2476         * gimple-iterator.c: Likewise.
2477         * gimple-low.c: Likewise.
2478         * gimple-match-head.c: Likewise.
2479         * gimple-pretty-print.c: Likewise.
2480         * gimple-ssa-isolate-paths.c: Likewise.
2481         * gimple-ssa-strength-reduction.c: Likewise.
2482         * gimple-streamer-in.c: Likewise.
2483         * gimple-streamer-out.c: Likewise.
2484         * gimple-walk.c: Likewise.
2485         * gimple.c: Likewise.
2486         * gimplify-me.c: Likewise.
2487         * gimplify.c: Likewise.
2488         * godump.c: Likewise.
2489         * graph.c: Likewise.
2490         * graphite-blocking.c: Likewise.
2491         * graphite-dependences.c: Likewise.
2492         * graphite-interchange.c: Likewise.
2493         * graphite-isl-ast-to-gimple.c: Likewise.
2494         * graphite-optimize-isl.c: Likewise.
2495         * graphite-poly.c: Likewise.
2496         * graphite-scop-detection.c: Likewise.
2497         * graphite-sese-to-poly.c: Likewise.
2498         * graphite.c: Likewise.
2499         * haifa-sched.c: Likewise.
2500         * hw-doloop.c: Likewise.
2501         * ifcvt.c: Likewise.
2502         * init-regs.c: Likewise.
2503         * internal-fn.c: Likewise.
2504         * ipa-chkp.c: Likewise.
2505         * ipa-comdats.c: Likewise.
2506         * ipa-cp.c: Likewise.
2507         * ipa-devirt.c: Likewise.
2508         * ipa-icf-gimple.c: Likewise.
2509         * ipa-icf.c: Likewise.
2510         * ipa-inline-analysis.c: Likewise.
2511         * ipa-inline-transform.c: Likewise.
2512         * ipa-inline.c: Likewise.
2513         * ipa-polymorphic-call.c: Likewise.
2514         * ipa-profile.c: Likewise.
2515         * ipa-prop.c: Likewise.
2516         * ipa-pure-const.c: Likewise.
2517         * ipa-ref.c: Likewise.
2518         * ipa-reference.c: Likewise.
2519         * ipa-split.c: Likewise.
2520         * ipa-utils.c: Likewise.
2521         * ipa-visibility.c: Likewise.
2522         * ipa.c: Likewise.
2523         * ira-build.c: Likewise.
2524         * ira-color.c: Likewise.
2525         * ira-conflicts.c: Likewise.
2526         * ira-costs.c: Likewise.
2527         * ira-emit.c: Likewise.
2528         * ira-lives.c: Likewise.
2529         * ira.c: Likewise.
2530         * jump.c: Likewise.
2531         * langhooks.c: Likewise.
2532         * lcm.c: Likewise.
2533         * loop-doloop.c: Likewise.
2534         * loop-init.c: Likewise.
2535         * loop-invariant.c: Likewise.
2536         * loop-iv.c: Likewise.
2537         * loop-unroll.c: Likewise.
2538         * lower-subreg.c: Likewise.
2539         * lra-assigns.c: Likewise.
2540         * lra-coalesce.c: Likewise.
2541         * lra-constraints.c: Likewise.
2542         * lra-eliminations.c: Likewise.
2543         * lra-lives.c: Likewise.
2544         * lra-remat.c: Likewise.
2545         * lra-spills.c: Likewise.
2546         * lra.c: Likewise.
2547         * lto-cgraph.c: Likewise.
2548         * lto-compress.c: Likewise.
2549         * lto-opts.c: Likewise.
2550         * lto-section-in.c: Likewise.
2551         * lto-section-out.c: Likewise.
2552         * lto-streamer-in.c: Likewise.
2553         * lto-streamer-out.c: Likewise.
2554         * lto-streamer.c: Likewise.
2555         * mcf.c: Likewise.
2556         * mode-switching.c: Likewise.
2557         * modulo-sched.c: Likewise.
2558         * omega.c: Likewise.
2559         * omp-low.c: Likewise.
2560         * optabs.c: Likewise.
2561         * opts-global.c: Likewise.
2562         * passes.c: Likewise.
2563         * plugin.c: Likewise.
2564         * postreload-gcse.c: Likewise.
2565         * postreload.c: Likewise.
2566         * predict.c: Likewise.
2567         * print-rtl.c: Likewise.
2568         * print-tree.c: Likewise.
2569         * profile.c: Likewise.
2570         * real.c: Likewise.
2571         * realmpfr.c: Likewise.
2572         * recog.c: Likewise.
2573         * ree.c: Likewise.
2574         * reg-stack.c: Likewise.
2575         * regcprop.c: Likewise.
2576         * reginfo.c: Likewise.
2577         * regrename.c: Likewise.
2578         * regstat.c: Likewise.
2579         * reload.c: Likewise.
2580         * reload1.c: Likewise.
2581         * reorg.c: Likewise.
2582         * resource.c: Likewise.
2583         * rtl-chkp.c: Likewise.
2584         * rtlanal.c: Likewise.
2585         * rtlhooks.c: Likewise.
2586         * sanopt.c: Likewise.
2587         * sched-deps.c: Likewise.
2588         * sched-ebb.c: Likewise.
2589         * sched-rgn.c: Likewise.
2590         * sched-vis.c: Likewise.
2591         * sdbout.c: Likewise.
2592         * sel-sched-dump.c: Likewise.
2593         * sel-sched-ir.c: Likewise.
2594         * sel-sched.c: Likewise.
2595         * sese.c: Likewise.
2596         * shrink-wrap.c: Likewise.
2597         * simplify-rtx.c: Likewise.
2598         * stack-ptr-mod.c: Likewise.
2599         * stmt.c: Likewise.
2600         * stor-layout.c: Likewise.
2601         * store-motion.c: Likewise.
2602         * stringpool.c: Likewise.
2603         * symtab.c: Likewise.
2604         * target-globals.c: Likewise.
2605         * targhooks.c: Likewise.
2606         * toplev.c: Likewise.
2607         * tracer.c: Likewise.
2608         * trans-mem.c: Likewise.
2609         * tree-affine.c: Likewise.
2610         * tree-browser.c: Likewise.
2611         * tree-call-cdce.c: Likewise.
2612         * tree-cfg.c: Likewise.
2613         * tree-cfgcleanup.c: Likewise.
2614         * tree-chkp-opt.c: Likewise.
2615         * tree-chkp.c: Likewise.
2616         * tree-chrec.c: Likewise.
2617         * tree-complex.c: Likewise.
2618         * tree-data-ref.c: Likewise.
2619         * tree-dfa.c: Likewise.
2620         * tree-diagnostic.c: Likewise.
2621         * tree-dump.c: Likewise.
2622         * tree-eh.c: Likewise.
2623         * tree-emutls.c: Likewise.
2624         * tree-if-conv.c: Likewise.
2625         * tree-inline.c: Likewise.
2626         * tree-into-ssa.c: Likewise.
2627         * tree-iterator.c: Likewise.
2628         * tree-loop-distribution.c: Likewise.
2629         * tree-nested.c: Likewise.
2630         * tree-nrv.c: Likewise.
2631         * tree-object-size.c: Likewise.
2632         * tree-outof-ssa.c: Likewise.
2633         * tree-parloops.c: Likewise.
2634         * tree-phinodes.c: Likewise.
2635         * tree-predcom.c: Likewise.
2636         * tree-pretty-print.c: Likewise.
2637         * tree-profile.c: Likewise.
2638         * tree-scalar-evolution.c: Likewise.
2639         * tree-sra.c: Likewise.
2640         * tree-ssa-address.c: Likewise.
2641         * tree-ssa-alias.c: Likewise.
2642         * tree-ssa-ccp.c: Likewise.
2643         * tree-ssa-coalesce.c: Likewise.
2644         * tree-ssa-copy.c: Likewise.
2645         * tree-ssa-copyrename.c: Likewise.
2646         * tree-ssa-dce.c: Likewise.
2647         * tree-ssa-dom.c: Likewise.
2648         * tree-ssa-dse.c: Likewise.
2649         * tree-ssa-forwprop.c: Likewise.
2650         * tree-ssa-ifcombine.c: Likewise.
2651         * tree-ssa-live.c: Likewise.
2652         * tree-ssa-loop-ch.c: Likewise.
2653         * tree-ssa-loop-im.c: Likewise.
2654         * tree-ssa-loop-ivcanon.c: Likewise.
2655         * tree-ssa-loop-ivopts.c: Likewise.
2656         * tree-ssa-loop-manip.c: Likewise.
2657         * tree-ssa-loop-niter.c: Likewise.
2658         * tree-ssa-loop-prefetch.c: Likewise.
2659         * tree-ssa-loop-unswitch.c: Likewise.
2660         * tree-ssa-loop.c: Likewise.
2661         * tree-ssa-math-opts.c: Likewise.
2662         * tree-ssa-operands.c: Likewise.
2663         * tree-ssa-phiopt.c: Likewise.
2664         * tree-ssa-phiprop.c: Likewise.
2665         * tree-ssa-pre.c: Likewise.
2666         * tree-ssa-propagate.c: Likewise.
2667         * tree-ssa-reassoc.c: Likewise.
2668         * tree-ssa-sccvn.c: Likewise.
2669         * tree-ssa-scopedtables.c: Likewise.
2670         * tree-ssa-sink.c: Likewise.
2671         * tree-ssa-strlen.c: Likewise.
2672         * tree-ssa-structalias.c: Likewise.
2673         * tree-ssa-tail-merge.c: Likewise.
2674         * tree-ssa-ter.c: Likewise.
2675         * tree-ssa-threadedge.c: Likewise.
2676         * tree-ssa-threadupdate.c: Likewise.
2677         * tree-ssa-uncprop.c: Likewise.
2678         * tree-ssa-uninit.c: Likewise.
2679         * tree-ssa.c: Likewise.
2680         * tree-ssanames.c: Likewise.
2681         * tree-stdarg.c: Likewise.
2682         * tree-streamer-in.c: Likewise.
2683         * tree-streamer-out.c: Likewise.
2684         * tree-streamer.c: Likewise.
2685         * tree-switch-conversion.c: Likewise.
2686         * tree-tailcall.c: Likewise.
2687         * tree-vect-data-refs.c: Likewise.
2688         * tree-vect-generic.c: Likewise.
2689         * tree-vect-loop-manip.c: Likewise.
2690         * tree-vect-loop.c: Likewise.
2691         * tree-vect-patterns.c: Likewise.
2692         * tree-vect-slp.c: Likewise.
2693         * tree-vect-stmts.c: Likewise.
2694         * tree-vectorizer.c: Likewise.
2695         * tree-vrp.c: Likewise.
2696         * tree.c: Likewise.
2697         * tsan.c: Likewise.
2698         * ubsan.c: Likewise.
2699         * valtrack.c: Likewise.
2700         * value-prof.c: Likewise.
2701         * var-tracking.c: Likewise.
2702         * varasm.c: Likewise.
2703         * varpool.c: Likewise.
2704         * vmsdbgout.c: Likewise.
2705         * vtable-verify.c: Likewise.
2706         * web.c: Likewise.
2707         * wide-int.cc: Likewise.
2708         * xcoffout.c: Likewise.
2709         * config/aarch64/aarch64-builtins.c: Likewise.
2710         * config/aarch64/aarch64.c: Likewise.
2711         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2712         * config/alpha/alpha.c: Likewise.
2713         * config/arc/arc.c: Likewise.
2714         * config/arm/aarch-common.c: Likewise.
2715         * config/arm/arm-builtins.c: Likewise.
2716         * config/arm/arm-c.c: Likewise.
2717         * config/arm/arm.c: Likewise.
2718         * config/avr/avr-c.c: Likewise.
2719         * config/avr/avr-log.c: Likewise.
2720         * config/avr/avr.c: Likewise.
2721         * config/bfin/bfin.c: Likewise.
2722         * config/c6x/c6x.c: Likewise.
2723         * config/cr16/cr16.c: Likewise.
2724         * config/cris/cris.c: Likewise.
2725         * config/darwin-c.c: Likewise.
2726         * config/darwin.c: Likewise.
2727         * config/epiphany/epiphany.c: Likewise.
2728         * config/epiphany/mode-switch-use.c: Likewise.
2729         * config/epiphany/resolve-sw-modes.c: Likewise.
2730         * config/fr30/fr30.c: Likewise.
2731         * config/frv/frv.c: Likewise.
2732         * config/ft32/ft32.c: Likewise.
2733         * config/h8300/h8300.c: Likewise.
2734         * config/i386/i386-c.c: Likewise.
2735         * config/i386/i386.c: Likewise.
2736         * config/i386/msformat-c.c: Likewise.
2737         * config/i386/winnt-cxx.c: Likewise.
2738         * config/i386/winnt-stubs.c: Likewise.
2739         * config/i386/winnt.c: Likewise.
2740         * config/ia64/ia64-c.c: Likewise.
2741         * config/ia64/ia64.c: Likewise.
2742         * config/iq2000/iq2000.c: Likewise.
2743         * config/lm32/lm32.c: Likewise.
2744         * config/m32c/m32c-pragma.c: Likewise.
2745         * config/m32c/m32c.c: Likewise.
2746         * config/m32r/m32r.c: Likewise.
2747         * config/m68k/m68k.c: Likewise.
2748         * config/mcore/mcore.c: Likewise.
2749         * config/mep/mep-pragma.c: Likewise.
2750         * config/mep/mep.c: Likewise.
2751         * config/microblaze/microblaze-c.c: Likewise.
2752         * config/microblaze/microblaze.c: Likewise.
2753         * config/mips/mips.c: Likewise.
2754         * config/mmix/mmix.c: Likewise.
2755         * config/mn10300/mn10300.c: Likewise.
2756         * config/moxie/moxie.c: Likewise.
2757         * config/msp430/msp430-c.c: Likewise.
2758         * config/msp430/msp430.c: Likewise.
2759         * config/nds32/nds32-cost.c: Likewise.
2760         * config/nds32/nds32-fp-as-gp.c: Likewise.
2761         * config/nds32/nds32-intrinsic.c: Likewise.
2762         * config/nds32/nds32-isr.c: Likewise.
2763         * config/nds32/nds32-md-auxiliary.c: Likewise.
2764         * config/nds32/nds32-memory-manipulation.c: Likewise.
2765         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2766         * config/nds32/nds32-predicates.c: Likewise.
2767         * config/nds32/nds32.c: Likewise.
2768         * config/nios2/nios2.c: Likewise.
2769         * config/nvptx/nvptx.c: Likewise.
2770         * config/pa/pa.c: Likewise.
2771         * config/pdp11/pdp11.c: Likewise.
2772         * config/rl78/rl78-c.c: Likewise.
2773         * config/rl78/rl78.c: Likewise.
2774         * config/rs6000/rs6000-c.c: Likewise.
2775         * config/rs6000/rs6000.c: Likewise.
2776         * config/rx/rx.c: Likewise.
2777         * config/s390/s390-c.c: Likewise.
2778         * config/s390/s390.c: Likewise.
2779         * config/sh/sh-c.c: Likewise.
2780         * config/sh/sh-mem.cc: Likewise.
2781         * config/sh/sh.c: Likewise.
2782         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2783         * config/sh/sh_treg_combine.cc: Likewise.
2784         * config/sol2-c.c: Likewise.
2785         * config/sol2-cxx.c: Likewise.
2786         * config/sol2-stubs.c: Likewise.
2787         * config/sol2.c: Likewise.
2788         * config/sparc/sparc-c.c: Likewise.
2789         * config/sparc/sparc.c: Likewise.
2790         * config/spu/spu-c.c: Likewise.
2791         * config/spu/spu.c: Likewise.
2792         * config/stormy16/stormy16.c: Likewise.
2793         * config/tilegx/mul-tables.c: Likewise.
2794         * config/tilegx/tilegx-c.c: Likewise.
2795         * config/tilegx/tilegx.c: Likewise.
2796         * config/tilepro/mul-tables.c: Likewise.
2797         * config/tilepro/tilepro-c.c: Likewise.
2798         * config/tilepro/tilepro.c: Likewise.
2799         * config/v850/v850-c.c: Likewise.
2800         * config/v850/v850.c: Likewise.
2801         * config/vax/vax.c: Likewise.
2802         * config/visium/visium.c: Likewise.
2803         * config/vms/vms-c.c: Likewise.
2804         * config/vms/vms.c: Likewise.
2805         * config/vxworks.c: Likewise.
2806         * config/xtensa/xtensa.c: Likewise.
2807
2808 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
2809
2810         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
2811         Remove operand constraints.  Change operand 2 predicate to
2812         nonmemory operand.  Limit const_int values to mode bitsize.  Only
2813         allow const_int values less than 32 when optimizing for size.
2814         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
2815         Remove operand constraints.
2816         (*bt<mode>): Use SImode for const_int values less than 32.
2817         (regmode): Remove mode attribute.
2818
2819 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
2820
2821         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2822         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
2823           moxie_legitimate_address_p): New functions.
2824           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2825
2826 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2827
2828         PR tree-optimization/66642
2829         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
2830         header comment.  Rename split_edge variable to edge_at_split.  Split
2831         exit edge to create new loop exit bb.  Insert loop exit phis in new
2832         loop exit bb.
2833
2834 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2835
2836         * tree-cfg.c (get_virtual_phi): New function.
2837         * tree-cfg.h (get_virtual_phi): Declare.
2838         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
2839         (rewrite_virtuals_into_loop_closed_ssa): New function.
2840         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
2841         Declare.
2842         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
2843         (transform_to_exit_first_loop_alt): Use
2844         rewrite_virtuals_into_loop_closed_ssa.
2845
2846 2015-07-07  Richard Biener  <rguenther@suse.de>
2847
2848         * fold-const.c (fold_binary_loc): Move
2849         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
2850         * match.pd: ... here.
2851         Add (X * C1) % C2 -> 0 simplification pattern derived from
2852         extract_muldiv_1.
2853
2854 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2855
2856         PR target/66780
2857         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
2858         change for target/65249.
2859
2860 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
2861
2862         * symtab.c (address_matters_1): Fix typo in comment above.
2863         (can_increase_alignment_p): Likewise.
2864
2865 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2866
2867         * function.c (free_after_compilation): Clear PROP_cfg in
2868         f->curr_properties.
2869
2870 2015-07-07  Richard Biener  <rguenther@suse.de>
2871
2872         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
2873         add which use to.
2874         (add_control_edge): Remove excessive vertical space in dumping.
2875         (process_ssa_edge_worklist): Simulate at most one statement and
2876         return whether we did.  Do not simulate PHIs if they are in a
2877         BB not yet simulated.
2878         (ssa_propagate): Adjust to always drain the BB worklist whenever
2879         a BB is available there, likewise the VARYING edges list before
2880         the interesting edge list.
2881
2882 2015-07-07  Christian Bruel  <christian.bruel@st.com>
2883
2884         PR target/52144
2885         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
2886
2887 2015-07-07  Richard Biener  <rguenther@suse.de>
2888
2889         PR middle-end/66739
2890         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
2891         A - B.
2892
2893 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2894
2895         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
2896         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
2897         Copy operand 0 to a temporary if !ext_register_operand.  Remove
2898         ancient extract_bit_field workaround.
2899         (insv<mode>_1): Rename from mov<mode>_insv_1.
2900         (*insvqi): Rename from *movqi_insv_2.
2901         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
2902         for renamed insvsi_1.
2903         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
2904
2905 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2906
2907         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
2908         call to nvptx_reorg_subreg.
2909
2910 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
2911
2912         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
2913         * graphite-dependencies.c, graphite-interchange.c,
2914         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
2915         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
2916         Likewise.
2917
2918 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
2919
2920         * match.pd: Remove element_mode inside HONOR_*.
2921         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
2922         (~X | X -> -1, ~X ^ X -> -1): Merge.
2923         * tree.c (build_each_one_cst): New function.
2924         * tree.h (build_each_one_cst): Likewise.
2925
2926 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2927
2928         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2929         PROCESSOR_IAMCU.
2930
2931 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
2932
2933         * config.gcc <mips*-*-*>: Add fused-madd.opt.
2934         * config/mips/mips.opt (mfused-madd): Remove.
2935         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
2936         * config/mips/mips.h (TARGET_MIPS8000): New.
2937         (ISA_HAS_FP_MADD4_MSUB4): Remove.
2938         (ISA_HAS_FP_MADDF_MSUBF): Remove.
2939         (ISA_HAS_FP_MADD3_MSUB3): Remove.
2940         (ISA_HAS_NMADD4_NMSUB4): Remove.
2941         (ISA_HAS_NMADD3_NMSUB3): Remove.
2942         (ISA_HAS_FUSED_MADD4): New.
2943         (ISA_HAS_UNFUSED_MADD4): New.
2944         (ISA_HAS_FUSED_MADDF): New.
2945         (ISA_HAS_FUSED_MADD3): New.
2946         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
2947         (*fma<mode>4_madd3) New.
2948         (*fma<mode>4_madd4) New.
2949         (*fma<mode>4_maddf) New.
2950         (fms<mode>4) New.
2951         (*fms<mode>4_msub3) New.
2952         (*fms<mode>4_msub4) New.
2953         (fnma<mode>4) New.
2954         (*fnma<mode>4_nmadd3) New.
2955         (*fnma<mode>4_nmadd4) New.
2956         (fnms<mode>4) New.
2957         (*fnms<mode>4_nmsub3) New.
2958         (*fnms<mode>4_nmsub4) New.
2959         (*madd4<mode>) Modify to be unfused only.
2960         (*msub4<mode>) Modify to be unfused only.
2961         (*nmadd4<mode>) Modify to be unfused only.
2962         (*nmsub4<mode>) Modify to be unfused only.
2963         (*madd3<mode>) Remove.
2964         (*msub3<mode>) Remove.
2965         (*nmadd3<mode>) Remove.
2966         (*nmsub3<mode>) Remove.
2967         (*nmadd3<mode>_fastmath) Remove.
2968         (*nmsub3<mode>_fastmath) Remove.
2969         (*nmadd4<mode>_fastmath) Update condition.
2970         (*nmsub4<mode>_fastmath) Update condition.
2971
2972 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2973
2974         PR target/65956
2975         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
2976         alignment attribute, exploring one level down for records and arrays.
2977
2978 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2979
2980         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
2981         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
2982         Copy operand 1 to a temporary if !ext_register_operand.  Remove
2983         ancient extract_bit_field workaround.
2984         (*extv<mode>): Rename from *mov<mode>_extv_1.
2985         (*extvqi): Rename from *movqi_extv_1.
2986         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
2987         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
2988         to a temporary if !ext_register_operand.  Remove ancient
2989         extract_bit_field workaround.
2990         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
2991         (*extzvqi): Rename from *movqi_extzv_2.
2992         (*testqi_ext_3): Remove modes from const_int_operand predicated
2993         operands.  Add "n" constraint.
2994         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
2995         operand.  Add "J" constraint.
2996         (*btsq, *btrq, *btcq peephole2s): Remove mode from
2997         const_0_to_63 predicated operand.
2998         (regmode): New insn attribute.
2999         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
3000         to nonmemory_operand.  Use regmode insn attribute.
3001         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
3002         (*jcc_bt<mode>_mask): Remove mode from operand 3.
3003         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
3004         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
3005         operands.  Use "N" constraint instead of "n".
3006
3007 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
3008
3009         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
3010
3011 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3012
3013         PR target/66749
3014         * config/i386/i386.c (iamcu_cost): New.
3015         (m_IAMCU): Likewise.
3016         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
3017         (processor_target_table): Add an entry for "iamcu".
3018         (processor_alias_table): Likewise.
3019         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
3020         (ix86_adjust_cost): Likewise.
3021         (ia32_multipass_dfa_lookahead): Likewise.
3022         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
3023         * config/i386/x86-tune.def: Updated for m_IAMCU.
3024
3025 2015-07-06  Richard Biener  <rguenther@suse.de>
3026
3027         PR tree-optimization/66772
3028         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
3029         values are available in the PHI node BB when there are
3030         still unexecutable edges.
3031
3032 2015-07-06  Richard Biener  <rguenther@suse.de>
3033
3034         PR tree-optimization/66767
3035         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
3036         Make sure to build the alignment test on a SSA name without
3037         final alignment info valid only if the alignment test
3038         evaluates to true.
3039
3040 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3041
3042         PR target/66620
3043         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
3044         loop start when inserting LSETUP.
3045
3046 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3047
3048         PR target/53383
3049         * config/i386/i386.c (ix86_option_override_internal): Allow
3050         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
3051
3052 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3053
3054         * read-md.c (decimal_string): Rename to ...
3055         (md_decimal_string): ... this.
3056         (handle_enum): Reflect this.
3057
3058 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3059
3060         PR target/66731
3061         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
3062
3063 2015-07-06  Richard Biener  <rguenther@suse.de>
3064
3065         PR middle-end/66759
3066         * match.pd: Add missing constraint of y to REAL_CST in
3067         REAL_CST - x CMP y to y - CST CMP x simplification.
3068
3069 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3070
3071         PR tree-optimization/66757
3072         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
3073
3074 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
3075             Sandra Loosemore <sandra@codesourcery.com>
3076
3077         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
3078         Delete extern declaration.
3079         (gprel_constant_p): Add extern declaration.
3080         * config/nios2/constraints.md ("S"): Use gprel_constant_p
3081         instead of nios2_symbol_ref_in_small_data_p.
3082         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
3083         (nios2_symbol_ref_in_small_data_p): Make static.
3084         (gprel_constant_p): Make non-static.
3085
3086 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
3087
3088         * doc/fragments.texi (Target Fragment): Convert debian.org
3089         link to use https.
3090         * doc/install.texi (Configuration): Ditto.
3091
3092 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
3093
3094         PR tree-optimization/66718
3095         * tree-vect-stmts.c (vectorizable_call): Replace uses of
3096         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
3097
3098         PR tree-optimization/66718
3099         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
3100         vectorizable_load, vectorizable_condition): Move vectype,
3101         nunits, ncopies computation after checking what kind of statement
3102         stmt is.
3103
3104 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3105
3106         * target-insns.def (extv, extzv, insv): New targetm instruction
3107         patterns.
3108         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3109         interface.
3110         * recog.c (simplify_while_replacing): Likewise.
3111
3112 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3113
3114         * target-insns.def (doloop_begin, doloop_end): New targetm
3115         instruction patterns.
3116         * loop-init.c: Include target.h.
3117         (pass_loop2::gate): Use the new targetm patterns instead of
3118         HAVE_*/gen_* interface.
3119         (pass_rtl_doloop::gate): Likewise.
3120         (pass_rtl_doloop::execute): Remove preprocessor condition.
3121         * hw-doloop.c: Build unconditionally.
3122         * loop-doloop.c: Likewise.
3123         (doloop_optimize): Use the new targetm patterns instead of
3124         HAVE_*/gen_* interface.
3125         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3126         * modulo-sched.c (doloop_register_get): Likewise.
3127
3128 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3129
3130         * target-insns.def (clear_cache): New targetm instruction pattern.
3131         * builtins.c (expand_builtin___clear_cache): Use it instead of
3132         HAVE_*/gen_* interface.
3133
3134 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3135
3136         * target-insns.def (allocate_stack, check_stack, probe_stack)
3137         (probe_stack_address, split_stack_prologue, split_stack_space_check):
3138         New targetm instruction patterns.
3139         * explow.c (allocate_dynamic_stack_space): Use them instead of
3140         HAVE_*/gen_* interface.
3141         (emit_stack_probe): Likewise.
3142         (probe_stack_range): Likewise.
3143         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3144
3145 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3146
3147         * target-insns.def (stack_protect_set, stack_protect_test): New
3148         targetm instruction patterns.
3149         * cfgexpand.c (stack_protect_prologue): Use them instead of
3150         HAVE_*/gen_* interface.
3151         * function.c (stack_protect_epilogue): Likewise.
3152
3153 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3154
3155         * expr.h (gen_move_insn_uncast): Delete.
3156         * expr.c (gen_move_insn_uncast): Delete.
3157
3158 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3159
3160         * target-insns.def (restore_stack_block, restore_stack_function)
3161         (restore_stack_nonlocal, save_stack_block, save_stack_function)
3162         (save_stack_nonlocal): New targetm instruction patterns.
3163         * builtins.c (expand_builtin_apply): Use them instead of
3164         HAVE_*/gen_* interface.
3165         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3166
3167 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3168
3169         * target-insns.def (trap): New targetm instruction pattern.
3170         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3171         interface.
3172         * explow.c (allocate_dynamic_stack_space): Likewise.
3173         * ifcvt.c (find_if_header): Likewise.
3174
3175 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3176
3177         * target-insns.def (prefetch): New targetm instruction pattern.
3178         * tree-ssa-loop-prefetch.c: Include targeth.
3179         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3180         of HAVE_*/gen_* interface.
3181         * builtins.c (expand_builtin_prefetch): Likewise.
3182         * toplev.c (process_options): Likewise.
3183
3184 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3185
3186         * target-insns.def (untyped_call, untyped_return): New targetm
3187         instruction patterns.
3188         * builtins.c (expand_builtin_apply): Use them instead of
3189         HAVE_*/gen_* interface.
3190         (result_vector): Define unconditionally.
3191
3192 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3193
3194         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3195         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3196         (nonlocal_goto_receiver): New targetm instruction patterns.
3197         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3198         of HAVE_*/gen_* interface.
3199         (expand_builtin_setjmp_receiver): Likewise.
3200         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3201         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3202
3203 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3204
3205         * target.def: Add code_for_* hooks.
3206         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3207         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3208         * target-insns.def (casesi, tablejump): New targetm instruction
3209         patterns.
3210         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3211         (do_tablejump): Likewise.
3212         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3213         (expand_sjlj_dispatch_table): Likewise.
3214         * targhooks.c (default_case_values_threshold): Likewise.
3215
3216 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3217
3218         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3219         Use rtx_insn * instead of rtx.
3220         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3221         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3222         (nios2_call_tls_get_addr): Likewise.
3223         (nios2_emit_expensive_div): Likewise.
3224         (nios2_emit_move_sequence): Change return type to bool.
3225         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3226         Change return type to bool.
3227
3228 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3229
3230         PR target/66747
3231         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3232
3233 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3234
3235         PR target/66114
3236         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3237         of register_operand.  Remove constraint.
3238
3239 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3240
3241         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3242         the first argument.
3243
3244 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3245
3246         * attribs.c (decl_attributes): Guard inform with the return value
3247         of the preceding warning.
3248
3249 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3250
3251         * doc/invoke.texi (moverride): Move to correct section.
3252
3253 2015-07-03  Richard Biener  <rguenther@suse.de>
3254
3255         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3256         Copy from tree.c
3257         (dt_operand::gen_gimple_expr): After valueizing operands
3258         re-canonicalize operand order for commutative tree codes.
3259
3260 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3261
3262         PR target/66746.
3263         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3264         is defined.
3265         (__crc32w): Likewise.
3266         (__crc32d): Likewise.
3267         (__rdpmc): Likewise.
3268         (__rdtscp): Likewise.
3269         (_rdpmc): Likewise.
3270         (_rdtscp): Likewise.
3271         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3272         is defined.
3273
3274 2015-07-03  Richard Biener  <rguenther@suse.de>
3275
3276         * fold-const.c (fold_mathfn_compare): Remove.
3277         (fold_inf_compare): Likewise.
3278         (fold_comparison): Move floating point comparison simplifications...
3279         * match.pd: ... to patterns here.  Introduce simple_comparisons
3280         operator list and use it for patterns formerly in fold_comparison.
3281
3282 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3283
3284         PR tree-optimization/66119
3285         * toplev.c (process_options): Don't set up default values for
3286         the sra_max_scalarization_size_{speed,size} parameters.
3287         * tree-sra (analyze_all_variable_accesses): If no values
3288         have been set for the sra_max_scalarization_size_{speed,size}
3289         parameters, call get_move_ratio to get target defaults.
3290
3291 2015-07-03  Richard Biener  <rguenther@suse.de>
3292
3293         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3294         * match.pd: ... here.
3295
3296 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3297
3298         PR target/37072
3299         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3300         is not actually the default on FreeBSD.
3301
3302 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3303
3304         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3305         definition.
3306         (CMPGE_8HI): Likewise.
3307         (CMPGE_4SI): Likewise.
3308         (CMPGE_2DI): Likewise.
3309         (CMPGE_U16QI): Likewise.
3310         (CMPGE_U8HI): Likewise.
3311         (CMPGE_U4SI): Likewise.
3312         (CMPGE_U2DI): Likewise.
3313         (CMPLE_16QI): Likewise.
3314         (CMPLE_8HI): Likewise.
3315         (CMPLE_4SI): Likewise.
3316         (CMPLE_2DI): Likewise.
3317         (CMPLE_U16QI): Likewise.
3318         (CMPLE_U8HI): Likewise.
3319         (CMPLE_U4SI): Likewise.
3320         (CMPLE_U2DI): Likewise.
3321         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3322         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3323         ALTIVEC_BUILTIN_VEC_CMPLE.
3324         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3325         floating-point vector modes.
3326         (vector_nlt<mode>): New define_expand.
3327         (vector_nltu<mode>): Likewise.
3328         (vector_ngt<mode>): Likewise.
3329         (vector_ngtu<mode>): Likewise.
3330
3331 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3332
3333         PR rtl-optimization/66706
3334         * combine.c (make_compound_operation): If an AND of SUBREG of
3335         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3336
3337 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3338
3339         * tree-pass.h (make_pass_ch_vect): New.
3340         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3341
3342         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3343         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3344         make_pass_ch_vect): New.
3345         (pass_ch): Extend ch_base.
3346
3347         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3348         (ch_base::copy_headers): ...here.
3349
3350 2015-07-02  Richard Biener  <rguenther@suse.de>
3351
3352         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3353         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3354         (fold_binary_loc): Implement (T)ptr & CST in terms of
3355         get_pointer_alignment_1.
3356         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3357         Make sure to build the alignment test on a SSA name without
3358         final alignment info valid only after the prologue.
3359
3360 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3361
3362         * config/cris/cris.md ("epilogue"): Remove condition.
3363         ("prologue"): Ditto.
3364
3365 2015-07-02  Richard Biener  <rguenther@suse.de>
3366
3367         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3368         parameter to record a condition that is false.
3369         (record_conditions): When recording an extra NE_EXPR that is
3370         true also record a EQ_EXPR that is false.
3371
3372 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3373
3374         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3375         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3376         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3377         (set_iv, find_interesting_uses_address, add_candidate_1): New
3378         argument to alloc_iv.
3379         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3380         duplicate struct iv.
3381         (free_loop_data): Don't free struct iv explicitly.
3382         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3383
3384 2015-07-01  DJ Delorie  <dj@redhat.com>
3385
3386         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3387         (LIB_SPEC): Add.
3388         (SUPPORTS_DISCRIMINATOR): Define.
3389
3390 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3391
3392         PR bootstrap/66685
3393         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3394         there are no CALLs in the same pattern.
3395
3396 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3397
3398         PR rtl-optimization/61047
3399         * rtlanal.c (get_initial_register_offset): New function.
3400         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3401
3402 2015-07-01  Richard Biener  <rguenther@suse.de>
3403
3404         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3405         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3406         ~X CMP C -> X CMP' ~C to ...
3407         * match.pd: ... patterns here.
3408
3409 2015-07-01  Nick Clifton  <nickc@redhat.com>
3410
3411         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3412         a 16-bit value into a 20-bit memory slot.
3413
3414 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3415
3416         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3417         "aarch64_tiny", "aarch64_small", "aarch64_large",
3418         "aarch64_little_endian", "aarch64_big_endian".
3419
3420 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3421
3422         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3423         Document "aarch64_small_fpic".
3424
3425 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3426
3427         * configure.ac: Add check for aarch64 assembler -fpic relocation
3428         modifier support.
3429         * configure: Regenerate.
3430         * config.in: Regenerate.
3431         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3432         to -fPIC if not support of -fpic relocation modifier in assembler.
3433
3434 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3435
3436         PR bootstrap/66685
3437         * rtl.c (classify_insn): Handle returns in PARALLELs.
3438
3439 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3440
3441         PR middle-end/66633
3442         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3443         to true if the function is nested and if not optimizing.
3444         (convert_local_omp_clauses): Initialize need_frame to true if the
3445         function contains nested functions and if not optimizing.
3446
3447 2015-07-01  Richard Biener  <rguenther@suse.de>
3448
3449         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3450         (X & Y) ^ Y -> ~X & Y transforms to ...
3451         * match.pd: ... here.
3452
3453 2015-07-01  Richard Biener <rguenther@suse.de>
3454
3455         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3456         of converts to avoid uninteresting noise from the conversion
3457         simplifying patterns.
3458
3459 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3460
3461         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3462         gcc_assert evaluating its argument for side-effect.
3463
3464 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3465
3466         PR target/64833
3467         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3468         flag_pic is set.
3469
3470 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3471
3472         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3473         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3474         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3475         to the inner DFS walk.
3476
3477 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3478
3479         * target-insns.def (jump): New targetm instruction pattern.
3480         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3481         instead of gen_jump.
3482         (fix_up_crossing_landing_pad): Likewise.
3483         (add_labels_and_missing_jumps): Likewise.
3484         (fix_crossing_conditional_branches): Likewise.
3485         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3486         (force_nonfallthru_and_redirect): Likewise.
3487         * cse.c (cse_insn): Likewise.
3488         * expmed.c (expand_divmod): Likewise.
3489         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3490         * haifa-sched.c (init_before_recovery): Likewise.
3491         (sched_create_recovery_edges): Likewise.
3492         * ifcvt.c (find_cond_trap): Likewise.
3493         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3494         (expand_float, expand_fix): Likewise.
3495         * stmt.c (emit_jump): Likewise.
3496
3497 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3498
3499         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3500         (HAVE_store_multiple, gen_store_multiple): Delete.
3501         * target-insns.def (load_multiple, store_multiple): New targetm
3502         instruction patterns.
3503         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3504         of HAVE_*/gen_* interface.
3505
3506 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3507
3508         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3509         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3510         (gen_mem_signal_fence): Delete.
3511         * target-insns.def (mem_signal_fence, mem_thread_fence)
3512         (memory_barrier): New targetm instruction patterns.
3513         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3514         interface.
3515         (expand_mem_signal_fence): Likewise.
3516
3517 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3518
3519         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3520         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3521         targetm instruction patterns.
3522         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3523         interface.
3524         * calls.c (expand_call): Likewise.
3525         * cfgrtl.c (cfg_layout_finalize): Likewise.
3526         * df-scan.c (df_get_entry_block_def_set): Likewise.
3527         (df_get_exit_block_use_set): Likewise.
3528         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3529         * final.c (final_start_function): Likewise.
3530         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3531         (reposition_prologue_and_epilogue_notes): Likewise.
3532         * reorg.c (find_end_label): Likewise.
3533         * toplev.c (process_options): Likewise.
3534
3535 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3536
3537         * typed-splay-tree.h: New file.
3538
3539 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3540
3541         PR debug/66691
3542         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3543         (lra_substitute_pseudo_within_insn): Ditto.
3544         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3545         of constant.
3546         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3547         to lra_substitute_pseudo.
3548         * lra-lives.c (process_bb_lives): Add an argument to
3549         lra_substitute_pseudo_within_insn call.
3550         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3551         argument to lra_substitute_pseudo and
3552         lra_substitute_pseudo_within_insn calls.
3553         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3554
3555 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3556
3557         * configure: Regenerated.
3558
3559 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3560
3561         * config.gcc: Support i[34567]86-*-elfiamcu target.
3562         * config/i386/iamcu.h: New.
3563         * config/i386/i386.opt: Add -miamcu.
3564         * doc/invoke.texi: Document -miamcu.
3565         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3566         off x87/MMX/SSE/AVX codegen for -miamcu.
3567         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3568         __iamcu/__iamcu__ for -miamcu.
3569         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3570         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3571         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3572         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3573         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3574         MCU by default.  Default long double to 64-bit for Intel MCU.
3575         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3576         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3577         AVX is turned on.
3578         (function_arg_advance_32): Pass value whose size is no larger
3579         than 8 bytes in registers for Intel MCU.
3580         (function_arg_32): Likewise.
3581         (ix86_return_in_memory): Return value whose size is no larger
3582         than 8 bytes in registers for Intel MCU.
3583         (iamcu_alignment): New function.
3584         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3585         true.
3586         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3587         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3588         true.
3589
3590 2015-06-30  Marek Polacek  <polacek@redhat.com>
3591
3592         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3593         both operands of the resulting expression.
3594
3595         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3596         the final expression with the operand's type and then convert
3597         it to the type of the expression.
3598
3599 2015-06-30  Richard Biener  <rguenther@suse.de>
3600
3601         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3602         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3603         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3604         * match.pd: ... to patterns here.
3605
3606 2015-06-30  Richard Biener  <rguenther@suse.de>
3607
3608         PR tree-optimization/66704
3609         * tree-vect-data-refs.c (vect_setup_realignment): Use
3610         make_ssa_name for non-SSA name source.
3611
3612 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3613
3614         PR middle-end/66702
3615         * omp-low.c (simd_clone_adjust): Handle addressable linear
3616         or uniform parameters or non-gimple type uniform parameters.
3617
3618 2015-06-30  Richard Biener  <rguenther@suse.de>
3619
3620         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3621         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3622         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3623         * match.pd: ... here.
3624         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3625         Move (x & y) | x -> x and friends before
3626         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3627
3628 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3629
3630         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3631         -mfix-ut699 is not specified.
3632         (leon3_load): Rename into...
3633         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3634         is specified.
3635
3636 2015-06-30  Marek Polacek  <polacek@redhat.com>
3637
3638         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3639         * match.pd: ... here.
3640
3641 2015-06-30  Richard Biener  <rguenther@suse.de>
3642
3643         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3644         * fold-const.c (build_range_check): Replace uses of
3645         HAVE_canonicalize_funcptr_for_compare.
3646         (fold_widened_comparison): Likewise.
3647         (fold_sign_changed_comparison): Likewise.
3648         * dojump.c: Include "target.h".
3649         (do_compare_and_jump): Replace uses of
3650         HAVE_canonicalize_funcptr_for_compare and
3651         gen_canonicalize_funcptr_for_compare.
3652         * expr.c (do_store_flag): Likewise.
3653
3654 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3655
3656         PR tree-optimization/66652
3657         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3658         max_loop_iterations to determine if nit + 1 overflows.
3659
3660 2015-06-30  Richard Biener  <rguenther@suse.de>
3661
3662         * tree-vrp.c (register_edge_assert_for_2): Also register
3663         asserts for dominating conversion results.
3664
3665 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3666
3667         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3668         field in struct iv.
3669
3670 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3671
3672         PR target/66509
3673         * configure.ac: Fix filds and fildq test for 64-bit.
3674         * configure: Regenerated.
3675
3676 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3677
3678         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3679         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3680
3681 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3682
3683         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3684         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3685
3686 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3687
3688         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3689         Set attribute "length_nobnd" instead of "length".
3690         (*jcc_2): Ditto.
3691         (jump): Ditto.
3692         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3693
3694 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3695
3696         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3697         assert less restrictive.
3698
3699 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3700
3701         PR fortran/66605
3702         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3703         do_warn_unused_parameter.
3704         * function.c (do_warn_unused_parameter): Move from here.
3705         * function.h (do_warn_unused_parameter): Do not declare.
3706
3707 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3708
3709         PR target/65697
3710         * gcc.target/arm/armv-sync-comp-swap.c: New.
3711         * gcc.target/arm/armv-sync-op-acquire.c: New.
3712         * gcc.target/arm/armv-sync-op-full.c: New.
3713         * gcc.target/arm/armv-sync-op-release.c: New.
3714
3715 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3716
3717         PR target/65697
3718         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3719         initial acquire barrier with final barrier.
3720
3721 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3722
3723         PR target/65697
3724         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3725         initial acquire barrier with final barrier.
3726
3727 2015-06-29  Richard Henderson  <rth@redhat.com>
3728
3729         * config/i386/constraints.md (Bf): New constraint.
3730         * config/i386/i386-c.c (ix86_target_macros): Define
3731         __GCC_ASM_FLAG_OUTPUTS__.
3732         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3733         as flags outputs.
3734         * doc/extend.texi (FlagOutputOperands): Document them.
3735
3736 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3737
3738         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3739         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3740         unspec name.
3741         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3742         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3743         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3744         (aarch64_symbol_context): Ditto.
3745         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3746         and use new pattern name.
3747         (aarch64_expand_mov_immediate): Ditto.
3748         (aarch64_print_operand): Ditto.
3749         (aarch64_classify_tls_symbol): Ditto.
3750
3751 2015-06-29  Marek Polacek  <polacek@redhat.com>
3752             Marc Glisse  <marc.glisse@inria.fr>
3753
3754         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
3755         * match.pd: ... pattern here.
3756
3757 2015-06-29  Tom de Vries  <tom@codesourcery.com>
3758
3759         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
3760         function structure.
3761
3762 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3763
3764         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
3765         feature description, split out the native option, add a link to
3766         the feature documentation, rearrange and slightly rewrite text.
3767         (Aarch64 options, -mcpu): Likewise.
3768         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
3769         +rdma implies Adv. SIMD.
3770
3771 2015-06-29  Marek Polacek  <polacek@redhat.com>
3772
3773         PR c/66322
3774         * function.c (stack_protect_epilogue): Remove a cast to int.
3775         * doc/invoke.texi: Update -Wswitch-bool description.
3776
3777 2015-06-29  Richard Biener  <rguenther@suse.de>
3778
3779         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
3780         * fold-const.c (fold_binary_loc): Move &A - &B simplification
3781         via ptr_difference_const ...
3782         * match.pd: ... here.
3783         When matching (X ^ Y) == Y also match with swapped operands.
3784
3785 2015-06-29  Richard Biener  <rguenther@suse.de>
3786
3787         * lto-streamer.h (LTO_major_version): Bump to 5.
3788
3789 2015-06-29  Richard Biener  <rguenther@suse.de>
3790
3791         PR tree-optimization/66677
3792         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
3793         STMT_VINFO_VEC_STMT clobbering less strict.
3794
3795 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3796
3797         PR middle-end/64130
3798         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
3799         division, compute max and min when value ranges for dividend and
3800         divisor are available.
3801
3802 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
3803             Sandra Loosemore <sandra@codesourcery.com>
3804
3805         * regrename.h (regrename_do_replace): Change to return bool.
3806         * regrename.c (rename_chains): Check return value of
3807         regname_do_replace.
3808         (regrename_do_replace): Re-validate the modified insns and
3809         return bool status.
3810         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
3811         Update to match rename_chains changes.
3812         * config/c6x/c6x.c (try_rename_operands): Assert that
3813         regrename_do_replace returns true.
3814
3815 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
3816
3817         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
3818         operand 2 here.  Use copy_addr_to_reg to copy non-index
3819         register operand 2 to a temporary.
3820         (<mode>_stx): Ditto for operand 1.
3821         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
3822         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
3823         (ix86_store_bounds): Ditto.
3824
3825 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
3826
3827         * print-tree.c (print_node) [TREE_VEC]: Print its length.
3828
3829 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
3830
3831         * gimple.c (gimple_call_set_fndecl): Remove.
3832         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
3833         build1_loc directly instead of build_fold_addr_expr_loc.
3834
3835 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3836
3837         * hash-map.h (hash_map::traverse): Use the definition of the
3838         Key typedef rather than the typedef itself.
3839
3840 2015-06-26  Martin Jambor  <mjambor@suse.cz>
3841
3842         PR debug/66301
3843         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
3844         NULL instead of calling dump_enabled_p.
3845
3846 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3847
3848         * config/aarch64/aarch64.opt: (override): New.
3849         * doc/invoke.texi (override): Document.
3850         * config/aarch64/aarch64.c (aarch64_flag_desc): New
3851         (aarch64_fusible_pairs): Likewise.
3852         (aarch64_tuning_flags): Likewise.
3853         (aarch64_tuning_override_function): Likewise.
3854         (aarch64_tuning_override_functions): Likewise.
3855         (aarch64_parse_one_option_token): Likewise.
3856         (aarch64_parse_boolean_options): Likewise.
3857         (aarch64_parse_fuse_string): Likewise.
3858         (aarch64_parse_tune_string): Likewise.
3859         (aarch64_parse_one_override_token): Likewise.
3860         (aarch64_parse_override_string): Likewise.
3861         (aarch64_override_options): Parse the -override string if it
3862         is present.
3863
3864 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3865
3866         * config/aarch64/aarch64-protos.h (tune_params): Remove
3867         const from members.
3868         (aarch64_tune_params): Remove const, change to no longer be
3869         a pointer.
3870         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
3871         change to no longer be a pointer, initialize to generic_tunings.
3872         (aarch64_min_divisions_for_recip_mul): Change dereference of
3873         aarch64_tune_params to member access.
3874         (aarch64_reassociation_width): Likewise.
3875         (aarch64_rtx_mult_cost): Likewise.
3876         (aarch64_address_cost): Likewise.
3877         (aarch64_branch_cost): Likewise.
3878         (aarch64_rtx_costs): Likewise.
3879         (aarch64_register_move_cost): Likewise.
3880         (aarch64_memory_move_cost): Likewise.
3881         (aarch64_sched_issue_rate): Likewise.
3882         (aarch64_builtin_vectorization_cost): Likewise.
3883         (aarch64_override_options): Take a copy of the selected tuning
3884         struct in to aarch64_tune_params, rather than just setting
3885         a pointer, change dereferences of aarch64_tune_params to member
3886         accesses.
3887         (aarch64_override_options_after_change): Change dereferences of
3888         aarch64_tune_params to member access.
3889         (aarch64_macro_fusion_p): Likewise.
3890         (aarch_macro_fusion_pair_p): Likewise.
3891         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
3892
3893 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3894
3895         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
3896         (aarch64_tune_flags): Likewise.
3897         (AARCH64_TUNE_FMA_STEERING): Likewise.
3898         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
3899         to AARCH64_FL_USE_FMA_STEERING_PASS.
3900         (cortex-a57.cortex-a53): Likewise.
3901         (cortex-a72): Use cortexa72_tunings.
3902         (cortex-a72.cortex-a53): Likewise.
3903         (exynos-m1): Likewise.
3904         * config/aarch64/aarch64-protos.h (tune_params): Add
3905         a field: extra_tuning_flags.
3906         * config/aarch64/aarch64-tuning-flags.def: New.
3907         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
3908         (aarch64_extra_tuning_flags): Likewise.
3909         (aarch64_tune_params): Declare here.
3910         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
3911         (cortexa53_tunings): Likewise.
3912         (cortexa57_tunings): Likewise.
3913         (thunderx_tunings): Likewise.
3914         (xgene1_tunings): Likewise.
3915         (cortexa72_tunings): New.
3916         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
3917          (gate): Check against aarch64_tune_params.
3918         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
3919         aarch64-protos.h.
3920
3921 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3922
3923         * config/aarch64/aarch64-fusion-pairs.def: New.
3924         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
3925         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
3926         aarch64_fusion_pairs.
3927         (AARCH64_FUSE_MOV_MOVK): Likewise.
3928         (AARCH64_FUSE_ADRP_ADD): Likewise.
3929         (AARCH64_FUSE_MOVK_MOVK): Likewise.
3930         (AARCH64_FUSE_ADRP_LDR): Likewise.
3931         (AARCH64_FUSE_CMP_BRANCH): Likewise.
3932
3933 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3934
3935         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
3936         SYMBOL_SMALL_GOT_28K.
3937         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
3938         relocation modifiers.
3939         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
3940         (ldr_got_small_28k_<mode>): New.
3941         (ldr_got_small_28k_sidi): New.
3942         * config/aarch64/iterators.md (got_modifier): New mode iterator.
3943         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
3944         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
3945         SYMBOL_SMALL_GOT_28K.
3946         (aarch64_rtx_costs): Add costs for new instruction sequences.
3947         (initialize_aarch64_code_model): Initialize new model.
3948         (aarch64_classify_symbol): Recognize new model and new symbol classification.
3949         (aarch64_asm_preferred_eh_data_format): Support new model.
3950         (aarch64_load_symref_appropriately): Generate new instruction
3951         sequences for -fpic.
3952         (TARGET_USE_PSEUDO_PIC_REG): New definition.
3953         (aarch64_use_pseudo_pic_reg): New function.
3954
3955 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3956
3957         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
3958         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
3959         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
3960         (aarch64_expand_mov_immediate): Ditto.
3961         (aarch64_print_operand): Ditto.
3962         (aarch64_classify_symbol): Ditto.
3963
3964 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3965
3966         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
3967
3968 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
3969
3970         PR bootstrap/66638
3971         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
3972         assertion failed.  Remove assertion itself.
3973
3974 2015-06-26  Richard Biener  <rguenther@suse.de>
3975
3976         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
3977         and -A CMP CST -> A CMP -CST which is redundant with a pattern
3978         in match.pd.
3979         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
3980         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
3981         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
3982         * match.pd: ... patterns here.
3983
3984 2015-06-26  Marek Polacek  <polacek@redhat.com>
3985
3986         * match.pd ((x | y) & ~(x & y) -> x ^ y,
3987         (x | y) & (~x ^ y) -> x & y): New patterns.
3988
3989 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3990
3991         * rtl.h (emit): Add an optional boolean parameter to control
3992         whether barriers are emitted.
3993         * emit-rtl.c (emit): Likewise.
3994         * gensupport.c (get_emit_function): Return null rather than "emit".
3995         * genemit.c (gen_emit_seq): Handle the null return value.
3996         Don't emit barriers after the final instruction in the sequence.
3997         * gentarget-def.c (main): Don't emit barriers after the instruction.
3998
3999 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4000
4001         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
4002         TARGET_UNIFIED_ASM.
4003
4004 2015-06-26  Richard Biener  <rguenther@suse.de>
4005
4006         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
4007
4008 2015-06-26  Richard Biener  <rguenther@suse.de>
4009
4010         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
4011         irrespective on whether the inner operation has a single use
4012         of both off are constant.
4013
4014 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
4015             Segher Boessenkool  <segher@kernel.crashing.org>
4016
4017         PR target/66412
4018         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
4019         before doing PUT_MODE or PUT_CODE on operands to avoid
4020         in-place RTX modification.
4021
4022 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4023
4024         * gentarget-def.c (def_target_insn): Cast return of strtol to
4025         unsigned int.
4026
4027 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4028
4029         * gimple.h (gimple_call_set_fn): Move inline function.
4030         * gimple.c (gimple_call_set_fn): Relocate here.
4031
4032 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
4033
4034         PR target/65979
4035         PR target/66611
4036         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
4037         the replacement insn will work.
4038
4039 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4040
4041         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
4042         by default.
4043
4044 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4045
4046         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
4047         * cgraph.h: Include ipa-ref.h and plugin-api.h.
4048         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
4049         (symtab_node::address_can_be_compared_p): Move function.
4050         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
4051         definition here.
4052         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
4053         * auto-profile.c: Likewise.
4054         * bb-reorder.c: Likewise.
4055         * builtins.c: Likewise.
4056         * calls.c: Likewise.
4057         * cfgexpand.c: Likewise.
4058         * cgraphbuild.c: Likewise.
4059         * cgraphclones.c: Likewise.
4060         * cgraphunit.c: Likewise.
4061         * combine.c: Likewise.
4062         * coverage.c: Likewise.
4063         * data-streamer-in.c: Likewise.
4064         * data-streamer-out.c: Likewise.
4065         * data-streamer.c: Likewise.
4066         * dbxout.c: Likewise.
4067         * dwarf2out.c: Likewise.
4068         * except.c: Likewise.
4069         * expr.c: Likewise.
4070         * final.c: Likewise.
4071         * fold-const.c: Likewise.
4072         * ggc-page.c: Likewise.
4073         * gimple-fold.c: Likewise.
4074         * gimple-iterator.c: Likewise.
4075         * gimple-pretty-print.c: Likewise.
4076         * gimple-streamer-in.c: Likewise.
4077         * gimple-streamer-out.c: Likewise.
4078         * gimple.c: Likewise.
4079         * gimplify.c: Likewise.
4080         * ipa-chkp.c: Likewise.
4081         * ipa-comdats.c: Likewise.
4082         * ipa-cp.c: Likewise.
4083         * ipa-devirt.c: Likewise.
4084         * ipa-icf-gimple.c: Likewise.
4085         * ipa-icf.c: Likewise.
4086         * ipa-inline-analysis.c: Likewise.
4087         * ipa-inline-transform.c: Likewise.
4088         * ipa-inline.c: Likewise.
4089         * ipa-polymorphic-call.c: Likewise.
4090         * ipa-profile.c: Likewise.
4091         * ipa-prop.c: Likewise.
4092         * ipa-pure-const.c: Likewise.
4093         * ipa-ref.c: Likewise.
4094         * ipa-reference.c: Likewise.
4095         * ipa-split.c: Likewise.
4096         * ipa-utils.c: Likewise.
4097         * ipa-visibility.c: Likewise.
4098         * ipa.c: Likewise.
4099         * langhooks.c: Likewise.
4100         * lto-cgraph.c: Likewise.
4101         * lto-compress.c: Likewise.
4102         * lto-opts.c: Likewise.
4103         * lto-section-in.c: Likewise.
4104         * lto-section-out.c: Likewise.
4105         * lto-streamer-in.c: Likewise.
4106         * lto-streamer-out.c: Likewise.
4107         * lto-streamer.c: Likewise.
4108         * omp-low.c: Likewise.
4109         * opts-global.c: Likewise.
4110         * passes.c: Likewise.
4111         * predict.c: Likewise.
4112         * print-tree.c: Likewise.
4113         * profile.c: Likewise.
4114         * ree.c: Likewise.
4115         * sanopt.c: Likewise.
4116         * stor-layout.c: Likewise.
4117         * symtab.c: Likewise.
4118         * toplev.c: Likewise.
4119         * trans-mem.c: Likewise.
4120         * tree-cfg.c: Likewise.
4121         * tree-chkp.c: Likewise.
4122         * tree-eh.c: Likewise.
4123         * tree-emutls.c: Likewise.
4124         * tree-inline.c: Likewise.
4125         * tree-nested.c: Likewise.
4126         * tree-parloops.c: Likewise.
4127         * tree-pretty-print.c: Likewise.
4128         * tree-profile.c: Likewise.
4129         * tree-sra.c: Likewise.
4130         * tree-ssa-alias.c: Likewise.
4131         * tree-ssa-live.c: Likewise.
4132         * tree-ssa-loop-ivcanon.c: Likewise.
4133         * tree-ssa-loop-ivopts.c: Likewise.
4134         * tree-ssa-pre.c: Likewise.
4135         * tree-ssa-sccvn.c: Likewise.
4136         * tree-ssa-strlen.c: Likewise.
4137         * tree-ssa-structalias.c: Likewise.
4138         * tree-streamer-in.c: Likewise.
4139         * tree-streamer-out.c: Likewise.
4140         * tree-streamer.c: Likewise.
4141         * tree-switch-conversion.c: Likewise.
4142         * tree-tailcall.c: Likewise.
4143         * tree-vect-data-refs.c: Likewise.
4144         * tree-vect-stmts.c: Likewise.
4145         * tree-vectorizer.c: Likewise.
4146         * tree.c: Likewise.
4147         * tsan.c: Likewise.
4148         * ubsan.c: Likewise.
4149         * value-prof.c: Likewise.
4150         * varasm.c: Likewise.
4151         * varpool.c: Likewise.
4152         * config/arm/arm.c: Likewise.
4153         * config/bfin/bfin.c: Likewise.
4154         * config/c6x/c6x.c: Likewise.
4155         * config/cris/cris.c: Likewise.
4156         * config/darwin-c.c: Likewise.
4157         * config/darwin.c: Likewise.
4158         * config/i386/i386.c: Likewise.
4159         * config/i386/winnt.c: Likewise.
4160         * config/microblaze/microblaze.c: Likewise.
4161         * config/mips/mips.c: Likewise.
4162         * config/rs6000/rs6000.c: Likewise.
4163         * config/rx/rx.c: Likewise.
4164         * config/s390/s390.c: Likewise.
4165         * config/tilegx/mul-tables.c: Likewise.
4166
4167 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4168
4169         * config/aarch64/aarch64.c, config/alpha/alpha.c,
4170         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4171         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4172         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4173         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4174         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4175         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4176         config/microblaze/microblaze.c, config/mips/mips.c,
4177         config/mmix/mmix.c, config/mn10300/mn10300.c,
4178         config/moxie/moxie.c, config/msp430/msp430.c,
4179         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4180         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4181         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4182         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4183         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4184         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4185         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4186         target-def.h include.
4187         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4188
4189 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4190
4191         * Makefile.in (TARGET_DEF): Add target-insns.def.
4192         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4193         (build/gentarget-def.o): New rule.
4194         (genprogrtl): Add target-def.
4195         * target-insns.def, gentarget-def.c: New files.
4196         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4197         based on the contents of target-insns.def.
4198         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4199         (HAVE_return, gen_return): Delete.
4200         * target-def.h: Include insn-target-def.h.
4201         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4202         instead of direct calls.  Rely on them to do the appropriate assertions.
4203         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4204         (convert_jumps_to_returns): Use targetm interface instead of
4205         direct calls.
4206         (thread_prologue_and_epilogue_insns): Likewise.
4207         * reorg.c (find_end_label, dbr_schedule): Likewise.
4208         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4209         * shrink-wrap.c (convert_to_simple_return): Likewise.
4210         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4211
4212 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4213
4214         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4215         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4216         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4217         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4218         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4219         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4220         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4221         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4222         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4223         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4224         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4225         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4226         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4227         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4228         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4229         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4230         includes to end.
4231
4232 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4233
4234         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4235         (unbounded_int_hashmap_traits::key_type): Likewise.
4236         * hash-map.h (hash_map): Get the key type from the traits.
4237         * hash-traits.h (default_hash_traits): By default, inherit from the
4238         template parameter.
4239         * alias.c (alias_set_traits): Delete.
4240         (alias_set_entry_d::children): Use alias_set_hash as the first
4241         template parameter.
4242         (record_alias_subset): Update accordingly.
4243         * except.c (tree_hash_traits): Delete.
4244         (type_to_runtime_map): Use tree_hash as the first template parameter.
4245         (init_eh): Update accordingly.
4246         * genmatch.c (capture_id_map_hasher): Delete.
4247         (cid_map_t): Use nofree_string_hash as first template parameter.
4248         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4249         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4250         Use symbol_compare_hash as the first template parameter in
4251         subdivide_hash_map.
4252         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4253         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4254         template parameter.
4255         * passes.c (pass_registry_hasher): Delete.
4256         (name_to_pass_map): Use nofree_string_hash as the first template
4257         parameter.
4258         (register_pass_name): Update accordingly.
4259         * sanopt.c (sanopt_tree_map_traits): Delete.
4260         (sanopt_tree_triplet_map_traits): Delete.
4261         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4262         template parameter.
4263         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4264         the first template parameter.
4265         * sese.c (rename_map_hasher): Delete.
4266         (rename_map_type): Use tree_ssa_name_hash as the first template
4267         parameter.
4268         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4269         (function_summary::m_map): Use map_hash as the first template
4270         parameter.
4271         (function_summary::release): Update accordingly.
4272         * tree-if-conv.c (phi_args_hash_traits): Delete.
4273         (predicate_scalar_phi): Use tree_operand_hash as the first template
4274         parameter to phi_arg_map.
4275         * tree-inline.h (dependence_hasher): Delete.
4276         (copy_body_data::dependence_map): Use dependence_hash as the first
4277         template parameter.
4278         * tree-inline.c (remap_dependence_clique): Update accordingly.
4279         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4280         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4281         parameter.
4282         (addr_stridxptr): Update accordingly.
4283         * value-prof.c (profile_id_traits): Delete.
4284         (cgraph_node_map): Use profile_id_hash as the first template
4285         parameter.
4286         (init_node_map): Update accordingly.
4287         * config/alpha/alpha.c (string_traits): Delete.
4288         (machine_function::links): Use nofree_string_hash as the first
4289         template parameter.
4290         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4291         * config/m32c/m32c.c (pragma_traits): Delete.
4292         (pragma_htab): Use nofree_string_hash as the first template parameter.
4293         (m32c_note_pragma_address): Update accordingly.
4294         * config/mep/mep.c (pragma_traits): Delete.
4295         (pragma_htab): Use nofree_string_hash as the first template parameter.
4296         (mep_note_pragma_flag): Update accordingly.
4297         * config/mips/mips.c (mips16_flip_traits): Delete.
4298         (mflip_mips16_htab): Use nofree_string_hash as the first template
4299         parameter.
4300         (mflip_mips16_use_mips16_p): Update accordingly.
4301         (local_alias_traits): Delete.
4302         (mips16_local_aliases): Use nofree_string_hash as the first template
4303         parameter.
4304         (mips16_local_alias): Update accordingly.
4305
4306 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4307
4308         * hash-map-traits.h (default_hashmap_traits): Delete.
4309
4310 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4311
4312         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4313         (unbounded_int_hashmap_traits): Likewise.
4314         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4315
4316 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4317
4318         * ipa-icf.h (symbol_compare_hash): New class.
4319         (symbol_compare_hashmap_traits): Use it.
4320         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4321         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4322         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4323         default_hashmap_traits.
4324         * sanopt.c (sanopt_tree_triplet_hash): New class.
4325         (sanopt_tree_triplet_map_traits): Use it.
4326
4327 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4328
4329         * gengtype-parse.c (require_template_declaration): Allow '+' in
4330         template parameters.  Consolidate cases.
4331         * hash-traits.h (int_hash): New class.
4332         * alias.c (alias_set_hash): New structure.
4333         (alias_set_traits): Use it.
4334         * symbol-summary.h (function_summary::map_hash): New class.
4335         (function_summary::summary_hashmap_traits): Use it.
4336         * tree-inline.h (dependence_hash): New class.
4337         (dependence_hasher): Use it.
4338         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4339         * value-prof.c (profile_id_hash): New class.
4340         (profile_id_traits): Use it.
4341
4342 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4343
4344         * config/mips/mips.c (mips16_flip_traits): Use it.
4345         (local_alias_traits, mips16_local_aliases): Convert from a map of
4346         rtxes to a map of symbol names.
4347         (mips16_local_alias): Update accordingly.
4348
4349 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4350
4351         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4352         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4353         * passes.c (pass_registry_hasher): Likewise.
4354         * config/alpha/alpha.c (string_traits): Likewise.
4355         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4356         * config/m32c/m32c.c (pragma_traits): Likewise.
4357         * config/mep/mep.c (pragma_traits): Likewise.
4358
4359 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4360
4361         * tree-hash-traits.h (tree_hash): New class.
4362         * except.c: Include tree-hash-traits.h.
4363         (tree_hash_traits): Use tree_hash.
4364
4365 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4366
4367         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4368         * sese.c: Include tree-hash-traits.h.
4369         (rename_map_hasher): Use tree_ssa_name_hasher.
4370
4371 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4372
4373         * tree-hash-traits.h (tree_decl_hash): New class.
4374         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4375         (stridxlist_hash_traits): Use tree_decl_hash.
4376
4377 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4378
4379         * tree-hash-traits.h: New file.
4380         (tree_operand_hash): New class.
4381         * sanopt.c: Include tree-hash-traits.h.
4382         (sanopt_tree_map_traits): Use tree_operand_hash.
4383         * tree-if-conv.c: Include tree-hash-traits.h.
4384         (phi_args_hash_traits): Use tree_operand_hash.
4385         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4386         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4387
4388 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4389
4390         * hash-map-traits.h: Include hash-traits.h.
4391         (simple_hashmap_traits): New class.
4392         * mem-stats.h (hash_map): Change the default traits to
4393         simple_hashmap_traits<default_hash_traits<Key> >.
4394
4395 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4396
4397         * hash-table.h: Update comments.
4398
4399 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4400
4401         * hash-traits.h (default_hash_traits): New structure.
4402         * hash-set.h (default_hashset_traits): Delete.
4403         (hash_set): Use default_hash_traits<Key> instead of
4404         default_hashset_traits.  Delete hash_entry type and use Key directly.
4405         * ipa-devirt.c (pair_traits): Delete.
4406         (default_hash_traits <type_pair>): Override.
4407         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4408         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4409
4410 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4411
4412         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4413
4414 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4415
4416         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4417         (has_is_empty, is_empty_helper): Delete.
4418         (has_mark_deleted, mark_deleted_helper): Delete.
4419         (has_mark_empty, mark_empty_helper): Delete.
4420         (hash_table::is_deleted): Call the Descriptor unconditionally.
4421         (hash_table::is_empty): Likewise.
4422         (hash_table::mark_deleted): Likewise.
4423         (hash_table::mark_empty): Likewise.
4424
4425 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4426
4427         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4428         redundant typedefs and members.
4429         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4430         redundant typedefs.
4431         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4432         * ipa-devirt.c (odr_name_hasher): Likewise.
4433         (polymorphic_call_target_hasher): Likewise.
4434         * ira-costs.c (cost_classes_hasher): Likewise.
4435         * statistics.c (stats_counter_hasher): Likewise.
4436         * trans-mem.c (log_entry_hasher): Likewise.
4437         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4438         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4439         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4440         * var-tracking.c (variable_hasher): Likewise.
4441         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4442         Remove redundant typedefs and members.
4443
4444 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4445
4446         * hash-traits.h (ggc_cache_hasher): Rename to...
4447         (ggc_cache_remove): ...this and remove typedefs.
4448         (ggc_cache_ptr_hash): New class.
4449         * hash-table.h: Update commentary.
4450         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4451         rather than ggc_cache_hasher.
4452         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4453         (const_double_hasher, const_fixed_hasher): Likewise.
4454         * function.c (insn_cache_hasher): Likewise.
4455         * trans-mem.c (tm_wrapper_hasher): Likewise.
4456         * tree.h (tree_decl_map_cache_hasher): Likewise.
4457         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4458         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4459         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4460         * varasm.c (tm_clone_hasher): Likewise.
4461         * config/i386/i386.c (dllimport_hasher): Likewise.
4462         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4463         (tree_hasher): Likewise.
4464
4465 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4466
4467         * hash-traits.h (ggc_hasher): Rename to...
4468         (ggc_remover): ...this and remove typedefs.
4469         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4470         (ggc_ptr_hash): New class.
4471         * hash-table.h: Update comment.
4472         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4473         ggc_hasher.
4474         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4475         (tree_descriptor_hasher): Likewise.
4476         * cgraph.c (function_version_hasher): Likewise.
4477         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4478         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4479         (dw_loc_list_hasher, addr_hasher): Likewise.
4480         * function.h (used_type_hasher): Likewise.
4481         * function.c (temp_address_hasher): Likewise.
4482         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4483         * libfuncs.h (libfunc_hasher): Likewise.
4484         * lto-streamer.h (decl_state_hasher): Likewise.
4485         * optabs.c (libfunc_decl_hasher): Likewise.
4486         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4487         * varasm.c (section_hasher, object_block_hasher): Likewise.
4488         (const_rtx_desc_hasher): Likewise.
4489         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4490         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4491
4492 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4493
4494         * hash-traits.h (free_ptr_hash): New class.
4495         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4496         rather than typed_free_remove.  Remove redudant typedefs.
4497         (external_ref_hasher): Likewise.
4498         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4499         (ehspec_hasher): Likewise.
4500         * ggc-common.c (saving_hasher): Likewise.
4501         * gimplify.c (gimplify_hasher): Likewise.
4502         * haifa-sched.c (delay_i2_hasher): Likewise.
4503         * loop-invariant.c (invariant_expr_hasher): Likewise.
4504         * loop-iv.c (biv_entry_hasher): Likewise.
4505         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4506         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4507         * tree-cfg.c (locus_discrim_hasher): Likewise.
4508         * tree-eh.c (finally_tree_hasher): Likewise.
4509         * tree-into-ssa.c (var_info_hasher): Likewise.
4510         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4511         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4512         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4513         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4514         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4515         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4516         (shared_bitmap_hasher): Likewise.
4517         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4518         * tree-vectorizer.h (peel_info_hasher): Likewise.
4519         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4520         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4521
4522 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4523
4524         * hash-table.h: Update comments.
4525         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4526         (nofree_ptr_hash): New class.
4527         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4528         than typed_noop_remove.  Remove redudant typedefs.
4529         * attribs.c (attribute_hasher): Likewise.
4530         * cfg.c (bb_copy_hasher): Likewise.
4531         * cselib.c (cselib_hasher): Likewise.
4532         * dse.c (invariant_group_base_hasher): Likewise.
4533         * dwarf2cfi.c (trace_info_hasher): Likewise.
4534         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4535         (comdat_type_hasher, loc_list_hasher): Likewise.
4536         * gcse.c (pre_ldst_expr_hasher): Likewise.
4537         * genmatch.c (id_base): Likewise.
4538         * genrecog.c (test_pattern_hasher): Likewise.
4539         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4540         * haifa-sched.c (delay_i1_hasher): Likewise.
4541         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4542         * ipa-icf.h (congruence_class_group_hash): Likewise.
4543         * ipa-profile.c (histogram_hash): Likewise.
4544         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4545         * lto-streamer.h (string_slot_hasher): Likewise.
4546         * lto-streamer.c (tree_entry_hasher): Likewise.
4547         * plugin.c (event_hasher): Likewise.
4548         * postreload-gcse.c (expr_hasher): Likewise.
4549         * store-motion.c (st_expr_hasher): Likewise.
4550         * tree-sra.c (uid_decl_hasher): Likewise.
4551         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4552         (ssa_name_var_hash): Likewise.
4553         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4554         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4555         * tree-ssa-pre.c (pre_expr_d): Likewise.
4556         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4557         * vtable-verify.h (registration_hasher): Likewise.
4558         * vtable-verify.c (vtbl_map_hasher): Likewise.
4559         * config/arm/arm.c (libcall_hasher): Likewise.
4560         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4561         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4562         * config/sol2.c (comdat_entry_hasher): Likewise.
4563         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4564         (print_fold_checksum, fold_checksum_tree): Likewise.
4565         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4566         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4567         (fold_build_call_array_loc): Likewise.
4568         * tree-ssa-ccp.c (gimple_htab): Likewise.
4569         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4570         rather than pointer_type.
4571
4572 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4573
4574         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4575         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4576
4577 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4578
4579         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4580         (ggc_hasher::ggc_mx): Likewise.
4581         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4582         that duplicate ggc_hasher ones.
4583
4584 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4585
4586         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4587         (gt_cleare_cache): Check here for deleted and empty entries.
4588         Replace handle_cache_entry with a call to keep_cache_entry.
4589         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4590         (ggc_cache_hasher::keep_cache_entry): New function.
4591         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4592         (tm_wrapper_hasher::keep_cache_entry): New function.
4593         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4594         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4595         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4596         (type_cache_hasher::keep_cache_entry): New function.
4597         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4598         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4599         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4600         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4601         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4602         (tm_clone_hasher::keep_cache_entry): New function.
4603         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4604         (dllimport_hasher::keep_cache_entry): New function.
4605
4606 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4607
4608         * hash-table.h: Include hash-traits.h.
4609         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4610         (ggc_cache_hasher): Move to...
4611         * hash-traits.h: ...this new file.
4612
4613 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4614
4615         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4616         struct cl_optimization.
4617         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4618         * tree.c (make_node_stat): Allocate cl_optimization struct.
4619         (copy_node_stat): Allocate and copy cl_optimization struct.
4620
4621 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4622
4623         * function.h (struct incoming_args): Move struct.
4624         (pass_by_reference, reference_callee_copied): Remove prototypes.
4625         * emit-rtl.h (struct incoming_args): Relocate struct here.
4626         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4627         prototypes here.
4628         * function.c (pass_by_reference, reference_callee_copied): Move.
4629         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4630         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4631         * ipa-chkp.c: Include calls.h.
4632
4633 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4634
4635         * alias.h (alias_set_type): Move typedef.
4636         * coretypes.h (alias_set_type): Relocate typedef here.
4637         * rtl.h: Don't include alias.h.
4638
4639 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4640
4641         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4642         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4643         and instance.
4644         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4645         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4646         doesn't exist.
4647         * calls.c: Include hard-reg-set.h before rtl.h.
4648         * ira.c: Likewise.
4649
4650 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4651             Vladimir Makarov  <vmakarov@redhat.com>
4652
4653         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4654         Add assert.
4655
4656 2015-06-25  Richard Biener  <rguenther@suse.de>
4657
4658         * fold-const.c (fold_binary_loc): Move simplification of
4659         (X <<>> C1) & C2 ...
4660         * match.pd: ... here.
4661
4662 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4663
4664         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4665
4666 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4667
4668         * match.pd: Add patterns for vec_conds between 1 and 0.
4669
4670 2015-06-25  Richard Biener  <rguenther@suse.de>
4671
4672         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4673         STMT_VINFO_VEC_STMT for SLP.
4674         (vectorizable_store): Likewise.
4675         (vectorizable_load): Likewise.
4676         (vect_transform_stmt): Catch SLP vectorization clobbering
4677         STMT_VINFO_VEC_STMT.
4678
4679 2015-06-25  Richard Biener  <rguenther@suse.de>
4680
4681         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4682         dumping.
4683         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4684         cleanup resulting dead code and parameters.
4685         (vect_transform_slp_perm_load): Adjust.
4686
4687 2015-06-25  Nick Clifton  <nickc@redhat.com>
4688
4689         * config/bfin/bfin.c (bfin_expand_prologue): Set
4690         current_function_static_stack_size if flag_stack_usage_info is set.
4691         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4692         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4693         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4694         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4695
4696 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4697
4698         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4699         comment that the generated IV is unsigned.
4700
4701 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4702
4703         PR target/29693
4704         * config/arm/arm.c (arm_dbx_register_number): Return
4705         DWARF_FRAME_REGISTERS by default.
4706
4707 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4708
4709         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4710         argument.  Call verify_dominator when reusing dominator info.
4711
4712 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4713
4714         PR target/66563
4715         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4716         an additional element of the unspec vector.  Modify indices
4717         of operands.
4718         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4719         * config/sh/sh.c (prepare_move_operands): Pass incremented
4720         const_int to gen_GOTaddr2picreg.
4721         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4722
4723 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4724
4725         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4726         Condition on TARGET_FLOAT.
4727
4728 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4729
4730         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4731         and (no)crypto.
4732
4733 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4734
4735         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4736
4737         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4738         aarch64_err_no_fpadvsimd.
4739
4740         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4741         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4742         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4743         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4744         Turn error into assert, test TARGET_FLOAT.
4745         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4746         TARGET_FLOAT.
4747
4748 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4749
4750         PR debug/66482
4751         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4752
4753 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4754
4755         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
4756
4757 2015-06-24 Renlin Li <renlin.li@arm.com>
4758
4759         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
4760         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
4761
4762 2015-06-24  Richard Biener  <rguenther@suse.de>
4763
4764         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
4765         (main): Likewise.
4766         (lower_opt_convert): Support lowering of conditional view_convert.
4767         (parser::parse_operation): Likewise.
4768         (parser::parse_for): Likewise.
4769
4770 2015-06-24  Renlin Li  <renlin.li@arm.com>
4771
4772         * varasm.c (emit_local): Use unsigned int for align variable.
4773
4774 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4775
4776         PR target/63408
4777         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
4778         for negative numbers.
4779
4780 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4781
4782         PR rtl-optimization/66306
4783         * reload.c (find_reloads): Swap the match_dup info for
4784         commutative operands.
4785
4786 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4787
4788         * config/s390/vx-builtins.md
4789         ("vec_scatter_element<mode>_<non_vec_int>")
4790         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
4791         attribute with bhfgq.
4792
4793 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4794
4795         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
4796
4797 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4798
4799         * config/s390/s390-builtin-types.def: Add flag to indicate the
4800         options under which the function type is needed.
4801         * config/s390/s390-builtins.def: Add flag to indicate the options
4802         under which the builtin is enabled.
4803         * config/s390/s390-builtins.h: Add flags parameter to macro
4804         definitions.
4805         (bflags_for_builtin): New function.
4806         (flags_for_builtin): Renamed to ...
4807         (opflags_for_builtin): ... this.
4808         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
4809         flags_for_builtin to bflags_for_builtin and
4810         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
4811         * config/s390/s390.c: Add initialization of bflags_builtin and
4812         opflags_builtin arrays.
4813         Remove code for flags_builtin.
4814         (s390_init_builtins): Only create builtin function types if one of
4815         their flags is active.
4816         Only create builtins if all of their flags are active.
4817         (s390_expand_builtin): Rename flags_for_builtin to
4818         opflags_for_builtin.
4819
4820 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4821
4822         * config/s390/vecintrin.h: Remove internal builtins.
4823
4824 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4825
4826         * config/s390/s390.c (s390_secondary_reload): Fix check for
4827         GENERAL_REGS register class.
4828
4829 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4830
4831         * config/s390/s390.c (s390_support_vector_misalignment): Call
4832         default implementation for !TARGET_VX.
4833
4834 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4835
4836         * config/s390/s390.c (s390_legitimate_constant_p): Add
4837         TARGET_VX check.
4838
4839 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4840
4841         * config/s390/s390.c (s390_vector_abi): New variable definition.
4842         (s390_check_type_for_vector_abi): New function.
4843         (TARGET_ASM_FILE_END): New macro definition.
4844         (s390_asm_file_end): New function.
4845         (s390_function_arg): Call s390_check_type_for_vector_abi.
4846         (s390_gimplify_va_arg): Likewise.
4847         * configure: Regenerate.
4848         * configure.ac: Check for .gnu_attribute Binutils feature.
4849
4850 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
4851
4852         PR target/65803
4853         * config/bfin/bfin.c (hwloop_optimize): Initialize
4854         JUMP_LABEL for newly created jump.
4855
4856 2015-06-23  Tristan Gingold  <gingold@adacore.com>
4857
4858         * collect-utils.c (collect_wait): Unlink the response file here
4859         instead of...
4860         (do_wait): ...here.
4861         (utils_cleanup): ...and here.
4862
4863 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
4864
4865         * df-scan.c: Don't include target-def.h.
4866         * targhooks.c: Likewise.
4867         * config/arm/arm-c.c: Likewise.
4868         * config/i386/i386-c.c: Likewise.
4869         * config/nds32/nds32-cost.c: Likewise.
4870         * config/nds32/nds32-fp-as-gp.c: Likewise.
4871         * config/nds32/nds32-intrinsic.c: Likewise.
4872         * config/nds32/nds32-isr.c: Likewise.
4873         * config/nds32/nds32-md-auxiliary.c: Likewise.
4874         * config/nds32/nds32-memory-manipulation.c: Likewise.
4875         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4876         * config/nds32/nds32-predicates.c: Likewise.
4877
4878 2015-06-23  Richard Biener  <rguenther@suse.de>
4879
4880         PR tree-optimization/66636
4881         * tree-vect-stmts.c (vectorizable_store): Properly compute the
4882         def type for further defs for strided stores.
4883
4884 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
4885
4886         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
4887         conditional selects.
4888         (setcc_int<mode>, setcc_float<mode>): Reformat.
4889
4890 2015-06-23  Marek Polacek  <polacek@redhat.com>
4891
4892         * match.pd ((x + y) - (x | y) -> x & y,
4893         (x + y) - (x & y) -> x | y): New patterns.
4894
4895 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
4896
4897         PR 65711
4898         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
4899         '-dynamic-linker' within %{!shared: ...}.
4900
4901 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
4902
4903         PR target/66560
4904         * config/i386/predicates.md (addsub_vm_operator): New predicate.
4905         (addsub_vs_operator): Ditto.
4906         (addsub_vs_parallel): Ditto.
4907         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
4908         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
4909         Put minus RTX before plus and adjust vec_merge selector.
4910         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
4911         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
4912         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
4913         (addsub vec_merge splitters): New combiner splitters.
4914         (addsub vec_select/vec_concat splitters): Ditto.
4915
4916 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
4917
4918         PR tree-optimization/66449
4919         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
4920         POINTER_PLUS_EXPR for pointers.
4921
4922 2015-06-23  Alan Modra  <amodra@gmail.com>
4923
4924         * rtlanal.c (commutative_operand_precedence): Correct comments.
4925         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
4926         declaration.  Return an int.  Distinguish REG,REG return from
4927         others.
4928         (struct simplify_plus_minus_op_data): Make local to function.
4929         (simplify_plus_minus): Don't set canonicalized if merely sorting
4930         registers.  Avoid packing ops if nothing changes.  White space fixes.
4931
4932 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
4933
4934         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
4935         -fdump-ada-spec is passed but not if -fsyntax-only is.
4936
4937 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
4938
4939         PR bootstrap/63740
4940         * lra-lives.c (process_bb_lives): Check insn copying the same
4941         reload pseudo and don't create a copy for it.
4942
4943 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4944
4945         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
4946         for cond_stmt.
4947
4948 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4949
4950         * builtins.def (DEF_GOMP_BUILTIN): Test
4951         'flag_tree_parallelize_loops > 1' instead of
4952         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
4953
4954 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4955
4956         * dominance.c (calculate_dominance_info): Verify dominators if
4957         early-out.
4958
4959 2015-06-22  Marek Polacek  <polacek@redhat.com>
4960
4961         * match.pd ((x ^ y) ^ (x | y) -> x & y,
4962         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
4963         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
4964         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
4965
4966 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
4967
4968         PR target/65871
4969         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
4970         cost of embedded comparison.
4971
4972 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4973
4974         PR target/65914
4975         * config/rs6000/predicates.md (altivec_register_operand): Permit
4976         virtual stack registers.
4977         (vsx_register_operand): Likewise.
4978         (vfloat_operand): Likewise.
4979         (vint_operand): Likewise.
4980         (vlogical_operand): Likewise.
4981
4982 2015-06-22  Richard Biener  <rguenther@suse.de>
4983
4984         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
4985         and single_scalar_iteration_cost members.
4986         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
4987         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
4988         (vect_get_single_scalar_iteration_cost): Remove.
4989         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
4990         Use LOOP_VINFO_SCALAR_ITERATION_COST.
4991         * tree-vect-loop.c (destroy_loop_vec_info): Free
4992         scalar_cost_vec.
4993         (vect_get_single_scalar_iteration_cost): Compute result into
4994         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
4995         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
4996         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
4997         (vect_estimate_min_profitable_iters): Use them.
4998
4999 2015-06-22  Christian Bruel  <christian.bruel@st.com>
5000
5001         PR target/52144
5002         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
5003         (TARGET_INSERT_ATTRIBUTES): Define.
5004         (thumb_flipper): New var.
5005         * config/arm/arm.opt (-mflip-thumb): New switch.
5006
5007 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5008             Martin Liska  <mliska@suse.cz>
5009
5010         PR ipa/65908
5011         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
5012         construction of arg_types.
5013         (sem_function::sem_function): Likewise.
5014         (sem_function::~sem_function): Remove destruction of arg_types.
5015         (sem_function::compatible_parm_types_p): New function.
5016         (sem_function::equals_wpa): Reorg matching of return values
5017         and parameter types.
5018         (sem_function::equals_private): Reorg mathcing of argument types.
5019         (sem_function::parse_tree_args): Remove.
5020         * ipa-icf.h (init_wpa): Do not call it.
5021         (parse_tree_args): Remove.
5022         (compatible_parm_types_p): Declare.
5023         (result_type): Remove.
5024         (arg_types): Remove.
5025
5026 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5027
5028         PR ipa/66351
5029         * ipa-polymorphic-call.c
5030         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
5031         initializing alias oracle; fix formating; set base_alias_set if it
5032         is known.
5033
5034 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
5035
5036         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
5037         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
5038         (find_inc): Likewise.
5039         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
5040         swapping.
5041         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5042         * df-scan.c (df_swap_refs): Remove.
5043         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
5044         * dominance.c (link_roots): Use std::swap instead of manually swapping.
5045         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
5046         * fold-const.c (fold_relational_const): Likewise.
5047         * genattrtab.c (simplify_test_exp): Likewise.
5048         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
5049         gimple_simplify): Likewise.
5050         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
5051         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
5052         * ipa-devirt.c (add_type_duplicate): Likewise.
5053         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
5054         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
5055         * lra.c (lra_create_copy): Likewise.
5056         * lto-streamer-out.c (DFS::DFS): Likewise.
5057         * modulo-sched.c (get_sched_window): Likewise.
5058         * omega.c (omega_pretty_print_problem): Likewise.
5059         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
5060         * reload1.c (reloads_unique_chain_p): Likewise.
5061         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
5062         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
5063         use std::swap.
5064         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
5065         manually swapping.
5066         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
5067         predicate_mem_writes): Likewise.
5068         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
5069         * tree-predcom.c (combine_chains): Likewise.
5070         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
5071         refs_may_alias_p_1): Likewise.
5072         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
5073         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
5074         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
5075         number_of_iterations_cond): Likewise.
5076         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
5077         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5078         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
5079         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5080         * tree-vrp.c (extract_range_from_binary_expr_1,
5081         extract_range_from_unary_expr_1): Likewise.
5082
5083 2015-06-20  Marek Polacek  <polacek@redhat.com>
5084
5085         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
5086
5087 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5088
5089         PR target/66591
5090         * config/sh/sh.c (prepare_move_operands): Replace subreg
5091         index term with R0 for base and index addressing.
5092
5093 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
5094
5095         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
5096         op1 is an fp zero.
5097         (movsf_aarch64): Change condition from register_operand to
5098         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
5099         load1.  Change type for alternative 7 to store1.
5100         (movdf_aarch64): Likewise.
5101
5102 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
5103
5104         * config/vax/vax.md: Adjust sign/zero extend patterns to
5105         handle SUBREGs in operands[1].
5106
5107 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5108
5109         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5110         of manually swapping.
5111         (expand_vec_perm_interleave2): Likewise.
5112
5113 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
5114
5115         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5116         reuse bounds created for abnormal ssa names.
5117
5118 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
5119
5120         * config/nvptx/nvptx.md (allocate_stack): Rename to...
5121         (allocate_stack_<mode>): ... this, and add :P on both
5122         match_operand and unspec.
5123         (allocate_stack): New expander.
5124
5125 2015-06-19  Christian Bruel  <christian.bruel@st.com>
5126
5127         PR target/66541
5128         PR target/52144
5129         * config/arm/arm.c (arm_set_current_function): Handle
5130         explicit default options.
5131
5132 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5133
5134         * config/i386/i386.md (*movsicc_noc_zext): New insn.
5135         (zero-extended cmove with mem peephole2): New pattern.
5136         (cmove with mem peephole2): Merge patterns.
5137
5138 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5139
5140         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5141
5142 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
5143
5144         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5145         * config/mips/mips.md (*madd4<mode>): Ditto.
5146         (*nmadd3<mode>) Ditto.
5147         (*nmadd4<mode>_fastmath): Ditto.
5148         (*nmadd3<mode>_fastmath): Ditto.
5149         (*nmsub4<mode>): Ditto.
5150         (*nmsub3<mode>): Ditto.
5151         (*nmsub4<mode>_fastmath): Ditto.
5152         (*nmsub3<mode>_fastmath): Ditto.
5153
5154 2015-06-18  Michael Matz  <matz@suse.de>
5155
5156         PR middle-end/66253
5157         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5158         grouped strided stores.
5159         (vectorizable_load): Don't use the DR from first_stmt in
5160         the non-SLP grouped strided case.
5161
5162 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5163
5164         PR target/66569
5165         * function.c (assign_bounds): Add arguments assign_regs,
5166         assign_special, assign_bt.
5167         (assign_parms): For vararg functions handle bounds in BT
5168         and special slots after incoming vararg bounds.
5169
5170 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5171
5172         PR middle-end/66568
5173         * cfgexpand.c (expand_return): Handle missing bounds.
5174         (expand_gimple_stmt_1): Likewise.
5175         * tree-chkp.c (chkp_expand_zero_bounds): New.
5176         * tree-chkp.h (chkp_expand_zero_bounds): New.
5177
5178 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5179
5180         PR middle-end/66567
5181         * ipa-chkp.c (chkp_maybe_create_clone): Require
5182         functions to be instrumentable.
5183         * tree-chkp.c (chkp_replace_function_pointer): Use
5184         chkp_instrumentable_p instead of attribute check.
5185
5186 2015-06-18  Richard Biener  <rguenther@suse.de>
5187
5188         PR tree-optimization/66510
5189         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5190         number of vector loads for SLP permuted loads.
5191         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5192         check the stride for loop vectorization.
5193         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5194         vectorization factor.
5195         (vect_analyze_group_access): If the group size is not a power
5196         of two require a epilogue loop.
5197         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5198         compute and optimizing and alias test pruning after final
5199         vectorization factor computation.
5200         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5201         vector alignment.
5202         (vect_transform_slp_perm_load): Properly compute the original
5203         number of vector load stmts.
5204
5205 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5206
5207         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5208         "unlikely character , in @var" warning.
5209
5210 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5211
5212         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5213         (ix86_function_arg_advance): Ditto.
5214         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5215
5216 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5217
5218         * function.h (struct rtl_data): Remove struct and accessor macros.
5219         * emit-rtl.h (struct rtl_data): Relocate to here.
5220         * Makefile.in (GTFILES): Add emit-rtl.h.
5221         * df-core.c: Include emit-rtl.h.
5222         * genattrtab.c: Likewise.
5223         * genconditions.c: Likewise.
5224         * genpreds.c: Likewise.
5225         * genrecog.c: Likewise.
5226         * regcprop.c: Likewise.
5227         * resource.c: Likewise.
5228         * sched-rgn.c: Likewise.
5229         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5230         * config/i386/winnt.c: Likewise.
5231
5232 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5233
5234         PR middle-end/66429
5235         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5236         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5237         and has_force_vectorize_loops flags from cfun into
5238         child_cfun.
5239         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5240         if simduid is non-NULL.
5241         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5242         * passes.def (pass_simduid_cleanup): Add new pass after loop
5243         passes.
5244         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5245         indirection from htab argument's type.
5246         (shrink_simd_arrays): New function.
5247         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5248         Don't call adjust_simduid_builtins if there are no loops.
5249         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5250         (pass_simduid_cleanup::execute): New method.
5251         (make_pass_simduid_cleanup): New function.
5252
5253 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5254
5255         * tree-core.h (tree_target_option): Make opts field a pointer to a
5256         cl_target_option instead of an instance of the struct.
5257         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5258         the structure.
5259         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5260         TARGET_OPTION_NODE.
5261         (copy_node_stat): Allocate and copy struct cl_target_option.
5262
5263 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5264
5265         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5266         Remove conditional exposure of prototypes.
5267         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5268         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5269         definitions in tree.h with functions.
5270         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5271         anon_aggrname_p.
5272         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5273
5274 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5275
5276         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5277         (*cmp<mode>_signed): ... this.
5278         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5279         (*cmp<mode>_unsigned): ... this.  Remove %b.
5280
5281 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5282
5283         * coretypes.h: Include input.h and as-a.h.
5284         * rtl.h: Include input.h and as-a.h for generator files.
5285         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5286         * vec.c: Don't include diagnostic-core.h.
5287         * alias.c: Do not include input.h, line-map.h or is-a.h.
5288         * asan.c: Likewise.
5289         * attribs.c: Likewise.
5290         * auto-inc-dec.c: Likewise.
5291         * auto-profile.c: Likewise.
5292         * bb-reorder.c: Likewise.
5293         * bt-load.c: Likewise.
5294         * builtins.c: Likewise.
5295         * caller-save.c: Likewise.
5296         * calls.c: Likewise.
5297         * ccmp.c: Likewise.
5298         * cfg.c: Likewise.
5299         * cfganal.c: Likewise.
5300         * cfgbuild.c: Likewise.
5301         * cfgcleanup.c: Likewise.
5302         * cfgexpand.c: Likewise.
5303         * cfghooks.c: Likewise.
5304         * cfgloop.c: Likewise.
5305         * cfgloop.h: Likewise.
5306         * cfgloopanal.c: Likewise.
5307         * cfgloopmanip.c: Likewise.
5308         * cfgrtl.c: Likewise.
5309         * cgraph.c: Likewise.
5310         * cgraphbuild.c: Likewise.
5311         * cgraphclones.c: Likewise.
5312         * cgraphunit.c: Likewise.
5313         * cilk-common.c: Likewise.
5314         * combine-stack-adj.c: Likewise.
5315         * combine.c: Likewise.
5316         * compare-elim.c: Likewise.
5317         * convert.c: Likewise.
5318         * coverage.c: Likewise.
5319         * cppbuiltin.c: Likewise.
5320         * cprop.c: Likewise.
5321         * cse.c: Likewise.
5322         * cselib.c: Likewise.
5323         * data-streamer-in.c: Likewise.
5324         * data-streamer-out.c: Likewise.
5325         * data-streamer.c: Likewise.
5326         * dbxout.c: Likewise.
5327         * dce.c: Likewise.
5328         * ddg.c: Likewise.
5329         * debug.c: Likewise.
5330         * df-core.c: Likewise.
5331         * df-problems.c: Likewise.
5332         * df-scan.c: Likewise.
5333         * df.h: Likewise.
5334         * dfp.c: Likewise.
5335         * diagnostic-core.h: Likewise.
5336         * diagnostic.c: Likewise.
5337         * dojump.c: Likewise.
5338         * dominance.c: Likewise.
5339         * domwalk.c: Likewise.
5340         * double-int.c: Likewise.
5341         * dse.c: Likewise.
5342         * dumpfile.c: Likewise.
5343         * dumpfile.h: Likewise.
5344         * dwarf2asm.c: Likewise.
5345         * dwarf2cfi.c: Likewise.
5346         * dwarf2out.c: Likewise.
5347         * emit-rtl.c: Likewise.
5348         * et-forest.c: Likewise.
5349         * except.c: Likewise.
5350         * explow.c: Likewise.
5351         * expmed.c: Likewise.
5352         * expr.c: Likewise.
5353         * final.c: Likewise.
5354         * fixed-value.c: Likewise.
5355         * fold-const.c: Likewise.
5356         * function.c: Likewise.
5357         * fwprop.c: Likewise.
5358         * gcc-plugin.h: Likewise.
5359         * gcse.c: Likewise.
5360         * generic-match-head.c: Likewise.
5361         * ggc-page.c: Likewise.
5362         * gimple-builder.c: Likewise.
5363         * gimple-expr.c: Likewise.
5364         * gimple-fold.c: Likewise.
5365         * gimple-iterator.c: Likewise.
5366         * gimple-low.c: Likewise.
5367         * gimple-match-head.c: Likewise.
5368         * gimple-pretty-print.c: Likewise.
5369         * gimple-ssa-isolate-paths.c: Likewise.
5370         * gimple-ssa-strength-reduction.c: Likewise.
5371         * gimple-streamer-in.c: Likewise.
5372         * gimple-streamer-out.c: Likewise.
5373         * gimple-streamer.h: Likewise.
5374         * gimple-walk.c: Likewise.
5375         * gimple.c: Likewise.
5376         * gimplify-me.c: Likewise.
5377         * gimplify.c: Likewise.
5378         * godump.c: Likewise.
5379         * graph.c: Likewise.
5380         * graphite-blocking.c: Likewise.
5381         * graphite-dependences.c: Likewise.
5382         * graphite-interchange.c: Likewise.
5383         * graphite-isl-ast-to-gimple.c: Likewise.
5384         * graphite-optimize-isl.c: Likewise.
5385         * graphite-poly.c: Likewise.
5386         * graphite-scop-detection.c: Likewise.
5387         * graphite-sese-to-poly.c: Likewise.
5388         * graphite.c: Likewise.
5389         * haifa-sched.c: Likewise.
5390         * hw-doloop.c: Likewise.
5391         * ifcvt.c: Likewise.
5392         * init-regs.c: Likewise.
5393         * input.c: Likewise.
5394         * internal-fn.c: Likewise.
5395         * ipa-chkp.c: Likewise.
5396         * ipa-comdats.c: Likewise.
5397         * ipa-cp.c: Likewise.
5398         * ipa-devirt.c: Likewise.
5399         * ipa-icf-gimple.c: Likewise.
5400         * ipa-icf.c: Likewise.
5401         * ipa-inline-analysis.c: Likewise.
5402         * ipa-inline-transform.c: Likewise.
5403         * ipa-inline.c: Likewise.
5404         * ipa-polymorphic-call.c: Likewise.
5405         * ipa-profile.c: Likewise.
5406         * ipa-prop.c: Likewise.
5407         * ipa-pure-const.c: Likewise.
5408         * ipa-ref.c: Likewise.
5409         * ipa-reference.c: Likewise.
5410         * ipa-split.c: Likewise.
5411         * ipa-utils.c: Likewise.
5412         * ipa-visibility.c: Likewise.
5413         * ipa.c: Likewise.
5414         * ira-build.c: Likewise.
5415         * ira-color.c: Likewise.
5416         * ira-conflicts.c: Likewise.
5417         * ira-costs.c: Likewise.
5418         * ira-emit.c: Likewise.
5419         * ira-lives.c: Likewise.
5420         * ira.c: Likewise.
5421         * jump.c: Likewise.
5422         * langhooks.c: Likewise.
5423         * lcm.c: Likewise.
5424         * loop-doloop.c: Likewise.
5425         * loop-init.c: Likewise.
5426         * loop-invariant.c: Likewise.
5427         * loop-iv.c: Likewise.
5428         * loop-unroll.c: Likewise.
5429         * lower-subreg.c: Likewise.
5430         * lra-assigns.c: Likewise.
5431         * lra-coalesce.c: Likewise.
5432         * lra-constraints.c: Likewise.
5433         * lra-eliminations.c: Likewise.
5434         * lra-lives.c: Likewise.
5435         * lra-remat.c: Likewise.
5436         * lra-spills.c: Likewise.
5437         * lra.c: Likewise.
5438         * lto-cgraph.c: Likewise.
5439         * lto-compress.c: Likewise.
5440         * lto-opts.c: Likewise.
5441         * lto-section-in.c: Likewise.
5442         * lto-section-out.c: Likewise.
5443         * lto-streamer-in.c: Likewise.
5444         * lto-streamer-out.c: Likewise.
5445         * lto-streamer.c: Likewise.
5446         * mcf.c: Likewise.
5447         * mode-switching.c: Likewise.
5448         * modulo-sched.c: Likewise.
5449         * omega.c: Likewise.
5450         * omp-low.c: Likewise.
5451         * optabs.c: Likewise.
5452         * opts-global.c: Likewise.
5453         * opts.h: Likewise.
5454         * passes.c: Likewise.
5455         * plugin.c: Likewise.
5456         * postreload-gcse.c: Likewise.
5457         * postreload.c: Likewise.
5458         * predict.c: Likewise.
5459         * pretty-print.h: Likewise.
5460         * print-rtl.c: Likewise.
5461         * print-tree.c: Likewise.
5462         * profile.c: Likewise.
5463         * real.c: Likewise.
5464         * realmpfr.c: Likewise.
5465         * recog.c: Likewise.
5466         * ree.c: Likewise.
5467         * reg-stack.c: Likewise.
5468         * regcprop.c: Likewise.
5469         * reginfo.c: Likewise.
5470         * regrename.c: Likewise.
5471         * regstat.c: Likewise.
5472         * reload.c: Likewise.
5473         * reload1.c: Likewise.
5474         * reorg.c: Likewise.
5475         * resource.c: Likewise.
5476         * rtl-chkp.c: Likewise.
5477         * rtl-error.c: Likewise.
5478         * rtlanal.c: Likewise.
5479         * rtlhooks.c: Likewise.
5480         * sanopt.c: Likewise.
5481         * sched-deps.c: Likewise.
5482         * sched-ebb.c: Likewise.
5483         * sched-rgn.c: Likewise.
5484         * sched-vis.c: Likewise.
5485         * sdbout.c: Likewise.
5486         * sel-sched-dump.c: Likewise.
5487         * sel-sched-ir.c: Likewise.
5488         * sel-sched.c: Likewise.
5489         * sese.c: Likewise.
5490         * shrink-wrap.c: Likewise.
5491         * simplify-rtx.c: Likewise.
5492         * stack-ptr-mod.c: Likewise.
5493         * statistics.c: Likewise.
5494         * stmt.c: Likewise.
5495         * stor-layout.c: Likewise.
5496         * store-motion.c: Likewise.
5497         * streamer-hooks.c: Likewise.
5498         * stringpool.c: Likewise.
5499         * symtab.c: Likewise.
5500         * target-globals.c: Likewise.
5501         * targhooks.c: Likewise.
5502         * toplev.c: Likewise.
5503         * tracer.c: Likewise.
5504         * trans-mem.c: Likewise.
5505         * tree-affine.c: Likewise.
5506         * tree-browser.c: Likewise.
5507         * tree-call-cdce.c: Likewise.
5508         * tree-cfg.c: Likewise.
5509         * tree-cfgcleanup.c: Likewise.
5510         * tree-chkp-opt.c: Likewise.
5511         * tree-chkp.c: Likewise.
5512         * tree-chrec.c: Likewise.
5513         * tree-complex.c: Likewise.
5514         * tree-data-ref.c: Likewise.
5515         * tree-dfa.c: Likewise.
5516         * tree-diagnostic.c: Likewise.
5517         * tree-dump.c: Likewise.
5518         * tree-eh.c: Likewise.
5519         * tree-emutls.c: Likewise.
5520         * tree-if-conv.c: Likewise.
5521         * tree-inline.c: Likewise.
5522         * tree-into-ssa.c: Likewise.
5523         * tree-iterator.c: Likewise.
5524         * tree-loop-distribution.c: Likewise.
5525         * tree-nested.c: Likewise.
5526         * tree-nrv.c: Likewise.
5527         * tree-object-size.c: Likewise.
5528         * tree-outof-ssa.c: Likewise.
5529         * tree-parloops.c: Likewise.
5530         * tree-phinodes.c: Likewise.
5531         * tree-predcom.c: Likewise.
5532         * tree-pretty-print.c: Likewise.
5533         * tree-profile.c: Likewise.
5534         * tree-scalar-evolution.c: Likewise.
5535         * tree-sra.c: Likewise.
5536         * tree-ssa-address.c: Likewise.
5537         * tree-ssa-alias.c: Likewise.
5538         * tree-ssa-ccp.c: Likewise.
5539         * tree-ssa-coalesce.c: Likewise.
5540         * tree-ssa-copy.c: Likewise.
5541         * tree-ssa-copyrename.c: Likewise.
5542         * tree-ssa-dce.c: Likewise.
5543         * tree-ssa-dom.c: Likewise.
5544         * tree-ssa-dse.c: Likewise.
5545         * tree-ssa-forwprop.c: Likewise.
5546         * tree-ssa-ifcombine.c: Likewise.
5547         * tree-ssa-live.c: Likewise.
5548         * tree-ssa-loop-ch.c: Likewise.
5549         * tree-ssa-loop-im.c: Likewise.
5550         * tree-ssa-loop-ivcanon.c: Likewise.
5551         * tree-ssa-loop-ivopts.c: Likewise.
5552         * tree-ssa-loop-manip.c: Likewise.
5553         * tree-ssa-loop-niter.c: Likewise.
5554         * tree-ssa-loop-prefetch.c: Likewise.
5555         * tree-ssa-loop-unswitch.c: Likewise.
5556         * tree-ssa-loop.c: Likewise.
5557         * tree-ssa-math-opts.c: Likewise.
5558         * tree-ssa-operands.c: Likewise.
5559         * tree-ssa-phiopt.c: Likewise.
5560         * tree-ssa-phiprop.c: Likewise.
5561         * tree-ssa-pre.c: Likewise.
5562         * tree-ssa-propagate.c: Likewise.
5563         * tree-ssa-reassoc.c: Likewise.
5564         * tree-ssa-sccvn.c: Likewise.
5565         * tree-ssa-scopedtables.c: Likewise.
5566         * tree-ssa-sink.c: Likewise.
5567         * tree-ssa-strlen.c: Likewise.
5568         * tree-ssa-structalias.c: Likewise.
5569         * tree-ssa-tail-merge.c: Likewise.
5570         * tree-ssa-ter.c: Likewise.
5571         * tree-ssa-threadedge.c: Likewise.
5572         * tree-ssa-threadupdate.c: Likewise.
5573         * tree-ssa-uncprop.c: Likewise.
5574         * tree-ssa-uninit.c: Likewise.
5575         * tree-ssa.c: Likewise.
5576         * tree-ssanames.c: Likewise.
5577         * tree-stdarg.c: Likewise.
5578         * tree-streamer-in.c: Likewise.
5579         * tree-streamer-out.c: Likewise.
5580         * tree-streamer.c: Likewise.
5581         * tree-switch-conversion.c: Likewise.
5582         * tree-tailcall.c: Likewise.
5583         * tree-vect-data-refs.c: Likewise.
5584         * tree-vect-generic.c: Likewise.
5585         * tree-vect-loop-manip.c: Likewise.
5586         * tree-vect-loop.c: Likewise.
5587         * tree-vect-patterns.c: Likewise.
5588         * tree-vect-slp.c: Likewise.
5589         * tree-vect-stmts.c: Likewise.
5590         * tree-vectorizer.c: Likewise.
5591         * tree-vrp.c: Likewise.
5592         * tree.c: Likewise.
5593         * tsan.c: Likewise.
5594         * ubsan.c: Likewise.
5595         * valtrack.c: Likewise.
5596         * value-prof.c: Likewise.
5597         * var-tracking.c: Likewise.
5598         * varasm.c: Likewise.
5599         * varpool.c: Likewise.
5600         * vmsdbgout.c: Likewise.
5601         * vtable-verify.c: Likewise.
5602         * web.c: Likewise.
5603         * wide-int.cc: Likewise.
5604         * xcoffout.c: Likewise.
5605         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5606         * common/common-targhooks.c: Likewise.
5607         * config/aarch64/aarch64-builtins.c: Likewise.
5608         * config/aarch64/aarch64.c: Likewise.
5609         * config/alpha/alpha.c: Likewise.
5610         * config/arc/arc.c: Likewise.
5611         * config/arm/aarch-common.c: Likewise.
5612         * config/arm/arm-builtins.c: Likewise.
5613         * config/arm/arm-c.c: Likewise.
5614         * config/arm/arm.c: Likewise.
5615         * config/avr/avr-c.c: Likewise.
5616         * config/avr/avr-log.c: Likewise.
5617         * config/avr/avr.c: Likewise.
5618         * config/bfin/bfin.c: Likewise.
5619         * config/c6x/c6x.c: Likewise.
5620         * config/cr16/cr16.c: Likewise.
5621         * config/cris/cris.c: Likewise.
5622         * config/darwin-c.c: Likewise.
5623         * config/darwin.c: Likewise.
5624         * config/default-c.c: Likewise.
5625         * config/epiphany/epiphany.c: Likewise.
5626         * config/epiphany/mode-switch-use.c: Likewise.
5627         * config/epiphany/resolve-sw-modes.c: Likewise.
5628         * config/fr30/fr30.c: Likewise.
5629         * config/frv/frv.c: Likewise.
5630         * config/ft32/ft32.c: Likewise.
5631         * config/glibc-c.c: Likewise.
5632         * config/h8300/h8300.c: Likewise.
5633         * config/i386/i386-c.c: Likewise.
5634         * config/i386/i386.c: Likewise.
5635         * config/i386/msformat-c.c: Likewise.
5636         * config/i386/winnt-cxx.c: Likewise.
5637         * config/i386/winnt-stubs.c: Likewise.
5638         * config/i386/winnt.c: Likewise.
5639         * config/ia64/ia64-c.c: Likewise.
5640         * config/ia64/ia64.c: Likewise.
5641         * config/iq2000/iq2000.c: Likewise.
5642         * config/lm32/lm32.c: Likewise.
5643         * config/m32c/m32c-pragma.c: Likewise.
5644         * config/m32c/m32c.c: Likewise.
5645         * config/m32r/m32r.c: Likewise.
5646         * config/m68k/m68k.c: Likewise.
5647         * config/mcore/mcore.c: Likewise.
5648         * config/mep/mep-pragma.c: Likewise.
5649         * config/mep/mep.c: Likewise.
5650         * config/microblaze/microblaze-c.c: Likewise.
5651         * config/microblaze/microblaze.c: Likewise.
5652         * config/mips/mips.c: Likewise.
5653         * config/mmix/mmix.c: Likewise.
5654         * config/mn10300/mn10300.c: Likewise.
5655         * config/moxie/moxie.c: Likewise.
5656         * config/msp430/msp430-c.c: Likewise.
5657         * config/msp430/msp430.c: Likewise.
5658         * config/nds32/nds32-cost.c: Likewise.
5659         * config/nds32/nds32-fp-as-gp.c: Likewise.
5660         * config/nds32/nds32-intrinsic.c: Likewise.
5661         * config/nds32/nds32-isr.c: Likewise.
5662         * config/nds32/nds32-md-auxiliary.c: Likewise.
5663         * config/nds32/nds32-memory-manipulation.c: Likewise.
5664         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5665         * config/nds32/nds32-predicates.c: Likewise.
5666         * config/nds32/nds32.c: Likewise.
5667         * config/nios2/nios2.c: Likewise.
5668         * config/nvptx/nvptx.c: Likewise.
5669         * config/pa/pa.c: Likewise.
5670         * config/pdp11/pdp11.c: Likewise.
5671         * config/rl78/rl78-c.c: Likewise.
5672         * config/rl78/rl78.c: Likewise.
5673         * config/rs6000/rs6000-c.c: Likewise.
5674         * config/rs6000/rs6000.c: Likewise.
5675         * config/rx/rx.c: Likewise.
5676         * config/s390/s390-c.c: Likewise.
5677         * config/s390/s390.c: Likewise.
5678         * config/sh/sh-c.c: Likewise.
5679         * config/sh/sh-mem.cc: Likewise.
5680         * config/sh/sh.c: Likewise.
5681         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5682         * config/sh/sh_treg_combine.cc: Likewise.
5683         * config/sol2-c.c: Likewise.
5684         * config/sol2-cxx.c: Likewise.
5685         * config/sol2-stubs.c: Likewise.
5686         * config/sol2.c: Likewise.
5687         * config/sparc/sparc-c.c: Likewise.
5688         * config/sparc/sparc.c: Likewise.
5689         * config/spu/spu-c.c: Likewise.
5690         * config/spu/spu.c: Likewise.
5691         * config/stormy16/stormy16.c: Likewise.
5692         * config/tilegx/mul-tables.c: Likewise.
5693         * config/tilegx/tilegx-c.c: Likewise.
5694         * config/tilegx/tilegx.c: Likewise.
5695         * config/tilepro/mul-tables.c: Likewise.
5696         * config/tilepro/tilepro-c.c: Likewise.
5697         * config/tilepro/tilepro.c: Likewise.
5698         * config/v850/v850-c.c: Likewise.
5699         * config/v850/v850.c: Likewise.
5700         * config/vax/vax.c: Likewise.
5701         * config/visium/visium.c: Likewise.
5702         * config/vms/vms-c.c: Likewise.
5703         * config/vms/vms.c: Likewise.
5704         * config/vxworks.c: Likewise.
5705         * config/winnt-c.c: Likewise.
5706         * config/xtensa/xtensa.c: Likewise.
5707
5708 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5709
5710         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5711         function.
5712         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5713
5714 2015-06-17  Richard Biener  <rguenther@suse.de>
5715
5716         PR tree-optimization/66251
5717         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5718         stmts for SLP strided stores.
5719
5720         Revert
5721         2015-05-22  Richard Biener  <rguenther@suse.de>
5722
5723         PR tree-optimization/66251
5724         * tree-vect-stmts.c (vectorizable_conversion): Properly
5725         set STMT_VINFO_VEC_STMT even for the SLP case.
5726
5727         2015-05-26  Michael Matz  <matz@suse.de>
5728
5729         PR middle-end/66251
5730         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5731         STMT_VINFO_VEC_STMT, also with SLP.
5732
5733 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5734
5735         PR target/56766
5736         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5737         (*avx_addsubv4df3_1s): Ditto.
5738         (*sse3_addsubv2df3_1): Ditto.
5739         (*sse3_addsubv2df3_1s): Ditto.
5740         (*avx_addsubv8sf3_1): Ditto.
5741         (*avx_addsubv8sf3_1s): Ditto.
5742         (*sse3_addsubv4sf3_1): Ditto.
5743         (*sse3_addsubv4sf3_1s): Ditto.
5744
5745 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5746
5747         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5748         (SYSROOT_SUFFIX_SPEC): Update.
5749         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5750         (STARTFILE_PREFIX_SPEC): Update.
5751         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5752         (MULTILIB_REQUIRED): New.
5753         (MULTILIB_OSDIRNAMES): New.
5754         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
5755         (MULTILIB_REQUIRED): New.
5756         (MULTILIB_OSDIRNAMES): New.
5757
5758 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
5759
5760         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
5761         * config/aarch64/aarch64-options-extensions.def: Update "fP",
5762         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
5763         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
5764         (AARCH64_FL_PAN): New.
5765         (AARCH64_FL_LOR): New.
5766         (AARCH64_FL_RDMA): New.
5767         (AARCH64_FL_FOR_ARCH8_1): New.
5768         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
5769         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
5770
5771 2015-06-16  Martin Liska  <mliska@suse.cz>
5772
5773         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
5774         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
5775         guard.
5776
5777 2015-06-16  Richard Biener  <rguenther@suse.de>
5778
5779         * tree-vect-stmts.c (vectorizable_store): Adjust.
5780         (vectorizable_load): Likewise.
5781         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5782         Simplify.
5783         (vect_create_data_ref_ptr): Likewise.
5784         (bump_vector_ptr): Adjust.
5785
5786 2015-06-16  Richard Biener  <rguenther@suse.de>
5787
5788         * tree-vect-stmts.c (vectorizable_load): Properly start loads
5789         with the first element if this is grouped loads.
5790
5791 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
5792
5793         * config/arm/arm-protos.h (struct tune_params): Rename
5794         log_op_non_sc to log_op_non_short_circuit, and rename enum
5795         values to expand SC to SHORT_CIRCUIT.
5796         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
5797         to LOG_OP_NON_SHORT_CIRCUIT.
5798         (arm_fastmul_tune):Likewise
5799         (arm_strongarm_tune): Likewise.
5800         (arm_xscale_tune): Likewise.
5801         (arm_9e_tune): Likewise.
5802         (arm_marvell_pj4_tune): Likewise.
5803         (arm_v6t2_tune): Likewise.
5804         (arm_cortex_tune): Likewise.
5805         (arm_cortex_a8_tune): Likewise.
5806         (arm_cortex_a7_tune): Likewise.
5807         (arm_cortex_a15_tune): Likewise.
5808         (arm_cortex_a53_tune): Likewise.
5809         (arm_cortex_a57_tune): Likewise.
5810         (arm_xgene1_tune): Likewise.
5811         (arm_cortex_a5_tune): Likewise.
5812         (arm_cortex_a9_tune): Likewise.
5813         (arm_cortex_a12_tune): Likewise.
5814         (arm_v7m_tune): Likewise.
5815         (arm_cortex_m7_tune): Likewise.
5816         (arm_v6m_tune): Likewise.
5817         (arm_fa726te_tune): Likewise.
5818
5819 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
5820
5821         * altivec.md: Delete UNSPEC_VMLADDUHM.
5822         (mulv4si3_p8): New pattern.
5823         (mulv4si3): Use it for POWER8.
5824         (mulv8hi3): Use vmladduhm with zero addend.
5825         (altivec_vmladduhm): Descriptive RTL.
5826
5827 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
5828
5829         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
5830         to use neon_move instead of mov_imm.
5831         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
5832         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
5833
5834         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
5835         aarch64_float_const_zero_rtx_p check before TFmode check.
5836         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
5837         an fp zero.
5838         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
5839         code and attributes to match.  Change condition from register_operand
5840         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
5841         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
5842         to store2.
5843
5844 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
5845
5846         PR debug/66535
5847         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
5848         there is no parent.
5849
5850 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
5851
5852         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
5853         HOST_WIDE_INT parameter.
5854
5855 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
5856
5857         PR ipa/66181
5858         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
5859         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
5860         TYPE_NO_FORCE_BLK.
5861         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5862
5863 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
5864
5865         * rtl.h (classify_insn): Declare.
5866         * emit-rtl.c (classify_insn): Move to...
5867         * rtl.c: ...here and add generator support.
5868         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
5869         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
5870         * genemit.c (gen_emit_seq): New function.
5871         (gen_expand, gen_split): Use it.
5872
5873 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
5874
5875         * tree.c (make_vector_stat): Fix comment to state that the
5876         function returns a VECTOR_CST.
5877
5878 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
5879
5880         * gensupport.h (add_implicit_parallel): Declare.
5881         * genrecog.c (add_implicit_parallel): Move to...
5882         * gensupport.c (add_implicit_parallel): ...here.
5883         (process_one_cond_exec): Use it.
5884         * genemit.c (gen_insn): Likewise.
5885
5886 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
5887
5888         PR bootstrap/66448
5889         * passes.c (rest_of_decl_compilation): Do not register globals for
5890         early debug if they are declared in built-ins.
5891
5892 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
5893
5894         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
5895
5896 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5897
5898         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
5899         manually swapping.
5900         (noce_try_cmove_arith): Likewise.
5901         (noce_get_alt_condition): Likewise.
5902
5903 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5904
5905         * common/config/i386/i386-common.c
5906         (OPTION_MASK_ISA_MWAITX_SET): New.
5907         (ix86_handle_option): Handle mwaitx.
5908         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
5909         (x86_64-*-*): Likewise.
5910         * config/i386/mwaitxintrin.h: New header.
5911         * config/i386/cpuid.h (bit_MWAITX):  Define.
5912         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5913         MWAITX support.
5914         * config/i386/i386.opt (mwaitx): New.
5915         * config/i386/i386-builtin-types.def
5916         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
5917         * config/i386/i386-c.c: Define __MWAITX__ if needed.
5918         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
5919         (PTA_MWAITX): New.
5920         (ix86_option_override_internal): Handle new option.
5921         (processor_alias_table): Added PTA_MWAITX.
5922         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
5923         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
5924         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
5925         IX86_BUILTIN_MONITORX  built-ins.
5926         * config/i386/i386.h (TARGET_MWAITX): New.
5927         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
5928         UNSPEC_MONITORX.
5929         (mwaitx):  New pattern.
5930         (monitorx_<mode>): New pattern.
5931         * config/i386/x86intrin.h: Include mwaitxintrin.h.
5932         * doc/extend.texi: Document monitorx and mwaitx builtins.
5933         * doc/invoke.texi: Document -mmwaitx option.
5934
5935 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
5936
5937         * emit-rtl.c (need_atomic_barrier_p): Mask model with
5938         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
5939
5940 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5941
5942         * dbxout.c (xcoff_debug_hooks): Provide a function for
5943         register_main_translation_unit hook.
5944
5945 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5946
5947         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
5948         variants cases from switch.
5949         (rs6000_post_atomic_barrier): Same.
5950         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
5951         (rs6000_expand_atomic_exchange): Same.
5952         (rs6000_expand_atomic_op): Same.
5953         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
5954         SYNC variants cases from switch.
5955         (atomic_load): Same.
5956         (atomic_store): Same.
5957
5958 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
5959
5960         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
5961         CONST_INT for goto.
5962
5963 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
5964
5965         PR bootstrap/66448
5966         * dwarf2out.c (check_die): Check for common duplicate attributes.
5967         (add_location_or_const_value_attribute): Do not add duplicate
5968         attributes.
5969         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
5970         time around.
5971         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
5972         (gen_type_die_with_usage): Call check_die.
5973         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
5974
5975 2015-06-11  Jason Merrill  <jason@redhat.com>
5976
5977         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
5978         dies.
5979
5980 2015-06-11  Marek Polacek  <polacek@redhat.com>
5981
5982         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
5983
5984 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5985
5986         PR bootstrap/66252
5987         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
5988         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
5989         (*addx_extend_sp32): Fix pasto.
5990         (*subx_extend): Rename into...
5991         (*subx_extend_sp32): ...this.
5992         (*adddi3_extend_sp32): Add earlyclobber.
5993         (*subdi3_insn_sp32): Likewise.
5994         (*subdi3_extend_sp32): Likewise.
5995         (*and_not_di_sp32): Likewise.
5996         (*or_not_di_sp32): Likewise.
5997         (*xor_not_di_sp32): Likewise.
5998         (*negdi2_sp32): Likewise.
5999         (*one_cmpldi2_sp32): Likewise.
6000
6001 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
6002
6003         * debug.h (struct gcc_debug_hooks): Add a
6004         register_main_translation_unit hook.
6005         * debug.c (do_nothing_debug_hooks): Provide a function for this
6006         new hook.
6007         * dbxout.c (dbx_debug_hooks): Likewise.
6008         * sdbout.c (sdb_debug_hooks): Likewise.
6009         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6010         * dwarf2out.c (main_translation_unit): New global variable.
6011         (dwarf2out_register_main_translation_unit): New function
6012         implementing the new hook.
6013         (dwarf2_debug_hooks): Assign
6014         dwarf2out_register_main_translation_unit to this new hook.
6015         (dwarf2out_init): Associate any main translation unit to
6016         comp_unit_die ().
6017
6018 2015-06-11  Marek Polacek  <polacek@redhat.com>
6019
6020         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
6021
6022 2015-06-11  Marek Polacek  <polacek@redhat.com>
6023
6024         * match.pd: Use single_use throughout.
6025
6026 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6027
6028         * config/arm/arm.c (arm_option_params_internal): When optimising
6029         for speed set max_insns_skipped when arm_restrict_it.
6030
6031 2015-06-11  Christian Bruel  <christian.bruel@st.com>
6032
6033         PR target/52144
6034         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
6035          macros in ...
6036         (arm_cpu_builtins): New function.
6037         (arm_pragma_target_parse): Call arm_cpu_builtins.
6038         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
6039         (arm_register_target_pragmas): Likewise.
6040         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
6041          Call arm_register_target_pragmas.
6042         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
6043         (arm_pragma_target_parse): Likewise.
6044
6045 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6046
6047         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
6048         of the second operand.
6049
6050 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
6051
6052         PR target/66473
6053         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
6054         to prepare mask operand for AVX512 modes.
6055
6056 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6057
6058         PR target/66474
6059         * doc/md.texi (Machine Constraints): Document that on the PowerPC
6060         if you use a constraint that targets a VSX register, you must use
6061         %x<n> in the template.
6062
6063 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
6064
6065         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
6066         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
6067         (define_insn "trap"): New definition.
6068
6069 2015-06-10  Richard Biener  <rguenther@suse.de>
6070
6071         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
6072         out from ...
6073         (vect_supported_load_permutation_p): ... here.  Handle
6074         supportable permutations in reductions.
6075         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
6076         for vectorizing strided group loads.
6077
6078 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
6079
6080         PR target/66470
6081         * config/i386/i386.c (ix86_split_long_move): For collisions
6082         involving direct tls segment refs, move the UNSPEC_TP possibly
6083         wrapped in ZERO_EXTEND out of the address for lea, to each of
6084         the memory loads.
6085
6086 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6087
6088         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
6089         dmb sy. Adjust tabs.
6090
6091 2015-06-10  Tom de Vries  <tom@codesourcery.com>
6092
6093         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
6094
6095 2015-06-10  Martin Liska  <mliska@suse.cz>
6096
6097         PR bootstrap/66471
6098         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
6099         all enum values in mem_alloc_origin.
6100         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
6101         name.
6102         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
6103         * bitmap.c (bitmap_register): Likewise.
6104         (dump_bitmap_statistics): Likewise.
6105         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6106         (ggc_record_overhead): Likewise.
6107         * hash-map.h: Likewise.
6108         * hash-set.h: Likewise.
6109         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6110         * hash-table.h: Likewise.
6111         * vec.c (vec_prefix::register_overhead): Likewise.
6112         (vec_prefix::release_overhead): Likewise.
6113         (dump_vec_loc_statistics): Likewise.
6114
6115 2015-06-09  Christian Bruel  <christian.bruel@st.com>
6116
6117         PR target/52144
6118         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6119         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6120         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6121         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6122         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6123         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6124         (arm_valid_target_attribute_p): Likewise.
6125         (arm_set_current_function, arm_can_inline_p): Likewise.
6126         (arm_valid_target_attribute_rec): Likewise.
6127         (arm_previous_fndecl): New variable.
6128         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6129         (TARGET_CAN_INLINE_P): Define.
6130         (arm_asm_trampoline_template): Emit mode.
6131         (arm_file_start): Don't set unified syntax.
6132         (arm_declare_function_name): Set unified syntax and mode.
6133         (arm_option_override): Init target_option_default_node.
6134         and target_option_current_node.
6135         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6136         (*call_symbol): Likewise.
6137         * doc/extend.texi: Document ARM/Thumb target attribute.
6138         * doc/invoke.texi: Likewise.
6139
6140 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6141
6142         Revert:
6143         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6144         PR rtl-optimization/64164
6145         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6146         * tree-ssa-copyrename.c: Removed.
6147         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6148         -ftree-coalesce-vars.
6149         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6150         * common.opt (ftree-copyrename): Ignore.
6151         (ftree-coalesce-inlined-vars): Likewise.
6152         * doc/invoke.texi: Remove the ignored options above.
6153         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6154         * tree-ssa-coalesce.h: ... here.
6155         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6156         headers required by it.
6157         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6158         across variables when flag_tree_coalesce_vars.  Check register
6159         use and promoted modes to allow coalescing.  Moved to
6160         tree-ssa-coalesce.c.
6161         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6162         with its member functions to tree-ssa-coalesce.c.
6163         (var_map_base_init): Likewise.  Renamed to
6164         compute_samebase_partition_bases.
6165         (partition_view_normal): Drop want_bases parameter.
6166         (partition_view_bitmap): Likewise.
6167         * tree-ssa-live.h: Adjust declarations.
6168         * tree-ssa-coalesce.c: Include explow.h.
6169         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6170         default defs at the entry point.
6171         (dump_part_var_map): New.
6172         (compute_optimized_partition_bases): New, called by...
6173         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6174         of compute_samebase_partition_bases.  Adjust.
6175         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6176         * cfgexpand.c (leader_merge): New.
6177         (get_rtl_for_parm_ssa_default_def): New.
6178         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6179         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6180         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6181         redundant MEM attr setting.
6182         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6183         from...
6184         (expand_one_stack_var): ... this.  New wrapper to check and
6185         skip already expanded SSA partitions.
6186         (record_alignment_for_reg_var): New, factored out of...
6187         (expand_one_var): ... this.
6188         (expand_one_ssa_partition): New.
6189         (adjust_one_expanded_partition_var): New.
6190         (expand_one_register_var): Check and skip already expanded SSA
6191         partitions.
6192         (expand_used_vars): Don't create DECLs for anonymous SSA
6193         names.  Expand all SSA partitions, then adjust all SSA names.
6194         (pass::execute): Replace the loops that set
6195         SA.partition_to_pseudo from partition leaders and cleared
6196         DECL_RTL for multi-location variables, and that which used to
6197         rename vars and set attrs, with one that clears DECL_RTL and
6198         checks that PARMs and RESULTs default_defs match DECL_RTL.
6199         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6200         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6201         * explow.c (promote_ssa_mode): New.
6202         * explow.h (promote_ssa_mode): Declare.
6203         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6204         * function.c: Include cfgexpand.h.
6205         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6206         (use_register_for_parm_decl): Wrapper for the above to
6207         special-case the result_ptr.
6208         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6209         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6210         multiple locations.
6211         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6212         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6213         (assign_parm_setup_block): Prefer SSA-assigned location.
6214         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6215         if stack_parm is NULL.
6216         (assign_parm_setup_stack): Prefer SSA-assigned location.
6217         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6218         rtl before testing for pointer bounds.  Special-case result_ptr.
6219         (expand_function_start): Maybe reset DECL_RTL of result.
6220         Prefer SSA-assigned location for result and static chain.
6221         Factor out DECL_RESULT and SET_DECL_RTL.
6222         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6223         anonymous SSA names.  Use promote_ssa_mode.
6224         (get_temp_reg): Likewise.
6225         (remove_ssa_form): Adjust.
6226         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6227         and get its reg_usage for reg invalidation.
6228         (compute_bb_dataflow): Pass it insn.
6229         (emit_notes_in_bb): Likewise.
6230         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6231         fail assert on conversion between unsigned types.
6232
6233 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6234
6235         PR tree-optimization/65460
6236         * omp-low.c (expand_omp_target): Set parallelized_function on
6237         cgraph_node for child_fn.
6238
6239 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6240
6241         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6242         parallelized_function before add_new_function.
6243
6244 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6245
6246         * gcc-plugin.h: Move decls to plugin.h and include it.
6247         * plugin.h: Relocate decls from gcc-plugin.h
6248         * ggc-page.c: Include required header files.
6249         * passes.c: Likewise.
6250         * cgraphunit.c: Likewise.
6251
6252 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6253
6254         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6255
6256 2015-06-09  Jason Merrill  <jason@redhat.com>
6257
6258         PR bootstrap/66448
6259         * toplev.c (check_global_declaration): Don't warn about a clone.
6260
6261 2015-06-09  Marek Polacek  <polacek@redhat.com>
6262
6263         PR tree-optimization/66299
6264         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6265         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6266         patterns.
6267
6268 2015-06-09  Richard Biener  <rguenther@suse.de>
6269
6270         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6271         (vect_analyze_slp_instance): Instead do not falsely drop
6272         load permutations.
6273
6274 2015-06-09  Richard Biener  <rguenther@suse.de>
6275
6276         PR middle-end/66423
6277         * match.pd: Handle A % (unsigned)(1 << B).
6278
6279 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6280
6281         * varasm.c (output_object_block_htab): Remove.
6282         (output_object_block_compare): New.
6283         (output_object_blocks): Sort named object_blocks before outputting
6284         them.
6285
6286 2015-06-09  Richard Biener  <rguenther@suse.de>
6287
6288         PR tree-optimization/66419
6289         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6290         consider GROUP_GAP when detecting a perfect subchain.
6291
6292 2015-06-09  Nick Clifton  <nickc@redhat.com>
6293
6294         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6295         place read only data in the .frodata section.
6296
6297 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6298
6299         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6300         (atomic_store<mode>): Likewise.
6301
6302 2015-06-09  Richard Biener  <rguenther@suse.de>
6303
6304         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6305
6306 2015-06-09  Richard Biener  <rguenther@suse.de>
6307
6308         PR middle-end/66413
6309         * tree-inline.c (insert_init_debug_bind): Unshare value.
6310
6311 2015-06-09  Richard Biener  <rguenther@suse.de>
6312
6313         PR tree-optimization/66396
6314         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6315         Rename virtual operands.
6316
6317 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6318
6319         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6320         always return false.
6321
6322 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6323
6324         PR rtl-optimization/64164
6325         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6326         * tree-ssa-copyrename.c: Removed.
6327         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6328         -ftree-coalesce-vars.
6329         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6330         * common.opt (ftree-copyrename): Ignore.
6331         (ftree-coalesce-inlined-vars): Likewise.
6332         * doc/invoke.texi: Remove the ignored options above.
6333         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6334         * tree-ssa-coalesce.h: ... here.
6335         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6336         headers required by it.
6337         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6338         across variables when flag_tree_coalesce_vars.  Check register
6339         use and promoted modes to allow coalescing.  Moved to
6340         tree-ssa-coalesce.c.
6341         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6342         with its member functions to tree-ssa-coalesce.c.
6343         (var_map_base_init): Likewise.  Renamed to
6344         compute_samebase_partition_bases.
6345         (partition_view_normal): Drop want_bases parameter.
6346         (partition_view_bitmap): Likewise.
6347         * tree-ssa-live.h: Adjust declarations.
6348         * tree-ssa-coalesce.c: Include explow.h.
6349         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6350         default defs at the entry point.
6351         (dump_part_var_map): New.
6352         (compute_optimized_partition_bases): New, called by...
6353         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6354         of compute_samebase_partition_bases.  Adjust.
6355         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6356         * cfgexpand.c (leader_merge): New.
6357         (get_rtl_for_parm_ssa_default_def): New.
6358         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6359         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6360         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6361         redundant MEM attr setting.
6362         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6363         from...
6364         (expand_one_stack_var): ... this.  New wrapper to check and
6365         skip already expanded SSA partitions.
6366         (record_alignment_for_reg_var): New, factored out of...
6367         (expand_one_var): ... this.
6368         (expand_one_ssa_partition): New.
6369         (adjust_one_expanded_partition_var): New.
6370         (expand_one_register_var): Check and skip already expanded SSA
6371         partitions.
6372         (expand_used_vars): Don't create DECLs for anonymous SSA
6373         names.  Expand all SSA partitions, then adjust all SSA names.
6374         (pass::execute): Replace the loops that set
6375         SA.partition_to_pseudo from partition leaders and cleared
6376         DECL_RTL for multi-location variables, and that which used to
6377         rename vars and set attrs, with one that clears DECL_RTL and
6378         checks that PARMs and RESULTs default_defs match DECL_RTL.
6379         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6380         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6381         * explow.c (promote_ssa_mode): New.
6382         * explow.h (promote_ssa_mode): Declare.
6383         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6384         * function.c: Include cfgexpand.h.
6385         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6386         (use_register_for_parm_decl): Wrapper for the above to
6387         special-case the result_ptr.
6388         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6389         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6390         multiple locations.
6391         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6392         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6393         (assign_parm_setup_block): Prefer SSA-assigned location.
6394         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6395         if stack_parm is NULL.
6396         (assign_parm_setup_stack): Prefer SSA-assigned location.
6397         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6398         rtl before testing for pointer bounds.  Special-case result_ptr.
6399         (expand_function_start): Maybe reset DECL_RTL of result.
6400         Prefer SSA-assigned location for result and static chain.
6401         Factor out DECL_RESULT and SET_DECL_RTL.
6402         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6403         anonymous SSA names.  Use promote_ssa_mode.
6404         (get_temp_reg): Likewise.
6405         (remove_ssa_form): Adjust.
6406         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6407         and get its reg_usage for reg invalidation.
6408         (compute_bb_dataflow): Pass it insn.
6409         (emit_notes_in_bb): Likewise.
6410         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6411         fail assert on conversion between unsigned types.
6412
6413 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6414
6415         PR debug/58315
6416         * tree-inline.c (reset_debug_binding): New.
6417         (reset_debug_bindings): Likewise.
6418         (expand_call_inline): Call it.
6419
6420 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6421
6422         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6423         TYPE_STRING_FLAG.
6424
6425 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6426
6427         * lto-streamer-out.c (lto_output_location): Stream
6428         reserved locations correctly.
6429         * lto-streamer-in.c (lto_output_location): Likewise.
6430
6431 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6432
6433         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6434         * ggc.h: Don't include statistics.h>
6435         * hash-map.h: Remove all includes.
6436         * hash-set.h: Likewise.
6437         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6438         the include list. Remove <new>.
6439         * inchash.h: Remove all includes.
6440         * mem-stats.h: Likewise.
6441         * vec.h: No special processing for generators or ggc.
6442         * alias.c : Adjust include files.
6443         * alloc-pool.c : Likewise.
6444         * alloc-pool.h : Likewise.
6445         * asan.c : Likewise.
6446         * attribs.c : Likewise.
6447         * auto-inc-dec.c : Likewise.
6448         * auto-profile.c : Likewise.
6449         * bb-reorder.c : Likewise.
6450         * bitmap.c : Likewise.
6451         * bitmap.h : Likewise.
6452         * bt-load.c : Likewise.
6453         * builtins.c : Likewise.
6454         * caller-save.c : Likewise.
6455         * calls.c : Likewise.
6456         * ccmp.c : Likewise.
6457         * cfg.c : Likewise.
6458         * cfganal.c : Likewise.
6459         * cfgbuild.c : Likewise.
6460         * cfgcleanup.c : Likewise.
6461         * cfgexpand.c : Likewise.
6462         * cfghooks.c : Likewise.
6463         * cfgloop.c : Likewise.
6464         * cfgloop.h : Likewise.
6465         * cfgloopanal.c : Likewise.
6466         * cfgloopmanip.c : Likewise.
6467         * cfgrtl.c : Likewise.
6468         * cgraph.c : Likewise.
6469         * cgraphbuild.c : Likewise.
6470         * cgraphclones.c : Likewise.
6471         * cgraphunit.c : Likewise.
6472         * cilk-common.c : Likewise.
6473         * combine-stack-adj.c : Likewise.
6474         * combine.c : Likewise.
6475         * compare-elim.c : Likewise.
6476         * context.c : Likewise.
6477         * convert.c : Likewise.
6478         * coverage.c : Likewise.
6479         * cppbuiltin.c : Likewise.
6480         * cprop.c : Likewise.
6481         * cse.c : Likewise.
6482         * cselib.c : Likewise.
6483         * data-streamer-in.c : Likewise.
6484         * data-streamer-out.c : Likewise.
6485         * data-streamer.c : Likewise.
6486         * data-streamer.h : Likewise.
6487         * dbxout.c : Likewise.
6488         * dce.c : Likewise.
6489         * ddg.c : Likewise.
6490         * debug.c : Likewise.
6491         * df-core.c : Likewise.
6492         * df-problems.c : Likewise.
6493         * df-scan.c : Likewise.
6494         * df.h : Likewise.
6495         * dfp.c : Likewise.
6496         * dojump.c : Likewise.
6497         * dominance.c : Likewise.
6498         * domwalk.c : Likewise.
6499         * double-int.c : Likewise.
6500         * dse.c : Likewise.
6501         * dumpfile.c : Likewise.
6502         * dwarf2asm.c : Likewise.
6503         * dwarf2cfi.c : Likewise.
6504         * dwarf2out.c : Likewise.
6505         * emit-rtl.c : Likewise.
6506         * et-forest.c : Likewise.
6507         * except.c : Likewise.
6508         * except.h : Likewise.
6509         * explow.c : Likewise.
6510         * expmed.c : Likewise.
6511         * expr.c : Likewise.
6512         * final.c : Likewise.
6513         * fixed-value.c : Likewise.
6514         * fold-const.c : Likewise.
6515         * function.c : Likewise.
6516         * fwprop.c : Likewise.
6517         * gcc-plugin.h : Likewise.
6518         * gcc.c : Likewise.
6519         * gcse-common.c : Likewise.
6520         * gcse.c : Likewise.
6521         * genattrtab.c : Likewise.
6522         * genautomata.c : Likewise.
6523         * genconditions.c : Likewise.
6524         * genemit.c : Likewise.
6525         * generic-match-head.c : Likewise.
6526         * genextract.c : Likewise.
6527         * gengtype-state.c : Likewise.
6528         * gengtype.c : Likewise.
6529         * genhooks.c : Likewise.
6530         * genmatch.c : Likewise.
6531         * genmodes.c : Likewise.
6532         * genrecog.c : Likewise.
6533         * gensupport.c : Likewise.
6534         * ggc-common.c : Likewise.
6535         * ggc-internal.h : Likewise.
6536         * ggc-none.c : Likewise.
6537         * ggc-page.c : Likewise.
6538         * gimple-builder.c : Likewise.
6539         * gimple-expr.c : Likewise.
6540         * gimple-fold.c : Likewise.
6541         * gimple-iterator.c : Likewise.
6542         * gimple-low.c : Likewise.
6543         * gimple-match-head.c : Likewise.
6544         * gimple-pretty-print.c : Likewise.
6545         * gimple-ssa-isolate-paths.c : Likewise.
6546         * gimple-ssa-strength-reduction.c : Likewise.
6547         * gimple-ssa.h : Likewise.
6548         * gimple-streamer-in.c : Likewise.
6549         * gimple-streamer-out.c : Likewise.
6550         * gimple-streamer.h : Likewise.
6551         * gimple-walk.c : Likewise.
6552         * gimple.c : Likewise.
6553         * gimplify-me.c : Likewise.
6554         * gimplify.c : Likewise.
6555         * godump.c : Likewise.
6556         * graph.c : Likewise.
6557         * graphds.c : Likewise.
6558         * graphite-blocking.c : Likewise.
6559         * graphite-dependences.c : Likewise.
6560         * graphite-interchange.c : Likewise.
6561         * graphite-isl-ast-to-gimple.c : Likewise.
6562         * graphite-optimize-isl.c : Likewise.
6563         * graphite-poly.c : Likewise.
6564         * graphite-scop-detection.c : Likewise.
6565         * graphite-sese-to-poly.c : Likewise.
6566         * graphite.c : Likewise.
6567         * haifa-sched.c : Likewise.
6568         * hard-reg-set.h : Likewise.
6569         * hw-doloop.c : Likewise.
6570         * ifcvt.c : Likewise.
6571         * inchash.c : Likewise.
6572         * incpath.c : Likewise.
6573         * init-regs.c : Likewise.
6574         * input.c : Likewise.
6575         * internal-fn.c : Likewise.
6576         * ipa-chkp.c : Likewise.
6577         * ipa-comdats.c : Likewise.
6578         * ipa-cp.c : Likewise.
6579         * ipa-devirt.c : Likewise.
6580         * ipa-icf-gimple.c : Likewise.
6581         * ipa-icf.c : Likewise.
6582         * ipa-inline-analysis.c : Likewise.
6583         * ipa-inline-transform.c : Likewise.
6584         * ipa-inline.c : Likewise.
6585         * ipa-polymorphic-call.c : Likewise.
6586         * ipa-profile.c : Likewise.
6587         * ipa-prop.c : Likewise.
6588         * ipa-pure-const.c : Likewise.
6589         * ipa-ref.c : Likewise.
6590         * ipa-reference.c : Likewise.
6591         * ipa-split.c : Likewise.
6592         * ipa-utils.c : Likewise.
6593         * ipa-visibility.c : Likewise.
6594         * ipa.c : Likewise.
6595         * ira-build.c : Likewise.
6596         * ira-color.c : Likewise.
6597         * ira-conflicts.c : Likewise.
6598         * ira-costs.c : Likewise.
6599         * ira-emit.c : Likewise.
6600         * ira-lives.c : Likewise.
6601         * ira.c : Likewise.
6602         * jump.c : Likewise.
6603         * langhooks.c : Likewise.
6604         * lcm.c : Likewise.
6605         * libfuncs.h : Likewise.
6606         * lists.c : Likewise.
6607         * loop-doloop.c : Likewise.
6608         * loop-init.c : Likewise.
6609         * loop-invariant.c : Likewise.
6610         * loop-iv.c : Likewise.
6611         * loop-unroll.c : Likewise.
6612         * lower-subreg.c : Likewise.
6613         * lra-assigns.c : Likewise.
6614         * lra-coalesce.c : Likewise.
6615         * lra-constraints.c : Likewise.
6616         * lra-eliminations.c : Likewise.
6617         * lra-lives.c : Likewise.
6618         * lra-remat.c : Likewise.
6619         * lra-spills.c : Likewise.
6620         * lra.c : Likewise.
6621         * lto-cgraph.c : Likewise.
6622         * lto-compress.c : Likewise.
6623         * lto-opts.c : Likewise.
6624         * lto-section-in.c : Likewise.
6625         * lto-section-out.c : Likewise.
6626         * lto-streamer-in.c : Likewise.
6627         * lto-streamer-out.c : Likewise.
6628         * lto-streamer.c : Likewise.
6629         * lto-streamer.h : Likewise.
6630         * mcf.c : Likewise.
6631         * mode-switching.c : Likewise.
6632         * modulo-sched.c : Likewise.
6633         * omega.c : Likewise.
6634         * omp-low.c : Likewise.
6635         * optabs.c : Likewise.
6636         * opts-global.c : Likewise.
6637         * opts.h : Likewise.
6638         * passes.c : Likewise.
6639         * plugin.c : Likewise.
6640         * postreload-gcse.c : Likewise.
6641         * postreload.c : Likewise.
6642         * predict.c : Likewise.
6643         * print-rtl.c : Likewise.
6644         * print-tree.c : Likewise.
6645         * profile.c : Likewise.
6646         * read-md.c : Likewise.
6647         * read-md.h : Likewise.
6648         * read-rtl.c : Likewise.
6649         * real.c : Likewise.
6650         * realmpfr.c : Likewise.
6651         * recog.c : Likewise.
6652         * ree.c : Likewise.
6653         * reg-stack.c : Likewise.
6654         * regcprop.c : Likewise.
6655         * reginfo.c : Likewise.
6656         * regrename.c : Likewise.
6657         * regstat.c : Likewise.
6658         * reload.c : Likewise.
6659         * reload1.c : Likewise.
6660         * reorg.c : Likewise.
6661         * resource.c : Likewise.
6662         * rtl-chkp.c : Likewise.
6663         * rtl.c : Likewise.
6664         * rtl.h : Likewise.
6665         * rtlanal.c : Likewise.
6666         * rtlhash.c : Likewise.
6667         * rtlhash.h : Likewise.
6668         * rtlhooks.c : Likewise.
6669         * sanopt.c : Likewise.
6670         * sched-deps.c : Likewise.
6671         * sched-ebb.c : Likewise.
6672         * sched-rgn.c : Likewise.
6673         * sched-vis.c : Likewise.
6674         * sdbout.c : Likewise.
6675         * sel-sched-dump.c : Likewise.
6676         * sel-sched-ir.c : Likewise.
6677         * sel-sched-ir.h : Likewise.
6678         * sel-sched.c : Likewise.
6679         * sese.c : Likewise.
6680         * shrink-wrap.c : Likewise.
6681         * shrink-wrap.h : Likewise.
6682         * simplify-rtx.c : Likewise.
6683         * stack-ptr-mod.c : Likewise.
6684         * statistics.c : Likewise.
6685         * stmt.c : Likewise.
6686         * stor-layout.c : Likewise.
6687         * store-motion.c : Likewise.
6688         * stringpool.c : Likewise.
6689         * symtab.c : Likewise.
6690         * target-globals.c : Likewise.
6691         * targhooks.c : Likewise.
6692         * tlink.c : Likewise.
6693         * toplev.c : Likewise.
6694         * tracer.c : Likewise.
6695         * trans-mem.c : Likewise.
6696         * tree-affine.c : Likewise.
6697         * tree-affine.h : Likewise.
6698         * tree-browser.c : Likewise.
6699         * tree-call-cdce.c : Likewise.
6700         * tree-cfg.c : Likewise.
6701         * tree-cfgcleanup.c : Likewise.
6702         * tree-chkp-opt.c : Likewise.
6703         * tree-chkp.c : Likewise.
6704         * tree-chrec.c : Likewise.
6705         * tree-complex.c : Likewise.
6706         * tree-data-ref.c : Likewise.
6707         * tree-dfa.c : Likewise.
6708         * tree-diagnostic.c : Likewise.
6709         * tree-dump.c : Likewise.
6710         * tree-eh.c : Likewise.
6711         * tree-eh.h : Likewise.
6712         * tree-emutls.c : Likewise.
6713         * tree-hasher.h : Likewise.
6714         * tree-if-conv.c : Likewise.
6715         * tree-inline.c : Likewise.
6716         * tree-inline.h : Likewise.
6717         * tree-into-ssa.c : Likewise.
6718         * tree-iterator.c : Likewise.
6719         * tree-loop-distribution.c : Likewise.
6720         * tree-nested.c : Likewise.
6721         * tree-nrv.c : Likewise.
6722         * tree-object-size.c : Likewise.
6723         * tree-outof-ssa.c : Likewise.
6724         * tree-parloops.c : Likewise.
6725         * tree-phinodes.c : Likewise.
6726         * tree-predcom.c : Likewise.
6727         * tree-pretty-print.c : Likewise.
6728         * tree-profile.c : Likewise.
6729         * tree-scalar-evolution.c : Likewise.
6730         * tree-sra.c : Likewise.
6731         * tree-ssa-address.c : Likewise.
6732         * tree-ssa-alias.c : Likewise.
6733         * tree-ssa-ccp.c : Likewise.
6734         * tree-ssa-coalesce.c : Likewise.
6735         * tree-ssa-copy.c : Likewise.
6736         * tree-ssa-copyrename.c : Likewise.
6737         * tree-ssa-dce.c : Likewise.
6738         * tree-ssa-dom.c : Likewise.
6739         * tree-ssa-dse.c : Likewise.
6740         * tree-ssa-forwprop.c : Likewise.
6741         * tree-ssa-ifcombine.c : Likewise.
6742         * tree-ssa-live.c : Likewise.
6743         * tree-ssa-loop-ch.c : Likewise.
6744         * tree-ssa-loop-im.c : Likewise.
6745         * tree-ssa-loop-ivcanon.c : Likewise.
6746         * tree-ssa-loop-ivopts.c : Likewise.
6747         * tree-ssa-loop-manip.c : Likewise.
6748         * tree-ssa-loop-niter.c : Likewise.
6749         * tree-ssa-loop-prefetch.c : Likewise.
6750         * tree-ssa-loop-unswitch.c : Likewise.
6751         * tree-ssa-loop.c : Likewise.
6752         * tree-ssa-math-opts.c : Likewise.
6753         * tree-ssa-operands.c : Likewise.
6754         * tree-ssa-phiopt.c : Likewise.
6755         * tree-ssa-phiprop.c : Likewise.
6756         * tree-ssa-pre.c : Likewise.
6757         * tree-ssa-propagate.c : Likewise.
6758         * tree-ssa-reassoc.c : Likewise.
6759         * tree-ssa-sccvn.c : Likewise.
6760         * tree-ssa-scopedtables.c : Likewise.
6761         * tree-ssa-sink.c : Likewise.
6762         * tree-ssa-strlen.c : Likewise.
6763         * tree-ssa-structalias.c : Likewise.
6764         * tree-ssa-tail-merge.c : Likewise.
6765         * tree-ssa-ter.c : Likewise.
6766         * tree-ssa-threadedge.c : Likewise.
6767         * tree-ssa-threadupdate.c : Likewise.
6768         * tree-ssa-uncprop.c : Likewise.
6769         * tree-ssa-uninit.c : Likewise.
6770         * tree-ssa.c : Likewise.
6771         * tree-ssanames.c : Likewise.
6772         * tree-stdarg.c : Likewise.
6773         * tree-streamer-in.c : Likewise.
6774         * tree-streamer-out.c : Likewise.
6775         * tree-streamer.c : Likewise.
6776         * tree-streamer.h : Likewise.
6777         * tree-switch-conversion.c : Likewise.
6778         * tree-tailcall.c : Likewise.
6779         * tree-vect-data-refs.c : Likewise.
6780         * tree-vect-generic.c : Likewise.
6781         * tree-vect-loop-manip.c : Likewise.
6782         * tree-vect-loop.c : Likewise.
6783         * tree-vect-patterns.c : Likewise.
6784         * tree-vect-slp.c : Likewise.
6785         * tree-vect-stmts.c : Likewise.
6786         * tree-vectorizer.c : Likewise.
6787         * tree-vectorizer.h : Likewise.
6788         * tree-vrp.c : Likewise.
6789         * tree.c : Likewise.
6790         * tsan.c : Likewise.
6791         * ubsan.c : Likewise.
6792         * valtrack.c : Likewise.
6793         * valtrack.h : Likewise.
6794         * value-prof.c : Likewise.
6795         * var-tracking.c : Likewise.
6796         * varasm.c : Likewise.
6797         * varpool.c : Likewise.
6798         * vec.c: Likewise.
6799         * vmsdbgout.c : Likewise.
6800         * vtable-verify.c : Likewise.
6801         * vtable-verify.h : Likewise.
6802         * web.c : Likewise.
6803         * wide-int.cc : Likewise.
6804         * xcoffout.c : Likewise.
6805         * config/aarch64/aarch64-builtins.c : Likewise.
6806         * config/aarch64/aarch64.c : Likewise.
6807         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
6808         * config/alpha/alpha.c : Likewise.
6809         * config/arc/arc.c : Likewise.
6810         * config/arm/aarch-common.c : Likewise.
6811         * config/arm/arm-builtins.c : Likewise.
6812         * config/arm/arm-c.c : Likewise.
6813         * config/arm/arm.c : Likewise.
6814         * config/avr/avr-c.c : Likewise.
6815         * config/avr/avr-log.c : Likewise.
6816         * config/avr/avr.c : Likewise.
6817         * config/bfin/bfin.c : Likewise.
6818         * config/c6x/c6x.c : Likewise.
6819         * config/cr16/cr16.c : Likewise.
6820         * config/cris/cris.c : Likewise.
6821         * config/darwin-c.c : Likewise.
6822         * config/darwin.c : Likewise.
6823         * config/default-c.c : Likewise.
6824         * config/epiphany/epiphany.c : Likewise.
6825         * config/epiphany/mode-switch-use.c : Likewise.
6826         * config/epiphany/resolve-sw-modes.c : Likewise.
6827         * config/fr30/fr30.c : Likewise.
6828         * config/frv/frv.c : Likewise.
6829         * config/ft32/ft32.c : Likewise.
6830         * config/glibc-c.c : Likewise.
6831         * config/h8300/h8300.c : Likewise.
6832         * config/i386/i386-c.c : Likewise.
6833         * config/i386/i386.c : Likewise.
6834         * config/i386/msformat-c.c : Likewise.
6835         * config/i386/winnt-cxx.c : Likewise.
6836         * config/i386/winnt-stubs.c : Likewise.
6837         * config/i386/winnt.c : Likewise.
6838         * config/ia64/ia64-c.c : Likewise.
6839         * config/ia64/ia64.c : Likewise.
6840         * config/iq2000/iq2000.c : Likewise.
6841         * config/lm32/lm32.c : Likewise.
6842         * config/m32c/m32c-pragma.c : Likewise.
6843         * config/m32c/m32c.c : Likewise.
6844         * config/m32r/m32r.c : Likewise.
6845         * config/m68k/m68k.c : Likewise.
6846         * config/mcore/mcore.c : Likewise.
6847         * config/mep/mep-pragma.c : Likewise.
6848         * config/mep/mep.c : Likewise.
6849         * config/microblaze/microblaze-c.c : Likewise.
6850         * config/microblaze/microblaze.c : Likewise.
6851         * config/mips/mips.c : Likewise.
6852         * config/mmix/mmix.c : Likewise.
6853         * config/mn10300/mn10300.c : Likewise.
6854         * config/moxie/moxie.c : Likewise.
6855         * config/msp430/msp430-c.c : Likewise.
6856         * config/msp430/msp430.c : Likewise.
6857         * config/nds32/nds32-cost.c : Likewise.
6858         * config/nds32/nds32-fp-as-gp.c : Likewise.
6859         * config/nds32/nds32-intrinsic.c : Likewise.
6860         * config/nds32/nds32-isr.c : Likewise.
6861         * config/nds32/nds32-md-auxiliary.c : Likewise.
6862         * config/nds32/nds32-memory-manipulation.c : Likewise.
6863         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
6864         * config/nds32/nds32-predicates.c : Likewise.
6865         * config/nds32/nds32.c : Likewise.
6866         * config/nios2/nios2.c : Likewise.
6867         * config/nvptx/nvptx.c : Likewise.
6868         * config/pa/pa.c : Likewise.
6869         * config/pdp11/pdp11.c : Likewise.
6870         * config/rl78/rl78-c.c : Likewise.
6871         * config/rl78/rl78.c : Likewise.
6872         * config/rs6000/rs6000-c.c : Likewise.
6873         * config/rs6000/rs6000.c : Likewise.
6874         * config/rx/rx.c : Likewise.
6875         * config/s390/s390-c.c : Likewise.
6876         * config/s390/s390.c : Likewise.
6877         * config/sh/sh-c.c : Likewise.
6878         * config/sh/sh-mem.cc : Likewise.
6879         * config/sh/sh.c : Likewise.
6880         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
6881         * config/sh/sh_treg_combine.cc : Likewise.
6882         * config/sol2-c.c : Likewise.
6883         * config/sol2-cxx.c : Likewise.
6884         * config/sol2-stubs.c : Likewise.
6885         * config/sol2.c : Likewise.
6886         * config/sparc/sparc-c.c : Likewise.
6887         * config/sparc/sparc.c : Likewise.
6888         * config/spu/spu-c.c : Likewise.
6889         * config/spu/spu.c : Likewise.
6890         * config/stormy16/stormy16.c : Likewise.
6891         * config/tilegx/mul-tables.c : Likewise.
6892         * config/tilegx/tilegx-c.c : Likewise.
6893         * config/tilegx/tilegx.c : Likewise.
6894         * config/tilepro/mul-tables.c : Likewise.
6895         * config/tilepro/tilepro-c.c : Likewise.
6896         * config/tilepro/tilepro.c : Likewise.
6897         * config/v850/v850-c.c : Likewise.
6898         * config/v850/v850.c : Likewise.
6899         * config/vax/vax.c : Likewise.
6900         * config/visium/visium.c : Likewise.
6901         * config/vms/vms-c.c : Likewise.
6902         * config/vms/vms.c : Likewise.
6903         * config/vxworks.c : Likewise.
6904         * config/winnt-c.c : Likewise.
6905         * config/xtensa/xtensa.c : Likewise.
6906
6907 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6908
6909         PR lto/65378
6910         * ipa-utils.h (warn_types_mismatch): Update prototype.
6911         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
6912         parameters.
6913         (type_mismatch_p): New function.
6914         (warn_types_mismatch): Reorg to work better on non-C++ types.
6915         (odr_types_equivalent_p): Add loc1/loc2 parameters.
6916         (add_type_duplicate): Update.
6917
6918 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6919
6920         PR rtl-optimization/66444
6921         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
6922         call_used_regs.
6923
6924 2015-06-08  Richard Biener  <rguenther@suse.de>
6925
6926         PR tree-optimization/66422
6927         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
6928         block after inserted gcc_unreachable.
6929
6930 2015-06-08  Nick Clifton  <nickc@redhat.com>
6931
6932         * config/rx/rx.c (rx_function_value): Do not promote vector types.
6933         (rx_promote_function_mode): Likewise.
6934         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
6935
6936 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
6937
6938         * genattrtab.c (insn_alternatives): Change type from int *
6939         to uint64_t *.
6940         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
6941         (get_attr_value): Change type of num_alt to uint64_t.
6942         (compute_alternative_mask): Change return type from
6943         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
6944         (make_alternative_compare, mk_attr_alt): Change argument type
6945         from int to uint64_t.
6946         (simplify_test_exp): Change type of i from int to uint64_t.
6947         Shift ((uint64_t) 1) instead of 1 up.
6948         (main): Adjust oballocvec first argument from int to uint64_t.
6949         Shift ((uint64_t) 1) instead of 1 up.
6950
6951 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
6952
6953         PR other/65366
6954         * gdbhooks.py: Import sys.
6955         (intptr): New function.  Replace int(...) by intptr(...).
6956
6957 2015-06-08  Richard Biener  <rguenther@suse.de>
6958
6959         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
6960         adjustment for gaps at the end of a SLP load group properly.
6961         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
6962         all permutations we can generate.
6963         (vect_transform_slp_perm_load): Use the correct group-size.
6964
6965 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
6966
6967         * genmatch.c (expr::gen_transform): For conditions, guess the type
6968         from the second operand.
6969
6970 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6971
6972         PR tree-optimization/66442
6973         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
6974         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
6975         if the loop latch is not a singleton.  Use
6976         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
6977
6978 2015-06-08  Marek Polacek  <polacek@redhat.com>
6979
6980         PR sanitizer/66452
6981         * toplev.c (check_global_declaration): Don't warn about artificial
6982         decls.
6983
6984 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6985
6986         PR tree-optimization/66436
6987         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
6988         dump file.
6989         * gimplify.c: Add tree-dump.h include.
6990         (gimplify_function_tree): Dump function to gimple dump file.
6991         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
6992         dump file.
6993
6994 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6995
6996         PR tree-optimization/66435
6997         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
6998         function.
6999
7000 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
7001
7002         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
7003         of ptr_type_node to not be ptr_to_node.
7004         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
7005         TREE_TYPE of pointers.
7006         * gimple-expr.c (useless_type_conversion): Reorder the check for
7007         function pointers and TYPE_CANONICAL.
7008
7009 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
7010
7011         PR bootstrap/66319
7012         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
7013         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
7014         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
7015         later.
7016         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
7017         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
7018         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
7019         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
7020         and non iso if unix2003.
7021
7022 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
7023
7024         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
7025
7026 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
7027
7028         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
7029         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
7030         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
7031         except.c, final.c, function.c, gcse-common.c, genemit.c,
7032         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
7033         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
7034         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
7035         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
7036         more derived ones.
7037
7038 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
7039
7040         * combine.c (combine_split_insns): Remove cast.
7041         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
7042         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
7043         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
7044         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
7045         * genemit.c (gen_split): Change return type of generated functions to
7046         rtx_insn.
7047         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
7048         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
7049         gen_peephole2_* functions.
7050         (print_subroutine, main): Likewise.
7051         * recog.c (peephole2_optimize): Remove cast.
7052         (peep2_next_insn): Promote return type to rtx_insn.
7053         * recog.h (peep2_next_insn): Fix prototype.
7054         * rtl.h (try_split, split_insns): Likewise.
7055
7056 2015-06-06  DJ Delorie  <dj@redhat.com>
7057
7058         * config/msp430/msp430.c (msp430_asm_integer): Support addition
7059         and subtraction too.
7060
7061 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7062
7063         PR target/66410
7064         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
7065         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
7066         instead of Snd.  Disparage Sid/z alternative with '^'.
7067
7068 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
7069
7070         * dwarf2out.c: Remove deferred_locations*.
7071         (dwarf2_debug_hooks): Add early_finish hook.
7072         Remove global_decl hook.
7073         Add early_global_decl and late_global_decl hook.
7074         New global early_dwarf.
7075         New structure set_early_dwarf.
7076         (output_die): Indicate whether a DIE was generated early
7077         when generating assembly with -dA.
7078         (struct limbo_die_struct): Document created_for field.
7079         Remove file_table_last_lookup.
7080         (remove_AT): Return TRUE if successful.
7081         (remove_child_TAG): Clear die_parent.
7082         (reparent_child): New function abstracted from...
7083         (splice_child_die): ...here.
7084         (new_die): ICE if a DIE ends up in limbo too late.
7085         (check_die): New.
7086         (defer_location): Remove.
7087         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
7088         (fill_variable_array_bounds): New.
7089         (decl_start_label): Call fill_variable_array_bounds.
7090         (gen_formal_parameter_die): Rewrite to reuse previously generated
7091         DIEs.
7092         (gen_subprogram_die): Same.
7093         (gen_variable_die): Same.
7094         (gen_const_die): Same.
7095         (gen_label_die): Same.
7096         (gen_lexical_block_die): Same.
7097         (decl_will_get_specification_p): New.
7098         (local_function_static): New.
7099         (gen_struct_or_union_type_die): Fill in variable-length fields.
7100         (gen_typedef_die): Fill in variable-length typedefs.
7101         (gen_tagged_type_die): Gracefully return on error_mark_node.
7102         Handle re-entrancy.
7103         (gen_type_die_with_usage): Handle variable-length types.
7104         Remove duplicate code for ARRAY_TYPE case.
7105         (process_scope_var): Only process imported modules during early
7106         dwarf.
7107         (dwarf2out_early_global_decl): New.
7108         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7109         (dwarf2out_type_decl): Set early_dwarf while calling
7110         dwarf2out_decl.
7111         (dwarf2out_decl): Verify that we did not recreate a previously
7112         generated DIE.
7113         Do not return on DECL_EXTERNALs in VAR_DECLs.
7114         Abstract some code to local_function_static.
7115         (lookup_filename): Remove use of file_table_last_lookup.
7116         Gracefully exit on missing file_name.
7117         (dwarf2out_finish): Verify limbo list.
7118         Remove deferred_locations_list use.
7119         Move deferred_asm_name and limbo flushing to...
7120         (dwarf2out_early_finish): ...here.  New.
7121         (dwarf2out_c_finalize): Remove set of deferred_location_list,
7122         deferred_asm_name, and file_table_last_lookup.
7123         * cgraph.h (referred_to_p): Add default argument.
7124         * cgraphunit.c (referred_to_p): Add and handle include_self
7125         argument.
7126         (analyze_functions): Add first_time argument.
7127         Call check_global_declaration for all symbols.
7128         Call late_global_decl for nodes for moribund nodes.
7129         (finalize_compilation_unit): Add new argument to
7130         analyze_functions.
7131         Call early_global_decl for functions.
7132         Call early_finish debug hook.
7133         * dbxout.c (dbxout_early_global_decl): New.
7134         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
7135         (dbx_debug_hooks): Add new hooks.
7136         (xcoff_debug_hooks): Same.
7137         * debug.c (do_nothing_debug_hooks): Add early_finish field.
7138         Add early and late debug hooks.
7139         Remove global_decl hook.
7140         * debug.h (struct gcc_debug_hooks): Add early_finish,
7141         early_global_decl, and late_global_decl fields.
7142         Remove global_decl field.
7143         Document gcc_debug_hooks.
7144         * gengtype.c (output_typename): Remove.
7145         * godump.c (go_early_global_decl): New.
7146         (go_late_global_decl): New.
7147         (go_global_decl): Remove.
7148         (dump_go_spec_init): Remove global_decl.  Add
7149         {early,late}_global_decl.
7150         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7151         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7152         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7153         (write_global_declarations): Remove.
7154         (global_decl_processing): New.
7155         * langhooks.h (struct lang_hooks_for_decls): Remove
7156         final_write_globals field.
7157         Add post_compilation_parsing_cleanups field.
7158         * passes.c (rest_of_decl_compilation): Call early_global_decl.
7159         * sdbout.c: Add early and late_global_decl hooks.  Remove
7160         sdbout_global_decl hook.
7161         Add early_finish field for sdb_debug_hooks.
7162         (sdbout_global_decl): Remove.
7163         (sdbout_early_global_decl): New.
7164         (sdbout_late_global_decl): New.
7165         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7166         * toplev.c (check_global_declaration): Rename from
7167         check_global_declaration_1.
7168         Adapt to use symtab infrastructure.
7169         (check_global_declarations): Remove.
7170         (emit_debug_global_declarations): Remove.
7171         (compile_file): Remove call to final_write_globals langhook.
7172         Run the actual compilation process.
7173         Perform any post compilation parser cleanups.
7174         Generate late debug info.
7175         * toplev.h (check_global_declaration): New.
7176         (check_global_declaration_1): Remove.
7177         (check_global_declarations): Remove.
7178         (write_global_declarations): Remove.
7179         (emit_debug_global_declarations): Remove.
7180         (global_decl_processing): New.
7181         * tree-core.h (struct tree_block): Add DIE field.
7182         * tree.h (BLOCK_DIE): New.
7183         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7184         throughout.
7185         (vmsdbgout_early_global_decl): New.
7186         (vmsdbgout_late_global_decl): New.
7187         Add early_finish debug hook field to vmsdbg_debug_hooks.
7188         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7189         Add early and late_global_decl debug hooks.
7190
7191 2015-06-05  Julian Brown  <julian@codesourcery.com>
7192             Sandra Loosemore  <sandra@codesourcery.com>
7193
7194         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7195         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7196         to print-sysroot-suffix.sh script.
7197
7198 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7199
7200         merge from gomp4 branch:
7201         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7202
7203         PR tree-optimization/65443
7204         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7205         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7206         (try_transform_to_exit_first_loop_alt): New function.
7207         (transform_to_exit_first_loop): Use
7208         try_transform_to_exit_first_loop_alt.
7209
7210 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7211
7212         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7213         emit_cmp_and_jump_insns with the mode of target.
7214
7215 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7216
7217         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7218
7219 2015-06-04  DJ Delorie  <dj@redhat.com>
7220
7221         * config/msp430/msp430.md (movsi_s): New.  Special case for
7222         storing a 20-bit symbol into a 32-bit register.
7223         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7224         * config/msp430/predicates.md (msp430_symbol_operand): New.
7225
7226 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7227
7228         * c-family/c-common.c (noplt): New attribute.
7229         (handle_noplt_attribute): New handler.
7230         * calls.c (prepare_call_address): Check for noplt
7231         attribute.
7232         * config/i386/i386.c (ix86_expand_call): Check
7233         for noplt attribute.
7234         (ix86_nopic_noplt_attribute_p): New function.
7235         (ix86_output_call_insn): Output indirect call for non-pic
7236         no plt calls.
7237         * doc/extend.texi (noplt): Document new attribute.
7238         * doc/invoke.texi: Document new attribute.
7239
7240 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7241
7242         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7243         real.h, and fixed-value.h when included in host source files.
7244         * double-int.h: Remove redundant #includes listed above.
7245         * fixed-value.h: Likewise.
7246         * real.h: Likewise.
7247         * wide-int.h: Likewise.
7248         * inchash.h: Likewise.
7249         * rtl.h: Add some include files When included from a generator file.
7250         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7251         * internal-fn.h: Don't include coretypes.h.
7252         * alias.c: Adjust includes for restructured coretypes.h.
7253         * asan.c: Likewise.
7254         * attribs.c: Likewise.
7255         * auto-inc-dec.c: Likewise.
7256         * auto-profile.c: Likewise.
7257         * bb-reorder.c: Likewise.
7258         * bt-load.c: Likewise.
7259         * builtins.c: Likewise.
7260         * caller-save.c: Likewise.
7261         * calls.c: Likewise.
7262         * ccmp.c: Likewise.
7263         * cfg.c: Likewise.
7264         * cfganal.c: Likewise.
7265         * cfgbuild.c: Likewise.
7266         * cfgcleanup.c: Likewise.
7267         * cfgexpand.c: Likewise.
7268         * cfghooks.c: Likewise.
7269         * cfgloop.c: Likewise.
7270         * cfgloop.h: Likewise.
7271         * cfgloopanal.c: Likewise.
7272         * cfgloopmanip.c: Likewise.
7273         * cfgrtl.c: Likewise.
7274         * cgraph.c: Likewise.
7275         * cgraphbuild.c: Likewise.
7276         * cgraphclones.c: Likewise.
7277         * cgraphunit.c: Likewise.
7278         * cilk-common.c: Likewise.
7279         * combine-stack-adj.c: Likewise.
7280         * combine.c: Likewise.
7281         * compare-elim.c: Likewise.
7282         * convert.c: Likewise.
7283         * coverage.c: Likewise.
7284         * cppbuiltin.c: Likewise.
7285         * cprop.c: Likewise.
7286         * cse.c: Likewise.
7287         * cselib.c: Likewise.
7288         * data-streamer-in.c: Likewise.
7289         * data-streamer-out.c: Likewise.
7290         * data-streamer.c: Likewise.
7291         * dbxout.c: Likewise.
7292         * dce.c: Likewise.
7293         * ddg.c: Likewise.
7294         * debug.c: Likewise.
7295         * df-core.c: Likewise.
7296         * df-problems.c: Likewise.
7297         * df-scan.c: Likewise.
7298         * df.h: Likewise.
7299         * dfp.c: Likewise.
7300         * dojump.c: Likewise.
7301         * dominance.c: Likewise.
7302         * domwalk.c: Likewise.
7303         * double-int.c: Likewise.
7304         * dse.c: Likewise.
7305         * dumpfile.c: Likewise.
7306         * dwarf2asm.c: Likewise.
7307         * dwarf2cfi.c: Likewise.
7308         * dwarf2out.c: Likewise.
7309         * dwarf2out.h: Likewise.
7310         * emit-rtl.c: Likewise.
7311         * et-forest.c: Likewise.
7312         * except.c: Likewise.
7313         * explow.c: Likewise.
7314         * expmed.c: Likewise.
7315         * expr.c: Likewise.
7316         * final.c: Likewise.
7317         * fixed-value.c: Likewise.
7318         * fold-const.c: Likewise.
7319         * function.c: Likewise.
7320         * fwprop.c: Likewise.
7321         * gcc-plugin.h: Likewise.
7322         * gcse.c: Likewise.
7323         * generic-match-head.c: Likewise.
7324         * ggc-page.c: Likewise.
7325         * gimple-builder.c: Likewise.
7326         * gimple-expr.c: Likewise.
7327         * gimple-fold.c: Likewise.
7328         * gimple-iterator.c: Likewise.
7329         * gimple-low.c: Likewise.
7330         * gimple-match-head.c: Likewise.
7331         * gimple-pretty-print.c: Likewise.
7332         * gimple-ssa-isolate-paths.c: Likewise.
7333         * gimple-ssa-strength-reduction.c: Likewise.
7334         * gimple-streamer-in.c: Likewise.
7335         * gimple-streamer-out.c: Likewise.
7336         * gimple-streamer.h: Likewise.
7337         * gimple-walk.c: Likewise.
7338         * gimple.c: Likewise.
7339         * gimplify-me.c: Likewise.
7340         * gimplify.c: Likewise.
7341         * godump.c: Likewise.
7342         * graph.c: Likewise.
7343         * graphite-blocking.c: Likewise.
7344         * graphite-dependences.c: Likewise.
7345         * graphite-interchange.c: Likewise.
7346         * graphite-isl-ast-to-gimple.c: Likewise.
7347         * graphite-optimize-isl.c: Likewise.
7348         * graphite-poly.c: Likewise.
7349         * graphite-scop-detection.c: Likewise.
7350         * graphite-sese-to-poly.c: Likewise.
7351         * graphite.c: Likewise.
7352         * haifa-sched.c: Likewise.
7353         * hooks.h: Likewise.
7354         * hw-doloop.c: Likewise.
7355         * ifcvt.c: Likewise.
7356         * incpath.c: Likewise.
7357         * init-regs.c: Likewise.
7358         * internal-fn.c: Likewise.
7359         * ipa-chkp.c: Likewise.
7360         * ipa-comdats.c: Likewise.
7361         * ipa-cp.c: Likewise.
7362         * ipa-devirt.c: Likewise.
7363         * ipa-icf-gimple.c: Likewise.
7364         * ipa-icf.c: Likewise.
7365         * ipa-inline-analysis.c: Likewise.
7366         * ipa-inline-transform.c: Likewise.
7367         * ipa-inline.c: Likewise.
7368         * ipa-polymorphic-call.c: Likewise.
7369         * ipa-profile.c: Likewise.
7370         * ipa-prop.c: Likewise.
7371         * ipa-pure-const.c: Likewise.
7372         * ipa-ref.c: Likewise.
7373         * ipa-reference.c: Likewise.
7374         * ipa-split.c: Likewise.
7375         * ipa-utils.c: Likewise.
7376         * ipa-visibility.c: Likewise.
7377         * ipa.c: Likewise.
7378         * ira-build.c: Likewise.
7379         * ira-color.c: Likewise.
7380         * ira-conflicts.c: Likewise.
7381         * ira-costs.c: Likewise.
7382         * ira-emit.c: Likewise.
7383         * ira-lives.c: Likewise.
7384         * ira.c: Likewise.
7385         * jump.c: Likewise.
7386         * langhooks.c: Likewise.
7387         * lcm.c: Likewise.
7388         * loop-doloop.c: Likewise.
7389         * loop-init.c: Likewise.
7390         * loop-invariant.c: Likewise.
7391         * loop-iv.c: Likewise.
7392         * loop-unroll.c: Likewise.
7393         * lower-subreg.c: Likewise.
7394         * lra-assigns.c: Likewise.
7395         * lra-coalesce.c: Likewise.
7396         * lra-constraints.c: Likewise.
7397         * lra-eliminations.c: Likewise.
7398         * lra-lives.c: Likewise.
7399         * lra-remat.c: Likewise.
7400         * lra-spills.c: Likewise.
7401         * lra.c: Likewise.
7402         * lto-cgraph.c: Likewise.
7403         * lto-compress.c: Likewise.
7404         * lto-opts.c: Likewise.
7405         * lto-section-in.c: Likewise.
7406         * lto-section-out.c: Likewise.
7407         * lto-streamer-in.c: Likewise.
7408         * lto-streamer-out.c: Likewise.
7409         * lto-streamer.c: Likewise.
7410         * mcf.c: Likewise.
7411         * mode-switching.c: Likewise.
7412         * modulo-sched.c: Likewise.
7413         * omega.c: Likewise.
7414         * omp-low.c: Likewise.
7415         * optabs.c: Likewise.
7416         * opts-global.c: Likewise.
7417         * passes.c: Likewise.
7418         * plugin.c: Likewise.
7419         * postreload-gcse.c: Likewise.
7420         * postreload.c: Likewise.
7421         * predict.c: Likewise.
7422         * print-rtl.c: Likewise.
7423         * print-tree.c: Likewise.
7424         * profile.c: Likewise.
7425         * real.c: Likewise.
7426         * realmpfr.c: Likewise.
7427         * realmpfr.h: Likewise.
7428         * recog.c: Likewise.
7429         * ree.c: Likewise.
7430         * reg-stack.c: Likewise.
7431         * regcprop.c: Likewise.
7432         * reginfo.c: Likewise.
7433         * regrename.c: Likewise.
7434         * regs.h: Likewise.
7435         * regstat.c: Likewise.
7436         * reload.c: Likewise.
7437         * reload1.c: Likewise.
7438         * reorg.c: Likewise.
7439         * resource.c: Likewise.
7440         * rtl-chkp.c: Likewise.
7441         * rtlanal.c: Likewise.
7442         * rtlhooks.c: Likewise.
7443         * sanopt.c: Likewise.
7444         * sched-deps.c: Likewise.
7445         * sched-ebb.c: Likewise.
7446         * sched-rgn.c: Likewise.
7447         * sched-vis.c: Likewise.
7448         * sdbout.c: Likewise.
7449         * sel-sched-dump.c: Likewise.
7450         * sel-sched-ir.c: Likewise.
7451         * sel-sched.c: Likewise.
7452         * sese.c: Likewise.
7453         * shrink-wrap.c: Likewise.
7454         * shrink-wrap.h: Likewise.
7455         * simplify-rtx.c: Likewise.
7456         * stack-ptr-mod.c: Likewise.
7457         * statistics.c: Likewise.
7458         * stmt.c: Likewise.
7459         * stor-layout.c: Likewise.
7460         * store-motion.c: Likewise.
7461         * stringpool.c: Likewise.
7462         * symtab.c: Likewise.
7463         * target-globals.c: Likewise.
7464         * targhooks.c: Likewise.
7465         * toplev.c: Likewise.
7466         * tracer.c: Likewise.
7467         * trans-mem.c: Likewise.
7468         * tree-affine.c: Likewise.
7469         * tree-affine.h: Likewise.
7470         * tree-browser.c: Likewise.
7471         * tree-call-cdce.c: Likewise.
7472         * tree-cfg.c: Likewise.
7473         * tree-cfgcleanup.c: Likewise.
7474         * tree-chkp-opt.c: Likewise.
7475         * tree-chkp.c: Likewise.
7476         * tree-chrec.c: Likewise.
7477         * tree-complex.c: Likewise.
7478         * tree-data-ref.c: Likewise.
7479         * tree-dfa.c: Likewise.
7480         * tree-diagnostic.c: Likewise.
7481         * tree-dump.c: Likewise.
7482         * tree-eh.c: Likewise.
7483         * tree-emutls.c: Likewise.
7484         * tree-if-conv.c: Likewise.
7485         * tree-inline.c: Likewise.
7486         * tree-into-ssa.c: Likewise.
7487         * tree-iterator.c: Likewise.
7488         * tree-loop-distribution.c: Likewise.
7489         * tree-nested.c: Likewise.
7490         * tree-nrv.c: Likewise.
7491         * tree-object-size.c: Likewise.
7492         * tree-outof-ssa.c: Likewise.
7493         * tree-parloops.c: Likewise.
7494         * tree-phinodes.c: Likewise.
7495         * tree-predcom.c: Likewise.
7496         * tree-pretty-print.c: Likewise.
7497         * tree-pretty-print.h: Likewise.
7498         * tree-profile.c: Likewise.
7499         * tree-scalar-evolution.c: Likewise.
7500         * tree-sra.c: Likewise.
7501         * tree-ssa-address.c: Likewise.
7502         * tree-ssa-alias.c: Likewise.
7503         * tree-ssa-ccp.c: Likewise.
7504         * tree-ssa-coalesce.c: Likewise.
7505         * tree-ssa-copy.c: Likewise.
7506         * tree-ssa-copyrename.c: Likewise.
7507         * tree-ssa-dce.c: Likewise.
7508         * tree-ssa-dom.c: Likewise.
7509         * tree-ssa-dse.c: Likewise.
7510         * tree-ssa-forwprop.c: Likewise.
7511         * tree-ssa-ifcombine.c: Likewise.
7512         * tree-ssa-live.c: Likewise.
7513         * tree-ssa-loop-ch.c: Likewise.
7514         * tree-ssa-loop-im.c: Likewise.
7515         * tree-ssa-loop-ivcanon.c: Likewise.
7516         * tree-ssa-loop-ivopts.c: Likewise.
7517         * tree-ssa-loop-manip.c: Likewise.
7518         * tree-ssa-loop-niter.c: Likewise.
7519         * tree-ssa-loop-prefetch.c: Likewise.
7520         * tree-ssa-loop-unswitch.c: Likewise.
7521         * tree-ssa-loop.c: Likewise.
7522         * tree-ssa-loop.h: Likewise.
7523         * tree-ssa-math-opts.c: Likewise.
7524         * tree-ssa-operands.c: Likewise.
7525         * tree-ssa-phiopt.c: Likewise.
7526         * tree-ssa-phiprop.c: Likewise.
7527         * tree-ssa-pre.c: Likewise.
7528         * tree-ssa-propagate.c: Likewise.
7529         * tree-ssa-reassoc.c: Likewise.
7530         * tree-ssa-sccvn.c: Likewise.
7531         * tree-ssa-scopedtables.c: Likewise.
7532         * tree-ssa-sink.c: Likewise.
7533         * tree-ssa-strlen.c: Likewise.
7534         * tree-ssa-structalias.c: Likewise.
7535         * tree-ssa-tail-merge.c: Likewise.
7536         * tree-ssa-ter.c: Likewise.
7537         * tree-ssa-threadedge.c: Likewise.
7538         * tree-ssa-threadupdate.c: Likewise.
7539         * tree-ssa-uncprop.c: Likewise.
7540         * tree-ssa-uninit.c: Likewise.
7541         * tree-ssa.c: Likewise.
7542         * tree-ssanames.c: Likewise.
7543         * tree-stdarg.c: Likewise.
7544         * tree-streamer-in.c: Likewise.
7545         * tree-streamer-out.c: Likewise.
7546         * tree-streamer.c: Likewise.
7547         * tree-switch-conversion.c: Likewise.
7548         * tree-tailcall.c: Likewise.
7549         * tree-vect-data-refs.c: Likewise.
7550         * tree-vect-generic.c: Likewise.
7551         * tree-vect-loop-manip.c: Likewise.
7552         * tree-vect-loop.c: Likewise.
7553         * tree-vect-patterns.c: Likewise.
7554         * tree-vect-slp.c: Likewise.
7555         * tree-vect-stmts.c: Likewise.
7556         * tree-vectorizer.c: Likewise.
7557         * tree-vrp.c: Likewise.
7558         * tree.c: Likewise.
7559         * tsan.c: Likewise.
7560         * ubsan.c: Likewise.
7561         * valtrack.c: Likewise.
7562         * value-prof.c: Likewise.
7563         * var-tracking.c: Likewise.
7564         * varasm.c: Likewise.
7565         * varpool.c: Likewise.
7566         * vmsdbgout.c: Likewise.
7567         * vtable-verify.c: Likewise.
7568         * web.c: Likewise.
7569         * wide-int-print.cc: Likewise.
7570         * wide-int-print.h: Likewise.
7571         * wide-int.cc: Likewise.
7572         * xcoffout.c: Likewise.
7573         * config/aarch64/aarch64-builtins.c: Likewise.
7574         * config/aarch64/aarch64.c: Likewise.
7575         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7576         * config/alpha/alpha.c: Likewise.
7577         * config/arc/arc.c: Likewise.
7578         * config/arm/aarch-common.c: Likewise.
7579         * config/arm/arm-builtins.c: Likewise.
7580         * config/arm/arm-c.c: Likewise.
7581         * config/arm/arm.c: Likewise.
7582         * config/avr/avr-c.c: Likewise.
7583         * config/avr/avr-log.c: Likewise.
7584         * config/avr/avr.c: Likewise.
7585         * config/bfin/bfin.c: Likewise.
7586         * config/c6x/c6x.c: Likewise.
7587         * config/cr16/cr16.c: Likewise.
7588         * config/cris/cris.c: Likewise.
7589         * config/darwin-c.c: Likewise.
7590         * config/darwin.c: Likewise.
7591         * config/default-c.c: Likewise.
7592         * config/epiphany/epiphany.c: Likewise.
7593         * config/epiphany/mode-switch-use.c: Likewise.
7594         * config/epiphany/resolve-sw-modes.c: Likewise.
7595         * config/fr30/fr30.c: Likewise.
7596         * config/frv/frv.c: Likewise.
7597         * config/ft32/ft32.c: Likewise.
7598         * config/glibc-c.c: Likewise.
7599         * config/h8300/h8300.c: Likewise.
7600         * config/i386/i386-c.c: Likewise.
7601         * config/i386/i386.c: Likewise.
7602         * config/i386/msformat-c.c: Likewise.
7603         * config/i386/winnt-cxx.c: Likewise.
7604         * config/i386/winnt-stubs.c: Likewise.
7605         * config/i386/winnt.c: Likewise.
7606         * config/ia64/ia64-c.c: Likewise.
7607         * config/ia64/ia64.c: Likewise.
7608         * config/iq2000/iq2000.c: Likewise.
7609         * config/lm32/lm32.c: Likewise.
7610         * config/m32c/m32c-pragma.c: Likewise.
7611         * config/m32c/m32c.c: Likewise.
7612         * config/m32r/m32r.c: Likewise.
7613         * config/m68k/m68k.c: Likewise.
7614         * config/mcore/mcore.c: Likewise.
7615         * config/mep/mep-pragma.c: Likewise.
7616         * config/mep/mep.c: Likewise.
7617         * config/microblaze/microblaze-c.c: Likewise.
7618         * config/microblaze/microblaze.c: Likewise.
7619         * config/mips/mips.c: Likewise.
7620         * config/mmix/mmix.c: Likewise.
7621         * config/mn10300/mn10300.c: Likewise.
7622         * config/moxie/moxie.c: Likewise.
7623         * config/msp430/msp430-c.c: Likewise.
7624         * config/msp430/msp430.c: Likewise.
7625         * config/nds32/nds32-cost.c: Likewise.
7626         * config/nds32/nds32-fp-as-gp.c: Likewise.
7627         * config/nds32/nds32-intrinsic.c: Likewise.
7628         * config/nds32/nds32-isr.c: Likewise.
7629         * config/nds32/nds32-md-auxiliary.c: Likewise.
7630         * config/nds32/nds32-memory-manipulation.c: Likewise.
7631         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7632         * config/nds32/nds32-predicates.c: Likewise.
7633         * config/nds32/nds32.c: Likewise.
7634         * config/nios2/nios2.c: Likewise.
7635         * config/nvptx/nvptx.c: Likewise.
7636         * config/pa/pa.c: Likewise.
7637         * config/pdp11/pdp11.c: Likewise.
7638         * config/rl78/rl78-c.c: Likewise.
7639         * config/rl78/rl78.c: Likewise.
7640         * config/rs6000/rs6000-c.c: Likewise.
7641         * config/rs6000/rs6000.c: Likewise.
7642         * config/rx/rx.c: Likewise.
7643         * config/s390/s390-c.c: Likewise.
7644         * config/s390/s390.c: Likewise.
7645         * config/sh/sh-c.c: Likewise.
7646         * config/sh/sh-mem.cc: Likewise.
7647         * config/sh/sh.c: Likewise.
7648         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7649         * config/sh/sh_treg_combine.cc: Likewise.
7650         * config/sol2-c.c: Likewise.
7651         * config/sol2-cxx.c: Likewise.
7652         * config/sol2-stubs.c: Likewise.
7653         * config/sol2.c: Likewise.
7654         * config/sparc/sparc-c.c: Likewise.
7655         * config/sparc/sparc.c: Likewise.
7656         * config/spu/spu-c.c: Likewise.
7657         * config/spu/spu.c: Likewise.
7658         * config/stormy16/stormy16.c: Likewise.
7659         * config/tilegx/mul-tables.c: Likewise.
7660         * config/tilegx/tilegx-c.c: Likewise.
7661         * config/tilegx/tilegx.c: Likewise.
7662         * config/tilepro/mul-tables.c: Likewise.
7663         * config/tilepro/tilepro-c.c: Likewise.
7664         * config/tilepro/tilepro.c: Likewise.
7665         * config/v850/v850-c.c: Likewise.
7666         * config/v850/v850.c: Likewise.
7667         * config/vax/vax.c: Likewise.
7668         * config/visium/visium.c: Likewise.
7669         * config/vms/vms-c.c: Likewise.
7670         * config/vms/vms.c: Likewise.
7671         * config/vxworks.c: Likewise.
7672         * config/winnt-c.c: Likewise.
7673         * config/xtensa/xtensa.c: Likewise.
7674         * common/config/bfin/bfin-common.c: Likewise.
7675
7676 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7677
7678         * tree.h (tree_code_for_canonical_type_merging): New function.
7679         * tree.c (gimple_canonical_types_compatible_p): Use
7680         tree_code_for_canonical_type_merging..
7681
7682 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7683
7684         PR c++/66192
7685         PR target/66200
7686         * doc/tm.texi: Regenerate.
7687         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7688         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7689         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7690         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7691         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7692         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7693         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7694         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7695         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7696
7697 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7698
7699         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7700         register fma steering pass.
7701         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7702         AARCH64_TUNE_FMA_STEERING.
7703
7704 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7705
7706         * tree.c (verify_type_variant): Verify that type and variant is
7707         compatible.
7708         (gimple_canonical_types_compatible_p): Look for main variants.
7709
7710 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7711
7712         * config.gcc (powerpc*-*-*): Add support for a new configure
7713         option --with-advance-toolchain=<xxx> which overrides using the
7714         default header files, libraries and dynamic linker.
7715
7716         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7717         specs to support the configure --with-advance-toolchain=<xxx>
7718         option.
7719         (INCLUDE_EXTRA_SPEC): Likewise.
7720         (LINK_OS_EXTRA_SPEC32): Likewise.
7721         (LINK_OK_EXTRA_SPEC64): Likewise.
7722         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7723         (DYNAMIC_LINKER_PREFIX): Likewise.
7724         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7725         toolchain support.
7726         (GLIBC_DYNAMIC_LINKER32): Likewise.
7727         (GLIBC_DYNAMIC_LINKER64): Likewise.
7728         (LINK_OS_LINUX_SPEC32): Likewise.
7729         (LINK_OS_LINUX_SPEC64): Likewise.
7730
7731         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7732         configuration option.
7733
7734 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7735
7736         PR target/66275
7737         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7738         to determine current function ABI.
7739         (ix86_function_value_regno_p): Ditto.
7740
7741 2015-06-03  Martin Liska  <mliska@suse.cz>
7742
7743         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7744         * bitmap.h (struct bitmap_usage): Likewise.
7745         * ggc-common.c (struct ggc_usage): Likewise.
7746         * mem-stats.h (struct mem_location): Likewise.
7747         (struct mem_usage): Likewise.
7748         * vec.c (struct vec_usage): Likewise.
7749
7750 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7751
7752         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7753         -Bsymbolic.
7754
7755 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
7756
7757         * doc/plugins.texi (enum plugin_event): New event.
7758         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
7759         and PLUGIN_FINISH_FUNCTION.
7760         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
7761         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
7762
7763 2015-06-03  Richard Biener  <rguenther@suse.de>
7764
7765         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
7766         compute GROUP_GAP for the first element.
7767         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
7768         on in-group gaps.
7769
7770 2015-06-03  Nick Clifton  <nickc@redhat.com>
7771
7772         * config/rl78/rl78-real.md: Add peepholes to avoid a register
7773         copy when calling a function.
7774         * config/rl78/rl78.c (need_to_save): Do not push the frame
7775         pointer in an interrupt handler prologue if it is never used.
7776
7777 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7778
7779         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
7780
7781 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7782
7783         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
7784         reference when cloning alias node.
7785
7786 2015-06-03  Martin Liska  <mliska@suse.cz>
7787
7788         * alloc-pool.h (struct pool_usage): Correct space padding.
7789         * ggc-page.c (ggc_print_statistics): Align columns in a report.
7790         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
7791         * tree.c (dump_tree_statistics): Align columns in a report.
7792
7793 2015-06-03  Martin Liska  <mliska@suse.cz>
7794
7795         * alloc-pool.c (allocate_pool_descriptor): Remove.
7796         (struct pool_output_info): Likewise.
7797         (print_alloc_pool_statistics): Likewise.
7798         (dump_alloc_pool_statistics): Likewise.
7799         * alloc-pool.h (struct pool_usage): New struct.
7800         (pool_allocator::initialize): Change usage of memory statistics
7801         to a new interface.
7802         (pool_allocator::release): Likewise.
7803         (pool_allocator::allocate): Likewise.
7804         (pool_allocator::remove): Likewise.
7805         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
7806         for a pool allocator.
7807         * mem-stats.h (struct mem_location): Add new ctor.
7808         (struct mem_usage): Add counter for number of
7809         instances.
7810         (mem_alloc_description::register_descriptor): New overload of
7811         * mem-stats.h (mem_location::to_string): New function.
7812         * bitmap.h (struct bitmap_usage): Use this new function.
7813         * ggc-common.c (struct ggc_usage): Likewise.
7814         the function.
7815
7816 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7817
7818         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
7819         of GCC_INSN_FLAGS_H block.
7820
7821 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7822
7823         * explow.c (plus_constant): Update check after force_const_mem call
7824         to see if the value returned is not a NULL_RTX.
7825
7826 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7827
7828         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
7829         remove instumentation thunks calling reachable functions.
7830         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
7831         * lto/lto-partition.c (privatize_symbol_name_1): New.
7832         (privatize_symbol_name): Privatize both decl and orig_decl
7833         names for instrumented functions.
7834         * cgraph.c (cgraph_node::verify_node): Add transparent
7835         alias chain check for instrumented node.
7836
7837 2015-06-03  Marek Polacek  <polacek@redhat.com>
7838
7839         PR c/64223
7840         PR c/29358
7841         * tree.c (attribute_value_equal): Handle attribute format.
7842         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
7843
7844 2015-06-03  Richard Biener  <rguenther@suse.de>
7845
7846         PR tree-optimization/63916
7847         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7848         Forward-propagate non-invariant addresses by splicing their
7849         reference ops if the result isn't going to be used by PRE.
7850         (vn_reference_lookup_3): Remove pointless assert.
7851
7852 2015-06-03  Richard Biener  <rguenther@suse.de>
7853
7854         PR tree-optimization/66375
7855         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
7856         add to the evolution before following SSA edges.
7857
7858 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
7859
7860         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
7861         (dump_use, dump_cand, find_induction_variables): Pass new argument
7862         to dump_iv.
7863         (record_use): Preserve the ssa name information in IV.
7864
7865 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7866
7867         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
7868         NO_MODE_TEST.
7869         (add_mode_tests): Don't add mode tests if the predicate only
7870         accepts scalar constant integers.  Otherwise, allow the mode
7871         of "op" to be VOIDmode if the predicate does accept such integers.
7872
7873 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
7874
7875         PR target/66258
7876         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
7877         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
7878         (aarch64_secondary_reload): Likewise
7879         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
7880         to !TARGET_FLOAT.
7881         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
7882         Likewise.
7883
7884 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
7885             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7886
7887         PR target/65768
7888         * cprop.c (try_replace_reg): Check cost of constants before propagating.
7889
7890 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7891
7892         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
7893         provide access to the IBM extended double floating point mode if
7894         long double is IEEE 128-bit floating point.
7895         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
7896         point if long double is the IBM extended double type.
7897
7898         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
7899         enable adding IEEE 128-bit floating point support.
7900         (-mfloat128-software): Likewise.
7901         (-mfloat128-sw): Likewise.
7902
7903         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
7904         128-bit floating point types to occupy any register if
7905         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
7906         -mfloat128-software is enabled.
7907         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
7908         support.
7909         (rs6000_option_override_internal): Add -mfloat128-* support.
7910         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
7911
7912         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
7913         and float128 type nodes.
7914         (ieee128_float_type_node): Likewise.
7915         (ibm128_float_type_node): Likewise.
7916
7917 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7918
7919         PR target/66136
7920         * config/aarch64/geniterators.sh: Rewrite in awk.
7921
7922 2015-06-02  Martin Liska  <mliska@suse.cz>
7923
7924         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
7925         values to avoid -Wmaybe-uninitialized errors.
7926
7927 2015-06-02  Richard Biener  <rguenther@suse.de>
7928
7929         PR debug/65549
7930         * dwarf2out.c (lookup_context_die): New function.
7931         (resolve_addr): Avoid forcing a full DIE for the
7932         target of a DW_TAG_GNU_call_site during late compilation.
7933         Instead create a stub DIE without a type if we have a
7934         context DIE present.
7935
7936 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
7937
7938         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
7939
7940 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7941
7942         PR tree-optimization/48052
7943         * cfgloop.h (struct control_iv): New.
7944         (struct loop): New field control_ivs.
7945         * tree-ssa-loop-niter.c : Include "stor-layout.h".
7946         (number_of_iterations_lt): Set no_overflow information.
7947         (number_of_iterations_exit): Init control iv in niter struct.
7948         (record_control_iv): New.
7949         (estimate_numbers_of_iterations_loop): Call record_control_iv.
7950         (loop_exits_before_overflow): New.  Interface factored out of
7951         scev_probably_wraps_p.
7952         (scev_probably_wraps_p): Factor loop niter related code into
7953         loop_exits_before_overflow.
7954         (free_numbers_of_iterations_estimates_loop): Free control ivs.
7955         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
7956
7957 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
7960         the target doesn't belong to the current function.
7961
7962 2015-06-02  Marek Polacek  <polacek@redhat.com>
7963
7964         PR middle-end/66345
7965         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
7966         get_maxval_strlen does not produce an INTEGER_CST.
7967
7968 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
7969
7970         * config/arc/constraints.md: Use lower-case names in match_code.
7971         * config/mmix/constraints.md: Likewise.
7972
7973 2015-06-02  Richard Biener  <rguenther@suse.de>
7974
7975         PR tree-optimization/65961
7976         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
7977         check and clarify dump message.
7978         (vect_build_slp_tree): If all children are built up from scalars
7979         build up the parent from scalars instead.
7980         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
7981
7982 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
7983
7984         PR other/65366
7985         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
7986         instead of print ... .
7987
7988 2015-06-02  Alan Modra  <amodra@gmail.com>
7989
7990         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
7991         2014-08-11 change.
7992
7993 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7994
7995         PR tree-optimization/52563
7996         PR tree-optimization/62173
7997         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
7998         (alloc_iv, set_iv): New parameter.
7999         (determine_biv_step): Delete.
8000         (find_bivs): Inline original determine_biv_step.  Pass new
8001         argument to set_iv.
8002         (idx_find_step): Use no_overflow information for conversion.
8003         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
8004         resolve_mixers handle folded_casts.
8005         (instantiate_scev_name): Change bool parameter to bool pointer.
8006         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
8007         (instantiate_array_ref, instantiate_scev_not): Ditto.
8008         (instantiate_scev_3, instantiate_scev_2): Ditto.
8009         (instantiate_scev_1, instantiate_scev_r): Ditto.
8010         (instantiate_scev_convert, ): Change parameter.  Pass argument
8011         to chrec_convert_aggressive.
8012         (instantiate_scev): Change argument.
8013         (resolve_mixers): New parameter and set it.
8014         (scev_const_prop): New argument.
8015         * tree-scalar-evolution.h (resolve_mixers): New parameter.
8016         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
8017         of chrec_conert_1.
8018         (chrec_convert): New parameter.  Move definition below.
8019         (chrec_convert_aggressive): New parameter and set it.  Call
8020         convert_affine_scev.
8021         * tree-chrec.h (chrec_convert): New parameter.
8022         (chrec_convert_aggressive): Ditto.
8023
8024 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8025
8026         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
8027         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
8028         the LHS of a no-return call if its type has variable size.
8029         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
8030         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
8031
8032 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
8033
8034         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
8035         * config.in: Regenerate.
8036
8037 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
8038
8039         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8040         consecutive accesses within outer-loop with force_vectorize
8041         for references with zero step in inner-loop.
8042
8043 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8044
8045         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
8046         rather than from gcc/build directory.
8047
8048 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8049
8050         PR target/65697
8051         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
8052         for __sync memory models, emit initial loads and final barriers as
8053         appropriate.
8054
8055 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8056
8057         PR target/65697
8058         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
8059         (aarch64_split_atomic_op): Check for __sync memory models, emit
8060         appropriate initial loads and final barriers.
8061
8062 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8063
8064         * Makefile.in: Fix gcov dependencies that should
8065         not point to a build folder.
8066
8067 2015-06-01  Richard Biener  <rguenther@suse.de>
8068
8069         Revert
8070         2015-05-29  Richard Biener  <rguenther@suse.de>
8071
8072         PR tree-optimization/66314
8073         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8074         parameter that says which loop the new block belongs to.
8075         (ssa_create_duplicates): Blocks duplicated for the threaded
8076         path belong to the loop of the thread destination.
8077
8078 2015-06-01  Martin Liska  <mliska@suse.cz>
8079
8080         * sched-deps.c: Include pool-alloc.h before
8081         cselib.h header file is included.
8082
8083 2015-06-01  Richard Biener  <rguenther@suse.de>
8084
8085         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
8086         functions.
8087
8088 2015-06-01  Martin Liska  <mliska@suse.cz>
8089
8090         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
8091         a function local variable.
8092
8093 2015-06-01  Martin Liska  <mliska@suse.cz>
8094
8095         * alloc-pool.c (create_alloc_pool): Remove.
8096         (empty_alloc_pool): Likewise.
8097         (free_alloc_pool): Likewise.
8098         (free_alloc_pool_if_empty): Likewise.
8099         (pool_alloc): Likewise.
8100         (pool_free): Likewise.
8101         * alloc-pool.h: Remove old declarations.
8102
8103 2015-06-01  Martin Liska  <mliska@suse.cz>
8104
8105         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8106         (ira_create_object): Likewise.
8107         (ira_create_allocno): Likewise.
8108         (ira_create_live_range): Likewise.
8109         (copy_live_range): Likewise.
8110         (ira_finish_live_range): Likewise.
8111         (ira_free_allocno_costs): Likewise.
8112         (finish_allocno): Likewise.
8113         (finish_allocnos): Likewise.
8114         (initiate_prefs): Likewise.
8115         (ira_create_pref): Likewise.
8116         (finish_pref): Likewise.
8117         (finish_prefs): Likewise.
8118         (initiate_copies): Likewise.
8119         (ira_create_copy): Likewise.
8120         (finish_copy): Likewise.
8121         (finish_copies): Likewise.
8122         (finish_prefs): Likewise.
8123
8124 2015-06-01  Martin Liska  <mliska@suse.cz>
8125
8126         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8127         (allocate_and_init_ipcp_value): Likewise.
8128         (ipcp_lattice::add_value): Likewise.
8129         (merge_agg_lats_step): Likewise.
8130         (ipcp_driver): Likewise.
8131         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8132         (ipa_free_all_structures_after_iinln): Likewise.
8133         * ipa-prop.h: Likewise.
8134
8135 2015-06-01  Martin Liska  <mliska@suse.cz>
8136
8137         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8138         pool allocator.
8139         (set_hint_predicate): Likewise.
8140         (inline_summary_alloc): Likewise.
8141         (reset_inline_edge_summary): Likewise.
8142         (reset_inline_summary): Likewise.
8143         (set_cond_stmt_execution_predicate): Likewise.
8144         (set_switch_stmt_execution_predicate): Likewise.
8145         (compute_bb_predicates): Likewise.
8146         (estimate_function_body_sizes): Likewise.
8147         (inline_free_summary): Likewise.
8148
8149 2015-06-01  Martin Liska  <mliska@suse.cz>
8150
8151         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8152         (ipa_edge_duplication_hook): Likewise.
8153         (ipa_free_all_structures_after_ipa_cp): Likewise.
8154         (ipa_free_all_structures_after_iinln): Likewise.
8155
8156 2015-06-01  Martin Liska  <mliska@suse.cz>
8157
8158         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8159         (ipa_profile_generate_summary): Likewise.
8160         (ipa_profile_read_summary): Likewise.
8161         (ipa_profile): Likewise.
8162
8163 2015-06-01  Martin Liska  <mliska@suse.cz>
8164
8165         * tree-ssa-structalias.c (new_var_info): Use new type-based
8166         pool allocator.
8167         (new_constraint): Likewise.
8168         (init_alias_vars): Likewise.
8169         (delete_points_to_sets): Likewise.
8170
8171 2015-06-01  Martin Liska  <mliska@suse.cz>
8172
8173         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8174         (free_strinfo): Likewise.
8175         (pass_strlen::execute): Likewise.
8176
8177 2015-06-01  Martin Liska  <mliska@suse.cz>
8178
8179         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8180         pool allocator.
8181         (vn_reference_insert_pieces): Likewise.
8182         (vn_phi_insert): Likewise.
8183         (visit_reference_op_call): Likewise.
8184         (copy_phi): Likewise.
8185         (copy_reference): Likewise.
8186         (process_scc): Likewise.
8187         (allocate_vn_table): Likewise.
8188         (free_vn_table): Likewise.
8189
8190 2015-06-01  Martin Liska  <mliska@suse.cz>
8191
8192         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8193         pool allocator.
8194         (add_repeat_to_ops_vec): Likewise.
8195         (get_ops): Likewise.
8196         (maybe_optimize_range_tests): Likewise.
8197         (init_reassoc): Likewise.
8198         (fini_reassoc): Likewise.
8199
8200 2015-06-01  Martin Liska  <mliska@suse.cz>
8201
8202         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8203         pool allocator.
8204         (bitmap_set_new): Likewise.
8205         (get_or_alloc_expr_for_constant): Likewise.
8206         (get_or_alloc_expr_for): Likewise.
8207         (phi_translate_1): Likewise.
8208         (compute_avail): Likewise.
8209         (init_pre): Likewise.
8210         (fini_pre): Likewise.
8211
8212 2015-06-01  Martin Liska  <mliska@suse.cz>
8213
8214         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8215         (delete_dep_node): Likewise.
8216         (create_deps_list): Likewise.
8217         (free_deps_list): Likewise.
8218         (sched_deps_init): Likewise.
8219         (sched_deps_finish): Likewise.
8220
8221 2015-06-01  Martin Liska  <mliska@suse.cz>
8222
8223         * regcprop.c (free_debug_insn_changes): Use new type-based
8224         pool allocator.
8225         (replace_oldest_value_reg): Likewise.
8226         (pass_cprop_hardreg::execute): Likewise.
8227
8228 2015-06-01  Martin Liska  <mliska@suse.cz>
8229
8230         * ira-build.c (initiate_cost_vectors): Use new type-based
8231         pool allocator.
8232         (ira_allocate_cost_vector): Likewise.
8233         (ira_free_cost_vector): Likewise.
8234         (finish_cost_vectors): Likewise.
8235
8236 2015-06-01  Martin Liska  <mliska@suse.cz>
8237
8238         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8239         pool allocator.
8240         (free_sched_pools): Likewise.
8241         * sel-sched-ir.h (_list_alloc): Likewise.
8242         (_list_remove): Likewise.
8243
8244 2015-06-01  Martin Liska  <mliska@suse.cz>
8245
8246         * stmt.c (add_case_node): Use new type-based pool allocator.
8247         (expand_case): Likewise.
8248         (expand_sjlj_dispatch_table): Likewise.
8249
8250 2015-06-01  Martin Liska  <mliska@suse.cz>
8251
8252         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8253         (free_bb): Likewise.
8254         (pass_cse_reciprocals::execute): Likewise.
8255
8256 2015-06-01  Martin Liska  <mliska@suse.cz>
8257
8258         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8259         (sra_deinitialize) Likewise.
8260         (create_access_1) Likewise.
8261         (build_accesses_from_assign) Likewise.
8262         (create_artificial_child_access) Likewise.
8263
8264 2015-06-01  Martin Liska  <mliska@suse.cz>
8265
8266         * dse.c (get_group_info):Use new type-based pool allocator.
8267         (dse_step0) Likewise.
8268         (free_store_info) Likewise.
8269         (delete_dead_store_insn) Likewise.
8270         (free_read_records) Likewise.
8271         (record_store) Likewise.
8272         (replace_read) Likewise.
8273         (check_mem_read_rtx) Likewise.
8274         (scan_insn) Likewise.
8275         (dse_step1) Likewise.
8276         (dse_step7) Likewise.
8277
8278 2015-06-01  Martin Liska  <mliska@suse.cz>
8279
8280         * df-scan.c (struct df_scan_problem_data):Use new type-based
8281         pool allocator.
8282         (df_scan_free_internal) Likewise.
8283         (df_scan_alloc) Likewise.
8284         (df_grow_reg_info) Likewise.
8285         (df_free_ref) Likewise.
8286         (df_insn_create_insn_record) Likewise.
8287         (df_mw_hardreg_chain_delete) Likewise.
8288         (df_insn_info_delete) Likewise.
8289         (df_free_collection_rec) Likewise.
8290         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8291         (df_sort_and_compress_mws) Likewise.
8292         (df_ref_create_structure) Likewise.
8293         (df_ref_record) Likewise.
8294
8295 2015-06-01  Martin Liska  <mliska@suse.cz>
8296
8297         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8298         (df_chain_unlink_1) Likewise.
8299         (df_chain_unlink) Likewise.
8300         (df_chain_remove_problem) Likewise.
8301         (df_chain_alloc) Likewise.
8302         (df_chain_free) Likewise.
8303         * df.h (struct dataflow) Likewise.
8304
8305 2015-06-01  Martin Liska  <mliska@suse.cz>
8306
8307         * cselib.c (new_elt_list):Use new type-based pool allocator.
8308         (new_elt_loc_list) Likewise.
8309         (unchain_one_elt_list) Likewise.
8310         (unchain_one_elt_loc_list) Likewise.
8311         (unchain_one_value) Likewise.
8312         (new_cselib_val) Likewise.
8313         (cselib_init) Likewise.
8314         (cselib_finish) Likewise.
8315
8316 2015-06-01  Martin Liska  <mliska@suse.cz>
8317
8318         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8319         (sh_reorg) Likewise.
8320
8321 2015-06-01  Martin Liska  <mliska@suse.cz>
8322
8323         * cfg.c (initialize_original_copy_tables):Use new type-based
8324         pool allocator.
8325         (free_original_copy_tables) Likewise.
8326         (copy_original_table_clear) Likewise.
8327         (copy_original_table_set) Likewise.
8328
8329 2015-06-01  Martin Liska  <mliska@suse.cz>
8330
8331         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8332         pool allocator.
8333         (asan_mem_ref_new) Likewise.
8334         (free_mem_ref_resources) Likewise.
8335
8336 2015-06-01  Martin Liska  <mliska@suse.cz>
8337
8338         * var-tracking.c (variable_htab_free):Use new type-based
8339         pool allocator.
8340         (attrs_list_clear) Likewise.
8341         (attrs_list_insert) Likewise.
8342         (attrs_list_copy) Likewise.
8343         (shared_hash_unshare) Likewise.
8344         (shared_hash_destroy) Likewise.
8345         (unshare_variable) Likewise.
8346         (var_reg_delete_and_set) Likewise.
8347         (var_reg_delete) Likewise.
8348         (var_regno_delete) Likewise.
8349         (drop_overlapping_mem_locs) Likewise.
8350         (variable_union) Likewise.
8351         (insert_into_intersection) Likewise.
8352         (canonicalize_values_star) Likewise.
8353         (variable_merge_over_cur) Likewise.
8354         (dataflow_set_merge) Likewise.
8355         (remove_duplicate_values) Likewise.
8356         (variable_post_merge_new_vals) Likewise.
8357         (dataflow_set_preserve_mem_locs) Likewise.
8358         (dataflow_set_remove_mem_locs) Likewise.
8359         (variable_from_dropped) Likewise.
8360         (variable_was_changed) Likewise.
8361         (set_slot_part) Likewise.
8362         (clobber_slot_part) Likewise.
8363         (delete_slot_part) Likewise.
8364         (loc_exp_insert_dep) Likewise.
8365         (notify_dependents_of_changed_value) Likewise.
8366         (emit_notes_for_differences_1) Likewise.
8367         (vt_emit_notes) Likewise.
8368         (vt_initialize) Likewise.
8369         (vt_finalize) Likewise.
8370
8371 2015-06-01  Martin Liska  <mliska@suse.cz>
8372
8373         * ira-color.c (init_update_cost_records):Use new type-based
8374         pool allocator.
8375         (get_update_cost_record) Likewise.
8376         (free_update_cost_record_list) Likewise.
8377         (finish_update_cost_records) Likewise.
8378         (initiate_cost_update) Likewise.
8379
8380 2015-06-01  Martin Liska  <mliska@suse.cz>
8381
8382         * lra.c (init_insn_regs): Use new type-based pool allocator.
8383         (new_insn_reg) Likewise.
8384         (free_insn_reg) Likewise.
8385         (free_insn_regs) Likewise.
8386         (finish_insn_regs) Likewise.
8387         (init_insn_recog_data) Likewise.
8388         (init_reg_info) Likewise.
8389         (finish_reg_info) Likewise.
8390         (lra_free_copies) Likewise.
8391         (lra_create_copy) Likewise.
8392         (invalidate_insn_data_regno_info) Likewise.
8393
8394 2015-06-01  Martin Liska  <mliska@suse.cz>
8395
8396         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8397         (free_live_range_list) Likewise.
8398         (create_live_range) Likewise.
8399         (copy_live_range) Likewise.
8400         (lra_merge_live_ranges) Likewise.
8401         (remove_some_program_points_and_update_live_ranges) Likewise.
8402         (lra_live_ranges_init) Likewise.
8403         (lra_live_ranges_finish) Likewise.
8404
8405 2015-06-01  Martin Liska  <mliska@suse.cz>
8406
8407         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8408         (et_new_tree): Likewise.
8409         (et_free_tree): Likewise.
8410         (et_free_tree_force): Likewise.
8411         (et_free_pools): Likewise.
8412         (et_split): Likewise.
8413
8414 2015-06-01  Martin Liska  <mliska@suse.cz>
8415
8416         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8417         to header file.
8418         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8419         (pool_allocator::release): Likewise.
8420         (inline pool_allocator::release_if_empty): Likewise.
8421         (inline pool_allocator::~pool_allocator): Likewise.
8422         (pool_allocator::allocate): Likewise.
8423         (pool_allocator::remove): Likewise.
8424
8425 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8426
8427         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8428         in comment.
8429
8430 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8431
8432         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8433         to fusible_ops.
8434         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8435         (arm_macro_fusion_p): Likewise.
8436         (arm_macro_fusion_pair_p): Likewise.
8437
8438 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8439
8440         * config/aarch64/aarch64-protos.h (tune_params): Rename
8441         fuseable_ops to fusible_ops.
8442         * config/aarch64/aarch64.c (generic_tunings): Rename
8443         fuseable_ops to fusible_ops.
8444         (cortexa53_tunings): Likewise.
8445         (cortexa57_tunings): Likewise.
8446         (thunderx_tunings): Likewise.
8447         (xgene1_tunings): Likewise.
8448         (aarch64_macro_fusion_p): Likewise.
8449         (aarch64_macro_fusion_pair_p): Likewise.
8450
8451 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8452
8453         * config/s390/driver-native.c: New file.
8454         * config/s390/x-native: New file.
8455         * config.host: Add new files for s390.
8456         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8457         and -march=native
8458         * config.gcc: Likewise.
8459         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8460         * config/s390/s390-opts.h (enum processor_type): Ditto.
8461         * config/s390/s390.c (s390_option_override): Catch unhandled
8462         PROCESSOR_NATIVE
8463
8464 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8465
8466         PR target/65527
8467         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8468         redirection for instrumented calls.
8469         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8470         (append_compiler_options): Append -fcheck-pointer-bounds.
8471         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8472         (chkp_redirect_edge): New.
8473         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8474         (chkp_redirect_edge): New.
8475
8476 2015-06-01  Richard Biener  <rguenther@suse.de>
8477
8478         PR tree-optimization/66280
8479         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8480         def-use walking.
8481
8482 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8483
8484         * config/aarch64/aarch64.md
8485         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8486         logic_shift_imm.
8487
8488 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8489
8490         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8491         Remove obsolete kludge.
8492
8493 2015-06-01  Richard Biener  <rguenther@suse.de>
8494
8495         * tree-ssa-reassoc.c (get_rank): Simplify.
8496
8497 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8498
8499         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8500         * configure: Regenerated.
8501
8502 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8503
8504         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8505         issue (add space between string literal and macro).
8506         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8507
8508 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8509
8510         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8511         implict or explicit -fPIE or -fpie.
8512
8513 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8514
8515         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8516
8517 2015-05-28  DJ Delorie  <dj@redhat.com>
8518
8519         * expmed.c (extract_bit_field_1): Avoid clobbering a
8520         yet-to-be-used base/index register.
8521
8522 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8523
8524         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8525         (alias_stats): Add num_universal.
8526         (alias_set_subset_of): Special case pointers; be ready for NULL
8527         children.
8528         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8529         children.
8530         (init_alias_set_entry): Break out from ...
8531         (record_alias_subset): ... here; propagate new fields;
8532         allocate children only when really needed.
8533         (get_alias_set): Do less generous pointer globbing.
8534         (dump_alias_stats_in_alias_c): Update statistics.
8535
8536 2015-05-30  Alan Modra  <amodra@gmail.com>
8537
8538         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8539         correct block for use of r12.
8540         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8541
8542 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8543
8544         PR target/66215
8545         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8546         with -mhotpatch=.
8547
8548 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8549
8550         PR tree-optimization/66142
8551         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8552         virtual phis that feed themselves.
8553
8554 2015-05-29  Richard Biener  <rguenther@suse.de>
8555
8556         PR tree-optimization/66314
8557         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8558         parameter that says which loop the new block belongs to.
8559         (ssa_create_duplicates): Blocks duplicated for the threaded
8560         path belong to the loop of the thread destination.
8561
8562 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8563
8564         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8565         to cleanup-saved-temps.
8566         * doc/sourcebuild.texi (Clean up generated test files): Expand
8567         introduction.
8568         (dg-keep-saved-temps): Document new proc.
8569         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8570         cleanup-saved-temps): Remove.
8571
8572 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8573
8574         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8575         gcc_AC_CHECK_DECLS.
8576         * configure: Regenerate.
8577
8578 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8579
8580         * config/nios2/linux.h (CPP_SPEC): Define.
8581
8582 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8583
8584         * config/microblaze/linux.h (CPP_SPEC): Define.
8585
8586 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8587
8588         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8589         -pthread is specified.
8590
8591 2015-05-28  Richard Biener  <rguenther@suse.de>
8592
8593         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8594         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8595         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8596         after pattern recog.
8597         (vect_create_epilog_for_reduction): Properly handle reductions
8598         with patterns.
8599         (vectorizable_reduction): Likewise.
8600         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8601         reduction chains.
8602         (vect_get_constant_vectors): Create the correct number of
8603         initial values for reductions.
8604         (vect_schedule_slp_instance): Handle reduction chains that are
8605         type changing properly.
8606         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8607
8608 2015-05-28  Richard Biener  <rguenther@suse.de>
8609
8610         PR tree-optimization/66142
8611         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8612         values better in memcpy destination handling.  Handle non-aliasing
8613         we discover here.
8614
8615 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8616
8617         PR target/63810
8618         * config/darwin-c.c (version_components): New global enum.
8619         (parse_version, version_as_legacy_macro)
8620         (version_as_modern_macro, macosx_version_as_macro): New functions.
8621         (version_as_macro): Remove.
8622         (darwin_cpp_builtins): Use new function.
8623
8624 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8625
8626         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8627         with ATTRIBUTE_UNUSED.
8628
8629 2015-05-28  Julian Brown  <julian@codesourcery.com>
8630
8631         PR libgomp/65742
8632
8633         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8634         sequence for !ACCEL_COMPILER.
8635
8636 2015-05-28  Nick Clifton  <nickc@redhat.com>
8637
8638         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8639         (rx_expand_prologue): ... here.  Use push_regs to push even small
8640         spans of registers.
8641         (pop_regs): New function.
8642         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8643         registers.
8644
8645 2015-05-28  Richard Biener  <rguenther@suse.de>
8646
8647         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8648         member.
8649         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8650         (vect_update_slp_costs_according_to_vf): Likewise.
8651         (vect_slp_analyze_operations): Update prototype.
8652         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8653         vect_update_slp_costs_according_to_vf, adjust.
8654         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8655         (vect_analyze_slp_cost_1): Likewise.
8656         (vect_analyze_slp_cost): Likewise.  Properly deal with
8657         widening reduction ops.  Commit body costs.
8658         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8659         cost for loops from here.
8660         (vect_slp_analyze_operations): But do it from here when
8661         the vectorization factor is known and stmts are analyzed.
8662         (vect_bb_vectorization_profitable_p): Simplify.
8663         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8664         (vect_update_slp_costs_according_to_vf): Remove.
8665
8666 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8667             H.J. Lu  <hongjiu.lu@intel.com>
8668
8669         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8670         (BUILD_CFLAGS): Likewise.
8671         (BUILD_CXXFLAGS): Likewise.
8672         (LINKER): Add @NO_PIE_FLAG@.
8673         (BUILD_LDFLAGS): Likewise.
8674         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8675         --enable-default-pie.
8676         * common.opt (fPIE): Initialize to -1.
8677         (fpie): Likewise.
8678         (no-pie): New option.
8679         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8680         * configure.ac: Add --enable-default-pie.
8681         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8682         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8683         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8684         * gcc.c (NO_PIE_SPEC): New.
8685         (PIE_SPEC): Likewise.
8686         (NO_FPIE1_SPEC): Likewise.
8687         (FPIE1_SPEC): Likewise.
8688         (NO_FPIE2_SPEC): Likewise.
8689         (FPIE2_SPEC): Likewise.
8690         (NO_FPIE2_SPEC): Likewise.
8691         (FPIE_SPEC): Likewise.
8692         (NO_FPIE_SPEC): Likewise.
8693         (NO_FPIC1_SPEC): Likewise.
8694         (FPIC1_SPEC): Likewise.
8695         (NO_FPIC2_SPEC): Likewise.
8696         (FPIC2_SPEC): Likewise.
8697         (NO_FPIC2_SPEC): Likewise.
8698         (FPIC_SPEC): Likewise.
8699         (NO_FPIC_SPEC): Likewise.
8700         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8701         (FPIE1_OR_FPIC1_SPEC): Likewise.
8702         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8703         (FPIE2_OR_FPIC2_SPEC): Likewise.
8704         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8705         (FPIE_OR_FPIC_SPEC): Likewise.
8706         (LD_PIE_SPEC): Likewise.
8707         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8708         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8709         * config/darwin.h (PIE_SPEC): Renamed to ...
8710         (DARWIN_PIE_SPEC): This.
8711         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8712         * config/darwin9.h (PIE_SPEC): Renamed to ...
8713         (DARWIN_PIE_SPEC): This.
8714         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8715         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8716         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8717         FPIE2_OR_FPIC2_SPEC.
8718         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8719         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8720         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8721         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8722         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8723         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8724         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8725         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8726         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8727         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8728         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8729         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8730         * config/sparc/linux.h (ASM_SPEC): Likewise.
8731         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8732         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8733         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8734         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8735         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8736         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8737         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8738         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8739         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8740         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8741         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8742         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8743         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8744         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8745         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8746         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8747         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8748         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8749         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8750         * config/vax/linux.h (ASM_SPEC): Likewise.
8751         * doc/install.texi: Document --enable-default-pie.
8752         * doc/invoke.texi: Document -no-pie.
8753         * config.in: Regenerated.
8754         * configure: Likewise.
8755
8756 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8757
8758         PR rtl-optimization/66168
8759         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
8760         can_move_invariant_reg.
8761
8762 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
8763
8764         PR target/66148
8765         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
8766         REG_EQUAL note when doing insert.
8767
8768         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
8769         instead of "%d" for 'o' operand.
8770
8771 2015-05-27  Nathan Sidwell  <nathan@acm.org>
8772
8773         PR c++/66270
8774         * tree.c (build_pointer_type_for_mode): Canonical type does not
8775         inherit can_alias_all.
8776         (build_reference_type_for_mode): Likewise.
8777
8778 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8779
8780         * expr.h (array_at_struct_end_p): Move to...
8781         (array_ref_element_size): Likewise.
8782         (component_ref_field_offset): Likewise.
8783         * tree.h (array_ref_element_size): ...here.
8784         (array_at_struct_end_p): Likewise.
8785         (component_ref_field_offset): Likewise.
8786         * expr.c (array_ref_element_size): Move to...
8787         (array_ref_low_bound): Likewise.
8788         (array_at_struct_end_p): Likewise.
8789         (array_ref_up_bound): Likewise.
8790         (component_ref_field_offset): Likewise.
8791         * tree.c (array_ref_element_size): ...here.
8792         (array_ref_low_bound): Likewise.
8793         (array_ref_up_bound): Likewise.
8794         (array_at_struct_end_p): Likewise.
8795         (component_ref_field_offset): Likewise.
8796
8797 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8798             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8799
8800         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
8801
8802 2015-05-27  Jason Merrill  <jason@redhat.com>
8803
8804         PR bootstrap/66304
8805         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
8806         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
8807         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
8808
8809 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
8810
8811         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
8812         is true.
8813
8814         * statistics.c (statistics_fini_pass): Print pass name.
8815
8816 2015-05-27  Richard Biener  <rguenther@suse.de>
8817
8818         PR tree-optimization/66272
8819         Revert parts of
8820         2014-08-15  Richard Biener  <rguenther@suse.de>
8821
8822         PR tree-optimization/62031
8823         * tree-data-ref.c (dr_analyze_indices): Do not set
8824         DR_UNCONSTRAINED_BASE.
8825         (dr_may_alias_p): All indirect accesses have to go the
8826         formerly DR_UNCONSTRAINED_BASE path.
8827         * tree-data-ref.h (struct indices): Remove
8828         unconstrained_base member.
8829         (DR_UNCONSTRAINED_BASE): Remove.
8830
8831 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
8832
8833         * dwarf2out.c: Remove block_map.
8834         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
8835         (gen_lexical_block_die): Same.
8836         (dwarf2out_function_decl): Remove block_map use.
8837         (dwarf2out_c_finalize): Same.
8838         * tree-core.h (struct tree_block): Add die field.
8839         * tree.h (BLOCK_DIE): New.
8840
8841 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8842
8843         PR target/65358
8844         * expr.c (memory_load_overlap): New function.
8845         (emit_push_insn): When pushing partial args to the stack would
8846         clobber the register part load the overlapping part into a pseudo
8847         and put it into the hard reg after pushing.  Change return type
8848         to bool.  Add bool argument.
8849         * expr.h (emit_push_insn): Change return type to bool.
8850         Add bool argument.
8851         * calls.c (expand_call): Cancel sibcall optimization when encountering
8852         partial argument on targets with ARGS_GROW_DOWNWARD and
8853         !STACK_GROWS_DOWNWARD.
8854         (emit_library_call_value_1): Update callsite of emit_push_insn.
8855         (store_one_arg): Likewise.
8856
8857 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8858
8859         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
8860
8861 2015-05-27  Martin Liska  <mliska@suse.cz>
8862
8863         * Makefile.in: Add additional dependencies related to memory report
8864         enhancement.
8865         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
8866         * bitmap.c (struct bitmap_descriptor_d): Remove.
8867         (struct loc): Likewise.
8868         (struct bitmap_desc_hasher): Likewise.
8869         (bitmap_desc_hasher::hash): Likewise.
8870         (bitmap_desc_hasher::equal): Likewise.
8871         (get_bitmap_descriptor): Likewise.
8872         (bitmap_register): User new memory descriptor API.
8873         (register_overhead): Likewise.
8874         (bitmap_find_bit): Register nsearches and search_iter statistics.
8875         (struct bitmap_output_info): Remove.
8876         (print_statistics): Likewise.
8877         (dump_bitmap_statistics): Use new memory descriptor.
8878         * bitmap.h (struct bitmap_usage): New class.
8879         * genmatch.c: Extend header file inclusion.
8880         * genpreds.c: Likewise.
8881         * ggc-common.c (struct ggc_usage): New class.
8882         (struct ggc_loc_desc_hasher): Remove.
8883         (ggc_loc_desc_hasher::hash): Likewise.
8884         (ggc_loc_desc_hasher::equal): Likewise.
8885         (struct ggc_ptr_hash_entry): Likewise.
8886         (struct ptr_hash_hasher): Likewise.
8887         (ptr_hash_hasher::hash): Likewise.
8888         (ptr_hash_hasher::equal): Likewise.
8889         (make_loc_descriptor): Likewise.
8890         (ggc_prune_ptr): Likewise.
8891         (dump_ggc_loc_statistics): Use new memory descriptor.
8892         (ggc_record_overhead): Likewise.
8893         (ggc_free_overhead): Likewise.
8894         (final_cmp_statistic): Remove.
8895         (cmp_statistic): Likewise.
8896         (ggc_add_statistics): Liekwise.
8897         (ggc_prune_overhead_list): Likewise.
8898         * hash-map-traits.h: New file.
8899         * hash-map.h (struct default_hashmap_traits): Move the traits to a
8900         separate header file.
8901         * hash-set.h: Pass memory statistics info to ctor.
8902         * hash-table.c (void dump_hash_table_loc_statistics): New function.
8903         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
8904         (hash_table::~hash_table): Register memory release operation.
8905         (hash_table::alloc_entries): Handle memory allocation operation.
8906         (hash_table::expand): Likewise.
8907         * inchash.c (iterative_hash_hashval_t): Move implementation to header
8908         file.
8909         (iterative_hash_host_wide_int): Likewise.
8910         * inchash.h (class hash): Likewise.
8911         * mem-stats-traits.h: New file.
8912         * mem-stats.h: New file.
8913         (mem_location): Add new class.
8914         (mem_usage): Likewise.
8915         (mem_alloc_description): Likewise.
8916         * sese.c: Add new header file inclusision.
8917         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
8918         and hash_set.
8919         * tree-sra.c: Add new header file inclusision.
8920         * vec.c (struct vec_descriptor): Remove.
8921         (hash_descriptor): Likewise.
8922         (struct vec_usage): Likewise.
8923         (struct ptr_hash_entry): Likewise.
8924         (hash_ptr): Likewise.
8925         (eq_ptr): Likewise.
8926         (vec_prefix::register_overhead): Use new memory descriptor API.
8927         (vec_prefix::release_overhead): Likewise.
8928         (add_statistics): Remove.
8929         (dump_vec_loc_statistics): Use new memory descriptor API.
8930         * vec.h (struct vec_prefix): Likewise.
8931         (va_heap::reserve): Likewise.
8932         (va_heap::release): Likewise.
8933         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
8934
8935 2015-05-27  Richard Biener  <rguenther@suse.de>
8936
8937         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
8938         earlier and remove ??? comment.
8939         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
8940         and got called from loop analysis bail out.  Always pass the SLP
8941         node to the vectorizable_* functions.
8942         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
8943         the premature SLP check here.
8944         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
8945         detected SLP stmts.
8946         (vect_detect_hybrid_slp_1): Likewise.
8947
8948 2015-05-26  Jeff Law  <law@redhat.com>
8949
8950         * combine.c (find_split_point): Verify that the shift count is a
8951         constant when choosing (plus (ashift ...)) as a split point.
8952
8953         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
8954         No functional changes.
8955
8956 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
8957
8958         * ipa-polymorphic-call.c
8959         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
8960         case when call target is already known.
8961
8962 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
8963
8964         PR target/65979
8965         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
8966         take into account the case that operands[1] and operands[2]
8967         are the same register.
8968
8969 2015-05-26  Michael Matz  <matz@suse.de>
8970
8971         PR middle-end/66251
8972
8973         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
8974         stores.
8975         (vect_create_vectorized_demotion_stmts): Always set
8976         STMT_VINFO_VEC_STMT, also with SLP.
8977         (vectorizable_store): Handle strided group stores.
8978
8979 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8980
8981         PR target/66049
8982         * config/aarch64/aarch64.md
8983         (*adds_shift_imm_<mode>):  New pattern.
8984         (*subs_shift_imm_<mode>):  Likewise.
8985         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
8986         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
8987         (*add_uxt<mode>_shift2): Likewise.
8988         (*add_uxtsi_shift2_uxtw): Likewise.
8989         (*sub_uxt<mode>_shift2): Likewise.
8990         (*sub_uxtsi_shift2_uxtw): Likewise.
8991
8992 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
8993
8994         * config/rs6000/constraints.md (Y, U): Use match_test.
8995
8996 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8997
8998         PR target/52144
8999         * config/arm/arm.c (arm_option_check_internal)
9000         (arm_option_params_internal): Check opts->target_flags to set macros.
9001         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9002         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
9003         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9004         (builtin_define): Replaced with def_or_undef_macro.
9005         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9006         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
9007         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9008         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
9009         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
9010         (TARGET_ARM_FEATURE_LDREX_P)
9011         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
9012         * config/arm/arm-c.c (def_or_undef_macro): New function.
9013         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
9014
9015 2015-05-26  Christian Bruel  <christian.bruel@st.com>
9016
9017         * c-common.h (builtin_define_with_int_value)
9018         (builtin_define_type_sizeof): Declare.
9019         * c-cppbuiltin.c (builtin_define_with_int_value)
9020         (builtin_define_type_sizeof): Externalize.
9021         (builtin_define_std): Cleanup declaration.
9022         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
9023         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
9024         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
9025         (builtin_define, builtin_assert): New macros.
9026
9027 2015-05-26  Richard Biener  <rguenther@suse.de>
9028
9029         PR tree-optimization/66142
9030         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
9031         MEM_REFs for the same base address.
9032
9033 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9034
9035         PR ipa/66181
9036         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
9037
9038 2015-05-26  Jason Merrill  <jason@redhat.com>
9039
9040         * configure.ac: Set CXXFLAGS for ISL test.
9041         * configure: Regenerate.
9042
9043         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
9044         strstr and basename.
9045         * configure: Regenerate.
9046
9047 2015-05-26  Richard Biener  <rguenther@suse.de>
9048
9049         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
9050         X % C -> X & (C - 1) for C being a power-of two to ...
9051         * match.pd: ... patterns.
9052
9053 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
9054
9055         * match.pd (swapped_tcc_comparison): New operator list.
9056         (-A CMP -B): New simplification.
9057         * fold-const.c (fold_comparison): Remove corresponding code.
9058
9059 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9060
9061         * caller-save.c (init_caller_save): Base temporary register numbers
9062         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
9063         * cfgloopanal.c (init_set_costs): Likewise.
9064         * dojump.c (prefer_and_bit_test): Likewise.
9065         * expr.c (init_expr_target): Likewise.
9066         * ira.c (setup_prohibited_mode_move_regs): Likewise.
9067         * lower-subreg.c (init_lower_subreg): Likewise.
9068         * postreload.c (reload_cse_regs_1): Likewise.
9069
9070 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9071
9072         * gensupport.h (compute_test_codes): Declare.
9073         * gensupport.c (compute_predicate_codes): Rename to...
9074         (compute_test_codes): ...this.  Generalize error message.
9075         (process_define_predicate): Update accordingly.
9076         * genpreds.c (compute_maybe_allows): Delete.
9077         (add_constraint): Use compute_test_codes to determine whether
9078         something can accept a SUBREG, REG or MEM.
9079
9080 2015-05-26  Torvald Riegel  <triegel@redhat.com>
9081
9082         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
9083         'memory model' to align with C++11; fix description of memory orders;
9084         fix a few typos.
9085
9086 2015-05-26  Richard Biener  <rguenther@suse.de>
9087
9088         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
9089         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
9090         detect whether we apply SLP.  Remove call to
9091         vect_update_slp_costs_according_to_vf.
9092         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
9093         vect_update_slp_costs_according_to_vf from here.  Dispatch
9094         to vect_slp_analyze_operations to analyze SLP stmts.
9095         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
9096         unused bb_vec_info parameter, adjust assert.
9097         (vect_slp_analyze_operations): Pass in the slp instance tree
9098         instead of bb_vec_info.
9099         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
9100         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
9101
9102 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9103
9104         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
9105         Q_REGS.  Expand comment.
9106         (REG_CLASS_NAMES): Ditto.
9107         (REG_CLASS_CONTENTS): Ditto.
9108
9109 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
9110
9111         PR target/66274
9112         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9113         when LEGACY_INT_REGNO_P is processed.
9114
9115 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9116
9117         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9118
9119 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9120
9121         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9122         register if not marked dead/unused, before return.
9123
9124 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9125
9126         PR lto/66180
9127         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9128         is set; check for assembler name at LTO time.
9129         (type_in_anonymous_namespace): Remove hacks, check that all
9130         anonymous types are called "<anon>"
9131         (odr_type_p): Simplify; add check for "<anon>"
9132         (odr_subtypes_equivalent): Add odr_type_p check.
9133         * tree.c (need_assembler_name_p): Even anonymous namespace needs
9134         assembler name.
9135
9136 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9137
9138         * ipa-utils.h (method_class_type): Remove.
9139         * cgraphunit.c (walk_polymorphic_call_targets): Use
9140         TYPE_METHOD_BASETYPE.
9141         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9142         on main variants only.
9143         (method_class_type): Remove.
9144         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9145         (build_type_inheritance_graph): Likewise.
9146         * ipa-icf.c (sem_function::equals_wpa): Likewise.
9147         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9148         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9149
9150 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9151
9152         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9153         is_typedef_decl, typedef_variant_p): Constify.
9154         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9155         is_typedef_decl, typedef_variant_p): Constify.
9156
9157 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9158
9159         * defaults.h (gen_tablejump): New function.
9160         (HAVE_tablejump): Add default value.
9161         * expr.c: Adjust.
9162         * stmt.c: Likewise.
9163
9164 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9165
9166         * defaults.h (gen_store_multiple): New function.
9167         (HAVE_store_multiple): Add default value.
9168         * expr.c (move_block_from_reg): Adjust.
9169
9170 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9171
9172         * defaults.h (gen_load_multiple): New function.
9173         (HAVE_load_multiple): Add default value.
9174         * expr.c (move_block_to_reg): Adjust.
9175
9176 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9177
9178         * defaults.h (gen_mem_signal_fence): New function.
9179         (HAVE_mem_signal_fence): Add default value.
9180         * optabs.c: Adjust.
9181
9182 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9183
9184         * defaults.h (gen_memory_barrier): New function.
9185         (HAVE_memory_barrier): Add default value.
9186         * optabs.c: Adjust.
9187
9188 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9189
9190         * defaults.h (gen_mem_thread_fence): New function.
9191         (HAVE_mem_thread_fence): Add default definition.
9192         * optabs.c: Adjust.
9193
9194 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9195
9196         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9197         instead of if it is defined.
9198         (combine_simplify_rtx): Likewise.
9199         * lra-constraints.c (process_address_1): Likewise.
9200         * config/darwin.c: Adjust.
9201         * genconfig.c (main): Always define HAVE_lo_sum.
9202
9203 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9204
9205         * genmatch.c (parser::parse_operation): Reject expanding
9206         operator-list inside 'for'.
9207
9208 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9209
9210         * genmatch.c (parser::parse_for): Reject iterator if used as
9211         operator-list.
9212
9213 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9214
9215         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9216         after end of id-list.
9217
9218 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9219
9220         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9221         we do not try to compute canonical type for type that does not need
9222         alias set.
9223         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9224         FUNCITON_TYPE.
9225         * tree.h (type_with_alias_set_p): New.
9226
9227 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9228
9229         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9230         function attributes.
9231         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9232
9233 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9234
9235         * Makefile.in (check_gcc_parallelize): Delete.
9236         (lang_checks_parallelized): Update comment.
9237
9238 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9239
9240         PR rtl-optimization/66237
9241         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9242         location of an "as_a" cast.
9243
9244 2015-05-22  Jeff Law  <law@redhat.com>
9245
9246         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9247         (peepholes with non-canonical RTL sources): Remove.
9248         (peepholes for indexed stores of FP regs in integer modes): Match and
9249         generate canonical RTL.
9250
9251 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9252
9253         PR tree-optimization/63387
9254         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9255         ((x ord x) & (y ord y) -> (x ord y),
9256         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9257         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9258         vectors like scalars.
9259
9260 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9261
9262         * convert.c (convert_to_integer, convert_to_vector): Include the
9263         types in the error message.
9264
9265 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9266
9267         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9268         simplifications.
9269
9270 2015-05-22  Jeff Law  <law@redhat.com>
9271
9272         * config/pa/pa.md (integer_indexed_store splitters): Use
9273         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9274         insns -- adjusting the constant 2nd operand accordingly.
9275
9276         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9277         (plus (ashift X log2) Y) if it is a split point.
9278
9279         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9280         out of hppa_legitimize_address to handle both forms of a multiply
9281         by 2, 4 or 8.
9282         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9283         Always generate the ASHIFT variant as the result is not directly
9284         used in a MEM.  Update comments and refactor slightly to improve
9285         readability.
9286
9287 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9288
9289         PR target/65491
9290         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9291         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9292         (aarch64_composite_type_p): Return false if given type and mode are
9293         for a short vector.
9294
9295 2015-05-22  Richard Biener  <rguenther@suse.de>
9296
9297         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9298         member.
9299         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9300         patterns when determining whether SLP is pure.
9301         (vect_is_slp_reduction): Remove check for pattern stmts.
9302         (vect_is_simple_reduction_1): Remove dead code.
9303         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9304         (vect_get_and_check_slp_defs): Pass in the stmt number.
9305         Allow the first def in a reduction to be not a pattern stmt when
9306         the rest of the stmts def are patterns.
9307         (vect_build_slp_tree_1): Allow tcc_expression codes like
9308         SAD_EXPR and DOT_PROD_EXPR.
9309         (vect_build_slp_tree): Adjust.
9310         (vect_analyze_slp): Refactor and move BB vect error message ...
9311         (vect_slp_analyze_bb_1): ... here.
9312
9313 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9314
9315         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9316         for CSWTCH temporary.
9317
9318 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9319
9320         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9321         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9322         unknown unspecs.
9323
9324 2015-05-22  Richard Biener  <rguenther@suse.de>
9325
9326         PR tree-optimization/66251
9327         * tree-vect-stmts.c (vectorizable_conversion): Properly
9328         set STMT_VINFO_VEC_STMT even for the SLP case.
9329
9330 2015-05-22  Marek Polacek  <polacek@redhat.com>
9331
9332         * doc/extend.texi: Use @pxref instead of @xref.
9333
9334 2015-05-22  hiraditya  <hiraditya@msn.com>
9335
9336         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9337         redundant if.
9338
9339 2015-05-22  Richard Biener  <rguenther@suse.de>
9340
9341         PR tree-optimization/65701
9342         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9343         Move peeling cost models into one place.  Peel for alignment
9344         for single loads only if an aligned load is cheaper than
9345         an unaligned load.
9346
9347 2015-05-22  Marek Polacek  <polacek@redhat.com>
9348
9349         PR c/47043
9350         * doc/extend.texi (Enumerator Attributes): New section.
9351         Document syntax of enumerator attributes.
9352
9353 2015-05-22  Richard Biener  <rguenther@suse.de>
9354
9355         * tree-vect-loop.c (get_reduction_op): New function.
9356         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9357         Make ready for BB reductions.
9358         (vect_create_epilog_for_reduction): Use get_reduction_op.
9359         (vectorizable_reduction): Init reduc_index to a valid value.
9360         Adjust vect_model_reduction_cost call.
9361         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9362         operand for reduction defaults.  Add SAD_EXPR support.
9363         Assert we have a neutral op for SLP reductions.
9364         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9365         walking pattern stmt ops only recurse to SSA names.
9366
9367 2015-05-22  Richard Biener  <rguenther@suse.de>
9368
9369         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9370         assert with guard, remove check on detected reduction.
9371         (vect_recog_sad_pattern): Likewise.
9372         (vect_recog_widen_sum_pattern): Likewise.
9373
9374 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9375
9376         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9377         __always_inline__ attribute.
9378         (vaesdq_u8): Likewise.
9379         (vaesmcq_u8): Likewise.
9380         (vaesimcq_u8): Likewise.
9381         (vsha1cq_u32): Likewise.
9382         (vsha1mq_u32): Likewise.
9383         (vsha1pq_u32): Likewise.
9384         (vsha1h_u32): Likewise.
9385         (vsha1su0q_u32): Likewise.
9386         (vsha1su1q_u32): Likewise.
9387         (vsha256hq_u32): Likewise.
9388         (vsha256h2q_u32): Likewise.
9389         (vsha256su0q_u32): Likewise.
9390         (vsha256su1q_u32): Likewise.
9391         (vmull_p64): Likewise.
9392         (vmull_high_p64): Likewise.
9393
9394 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9395
9396         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9397         preprocessor.
9398         * output.h: Likewise.
9399         * genconfig.c (main): Alwways define HAVE_peephole.
9400         * genpeep.c: Don't emit checks of HAVE_peephole.
9401
9402 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9403
9404         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9405         check HAVE_conditional_move with the preprocessor.
9406
9407 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9408
9409         * genconfig.c (main): Always define HAVE_conditional_move.
9410         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9411         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9412         is defined.
9413
9414 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9415
9416         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9417         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9418         and FRAME_POINTER_REGNUM with the preprocessor.
9419
9420 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9421
9422         * defaults.h: Add default for STACK_PUSH_CODE.
9423         * expr.c: Don't redefine STACK_PUSH_CODE.
9424         * recog.c: Likewise.
9425
9426 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9427
9428         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9429         sched-deps.c: Use if instead of preprocessor checks with
9430         STACK_GROWS_DOWNWARD.
9431
9432 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9433
9434         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9435         is defined.
9436         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9437         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9438         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9439         * doc/tm.texi: Regenerate.
9440
9441 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9442
9443         PR target/66232
9444         * config/i386/constraints.md (Bg): New constraint for GOT memory
9445         operand.
9446         * config/i386/i386.md (*call_got_x32): New pattern.
9447         (*call_value_got_x32): Likewise.
9448         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9449
9450 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9451
9452         PR tree-optimization/66233
9453         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9454         Simplify.
9455
9456 2015-05-21  Jeff Law  <law@redhat.com>
9457
9458         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9459         than MULT for shadd sequences.
9460
9461 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9462
9463         * alias.c (alias_stats): New static var.
9464         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9465         (dump_alias_stats_in_alias_c): New function.
9466         * alias.h (dump_alias_stats_in_alias_c): Declare.
9467         * tree-ssa-alias.c (dump_alias_stats): Call it.
9468
9469 2015-05-08  Michael Matz  <matz@suse.de>
9470
9471         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9472         to strided_p.
9473         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9474         (STMT_VINFO_STRIDED_P): ... this.
9475         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9476         (vect_verify_datarefs_alignment): Likewise.
9477         (vect_enhance_data_refs_alignment): Likewise.
9478         (vect_analyze_data_ref_access): Likewise.
9479         (vect_analyze_data_refs): Accept strided stores.
9480         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9481         (vect_model_load_cost): Adjust for macro rename.
9482         (vectorizable_mask_load_store): Likewise.
9483         (vectorizable_load): Likewise.
9484         (vectorizable_store): Open code strided stores.
9485
9486 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9487
9488         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9489         Document sqrt_insn.
9490
9491 2015-05-21  Richard Biener  <rguenther@suse.de>
9492
9493         PR c++/66211
9494         * match.pd: Guard pattern optimzing (int)(float)int
9495         conversions to apply only on GIMPLE.
9496
9497 2015-05-21  Jeff Law  <law@redhat.com>
9498
9499         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9500         multiply-accumulate/shift-add insn generation.
9501
9502 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9503
9504         PR target/54236
9505         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9506         operands[1] are the same.
9507
9508 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9509
9510         PR middle-end/66221
9511         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9512         build_distinct_type_copy to copy bounds.
9513
9514 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9515
9516         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9517         Change to unsigned int.
9518
9519 2015-05-20  Jeff Law  <law@redhat.com>
9520
9521         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9522         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9523         (pa_shadd_constant_p): Allow constants for shadd insns rather
9524         than valid scaling constants for memory addresses.
9525         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9526         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9527         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9528         (shift-add insns using ASHIFT): New patterns.
9529
9530 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9531
9532         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9533         feasible.
9534         (fix_up_fall_thru_edges): Likewise.
9535         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9536         from to rtx_insn to rtx_code_label where feasible.
9537         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9538         gen_move_insn (returned type changed to rtx_insn).
9539         * builtins.c (expand_errno_check): Fix arguments of
9540         do_compare_rtx_and_jump (now expects rtx_code_label).
9541         (expand_builtin_acc_on_device): Likewise.
9542         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9543         invert_jump (now exprects rtx_jump_insn).
9544         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9545         (construct_init_block): Use rtx_code_label.
9546         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9547         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9548         calling redirect_jump.
9549         (patch_jump_insn): Likewise.
9550         (redirect_branch_edge): Likewise.
9551         (force_nonfallthru_and_redirect): Likewise.
9552         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9553         when suitable.
9554         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9555         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9556         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9557         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9558         to store the value retured by gen_label_rtx.
9559         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9560         rtx_jump_insn.
9561         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9562         (split_branches): Fix calls of redirect_jump.
9563         * dojump.c (jumpifnot): Promote argument type from rtx to
9564         rtx_code_label.
9565         (jumpifnot_1): Likewise.
9566         (jumpif): Likewise.
9567         (jumpif_1): Likewise.
9568         (do_jump_1): Likewise.
9569         (do_jump): Likewise. Use rtx_code_label when feasible.
9570         (do_jump_by_parts_greater_rtx): Likewise.
9571         (do_jump_by_parts_zero_rtx): Likewise.
9572         (do_jump_by_parts_equality_rtx): Likewise.
9573         (do_compare_rtx_and_jump): Likewise.
9574         * dojump.h: Update function prototypes.
9575         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9576         returns rtx_insn).
9577         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9578         rtx_jump_insn.
9579         (emit_label_before): Likewise.
9580         (emit_jump_insn_after_noloc): Likewise.
9581         (emit_jump_insn_after_setloc): Likewise.
9582         (emit_jump_insn_after): Likewise
9583         (emit_jump_insn_before_setloc): Likewise.
9584         (emit_jump_insn_before): Likewise.
9585         (emit_label_before): Promote return type to rtx_code_label.
9586         (emit_label): Likewise.
9587         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9588         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9589         gen_move_insn.
9590         (emit_stack_restore): Likewise.
9591         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9592         (do_cmp_and_jump): Likewise.
9593         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9594         from rtx to rtx_code_label.
9595         (gen_move_insn_uncast): New function.
9596         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9597         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9598         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9599         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9600         invert_jump_1 and redirect_jump_1.
9601         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9602         do_compare_rtx_and_jump.
9603         (expand_addsub_overflow): Likewise.
9604         (expand_neg_overflow): Likewise.
9605         (expand_mul_overflow): Likewise.
9606         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9607         return value of gen_move_insn.
9608         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9609         * loop-doloop.c (add_test): Use rtx_code_label.
9610         (doloop_modify): Likewise.
9611         (doloop_optimize): Likewise.
9612         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9613         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9614         by gen_move_insn.
9615         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9616         (split_reg): Likewise.
9617         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9618         gen_move_insn.
9619         * optabs.c (expand_binop_directly): Remove casts of values returned by
9620         maybe_gen_insn.
9621         (expand_unop_direct): Likewise.
9622         (expand_abs): Likewise.
9623         (maybe_emit_unop_insn): Likewise.
9624         (maybe_gen_insn): Promote return type to rtx_insn.
9625         * optabs.h: Update prototype of maybe_gen_insn.
9626         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9627         redundant cast.
9628         * recog.c (struct peep2_insn_data): Promote type of insn field to
9629         rtx_insn.
9630         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9631         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9632         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9633         * recog.h (struct insn_gen_fn): Promote return types of function
9634         pointers and operator ().from rtx to rtx_insn.
9635         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9636         (fill_eager_delay_slots): Likewise.
9637         (relax_delay_slots): Likewise.
9638         (make_return_insns): Likewise.
9639         (dbr_schedule): Likewise.
9640         (optimize_skips): Likewise.
9641         (reorg_redirect_jump): Likewise.
9642         (fill_slots_from_thread): Likewise.
9643         * reorg.h: Update prototypes.
9644         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9645         rtx_jump_insn instead of check.  Use it's jump_target method.
9646         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9647         (rtx_jump_insn::jump_target): Define new method.
9648         (rtx_jump_insn::set_jump_target): Define new method.
9649         * rtlanal.c (tablejump_p): Promote type of one local variable.
9650         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9651         (sched_analyze_insn): Likewise.
9652         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9653         (print_insn): Likewise.
9654         * stmt.c (label_rtx): Promote return type to rtx_insn.
9655         (force_label_rtx): Likewise.
9656         (jump_target_rtx): Define new function.
9657         (expand_label): Use it, get rid of one cast.
9658         (expand_naked_return): Promote rtx to rtx_code_label.
9659         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9660         (expand_case): Use rtx_code_label instread of rtx where feasible.
9661         (expand_sjlj_dispatch_table): Likewise.
9662         (emit_case_nodes): Likewise.
9663         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9664         * store-motion.c (insert_store): Make use of new return type of
9665         gen_move_insn and remove a cast.
9666         (replace_store_insn): Likewise.
9667
9668 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9669
9670         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9671         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9672
9673 2015-05-20  Jeff Law  <law@redhat.com>
9674
9675         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9676         dispose of the jump thread path when the jump threading
9677         opportunity is cancelled.
9678
9679 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9680
9681         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9682         when printing the caret character.
9683
9684 2015-05-20  Marek Polacek  <polacek@redhat.com>
9685
9686         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9687
9688 2015-05-20  Marek Polacek  <polacek@redhat.com>
9689
9690         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9691         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9692         * gimple-fold.c (canonicalize_bool): Likewise.
9693         (same_bool_result_p): Likewise.
9694         * tree-if-conv.c (parse_predicate): Likewise.
9695
9696 2015-05-20  Marek Polacek  <polacek@redhat.com>
9697
9698         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9699         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9700
9701 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9702
9703         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9704         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9705         values.
9706
9707 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9708
9709         * config/mips/mips.h (micromips_globals): Declare.
9710
9711 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9712
9713         * timevar.def (TV_INITIALIZE_RTL): New.
9714         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9715         function's time to TV_INITIALIZE_RTL.
9716
9717 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9718
9719         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9720         gimple_build_nop calls.
9721         (chkp_find_bounds_for_elem): Likewise.
9722         (chkp_get_zero_bounds): Likewise.
9723         (chkp_get_none_bounds): Likewise.
9724         (chkp_get_bounds_by_definition): Likewise.
9725         (chkp_generate_extern_var_bounds): Likewise.
9726         (chkp_get_bounds_for_decl_addr): Likewise.
9727         (chkp_get_bounds_for_string_cst): Likewise.
9728
9729 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9730
9731         PR tree-optimization/65447
9732         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9733         (dump_use, dump_uses): Support to dump sub use.
9734         (record_use): New parameters to support sub use.  Remove call to
9735         dump_use.
9736         (record_sub_use, record_group_use): New functions.
9737         (compute_max_addr_offset, split_all_small_groups): New functions.
9738         (group_address_uses, rewrite_use_address): New functions.
9739         (strip_offset): New declaration.
9740         (find_interesting_uses_address): Call record_group_use.
9741         (add_candidate): New assertion.
9742         (infinite_cost_p): Move definition forward.
9743         (add_costs): Check INFTY cost and return immediately.
9744         (get_computation_cost_at): Clear setup cost and dependent bitmap
9745         for sub uses.
9746         (determine_use_iv_cost_address): Compute cost for sub uses.
9747         (rewrite_use_address_1): Rename from old rewrite_use_address.
9748         (free_loop_data): Free sub uses.
9749         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9750
9751 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9752             Jim Wilson  <jim.wilson@linaro.org>
9753
9754         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
9755         new  fields loadv and storev.
9756         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
9757         Initialize loadv and storev.
9758         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
9759         (cortexa53_extra_costs): Likewise.
9760         (cortexa57_extra_costs): Likewise.
9761         (xgene1_extra_costs): Likewise.
9762         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
9763         rtx_costs.
9764
9765 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9766
9767         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
9768          storev.
9769         (cortexa8_extra_costs): Likewise.
9770         (cortexa5_extra_costs): Likewise.
9771         (cortexa7_extra_costs): Likewise.
9772         (cortexa12_extra_costs): Likewise.
9773         (cortexa15_extra_costs): Likewise.
9774         (v7m_extra_costs): Likewise.
9775
9776 2015-05-20  Jeff Law  <law@redhat.com>
9777
9778         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
9779         instead of open-coded version.  Also delete the jump thread created
9780         within this function.
9781
9782 2015-05-20  Alan Modra  <amodra@gmail.com>
9783
9784         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
9785         stack adjusting insn.  Formatting.
9786         (rs6000_emit_prologue): Track stack adjusting insn, and use of
9787         r12.  If possible, emit first -fsplit-stack arg pointer insn
9788         before stack adjust.  Don't use r12 to save cr if split-stack.
9789
9790 2015-05-20  Alan Modra  <amodra@gmail.com>
9791
9792         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
9793         Define.
9794         (rs6000_supports_split_stack): New function.
9795         * gcc/config/rs6000/rs6000.c (machine_function): Add
9796         split_stack_arg_pointer.
9797         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
9798         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
9799         rather than virtual_incoming_args_rtx.
9800         (rs6000_va_start): Likewise.
9801         (split_stack_arg_pointer_used_p): New function.
9802         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
9803         (morestack_ref): New var.
9804         (gen_add3_const, rs6000_expand_split_stack_prologue,
9805         rs6000_internal_arg_pointer, rs6000_live_on_entry,
9806         rs6000_split_stack_space_check): New functions.
9807         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
9808         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
9809         (UNSPECV_SPLIT_STACK_RETURN): Define.
9810         (split_stack_prologue, load_split_stack_limit,
9811         load_split_stack_limit_di, load_split_stack_limit_si,
9812         split_stack_return, split_stack_space_check): New expands and insns.
9813         * gcc/config/rs6000/rs6000-protos.h
9814         (rs6000_expand_split_stack_prologue): Declare.
9815         (rs6000_split_stack_space_check): Declare.
9816
9817 2015-05-20  Alan Modra  <amodra@gmail.com>
9818
9819         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
9820         (direct_return): Test vrsave_size rather than vrsave_mask.
9821         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
9822         (rs6000_emit_epilogue): Likewise.
9823
9824 2015-05-20  Alan Modra  <amodra@gmail.com>
9825
9826         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
9827         when not saving registers.
9828         (debug_stack_info): Adjust to omit printing unused offsets,
9829         as before.
9830         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
9831         expression.
9832
9833 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9834
9835         PR c++/65835
9836         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
9837         value_type to const char *.
9838
9839 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
9840
9841         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
9842         to build a biarch toolchain again.
9843
9844 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9845
9846         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
9847         or implicit declarations.
9848         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
9849         into it.
9850         (get_odr_type): Check type has linkage before adding bases.
9851         (register_odr_type): Check that type has linkage before adding it.
9852         (type_known_to_have_no_deriavations_p): Rename to ..
9853         (type_known_to_have_no_derivations_p): This one.
9854         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
9855         (type_known_to_have_no_derivations_p): This one.
9856         * ipa-polymorphic-call.c
9857         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
9858         type has linkage.
9859
9860 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9861
9862         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
9863         (layout_type): Use RECORD_OR_UNION_TYPE_P.
9864
9865 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9866
9867         * config/s390/s390.c (s390_vector_bool_type_p): New function.
9868         (s390_invalid_binary_op): New function.
9869         (TARGET_INVALID_BINARY_OP): Define macro.
9870
9871 2015-05-19  David Sherwood  <david.sherwood@arm.com>
9872
9873         * loop-invariant.c (create_new_invariant): Don't calculate address cost
9874         if mode is not a scalar integer.
9875         (get_inv_cost): Increase computational cost for unused invariants.
9876
9877 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9878
9879         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
9880         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
9881         * config/s390/s390-builtin-types.def: New file.
9882         * config/s390/s390-builtins.def: New file.
9883         * config/s390/s390-builtins.h: New file.
9884         * config/s390/s390-c.c: New file.
9885         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
9886         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
9887         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
9888         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
9889         prototypes.
9890         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
9891         Include.
9892         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
9893         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
9894         variable definitions.
9895         (s390_const_operand_ok): New function.
9896         (s390_expand_builtin): Rewrite.
9897         (s390_init_builtins): New function.
9898         (s390_handle_vectorbool_attribute): New function.
9899         (s390_attribute_table): Add s390_vector_bool attribute.
9900         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
9901         (s390_branch_condition_mask): Generate masks for new modes.
9902         (s390_expand_vec_compare_cc): New function.
9903         (s390_mangle_type): Add mangling for vector bool types.
9904         (enum s390_builtin): Remove.
9905         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
9906         efpc builtins.
9907         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
9908         s390_cpu_cpp_builtins.
9909         (REGISTER_TARGET_PRAGMAS): New macro.
9910         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
9911         (insn_cmp mode attribute): Add new CC modes.
9912         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
9913         (lcbb): New pattern definition.
9914         * config/s390/s390intrin.h: Include vecintrin.h.
9915         * config/s390/t-s390: New file.
9916         * config/s390/vecintrin.h: New file.
9917         * config/s390/vector.md: Include vx-builtins.md.
9918         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
9919         support.
9920
9921 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9922
9923         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
9924         CCVFHE.
9925         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
9926         (s390_select_ccmode): Likewise.
9927         (s390_canonicalize_comparison): Swap operands if necessary.
9928         (s390_expand_vec_compare_scalar): Expand DFmode compare using
9929         single element vector instructions.
9930         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
9931         (s390_branch_condition_mask): Generate CC masks for the new modes.
9932         * config/s390/s390.md (v0, vf, vd): New mode attributes.
9933         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
9934         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
9935         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
9936         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
9937         (*extend<DSF:mode><BFP:mode>2): New insn definition.
9938         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
9939         (extend<DSF:mode><BFP:mode>2): Turn into expander.
9940         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
9941         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
9942         (sqrt<mode>2): Add vector instruction.
9943
9944 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9945
9946         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
9947         constraints.
9948         * config/s390/predicates.md (const0_operand, constm1_operand)
9949         (constable_operand): Accept vector operands.
9950         * config/s390/s390-modes.def: Add supported vector modes.
9951         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
9952         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
9953         (s390_bytemask_vector_p, s390_expand_vec_strlen)
9954         (s390_expand_vec_compare, s390_expand_vcond)
9955         (s390_expand_vec_init): Add prototypes.
9956         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
9957         (s390_vector_mode_supported_p): New function.
9958         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
9959         (s390_contiguous_bitmask_vector_p): New function.
9960         (s390_bytemask_vector_p): New function.
9961         (s390_split_ok_p): Vector regs don't work either.
9962         (regclass_map): Add VEC_REGS.
9963         (s390_legitimate_constant_p): Handle vector constants.
9964         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
9965         (legitimate_reload_vector_constant_p): New function.
9966         (s390_preferred_reload_class): Handle CONST_VECTOR.
9967         (s390_reload_symref_address):  Likewise.
9968         (s390_secondary_reload): Vector memory instructions only support
9969         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
9970         (s390_emit_ccraw_jump): New function.
9971         (s390_expand_vec_strlen): New function.
9972         (s390_expand_vec_compare): New function.
9973         (s390_expand_vcond): New function.
9974         (s390_expand_vec_init): New function.
9975         (s390_dwarf_frame_reg_mode): New function.
9976         (print_operand): Handle addresses with 'O' and 'R' constraints.
9977         (NR_C_MODES, constant_modes): Add vector modes.
9978         (s390_output_pool_entry): Handle vector constants.
9979         (s390_hard_regno_mode_ok): Handle vector registers.
9980         (s390_class_max_nregs): Likewise.
9981         (s390_cannot_change_mode_class): New function.
9982         (s390_invalid_arg_for_unprototyped_fn): New function.
9983         (s390_function_arg_vector): New function.
9984         (s390_function_arg_float): Remove size variable.
9985         (s390_pass_by_reference): Handle vector arguments.
9986         (s390_function_arg_advance): Likewise.
9987         (s390_function_arg): Likewise.
9988         (s390_return_in_memory): Vector values are returned in a VR if
9989         possible.
9990         (s390_function_and_libcall_value): Handle vector arguments.
9991         (s390_gimplify_va_arg): Likewise.
9992         (s390_call_saved_register_used): Consider the arguments named.
9993         (s390_conditional_register_usage): Disable v16-v31 for non-vec
9994         targets.
9995         (s390_preferred_simd_mode): New function.
9996         (s390_support_vector_misalignment): New function.
9997         (s390_vector_alignment): New function.
9998         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
9999         (TARGET_VECTOR_MODE_SUPPORTED_P)
10000         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
10001         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
10002         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
10003         (TARGET_VECTOR_ALIGNMENT): Define target macro.
10004         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
10005         (FIRST_PSEUDO_REGISTER): Increase value.
10006         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
10007         (VECTOR_REG_P): Define macros.
10008         (FIXED_REGISTERS, CALL_USED_REGISTERS)
10009         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
10010         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
10011         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
10012         Add vector registers.
10013         (CANNOT_CHANGE_MODE_CLASS): Call C function.
10014         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
10015         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
10016         memory.
10017         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
10018         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
10019         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
10020         (VR*_REGNUM): New constants.
10021         (ALL): New mode iterator.
10022         (INTALL): Remove mode iterator.
10023         Include vector.md.
10024         (movti): Implement TImode moves for VRs.
10025         Disable TImode splitter for VR targets.
10026         Implement splitting TImode GPR<->VR moves.
10027         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
10028         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
10029         reload<mode>_la_in, reload<mode>_la_out.
10030         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
10031         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
10032         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
10033         (mov<mode> SF SD): Prefer lder, lde for loading.
10034         Add lrl and strl instructions.
10035         Add vector instructions.
10036         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
10037         Call s390_expand_vec_strlen on z13.
10038         (*cc_to_int): Change predicate to nonimmediate_operand.
10039         (addti3): Rename to *addti3.  New expander.
10040         (subti3): Rename to *subti3.  New expander.
10041         * config/s390/vector.md: New file.
10042
10043 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10044
10045         * common/config/s390/s390-common.c (processor_flags_table): Add
10046         z13.
10047         * config.gcc: Add z13.
10048         * config/s390/s390-opts.h (enum processor_type): Add
10049         PROCESSOR_2964_Z13.
10050         * config/s390/s390.c (s390_adjust_priority): Check for
10051         PROCESSOR_2964_Z13.
10052         (s390_reorg): Likewise.
10053         (s390_sched_reorder): Likewise.
10054         (s390_sched_variable_issue): Likewise.
10055         (s390_loop_unroll_adjust): Likewise.
10056         (s390_option_override): Likewise. Default to -mvx when available.
10057         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
10058         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
10059         (TARGET_VX_ABI): Define macros.
10060         macros.
10061         (TARGET_DEFAULT): Add MASK_OPT_VX.
10062         * config/s390/s390.md ("cpu" attribute): Add z13.
10063         ("cpu_facility" attribute): Add vec.
10064         * config/s390/s390.opt (processor_type): Add z13.
10065         (mvx): New options.
10066         * doc/invoke.texi: Add z13 option for -march.
10067
10068 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10069
10070         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
10071         mode check to make sure that only scalar integer values are
10072         accepted.
10073
10074 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10075
10076         * tree.c (verify_type_variant): Fix #undef.
10077         (gimple_canonical_types_compatible_p): Move here from lto.c
10078         (verify_type): Verify TYPE_CANONICAL compatibility.
10079         * tree.h (gimple_canonical_types_compatible_p): Declare.
10080
10081 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10082
10083         PR middle-end/66199
10084         * tree.h (OMP_TEAMS_COMBINED): Define.
10085         * gimplify.c (enum gimplify_omp_var_data): Add
10086         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
10087         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
10088         (omp_notice_variable): Accept both ORT_TEAMS
10089         and ORT_COMBINED_TEAMS.  Don't recurse if
10090         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
10091         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
10092         GOVD_FIRSTPRIVATE.
10093         (omp_no_lastprivate): New function.
10094         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
10095         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
10096         notice_outer and set appropriate bits, otherwise make
10097         sure default(none) combined constructs won't complain.
10098         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
10099         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
10100         omp_no_lastprivate either remove the clause or turn it
10101         into OMP_CLAUSE_PRIVATE.
10102         (gimplify_omp_for): Fix up handling of implicit
10103         lastprivate or linear iterators.
10104         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
10105         ORT_COMBINED_TEAMS.
10106         * omp-low.c (lower_omp_for_lastprivate): For combined
10107         for simd use fd.loop.n2 from the for rather than simd.
10108
10109 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10110
10111         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10112         instead of gen_rtx_raw_REG.
10113         (cris_expand_epilogue): Likewise.
10114         * config/microblaze/microblaze.c (microblaze_classify_address):
10115         Likewise.
10116         * config/sparc/sparc.md: Likewise.
10117
10118 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
10119
10120         * config/alpha/alpha.c (alpha_legitimize_reload_address)
10121         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10122         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10123         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10124         Use CASE_CONST_SCALAR_INT.
10125         (print_operand) <case 'M'>: Use mode_width_operand to check the
10126         value of the constant.
10127         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10128         * config/alpha/predicates.md (input_operand): Use general_operand
10129         instead of match_code as operand check.
10130         (symbolic_operand): Use match_code with subexpression digits.
10131         * config/alpha/constraints.md (Q): Ditto.
10132
10133 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10134
10135         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10136
10137 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10138
10139         * config/s390/s390.c (s390_secondary_reload): Fix check for
10140         load/store relative.
10141
10142 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10143
10144         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
10145         alternative_mask to uint64_t.
10146
10147 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10148
10149         PR tree-optimization/66187
10150         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10151         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
10152         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10153
10154 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10155
10156         * diagnostic.c (diagnostic_report_current_module): Strengthen
10157         local "new_map" from const line_map * to
10158         const line_map_ordinary *.
10159         * genmatch.c (error_cb): Likewise for local "map".
10160         (output_line_directive): Likewise for local "map".
10161         * input.c (expand_location_1): Likewise for local "map".
10162         Pass NULL rather than &map to
10163         linemap_unwind_to_first_non_reserved_loc, since the value is never
10164         read from there, and the value written back not read from here.
10165         (is_location_from_builtin_token): Strengthen local "map" from
10166         const line_map * to const line_map_ordinary *.
10167         (dump_location_info): Strengthen locals "map" from
10168         line_map *, one to const line_map_ordinary *, the other
10169         to const line_map_macro *.
10170         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10171         const line_map * to const line_map_macro *.
10172         (maybe_unwind_expanded_macro_loc): Add a call to
10173         linemap_check_macro when writing to the "map" field of the
10174         loc_map_pair.
10175         Introduce local const line_map_ordinary * "ord_map", using it in
10176         place of "map" in the part of the function where we know we have
10177         an ordinary map.  Strengthen local "m" from const line_map * to
10178         const line_map_ordinary *.
10179
10180 2015-05-19  Nick Clifton  <nickc@redhat.com>
10181
10182         PR target/66156
10183         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10184         separate source and destination registers.
10185
10186 2015-05-19  Richard Biener  <rguenther@suse.de>
10187
10188         PR tree-optimization/66165
10189         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10190         for no load permutation.
10191
10192         PR tree-optimization/66185
10193         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10194         when building the SLP node from scalars.
10195
10196 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10197             Tristan Gingold  <gingold@adacore.com>
10198
10199         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10200         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10201         (expand_stack_restore): Call record_new_stack_level.
10202         (expand_stack_save): Do not call do_pending_stack_adjust.
10203         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10204         * calls.c (expand_call): Call record_new_stack_level for alloca.
10205         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10206         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10207         (update_sjlj_context): New global function.
10208         * except.h (update_sjlj_context): Declare.
10209         * explow.c (record_new_stack_level): New global function.
10210         (allocate_dynamic_stack_space): Call record_new_stack_level.
10211         * explow.h (record_new_stack_level): Declare.
10212         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10213         * cfgrtl.c (duplicate_insn_chain): Likewise.
10214
10215 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10216
10217         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10218         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10219         STACK_GROWS_DOWNWARD as normal if.
10220         (expand_call): Likewise.
10221
10222 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10223
10224         PR target/54236
10225         * config/sh/sh.md (*round_int_even): New insn_and_split and
10226         accompanying new unnamed split.
10227
10228 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10229
10230         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10231         (bitmap_clear_range): Likewise.
10232         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10233         bitmap_set_range unconditionally.
10234         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10235         * df-scan.c (df_mark_reg): Likewise.
10236         * haifa-sched.c (setup_ref_regs): Likewise.
10237         * sched-rgn.c (update_live_1): Likewise.
10238
10239 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10240
10241         * regs.h (END_HARD_REGNO): Delete.
10242         (END_REGNO): Move to...
10243         * rtl.h: ...here.
10244         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10245         * caller-save.c (mark_set_regs): Likewise.
10246         * combine.c (move_deaths, distribute_notes): Likewise.
10247         * cse.c (invalidate, invalidate_for_call): Likewise.
10248         * df-scan.c (df_ref_record): Likewise.
10249         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10250         (record_last_reg_set_info): Likewise.
10251         * reg-stack.c (convert_regs_exit): Likewise.
10252         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10253         * resource.c (update_live_status): Likewise.
10254         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10255
10256 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10257
10258         * rtl.h (reg_info): Add an nregs field.
10259         (REG_NREGS): Use it.
10260         (SET_REGNO_RAW): Delete.
10261         (set_regno_raw): New function.
10262         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10263         (END_REGNO): Redefine in terms of REG_NREGS.
10264         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10265         SET_REGNO_RAW.
10266         * emit-rtl.c (set_mode_and_regno): Likewise.
10267         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10268         instead of SET_REGNO_RAW.
10269
10270 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10271
10272         * rtl.h (PUT_MODE_RAW): New macro.
10273         (PUT_REG_NOTE_KIND): Use it.
10274         (set_mode_and_regno): Declare.
10275         (gen_raw_REG): Change regno to "unsigned int".
10276         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10277         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10278         use set_mode_and_regno to change the mode of registers.
10279         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10280         * emit-rtl.c (set_mode_and_regno): New function.
10281         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10282         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10283         * expr.c (init_expr_target): Likewise.
10284         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10285         * postreload.c (reload_cse_simplify_operands): Likewise.
10286
10287 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10288
10289         * caller-save.c (init_caller_save): Use word_mode and
10290         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10291         * expr.c (init_expr_target): Likewise.
10292         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10293         * postreload.c (reload_cse_regs_1): Likewise.
10294
10295 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10296
10297         * rtl.def (REG): Change format to "r".
10298         * rtl.h (rtunion): Remove rt_reg.
10299         (reg_info): New structure.
10300         (rtx_def): Add reg field to main union.
10301         (X0REGATTR): Delete.
10302         (REG_CHECK): New macro.
10303         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10304         * rtl.c (rtx_format): Document "r".
10305         (rtx_code_size): Handle REG specially.
10306         * gengenrtl.c (special_format): Return true for formats
10307         that include 'r'.
10308         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10309         Deal with REG_ATTRS after the field loop.
10310         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10311         * expmed.c (init_expmed): Call gen_raw_REG instead of
10312         gen_rtx_raw_REG.
10313         * expr.c (init_expr_target): Likewise.
10314         * regcprop.c (maybe_mode_change): Likewise.
10315         * varasm.c (make_decl_rtl): Likewise.
10316         * final.c (leaf_renumber_regs_insn): Return early after
10317         handling REGs.
10318         * genemit.c (gen_exp): Handle 'r' fields.
10319         * genpeep.c (match_rtx): Likewise.
10320         * gensupport.c (subst_pattern_match): Likewise.
10321         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10322         (alter_constraints, subst_dup): Likewise.
10323         * read-rtl.c (read_rtx_code): Likewise.
10324         * print-rtl.c (print_rtx): Likewise.
10325         * genrecog.c (find_operand, find_matching_operand): Likewise.
10326         (validate_pattern, match_pattern_2): Likewise.
10327         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10328         (rtx_test::regno_field): New function.
10329         (operator ==, safe_to_hoist_p, transition_parameter_type)
10330         (parameter_type_string, print_parameter_value)
10331         (print_nonbool_test, print_test): Handle new enum values.
10332         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10333         * lra-constraints.c (operands_match_p): Likewise.
10334
10335 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10336
10337         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10338         Change type of new_regno to unsigned int.
10339         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10340         new_regno to unsigned int.
10341         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10342         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10343         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10344         (SET_REGNO_RAW): Add space after ",".
10345
10346 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10347
10348         * rtl.h (REG_NREGS): New macro
10349         * alias.c (record_set): Use it.
10350         * cfgcleanup.c (mark_effect): Likewise.
10351         * combine.c (likely_spilled_retval_1): Likewise.
10352         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10353         (move_deaths, distribute_notes): Likewise.
10354         * cselib.c (cselib_record_set): Likewise.
10355         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10356         * df-scan.c (df_mark_reg): Likewise.
10357         * dse.c (look_for_hardregs): Likewise.
10358         * dwarf2out.c (reg_loc_descriptor): Likewise.
10359         (multiple_reg_loc_descriptor): Likewise.
10360         * expr.c (write_complex_part, read_complex_part): Likewise.
10361         (emit_move_complex): Likewise.
10362         * haifa-sched.c (setup_ref_regs): Likewise.
10363         * ira-lives.c (mark_hard_reg_live): Likewise.
10364         * lra.c (lra_set_insn_recog_data): Likewise.
10365         * mode-switching.c (create_pre_exit): Likewise.
10366         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10367         (reload_combine_recognize_pattern): Likewise.
10368         (reload_combine_note_use, move2add_record_mode): Likewise.
10369         (reload_cse_move2add): Likewise.
10370         * reg-stack.c (subst_stack_regs_pat): Likewise.
10371         * regcprop.c (kill_value, copy_value): Likewise.
10372         (copyprop_hardreg_forward_1): Likewise.
10373         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10374         (build_def_use): Likewise.
10375         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10376         (deps_analyze_insn): Likewise.
10377         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10378         * sel-sched.c (count_occurrences_equiv): Likewise.
10379         * valtrack.c (dead_debug_insert_temp): Likewise.
10380
10381 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10382
10383         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10384         * dse.c (note_add_store): Likewise.
10385         * ira-lives.c (mark_hard_reg_dead): Likewise.
10386         * loop-invariant.c (mark_reg_store): Likewise.
10387         (mark_reg_death): Likewise.
10388         * postreload.c (reload_combine): Likewise.
10389         (reload_combine_note_store): Likewise.
10390         (reload_combine_note_use): Likewise.
10391         * recog.c (peep2_reg_dead_p): Likewise.
10392
10393 2015-05-19  Alan Modra  <amodra@gmail.com>
10394
10395         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10396         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10397         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10398         unused predicates.
10399         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10400         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10401         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10402         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10403
10404 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10405
10406         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10407         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10408         (join2_loadhi): Likewise.
10409         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10410         load-load and store-stores.
10411         * config/mips/mips.opt (mload-store-pairs): New option.
10412         (TARGET_LOAD_STORE_PAIRS): New macro.
10413         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10414         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10415         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10416
10417 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10418
10419         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10420         explicit swaps.
10421         * dojump.c (do_compare_rtx_and_jump): Likewise.
10422         * expmed.c (emit_store_flag_1): Likewise.
10423         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10424         * final.c (sprint_ul): Use std::reverse for reversing a string.
10425         * fold-const.c (extract_muldiv_1): Use std::swap.
10426         * genmodes.c (emit_mode_int_n): Likewise.
10427         * ifcvt.c (dead_or_predicable): Likewise.
10428         * ira-build.c (ira_merge_live_ranges): Likewise.
10429         (swap_allocno_copy_ends_if_necessary): Likewise.
10430         * ira.c (ira_setup_alts): Likewise.
10431         * loop-iv.c (iv_analyze_expr): Likewise.
10432         (implies_p): Likewise.
10433         (canon_condition): Likewise.
10434         * lra-constraints.c (swap_operands): Likewise.
10435         * lra-lives.c (lra_merge_live_ranges): Likewise.
10436         * omega.c (swap): Remove.
10437         (bswap): Remove.
10438         (omega_unprotect_1): Use std::swap.
10439         (omega_solve_geq): Likewise.
10440         * optabs.c (expand_binop_directly): Likewise.
10441         (expand_binop): Likewise.
10442         (emit_conditional_move): Likewise.
10443         (emit_conditional_add): Likewise.
10444         * postreload.c (reload_cse_simplify_operands): Likewise.
10445         * reg-stack.c (emit_swap_insn): Likewise.
10446         (swap_to_top): Likewise.
10447         (compare_for_stack_reg): Likewise.
10448         (subst_asm_stack_regs): Likewise.
10449         * reload.c (find_reloads): Likewise.
10450         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10451         * sel-sched.c (invoke_reorder_hooks): Likewise.
10452         (create_block_for_bookkeeping): Likewise.
10453         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10454         (lambda_matrix_right_hermite): Use std::swap.
10455         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10456         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10457         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10458         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10459         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10460         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10461         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10462         * tree-vrp.c (compare_ranges): Likewise.
10463         * var-tracking.c (add_with_sets): Likewise.
10464         (vt_find_locations): Likewise.
10465
10466 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10467
10468         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10469         pie executables.
10470         (FBSD_ENDFILE_SPEC): Likewise.
10471         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10472         config/freebsd-spec.h.
10473         (ENDFILE_SPEC): Likewise.
10474
10475 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10476             Richard Henderson  <rth@redhat.com>
10477
10478         PR target/57032
10479         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10480         Check for a memory location that is not a reference (using an AND)
10481         to an unaligned location here.
10482         * config/alpha/predicates.md (normal_memory_operand): Remove.
10483
10484 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10485
10486         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10487         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10488
10489 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10490
10491         * config/mips/mips.c (micromips_globals): New variable.
10492         (mips_set_compression_mode): Save and reinitialize target-dependent
10493         state for microMIPS.
10494
10495 2015-05-18  Martin Liska  <mliska@suse.cz>
10496
10497         * dbgcnt.def: Add new counter.
10498         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10499
10500 2015-05-18  Martin Liska  <mliska@suse.cz>
10501
10502         * dbgcnt.def: Sort counters.
10503         * opts.c (common_handle_option): Do not compile if
10504         -fdbg-cnt-list is enabled.
10505
10506 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10507
10508         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10509         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10510         address operator to va_list operand.
10511         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10512         unconditionally.
10513         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10514         operand.
10515         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10516         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10517         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10518
10519 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10520
10521         * tree-ssa-tail-merge.c: Fix whitespace.
10522
10523 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10524
10525         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10526         cortex-a17, and cortex-a17.cortex-a7.
10527
10528 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10529
10530         PR target/54236
10531         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10532
10533 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10534
10535         PR target/66174
10536         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10537         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10538         to a register for AVX512F modes.
10539
10540 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10541
10542         * toplev.c (emit_debug_global_declarations): Do not output debug info
10543         when doing slim LTO objects.
10544
10545 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10546
10547         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10548         odr_types_equivalent_p): Declare.
10549         (odr_type_p): Use gcc_checking_assert.
10550         (type_in_anonymous_namespace_p) Declare.
10551         (type_with_linkage_p): Declare.
10552         * common.opt (Wlto-type-mismatch): New warning.
10553         * ipa-devirt.c (compound_type_base): New function.
10554         (odr_or_derived_type_p): New function.
10555         (odr_types_equivalent_p): New function.
10556         (add_type_duplicate): Simplify.
10557         (type_with_linkage_p): Add hack to prevent false positives on C types
10558         (type_in_anonymous_namespace_p): Likewise.
10559         * tree.c (need_assembler_name_p): Use type_with_linkage.
10560         * tree.h (type_in_anonymous_namespace_p): Remove.
10561         * doc/invoke.texi (-Wlto-type-mismatch): Document
10562
10563 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10564
10565         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10566         (verify_type): Verify STRING_FLAG.
10567
10568 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10569
10570         PR fortran/44054
10571         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10572         with accessor function.
10573         * tree-diagnostic.c (diagnostic_report_current_function): Use
10574         diagnostic_location function.
10575         (maybe_unwind_expanded_macro_loc): Likewise.
10576         (virt_loc_aware_diagnostic_finalizer): Likewise.
10577         (default_tree_printer): Replace locus pointer with accessor function.
10578         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10579         (diagnostic_set_info_translated): Initialize second location.
10580         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10581         (diagnostic_show_locus): Handle two locations. Call
10582         diagnostic_print_caret_line.
10583         (diagnostic_print_caret_line): New.
10584         (default_diagnostic_starter): Use diagnostic_location function.
10585         (diagnostic_report_diagnostic): Use diagnostic_location function.
10586         (verbatim): Do not set text.locus.
10587         * diagnostic.h (struct diagnostic_info): Remove location field.
10588         (struct diagnostic_context): Make caret_chars an array of two.
10589         (diagnostic_location): New inline.
10590         (diagnostic_expand_location): Handle two locations.
10591         (diagnostic_same_line): New inline.
10592         (diagnostic_print_caret_line): Declare.
10593         (CARET_LINE_MARGIN): New constant.
10594         * pretty-print.c (pp_printf): Do not set text.locus.
10595         (pp_verbatim): Do not set text.locus.
10596         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10597         (struct text_info): Replace locus pointer with locations
10598         array. Add accessor functions.
10599
10600 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10601             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10602
10603         PR target/65768
10604         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10605         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10606          large constants in register instead of splitting them.
10607
10608 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10609
10610         PR target/66140
10611         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10612         replacements in memory addresses.
10613         (get_unaligned_address): Ditto.
10614
10615 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10616
10617         * config/ft32/*: New files for FT32 port.
10618         * doc/install.texi: Add FT32 information.
10619         * doc/invoke.texi: Add FT32 information.
10620         * doc/md.texi: Add FT32 information.
10621         * doc/contrib.texi: Self added.
10622
10623 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10624
10625         PR tree-optimization/64454
10626         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10627         (-1 - A -> ~A): Remove unnecessary condition.
10628
10629 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10630
10631         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10632         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10633         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10634
10635 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10636
10637         * ipa-chkp.h (chkp_wrap_function): New.
10638         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10639         (chkp_wrap_function_name): New.
10640         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10641         to get wrapper name.
10642         * lto-cgraph.c: Include ipa-chkp.h.
10643         (input_cgraph_1): Avoid alias chain for wrappers.
10644
10645 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10646
10647         PR middle-end/66134
10648         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10649         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10650
10651 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10652
10653         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10654         (AARCH64_FL_SLOWMUL): Delete.
10655         (AARCH64_FL_CRC): Redefine to 1<<3.
10656         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10657
10658 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10659
10660         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10661         casting.
10662
10663 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10664
10665         * config/alpha/alpha.md (extendqidi2): Use general_operand
10666         instead of some_operand for operand[1] predicate.
10667         (extendhidi2): Ditto.
10668         (cbranchdi4): Use general_operand instead of some_operand
10669         for operand[1] and operands[2] predicates.
10670         (cstoredi4): Ditto.
10671         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10672         (some_ni_operand): Ditto.
10673
10674 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10675
10676         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10677         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10678         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10679         low part of the constant using alpha_emit_set_const_1.
10680         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10681
10682 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10683
10684         * varasm.c (output_constant_pool_1): Pass down alignment from
10685         constant pool entry's descriptor to output_constant_pool_2.
10686         (output_object_block): Add comment prior to call to
10687         output_constant_pool_1.
10688
10689 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10690
10691         PR rtl-optimization/65862
10692         * target.def (ira_change_pseudo_allocno_class): New hook.
10693         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10694         value of the hook.
10695         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10696         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10697         hook.
10698         * ira-costs.c (find_costs_and_classes): Call the hook and change
10699         classes when it is necessary.
10700         * doc/tm.texi: Update.
10701
10702 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10703
10704         * config/i386/i386.md (sibcall_memory): Check that register with
10705         callee address is not also used as one of the arguments, instead
10706         of checking that it is not live after the sibcall.
10707         (sibcall_pop_memory): Ditto.
10708         (sibcall_value_memory): Ditto.
10709         (sibcall_value_pop_memory): Ditto.
10710
10711 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10712
10713         * generic-match-head.c (types_match): Handle non-types.
10714         * gimple-match-head.c (types_match): Likewise.
10715         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10716
10717 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10718
10719         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10720         (csneg3<mode>_insn): Enable expansion of pattern.
10721
10722 2015-05-14  Nick Clifton  <nickc@redhat.com>
10723
10724         * config/rl78/rl78.c (rl78_select_section): Select the correct
10725         default section based upon the category of the decl.
10726
10727 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10728
10729         PR rtl-optimization/30967
10730         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10731         destination mode for the cost of scc patterns.
10732
10733 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10734
10735         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10736         using SWIM248 mode iterator.
10737         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10738         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10739         for operand[2] constraint.
10740         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10741
10742 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10743
10744         PR middle-end/66133
10745         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10746         make sure it is never noreturn, even when the task body does not
10747         return.
10748         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10749         right before GIMPLE_OMP_RETURN.
10750         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10751         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10752         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10753
10754 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10755
10756         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
10757         * tree-ssa-math-opts.c: Include params.h
10758         (pow_synth_sqrt_info): New struct.
10759         (representable_as_half_series_p): New function.
10760         (get_fn_chain): Likewise.
10761         (print_nested_fn): Likewise.
10762         (dump_fractional_sqrt_sequence): Likewise.
10763         (dump_integer_part): Likewise.
10764         (expand_pow_as_sqrts): Likewise.
10765         (gimple_expand_builtin_pow): Use above to attempt to expand
10766         pow as series of square roots.  Removed now unused variables.
10767
10768 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10769
10770         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
10771         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
10772         Remove *p0 and *p1 arguments.  Rewrite function.
10773         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
10774         (alpha_split_const_mov): Update calls to alpha_extract_integer and
10775         alpha_emit_set_long_const.
10776         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
10777         (alpha_output_mi_thunk_osf): Ditto.
10778         * config/alpha/alpha.md (movti): Do not check operands[1]
10779         for CONST_DOUBLE.
10780
10781 2015-05-13  Richard Biener  <rguenther@suse.de>
10782
10783         PR tree-optimization/66129
10784         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
10785         commutative.
10786         (vect_schedule_slp_instance): Fix typo.
10787
10788 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
10789
10790         * common.opt (fdump-internal-locations): New option.
10791         * input.c: Include diagnostic-core.h.
10792         (get_end_location): New function.
10793         (write_digit): New function.
10794         (write_digit_row): New function.
10795         (dump_location_range): New function.
10796         (dump_labelled_location_range): New function.
10797         (dump_location_info): New function.
10798         * input.h (dump_location_info): New prototype.
10799         * toplev.c (compile_file): Handle flag_dump_locations.
10800
10801 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10802
10803         * gimple-expr.h (is_gimple_constant): Reorder.
10804         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
10805
10806 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10807
10808         * combine.c (simplify_set): When generating a CC set, if the
10809         source already is in the correct mode, do not wrap it in a
10810         compare.  Simplify the rest of that code.
10811
10812 2015-05-13  Richard Biener  <rguenther@suse.de>
10813
10814         PR tree-optimization/66123
10815         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
10816         a taken edge.
10817
10818 2015-05-13  Richard Biener  <rguenther@suse.de>
10819
10820         PR middle-end/66110
10821         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
10822         specially.
10823         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
10824
10825 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
10826
10827         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
10828         * aclocal.m4: Regenerated with automake-1.11.6.
10829
10830 2015-05-13  Tom de Vries  <tom@codesourcery.com>
10831
10832         PR tree-optimization/66010
10833         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
10834         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
10835         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
10836         and rval based on do_deref.
10837
10838 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10839
10840         PR target/65103
10841         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
10842         link time constants into adress expressions and therefore set
10843         their cost to 0.
10844
10845 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10846
10847         PR target/66112
10848         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
10849         Use SWI248 iterator instead of SWI.
10850         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
10851         Use eq_attr "alternative" "0" instead of match_test in
10852         length_immediate attribute computation.
10853         (*mulvhi4, *mulvhi4_1): New define_insns.
10854
10855         PR target/66112
10856         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
10857         SIGNED to get precision of non-negative value.
10858
10859 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10860
10861         PR target/66048
10862         * function.c (diddle_return_value_1): Process bounds first.
10863         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
10864         register.
10865
10866 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10867
10868         PR rtl-optimization/64616
10869         * loop-invariant.c (can_move_invariant_reg): New.
10870         (move_invariant_reg): Call above new function to decide whether
10871         instruction can just be moved, skipping creation of temporary
10872         register.
10873
10874 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10875
10876         PR target/pr66047.c
10877         * i386.c (ix86_function_sseregparm): Only return -1 if local function
10878         with implied regparm is called from -mno-sse function.
10879         (init_cumulative_args): Output error if ix86_function_sseregparm
10880         return -1 and SSE register would be needed.
10881         (function_arg_advance_32): Likewise.
10882         (function_arg_32): Likewise.
10883         * i386.h (ix86_args): Add decl field.
10884
10885 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10886
10887         PR ipa/65873
10888         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
10889         inlines across optimization boundary.
10890
10891 2015-05-12  Jason Merrill  <jason@redhat.com>
10892
10893         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
10894         string literal and macro name.
10895
10896 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
10897
10898         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
10899         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
10900         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
10901
10902 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10903
10904         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
10905         (-Wmisleading-indentation): New option.
10906         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
10907
10908 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
10909
10910         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
10911         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
10912         (alpha_extract_integer): Ditto.
10913         (alpha_legitimate_constant_p): Ditto.
10914         (alpha_split_tmode_pair): Ditto.
10915         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
10916         (alpha_expand_mov): Ditto.
10917         (print_operand): Remove handling of 'H' modifier.
10918         <case 'm'>: Remove CONST_DOUBLE handling.
10919         (summarize_insn): Handle CONST_WIDE_INT.
10920         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
10921         (anddi3): Ditto.
10922         (movti): Handle CONST_WIDE_INT.
10923         * config/alpha/constraints.md ('H'): Remove constraint definition.
10924         ('G'): Do not match MODE_FLOAT class.
10925         * config/alpha/predicates.md (const0_operand): Also match
10926         const_wide_int.
10927         (non_add_const_operand): Ditto.
10928         (non_zero_const_operand): Ditto.
10929         (some_operand): Ditto.
10930         (input_operand): Ditto.  Handle CONST_WIDE_INT.
10931         (and_operand): Do not match const_double.
10932         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
10933
10934 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
10935
10936         PR target/65697
10937         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
10938         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
10939         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10940         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
10941         is_mm_seq_cst, is_mm_sync): New accessor functions.
10942         * builtins.c (expand_builtin_sync_operation,
10943         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
10944         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
10945         (get_memmodel,  expand_builtin_atomic_compare_exchange,
10946         expand_builtin_atomic_load, expand_builtin_atomic_store,
10947         expand_builtin_atomic_clear): Use new accessor routines.
10948         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
10949         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
10950         (maybe_emit_sync_lock_test_and_set): Use new accessors and
10951         MEMMODEL_SYNC_ACQUIRE.
10952         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
10953         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
10954         expand_atomic_store): Use new accessors.
10955         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
10956         * tsan.c (instrument_builtin_call): Update check for memory model beyond
10957         final enum to use MEMMODEL_LAST.
10958         * c-family/c-common.c: Use new accessor for memmodel_base.
10959         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
10960         accessors.
10961         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
10962         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
10963         mem_thread_fence, *dmb): Likewise.
10964         * config/alpha/alpha.c (alpha_split_compare_and_swap,
10965         alpha_split_compare_and_swap_12): Likewise.
10966         * config/arm/arm.c (arm_expand_compare_and_swap,
10967         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
10968         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
10969         atomic_loaddi): Likewise.
10970         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
10971         Likewise.
10972         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
10973         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
10974         use new accessors.
10975         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
10976         atomic_store<mode>, atomic_compare_and_swap<mode>,
10977         atomic_exchange<mode>): Use new accessors.
10978         * config/mips/mips.c (mips_process_sync_loop): Likewise.
10979         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
10980         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
10981         rs6000_post_atomic_barrier): Add new cases.
10982         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
10983         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
10984         (atomic_load<mode>): Add new cases and use new accessors.
10985         (store_quadpti): Add new cases.
10986         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
10987         accessors.
10988         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
10989         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
10990         model, not 8.
10991
10992 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10993
10994         * ipa-devirt.c (type_with_linkage_p): New function.
10995         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
10996         type has linkage.
10997         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
10998         (can_be_name_hashed_p): Simplify.
10999         (hash_odr_name): Check that type has linkage before checking if it is
11000         anonymous.
11001         (types_same_for_odr): Likewise.
11002         (odr_name_hasher::equal): Likewise.
11003         (odr_subtypes_equivalent_p): Likewise.
11004         (warn_types_mismatch): Likewise.
11005         (get_odr_type): Likewise.
11006         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
11007         * ipa-utils.h (odr_type_p): Move offline.
11008         * tree.c (need_assembler_name_p): Fix handling of types
11009         without linkages.
11010         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
11011
11012 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
11013
11014         * timevar.c (timevar_enable): Delete in favor of...
11015         (g_timer): New global.
11016         (struct timevar_def): Move to timevar.h inside class timer.
11017         (struct timevar_stack_def): Likewise.
11018         (timevars): Delete global in favor of field "m_timevars" within
11019         class timer in timevar.h
11020         (stack): Likewise, in favor of field "m_stack".
11021         (unused_stack_instances): Likewise, in favor of field
11022         "m_unused_stack_instances".
11023         (start_time): Likewise, in favor of field "m_start_time".
11024         (get_time): Eliminate check for timevar_enable.
11025         (timer::timer): New function, built from part of timevar_init.
11026         (timevar_init): Rewrite idempotency test from using
11027         "timevar_enable" bool to using dynamic allocation of "g_timer".
11028         Move rest of implementation into timer's constructor.
11029         (timevar_push_1): Rename to...
11030         (timer::push): ...this, adding "m_" prefixes to variables that
11031         are now fields of timer.
11032         (timevar_pop_1): Likewise, rename to...
11033         (timer::pop): ...this, and add "m_" prefixes.
11034         (timevar_start): Replace test for "timevar_enable" with one for
11035         "g_timer", and move bulk of implementation to...
11036         (timer::start): ...here, adding "m_" prefixes.
11037         (timevar_stop): Likewise, from here...
11038         (timer::stop): ...to here.
11039         (timevar_cond_start): Likewise, from here...
11040         (timer::cond_start): ...to here.
11041         (timevar_cond_stop): Likewise, from here...
11042         (timer::cond_stop): ...to here.
11043         (validate_phases): Rename to...
11044         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
11045         locals "total" and "tv" const.
11046         (timevar_print): Rename to...
11047         (timer::print): ...this, and add "m_" prefixes.  Make locals
11048         "total" and "tv" const.  Eliminate test for timevar_enable.
11049         * timevar.h (timevar_enable): Eliminate.
11050         (g_timer): New declaration.
11051         (timevar_push_1): Eliminate.
11052         (timevar_pop_1): Eliminate.
11053         (timevar_print): Eliminate.
11054         (class timer): New class.
11055         (timevar_push): Rewrite to use g_timer.
11056         (timevar_pop): Likewise.
11057         * toplev.c (toplev::~toplev): Likewise.
11058
11059 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
11060
11061         * arm-protos.h (arm_sched_autopref): Delete.
11062         (tune_params): Re-organize, use enums for flag values.
11063         (FUSE_OPS): New macro.
11064         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
11065         (ARM_PREFETCH_BENEFICIAL): Likewise.
11066         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
11067         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11068         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
11069         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
11070         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
11071         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
11072         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
11073         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
11074         format.
11075         (arm_option_override, thumb2_reorg, arm_print_tune_info)
11076         (aarch_macro_fusion_pair_p): Update uses of current_tune.
11077         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
11078
11079 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
11080
11081         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
11082         "break".
11083
11084 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
11085             Sandra Loosemore <sandra@codesourcery.com>
11086
11087         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
11088         value.
11089         (REG_CLASS_NAMES): Add "IJMP_REGS".
11090         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
11091         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
11092         use new "c" register constraint.
11093         * config/nios2/constraint.md (c): New register constraint
11094         corresponding to IJMP_REGS.
11095
11096 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11097
11098         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
11099         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
11100         define_splits): Delete, revamp, transmogrify into ...
11101         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11102         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11103         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11104         New.
11105
11106 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11107
11108         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11109         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11110
11111 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11112
11113         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11114         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11115         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11116         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11117         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11118         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11119         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11120         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11121         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11122         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11123         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11124         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11125         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11126         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11127         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11128         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11129         and 30 corresponding splitters): Delete.
11130
11131 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11132
11133         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11134         zero_extract.
11135
11136 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11137
11138         * combine.c (recog_for_combine_1): New function, factored out
11139         from recog_for_combine.
11140         (change_zero_ext): New function.
11141         (recog_for_combine): If recog fails, try again with the pattern
11142         modified by change_zero_ext; if that still fails, restore the
11143         pattern.
11144
11145 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11146
11147         * combine.c (get_undo_marker): New function.
11148         (undo_to_marker): New function, largely factored out from ...
11149         (undo_all): ... this.  Adjust.
11150
11151 2015-05-12  Richard Biener  <rguenther@suse.de>
11152
11153         PR tree-optimization/66101
11154         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11155         fixup if we turn a loop exit edge to a fallthru edge.
11156
11157 2015-05-12  Richard Biener  <rguenther@suse.de>
11158
11159         PR tree-optimization/37021
11160         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11161         (SLP_TREE_TWO_OPERATORS): New define.
11162         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11163         SLP_TREE_TWO_OPERATORS.
11164         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11165         SLP node.
11166         (vect_build_slp_tree): Adjust.
11167         (vect_analyze_slp_cost_1): Likewise.
11168         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11169         emitting two vector stmts and mixing the results.
11170
11171 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11172
11173         * call.c (print_z_candidates): Remove dead code.
11174
11175 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11176
11177         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11178         and zEC12_simple_fp.
11179         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11180         to 1.
11181
11182 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11183
11184         PR tree-optimization/66010
11185         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11186         ifn_va_arg.
11187         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11188         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11189         va_lists are passed, and remove corresponding handling.
11190         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11191         do_deref argument to ifn_va_arg.
11192         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11193         ifn_va_arg.
11194
11195 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11196
11197         PR target/65955
11198         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11199         REG before taking its REGNO.
11200
11201 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11202
11203         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11204         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11205         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11206         present to get more accurate information about the number of sign bit
11207         copies and non zero bits.
11208
11209 2015-05-12  Richard Biener  <rguenther@suse.de>
11210
11211         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11212         do not allow unrolling.
11213
11214 2015-05-11  Richard Henderson  <rth@redhat.com>
11215
11216         * config/i386/i386-modes.def (CCP): New.
11217         * config/i386/i386.c (put_condition_code): Handle it.
11218         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11219
11220 2015-05-11  Richard Henderson  <rth@redhat.com>
11221
11222         * target.def (md_asm_clobbers): Replace with...
11223         (md_asm_adjust): this.
11224         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11225         (TARGET_MD_ASM_ADJUST): New.
11226         * tm.texi: Rebuild.
11227         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11228         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11229         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11230
11231         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11232         constraints instead of lists of outputs and inputs.
11233         (expand_asm_stmt): Save and restore input_location around the
11234         body of the function.  Move asm data into vectors instead of
11235         building tree lists.  Generate cleanup sequences as needed,
11236         rather than waiting til the end.  Use new md_asm_adjust hook.
11237
11238         * config/vxworks.c: Include vec.h before target.h.
11239         * gimple.c: Likewise.
11240         * incpath.c: Likewise.
11241         * mode-switching.c: Likewise.
11242
11243         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11244         (cris_md_asm_adjust): this.
11245         (TARGET_MD_ASM_CLOBBERS): Remove.
11246         (TARGET_MD_ASM_ADJUST): New.
11247         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11248         (ix86_md_asm_adjust): this.
11249         (TARGET_MD_ASM_CLOBBERS): Remove.
11250         (TARGET_MD_ASM_ADJUST): New.
11251         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11252         (mn10300_md_asm_adjust): this.
11253         (TARGET_MD_ASM_CLOBBERS): Remove.
11254         (TARGET_MD_ASM_ADJUST): New.
11255         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11256         (rs6000_md_asm_adjust): this.
11257         (TARGET_MD_ASM_CLOBBERS): Remove.
11258         (TARGET_MD_ASM_ADJUST): New.
11259         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11260         (visium_md_asm_adjust): this.
11261         (TARGET_MD_ASM_CLOBBERS): Remove.
11262         (TARGET_MD_ASM_ADJUST): New.
11263
11264 2015-05-11  Richard Henderson  <rth@redhat.com>
11265
11266         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11267         if noutputs is zero.
11268         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11269
11270         * cfgexpand.c (expand_asm_operands): Merge into...
11271         (expand_asm_stmt): ... here.
11272
11273         * cfgexpand.c (expand_asm_operands): Don't call
11274         resolve_asm_operand_names.
11275         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11276
11277 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11278
11279         * dwarf2out.c (gen_member_die): Sanity check that we access
11280         TYPE_MAIN_VARIANT for TYPE_METHODS.
11281         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11282         checking TYPE_METHODS.
11283         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11284         if non-null.
11285         (build_distinct_type_copy): Clear TYPE_METHODS.
11286         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11287         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11288         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11289
11290 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11291
11292         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11293         (emit_pattern_before_setloc): Likewise.
11294
11295 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11296
11297         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11298         for define_peephole2s.
11299         (get_peephole2_pattern): New function.
11300         (main): Use it.  Call validate_pattern.
11301
11302 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11303
11304         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11305         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11306         (Last callee saved reg is different for AVR_TINY architecture)
11307
11308 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11309
11310         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11311         when looking for memory references.
11312
11313 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11314
11315         PR target/65753
11316         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11317         via function pointers.
11318
11319 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11320
11321         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11322         indirect call by forcing address into a pseudo with -fno-plt.
11323         * common.opt (flag_plt): New option.
11324         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11325         ([-fno-plt]): Document.
11326
11327 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11328
11329         PR bootstrap/66105
11330         * config/rs6000/option-defaults.h: Add space between string literal
11331         and macro name.
11332
11333 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11334
11335         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11336         accross ARM targets.
11337
11338 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11339
11340         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11341         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11342
11343 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11344
11345         PR rtl-optimization/66076
11346         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11347         Don't grow the heap array if it is already big enough from a
11348         previous iteration.
11349
11350 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11351
11352         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11353         (is_called_in_ARM_mode): Remove.
11354         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11355         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11356         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11357          arm_declare_function_name.
11358
11359 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11360
11361         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11362         (arm_option_params_internal); New function.
11363         (arm_option_check_internal): New function.
11364         (arm_option_override_internal): New function.
11365         (thumb_code, thumb1_code): Remove.
11366         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11367         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11368         (thumb_code, thumb1_code): Remove.
11369         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11370
11371 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11372
11373         * config/alpha/alpha.c (alpha_emit_set_const_1)
11374         (alpha_emit_set_long_const, alpha_extract_integer)
11375         (alpha_legitimate_constant_p, alpha_split_const_mov)
11376         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11377         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11378         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11379         HOST_WIDE_INT_1U.
11380         * config/alpha/predicates.md (mode_mask_operand): Do not match
11381         const_double RTX.
11382         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11383         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11384         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11385         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11386         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11387
11388 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11389
11390         PR target/65780
11391         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11392         default_binds_local_p_2.
11393         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11394         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11395
11396 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11397
11398         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11399
11400 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11401
11402         Patch by Richard Biener
11403         * coverage.c (coverage_obj_init): Delay building of type variant
11404         until the type is finished.
11405
11406 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11407
11408         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11409         mismatch between C and C++ type; compoare correctly ARG_TYPES
11410         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11411         (odr_types_equivalent_p): Fix wording of warning about attributes;
11412         it is OK to match prototype and non-prototype.
11413
11414 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11415
11416         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11417         TYPE_ARG_TYPES list.
11418         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11419         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11420
11421 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11422
11423         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11424         * tree.h (is_lang_specific): Constify.
11425
11426 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11427
11428         PR tree-optimization/64454
11429         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11430         Rewrite.
11431
11432 2015-05-08  Jason Merrill  <jason@redhat.com>
11433
11434         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11435         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11436         config/darwin.h, config/darwin9.h, config/elfos.h,
11437         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11438         config/microblaze/microblaze.h, config/mips/mips.h,
11439         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11440         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11441         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11442         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11443         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11444         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11445         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11446         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11447         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11448         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11449         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11450         between string literal and macro name.
11451
11452 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11453
11454         * jump.c: Change argument types to rtx_insn *.
11455         * rtl.h: Adjust.
11456
11457 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11458
11459         * lra-constraints.c: Change argument type to rtx_insn *.
11460
11461 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11462
11463         * df-problems.c: Change argument type to rtx_insn *.
11464
11465 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11466
11467         * combine.c: Change argument type to rtx_insn *.
11468
11469 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11470
11471         * rtl.h: Adjust.
11472         * rtlanal.c: Change argument type to rtx_insn *.
11473
11474 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11475
11476         * sched-deps.c: Change argument types to rtx_insn *.
11477         * sched-int.h: Adjust.
11478
11479 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11480
11481         * dwarf2cfi.c: Change argument type to rtx_insn *.
11482
11483 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11484
11485         * ira.c (decrease_live_ranges_number): Changetype of local
11486         variable to rtx_insn *.
11487         * recog.c: Change argument types to rtx_insn *.
11488         * recog.h: Adjust.
11489
11490 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11491
11492         * reorg.c: Change argument types to rtx_insn *.
11493
11494 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11495
11496         * ira-color.c: Change argument types to rtx_insn *.
11497         * lra-eliminations.c: Likewise.
11498         * ira.h: Adjust.
11499
11500 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11501
11502         * gcse.c: Change argument types to rtx_insn *.
11503
11504 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11505
11506         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11507
11508 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11509
11510         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11511         rtx_insn *.
11512         * rtl.h: Adjust.
11513
11514 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11515
11516         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11517         * rtl.h: Adjust.
11518
11519 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11520
11521         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11522         * rtl.h: Adjust.
11523
11524 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11525
11526         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11527         * rtl.h: Adjust.
11528
11529 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11530
11531         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11532         * rtl.h: Adjust.
11533
11534 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11535
11536         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11537         to rtx_insn *.
11538         * rtl.h: Adjust.
11539
11540 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11541
11542         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11543         to rtx_insn *.
11544         * rtl.h: Likewise.
11545
11546 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11547
11548         * except.c (can_nonlocal_goto): Change type of argument to
11549         rtx_insn *.
11550         * rtl.h: Adjust.
11551
11552 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11553
11554         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11555         * rtl.h: Adjust.
11556
11557 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11558
11559         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11560         * cfgrtl.c (can_delete_label_p): Adjust.
11561         * rtl.h: likewise.
11562
11563 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11564
11565         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11566
11567 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11568
11569         * except.c (make_reg_eh_region_note): Change argument to
11570         rtx_insn *.
11571         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11572         * except.h: Adjust.
11573
11574 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11575
11576         * mode-switching.c (commit_mode_sets): Change type of local
11577         variable from rtx to rtx_insn *.
11578
11579 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11580
11581         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11582         Add ^ to grep command.
11583         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11584         arg to last gimple_simplify declaration.  Add missing gimple_build
11585         declaration for built-in function case with four tree args.
11586
11587 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11588             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11589
11590         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11591         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11592         (GNU_USER_DYNAMIC_LINKERN32): Update.
11593
11594 2015-05-08  Richard Biener  <rguenther@suse.de>
11595
11596         PR tree-optimization/66036
11597         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11598         Handle strided group loads.
11599         (vect_verify_datarefs_alignment): Likewise.
11600         (vect_enhance_data_refs_alignment): Likewise.
11601         (vect_analyze_group_access): Likewise.
11602         (vect_analyze_data_ref_access): Likewise.
11603         (vect_analyze_data_ref_accesses): Likewise.
11604         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11605         (vectorizable_load): Likewise.
11606
11607 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11608
11609         * config/rs6000/rs6000.md: Require operand inequality in one
11610         of the peepholes.
11611
11612 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11613             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11614
11615         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11616         from (set ...).
11617         * config/rx/rx.md (movdi, movdf): Likewise.
11618         Likewise for define_peephole2s.
11619
11620 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11621
11622         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11623         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11624         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11625         vtst_u64): Rewrite using gcc vector extensions.
11626
11627 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11628
11629         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11630         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11631
11632 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11633
11634         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11635
11636 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11637
11638         * config/glibc-stdint.h (OPTION_MUSL): Define.
11639         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11640         Change the definition based on OPTION_MUSL for 64 bit targets.
11641         * config/linux.h (OPTION_MUSL): Redefine.
11642         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11643         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11644         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11645
11646 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11647             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11648
11649         * config.gcc (LIBC_MUSL): New tm_defines macro.
11650         * config/linux.h (OPTION_MUSL): Define.
11651         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11652         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11653         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11654         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11655         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11656         * config/linux.opt (mmusl): New option.
11657         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11658         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11659         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11660         * configure: Regenerate.
11661
11662 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11663             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11664
11665         PR target/48904
11666         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11667         * config/i386/knetbsd-gnu64.h: New file.
11668
11669 2015-05-08  Marek Polacek  <polacek@redhat.com>
11670
11671         PR c/64918
11672         * doc/invoke.texi: Document -Woverride-init-side-effects.
11673
11674 2015-05-07  Marek Polacek  <polacek@redhat.com>
11675
11676         PR c/65179
11677         * doc/invoke.texi: Document -Wshift-negative-value.
11678
11679 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11680
11681         * gcov-tool.c (do_merge): Refactore to remove int ret.
11682         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11683         !type == FUNC to type != FUNC.
11684         * reload.h (struct target_reload): Changee to type of
11685         x_spill_indirect_levels from bool to unsigned char.
11686
11687 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11688
11689         * rtl.h (always_void_p): New function.
11690         * gengenrtl.c (always_void_p): Likewise.
11691         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11692         with code foo are always VOIDmode.
11693         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11694         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11695         compare-elim.c, config/aarch64/aarch64.c,
11696         config/aarch64/aarch64.md, config/alpha/alpha.c,
11697         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11698         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11699         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11700         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11701         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11702         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11703         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11704         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11705         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11706         config/ia64/vect.md, config/iq2000/iq2000.c,
11707         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11708         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11709         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11710         config/mep/mep.c, config/microblaze/microblaze.c,
11711         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11712         config/mn10300/mn10300.c, config/msp430/msp430.c,
11713         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11714         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11715         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11716         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11717         config/rs6000/rs6000.md, config/rs6000/vector.md,
11718         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11719         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11720         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11721         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11722         config/spu/spu.md, config/stormy16/stormy16.c,
11723         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11724         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11725         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11726         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11727         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11728         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11729         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11730         var-tracking.c: Update calls accordingly.
11731
11732 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11733
11734         PR middle-end/192
11735         PR middle-end/54303
11736         * varasm.c (function_mergeable_rodata_prefix): New function.
11737         (mergeable_string_section): Use it.
11738         (mergeable_constant_section): Use it.
11739
11740 2015-05-07  Jeff Law  <law@redhat.com>
11741
11742         PR target/39726
11743         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11744         simplifier to narrow arithmetic.
11745         * generic-match-head.c: (types_match, single_use): New functions.
11746         * gimple-match-head.c: (types_match, single_use): New functions.
11747
11748 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11749
11750         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11751         rtx type.
11752
11753 2015-05-07  Richard Biener  <rguenther@suse.de>
11754
11755         PR tree-optimization/66002
11756         * passes.def: Schedule another pass_merge_phi after ifcombine, right
11757         before phiopt.
11758
11759 2015-05-07  Marek Polacek  <polacek@redhat.com>
11760             Martin Uecker  <uecker@eecs.berkeley.edu>
11761
11762         * doc/invoke.texi: Document -fsanitize=bounds-strict.
11763         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
11764         into SANITIZE_NONDEFAULT.
11765         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
11766
11767 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
11768
11769         PR target/66015
11770         * config/alpha/alpha.c (alpha_override_options_after_change): New.
11771         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
11772         (alpha_override_options): Move align_loops, align_jumps and
11773         align_functions handling into alpha_override_options_after_change.
11774
11775 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
11776             Chris Jones  <chrisj@nvidia.com>
11777             Joshua Conner  <jconner@nvidia.com>
11778
11779         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
11780         linking of crtfastmath.o.
11781         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
11782
11783 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
11784
11785         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
11786         (cstore<mode>4_unsigned_imm): New expander.
11787         (cstore<mode>4): Remove empty constraint strings.  Use the new
11788         expanders.
11789
11790 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
11791
11792         PR target/64208
11793         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
11794         alternatives.
11795
11796 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11797
11798         * config/aarch64/geniterators.sh: Use standard BRE in sed.
11799
11800 2015-05-06  Alan Modra  <amodra@gmail.com>
11801
11802         PR target/66033
11803         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
11804         (UNSPEC_NOP): Define.
11805         (reload_vsx_from_gpr<mode>): Add missing DONE.
11806         (reload_gpr_from_vsx<mode>): Likewise.
11807         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11808         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
11809
11810 2015-05-06  Christian Bruel  <christian.bruel@st.com>
11811
11812         PR target/66015
11813         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
11814         align_jumps, align_functions into aarch64_override_options_after_change.
11815
11816 2015-05-06  Richard Biener  <rguenther@suse.de>
11817
11818         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
11819         vect_transform_slp_perm_load to check if we support a permutation
11820         for basic-block vectorization.
11821
11822 2015-05-06  Nick Clifton  <nickc@redhat.com>
11823
11824         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
11825         used, even if it is not being used as a frame pointer.
11826
11827 2015-05-05  Jason Merrill  <jason@redhat.com>
11828
11829         * dwarf2out.c (gen_member_die): Don't emit anything for an
11830         anonymous class constructor.
11831
11832 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
11833
11834         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
11835         that it reflects the block structure.
11836         (afdo_propagate_edge): Likewise.
11837         (afdo_calculate_branch_prob): Likewise.
11838         (afdo_annotate_cfg): Likewise.
11839         * cfgcleanup.c (equal_different_set_p): Likewise.
11840         (try_crossjump_to_edge): Likewise.
11841         * cgraph.c (cgraph_node::verify_node): Likewise.
11842         * cgraphunit.c (expand_all_functions): Likewise.
11843         * config/i386/i386.c (ix86_expand_copysign): Likewise.
11844         (exact_dependency_1): Likewise.
11845         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
11846         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
11847         * gensupport.c (process_define_subst): Likewise.
11848         * lto-wrapper.c (merge_and_complain): Likewise.
11849         * tree-if-conv.c (if_convertible_bb_p): Likewise.
11850         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
11851         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
11852         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11853         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11854         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11855         * tree-vect-stmts.c (vectorizable_shift): Likewise.
11856         * tree-vrp.c (vrp_finalize): Likewise.
11857         * tree.c (variably_modified_type_p): Likewise.
11858
11859 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
11860
11861         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
11862         on darwin12 and later.
11863         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
11864         file to pass -rdynamic on darwin12 and later.
11865         * config/darwin.opt (rdynamic): Add.
11866
11867 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11868
11869         * doc/extend.texi (C Extensions): Update menu for moved Variable
11870         Attributes and Type Attributes sections.
11871
11872 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11873
11874         PR target/65990
11875         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
11876         if rep_8byte stringop strategy was specified for 32-bit target.
11877
11878 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
11879
11880         PR target/65915
11881         * config/i386/i386.md (vector convert to float spltiter): Check for
11882         xmm16+, when splitting scalar float conversion.
11883         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
11884
11885 2015-05-05  Nick Clifton  <nickc@redhat.com>
11886
11887         * config/msp430/msp430-opts.h (enum msp430_regions): New.
11888         * config/msp430/msp430.c (msp430_override_options): Complain if
11889         -mcode-region or -mdata-region is used on a non MSP430X.
11890         (msp430_section_attr): New function.  Checks lower, upper and
11891         either attributes.
11892         (msp430_attribute_table): Add lower, upper and either.
11893         (gen_prefix): New function.  Generates a prefix for a section
11894         name.
11895         (msp430_select_section): New function - handles the choice of
11896         section for an object.  Takes into account memory region
11897         attributes and options.
11898         (msp430_function_section): Use gen_prefix.
11899         (TARGET_SECTION_TYPE_FLAGS): Define.
11900         (msp430_section_type_flags): New function.
11901         (TARGET_ASM_UNIQUE_SECTION): Define.
11902         (msp430_unique_section): New function.
11903         (msp430_output_aligned_decl_common): New function.
11904         (msp430_do_not_relax_short_jumps): New function.
11905         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
11906         Define.
11907         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11908         * config/msp430/msp430-protos.h
11909         (msp430_do_not_relax_short_jumps): New prototype.
11910         (msp430_output_aligned_decl_common): New prototype.
11911         * config/msp430/msp430.md (length): New attribute.
11912         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
11913         then use a long code sequence for short jumps.
11914         * config/msp430/msp430.opt (mcode-region): New.
11915         (mdata-region): New.
11916         * doc/invoke.texi: Document new options.
11917         * doc/extend.texi: Document new attributes.
11918
11919 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11920
11921         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
11922         (tune_params): Add field branch_costs.
11923         (aarch64_branch_cost): Declare.
11924         * gcc/config/aarch64.c (generic_branch_cost): New.
11925         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
11926         (cortexa53_tunings): Likewise.
11927         (cortexa57_tunings): Likewise.
11928         (thunderx_tunings): Likewise.
11929         (xgene1_tunings): Likewise.
11930         (aarch64_branch_cost): Define.
11931         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
11932
11933 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11934
11935         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
11936         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
11937         * config/i386/i386.md: Ditto.
11938         * config/i386/winnt.c: Ditto.
11939
11940 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11941
11942         * doc/extend.texi (__atomic Builtins): Move implementation details
11943         to the end of the description, rewrite opening paragraphs, state
11944         difference with __sync builtins, state C11/C++11 assumptions,
11945         weaken itemized descriptions, add explanation of memory model
11946         behaviour, expand description of compare-exchange, simplify text.
11947
11948 2015-05-05  Renlin Li  <renlin.li@arm.com>
11949
11950         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
11951
11952 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
11953
11954         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
11955         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11956         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
11957         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11958         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
11959         * configure: Regenerate.
11960         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
11961         * doc/install.texi (aarch64*-*-*): Document new
11962         --enable-fix-cortex-a53-843419 option.
11963         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
11964         and -mno-fix-cortex-a53-843419 options.
11965
11966 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11967
11968         PR target/65871
11969         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
11970
11971 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
11972
11973         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
11974         fix overactive TYPE_MIN_VALUE check and add FIXME for type
11975         compatibility problems.
11976
11977 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11978
11979         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
11980         constraints.
11981         (cbranchsi4_reg): New.
11982         * config/microblaze/microblaze.c
11983         (microblaze_expand_conditional_branch_reg): New.
11984         * config/microblaze/microblaze-protos.h
11985         (microblaze_expand_conditional_branch_reg): New prototype.
11986
11987 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11988
11989         * config/microblaze/microblaze.md (peephole2): New.
11990
11991 2015-05-04  Jeff Law  <law@redhat.com>
11992
11993         Revert:
11994         2015-05-04  Jeff Law  <law@redhat.com>
11995
11996         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11997         simplifier to narrow arithmetic.
11998         * generic-match-head.c: (types_match, single_use): New functions.
11999         * gimple-match-head.c: (types_match, single_use): New functions.
12000
12001 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12002
12003         PR target/65987
12004         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
12005         (split_branches): Likewise.
12006
12007 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
12008
12009         * common.opt (fdelete-null-pointer-checks): Init to -1.
12010         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
12011         override flag_delete_null_pointer_checks default.
12012         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
12013         behavior re address zero.  Better document target-specific behavior.
12014         (-fisolate-errneous-paths-dereference): Mention relationship to
12015         -fdelete-null-pointer-checks.
12016
12017 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12018
12019         PR tree-optimization/65984
12020         * ubsan.c: Include tree-cfg.h.
12021         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
12022         stmt_could_throw_p test, rename can_throw variable to ends_bb.
12023
12024 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12025
12026         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
12027         to CONST_DOUBLE_P predicate.
12028         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
12029         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
12030         allow only operands that satisfy standard_sse_constant_p predicate.
12031         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
12032         to CONST_DOUBLE_P predicate.
12033
12034 2015-05-04  Jeff Law  <law@redhat.com>
12035
12036         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12037         simplifier to narrow arithmetic.
12038         * generic-match-head.c: (types_match, single_use): New functions.
12039         * gimple-match-head.c: (types_match, single_use): New functions.
12040
12041 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
12042
12043         * config/arm/arm.c: Restore bootstrap.
12044
12045 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12046
12047         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
12048         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
12049         as CONST_WIDE_INT, not CONST_DOUBLE.
12050         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
12051         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
12052         (ix86_find_base_term): Do not check for CONST_DOUBLE.
12053         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
12054         (ix86_build_signbit_mask): Rewrite using wide ints.
12055         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
12056         (ix86_rtx_costs): Handle CONST_WIDE_INT.
12057         (find_constant): Ditto.
12058         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
12059         using gen_int_mode.
12060         * config/i386/predicates.md (x86_64_immediate_operand)
12061         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12062         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
12063         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12064         (const0_operand): Also match const_wide_int.
12065         (constm1_operand): Ditto.
12066         (const1_operand): Ditto.
12067
12068 2015-05-04  Richard Biener  <rguenther@suse.de>
12069
12070         PR tree-optimization/65965
12071         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
12072         store groups at gaps.
12073
12074 2015-05-04  Richard Biener  <rguenther@suse.de>
12075
12076         PR tree-optimization/65935
12077         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
12078         then make sure to apply that swapping to the IL.
12079
12080 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12081
12082         * Makefile.in (PATCHLEVEL_c): New variable.
12083         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
12084         expand the same way as if DEVPHASE_c was non-empty.
12085
12086 2015-05-04  Kai Tietz  <ktietz@redhat.com>
12087
12088         PR target/65559
12089         * lto-wrapper.c (run_gcc): Open filename
12090         in binary-mode.
12091
12092 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
12093
12094         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
12095         sections up in file, to immediately after the Function Attributes
12096         section.
12097
12098 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
12099
12100         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
12101
12102 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12103
12104         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
12105         (insert_partition_copy_on_edge): Adjust.
12106         (insert_rtx_to_part_on_edge): Likewise.
12107         (insert_part_to_rtx_on_edge): Likewise.
12108
12109 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12110
12111         * function.c (set_return_jump_label): Change type of argument to
12112         rtx_insn *.
12113         * function.h (set_return_jump_label): Adjust.
12114
12115 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12116
12117         * reload.h (struct reg_equivs_t): Change type of init to
12118         rtx_insn *.
12119         * ira.c (fix_reg_equiv_init): Adjust.
12120         * reload1.c (eliminate_regs_1): Likewise.
12121         (init_eliminable_invariants): Likewise.
12122
12123 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12124
12125         * cselib.c (fp_setter_insn): Take a rtx_insn *.
12126         * cselib.h (fp_setter_insn): Adjust.
12127
12128 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12129
12130         * recog.c (struct validate_replace_src_data): Change type of
12131         insn field to rtx_insn *.
12132         (validate_replace_src_group): Change type of argument to rtx_insn *.
12133         * recog.h (validate_replace_src_group): Adjust.
12134
12135 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12136
12137         * haifa-sched.c: Change the type of some variables to rtx_insn *.
12138         * sched-deps.c: Likewise.
12139         * sched-int.h: Likewise.
12140         * sched-rgn.c: Likewise.
12141         * sel-sched.c: Likewise.
12142
12143 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12144
12145         to rtx_insn *.
12146         * config/i386/i386.c: Change the type of some arguments to
12147         rtx_insn *.
12148         * config/arm/arm.c: Likewise.
12149
12150 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12151
12152         * lra-constraints.c: Change type of some arguments to rtx_insn *.
12153
12154 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12155
12156         * regcprop.c (kill_autoinc_value): Change type of argument to
12157         rtx_insn *.
12158
12159 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12160
12161         * genrecog.c (print_subroutine): Adjust.
12162         * recog.c (get_bool_attr_mask_uncached): Likewise.
12163         * recog.h (struct recog_data_d): Change the type of insn to
12164         rtx_insn *.
12165
12166 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12167
12168         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12169
12170 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12171
12172         * df-problems.c (df_set_note): Change type of argument to
12173         rtx_insn *.
12174
12175 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12176
12177         * builtins.c (expand_builtin_trap): Change type of local
12178         variable to rtx_insn *.
12179         (add_sched_insns_for_speculation): Likewise.
12180         (ix86_emit_save_regs): Likewise.
12181         (get_scratch_register_on_entry): Likewise.
12182         (ix86_emit_restore_reg_using_pop): Likewise.
12183         (ix86_emit_leave): Likewise.
12184         (ix86_emit_restore_regs_using_mov): Likewise.
12185         (ix86_expand_epilogue): Likewise.
12186         Likewise.
12187         (rl78_alloc_physical_registers_umul): Likewise.
12188         * cselib.c (discard_useless_locs): Likewise.
12189         (cselib_invalidate_regno): Likewise.
12190         (cselib_invalidate_mem): Likewise.
12191         * function.c (expand_function_start): Likewise.
12192         (emit_use_return_register_into_block): Likewise.
12193         * gcse.c: Likewise.
12194         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12195         * ifcvt.c (noce_get_alt_condition): Likewise.
12196         * loop-doloop.c (doloop_condition_get): Likewise.
12197         * lra-constraints.c (inherit_in_ebb): Likewise.
12198         * modulo-sched.c (sms_schedule_by_order): Likewise.
12199         * recog.c (next_insn_tests_no_inequality): Likewise.
12200         * reorg.c (emit_delay_sequence): Likewise.
12201         (update_reg_dead_notes): Likewise.
12202         (fix_reg_dead_note): Likewise.
12203         (fill_slots_from_thread): Likewise.
12204         (delete_computation): Likewise.
12205
12206 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12207
12208         * doc/extend.texi (Variable Attributes): Add menu and proper
12209         @nodes to subsections.  Move Microsoft Windows attributes to
12210         their own subsection.
12211         (Type Attributes): Reorganize introduction to remove duplicate
12212         list of attributes.  Add menu and proper @nodes to subsections.
12213         Alphabetize the main table of common attributes.
12214
12215 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12216
12217         * match.pd: New simplification patterns.
12218         (x + (x & 1))  -> ((x + 1) & ~1)
12219         (x & ~(x & y)) -> ((x & ~y))
12220         (x | ~(x | y)) -> ((x | ~y))
12221
12222 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12223
12224         * target.def (attribute_table): Mention that struct attribute_spec
12225         is defined in tree-core.h rather than tree.h
12226         * doc/tm.texi: Regenerate.
12227
12228 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12229
12230         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12231         accordingly.
12232
12233 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12234
12235         PR translation/65959
12236         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12237
12238 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12239
12240         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12241         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12242         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12243         Return value depending on target.
12244         (generic_tunings): Initialize new target settings.
12245         (cortexa53_tunings): Likewise.
12246         (cortexa57_tunings): Likewise.
12247         (thunderx_tunings): Likewise.
12248         (xgene1_tunings): Likewise.
12249
12250 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12251
12252         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12253         Make Cortex-A53 shift costs more accurate.
12254
12255 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12256
12257         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12258         UNSIGNED_FLOAT.
12259
12260 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12261
12262         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12263         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12264
12265 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12266
12267         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12268         Add cost of op0 in the compare-with-fpzero case.
12269
12270 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12271
12272         * builtins.c (fold_builtin_1): Remove spurious second
12273         semicolon.
12274         * cgraph.h (symtab_node::get_availability): Likewise.
12275         * opts.c (common_handle_option): Remove spurious second semicolon.
12276         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12277         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12278
12279 2015-04-30  Caroline Tice  <cmtice@google.com>
12280
12281         PR gcov-profile/65929
12282         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12283         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12284         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12285         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12286         * doc/tm.texi: Regenerate.
12287         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12288         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12289         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12290         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12291
12292 2015-04-30  Marek Polacek  <polacek@redhat.com>
12293
12294         * varasm.c (handle_cache_entry): Fix logic.
12295
12296 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12297
12298         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12299         (*extrsi5_insn_uxtw_alt): Likewise.
12300         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12301         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12302         operations.
12303
12304 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12305
12306         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12307         fabd in ABS case.
12308
12309 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12310
12311         * config/aarch64/aarch64.md
12312         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12313         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12314         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12315         appropriately.  Handle alternative EON form.
12316
12317 2015-04-30  Renlin Li  <renlin.li@arm.com>
12318
12319         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12320         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12321
12322 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12323
12324         PR ipa/65873
12325         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12326         -fstrict-aliasing boundaries.
12327
12328 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12329
12330         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12331         and [SU]MNEGL patterns.
12332
12333 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12334
12335         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12336         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12337         combined arithmetic-shift ops.  Properly handle all shift and extend
12338         operations that can occur in combination with PLUS/MINUS.
12339         Rename maybe_fma to compound_p.
12340         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12341         arithmetic and shift operations.
12342
12343 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12344
12345         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12346         rather than arith_shift cost when costing ADD/MINUS of an
12347         extended value.
12348
12349 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12350
12351         PR lto/65948
12352         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12353         to itself.
12354
12355 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12356
12357         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12358         are for the same position.
12359
12360 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12361
12362         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12363         vectorize_loops.
12364         (vectorize_loops): Use it.
12365
12366 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12367
12368         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12369         for aggregate types.
12370         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12371         type to be non_ODR.
12372         * tree.c (need_assembler_name_p): Compute mangled name for
12373         non-fundamental types and integer types.
12374
12375 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12376
12377         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12378         manual swaps.
12379         * expr.c (expand_expr_real_2): Likewise.
12380
12381 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12382
12383         * tree.c (build_common_builtin_nodes): Do not build
12384         __builtin_alloca_with_align as equivalent of library alloca.
12385
12386 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12387
12388         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12389         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12390         bugus variants.
12391         * tree.c: Include print-tree.h and ipa-utils.h
12392         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12393         (free_lang_data_in_cgraph): Call verify_type.
12394         (verify_type_variant): New function.
12395         (verify_type): New function.
12396         * tree.h (verify_type): Declare.
12397
12398 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12399
12400         * config/mips/mips-cpus.def: (mips4): Change default processor
12401         from PROCESSOR_R8000 to PROCESSOR_R10000.
12402
12403 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12404
12405         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12406         la/jalr instead of jal.
12407
12408 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12409
12410         PR target/65871
12411         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12412         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12413         (setcc+movzbl peephole2): Check also clobbered reg.
12414         (setcc+andl peephole2): Ditto.
12415
12416 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12417
12418         PR libgomp/65099
12419         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12420         (main): Set it depending on "-foffload-abi=[...]".
12421         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12422         compiler.
12423
12424 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12425
12426         PR target/65770
12427         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12428         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12429         Flip lane index back at assembly time for bigendian.
12430
12431 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12432
12433         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12434         * gimplify.c (gimplify_omp_workshare): Use it.
12435
12436 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12437
12438         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12439         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12440         build/inchash.o
12441         * genrecog.c: Rewrite most of the code except for the third page.
12442
12443 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12444
12445         * inchash.h, inchash.c: Include bconfig.h for build objects.
12446         * Makefile.in (build/inchash.o): New rule.
12447
12448 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12449
12450         PR target/65924
12451         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12452         number in type attribute expression.
12453
12454 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12455
12456         * loop-iv.c (canon_condition): Generalize to all types of integer
12457         constant.
12458
12459 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12460
12461         * gimple-walk.c: Prune duplicate or unneeded includes.
12462         (walk_gimple_asm): Only call parse_input_constraint or
12463         parse_output_constraint if their findings are used.
12464         Honour parse_input_constraint and parse_output_constraint
12465         result.
12466
12467 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12468
12469         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12470
12471 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12472
12473         PR tree-optimization/65893
12474         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12475         pass_dce.
12476
12477 2015-04-29  Richard Biener  <rguenther@suse.de>
12478
12479         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12480         compute GROUP_SIZE for basic-block SLP.
12481         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12482         take into account gaps.
12483         (vect_get_mask_element): Properly reject references to previous
12484         vectors.
12485         (vect_transform_slp_perm_load): Likewise.
12486
12487 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12488
12489         PR target/64835
12490         * config/i386/i386.c (ix86_default_align): New function.
12491         (ix86_override_options_after_change): Call ix86_default_align.
12492         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12493         (ix86_override_options_after_change): New function.
12494
12495 2015-04-28  Jeff Law  <law@redhat.com>
12496
12497         * tree-ssa-dom.c (record_equality); Fix comment typos.
12498
12499 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12500
12501         PR tree-optimization/65887
12502         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12503
12504 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12505
12506         * doc/extend.texi (Declaring Attributes of Functions): Split into
12507         subsections by target.  Alphabetize the table of common attributes.
12508         Rewrite some of the introductory text to reflect the new structure.
12509         Update some cross-references to point to the new subsections.
12510         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12511         duplicate copies in the discussion of function, label, and type
12512         attributes.
12513
12514 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12515
12516         PR bootstrap/65910
12517         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12518
12519 2015-04-28  Jason Merrill  <jason@redhat.com>
12520
12521         PR c++/65734
12522         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12523         (finalize_type_size): Respect TYPE_USER_ALIGN.
12524         (layout_type) [ARRAY_TYPE]: Likewise.
12525
12526 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12527
12528         * config/arm/arm.md (*arm_movt): Fix type attribute.
12529         (*cmpsi_shiftsi): Likewise.
12530         (*cmpsi_shiftsi_swp): Likewise.
12531         (*movsicc_insn): Likewise.
12532         (*cond_move): Likewise.
12533         (*if_plus_move): Likewise.
12534         (*if_move_plus): Likewise.
12535         (*if_arith_move): Likewise.
12536         (*if_move_arith): Likewise.
12537         (*if_shift_move): Likewise.
12538         (*if_move_shift): Likewise.
12539         (*arm_movtas_ze): Likewise.
12540         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12541         redundancy and type attribute.
12542         (*thumb2_movsi_insn): Fix type attribute.
12543         (*thumb2_addsi_short): Likewise.
12544         (thumb2_addsi3_compare0): Likewise.
12545         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12546         attributes accordingly.
12547
12548 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12549
12550         PR other/65911
12551         * function.c (pad_to_arg_alignment): Add parentheses.
12552
12553 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12554
12555         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12556         libgcc/config/frv/elf-lib.h.
12557
12558 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12559
12560         * tree-call-cdce.c: Fix example in header comment.
12561
12562 2015-04-28  Richard Biener  <rguenther@suse.de>
12563
12564         PR tree-optimization/62283
12565         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12566         fails fatally and we are vectorizing a basic-block simply
12567         cause the child to be constructed piecewise.
12568         (vect_analyze_slp_cost_1): Adjust.
12569         (vect_detect_hybrid_slp_stmts): Likewise.
12570         (vect_bb_slp_scalar_cost): Likewise.
12571         (vect_get_constant_vectors): For piecewise constructed
12572         constants place them after the last def.
12573         (vect_get_slp_defs): Adjust.
12574         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12575         externals for basic-block vectorization.
12576
12577 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12578
12579         PR target/63503
12580         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12581         aarch64-*-*.
12582         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12583         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12584         (AARCH64_TUNE_FMA_STEERING): Likewise.
12585         * config/aarch64/aarch64-cores.def: Set
12586         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12587         FMUL/FMADD instructions.
12588         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12589         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12590         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12591         * config/aarch64/cortex-a57-fma-steering.h: New file.
12592         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12593
12594 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12595
12596         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12597
12598 2015-04-28  Richard Biener  <rguenther@suse.de>
12599
12600         PR tree-optimization/65851
12601         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12602         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12603         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12604         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12605         (ccp_visit_phi_node): Adjust.
12606         (evaluate_stmt): For simplifications to SSA names return its
12607         lattice value if that isn't VARYING.  Return immediately when
12608         simplified to a constant.
12609         (visit_assignment): Adjust.
12610         (ccp_visit_stmt): Likewise.
12611
12612 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12613
12614         PR tree-optimization/65818
12615         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12616         evaluated.
12617
12618 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12619
12620         * calls.c (save_fixed_argument_area): Don't check
12621         ARGS_GROW_DOWNWARD with the preprocessor.
12622         (restore_fixed_argument_area): Likewise.
12623         (mem_overlaps_already_clobbered_arg_p): Likewise.
12624         (check_sibcall_argument_overlap): Likewise.
12625         (expand_call): Likewise.
12626         (emit_library_call_value_1): Likewise.
12627         (store_one_arg): Likewise.
12628         * function.c (assign_parms): Likewise.
12629         (locate_and_pad_parm): Likewise.
12630         (pad_to_arg_alignment): Likewise.
12631         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12632
12633 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12634
12635         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12636         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12637         * calls.c (save_fixed_argument_area): Don't chekc if
12638         ARGS_GROW_DOWNWARD is defined.
12639         (restore_fixed_argument_area): Likewise.
12640         (mem_overlaps_already_clobbered_arg_p): Likewise.
12641         (check_sibcall_argument_overlap): Likewise.
12642         (expand_call): Likewise.
12643         (emit_library_call_value_1): Likewise.
12644         (store_one_arg): Likewise.
12645         * function.c (assign_parms): Likewise.
12646         (locate_and_pad_parm): Likewise.
12647         (pad_to_arg_alignment): Likewise.
12648         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12649
12650 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12651
12652         * defaults.h (gen_epilogue): New function.
12653         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12654         defined.
12655         * cfgrtl.c (cfg_layout_finalize): Likewise.
12656         * df-scan.c: Likewise.
12657         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12658         (reposition_prologue_and_epilogue_notes): Likewise.
12659         * reorg.c (find_end_label): Likewise.
12660         * toplev.c: Likewise.
12661
12662 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12663
12664         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12665         * defaults.h (gen_simple_return): New function.
12666         (gen_simple_return): Likewise.
12667         (HAVE_return): Add default definition to false.
12668         (HAVE_simple_return): Likewise.
12669         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12670         HAVE_return and HAVE_simple_return are defined.
12671         * function.c (gen_return_pattern): Likewise.
12672         (convert_jumps_to_returns): Likewise.
12673         (thread_prologue_and_epilogue_insns): Likewise.
12674         * reorg.c (find_end_label): Likewise.
12675         (dbr_schedule): Likewise.
12676         * shrink-wrap.c: Likewise.
12677         * shrink-wrap.h: Likewise.
12678
12679 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12680
12681         * defaults.h (EPILOGUE_USES): Add default definition of false.
12682         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12683         * resource.c (init_resource_info): Likewise.
12684
12685 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12686
12687         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12688         to false.
12689         * dwarf2out.c (field_byte_offset): REmove check if
12690         PCC_BITFIELD_TYPE_MATTERS is defined.
12691         * stor-layout.c (layout_decl): Likewise.
12692         (update_alignment_for_field): Likewise.
12693         (place_field): Likewise.
12694
12695 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12696
12697         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12698         true.
12699         * regrename.c (check_new_reg_p): Remove check if
12700         HARD_REGNO_RENAME_OK is defined.
12701         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12702
12703 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12704
12705         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12706         * cse.c (fold_rtx): Likewise.
12707         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12708         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12709         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12710         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12711         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12712         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12713         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12714         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12715         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12716         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12717         * Likewise.
12718         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12719         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12720         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12721         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12722         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12723         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12724         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12725         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12726         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12727         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12728         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12729         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12730         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12731         * doc/tm.texi: Regenerate.
12732         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12733         either true or false.
12734
12735 2015-04-27  Jeff Law  <law@redhat.com>
12736
12737         PR tree-optimization/65217
12738         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12739         of them has a single use, make sure it is the LHS of the implied
12740         copy.
12741
12742 2015-04-28  Alan Modra  <amodra@gmail.com>
12743
12744         PR target/65810
12745         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12746         (offsettable_ok_by_alignment): Use minimum of decl and toc
12747         pointer alignment.  Replace dead code with assertion.
12748         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12749         case if size exceeds toc pointer alignment.
12750         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12751         (rs6000_emit_move): Likewise.
12752         * configure.ac: Add linker toc pointer alignment check.
12753         * configure: Regenerate.
12754         * config.in: Regenerate.
12755
12756 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
12757
12758         * config.gcc: Add h8300-*-linux.
12759         * config/h8300/linux.h: New.
12760         * config/h8300/t-linux: New.
12761         * config/h8300/h8300.c (h8300_option_override): Normal mode
12762         is not supported for h8300-*-linux.
12763         (h8300_file_start): Target priority change.
12764         (get_shift_alg): Likewise.
12765         (h8300_shift_need_scratch_p): Likewise.
12766         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12767         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
12768
12769 2015-04-27  Caroline Tice  <cmtice@google.com>
12770
12771         * final.c (final_scan_insn):  Output cold_function_name as function
12772         type.
12773         * varasm.c (cold_function_name):  Make global.
12774         (assemble_start_function):  Re-set cold_function_name.
12775         (assemble_end_function): Output cold partition size.
12776         * varasm.h (cold_function_name):  Declare global.
12777
12778 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
12779
12780         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
12781         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
12782         constraint.
12783         (*movxi_internal_avx512f): Ditto.
12784         (define_split): Check for xmm16+, when splitting scalar float_extend.
12785         (*extendsfdf2_mixed): Use "v" constraint.
12786         (define_split): Check for xmm16+, when splitting scalar float_truncate.
12787         (*truncdfsf_fast_sse): Use "v" constraint.
12788         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
12789         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
12790         (define_peephole2): Check for xmm16+, when converting scalar
12791         float_truncate.
12792         (define_peephole2): Check for xmm16+, when converting scalar
12793         float_extend.
12794         (*fop_<mode>_comm_mixed): Use "v" constraint.
12795         (*fop_<mode>_comm_sse): Ditto.
12796         (*fop_<mode>_1_mixed): Ditto.
12797         (*sqrt<mode>2_sse): Ditto.
12798         (*ieee_s<ieee_maxmin><mode>3): Ditto.
12799
12800 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12801
12802         * combine.c (simplify_if_then_else): Use std::swap instead
12803         of manually swapping.
12804         (known_cond): Likewise.
12805         (simplify_comparison): Likewise.
12806
12807 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
12808
12809         PR target/64579
12810         * config/rs6000/htm.md: Remove all define_expands.
12811         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
12812         UNSPECV_HTM_TABORTWCI): Remove.
12813         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
12814         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
12815         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
12816         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
12817         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
12818         tabortwci_internal): Remove define_insns.
12819         (tabort<wd>c, tabort<wd>ci): New define_insns.
12820         (tabort): Use gpc_reg_operand.
12821         (tcheck): Remove operand.
12822         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
12823         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
12824         expected value.
12825         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
12826         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
12827         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
12828         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
12829         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
12830         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
12831         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
12832         (tcheck): Remove builtin argument.
12833         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
12834         not TARGET_64BIT.
12835         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
12836         tabortdc and tabortdci builtins when not in 64-bit mode.
12837         Modify code to handle the loss of the HTM define_expands.
12838         Emit code to copy the CR register to TARGET.
12839         (htm_init_builtins): Modify code to handle the loss of the HTM
12840         define_expands.
12841         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
12842         (RS6000_BTC_64BIT): Likewise.
12843         (RS6000_BTC_CR): New macro.
12844         * doc/extend.texi: Update documentation for htm builtins.
12845
12846 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12847
12848         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
12849         of manually swapping.
12850         (simplify_associative_operation): Likewise.
12851         (simplify_binary_operation): Likewise.
12852         (simplify_plus_minus): Likewise.
12853         (simplify_relational_operation): Likewise.
12854         (simplify_ternary_operation): Likewise.
12855
12856 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12857
12858         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
12859         (xs_hi_nonmemory_operand): Remove error.
12860         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
12861         general_operand rather than xs_hi_general_operand.
12862
12863 2015-04-27  Richard Biener  <rguenther@suse.de>
12864
12865         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
12866         (record_equivalences_from_stmt): Valueize rhs.
12867         (record_equality): Canonicalize x and y order via
12868         tree_swap_operands_p.  Do not swap operands for same loop depth.
12869
12870 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
12871
12872         PR target/65296
12873         PR target/65895
12874         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
12875         Add hint how to use own spec file.
12876
12877 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
12878
12879         PR tree-optimization/65875
12880         * tree-vrp.c (update_value_range): If in is_new case setting
12881         old_vr to VR_VARYING, also set new_vr to it.  Remove
12882         old_vr->type == VR_VARYING test.
12883         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
12884         SSA_PROP_INTERESTING if update_value_range returned true,
12885         but new range is VR_VARYING.
12886
12887 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12888
12889         * combine.c (sign_extend_short_imm): New.
12890         (set_nonzero_bits_and_sign_copies): Use above new function for sign
12891         extension of src short immediate.
12892         (reg_nonzero_bits_for_combine): Likewise for tem.
12893
12894 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12895
12896         * stor-layout.c (self_referential_component_ref_p): New predicate.
12897         (copy_self_referential_tree_r): Use it.
12898         (self_referential_size): Punt for simple operations directly involving
12899         self-referential component references.
12900         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
12901
12902 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12903
12904         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
12905
12906 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12907
12908         * vec.h (vec): Make splice arguments const.  Update definitions
12909         accordingly.
12910
12911 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
12912
12913         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
12914         alternatives.
12915
12916 2015-04-26  Tom de Vries  <tom@codesourcery.com>
12917
12918         PR tree-optimization/65826
12919         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
12920
12921 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
12922
12923         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
12924         (*madd3<mode>): Ditto.
12925         (*msub4<mode>): Ditto.
12926         (*msub3<mode>): Ditto.
12927         (*nmadd4<mode>): Ditto.
12928         (*nmadd3<mode>): Ditto.
12929         (*nmadd4<mode>_fastmath): Ditto.
12930         (*nmadd3<mode>_fastmath): Ditto.
12931         (*nmsub4<mode>): Ditto.
12932         (*nmsub3<mode>): Ditto.
12933         (*nmsub4<mode>_fastmath): Ditto.
12934         (*nmsub3<mode>_fastmath): Ditto.
12935
12936 2015-04-24  Jason Merrill  <jason@redhat.com>
12937
12938         PR c++/50800
12939         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
12940         down when building TYPE_CANONICAL.
12941         (build_pointer_type_for_mode): Likewise.
12942
12943 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
12944
12945         * genrecog.c (validate_pattern): Check matching constraint refers
12946         to a lower numbered operand.
12947
12948 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12949
12950         PR target/65849
12951         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
12952         save to independent variables use the Save attribute.  This will
12953         allow these options to be modified with the #pragma/attribute
12954         target support.
12955         (-mallow-movmisalign): Likewise.
12956         (-mallow-df-permute): Likewise.
12957         (-msched-groups): Likewise.
12958         (-malways-hint): Likewise.
12959         (-malign-branch-targets): Likewise.
12960         (-mvectorize-builtins): Likewise.
12961         (-msave-toc-indirect): Likewise.
12962
12963         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
12964         can be set via the #pragma/attribute target support.
12965         (rs6000_opt_vars): Likewise.
12966         (rs6000_inner_target_options): If VSX was set, also set
12967         -mno-avoid-indexed-addresses.
12968
12969 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12970
12971         * config/arm/iterators.md (shiftable_ops): Rename to...
12972         (SHIFTABLE_OPS): ... This.  Update use in comments.
12973         (ior_xor): Rename to...
12974         (IOR_XOR): ... This.
12975         (vqh_ops): Rename to...
12976         (VQH_OPS): ... This.
12977         (vqhs_ops): Rename to...
12978         (VQHS_OPS): ... This.
12979         (rshifts): Rename to...
12980         (RSHIFTS): ... This.
12981         (returns): Rename to...
12982         (RETURNS): ... This.
12983         * config/arm/arm.md: Update uses of the above.
12984         * config/arm/neon.md: Likewise.
12985
12986 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12987
12988         * config.host (case ${host}): Add aarch64*-*-linux case.
12989         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
12990         fields to all the cores.
12991         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
12992         Add MCPU_MTUNE_NATIVE_SPECS.
12993         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
12994         field to all extensions.
12995         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
12996         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
12997         Adjust definition of AARCH64_OPT_EXTENSION.
12998         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
12999         (MCPU_MTUNE_NATIVE_SPECS): Define.
13000         * config/aarch64/driver-aarch64.c: New file.
13001         * config/aarch64/x-arch64: New file.
13002         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
13003         -mtune and -march.
13004
13005 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13006             Wei Mi  <wmi@google.com>
13007
13008         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
13009         * config/i386/i386.c (extract_base_offset_in_addr): New function.
13010         (ix86_operands_ok_for_move_multiple): Ditto.
13011         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
13012         (movlpd/movhpd to movupd peephole2): Ditto.
13013
13014 2015-04-24  Marek Polacek  <polacek@redhat.com>
13015
13016         PR c/61534
13017         * input.h (from_macro_expansion_at): Define.
13018
13019         PR c/63357
13020         * doc/invoke.texi: Update description of -Wlogical-op.
13021
13022 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13023
13024         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
13025         ternary operator in fprintf and harmonize spacing.
13026
13027 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13028
13029         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
13030         Mark operand1 commutative.
13031
13032 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13033
13034         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
13035         input operands in memory.
13036         (*vec_concatv2si_sse4_1): Ditto.
13037         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
13038         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
13039         register_operand.
13040         (vec_extract_hi_v32hi): Ditto.
13041         (vec_extract_hi_v64hi): Ditto.
13042         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
13043
13044 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13045             Steven Bosscher <steven@gcc.gnu.org>
13046
13047         PR rtl-optimization/34503
13048         * cprop.c (cprop_reg_p): New.
13049         (hash_scan_set): Use above function to check if register can be
13050         propagated.
13051         (find_avail_set): Return up to two sets, one whose source is a
13052         register and one whose source is a constant.  Sets are returned in an
13053         array passed as parameter rather than as a return value.
13054         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
13055         sets returned by find_avail_set, starting with the one whose source is
13056         a constant. Use cprop_reg_p to check if register can be propagated.
13057         (do_local_cprop): Use cprop_reg_p to check if register can be
13058         propagated.
13059         (implicit_set_cond_p): Likewise.
13060
13061 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13062
13063         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
13064         (sem_function::equals): IGNORED_NODES parameter is now unused;
13065         update call of equals_private.
13066         (sem_function::equals_private): Do not call equals_wpa; skip
13067         gimple body matching if there is no body.
13068         (sem_function::init): Add logic to hash tthunk info.
13069         (sem_function::parse): Also parse thunks.
13070         * ipa-icf.h (equals_private): Update declaration.
13071
13072 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13073
13074         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
13075         asterisk from name so this can be generated directly.
13076         (*altivec_stvx_<mode>_internal): Likewise.
13077         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
13078         that this is never called during or after reload/lra.
13079         (rs6000_frame_related): Remove split_reg
13080         argument and logic that references it.
13081         (emit_frame_save): Remove last parameter from call to
13082         rs6000_frame_related.
13083         (rs6000_emit_prologue): Remove last parameter from eight calls to
13084         rs6000_frame_related.  Force generation of stvx instruction for
13085         Altivec register saves.  Remove split_reg handling, which is no
13086         longer needed.
13087         (rs6000_emit_epilogue):  Force generation of lvx instruction for
13088         Altivec register restores.
13089
13090 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13091
13092         * config/rs6000/rs6000.opt (mcrypto): Change option description to
13093         match category changes in ISA 2.07B.
13094
13095 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13096
13097         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
13098         iterators.
13099         (cmp_op, cmp_type): New code attributes.
13100         (NEON_VCMP, NEON_VACMP): New int iterators.
13101         (cmp_op_unsp): New int attribute.
13102         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
13103         (neon_vceq<mode>): Delete.
13104         (neon_vc<cmp_op><mode>_insn): New pattern.
13105         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13106         (neon_vcgeu<mode>): Delete.
13107         (neon_vcle<mode>): Likewise.
13108         (neon_vclt<mode>: Likewise.
13109         (neon_vcage<mode>): Likewise.
13110         (neon_vcagt<mode>): Likewise.
13111         (neon_vca<cmp_op><mode>): New define_expand.
13112         (neon_vca<cmp_op><mode>_insn): New pattern.
13113         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13114
13115 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13116
13117         * tree.h (attribute_value_equal): Declare.
13118         * tree.c (attribute_value_equal): Export.
13119
13120 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13121
13122         * ipa-icf.c (sem_item::compare_attributes): New function.
13123         (sem_item::compare_referenced_symbol_properties): Compare variable
13124         attributes.
13125         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13126         (sem_function::param_used_p): New function.
13127         (sem_function::equals_wpa): Fix attribute comparsion; match
13128         parameter type codes; do not compare paremter flags when
13129         they are not used; compare edge flags; compare indirect calls.
13130         (sem_item::update_hash_by_addr_refs): Hash reference type.
13131         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13132         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13133         reference use type.
13134         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13135         * ipa-icf.h (compare_attributes, param_used_p): Declare.
13136
13137 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13138
13139         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13140         cleanup.
13141         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13142         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13143         (sem_item::compare_referenced_symbol_properties): New.
13144         (sem_item::hash_referenced_symbol_properties): New.
13145         (sem_item::compare_cgraph_references): Rename to ...
13146         (sem_item::compare_symbol_references): ... this one; use
13147         compare_referenced_symbol_properties.
13148         (sem_function::equals_wpa): Do not compare
13149         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13150         DECL_IS_OPERATOR_NEW; compare pointer sizes.
13151         (sem_item::update_hash_by_addr_refs): Call
13152         hash_referenced_symbol_properties.
13153         (sem_item::update_hash_by_local_refs): Cleanup.
13154         (sem_function::merge): Do not mix up symbol properties.
13155         (sem_variable::equals_wpa): Use compare_symbol_references.
13156         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13157         (sem_item::hash_referenced_symbol_properties): New.
13158         (sem_item::compare_symbol_references): New.
13159         (sem_item::compare_cgraph_references): Remove.
13160
13161 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
13162
13163         PR target/26702
13164         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13165         Emit size of local.
13166
13167 2015-04-23  Nick Clifton  <nickc@redhat.com>
13168
13169         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13170         ATTRIBUTE_UNUSED to x parameter.
13171         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13172
13173 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13174
13175         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13176         TARGET_CRYPTO to TARGET_P8_VECTOR>
13177         (crypto_vpermxor_<mode>): Likewise.
13178         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13179         (BU_CRYPTO_3A): Likewise.
13180         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13181         (BU_CRYPTO_OVERLOAD_3A): New #define.
13182         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13183         (VPMSUMH): Likewise.
13184         (VPMSUMW): Likewise.
13185         (VPMSUMD): Likewise.
13186         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13187         (VPERMXOR_V4SI): Likewise.
13188         (VPERMXOR_V8HI): Likewise.
13189         (VPERMXOR_V16QI): Likewise.
13190         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13191         BU_CRYPTO_OVERLOAD_2A.
13192         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13193         BU_CRYPTO_OVERLOAD_3A.
13194         * config/rs6000/rs6000.opt (mcrypto): Change description of
13195         option.
13196
13197 2015-04-23  Richard Biener  <rguenther@suse.de>
13198
13199         * passes.def: Remove copy propagation passes run directly after CCP.
13200         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13201         SSA names.
13202         (ccp_visit_phi_node): Rework to handle first executable edge
13203         specially.
13204
13205 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13206
13207         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13208         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13209         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13210         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13211         (thumb_legimitimize_reload_address): Remove.
13212         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13213         Remove.
13214         (thumb_legimitimize_reload_address): Remove.
13215
13216 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13217
13218         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13219
13220 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13221
13222         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13223         MAX_LDM_STM_OPS.
13224         (store_multiple): Likewise.
13225
13226 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13227
13228         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13229         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13230         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13231         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13232         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13233         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13234         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13235         Specify issue_rate value.
13236         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13237         large switch statement.
13238         (arm_marvell_pj4_tune): New struct.
13239         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13240         struct.
13241
13242 2015-04-23  Richard Biener  <rguenther@suse.de>
13243
13244         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13245         (vect_find_last_store_in_slp_instance): Rename to ...
13246         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13247         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13248         and vec_construct for external defs when estimating prologue cost.
13249         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13250         Compute costs here only when vectorizing loops.
13251         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13252         have been determined.
13253         (vect_schedule_slp_instance): Simplify vectorized code placement
13254         and prepare for in-BB external defs.
13255         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13256         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13257         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13258         guard.
13259         (vect_model_load_cost): Likewise.
13260         (vectorizable_store): Instead add it here.
13261         (vectorizable_load): Likewise.
13262         (vect_is_simple_use): Dump def type textually.
13263
13264 2015-04-23  Richard Biener  <rguenther@suse.de>
13265
13266         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13267         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13268         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13269         instead of get_eh_region_from_lp_number.
13270         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13271         the SCEV cache.
13272
13273 2015-04-23  Anton Blanchard  <anton@samba.org>
13274
13275         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13276         need for -mprofile-kernel to save LR to stack.
13277
13278 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13279
13280         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13281         adjustments.
13282         (insn_is_swappable_p): Return 1 for a convert from double to
13283         single precision when all of its uses are splats of BE element
13284         zero.
13285
13286 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13287
13288         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13289
13290 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13291
13292         PR target/65456
13293         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13294         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13295         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13296         option.
13297         (rs6000_builtin_mask_for_load): Return 0 for targets with
13298         efficient unaligned VSX accesses so that the vectorizer will use
13299         direct unaligned loads.
13300         (rs6000_builtin_support_vector_misalignment): Always return true
13301         for targets with efficient unaligned VSX accesses.
13302         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13303         stores on targets with efficient unaligned VSX accesses is almost
13304         always the same as the cost of an aligned load or store, so model
13305         it that way.
13306         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13307         unaligned vectors if we have efficient unaligned VSX accesses.
13308         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13309         undocumented option.
13310
13311 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13312
13313         Revert:
13314         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13315
13316         * config.gcc (LIBC_MUSL): New tm_defines macro.
13317         * config/linux.h (OPTION_MUSL): Define.
13318         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13319         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13320         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13321
13322         * config/linux.opt (mmusl): New option.
13323         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13324         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13325
13326         * configure: Regenerate.
13327
13328 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13329
13330         * config.gcc (LIBC_MUSL): New tm_defines macro.
13331         * config/linux.h (OPTION_MUSL): Define.
13332         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13333         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13334         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13335
13336         * config/linux.opt (mmusl): New option.
13337         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13338         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13339
13340         * configure: Regenerate.
13341
13342 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13343
13344         * doc/invoke.texi (-fsanitize-sections): Update description.
13345         * asan.c (set_sanitized_sections): Parse incoming arg.
13346         (section_sanitized_p): Support wildcards.
13347
13348 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13349
13350         PR tree-optimization/65823
13351         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13352         equality between ap_copy and ap.
13353
13354 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13355
13356         PR target/47098
13357         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13358
13359 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13360
13361         PR target/47122
13362         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13363
13364 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13365
13366         PR target/55144
13367         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13368         remove already contained t-files.
13369
13370 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13371
13372         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13373         Remove unneeded forward declarations.
13374         (suitable_for_tail_call_opt_p): Commentary typo fix.
13375
13376 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13377
13378         * varasm.c (emit_bss): Remove redundant guard.
13379
13380 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13381
13382         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13383
13384 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13385
13386         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13387
13388 2015-04-22  Hale Wang  <hale.wang@arm.com>
13389             Terry Guo  <terry.guo@arm.com>
13390
13391         PR rtl-optimization/64818
13392         * combine.c (can_combine_p): Don't combine user-specified
13393         register if it is in an asm input.
13394
13395 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13396
13397         PR ipa/65076
13398         * passes.def (early_optimizations): Add pass_dse.
13399
13400 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13401
13402         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13403         * reorg.c (redundant_insn): Remove ifdef
13404         INSN_REFERENCES_ARE_DELAYED.
13405         * resource.c (mark_referenced_resources): Likewise.
13406
13407 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13408
13409         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13410         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13411         * resource.c (mark_set_resources): Likewise.
13412
13413 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13414
13415         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13416         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13417         (flow_find_head_matching_sequence): Likewise.
13418         (try_head_merge_bb): Likewise.
13419         * combine.c (can_combine_p): Likewise.
13420         (try_combine): Likewise.
13421         (distribute_notes): Likewise.
13422         * df-problems.c (can_move_insns_across): Likewise.
13423         * final.c (final): Likewise.
13424         * gcse.c (insert_insn_end_basic_block): Likewise.
13425         * ira.c (find_moveable_pseudos): Likewise.
13426         * reorg.c (try_merge_delay_insns): Likewise.
13427         (fill_simple_delay_slots): Likewise.
13428         (fill_slots_from_thread): Likewise.
13429         * sched-deps.c (sched_analyze_2): Likewise.
13430
13431 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13432
13433         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13434         PIC_OFFSET_TABLE_REGNUM.
13435
13436 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13437
13438         * alias.c (init_alias_target): Remove ifdef
13439         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13440         * df-scan.c (df_insn_refs_collect): Likewise.
13441         (df_get_regular_block_artificial_uses): Likewise.
13442         (df_get_eh_block_artificial_uses): Likewise.
13443         (df_get_entry_block_def_set): Likewise.
13444         (df_get_exit_block_use_set): Likewise.
13445         * emit-rtl.c (gen_rtx_REG): Likewise.
13446         * ira.c (ira_setup_eliminable_regset): Likewise.
13447         * reginfo.c (init_reg_sets_1): Likewise.
13448         * regrename.c (rename_chains): Likewise.
13449         * reload1.c (reload): Likewise.
13450         (eliminate_regs_in_insn): Likewise.
13451         * resource.c (mark_referenced_resources): Likewise.
13452         (init_resource_info): Likewise.
13453
13454 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13455
13456         * defaults.h (MASK_RETURN_ADDR): New definition.
13457         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13458         MASK_RETURN_ADDR.
13459
13460 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13461
13462         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13463         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13464         RETURN_ADDR_OFFSET.
13465         (expand_builtin_frob_return_addr): Likewise.
13466
13467 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13468
13469         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13470         (try_redirect_by_replacing_jump): Likewise.
13471         (rtl_tidy_fallthru_edge): Likewise.
13472         * combine.c (insn_a_feeds_b): Likewise.
13473         (find_split_point): Likewise.
13474         (simplify_set): Likewise.
13475         * cprop.c (cprop_jump): Likewise.
13476         * cse.c (cse_extended_basic_block): Likewise.
13477         * df-problems.c (can_move_insns_across): Likewise.
13478         * function.c (emit_use_return_register_into_block): Likewise.
13479         * haifa-sched.c (sched_init): Likewise.
13480         * ira.c (find_moveable_pseudos): Likewise.
13481         * loop-invariant.c (find_invariant_insn): Likewise.
13482         * lra-constraints.c (curr_insn_transform): Likewise.
13483         * postreload.c (reload_combine_recognize_const_pattern):
13484         * Likewise.
13485         * reload.c (find_reloads): Likewise.
13486         * reorg.c (delete_scheduled_jump): Likewise.
13487         (steal_delay_list_from_target): Likewise.
13488         (steal_delay_list_from_fallthrough): Likewise.
13489         (redundant_insn): Likewise.
13490         (fill_simple_delay_slots): Likewise.
13491         (fill_slots_from_thread): Likewise.
13492         (delete_computation): Likewise.
13493         * sched-rgn.c (add_branch_dependences): Likewise.
13494
13495 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13496
13497         * genconfig.c (main): Always define HAVE_cc0.
13498         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13499         HAVE_cc0.
13500         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13501         (flow_find_head_matching_sequence): Likewise.
13502         (try_head_merge_bb): Likewise.
13503         * cfgrtl.c (rtl_merge_blocks): Likewise.
13504         (try_redirect_by_replacing_jump): Likewise.
13505         (rtl_tidy_fallthru_edge): Likewise.
13506         * combine.c (do_SUBST_MODE): Likewise.
13507         (insn_a_feeds_b): Likewise.
13508         (combine_instructions): Likewise.
13509         (can_combine_p): Likewise.
13510         (try_combine): Likewise.
13511         (find_split_point): Likewise.
13512         (subst): Likewise.
13513         (simplify_set): Likewise.
13514         (distribute_notes): Likewise.
13515         * cprop.c (cprop_jump): Likewise.
13516         * cse.c (cse_extended_basic_block): Likewise.
13517         * df-problems.c (can_move_insns_across): Likewise.
13518         * final.c (final): Likewise.
13519         (final_scan_insn): Likewise.
13520         * function.c (emit_use_return_register_into_block): Likewise.
13521         * gcse.c (insert_insn_end_basic_block): Likewise.
13522         * haifa-sched.c (sched_init): Likewise.
13523         * ira.c (find_moveable_pseudos): Likewise.
13524         * loop-invariant.c (find_invariant_insn): Likewise.
13525         * lra-constraints.c (curr_insn_transform): Likewise.
13526         * optabs.c (prepare_cmp_insn): Likewise.
13527         * postreload.c (reload_combine_recognize_const_pattern):
13528         * Likewise.
13529         * reload.c (find_reloads): Likewise.
13530         (find_reloads_address_1): Likewise.
13531         * reorg.c (delete_scheduled_jump): Likewise.
13532         (steal_delay_list_from_target): Likewise.
13533         (steal_delay_list_from_fallthrough): Likewise.
13534         (try_merge_delay_insns): Likewise.
13535         (redundant_insn): Likewise.
13536         (fill_simple_delay_slots): Likewise.
13537         (fill_slots_from_thread): Likewise.
13538         (delete_computation): Likewise.
13539         (relax_delay_slots): Likewise.
13540         * sched-deps.c (sched_analyze_2): Likewise.
13541         * sched-rgn.c (add_branch_dependences): Likewise.
13542
13543 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13544
13545         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13546         that is trivially ded on non cc0 targets.
13547         (simplify_set): Likewise.
13548         (mark_used_regs_combine): Likewise.
13549         * cse.c (new_basic_block): Likewise.
13550         (fold_rtx): Likewise.
13551         (cse_insn): Likewise.
13552         (cse_extended_basic_block): Likewise.
13553         (set_live_p): Likewise.
13554         * rtlanal.c (canonicalize_condition): Likewise.
13555         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13556
13557 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13558
13559         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13560         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13561         * final.c: Likewise.
13562         * jump.c: Likewise.
13563         * recog.c: Likewise.
13564         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13565         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13566
13567 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13568
13569         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13570         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13571         * builtins.c (expand_builtin): Remove check if
13572         EH_RETURN_DATA_REGNO is defined.
13573         * df-scan.c (df_bb_refs_collect): Likewise.
13574         (df_get_exit_block_use_set): Likewise.
13575         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13576         * ira-lives.c (process_bb_node_lives): Likewise.
13577         * lra-lives.c (process_bb_lives): Likewise.
13578
13579 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13580
13581         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13582         FIRST_PSEUDO_REG): New.
13583         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13584         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13585         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13586         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13587         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13588         (FIRST_INT_REG): New.
13589         (LAST_INT_REG): New.
13590         (FIRST_*_REG): Define using *_REG.
13591         (LAST_*_REG): Ditto.
13592         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13593         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13594         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13595
13596 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13597
13598         * expmed.c: (synth_mult): Only assume overlapping
13599         shift with previous steps in alg_sub_t_m2 case.
13600
13601 2015-04-21  Richard Biener  <rguenther@suse.de>
13602
13603         PR tree-optimization/65650
13604         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13605         transitions involving copies.
13606         (set_lattice_value): Adjust for copy lattice state.
13607         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13608         if that doesn't dominate the merge point.
13609         (bit_value_unop): Adjust what we treat as varying mask.
13610         (bit_value_binop): Likewise.
13611         (bit_value_assume_aligned): Likewise.
13612         (evaluate_stmt): When we simplified to a SSA name record a copy
13613         instead of dropping to varying.
13614         (visit_assignment): Simplify.
13615
13616         * gimple-match.h (gimple_simplify): Add another callback.
13617         * gimple-fold.c (fold_stmt_1): Adjust caller.
13618         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13619         for the 2nd callback.
13620         * gimple-match-head.c (gimple_simplify): Add a callback that is
13621         used to valueize the stmt operands and use it that way.
13622
13623 2015-04-21  Richard Biener  <rguenther@suse.de>
13624
13625         PR tree-optimization/65788
13626         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13627
13628 2015-04-21  Richard Biener  <rguenther@suse.de>
13629
13630         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13631         vec_construct cost by vec_stmt_cost.
13632
13633 2015-04-21  Richard Biener  <rguenther@suse.de>
13634
13635         * cfghooks.h (create_basic_block): Replace with two overloads
13636         for RTL and GIMPLE.
13637         (split_block): Likewise.
13638         * cfghooks.c (split_block): Rename to ...
13639         (split_block_1): ... this.
13640         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13641         (split_block_after_labels): Call split_block_1.
13642         (create_basic_block): Rename to ...
13643         (create_basic_block_1): ... this.
13644         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13645         (create_empty_bb): Call create_basic_block_1.
13646         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13647         split_block_after_labels.
13648         * omp-low.c (expand_parallel_call): Likewise.
13649         (expand_omp_target): Likewise.
13650         (simd_clone_adjust): Likewise.
13651         * tree-chkp.c (chkp_get_entry_block): Likewise.
13652         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13653         create_basic_block overload.
13654         (cgraph_node::expand_thunk): Likewise.
13655         * tree-cfg.c (make_blocks): Likewise.
13656         (handle_abnormal_edges): Likewise.
13657         * tree-inline.c (copy_bb): Likewise.
13658
13659 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13660
13661         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13662         New pattern.
13663         (*xor_one_cmplsidi3_ze): Likewise.
13664
13665 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13666
13667         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13668         use df_remove_problem rather than manually removing problems, leaving
13669         holes in df->problems_in_order[].
13670
13671 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13672
13673         PR tree-optimization/65802
13674         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13675
13676 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13677
13678         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13679         Increase to 128.
13680         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13681         at '.'.  Assert that there's enough space for everything.
13682
13683 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13684
13685         PR tree-optimization/64950
13686         Revert:
13687         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13688
13689         PR target/41089
13690         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13691         as volatile.
13692
13693 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13694
13695         PR rtl-optimization/64916
13696         * cfgcleanup.c (values_equal_p): New function.
13697         (can_replace_by): Use it.
13698
13699 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13700
13701         PR c++/65801
13702         * doc/invoke.texi ([-Wnarrowing]): Update.
13703
13704 2015-04-20  Jeff Law  <law@redhat.com>
13705
13706         PR tree-optimization/65658
13707         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13708         redundant test for GIMPLE_ASSIGN in last change.
13709
13710 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13711
13712         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13713         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13714         (legitimize_tls_address): Ditto.
13715         (ix86_expand_move): Ditto.
13716         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13717         (ix86_expand_unary_operator): Ditto.
13718         * config/i386/predicates.md (index_register_operand): Ditto.
13719
13720 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13721
13722         * reorg.c (try_merge_delay_insns): Improve correctness checking
13723         for targets with multiple delay slots.
13724
13725 2015-04-20  Jeff Law  <law@redhat.com>
13726
13727         PR tree-optimization/65658
13728         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13729         statements too.
13730
13731 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13732
13733         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13734         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13735         Delete.
13736
13737 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13738
13739         PR debug/65807
13740         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13741
13742 2015-04-20  Richard Biener  <rguenther@suse.de>
13743
13744         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13745         * gimple-fold.c (gimple_build_valueize): New function.
13746         (gimple_build): Always use gimple_build_valueize as valueize hook.
13747
13748 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13749
13750         PR target/64134
13751         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13752         and overwrite variable parts if <= 1/2 the elements are variable.
13753
13754 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13755
13756         PR rtl-optimization/65805
13757         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
13758         Don't use difference of offset and previous offset if
13759         update_sp_offset is non-zero.
13760         (eliminate_regs_in_insn): Ditto.
13761         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
13762         lra_eliminate_regs_1 call.
13763         * lra-constraints.c (get_equiv_with_elimination): Ditto.
13764
13765 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
13766
13767         * hash-table.h: Remove version of hash_table that stored value_type *.
13768         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
13769         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
13770         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
13771         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
13772         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
13773         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
13774         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
13775         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
13776         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
13777         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
13778         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
13779         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
13780         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
13781         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
13782         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13783         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
13784
13785 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13786             Jakub Jelinek  <jakub@redhat.com>
13787
13788         PR target/65787
13789         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
13790         subsequent SH_NONE operand does not overwrite an existing *special
13791         value.
13792         (adjust_extract): Handle case where a vec_extract operation is
13793         wrapped in a PARALLEL.
13794
13795 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13796
13797         PR target/65780
13798         * config/i386/i386.c (ix86_binds_local_p): Define only if
13799         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
13800
13801 2015-04-17  Jeff Law  <law@redhat.com>
13802
13803         PR tree-optimization/47679
13804         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
13805         * tree-ssa-scopedtables.c: New file.
13806         * tree-ssa-scopedtables.h: New file.
13807         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
13808         (const_and_copies): Change name/type.
13809         (record_const_or_copy): Move into tree-ssa-scopedtables.c
13810         (record_const_or_copy_1): Similarly.
13811         (restore_vars_to_original_value): Similarly.
13812         (pass_dominator::execute): Create and destroy const_and_copies table.
13813         (thread_across_edge): Update passing of const_and_copies.
13814         (record_temporary_equivalence): Use method calls rather than
13815         manipulating const_and_copies directly.
13816         (record_equality, cprop_into_successor_phis): Similarly.
13817         (dom_opt_dom_walker::before_dom_children): Similarly.
13818         (dom_opt_dom_walker::after_dom_children): Similarly.
13819         (eliminate_redundant_computations): Similarly.
13820         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
13821         (record_temporary_equivalence): Likewise.
13822         (invalidate_equivalences): Likewise.
13823         (record_temporary_equivalences_from_phis): Update due to type
13824         change of const_and_copies.  Use method calls rather than
13825         manipulating the stack directly.
13826         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
13827         (thread_through_normal_block, thread_across_edge): Likewise.
13828         (thread_across_edge): Likewise.
13829         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13830         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
13831         of equiv_stack.
13832         (identify_jump_threads): Update due to type change of equiv_stack.
13833         (finalize_jump_threads): Delete the equiv_stack when complete.
13834
13835 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
13836
13837         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13838         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
13839         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
13840
13841 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
13842
13843         PR target/65535
13844         * config.gcc: Exit with a comment when we do not have a major version
13845         number for the FreeBSD target.
13846
13847 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13848
13849         PR target/65689
13850         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
13851         maybe_allows_mem bitfields.
13852         (maybe_allows_none_start, maybe_allows_none_end,
13853         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
13854         maybe_allows_mem_end): New variables.
13855         (compute_maybe_allows): New function.
13856         (add_constraint): Use it to initialize maybe_allows_reg and
13857         maybe_allows_mem fields.
13858         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
13859         is_address constraints such that those that allow neither mem nor
13860         reg come first, then those that only allow reg but not mem, then
13861         those that only allow mem but not reg, then the rest.
13862         (write_allows_reg_mem_function): New function.
13863         (write_tm_preds_h): Call it.
13864         * stmt.c (parse_output_constraint, parse_input_constraint): Use
13865         the generated insn_extra_constraint_allows_reg_mem function
13866         instead of always setting *allows_reg = true; *allows_mem = true;
13867         for unknown extra constraints.
13868
13869 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13870
13871         PR target/65780
13872         * output.h (default_binds_local_p_3): New.
13873         * varasm.c (default_binds_local_p_3): Make it public.  Take an
13874         argument to indicate if common symbol may be local.  If common
13875         symbol may be local, treat non-external variable as defined
13876         locally.
13877         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
13878         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
13879         * config/i386/i386.c (ix86_binds_local_p): New.
13880         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
13881         ix86_binds_local_p.
13882
13883 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13884
13885         PR debug/65771
13886         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
13887         trying mem_loc_descriptor on XEXP (rtl, 0).
13888
13889 2015-04-17  Martin Liska  <mliska@suse.cz>
13890
13891         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
13892         Release symbol_compare_collection.
13893         * ipa-reference.c: Add TODO that a vector should be released.
13894
13895 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
13896
13897         PR target/65296
13898         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
13899         to new AVR-LibC file layout (bug #44574).
13900         (*avrlibc_devicelib): Same.
13901         * config/avr/avr-mcus.def: Adjust comments.
13902         * config/avr/avr.opt (nodevicelib): Adjust help.
13903
13904 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
13905
13906         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
13907
13908 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
13909
13910         PR c++/64527
13911         * gimplify.c (gimplify_init_constructor): Always emit a
13912         side-effecting constructor.
13913
13914 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13915
13916         PR tree-optimization/64950
13917         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
13918         in cfun->curr_properties.
13919         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
13920         if we generate an IFN_VA_ARG.
13921         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
13922         function if PROP_gimple_lva is not set in src function.
13923
13924 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13925             Michael Matz  <matz@suse.de>
13926
13927         PR tree-optimization/64950
13928         * gimple-iterator.c (update_modified_stmts): Remove static.
13929         * gimple-iterator.h (update_modified_stmts): Declare.
13930         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
13931         (gimplify_va_arg_internal): New function.
13932         (gimplify_va_arg_expr): Use IFN_VA_ARG.
13933         * gimplify.h (gimplify_va_arg_internal): Declare.
13934         * internal-fn.c (expand_VA_ARG): New unreachable function.
13935         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
13936         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
13937         (expand_ifn_va_arg): New function.
13938         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
13939         (pass_stdarg::execute): Call expand_ifn_va_arg.
13940         (pass_data_lower_vaarg): New pass_data.
13941         (pass_lower_vaarg): New gimple_opt_pass.
13942         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
13943         (make_pass_lower_vaarg): New function.
13944         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
13945         properties_required field.
13946         * passes.def (all_passes): Add pass_lower_vaarg.
13947         * tree-pass.h (PROP_gimple_lva): Add define.
13948         (make_pass_lower_vaarg): Declare.
13949
13950 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13951
13952         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
13953         * calls.c (call_expr_flags): Same.
13954
13955 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13956
13957         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
13958         (pass_stdarg::execute): ... here.
13959
13960 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13961             Michael Matz  <matz@suse.de>
13962
13963         * tree-cfg.c (make_blocks_1): Factor out of ...
13964         (make_blocks): ... here.
13965         (make_edges_bb): Factor out of ...
13966         (make_edges): ... here.
13967         (gimple_find_sub_bbs): New function.
13968         * tree-cfg.h (gimple_find_sub_bbs): Declare.
13969
13970 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13971
13972         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
13973
13974 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
13975
13976         * asan.c (set_sanitized_sections): New function.
13977         (section_sanitized_p): Ditto.
13978         (asan_protect_global): Optionally sanitize user-defined
13979         sections.
13980         * asan.h (set_sanitized_sections): Declare new function.
13981         * common.opt (fsanitize-sections): New option.
13982         * doc/invoke.texi (-fsanitize-sections): Document new option.
13983         * opts-global.c (handle_common_deferred_options): Handle new
13984         option.
13985
13986 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13987
13988         PR debug/65771
13989         * dwarf2out.c (loc_list_from_tree): Return NULL
13990         for DEBUG_EXPR_DECL.
13991
13992 2015-04-17  Christian Bruel  <christian.bruel@st.com>
13993
13994         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
13995         same attributes.
13996
13997 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
13998
13999         * ira-color.c (setup_left_conflict_sizes_p): Do not process
14000         node itself when computing left conflict subnode size.
14001
14002 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14003
14004         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
14005         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
14006         *fop_<mode>_1_sse using enabled attribute.  Use
14007         register_mixssei387nonimm_operand operand 1 predicate. Change
14008         alternative 3 constraints from "x" to "v".
14009
14010 2015-04-16  Richard Biener  <rguenther@suse.de>
14011
14012         PR tree-optimization/65774
14013         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
14014         bit-value tracking on.
14015
14016 2015-04-16  Richard Biener  <rguenther@suse.de>
14017
14018         PR tree-optimization/64277
14019         * tree-vrp.c (check_array_ref): Fix anti-range handling,
14020         simplify upper bound handling.
14021         (search_for_addr_array): Simplify.
14022         (check_array_bounds): Handle ADDR_EXPRs here.
14023         (check_all_array_refs): Simplify.
14024
14025 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14026
14027         * config/i386/i386.c (print_reg): Rewrite function.
14028
14029 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14030
14031         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
14032         Invert the condition.
14033
14034 2015-04-16  Renlin Li  <renlin.li@arm.com>
14035
14036         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
14037         simplifications for UNSIGNED_FLOAT.
14038
14039 2015-04-16  Nick Clifton  <nickc@redhat.com>
14040
14041         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
14042         MUL_UNINIT.
14043         (enum rl78_cpu_type): New.
14044         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
14045         (umulhi3_shift_virt): Remove m constraint from operand 1.
14046         (umulqihi3_virt): Likewise.
14047         * config/rl78/rl78.c (rl78_option_override): Add code to process
14048         -mcpu and -mmul options.
14049         (rl78_alloc_physical_registers): Add code to handle divhi and
14050         divsi valloc attributes.
14051         (set_origin): Likewise.
14052         * config/rl78/rl78.h (RL78_MUL_G14): Define.
14053         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
14054         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
14055         __RL78_Gxx__.
14056         (ASM_SPEC): Pass -mcpu on to assembler.
14057         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
14058         (mulqi3_rl78): Likewise.
14059         (mulhi3_g13): Likewise.
14060         (mulhi3): Generate the G13 or G14 versions of the insn directly.
14061         (mulsi3): Likewise.
14062         (mulhi3_g14): Add clobbers of AX and BC.
14063         (mulsi3_g14): Likewise.
14064         (mulsi3_g13): Likewise.
14065         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
14066         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
14067         * config/rl78/rl78.opt (mmul): Initialise value to
14068         RL78_MUL_UNINIT.
14069         (mcpu): New option.
14070         (m13, m14, mrl78): New option aliases.
14071         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
14072         (MULTILIB_DIRNAMES): Add g13 and g14.
14073         * doc/invoke.texi: Document -mcpu and -mmul options.
14074
14075 2015-04-16  Richard Biener  <rguenther@suse.de>
14076
14077         * tree-ssa-ccp.c (likely_value): See if we have operands that
14078         are marked as never simulate again and return CONSTANT in this
14079         case.
14080         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
14081         not have any operands that will be simulated again as
14082         not being simulated again.
14083
14084 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
14085
14086         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
14087         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
14088         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
14089         attribute.
14090         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
14091         enabled attribute.
14092         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
14093         *float<SWI48:mode><MODEF:mode>2_sse.
14094         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
14095         enabled attribute.
14096         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
14097         enabled attribute.
14098
14099 2015-04-15  Tom de Vries  <tom@codesourcery.com>
14100
14101         PR other/65487
14102         * function.c (push_dummy_function): New function.
14103         (init_dummy_function_start): Use push_dummy_function.
14104         (pop_dummy_function): New function.  Factored out of ...
14105         (expand_dummy_function_end): ... here.
14106         * function.h (push_dummy_function, pop_dummy_function): Declare.
14107         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14108         pop_dummy_function.
14109         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14110
14111 2015-04-15  Jeff Law  <law@redhat.com>
14112
14113         PR tree-optimization/47679
14114         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14115         need for forward declaration in upcoming changes.
14116         (record_conditions, record_edge_info): Likewise.
14117
14118         PR rtl-optimization/42522
14119         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14120         SIGN_EXTRACT as a whole object rather than simplifying
14121         its operand.
14122
14123 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
14124
14125         PR ipa/65765
14126         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14127         and GIMPLE_PREDICT use break instead of return true. For
14128         GIMPLE_EH_DISPATCH, compare dispatch region.
14129
14130 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
14131
14132         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
14133         details about the implementation.  Make clear preference for
14134         __atomic builtins.  Reduce possibility of future change.
14135
14136 2015-04-15  Nick Clifton  <nickc@redhat.com>
14137
14138         * config/rx/rx.opt (mallow-string-insns): New option.
14139         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14140         builtin if string instructions are denied.
14141         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14142         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14143         appropriate.
14144         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14145         * config/rx/rx.md (movstr): Enable pattern only if string
14146         instructions are allowed.
14147         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14148         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14149         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14150         (MULTILIB_DIRNAMES): Add no-strings.
14151         * doc/invoke.texi: Document -mno-allow-string-insns.
14152
14153 2015-04-15  Alan Modra  <amodra@gmail.com>
14154
14155         PR target/65408
14156         PR target/58744
14157         PR middle-end/36043
14158         * calls.c (load_register_parameters): Don't load past end of
14159         mem unless suitably aligned.
14160
14161 2015-04-15  Nick Clifton  <nickc@redhat.com>
14162
14163         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14164         decrement instruction as being frame related.
14165         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14166         based addresses.
14167         If zero extending a function address enclose the operation in
14168         %code(...).
14169         (rl78_preferred_reload_class): New function.
14170         (TARGET_PREFERRED_RELOAD_CLASS): Define.
14171         * config/rl78/rl78.md: Remove useless constraints in expanders.
14172         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14173         (mulhi3_rl78): Likewise.
14174         (mulhi3_g13): Likewise.
14175         (mulsi3_rl78): Likewise.
14176         (es_addr): Move to before the multiply patterns.
14177
14178 2015-04-15  Alan Modra  <amodra@gmail.com>
14179
14180         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14181         and sequence_stack.  Add seq.
14182         (seq_stack): Delete.
14183         * function.c (prepare_function_start): Don't access x_last_insn.
14184         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14185         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14186         * emit_rtl.c (start_sequence, push_topmost_sequence,
14187         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14188         sequence accessors.
14189         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14190         remove_insn): Likewise.  Simplify.
14191         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14192         and pop_topmost_sequence.
14193         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14194         debug insns.
14195         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14196
14197 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14198
14199         PR target/65729
14200         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14201         the assertiion.
14202
14203 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14204
14205         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14206         (LEGACY_INT_REGNO_P): Ditto.
14207         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14208         (ANY_MASK_REG_P): Remove.
14209         (BND_REG_P): Rename from ANY_BND_REG_P.
14210         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14211         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14212         Merge 64byte and 32byte SSE handling.
14213
14214 2015-04-14  Nick Clifton  <nickc@redhat.com>
14215
14216         * expr.c (expand_assignment): Force an address offset computation
14217         into a register before changing its mode.
14218         (expand_expr_real_1): Likewise.
14219
14220 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14221
14222         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14223         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14224         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14225         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14226         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14227         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14228         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14229         and __aarch64_vget_lane_any.
14230
14231 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14232
14233         PR rtl-optimization/65761
14234         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14235         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14236
14237 2015-04-14  Richard Biener  <rguenther@suse.de>
14238
14239         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14240         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14241
14242 2015-04-14  Richard Biener  <rguenther@suse.de>
14243
14244         PR tree-optimization/65758
14245         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14246         against -1.
14247         (ccp_lattice_meet): Likewise.
14248         (bit_value_unop): Likewise.
14249         (bit_value_binop): Likewise.
14250         (bit_value_assume_aligned): Likewise.
14251
14252 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14253
14254         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14255         function.
14256
14257 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14258
14259         PR tree-optimization/63387
14260         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14261         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14262
14263 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14264
14265         * config/i386/predicates.md (any_QIreg_operand): Rename from
14266         q_regs_operand.  Do not process subregs.
14267         (QIreg_operand): Use QI_REGNO_P predicate.
14268         (ext_QIreg_operand): Ditto.
14269         (ext_register_operand): Ditto.
14270         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14271         (AND splitters): Ditto.
14272         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14273         (AND with -256 splitter): Use any_QIreg_operand predicate and
14274         SWI248 mode for operand 0.
14275         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14276         mode for operand 0.
14277         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14278
14279 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14280
14281         * doc/plugins.texi: Rewrite first introductory paragraph.
14282
14283 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14284
14285         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14286         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14287
14288 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14289
14290         * ipa-profie.c (ipa_profile): Check number of parameters
14291         and possible polymorphic call targets before
14292         devirtualizing.
14293
14294 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14295
14296         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14297         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14298
14299 2015-04-13  Richard Biener  <rguenther@suse.de>
14300
14301         PR tree-optimization/65204
14302         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14303         takens for bit-CCP.
14304
14305 2015-04-13  Richard Biener  <rguenther@suse.de>
14306
14307         PR target/65660
14308         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14309         and cond_not_taken_branch_cost to 4 and 2.
14310         (bdver2_cost): Likewise.
14311         (bdver3_cost): Likewise.
14312         (bdver4_cost): Likewise.
14313
14314 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14315
14316         * hash-table.h (hash_table constructor): Add mem stats.
14317         (alloc_entries): Likewise.
14318
14319 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14320
14321         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14322         * passes.c (execute_one_pass): Only add transform if pass has one.
14323
14324 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14325
14326         * config/i386/i386.c (ix86_option_override_internal): Don't set
14327         -fprefetch-loop-arrays if optimizing for size.
14328
14329 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14330             Gerald Pfeifer  <gerald@pfeifer.com>
14331
14332         * doc/contrib.texi (Contributors): Add Martin Jambor and
14333         Michael Matz.
14334
14335 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14336
14337         * BASE-VER: Set to 6.0.0.
14338
14339         PR tree-optimization/65747
14340         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14341         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14342
14343 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14344
14345         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14346         sentence.  Improve grammar.
14347
14348 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14349
14350         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14351
14352 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14353
14354         PR ipa/65743
14355         * ipa-inline-transform.c (speculation_removed): Remove static var.
14356         (check_speculations): New function.
14357         (clone_inlined_nodes): Do not check spculations.
14358         (inline_call): Call check_speculations.
14359         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14360         consider non-invariants.
14361
14362 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14363             Martin Liska  <mliska@suse.cz>
14364
14365         PR ipa/65722
14366         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14367         variable can not match.
14368         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14369         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14370
14371 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14372
14373         PR tree-optimization/65735
14374         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14375         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14376         same bb rather than just into the same phi node.
14377         (thread_through_normal_block): Adjust caller.
14378
14379 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14380
14381         * doc/contrib.texi (Contributors): Add Ira Rosen.
14382
14383 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14384
14385         * gcov.c (find_source): Fix miswording in error message.
14386         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14387         (ix86_expand_sse_comi_round): Fix typo in error message.
14388
14389 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14390
14391         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14392
14393 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14394
14395         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14396
14397 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14398
14399         PR target/65710
14400         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14401         Print bad_spills_num and insn_pseudos_num.
14402
14403 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14404
14405         PR target/65694
14406         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14407         when creating +1 values for SImode.
14408
14409 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14410
14411         PR target/65729
14412         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14413         assert.
14414
14415 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14416             Iain Sandoe  <iain@codesourcery.com>
14417
14418         PR target/65351
14419         * configure: Regenerate.
14420
14421 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14422
14423         PR target/65671
14424         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14425
14426 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14427
14428         * doc/contrib.texi (Contributors): Add John Marino.
14429
14430 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14431
14432         PR tree-optimization/65709
14433         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14434         TREE_TYPE (TREE_TYPE (t)).
14435
14436 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14437
14438         PR target/65710
14439         * lra-int.h (lra_bad_spill_regno_start): New.
14440         * lra.c (lra_bad_spill_regno_start): New.
14441         (lra): Set up lra_bad_spill_regno_start.  Set up
14442         lra_constraint_new_regno_start unconditionally.
14443         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14444         spill preferences.
14445
14446 2015-04-09  Marek Polacek  <polacek@redhat.com>
14447             Jakub Jelinek  <jakub@redhat.com>
14448
14449         PR middle-end/65554
14450         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14451         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14452         of STRIP_NOPS.
14453
14454 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14455
14456         PR rtl-optimization/65693
14457         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14458         #ifndef HAVE_cc0.
14459
14460 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14461
14462         PR target/65296
14463         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14464         device specs file if "device-specs%s" didn't resolve to a path.
14465
14466 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14467
14468         PR target/65676
14469         * config/i386/i386.c (fixup_modeless_constant): New.
14470         (ix86_expand_args_builtin): Fixup modeless constant operand.
14471         (ix86_expand_round_builtin): Ditto.
14472         (ix86_expand_special_args_builtin): Ditto.
14473         (ix86_expand_builtin): Ditto.
14474
14475 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14476
14477         PR target/65693
14478         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14479         any pow2 integer in between 2 and 0x80000000U inclusive.
14480
14481 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14482
14483         PR rtl-optimization/65693
14484         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14485         from an rtx_insn * to an rtx.
14486         (try_combine): Adjust both callers.  Use it once more.
14487
14488 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14489
14490         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14491         (chkp_make_static_const_bounds): Search existing
14492         symbol by assembler name.  Use make_decl_one_only.
14493         (chkp_get_zero_bounds_var): Remove node search which
14494         is now performed in chkp_make_static_const_bounds.
14495         (chkp_get_none_bounds_var): Likewise.
14496
14497 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14498
14499         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14500         to an example.
14501
14502 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14503
14504         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14505
14506 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14507
14508         * doc/extend.texi (__sync Builtins): Fix grammar.
14509
14510 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14511
14512         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14513
14514 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14515
14516         * varasm.c (emit_local): Move definition of align.
14517
14518 2015-04-08  Julian Brown  <julian@codesourcery.com>
14519
14520         * config/nvptx/mkoffload.c (process): Support variable mapping.
14521
14522 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14523
14524         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14525         alpha_links **.
14526         (alpha_write_one_linkage): Correct typo.
14527
14528 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14529
14530         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14531
14532 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14533
14534         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14535
14536 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14537
14538         * tree-chkp.h (chkp_insert_retbnd_call): New.
14539         * tree-chkp.c (chkp_insert_retbnd_call): New.
14540         * ipa-split.c (insert_bndret_call_after): Remove.
14541         (split_function): Use chkp_insert_retbnd_call.
14542         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14543         bounds for instrumented functions.
14544
14545 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14546
14547         PR ipa/65540
14548         * calls.c (initialize_argument_information): When producing tail
14549         call also turn SSA_NAMES passed by references to original PARM_DECLs
14550
14551 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14552
14553         PR target/65648
14554         * lra-remat.c (do_remat): Process input and non-input insn
14555         registers separately.
14556
14557 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14558
14559         PR debug/65678
14560         * valtrack.c (debug_lowpart_subreg): New function.
14561         (dead_debug_insert_temp): Use it.
14562
14563         PR middle-end/65680
14564         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14565         into signed HOST_WIDE_INT the same as negative bit_offset.
14566
14567 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14568
14569         * ipa-comdats.c (ipa_comdats): Visit all thunks
14570         to set proper comdat group.
14571
14572 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14573
14574         PR target/65489
14575         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14576         on constants for NEON VSTRUCT modes.
14577
14578 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14579             Iain Sandoe  <iain@codesourcery.com>
14580
14581         PR target/65351
14582         * configure: Regenerate.
14583
14584 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14585
14586         PR target/65614
14587         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14588         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14589         that LFD is used to load double constants instead of LFS.  Add
14590         defaults for all costs structures.  Add comments for missing
14591         initialization fields.
14592         (size32_cost): Likewise.
14593         (size64_cost): Likewise.
14594         (rs64a_cost): Likewise.
14595         (mpccore_cost): Likewise.
14596         (ppc403_cost): Likewise.
14597         (ppc405_cost): Likewise.
14598         (ppc440_cost): Likewise.
14599         (ppc476_cost): Likewise.
14600         (ppc601_cost): Likewise.
14601         (ppc603_cost): Likewise.
14602         (ppc604_cost): Likewise.
14603         (ppc604e_cost): Likewise.
14604         (ppc620_cost): Likewise.
14605         (ppc630_cost): Likewise.
14606         (ppccell_cost): Likewise.
14607         (ppc750_cost): Likewise.
14608         (ppc7450_cost): Likewise.
14609         (ppc8540_cost): Likewise.
14610         (ppce300c2c3_cost): Likewise.
14611         (ppce500mc_cost): Likewise.
14612         (ppce500mc64_cost): Likewise.
14613         (ppce5500_cost): Likewise.
14614         (ppce6500_cost): Likewise.
14615         (titan_cost): Likewise.
14616         (power4_cost): Likewise.
14617         (power6_cost): Likewise.
14618         (power7_cost): Likewise.
14619         (power8_cost): Likewise.
14620         (ppca2_cost): Likewise.
14621         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14622
14623         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14624         instead of XXLOR to copy SFmode to clear out dirty bits created
14625         when SFmode denormals are generated.
14626         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14627         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14628
14629 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14630
14631         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14632         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14633         * config/aarch64/aarch64-tune.md: Regenerate.
14634
14635 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14636
14637         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14638         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14639         * config/arm/arm-cores.def (exynos-m1): New core.
14640         * config/arm/arm-tune.md: Regenerate.
14641         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14642         * config/arm/bpabi.h: Likewise.
14643
14644 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14645
14646         * ipa-cp (set_single_call_flag): Remove too
14647         restrictive assert.
14648
14649 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14650
14651         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14652         GOMP_offload_unregister from the destructor.
14653
14654 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14655
14656         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14657         flags for instrumentation thunk.
14658         (chkp_produce_thunks): Likewise.
14659
14660 2015-04-05  Martin Liska  <mliska@suse.cz>
14661
14662         PR ipa/65665
14663         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14664         has computed data structure.
14665         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14666
14667 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14668
14669         * invoke.texi (inline-unit-growth): Increase growth to 20%
14670         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14671
14672 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14673
14674         PR target/65647
14675         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14676         value checking.
14677         (lra_rematerialization_iter): New.
14678         * lra.c (lra): Initialize lra_rematerialization_iter.
14679         Stop updating lra_constraint_new_regno_start after switching of
14680         inheritance and rematerialization.
14681         * lra-remat.c (lra_rematerialization_iter): New.
14682         (lra_remat): Add printing pass iteration.  Do rematerialization
14683         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14684
14685 2015-04-04  Richard Biener  <rguenther@suse.de>
14686
14687         PR tree-optimization/64909
14688         PR tree-optimization/65660
14689         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14690         to take a cost vector for scalar iteration cost.
14691         (vect_get_single_scalar_iteration_cost): Likewise.
14692         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14693         Compute the scalar iteration cost into a cost vector.
14694         (vect_get_known_peeling_cost): Use the scalar cost vector to
14695         account for the cost of the peeled iterations.
14696         (vect_estimate_min_profitable_iters): Likewise.
14697         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14698         Likewise.
14699
14700 2015-04-04  Alan Modra  <amodra@gmail.com>
14701
14702         PR target/65576
14703         PR target/65240
14704         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14705         0.0 constant unless TARGET_VSX.
14706         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14707         alternative.
14708
14709 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14710
14711         PR ipa/65654
14712         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14713         around the ICE
14714
14715 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14716
14717         PR ipa/65655
14718         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14719         speculative indirect edges to avoid ordering issue.
14720
14721 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14722
14723         PR ipa/65076
14724         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14725
14726 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14727
14728         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14729         TYPE_ARTIFICIAL on the .omp_data* types.
14730
14731 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14732
14733         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14734         instrumentation thunks.
14735
14736 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14737
14738         * config/i386/i386.c (ix86_expand_call): Avoid nested
14739         PARALLEL in returned call value.
14740
14741 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14742
14743         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14744         assembler name with original one.
14745
14746 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14747
14748         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14749
14750 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14751
14752         Revert parts of r216820.
14753         * config/i386/i386.md (movqi_internal): Correct type calculation
14754         for alternatives 3 and 5.
14755
14756 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
14757
14758         PR preprocessor/61977
14759         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
14760         predefine __vector/__bool/__pixel macros nor context sensitive
14761         macros for CLK_ASM.
14762         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
14763
14764 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
14765
14766         * config/pa/pa.c (pa_output_move_double): Directly handle register
14767         indexed memory operand.  Simplify handling of scaled register indexed
14768         memory operands.
14769
14770 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14771
14772         PR driver/65444
14773         * config/i386/linux-common.h (MPX_SPEC): New.
14774         (CHKP_SPEC): Add MPX_SPEC.
14775         * doc/invoke.texi (-fcheck-pointer-boudns): Document
14776         possible issues with '-z bndplt' support in linker.
14777
14778 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14779
14780         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
14781         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
14782         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
14783         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
14784         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
14785
14786 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
14787
14788         * config/i386/sync.md (UNSPEC_MOVA): Remove.
14789         (atomic_load<mode>): Change operand 0 predicate to
14790         nonimmediate_operand and fix up the destination when needed.
14791         Use UNSPEC_LDA.
14792         (atomic_loaddi_fpu): Use UNSPEC_LDA.
14793         (atomic_store<mode>): Change operand 1 predicate to
14794         nonimmendate_operand and move the source to register when needed.
14795         Use UNSPEC_STA.
14796         (atomic_store<mode>_1): Use UNSPEC_STA.
14797         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
14798         Fix moves from memory operand.  Use UNSPEC_STA.
14799
14800 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14801
14802         * expmed.c (strict_volatile_bitfield_p): Check that the access will
14803         not cross a MODESIZE boundary.
14804         (store_bit_field, extract_bit_field): Added assertions in the
14805         strict volatile bitfields code path.
14806
14807 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14808
14809         PR target/65624
14810         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
14811         Increase args array size by one to avoid buffer overflow.
14812
14813 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14814
14815         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14816         split_part.
14817         * ipa-inline.c (edge_badness): Add wrapper penalty.
14818         (sum_callers): Move up.
14819         (inline_small_functions): Set single_caller.
14820         * ipa-inline.h (inline_summary): Add single_caller.
14821         * ipa-split.c (split_function): Set split_part.
14822         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
14823         * cgraph.h (cgraph_node): Add split_part.
14824
14825 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
14826
14827         PR target/58945
14828         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14829         Do not split operands 0 and operands 2 to halfmode.
14830         (atomic_compare_and_swap<mode>): Update for
14831         atomic_compare_and_swap<dwi>_doubleword changes.
14832
14833 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14834
14835         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
14836         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
14837         no caching is done.
14838
14839 2015-03-31  Martin Liska  <mliska@suse.cz>
14840
14841         PR ipa/65557
14842         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
14843         has already filled up function summary.
14844         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14845
14846 2015-03-31  Richard Biener  <rguenther@suse.de>
14847
14848         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
14849         of types.
14850
14851 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14852
14853         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
14854         nested functions.
14855         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
14856         (s390_asm_output_function_label): Adapt to new signature of
14857         s390_function_num_hotpatch_hw
14858         Optimise the code generating assembler output.
14859         Add comments to assembler file.
14860
14861 2015-03-31  Richard Biener  <rguenther@suse.de>
14862
14863         PR middle-end/65626
14864         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
14865         of the noreturn call so it is last and cleanup_control_flow_bb
14866         can do the CFG part.
14867
14868 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
14869
14870         PR target/65531
14871         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
14872         same_comdat_group for external symbols.
14873         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
14874         infinite same_comdat_group traversal loop.
14875
14876 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
14877
14878         PR plugins/61176
14879         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
14880         automatically to $headers.
14881
14882 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
14883
14884         PR ipa/65610
14885         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
14886         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
14887         function.
14888         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
14889         Use it.
14890         * ipa-prop.c (param_type_may_change_p): Likewise.
14891         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
14892         (remove_unused_scope_block_p): Add in_ctor_dtor_block
14893         argument.  Before inlining, preserve
14894         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
14895         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
14896         recursive calls.
14897         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
14898
14899 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14900
14901         PR ipa/65076
14902         * ipa-inline.c (edge_badness): Base denominator on callee's
14903         grwoth squared.
14904
14905 2015-03-27  Martin Jambor  <mjambor@suse.cz>
14906
14907         PR ipa/65478
14908         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
14909         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
14910         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
14911         node_calling_single_call.
14912         * ipa-cp.c (count_callers): New function.
14913         (set_single_call_flag): Likewise.
14914         (initialize_node_lattices): Count callers and set single_flag_call if
14915         necessary.
14916         (incorporate_penalties): New function.
14917         (good_cloning_opportunity_p): Use it, dump new flags.
14918         (propagate_constants_topo): Set node_within_scc flag if appropriate.
14919         * doc/invoke.texi (ipa-cp-recursion-penalty,
14920         ipa-cp-single-call-pentalty): Document.
14921
14922 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14923
14924         PR ipa/65588
14925         * symtab.c (symtab_node::get_partitioning_class): Register vars
14926         are duplicated.
14927         * varpool.c (symbol_table::output_variables) Do not assemble unefined
14928         decls for non-symbols.
14929
14930 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14931
14932         PR target/65248
14933         * output.h (default_binds_local_p_2): New.
14934         * varasm.c (default_binds_local_p_2): Renamed to ...
14935         (default_binds_local_p_3): This.  Don't return true on protected
14936         data symbol if protected data may be external.
14937         (default_binds_local_p): Use default_binds_local_p_3.
14938         (default_binds_local_p_1): Likewise.
14939         (default_binds_local_p_2): New.
14940         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
14941         default_binds_local_p_2 if TARGET_MACHO is undefined.
14942
14943 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
14944
14945         PR target/65593
14946         * config/i386/i386.c (legitimize_pic_address): If base
14947         is SYMBOL_REF or LABEL_REF using %rip addressing, force
14948         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
14949
14950 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14951
14952         PR target/65531
14953         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
14954         comdat groups.
14955
14956 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14957
14958         PR ipa/65600
14959         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
14960         of optimized out indirect call.
14961         (redirect_to_unreachable): Always build symbol table node for
14962         BUILT_IN_UNREACHABLE
14963
14964 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
14965
14966         PR target/65407
14967         * ira-costs.c (record_reg_classes): Process all constraint string
14968         containing 0-9.
14969
14970 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
14971
14972         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
14973         memory_operand.
14974
14975         PR target/65052
14976         * config/c6x/constraints.md (S3): New constraint.
14977         * config/c6x/c6x.md (real_jump): Use it.
14978
14979 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14980
14981         PR middle-end/65595
14982         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
14983         do redirection if the call is not optimized out.
14984
14985 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
14986
14987         PR target/65495
14988         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
14989         (fchkp-check-incomplete-type): Add LTO.
14990         (fchkp-zero-input-bounds-for-main): Likewise.
14991         (fchkp-first-field-has-own-bounds): Likewise.
14992         (fchkp-narrow-bounds): Likewise.
14993         (fchkp-narrow-to-innermost-array): Likewise.
14994         (fchkp-use-static-bounds): Likewise.
14995         (fchkp-use-static-const-bounds): Likewise.
14996         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14997
14998 2015-03-27  Marek Polacek  <polacek@redhat.com>
14999
15000         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
15001
15002 2015-03-27  Marek Polacek  <polacek@redhat.com>
15003
15004         PR sanitizer/65583
15005         * ubsan.c (ubsan_create_edge): New function.
15006         (instrument_bool_enum_load): Call it.
15007         (instrument_nonnull_arg): Likewise.
15008         (instrument_nonnull_return): Likewise.
15009         (instrument_object_size): Likewise.
15010
15011 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15012
15013         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
15014         auto_vec.
15015
15016 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15017
15018         PR lto/65536
15019         * lto-streamer.h (class lto_location_cache): New.
15020         (struct data_in): Add location_cache.
15021         (lto_input_location): Update prototype.
15022         (stream_input_location_now): New.
15023         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
15024         pointer to location.
15025         (stream_input_location): Update.
15026         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
15027         (warn_odr): Apply location cache before warning.
15028         (lto_input_location): Update prototype.
15029         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
15030         Use stream_input_location_now.
15031         * lto-streamer-in.c (lto_location_cache::current_cache): New static
15032         variable.
15033         (lto_location_cache::cmp_loc): New function.
15034         (lto_location_cache::apply_location_cache): New function.
15035         (lto_location_cache::accept_location_cache): New function.
15036         (lto_location_cache::revert_location_cache): New function.
15037         (lto_location_cache::input_location): New function.
15038         (lto_input_location): Do location caching.
15039         (stream_input_location_now): New function.
15040         (input_eh_region, input_struct_function_base): Use
15041         stream_input_location_now.
15042         (lto_data_in_create): use new.
15043         (lto_data_in_delete): Use delete.
15044         * tree-streamer-in.c (unpack_ts_block_value_fields,
15045         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
15046         lto_input_ts_exp_tree_pointers): Update for cached location api.
15047
15048 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15049
15050         PR ipa/65076
15051         * passes.def: Add pass_nothrow.
15052         * ipa-pure-const.c: (pass_data_nothrow): New.
15053         (pass_nothrow): New.
15054         (pass_nothrow::execute): New.
15055         (make_pass_nothrow): New.
15056         * tree-pass.h (make_pass_nothrow): Declare.
15057
15058 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15059
15060         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
15061         edge to change by speculation resolution or redirection.
15062         (edge_set_predicate): Likewise.
15063         (inline_summary_t::duplicate): Likewise.
15064         (remap_edge_summaries): Likewise.
15065
15066 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15067
15068         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
15069         New macros.
15070         (can_inline_edge_p): Relax option matching for always inline functions.
15071
15072 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
15073
15074         PR target/65561
15075         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
15076         Check operand 4 and operand 0 for equality.
15077         (avx512f_vextract<shuffletype>32x4_1_maskm):
15078         Check operand 6 and operand 0 for equality.
15079         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
15080         for equality.
15081         (vec_extract_hi_<mode>_maskm): Ditto.
15082
15083 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15084
15085         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
15086         dead calls back to live.
15087         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
15088         cross check to ...
15089         (cgraph_node::verify_node): ... here; verify only callee edges,
15090         not caller.
15091         * cif-code.def (CILK_SPAWN): New code.
15092
15093 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15094
15095         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
15096         (edge_set_predicate): Use it to mark unreachable edges.
15097         (inline_summary_t::duplicate): Remove unnecesary code.
15098         (remap_edge_summaries): Likewise.
15099         (dump_inline_summary): Report contains_cilk_spawn.
15100         (compute_inline_parameters): Compute contains_cilk_spawn.
15101         (inline_read_section, inline_write_summary): Stream
15102         contains_cilk_spawn.
15103         * ipa-inline.c (can_inline_edge_p): Do not touch
15104         DECL_STRUCT_FUNCTION that may not be available;
15105         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15106         remove check for callee_fun->can_throw_non_call_exceptions and
15107         replace it by optimization attribute check; check for flag_exceptions.
15108         * ipa-inline-transform.c (inline_call): Maintain
15109         DECL_FUNCTION_PERSONALITY
15110         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15111
15112 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15113
15114         PR tree-optimization/65551
15115         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15116         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15117
15118 2015-03-26  Richard Biener  <rguenther@suse.de>
15119
15120         PR middle-end/65555
15121         * tree-cfg.c (verify_gimple_call): Do not require a call to
15122         have no LHS if it wasn't recognized as control altering yet.
15123
15124 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15125
15126         PR tree-optimization/64715
15127         * passes.def: Add another instance of pass_object_sizes before ccp1.
15128         * tree-object-size.c (pass_object_sizes::execute): In
15129         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15130         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15131         __bos result and the computed constant.  Remove redundant
15132         checks, obsoleted by gimple_call_builtin_p test.
15133
15134         * var-tracking.c (variable_tracking_main_1): Don't track
15135         variables for targetm.no_register_allocation targets.
15136
15137 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
15138
15139         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15140         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15141
15142 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15143
15144         PR target/65569
15145         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15146         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
15147         0.0 is correctly setup.
15148         (extenddftf2_internal): Likewise.
15149
15150 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
15151
15152         PR tree-optimization/65177
15153         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15154         (bb_in_bbs): New.
15155         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
15156         edges not adjacent on the path to the original code.
15157
15158 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
15159
15160         PR bootstrap/65537
15161         * doc/install.texi (Building a native compiler): Document new
15162         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
15163         configuration assumes that the host supports the linker plugin.
15164
15165 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15166
15167         PR target/65508
15168         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15169         chain for generated call.
15170
15171 2015-03-25  Richard Biener  <rguenther@suse.de>
15172
15173         * passes.c (pass_manager::execute_early_local_passes): Guard
15174         execution of pass_chkp_instrumentation_passes with
15175         flag_check_pointer_bounds.
15176         (pass_chkp_instrumentation_passes::gate): Likewise.
15177
15178 2015-03-25  Martin Liska  <mliska@suse.cz>
15179
15180         PR tree-optimization/65538
15181         * symbol-summary.h (function_summary::~function_summary):
15182         Relese memory for allocated summaries.
15183         (function_summary::release): New function.
15184
15185 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15186
15187         PR lto/65515
15188         * lto-streamer-out.c (DFS::worklist): New struct.
15189         (DFS::worklist_vec): New data member.
15190         (DFS::next_dfs_num): Remove.
15191         (DFS::DFS): Rewritten using worklist instead of recursion,
15192         using most of code from DFS::DFS_write_tree.
15193         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15194         pass it to DFS_write_tree calls.
15195         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15196         quick initial checks push it into worklist_vec and return.
15197
15198 2015-03-25  Richard Biener  <rguenther@suse.de>
15199
15200         PR middle-end/65519
15201         * genmatch.c (expr::gen_transform): Re-write to avoid
15202         using gimple_build.
15203
15204 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15205
15206         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15207
15208 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15209
15210         * config/arm/arm.opt (print_tune_info): New option.
15211         * config/arm/arm.c (arm_print_tune_info): New function.
15212         (arm_file_start): Call arm_print_tune_info.
15213         * config/arm/arm-protos.h (struct tune_params): Add comment.
15214         * doc/invoke.texi (@item -mprint-tune-info): New item.
15215         (-mtune): mention it in ARM Option Summary.
15216
15217 2015-03-25  DJ Delorie  <dj@redhat.com>
15218
15219         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15220         correct clause.
15221
15222 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15223             Martin Liska  <mliska@suse.cz>
15224
15225         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15226         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15227         (sem_item::add_type): New function.
15228         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15229         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15230         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15231         (sem_function::equals_wpa): Fix typo.
15232         * ipa-icf.h (sem_item::add_type): New function.
15233         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15234         order.
15235
15236 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15237
15238         PR tree-optimization/65533
15239         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15240         with swapped operands, call vect_free_slp_tree on
15241         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15242         vector.
15243
15244 2015-03-24  Richard Biener  <rguenther@suse.de>
15245
15246         PR middle-end/65517
15247         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15248         for fixup if necessary.
15249
15250 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15251
15252         * doc/extend.texi (Function Attributes): Add @cindex entries
15253         for all attributes and regularize their format.  Delete text
15254         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15255         information about "eightbit_data", "tiny_data", and "model"
15256         variable attributes to the Variable Attributes section.  Fix
15257         some obvious typos and copy-editing issues.
15258         (Variable Attributes, Type Attributes): Likewise add/fix
15259         @cindex entries for all attributes.
15260
15261 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15262
15263         PR target/65523
15264         * tree-chkp.c (chkp_build_returned_bound): Ignore
15265         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15266
15267 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15268
15269         PR target/65505
15270         * config/sh/predicates.md (simple_mem_operand,
15271         displacement_mem_operand): Add test for reg.
15272         (short_displacement_mem_operand): Test for displacement_mem_operand
15273         before invoking sh_disp_addr_displacement.
15274         * config/sh/constraints.md (Sdd, Sra): Simplify.
15275         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15276         Remove redundant displacement_mem_operand tests.
15277
15278 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15279
15280         PR target/65296
15281         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15282         the same -mmcu=MCU more than once.
15283
15284 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15285
15286         PR bootstrap/65522
15287         * ipa-devirt.c: Remove duplicate demangle.h include.
15288
15289         PR target/65504
15290         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15291         on the pseudo.
15292         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15293         REG_POINTER on *destptr after adjusting it for prologue size.
15294
15295         PR ipa/65521
15296         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15297         ultimate_alias_target ()->order ints instead of
15298         ultimate_alias_target () pointers.
15299
15300 2015-03-23  Richard Biener  <rguenther@suse.de>
15301
15302         PR tree-optimization/65518
15303         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15304         interleaving cases we generate absymal code for.
15305
15306 2015-03-23  Richard Biener  <rguenther@suse.de>
15307
15308         PR tree-optimization/65494
15309         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15310         matches here.
15311         (vect_analyze_slp_instance): But do that here, always and once.
15312
15313 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15314
15315         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15316         adding T or multiplying by T+1 and subracting T.
15317
15318 2015-03-22  Jeff Law  <law@redhat.com>
15319
15320         PR rtl-optimization/64317
15321         * Makefile.in (OBJS): Add gcse-common.c
15322         * gcse.c: Include gcse-common.h
15323         (struct modify_pair_s): Move structure definition to gcse-common.h
15324         (compute_transp): Move function to gcse-common.c.
15325         (canon_list_insert): Similarly.
15326         (record_last_mem_set_info): Break out some code and put it into
15327         gcse-common.c.  Call into the new common code.
15328         (compute_local_properties): Pass additional arguments to compute_transp.
15329         * postreload-gcse.c: Include gcse-common.h and df.h
15330         (modify_mem_list_set, blocks_with_calls): New variables.
15331         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15332         (get_bb_avail_insn): Pass in the expression index too.
15333         (alloc_mem): Allocate memory for the new bitmaps and lists.
15334         (free_mem): Free memory for the new bitmaps and lists.
15335         (insert_expr_in_table): Record a bitmap index for each entry we
15336         add to the table.
15337         (record_last_mem_set_info): Call into common code in gcse-common.c.
15338         (get_bb_avail_insn): If no available insn was found in the requested
15339         BB.  If BB has a single predecessor, see if the expression is
15340         transparent in BB and available in that single predecessor.
15341         (compute_expr_transp): New wrapper for compute_transp.
15342         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15343         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15344         (gcse_after_reload_main): If there are elements in the hash table,
15345         then compute transparency for all the elements in the hash table.
15346         * gcse-common.h: New file.
15347         * gcse-common.c: New file.
15348
15349 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15350
15351         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15352         as an adjective.
15353         (System Headers): Likewise.
15354         (Ifdef): Likewise.
15355         (Traditional macros): Likewise.
15356         (Invocation): Likewise.
15357         (Option Index): Likewise.
15358         * doc/cppopts.texi (-M): Likewise.
15359         (-finput-charset): Likewise.
15360         (--help): Likewise.
15361         * doc.invoke.texi (AVR Options): Likewise.
15362         (V850 Options): Likewise.
15363
15364 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15365
15366         PR ipa/65475
15367         * ipa-devirt.c: Include demangle.h
15368         (odr_type_d): Add field rtti_broken.
15369         (odr_subtypes_equivalent_p): Do not require name to match.
15370         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15371         bypass the tests; be ready for function referneces in vtables that are
15372         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15373         (warn_odr): Give up for nameless types.
15374         (warn_types_mismatch): Report mismatch in mangled names;
15375         report mismatch in anonymous namespaces; look into component types to
15376         give useful error; report when mismatch is dragged in from other ODR
15377         type.
15378         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15379         duplicated diagnostics.
15380         (add_type_duplicate): Reorder checks so more informative ones come
15381         first; fix typo; do not output "the extra base is defined here" when
15382         we did not warn.
15383         (BINFO_N_BASE_BINFOS): Relax sanity check.
15384
15385 2015-03-22  Martin Liska  <mliska@suse.cz>
15386             Jakub Jelinek  <jakub@redhat.com>
15387
15388         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15389         masks that can potentially include a builtin.
15390         (ix86_add_new_builtins): Introduce fast filter for isa values
15391         that cannot trigger builtin inclusion.
15392
15393 2015-03-22  Martin Liska  <mliska@suse.cz>
15394
15395         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15396         (sem_item::update_hash_by_local_refs): Likewise.
15397         (sem_variable::get_hash): Empty line is fixed.
15398         (sem_item_optimizer::execute): Include adding of hash references.
15399         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15400         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15401         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15402         (sem_item::update_hash_by_local_refs): Likewise.
15403
15404 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15405
15406         PR ipa/65502
15407         * ipa-comdats.c (enqueue_references): Walk through thunks.
15408         (ipa_comdats): Likewise.
15409         (set_comdat_group_1): New function.
15410
15411 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15412
15413         PR ipa/65475
15414         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15415         non-polymorphic
15416
15417 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15418             Gerald Pfeifer  <gerald@pfeifer.com>
15419
15420         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15421
15422 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15423             Sandra Loosemore  <sandra@codesourcery.com>
15424
15425         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15426         function parameter declaration.
15427         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15428         Update arguments to nios2_adjust_call_address().
15429         (sibcall_internal): Rename from *sibcall.
15430         (sibcall_value_internal): Rename from *sibcall_value.
15431         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15432         (nios2_large_got_address): Add target temp reg parameter.
15433         (nios2_got_address): Adjust call to nios2_large_got_address, add
15434         force_reg around it.
15435         (nios2_load_pic_address): Add target temp reg parameter, replace call
15436         to nios2_got_address with corresponding code.
15437         (nios2_legitimize_constant_address): Update call to
15438         nios2_load_pic_address.
15439         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15440         to use temp reg for PIC loading purposes.
15441         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15442         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15443         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15444
15445 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15446
15447         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15448         usage of "the @option{...}".
15449         (-Wopenmp-simd): Likewise.
15450         (-fsanitize-recover): Likewise.
15451         (-fsanitize-undefined-trap-on-error): Likewise.
15452         (-flto): Likewise.
15453         (tracer-dynamic-coverage-feedback): Likewise.
15454         (reorder-block-duplicate-feedback): Likewise.
15455         (loop-unroll-jam-size): Likewise.
15456         (-B): Likewise.
15457         (-I-): Likewise.
15458         (-mabs=legacy): Likewise.
15459         (-mupper-regs-df): Likewise.
15460         (-mupper-regs-sf): Likewise.
15461         (-mpointers-to-nested-functions): Likewise.
15462
15463 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15464
15465         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15466
15467 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15468
15469         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15470         additional index entries and cross-references.
15471         (-fchkp-check-incomplete-type): Likewise.
15472         (-fchkp-first-field-has-own-bounds): Likewise.
15473         (-fchkp-narrow-to-innermost-array): Likewise.
15474         (-fchkp-use-fast-string-functions): Likewise.
15475         (-fchkp-use-nochk-string-functions): Likewise.
15476         (-fchkp-use-static-const-bounds): Likewise.
15477         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15478         (-fchkp-instrument-marked-only): Likewise.
15479         (-fchkp-use-wrappers): Likewise.
15480         (-static-libmpx): Likewise.
15481         (-static-libmpxwrappers): Likewise.
15482         * doc/extend.texi (bnd_legacy): Likewise.
15483         (bnd_instrument): Likewise.
15484         (bnd_variable_size): Likewise.
15485         (Pointer Bounds Checker builtins): Likewise.
15486
15487 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15488
15489         PR tree-optimization/65458
15490         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15491         * cgraph.h (cgraph_node): Add parallelized_function field.
15492         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15493         (input_overwrite_node): Read parallelized_function field.
15494         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15495         parallelized_function on cgraph_node for child_fn.
15496         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15497         Remove include of gt-tree-parloops.h.
15498         (parallelized_functions): Remove static variable.
15499         (parallelized_function_p): Rewrite using parallelized_function field of
15500         cgraph_node.
15501         (create_loop_fn): Remove adding to parallelized_functions.
15502         * Makefile.in (GTFILES): Remove tree-parloops.c
15503
15504 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15505
15506         PR rtl-optimization/64366
15507         * lra.c (lra_update_insn_regno_info): Consider regs in
15508         CALL_INSN_FUNCTION_USAGE memory.
15509
15510 2015-03-20  Richard Biener  <rguenther@suse.de>
15511
15512         PR middle-end/64715
15513         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15514         for type comparison and gcc_checking_assert.
15515         (chrec_fold_plus_poly_poly): Likewise.
15516         (chrec_fold_multiply_poly_poly): Likewise.
15517         (chrec_convert_1): Likewise.
15518         * gimplify.c (gimplify_expr): Remove premature folding of
15519         &X + CST to &MEM[&X, CST].
15520
15521 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15522
15523         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15524         already is final.
15525         (ipa_inline): Recompute inline_failed codes.
15526         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15527         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15528         CIF_FINAL_ERROR.
15529
15530 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15531
15532         PR rtl-optimization/60851
15533         * recog.c (constrain_operands): Accept a pseudo register before reload
15534         for LRA enabled targets.
15535
15536 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15537
15538         PR target/65240
15539         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15540         -ffast-math handling that kept non-0 constants live in the RTL
15541         until reload.  Remove logic testing the number of instructions it
15542         took to create a constant in a GPR that was never used, due to a
15543         test for soft-float earlier.
15544         (memory_fp_constant): Delete, no longer used.
15545
15546         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15547         alternatives for loading non-0 constants into GPRs for hard
15548         floating point that is no longer needed due to changes in
15549         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15550         (mov<mode>_hardfloat32): Likewise.
15551         (mov<mode>_hardfloat64): Likewise.
15552         (mov<mode>_64bit_dm): Likewise.
15553         (movtd_64bit_nodm): Likewise.
15554         (pre-reload move FP constant define_split): Delete define_split,
15555         since it is no longer used.
15556         (extenddftf2_internal): Remove GHF constraints that are not valid
15557         for extenddftf2.
15558
15559 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15560
15561         PR rtl-optimization/63491
15562         * lra-constraints.c (check_and_process_move): Use src instead of
15563         sreg.  Remove some dead code.
15564
15565 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15566
15567         PR ipa/65380
15568         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15569         (sem_variable::merge): Likewise.
15570
15571 2015-03-19  Martin Liska  <mliska@suse.cz>
15572
15573         PR ipa/65465
15574         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15575         all fields of cgraph_thunk_info.
15576
15577 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15578
15579         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15580         clone instrumented thunks.
15581
15582 2015-03-19  Richard Biener  <rguenther@suse.de>
15583
15584         Revert
15585         2015-03-10  Richard Biener  <rguenther@suse.de>
15586
15587         PR middle-end/63155
15588         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15589         * tree-ssa-coalesce.c: Include timevar.h.
15590         (attempt_coalesce): Handle graph being NULL.
15591         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15592         Split out abnormal coalescing to ...
15593         (perform_abnormal_coalescing): ... this function.
15594         (coalesce_ssa_name): Perform abnormal coalescing without computing
15595         live/conflict.
15596         (verify_ssa_coalescing_worker): New function.
15597         (verify_ssa_coalescing): Likewise.
15598
15599 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15600             Jakub Jelinek  <jakub@redhat.com>
15601
15602         PR sanitizer/65400
15603         * tsan.c (instrument_gimple): Clear tail call flag on
15604         calls.
15605
15606 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15607
15608         PR sanitizer/65400
15609         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15610         call in the return bb.
15611         (find_split_points): Add RETURN_BB argument, don't call
15612         find_return_bb.
15613         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15614         if true append TSAN_FUNC_EXIT internal call after the call to
15615         the split off function.
15616         (execute_split_functions): Call find_return_bb here.
15617         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15618         Adjust find_split_points and split_function calls.
15619
15620 2015-03-18  DJ Delorie  <dj@redhat.com>
15621
15622         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15623         (iorqi3_virt): Likewise.
15624
15625 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15626
15627         * tree-parloops.c (parallelize_loops): Make static.
15628         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15629
15630 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15631
15632         PR middle-end/64491
15633         Revert:
15634         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15635
15636         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15637         condition would be removed due to undefined behaviour.
15638
15639 2015-03-18  Martin Liska  <mliska@suse.cz>
15640
15641         PR ipa/65432
15642         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15643         xstrdup_for_dump wrapper.
15644         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15645         sem_item::name.
15646         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15647         with xstrdup_for_dump.
15648         (sem_variable::equals): Likewise.
15649         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15650         sem_item::name.
15651         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15652         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15653         symtab_node::asm_name with xstrdup_for_dump.
15654         (congruence_class::dump): Use symtab_node::name instead of
15655         sem_item::name.
15656         * ipa-icf.h (symtab_node::name): Remove.
15657         (symtab_node::asm_name): Likewise.
15658
15659 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15660
15661         PR tree-optimization/65450
15662         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15663         function.
15664         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15665         it instead of duplicate_ssa_name_ptr_info.
15666
15667         PR target/65222
15668         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15669
15670 2015-03-18  Richard Biener  <rguenther@suse.de>
15671
15672         * tree-data-ref.h (struct access_matrix): Remove.
15673         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15674         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15675         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15676         (am_vector_index_for_loop): Likewise.
15677         (struct data_reference): Remove access_matrix member.
15678         (DR_ACCESS_MATRIX): Remove.
15679         (lambda_vector_new): Add comment.
15680         (lambda_matrix_new): Use XOBNEWVEC.
15681
15682 2015-03-18  Richard Biener  <rguenther@suse.de>
15683
15684         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15685         (pass_ch::execute): Cleanup the CFG only if we did sth.
15686         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15687
15688 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15689
15690         * expmed.c (synth_mult): Use std::swap instead of manually
15691         swapping algorithms.
15692
15693 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15694
15695         PR target/65078
15696         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15697
15698 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15699
15700         PR target/65296
15701         * config/avr/avr.opt (-nodevicelib): New option.
15702         * doc/invoke.texi (AVR Options): Document it.
15703         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15704         libgcc.a, libc.a, libm.a.
15705         * config/avr/specs.h: Same.
15706         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15707         which don't (directly) depend on the device.  Print more help.
15708         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15709         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15710         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15711         case of an error.
15712         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15713         for specs file name.
15714         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15715         * config/avr/avr-mcus.def: Adjust initializers and comments.
15716
15717 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15718
15719         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15720         DECL_ONE_ONLY to check if decl is one only.
15721         * ipa-split.c (consider_split): Limit splitt of one only functions.
15722
15723 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15724
15725         PR tree-optimization/65427
15726         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15727         functions.
15728         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15729
15730 2015-03-16  Marek Polacek  <polacek@redhat.com>
15731
15732         * cgraph.h (add_new_static_var): Remove declaration.
15733         * varpool.c (add_new_static_var): Remove function.
15734
15735 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15736
15737         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15738         instead of vec<tree> * with vec_alloc and release for args.
15739         Adjust all users.
15740
15741         PR middle-end/65431
15742         * omp-low.c (delete_omp_context): Only splay_tree_delete
15743         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15744         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15745
15746 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15747
15748         PR sanitizer/64820
15749         * cfgexpand.c (align_base): New function.
15750         (alloc_stack_frame_space): Call it.
15751         (expand_stack_vars): Align prev_frame to be sure
15752         data->asan_vec elements aligned properly.
15753
15754 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
15755
15756         PR middle-end/65409
15757         * expr.c (store_field): Do not do a direct block copy if the source is
15758         a PARALLEL with BLKmode.
15759
15760 2015-03-16  Tom de Vries  <tom@codesourcery.com>
15761
15762         PR middle-end/65414
15763         Revert:
15764         2015-03-12  Tom de Vries  <tom@codesourcery.com>
15765
15766         PR rtl-optimization/64895
15767         * lra-lives.c (check_pseudos_live_through_calls): Use
15768         actual_call_used_reg_set instead of call_used_reg_set, if available.
15769
15770 2015-03-16  Alan Modra  <amodra@gmail.com>
15771
15772         PR target/63150
15773         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
15774         Modify Z->r bswapdi splitter to use dest in place of scratch.
15775         In r->Z and Z->r bswapdi splitter rename word_high, word_low
15776         to word1, word2 and rearrange logic to suit.
15777         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
15778         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
15779         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
15780         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
15781         early clobber.
15782
15783 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
15784
15785         PR tree-optimization/65369
15786         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
15787         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
15788         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
15789
15790         PR tree-optimization/65418
15791         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
15792         are casts in the first PLUS_EXPR operand, ensure tbias and
15793         *totallowp are in the inner type.
15794
15795         PR rtl-optimization/65401
15796         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
15797         argument.  If true, adjust_address_nv of x with big-endian
15798         correction for the mode widening to GET_MODE (y).
15799         (make_field_assignment): Don't do MEM mode widening here.
15800         Use MEM_P instead of GET_CODE == MEM.
15801
15802 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
15803
15804         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
15805         the external decls.
15806
15807 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15808
15809         PR target/64600
15810         * config/arm/arm.c (arm_gen_constant, AND case): Use
15811         ARM_SIGN_EXTEND when constructing AND mask.
15812
15813 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15814
15815         * graph.c (print_graph_cfg): Make function names visible and append
15816         parenthesis to it.  Also make groups of basic blocks belonging to the
15817         same function visible.
15818
15819 2015-03-12  Richard Biener  <rguenther@suse.de>
15820
15821         PR middle-end/44563
15822         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
15823         to avoid quadratic behavior with inline expansion splitting blocks.
15824         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
15825         with the successor if the predecessor will be merged with it.
15826         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
15827         entry block with its successor.
15828
15829 2015-03-13  Richard Biener  <rguenther@suse.de>
15830
15831         PR middle-end/44563
15832         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
15833         (cleanup_tree_cfg_1): Do not call it.
15834         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
15835         (fixup_noreturn_call): Mark the stmt as control altering.
15836         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
15837         here.
15838         (pass_data_fixup_cfg): Produce a dump file.
15839         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
15840         (need_noreturn_fixup): New global.
15841         (pass_dominator::execute): Fixup queued noreturn calls.
15842         (optimize_stmt): Queue calls that became noreturn for fixup.
15843         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
15844         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
15845         (el_to_fixup): New global.
15846         (eliminate_dom_walker::before_dom_childre): Queue calls that
15847         became noreturn for fixup.
15848         (eliminate): Fixup queued noreturn calls.
15849         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
15850         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
15851         (substitute_and_fold_dom_walker::before_dom_children): Queue
15852         alls that became noreturn for fixup.
15853         (substitute_and_fold): Fixup queued noreturn calls.
15854
15855 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
15856
15857         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
15858         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
15859         are building; for methods check ODR type of class they belong to if
15860         they may lead to a polymorphic call.
15861         (sem_function::compare_polymorphic_p): Be bit smarter about testing
15862         when function may lead to a polymorphic call.
15863         (sem_function::compare_type_list): Remove.
15864         (sem_variable::equals): Update use of compatible_types_p.
15865         (sem_variable::parse_tree_refs): Remove.
15866         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
15867         cdtor.
15868         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
15869         matching here.
15870         (func_checker::compatible_polymorphic_types_p): Break out from ...
15871         (unc_checker::compatible_types_p): ... here.
15872         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
15873         Declare.
15874         (unc_checker::compatible_types_p): Update.
15875         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
15876         Remove.
15877
15878 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15879
15880         PR rtl-optimization/65235
15881         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
15882         When first element of vec_concat is const_int, calculate its size
15883         using second element.
15884
15885 2015-03-12  Richard Biener  <rguenther@suse.de>
15886
15887         PR middle-end/65270
15888         * fold-const.c (operand_equal_p): Fix ordering of resetting
15889         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
15890
15891 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15892
15893         * config/s390/s390.c (s390_reorg): Move code to output nops after label
15894         to s390_reorg ().
15895         (s390_asm_output_function_label): Likewise.
15896         * config/s390/s390.c (s390_asm_output_function_label):
15897         Fix function label alignment with -mhtopatch.
15898         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
15899         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
15900         ("nop_2_byte"): New define_insn.
15901         ("nop_4_byte"): Likewise.
15902         ("nop_6_byte"): Likewise.
15903         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
15904         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
15905
15906 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15907
15908         PR target/65103
15909         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
15910         register.
15911
15912 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15913
15914         PR target/65044
15915         * toplev.c (process_options): Restrict Pointer Bounds Checker
15916         usage with Address Sanitizer.
15917
15918 2015-03-12  Richard Biener  <rguenther@suse.de>
15919
15920         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
15921         to split on.
15922         * omp-low.c (expand_omp_taskreg): Split block before removing
15923         the stmt.
15924         (expand_omp_target): Likewise.
15925         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
15926         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
15927         stmt to split_block.
15928
15929 2015-03-12  Tom de Vries  <tom@codesourcery.com>
15930
15931         PR rtl-optimization/64895
15932         * lra-lives.c (check_pseudos_live_through_calls): Use
15933         actual_call_used_reg_set instead of call_used_reg_set, if available.
15934
15935 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15936
15937         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
15938         (cgraph_node::remove): Likewise.
15939         (cgraph_node::get_untransformed_body): Likewise.
15940         * varpool.c (varpool_node::remove): Likewise.
15941         (varpool_node::get_constructor): Add sanity check.
15942
15943 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15944
15945         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
15946         old GCC versions.
15947         (-fabi-compat-version): Likewise.
15948         (-ffriend-injection): Likewise.
15949         (-Wdeclaration-after-statement): Likewise.
15950         (-fomit-frame-pointer): Likewise.
15951         (-ftree-coalesce-inlined-vars): Likewise.
15952         (-fvisibility=): Likewise.
15953         * doc/extend.texi (Typeof): Likewise.
15954         (Zero Length): Likewise.
15955         (Escaped Newlines): Likewise.
15956         (Compound Literals): Likewise.
15957         (Function Attributes): Likewise.
15958         (Label Attributes): Likewise.
15959         (Type Attributes): Likewise.
15960         (Function Names): Likewise.
15961         (Other Builtins): Likewise.
15962         (Function Specific Option Pragmas): Likewise.
15963         (C++ Interface): Likewise.
15964
15965 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
15966
15967         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
15968
15969 2015-03-11  Marek Polacek  <polacek@redhat.com>
15970
15971         PR tree-optimization/65388
15972         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
15973
15974 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15975
15976         PR target/65296
15977         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
15978         * configure: Regenerate.
15979         * config.in: Regenerate.
15980         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
15981         [-mn-flash]: Document it.
15982         [__AVR_ARCH__]: Document avrtiny.
15983
15984         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
15985         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
15986         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
15987
15988 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15989
15990         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
15991
15992 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15993
15994         PR target/65242
15995         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
15996         allow reloads of PLUS in floating point/VSX registers.
15997
15998 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
15999
16000         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
16001         crypto_sha256_fast.
16002         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
16003
16004 2015-03-11  Richard Biener  <rguenther@suse.de>
16005
16006         PR tree-optimization/65310
16007         * tree-sra.c (build_ref_for_offset): Also preserve larger
16008         alignment.
16009
16010 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
16011
16012         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
16013
16014 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16015
16016         PR target/65368
16017         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
16018         new define_expand.
16019         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
16020
16021 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16022
16023         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
16024         (sem_function::equals_wpa): ... here.
16025
16026 2015-03-10  Marek Polacek  <polacek@redhat.com>
16027             Jakub Jelinek  <jakub@redhat.com>
16028
16029         PR sanitizer/65367
16030         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
16031         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
16032         separately.
16033
16034 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16035
16036         PR target/65286
16037         * config/rs6000/t-linux: For powerpc64* target set
16038         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
16039
16040 2015-03-10  Richard Biener  <rguenther@suse.de>
16041
16042         PR middle-end/44563
16043         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
16044         for redirect_all_calls.
16045
16046 2015-03-10  Marek Polacek  <polacek@redhat.com>
16047
16048         * gdbinit.in (pcfun): Define and document.
16049
16050 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
16051
16052         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
16053         of libgomp-plugin.h.
16054         (find_target_compiler): Support a case when the path to gcc is
16055         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
16056         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
16057         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
16058         libgomp-plugin.h.
16059         (main): Use GCC_INSTALL_NAME as target_driver_name.
16060         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
16061         define.
16062         (mkoffload.o): Remove obsolete include path and defines.
16063         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
16064
16065 2015-03-10  Richard Biener  <rguenther@suse.de>
16066
16067         PR middle-end/63155
16068         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16069         * tree-ssa-coalesce.c: Include timevar.h.
16070         (attempt_coalesce): Handle graph being NULL.
16071         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16072         Split out abnormal coalescing to ...
16073         (perform_abnormal_coalescing): ... this function.
16074         (coalesce_ssa_name): Perform abnormal coalescing without computing
16075         live/conflict.
16076         (verify_ssa_coalescing_worker): New function.
16077         (verify_ssa_coalescing): Likewise.
16078
16079 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16080
16081         PR target/65296
16082         * config.gcc (extra_options) [avr]: Remove.
16083         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
16084         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
16085         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
16086
16087         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
16088         (-mmcu=): Add Var and MissingArgError properties.
16089         (-march=): Remove.
16090         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
16091         * config/avr/t-multilib: Regenerate.
16092         * config/avr/specs.h: New file.
16093         * config/avr/driver-avr.c: New file.
16094         * config/avr/genopt.sh: Remove file.
16095         * config/avr/avr-tables.opt: Remove file.
16096         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
16097         * config/avr/avr-c.c: Same.
16098         * avr-arch.h: Same.
16099         (avr_current_device): Remove proto.
16100         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
16101         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
16102         (EXTRA_SPEC_FUNCTIONS): Define.
16103         (avr_devicespecs_file): New specs function proto.
16104         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
16105         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16106         (avr_current_device): Remove definition and usage.
16107         (avr_set_core_architecture): New static function.
16108         (avr_option_override): Use it.
16109         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16110         (mcu_name): New static array.
16111         (comparator, avr_archs_str, avr_mcus_str): New static functions.
16112         (avr_inform_devices, avr_inform_core_architectures): New functions.
16113         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16114         (avrlibc.h) [WITH_AVRLIBC]: Include.
16115         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16116         (print_mcu): Rewrite from scratch.
16117         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16118         Forward to avr-specific specs defined in device-specs file.
16119         * config/avr/t-avr (driver-avr.o): New rule.
16120         (avr-devices.o): Depend on avr-arch.h.
16121         (avr-mcus): No more depend on avr-tables.opt.
16122         (avr-tables.opt): Remove rule.
16123         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16124
16125 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16126
16127         * c-family/c.opt (fchkp-use-wrappers): New.
16128         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16129         (chkp_wrap_function): New.
16130         (chkp_build_instrumented_fndecl): Support wrapped
16131         functions.
16132         * doc/invoke.texi (-fcheck-pointer-bounds): New.
16133         (-fchkp-check-incomplete-type): New.
16134         (-fchkp-first-field-has-own-bounds): New.
16135         (-fchkp-narrow-bounds): New.
16136         (-fchkp-narrow-to-innermost-array): New.
16137         (-fchkp-optimize): New.
16138         (-fchkp-use-fast-string-functions): New.
16139         (-fchkp-use-nochk-string-functions): New.
16140         (-fchkp-use-static-bounds): New.
16141         (-fchkp-use-static-const-bounds): New.
16142         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16143         (-fchkp-check-read): New.
16144         (-fchkp-check-write): New.
16145         (-fchkp-store-bounds): New.
16146         (-fchkp-instrument-calls): New.
16147         (-fchkp-instrument-marked-only): New.
16148         (-fchkp-use-wrappers): New.
16149         (-static-libmpx): New.
16150         (-static-libmpxwrappers): New.
16151
16152 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16153
16154         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16155         (CHKP_SPEC): Add wrappers library.
16156         * c-family/c.opt (static-libmpxwrappers): New.
16157
16158 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16159
16160         * config/i386/linux-common.h (LIBMPX_LIBS): New.
16161         (LIBMPX_SPEC): New.
16162         (CHKP_SPEC): New.
16163         * gcc.c (CHKP_SPEC): New.
16164         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16165         * c-family/c.opt (static-libmpx): New.
16166
16167 2015-03-10  Richard Biener  <rguenther@suse.de>
16168
16169         PR middle-end/44563
16170         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16171         for compare_type.
16172         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16173         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16174         (cgraph_add_edge_to_call_site_hash): Likewise.
16175         (cgraph_node::get_edge): Likewise.
16176         (cgraph_edge::set_call_stmt): Likewise.
16177         (cgraph_edge::remove_caller): Likewise.
16178
16179 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16180
16181         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16182         (callee_saved_gpr_regs_size): ... this.
16183         (callee_saved_regs_first_regno): Rename to ...
16184         (callee_saved_first_gpr_regno): ... this.
16185         (callee_saved_regs_last_regno) Rename to ...
16186         (callee_saved_last_gpr_regno): ... this.
16187         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16188         variables.
16189         (nds32_initial_elimination_offset): Likewise.
16190         (nds32_expand_prologue): Likewise.
16191         (nds32_expand_epilogue): Likewise.
16192         (nds32_expand_prologue_v3push): Likewise.
16193         (nds32_expand_epilogue_v3pop): Likewise.
16194         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16195         Adjust renamed variables.
16196         (nds32_output_stack_pop): Likewise.
16197
16198 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16199
16200         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16201         code in comment.
16202
16203 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16204
16205         PR rtl-optimization/65321
16206         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16207         than shift mode.
16208         * var-tracking.c (use_narrower_mode): Likewise.
16209
16210 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16211
16212         PR tree-optimization/65355
16213         * varasm.c (notice_global_symbol): Do not produce RTL.
16214         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16215         anchor.
16216         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16217         check for section anchors.
16218
16219 2015-03-10  Alan Modra  <amodra@gmail.com>
16220
16221         PR target/65286
16222         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16223         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16224         given --with-cpu=native.
16225         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16226         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16227         and powerpc64le.
16228         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16229         rs6000_isa_flags rather than TARGET_64BIT.
16230
16231 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16232             Kaz Kojima  <kkojima@gcc.gnu.org>
16233
16234         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16235
16236 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16237
16238         PR lto/65361
16239         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16240         on a TREE_BINFO, instead use BINFO_TYPE.
16241
16242 2015-03-09  Richard Biener  <rguenther@suse.de>
16243
16244         PR middle-end/65270
16245         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16246         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16247         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16248         of that.  When comparing dereferences compare alignment.
16249         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16250
16251 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16252
16253         * ipa-inline-analysis.c (check_callers): Check
16254         node->can_remove_if_no_direct_calls_and_refs_p.
16255         (growth_likely_positive): Reorganize to call
16256         can_remove_if_no_direct_calls_p later.
16257         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16258         will_be_removed_from_program_if_no_direct_calls_p): Add
16259         will_inline parameter.
16260         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16261         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16262         Handle inliner case correctly.
16263
16264 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16265
16266         PR tree-optimization/63743
16267         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16268         had its definition forwarded by TER.
16269
16270 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16271
16272         PR lto/65316
16273         * ipa-utils.h (types_odr_comparable): Add strict argument.
16274         * ipa-devirt.c: Fix whitespace;
16275         (odr_hasher): Remove.
16276         (odr_name_hasher, odr_vtable_hasher): New hashers.
16277         (can_be_name_hashed_p): New predicate.
16278         (hash_type_name): remove.
16279         (hash_odr_name): New.
16280         (odr_name_hasher::hash): new.
16281         (can_be_vtable_hashed_p): New.
16282         (hash_odr_vtable): New.
16283         (odr_vtable_hasher::hash): New.
16284         (types_same_for_odr): Add strict parameter.
16285         (types_odr_comparable): Likewise.
16286         (odr_name_hasher::equal): New.
16287         (odr_vtable_hasher::equal): New.
16288         (odr_name_hasher::remove): New.
16289         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16290         (odr_vtable_hash_type): New.
16291         (odr_vtable_hash): New.
16292         (odr_subtypes_equivalent_p): Do strict comparsion.
16293         (add_type_duplicate): Merge type names; cleanup; avoid type
16294         duplicates.
16295         (register_odr_type): Initialize vtable hash.
16296         (build_type_inheritance_graph): Likewise
16297         (get_odr_type): Reorg to use two hashes.
16298         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16299         output.
16300         (ipa_devirt): Dump type_inheritance_graph.
16301         (types_same_for_odr): Add strict mode.
16302
16303 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16304
16305         PR ipa/65334
16306         * cgraph.h (symtab_node): Add definition_alignment,
16307         can_increase_alignment_p and increase_alignment.
16308         * symtab.c (symtab_node::can_increase_alignment_p,
16309         increase_alignment_1, symtab_node::increase_alignment,
16310         symtab_node::definition_alignment): New.
16311         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16312         can_increase_alignment_p.
16313         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16314         * tree-vect-stmts.c (ensure_base_align): Likewise.
16315         * varasm.c (function_section_1): Use definition_alignment.
16316         (assemble_start_function): Likewise.
16317         (emit_local): likewise.
16318         (build_constant_desc): Likewsie.
16319         (output_constant_def_contents): Likewise.
16320         (place_block_symbol): Likewise.
16321         (output_object_block): Likewise.
16322
16323 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16324
16325         PR ipa/65316
16326         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16327         when outputting debug.
16328
16329 2015-03-07  Marek Polacek  <polacek@redhat.com>
16330             Martin Uecker  <uecker@eecs.berkeley.edu>
16331
16332         PR sanitizer/65280
16333         * doc/invoke.texi: Update description of -fsanitize=bounds.
16334
16335 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16336
16337         * tree-ssa-phiopt.c (neg_replacement): Remove.
16338         (tree_ssa_phiopt_worker): Remove negate optimization.
16339
16340 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16341
16342         PR ipa/65302
16343         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16344
16345 2015-03-06  Richard Biener  <rguenther@suse.de>
16346
16347         PR middle-end/64928
16348         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16349         and liveout_obstack members.
16350         (calculate_live_on_exit): Remove.
16351         (calculate_live_ranges): Change declaration.
16352         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16353         (new_tree_live_info): Adjust.
16354         (calculate_live_ranges): Delete livein when not wanted.
16355         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16356         Deal with partly deleted live info.
16357         (loe_visit_block): Remove temporary bitmap by using
16358         bitmap_ior_and_compl_into.
16359         (live_worklist): Adjust accordingly.
16360         (calculate_live_on_exit): Make static.
16361         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16362         we do not need livein.
16363
16364 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16365
16366         * real.c (real_from_string): Fix typo in assertion.
16367
16368 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16369
16370         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16371         the patch.
16372
16373 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16374
16375         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16376
16377 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16378
16379         PR target/64342
16380         * lra-assigns.c (find_hard_regno_for): Rename to
16381         find_hard_regno_for_1.  Add a new parameter.
16382         (find_hard_regno_for): New function using find_hard_regno_for_1.
16383
16384 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16385
16386         PR rtl-optimization/65067
16387         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16388         strict volatile bitfield handling.
16389
16390 2015-03-05  Martin Liska  <mliska@suse.cz>
16391
16392         PR ipa/65318
16393         * ipa-icf.c (sem_variable::equals): Compare variables types.
16394
16395 2015-03-05  Richard Henderson  <rth@redhat.com>
16396
16397         PR target/65121
16398         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16399         correctly check weak symbol binding.
16400
16401 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16402
16403         PR middle-end/65315
16404         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16405         needed alignment.
16406
16407 2015-03-05  Martin Liska  <mliska@suse.cz>
16408
16409         * ipa-inline.c (inline_small_functions): Set default value to
16410         prevent warning during bootstrap.
16411         * tree.h: Add pragma guard that ignores false positives during
16412         bootstrap.
16413
16414 2015-03-05  Richard Biener  <rguenther@suse.de>
16415
16416         PR tree-optimization/65310
16417         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16418         Properly preserve alignment of the base of the access.
16419
16420 2015-03-05  Richard Biener  <rguenther@suse.de>
16421
16422         PR ipa/65270
16423         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16424         Compare dependence info.
16425
16426 2015-03-05  Richard Biener  <rguenther@suse.de>
16427
16428         PR middle-end/65233
16429         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16430         tree-into-ssa.h.
16431         (walk_ssa_copies): Revert last chage.  Instead do not walk
16432         SSA names registered for SSA update.
16433
16434 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16435
16436         PR ipa/65270
16437         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16438         vtable references for their containing type.
16439         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16440         and type attributes.
16441
16442 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16443
16444         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16445         before negating it.
16446         * stor-layout.c (finalize_record_size): Revert latest change.
16447
16448 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16449
16450         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16451
16452 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16453
16454         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16455         for correct comdat handling.
16456         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16457         Likewise.
16458         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16459         (used_from_object_file_p_worker): Remove.
16460         (cgraph_node::only_called_directly_or_alised): Add
16461         used_from_object_file_p.
16462         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16463         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16464         can_remove_if_no_direct_calls_and_refs_p.
16465
16466 2015-03-04  Nick Clifton  <nickc@redhat.com>
16467
16468         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16469         General register class.
16470         * config/rl78/rl78-real.md: Replace general register constraints
16471         with real+virtual register constraints.
16472
16473 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16474
16475         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16476         from checking for -mhtm option.
16477
16478 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16479
16480         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16481         (struct ipa_sra_check_caller_data): Add has_thunk field.
16482         (ipa_sra_check_caller): Check for thunk.
16483         (ipa_sra_preliminary_function_checks): Give up on function with
16484         thunks.
16485         (ipa_early_sra): Use call_for_symbol_and_aliases.
16486
16487 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16488
16489         PR target/65249
16490         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16491         called for __stack_chk_guard symbol.
16492
16493 2015-03-03  DJ Delorie  <dj@redhat.com>
16494
16495         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16496         inc/dec.
16497         (*addhi3_real): Likewise.
16498         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16499         pattern to match incrementing memory.
16500         * config/rl78/predicates.md (rl78_1_2_operand): New.
16501         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16502         it's the same and only mem.
16503         (rl78_alloc_physical_registers_op2): If there's effectively only
16504         one MEM, transcode it into HL.
16505         (rl78_far_p): Reject addresses that aren't legitimate.
16506
16507 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16508
16509         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16510         negating it.
16511
16512         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16513
16514 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16515
16516         Implement call0 ABI for xtensa
16517         * config/xtensa/constraints.md ("a" constraint): Include stack
16518         pointer in case of call0 ABI.
16519         ("q" constraint): Make empty in case of call0 ABI.
16520         ("D" constraint): Include stack pointer in case of call0 ABI.
16521         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16522         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16523         prototypes.
16524         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16525         variable.
16526         (xtensa_regno_to_class): Make it a local variable in the
16527         function xtensa_regno_to_class.
16528         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16529         macro, function prototype and implementation.
16530         (reg_nonleaf_alloc_order): Make it a local variable in the
16531         function order_regs_for_local_alloc.
16532         (xtensa_conditional_register_usage): New function.
16533         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16534         (xtensa_valid_move): Allow direct moves to stack pointer
16535         register in call0 ABI.
16536         (xtensa_setup_frame_addresses): Only spill register windows in
16537         windowed ABI.
16538         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16539         call0 ABI respectively.
16540         (xtensa_function_arg_1): Only mark a7 register for copying in
16541         windowed ABI.
16542         (xtensa_call_save_reg): New function.
16543         (compute_frame_size): Add space for callee saved register
16544         storage to the frame size in call0 ABI.
16545         (xtensa_expand_prologue): Generate code to set up stack frame
16546         and save callee-saved registers in call0 ABI.
16547         (xtensa_expand_epilogue): New function.
16548         (xtensa_set_return_address): New function.
16549         (xtensa_return_addr): Calculate return address in call0 ABI.
16550         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16551         emit copying code in windowed ABI.
16552         (order_regs_for_local_alloc): Add preferred register allocation
16553         order for non-leaf function in call0 ABI.
16554         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16555         (xtensa_asm_trampoline_template): Add trampoline generation for
16556         call0 ABI.
16557         (xtensa_trampoline_init): Add trampoline initialization for
16558         call0 ABI.
16559         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16560         functions.
16561         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16562         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16563         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16564         ABI call-used registers.
16565         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16566         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16567         call0 ABI.
16568         (REG_CLASS_CONTENTS): Include all registers into the preferred
16569         reload registers set, adjust the set in the
16570         xtensa_conditional_register_usage.
16571         (xtensa_regno_to_class): Drop variable declaration.
16572         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16573         function.
16574         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16575         respectively.
16576         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16577         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16578         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16579         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16580         location in call0 ABI.
16581         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16582         stack adjustment size when handling exception.
16583         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16584         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16585         definitions.
16586         ("return" pattern): Generate ret.n/ret in call0 ABI.
16587         ("epilogue" pattern): Expand epilogue.
16588         ("nonlocal_goto" pattern): Use default in call0 ABI.
16589         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16590         emit eh_set_a0_* depending on ABI.
16591         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16592         ("eh_set_a0_call0", "blockage"): New patterns.
16593
16594 2015-03-03  Martin Liska  <mliska@suse.cz>
16595
16596         PR ipa/65287
16597         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16598
16599 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16600
16601         PR 65138/target
16602         * config/rs6000/rs6000-tables.opt: Regenerate table.
16603
16604 2015-03-03  Renlin Li  <renlin.li@arm.com>
16605
16606         * doc/md.texi (@item ^): Change ? into ^.
16607
16608 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16609
16610         * doc/tm.texi: Regenerated.
16611
16612 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16613
16614         * builtins.c (expand_builtin_return_addr): Add
16615         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16616         surrounding #ifdef.
16617         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16618         definition to 1.
16619         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16620         Likewise.
16621         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16622         undefined.
16623         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16624         paragraph.
16625
16626 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16627             Eric Botcazou  <ebotcazou@adacore.com>
16628
16629         * tree-sra.c (ipa_sra_check_caller_data): New type.
16630         (has_caller_p): Removed.
16631         (ipa_sra_check_caller): New function.
16632         (ipa_sra_preliminary_function_checks): Use it.
16633
16634 2015-03-03  Martin Liska  <mliska@suse.cz>
16635
16636         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16637         instead of if branch.
16638
16639 2015-03-03  Martin Liska  <mliska@suse.cz>
16640
16641         PR ipa/65282
16642         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16643
16644 2015-03-23  Jeff Law  <law@redhat.com>
16645
16646         PR tree-optimization/65241
16647         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16648         hash table if INSERT is true.
16649
16650 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16651
16652         PR target/65296
16653         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16654
16655 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16656
16657         PR target/64331
16658         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16659         (avr_pass_data_recompute_notes): New static variable.
16660         (avr_pass_recompute_notes): New class.
16661         (avr_register_passes): New static function.
16662         (avr_option_override): Call it.
16663
16664 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16665
16666         Fix various problems with specs file generation.
16667
16668         PR target/65296
16669         * config.gcc (extra_gcc_objs) [avr]: Remove.
16670         * config/avr/driver-avr.c: Remove file.
16671         * config/avr/t-avr (driver-avr.o): Remove rule.
16672         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16673         INCLUDES to build.  Depend on TM_H.
16674         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16675         build warnings.  Fix non-matching types and non-existing %-codes.
16676         (tm.h): Include.
16677         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16678         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16679         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16680         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16681         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16682         (LIBGCC_SPEC): Remove definitions.
16683
16684 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16685
16686         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16687         to create a register in testing mode.
16688
16689 2015-03-03  Martin Liska  <mliska@suse.cz>
16690             Jan Hubicka  <hubicka@ucw.cz>
16691
16692         PR ipa/65263
16693         * cgraph.c (cgraph_node::has_thunk_p): New function.
16694         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16695         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16696         (sem_function::merge): Assert is changed.
16697
16698 2015-03-03  Martin Liska  <mliska@suse.cz>
16699             Martin Jambor  <mjambor@suse.cz>
16700
16701         PR ipa/65087
16702         * ipa-icf.c (sem_item_optimizer::execute): Change function
16703         return value to boolean.
16704         (sem_item_optimizer::merge_classes): Likewise.
16705         (ipa_icf_driver): Return TODO_remove_functions in case there's
16706         a merge operation processed.
16707         * ipa-icf.h: Change function return value to boolean.
16708
16709 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16710
16711         PR 65138/target
16712         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16713         processor type for 64-bit little endian PowerPC.
16714
16715         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16716         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16717         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16718         printing built-in mask so it does not pass NULL pointers.
16719
16720         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16721         -mcpu=powerpc64le.
16722
16723 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16724
16725         PR target/58158
16726         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16727         !ISA_HAS_FP_CONDMOVE.
16728
16729 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16730
16731         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16732         reload_completed.
16733
16734 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16735
16736         * doc/invoke.texi (Options for Code Generation Conventions):
16737         Fix URL of DSO paper.
16738
16739 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16740
16741         PR ipa/65130
16742         * ipa-inline.c (check_callers): Looks for recursion.
16743         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16744         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16745         summary of inline clones.
16746         (do_estimate_growth_1): Fix recursion check.
16747
16748 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16749
16750         PR ipa/64988
16751         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16752         comdat groups.
16753
16754 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16755             Aldy Hernandez  <aldyh@redhat.com>
16756
16757         PR lto/65276
16758         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
16759         when checking TYPE_BINFO.
16760
16761 2015-03-02  Richard Biener  <rguenther@suse.de>
16762
16763         PR ipa/65270
16764         * ipa-icf-gimple.c: Include builtins.h.
16765         (func_checker::compare_memory_operand): Compare base alignment.
16766
16767 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16768
16769         PR target/65184
16770         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
16771         are never passed by reference.
16772
16773 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16774
16775         PR target/65183
16776         * tree-chkp.c (chkp_check_lower): Don't check against
16777         zero bounds for already instrumented functions.
16778         (chkp_check_upper): Likewise.
16779         (chkp_fini): Clean pass local data to avoid wrong reusage.
16780
16781 2015-02-28  Martin Liska  <mliska@suse.cz>
16782             Jan Hubicka  <hubicka@ucw.cz>
16783
16784         * ipa-icf.c (sem_variable::equals): Improve debug output;
16785         get variable constructor.
16786         (sem_variable::parse): Do not filter out too early; give up on
16787         volatile and register vars.
16788         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
16789         variables.
16790         * ipa-icf.h (sem_variable::init): Do not set ctor.
16791         (sem_variable::ctor): Remove.
16792
16793 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
16794
16795         PR middle-end/65233
16796         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
16797
16798 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16799
16800         * ipa-icf.c: Include stor-layout.h
16801         (sem_function::compare_cgraph_references): Rename to ...
16802         (sem_item::compare_cgraph_references): ... this one.
16803         (sem_variable::equals_wpa): New function
16804         (sem_variable::equals): Do not check stuff already verified by
16805         equals_wpa.
16806         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
16807         * ipa-icf.h (sem_item): Add compare_cgraph_references.
16808         (sem_function): Remove compare_cgraph_references.
16809         (sem_variable): Turns equals_wpa into non-inline.
16810
16811 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16812
16813         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
16814         (sem_item::add_expr): New function.
16815         (sem_function::hash_stmt): Handle operands of most statements.
16816         (sem_variable::get_hash): Hash the actual constructor.
16817         * ipa-icf.h (sem_item): Add add_expr.
16818         (sem_function): Update prototype of hash_stmt
16819
16820 2015-02-28  Martin Liska  <mliska@suse.cz>
16821             Jan Hubicka  <hubicka@ucw.cz>
16822
16823         PR ipa/65245
16824         * ipa-icf-gimple.c (func_checker::compare_function_decl):
16825         Remove.
16826         (func_checker::compare_variable_decl): Skip symtab vars.
16827         (func_checker::compare_cst_or_decl): Update.
16828         * ipa-icf.c (sem_function::parse): Do not consider aliases.
16829         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
16830         use correct symtab predicates.
16831         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
16832         (sem_variable::parse):  Update comment.
16833         (sem_item_optimizer::build_graph): Consider ultimate aliases
16834         for references.
16835
16836 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16837
16838         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
16839         of OBJ_TYPE_REF.
16840
16841 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16842
16843         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
16844         (sem_variable::merge) Likewise.
16845
16846 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16847
16848         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
16849         target; also match flag_ipa_devirt.
16850
16851 2015-03-01  Martin Liska  <mliska@suse.cz>
16852             Jan Hubicka  <hubicka@ucw.cz>
16853
16854         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
16855         Validate variable alignment.
16856         * ipa-icf.c (sem_function::equals_private): Be more precise
16857         about non-common function attributes.
16858         (sem_variable::equals): Likewise.
16859
16860 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16861
16862         PR ipa/65237
16863         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
16864         across COMDAT group boundary.
16865
16866 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16867
16868         PR ipa/65232
16869         * ipa-icf.c (clear_decl_rtl): New function.
16870         (sem_function::merge): Clear RTL before forming alias.
16871         (sem_variable::merge): Clear RTL before forming alias.
16872
16873 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16874
16875         PR ipa/65236
16876         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
16877
16878 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
16879
16880         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
16881         to neon_to_gp<q>.
16882
16883 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16884
16885         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
16886         a typo in the description.
16887
16888 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16889
16890         PR target/64317
16891         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16892         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16893         * lra-constraints.c: Include "params.h".
16894         (EBB_PROBABILITY_CUTOFF): Use
16895         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
16896         (lra_inheritance): Use '<' instead of '<=' for
16897         EBB_PROBABILITY_CUTOFF.
16898         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
16899         Document change.
16900
16901 2015-02-27  Martin Liska  <mliska@suse.cz>
16902
16903         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
16904         vector length condition.
16905
16906 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
16907
16908         * doc/extend.texi (x86 transactional memory intrinsics):
16909         Reorganize discussion of _xbegin.  Clarify that the return
16910         value is a bit mask.  Expand example and move to end of section.
16911
16912 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16913             Aldy Hernandez  <aldyh@redhat.com>
16914
16915         PR rtl-optimization/65220
16916         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
16917
16918 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16919
16920         PR target/65032
16921         * lra-remat.c (update_scratch_ops): New.
16922         (do_remat): Call it.
16923         * lra.c (lra_register_new_scratch_op): New. Take code from ...
16924         (remove_scratches): ... here.
16925         * lra-int.h (lra_register_new_scratch_op): New prototype.
16926
16927 2015-02-27  Marek Polacek  <polacek@redhat.com>
16928
16929         PR c/65040
16930         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
16931         -Wformat-signedness anymore.
16932
16933 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16934
16935         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
16936         function.
16937         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
16938
16939 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16940
16941         * config/s390/s390.c (enum s390_builtin):
16942         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
16943         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
16944         (s390_init_builtins): Generate new builtin functions.
16945         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
16946         (s390_sfpc, s390_efpc): New pattern definitions.
16947
16948 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16949
16950         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
16951         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
16952         (s390_builtin_decls): New array.
16953         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
16954         (s390_builtin_decl): New function.
16955         (TARGET_BUILTIN_DECL): Define macro.
16956
16957 2015-02-27  Richard Biener  <rguenther@suse.de>
16958
16959         PR middle-end/63175
16960         * builtins.c (get_object_alignment_2): Make sure to re-apply
16961         the ANDed mask after recursing to its operand gets us a new
16962         misalignment bit position.
16963
16964 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
16965             Martin Liska  <mliska@suse.cz>
16966
16967         PR bootstrap/65150
16968         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
16969         Use address_matters_p.
16970         (redirect_all_callers, set_addressable): New functions.
16971         (sem_function::merge): Reorganize and fix merging issues.
16972         (sem_variable::merge): Likewise.
16973         (sem_variable::compare_sections): Remove.
16974         * common.opt (fmerge-all-constants, fmerge-constants): Remove
16975         Optimization flag.
16976         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
16977         redirect them.
16978         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
16979         decl is used.
16980         (address_matters_1): New function.
16981         (symtab_node::address_matters_p): New function.
16982         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
16983         check for merged flag.
16984         * cgraph.h (address_matters_p): Declare.
16985         (symtab_node::address_taken_from_non_vtable_p): Remove.
16986         (symtab_node::address_can_be_compared_p): New method.
16987         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
16988         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
16989         Remove.
16990         (comdat_can_be_unshared_p_1) Use address_matters_p.
16991         (update_vtable_references): Fix formating.
16992         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
16993         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
16994         * cgraphclones.c: Preserve merged and icf_merged flags.
16995
16996 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
16997
16998         * doc/extend.texi (Function Attributes): Fix spelling and typos.
16999         (Label Attributes): Likewise.
17000         (Cilk Plus Builtins): Likewise.
17001         (ARC SIMD Built-in Functions): Likewise.
17002         (ARM C Language Extensions (ACLE)): Likewise.
17003         (PowerPC Built-in Functions): Likewise.
17004         (PowerPC Hardware Transactional Memory Built-in Functions):
17005         Likewise.
17006
17007 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17008
17009         PR tree-optimization/65216
17010         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
17011         new stmt and new SSA_NAME for lhs whenever the arguments have
17012         changed and weren't just swapped.  Fix comment typo.
17013
17014         PR tree-optimization/65215
17015         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
17016         for PDP endian targets.
17017         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
17018         Fix up formatting issues.
17019         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
17020         size is smaller than the original, adjust MEM_REF offset by the
17021         difference of sizes.  Use is_gimple_mem_ref_addr instead of
17022         is_gimple_min_invariant test to avoid adding address temporaries.
17023
17024 2015-02-26  Martin Liska  <mliska@suse.cz>
17025             Jan Hubicka  <hubicka@ucw.cz>
17026
17027         PR ipa/64693
17028         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
17029         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
17030         (sem_item_optimizer::process_cong_reduction): Include division by
17031         sensitive references.
17032         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
17033         * ipa-ref.c (ipa_ref::address_matters_p): New function.
17034         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
17035
17036 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
17037
17038         PR target/65192
17039         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
17040         Remove.
17041         * config/avr/avr.c: Same.
17042         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
17043         Refuse any constant address not in 0..0xbf.
17044         * config/avr/avr.md (*mov<mode>, *movsf): Remove
17045         tiny_valid_direct_memory_access_range from insn conditions.
17046         (mov<mode>): Don't special-case expansion of avrtiny addresses.
17047
17048 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
17049
17050         PR target/61142
17051         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
17052         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
17053         * config/sh/predicates.md (const_logical_operand): New predicate.
17054         * config/sh/sh.md: Add new peephole2 patterns.
17055
17056 2015-02-26  Marek Polacek  <polacek@redhat.com>
17057
17058         PR ipa/65008
17059         * ipa-inline.c (early_inliner): Recompute inline parameters.
17060
17061 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17062
17063         PR target/65171
17064         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
17065         instructions with TImode operands are included in the analysis.
17066
17067 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17068
17069         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
17070         of an EDGE_FSM_THREAD.
17071
17072 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
17073
17074         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
17075
17076 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
17077
17078         PR debug/46102
17079         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
17080
17081 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17082
17083         PR tree-optimization/65048
17084         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
17085         (thread_through_all_blocks): Call valid_jump_thread_path.
17086         Remove invalid FSM jump-thread paths.
17087
17088 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17089
17090         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
17091         (ipa_write_optimization_summaries): Likewise.
17092         * tree-streamer.h: Include data-streamer.h.
17093         (streamer_mode_table): Declare extern variable.
17094         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
17095         * lto-streamer-out.c (lto_output_init_mode_table,
17096         lto_write_mode_table): New functions.
17097         (produce_asm_for_decls): Call lto_write_mode_table when streaming
17098         offloading LTO.
17099         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
17100         (lto_create_simple_input_block): Add mode_table argument to the
17101         lto_input_block constructors.
17102         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
17103         Likewise.
17104         * data-streamer-in.c (string_for_index): Likewise.
17105         * ipa-inline-analysis.c (inline_read_section): Likewise.
17106         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17107         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17108         * lto-streamer-in.c (lto_read_body_or_constructor,
17109         lto_input_toplevel_asms): Likewise.
17110         (lto_input_mode_table): New function.
17111         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17112         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17113         Use bp_pack_machine_mode.
17114         * real.h (struct real_format): Add name field.
17115         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17116         (class lto_input_block): Add mode_table member.
17117         (lto_input_block::lto_input_block): Add mode_table_ argument,
17118         initialize mode_table.
17119         (struct lto_file_decl_data): Add mode_table field.
17120         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17121         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17122         unpack_ts_decl_common_value_fields,
17123         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17124         * tree-streamer.c (streamer_mode_table): New variable.
17125         * real.c (ieee_single_format, mips_single_format,
17126         motorola_single_format, spu_single_format, ieee_double_format,
17127         mips_double_format, motorola_double_format,
17128         ieee_extended_motorola_format, ieee_extended_intel_96_format,
17129         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17130         ibm_extended_format, mips_extended_format, ieee_quad_format,
17131         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17132         decimal_single_format, decimal_double_format, decimal_quad_format,
17133         ieee_half_format, arm_half_format, real_internal_format): Add name
17134         field.
17135         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17136
17137 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
17138
17139         PR target/65161
17140         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17141         reordering for selective scheduling.
17142
17143 2015-02-26  Terry Guo  <terry.guo@arm.com>
17144
17145         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17146         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17147         (arm_arch_no_volatile_ce): Declare new global variable.
17148         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17149         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17150         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17151         (TARGET_NO_VOLATILE_CE): New macro.
17152         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17153         volatile memory access in IT block
17154
17155 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17156
17157         PR tree-optimization/61917
17158         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17159         that reduc_def_stmt is null.
17160
17161 2015-02-25  Martin Liska  <mliska@suse.cz>
17162
17163         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17164         hard register variables.
17165
17166 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17167
17168         PR target/64212
17169         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17170         (symtab::noninterposable_alias): Likewise.
17171
17172 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
17173
17174         PR target/65167
17175         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17176         bounds registers.
17177         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17178
17179 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17180
17181         PR target/64997
17182         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17183         as split condition; force split via '#' in output pattern.
17184
17185 2015-02-25  Richard Biener  <rguenther@suse.de>
17186             Kai Tietz  <ktietz@redhat.com>
17187
17188         PR tree-optimization/61917
17189         * tree-vect-loop.c (vectorizable_reduction): Allow
17190         vect_internal_def without reduction to exit graceful.
17191
17192 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17193
17194         PR target/65196
17195         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17196         only with NONDEBUG_INSN_P.
17197
17198 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17199
17200         Use variadic macros with avr-log.c.
17201
17202         * config/avr/avr-protos.h (avr_vdump): New prototype.
17203         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17204         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17205         * config/avr/avr-log.c: Adjust comments.
17206         (avr_vdump): New function.
17207         (avr_vadump): Pass caller as 2nd argument instead of format string.
17208         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17209         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17210
17211 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17212
17213         PR lto/64374
17214         * target.def (target_option_stream_in): New target hook.
17215         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17216         targetm.target_option.post_stream_in if non-NULL.
17217         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17218         * doc/tm.texi: Updated.
17219         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17220         function.
17221         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17222
17223 2015-02-24  Jeff Law  <law@redhat.com>
17224
17225         PR target/65117
17226         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17227         of operand 0 and operand 2.
17228         (zero_cost_loop_end, loop_end): Similarly.
17229
17230 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17231
17232         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17233         CXX_MEM_STAT_INFO.
17234
17235 2015-02-24  DJ Delorie  <dj@redhat.com>
17236
17237         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17238         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17239         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17240         instead of hardcoding SImode.
17241
17242 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17243
17244         * omp-low.c (create_omp_child_function): Tag entrypoint
17245         functions with a special attribute.
17246
17247 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17248
17249         PR target/65058
17250         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17251
17252 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17253
17254         PR rtl-optimization/65123
17255         * lra-remat.c (operand_to_remat): Check hard regs in insn
17256         definition too.
17257
17258 2015-02-24  Nick Clifton  <nickc@redhat.com>
17259
17260         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17261         to the assembler.
17262
17263 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17264
17265         PR libgomp/64625
17266         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17267         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17268         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17269         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17270         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17271         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17272         (BUILT_IN_GOACC_PARALLEL): Specify as
17273         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17274         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17275         * builtin-types.def
17276         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17277         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17278         Remove function types.
17279         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17280         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17281         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17282         New function types.
17283
17284 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17285
17286         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17287
17288 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17289
17290         PR tree-optimization/65170
17291         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17292         if val[1] < 0, clear also val[2] and return 3.
17293
17294 2015-02-24  Alan Modra  <amodra@gmail.com>
17295
17296         PR target/65172
17297         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17298         when *base is a reg.  Handle nested plus addresses.  Simplify
17299         pre_modify test.
17300
17301 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17302
17303         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17304         use natural alignment when optimizing for size.
17305
17306 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17307
17308         PR target/65153
17309         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17310         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17311         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17312
17313 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17314
17315         PR fortran/63427
17316         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17317         too big for a wide_int.  Implement missing wrapping operation.
17318
17319 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17320
17321         PR target/65163
17322         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17323         instead of const_int 4294901760.
17324
17325 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17326
17327         * config/avr/t-avr: Fix typo in comment.
17328
17329 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17330
17331         * doc/rtl.texi (fma): Clarify documentation.
17332
17333 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17334
17335         PR debug/58123
17336         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17337         over input_location.
17338
17339 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17340
17341         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17342         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17343         restrict alignments to absolute_biggest_alignment.
17344         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17345         Define.
17346         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17347         * doc/tm.texi: Regenerate.
17348         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17349
17350 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17351
17352         PR target/64172
17353         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17354
17355 2015-02-20  Richard Biener  <rguenther@suse.de>
17356
17357         PR tree-optimization/65136
17358         * tree-ssa-propagate.c: Include cfgloop.h.
17359         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17360         arguments with constants.
17361
17362 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17363             Martin Liska  <mliska@suse.cz>
17364
17365         PR target/63892
17366         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17367         don't try to create_thunk if stdarg_p.  If
17368         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17369         redirect_callers if possible.
17370         (sem_item_optimizer::execute): Call unregister_hooks here...
17371         (ipa_icf_driver): ... instead of here.
17372
17373 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17374
17375         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17376         Mark operand 0 as earlyclobber in 2nd alternative.
17377         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17378         Write negated shift amount into QI lowpart operand 0 and use it
17379         in the shift step.
17380         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17381
17382 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17383
17384         * cgraph.h (clone_function_name_1): Declare.
17385         * cgraphclones.c (clone_function_name_1): New function.
17386         (clone_function_name): Use it.
17387         * lto-partition.c: Include "stringpool.h".
17388         (must_not_rename, maybe_rewrite_identifier)
17389         (validize_symbol_for_target): New static functions.
17390         (privatize_symbol_name): Use must_not_rename.
17391         (promote_symbol): Call validize_symbol_for_target.
17392         (lto_promote_cross_file_statics): Likewise.
17393         (lto_promote_statics_nonwpa): Likewise.
17394
17395 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17396
17397         PR target/64452
17398         * config/avr/avr.md (pushhi_insn): New insn.
17399         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17400
17401 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17402             Jakub Jelinek  <jakub@redhat.com>
17403
17404         * tree-streamer.c (preload_common_nodes): Don't preload
17405         TI_VA_LIST* for offloading.
17406         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17407         in_lto_p.
17408
17409 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17410
17411         * config/pa/pa.c (pa_emit_move_sequence): Always force
17412         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17413         note on insn.
17414
17415         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17416         (TARGET_ASM_RELOC_RW_MASK): Define.
17417         (pa_cannot_force_const_mem): Revert previous change.
17418
17419 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17420             Jan Hubicka  <hubicka@ucw.cz>
17421
17422         PR ipa/65028
17423         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17424         across jump functions.
17425
17426 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17427
17428         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17429
17430 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17431
17432         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17433
17434 2015-02-19  Richard Henderson  <rth@redhat.com>
17435
17436         PR middle-end/65074
17437         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17438         test DECL_EXTERNAL independent of symtab_node.
17439
17440 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17441
17442         PR lto/65012
17443         * varpool.c (varpool_node::get_constructor): Return early
17444         if this->lto_file_data is NULL.
17445
17446 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17447
17448         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17449         (rank_for_schedule_debug): Update.
17450         (ready_sort): Make static.  Move sorting logic to ...
17451         (ready_sort_debug, ready_sort_real): New static functions.
17452         (schedule_block): Sort both debug insns and real insns in preparation
17453         for ready list trimming.  Improve debug output.
17454         * sched-int.h (ready_sort): Remove global declaration.
17455
17456 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17457
17458         * ipa-icf.c (sem_function::equals_private): Adjust.
17459         (sem_function::bb_dict_test): Take a vec<int> * instead of
17460         auto_vec<int>.
17461         * ipa-icf.h (bb_dict_test): Likewise.
17462
17463 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17464
17465         PR gcov-profile/64634
17466         * tree-eh.c (frob_into_branch_around): Fix up typos
17467         in function comment.
17468         (lower_catch): Put eh_seq resulting from EH lowering of
17469         the cleanup sequence after the cleanup rather than before it.
17470
17471 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17472
17473         * common.opt (fstdarg-opt): New option.
17474         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17475         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17476         (@item -fstdarg-opt): New item.
17477
17478 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17479
17480         PR target/65064
17481         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17482         for common symbols.
17483
17484 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17485
17486         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17487         insn-modes.h.
17488         (ALL_HOST_OBJS): Add mkoffload.o.
17489         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17490
17491 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17492
17493         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17494         (compare_virtual_tables): Be smarter about skipping typeinfos;
17495         do sane output on virtual table table mismatch.
17496         (warn_odr): Be ready for forward declarations of enums;
17497         output sane info on base mismatch and virtual table mismatch.
17498         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17499         when only one type is polymorphic.
17500         (get_odr_type): Fix hashtable corruption.
17501         (dump_odr_type): Dump mangled names.
17502
17503 2015-02-18  Richard Biener  <rguenther@suse.de>
17504
17505         PR tree-optimization/65063
17506         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17507         have replaced looparound PHIs.
17508
17509 2015-02-18  Martin Liska  <mliska@suse.cz>
17510
17511         * lto-streamer.c (lto_streamer_init): Encapsulate
17512         streamer_check_handled_ts_structures with checking macro.
17513
17514 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17515
17516         PR ipa/65087
17517         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17518         section if !implicit_section.
17519         (cgraph_node::create_version_clone_with_body): Likewise.
17520         * trans-mem.c (ipa_tm_create_version): Likewise.
17521
17522 2015-02-18  Richard Biener  <rguenther@suse.de>
17523
17524         PR tree-optimization/62217
17525         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17526         into BIVs.
17527
17528 2015-02-18  Marek Polacek  <polacek@redhat.com>
17529
17530         PR sanitizer/65081
17531         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17532         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17533         is in range [-16K, -1].  Don't issue run-time error if
17534         (ptr > ptr + offset).
17535
17536 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17537
17538         * doc/install.texi (nvptx-*-none): New section.
17539         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17540         * config/nvptx/nvptx.opt: Update.
17541
17542         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17543         (access_check): New functions, copied from
17544         config/i386/intelmic-mkoffload.c.
17545         (main): For non-installed testing, look in all COMPILER_PATHs for
17546         GCC_INSTALL_NAME.
17547
17548         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17549
17550 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17551             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17552
17553         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17554         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17555
17556 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17557
17558         * ipa-visibility.c (function_and_variable_visibility): Only
17559         check locality if node is not already local.
17560         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17561         call_for_symbol_and_aliases instead of
17562         call_for_symbol_thunks_and_aliases.
17563         (ipa_inline): Likewise.
17564         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17565         first walk aliases.
17566         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17567         call_for_symbol_and_aliases.
17568         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17569         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17570         (ipa_propagate_frequency): Update.
17571         (ipa_profile): Add opt_for_fn gueards.
17572
17573 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17574
17575         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17576         * doc/invoke.texi (SH options): Document it.
17577         * config/sh/sh.c (sh_insn_length_adjustment): Check
17578         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17579
17580 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17581
17582         * common.opt (fipa-cp-alignment): New.
17583         * ipa-cp.c (ipcp_store_alignment_results): Check
17584         flag_ipa_cp_alignment.
17585         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17586         -O2.
17587         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17588         * doc/invoke.texi: Document -fipa-cp-alignment.
17589
17590 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17591
17592         PR target/64793
17593         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17594         to nil.  Adjust comments.
17595
17596 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17597
17598         * ipa-visibility.c (function_and_variable_visibility): Only
17599         check locality if node is not already local.
17600         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17601         call_for_symbol_and_aliases instead of
17602         call_for_symbol_thunks_and_aliases.
17603         (ipa_inline): Likewise.
17604         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17605         first walk aliases.
17606         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17607         call_for_symbol_and_aliases.
17608         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17609         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17610         (ipa_propagate_frequency): Update.
17611         (ipa_profile): Add opt_for_fn guards.
17612
17613 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17614
17615         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17616         skipping of "strange" tokens.
17617
17618 2015-02-17  Jeff Law  <law@redhat.com>
17619
17620         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17621         obsolete comment.
17622
17623 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17624
17625         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17626         as forcing a HARD_DEP between instructions, thereby
17627         disallowing rewriting to break dependencies.
17628
17629 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17630
17631         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17632         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17633         variables in boundary that have no inlitalizer encoded and are
17634         not aliases.
17635         * varasm.c (default_binds_local_p_2): External definitions do not
17636         count as definitions here.
17637
17638 2015-02-16  Jeff Law  <law@redhat.com>
17639
17640         PR tree-optimization/64823
17641         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17642         statements.
17643         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17644         threading through blocks with PHIs, but no statements.
17645         (thread_through_normal_block): Distinguish between blocks where
17646         we did not process all the statements and blocks with no statements.
17647
17648 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17649             James Greenhalgh  <james.greenhalgh@arm.com>
17650
17651         PR ipa/64963
17652         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17653         section if not linkonce.  Fix up formatting.
17654         (cgraph_node::create_version_clone_with_body): Copy section.
17655         * trans-mem.c (ipa_tm_create_version): Likewise.
17656
17657 2015-02-16  Richard Biener  <rguenther@suse.de>
17658
17659         PR tree-optimization/65077
17660         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17661         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17662         (find_func_aliases): Allow float values to carry pointers again.
17663
17664 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17665
17666         * doc/install.texi (Specific): Reorder targets list to put
17667         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17668         from the top menu.
17669
17670 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17671             David Edelsohn  <dje.gcc@gmail.com>
17672
17673         PR target/65058
17674         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17675         mapping class to external variable or function reference.
17676         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17677         mapping class.
17678
17679 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17680
17681         PR target/53348
17682         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17683         ASM_WEAKEN_DECL if defined.
17684
17685 2015-02-16  Richard Biener  <rguenther@suse.de>
17686
17687         PR lto/65015
17688         * varasm.c (default_file_start): For LTO produced units
17689         emit <artificial> as file directive.
17690
17691 2015-02-16  Richard Biener  <rguenther@suse.de>
17692
17693         PR tree-optimization/63593
17694         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17695         stmts and releasing SSA names until...
17696         (execute_pred_commoning): ... after processing all chains.
17697
17698 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17699
17700         PR ipa/65059
17701         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17702         external functions.
17703
17704 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17705
17706         * doc/bugreport.texi: Adjust section titles throughout the file
17707         to use "Title Case".
17708         * doc/extend.texi: Likewise.
17709         * doc/gcov.texi: Likewise.
17710         * doc/implement-c.texi: Likewise.
17711         * doc/implement-cxx.texi: Likewise.
17712         * doc/invoke.texi: Likewise.
17713         * doc/objc.texi: Likewise.
17714         * doc/standards.texi: Likewise.
17715         * doc/trouble.texi: Likewise.
17716
17717 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17718
17719         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17720         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17721         * tree.c (lookup_binfo_at_offset): Make static.
17722         (get_binfo_at_offset): Do not shadow offset; add explanatory
17723         comment.
17724
17725 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17726
17727         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17728         for all floading point loads and stores except those using a register
17729         index address.
17730         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17731         to a register.
17732
17733 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17734
17735         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17736         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17737         (estimate_growth): Handle uninlinable edges correctly.
17738         (check_callers): New.
17739         (growth_likely_positive): Handle aliases correctly.
17740
17741 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17742
17743         * ipa-chkp.c: Use iterate_direct_aliases.
17744         * symtab.c (resolution_used_from_other_file_p): Move inline.
17745         (symtab_node::create_reference): Fix formating.
17746         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17747         (symtab_node::iterate_reference): Move inline.
17748         (symtab_node::iterate_referring): Move inline.
17749         (symtab_node::iterate_direct_aliases): Move inline.
17750         (symtab_node::used_from_object_file_p_worker): Inline into ...
17751         (symtab_node::used_from_object_file_p): ... this one; move inline.
17752         (symtab_node::call_for_symbol_and_aliases): Move inline;
17753         use iterate_direct_aliases.
17754         (symtab_node::call_for_symbol_and_aliases_1): New method.
17755         (cgraph_node::call_for_symbol_and_aliases): Move inline;
17756         use iterate_direct_aliases.
17757         (cgraph_node::call_for_symbol_and_aliases_1): New method.
17758         (varpool_node::call_for_node_and_aliases): Rename to ...
17759         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
17760         use iterate_direct_aliases.
17761         (varpool_node::call_for_symbol_and_aliases_1): New method.
17762         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
17763         (ipa_discover_readonly_nonaddressable_var): Update.
17764         * ipa-devirt.c: Fix formating.
17765         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
17766         Move inline.
17767         (cgraph_node::call_for_symbol_and_aliases): Move inline.
17768         (cgraph_node::call_for_symbol_and_aliases_1): New function..
17769         * cgraph.h (used_from_object_file_p_worker): Remove.
17770         (resolution_used_from_other_file_p): Move inline.
17771         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17772         (symtab_node::iterate_reference): Move inline.
17773         (symtab_node::iterate_referring): Move inline.
17774         (symtab_node::iterate_direct_aliases): Move inline.
17775         (symtab_node::used_from_object_file_p_worker): Inline into ...
17776         (symtab_node::used_from_object_file_p): Move inline.
17777         * tree-emutls.c (ipa_lower_emutls): Update.
17778         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
17779         (varpool_node::call_for_node_and_aliases): Remove.
17780
17781 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
17782
17783         PR tree-optimization/62209
17784         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
17785         op == range->exp, insert seq and gimplified code after labels
17786         instead of after the phi.
17787
17788 2015-02-13  Jeff Law  <law@redhat.com>
17789
17790         PR bootstrap/65060
17791         Revert my change for tree-optimization/64823.
17792
17793 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17794
17795         PR tree-optimization/65053
17796         * tree-ssa-phiopt.c (value_replacement): When moving assign before
17797         cond, either reset VR on lhs or set it to phi result VR.
17798
17799 2015-02-13  Jeff Law  <law@redhat.com>
17800
17801         PR tree-optimization/64823
17802         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
17803         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17804         threading through blocks with PHIs, but no statements.
17805         (thread_through_normal_block): Distinguish between blocks where
17806         we did not process all the statements and blocks with no statements.
17807
17808         PR rtl-optimization/47477
17809         * match.pd (convert (plus/minus (convert @0) (convert @1): New
17810         simplifier to narrow arithmetic.
17811
17812 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
17813
17814         PR ipa/65028
17815         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
17816         polymorphic call info when type is not known to be preserved.
17817
17818 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
17819
17820         PR ipa/65028
17821         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
17822         (inline_call): Use it.
17823
17824 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
17825
17826         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
17827         GOMP_DEVICE_NVIDIA_PTX.
17828
17829 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17830
17831         PR ipa/65034
17832         * stmt.c (emit_case_nodes): Use void_type_node instead of
17833         NULL_TREE as LABEL_DECL type.
17834
17835 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
17836
17837         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
17838         constraints.
17839         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
17840         symbolic references to data to be forced to constant memory on the
17841         SOM target.
17842
17843 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17844
17845         PR tree-optimization/65002
17846         * tree-cfg.c (pass_data_fixup_cfg): Don't update
17847         SSA on start.
17848         * tree-sra.c (some_callers_have_no_vuse_p): New.
17849         (ipa_early_sra): Reject functions whose callers
17850         assume function is read only.
17851
17852 2015-02-13  Richard Biener  <rguenther@suse.de>
17853
17854         PR lto/65015
17855         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
17856         for LTO produced CUs.
17857
17858 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
17859
17860         PR tree-optimization/64705
17861         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
17862         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
17863         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
17864         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
17865         expand_simple_operations.
17866
17867 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17868             Richard Henderson  <rth@redhat.com>
17869
17870         PR rtl/32219
17871         * cgraphunit.c (cgraph_node::finalize_function): Set definition
17872         before notice_global_symbol.
17873         (varpool_node::finalize_decl): Likewise.
17874         * varasm.c (default_binds_local_p_2): Rename from
17875         default_binds_local_p_1, add weak_dominate argument.  Use direct
17876         returns instead of assigning to local variable.  Unify varpool and
17877         cgraph paths via symtab_node.  Reject undef weak variables before
17878         testing visibility.  Reorder tests for simplicity.
17879         (default_binds_local_p): Use default_binds_local_p_2.
17880         (default_binds_local_p_1): Likewise.
17881         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
17882         via symtab_node.
17883         (default_elf_asm_output_external): Emit visibility when specified.
17884
17885 2015-02-13  Alan Modra  <amodra@gmail.com>
17886
17887         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
17888         code setting up r11 for out-of-line fp restore.
17889
17890 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17891
17892         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
17893         (muser-mode): Likewise.
17894
17895 2015-02-13  Alan Modra  <amodra@gmail.com>
17896
17897         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
17898         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
17899
17900 2015-02-12  David Howells  <dhowells@redhat.com>
17901
17902         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
17903         warning.
17904         * tree-ssa-uninit.c (dump_predicates): Likewise.
17905         * opts.c (print_filtered_help): Likewise.
17906
17907 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17908
17909         * dwarf2out.c (output_die): Use "%s", name instead of name to
17910         avoid -Wformat-security warning.
17911
17912         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
17913         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17914         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
17915         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17916
17917 2015-02-12  Jason Merrill  <jason@redhat.com>
17918
17919         * common.opt (-flifetime-dse): New.
17920
17921 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17922
17923         PR sanitizer/65019
17924         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
17925
17926         PR tree-optimization/65014
17927         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
17928         use original second operand of arg0 or arg1 instead of
17929         that adjusted by STRIP_NOPS.
17930
17931 2015-02-11  Jeff Law  <law@redhat.com>
17932
17933         PR target/63347
17934         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
17935         that needs to be queued, just queue it for a single cycle.
17936
17937 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
17938
17939         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
17940         bodies of thunks; comment on why.
17941         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
17942         symbols are extern.
17943
17944 2015-02-11  Richard Henderson  <rth@redhat.com>
17945
17946         PR sanitize/65000
17947         * tree-eh.c (mark_reachable_handlers): Mark source and destination
17948         regions of __builtin_eh_copy_values.
17949
17950 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17951
17952         PR middle-end/65003
17953         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
17954         ultimate alias is MEM with SYMBOL_REF satisfying
17955         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
17956         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
17957
17958 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
17959
17960         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
17961         "diagnostic-core.h".
17962         (main): Initialize progname, and call diagnostic_initialize.
17963
17964         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
17965         instead of __OPENMP_TARGET__.
17966
17967         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
17968         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
17969         hard-coding PTX_ID.
17970
17971 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
17972
17973         * doc/sourcebuild.texi (pie_enabled): Document.
17974
17975 2015-02-11  Martin Liska  <mliska@suse.cz>
17976
17977         PR ipa/64813
17978         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
17979         a return value for call to a function that is noreturn.
17980
17981 2015-02-11  Richard Biener  <rguenther@suse.de>
17982
17983         PR lto/65015
17984         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
17985         and -fresolution.
17986
17987 2015-02-11  Andrew Pinski  <apinski@cavium.com>
17988
17989         PR target/64893
17990         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17991         Change the first argument type to size_type_node and add another
17992         size_type_node.
17993         (aarch64_simd_expand_builtin): Handle the new argument to
17994         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
17995         print an out when the first two arguments are not
17996         nonzero integer constants.
17997         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
17998         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
17999
18000 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
18001
18002         PR target/61925
18003         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
18004         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
18005         (ix86_set_current_function): Rewritten.
18006         (ix86_add_new_builtins): Temporarily clear current_target_pragma
18007         when creating builtin fndecls.
18008
18009 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18010
18011         PR ipa/65005
18012         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
18013         function.
18014         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
18015         have no comdat group.
18016         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
18017         (lto_output_varpool_node): Always output alias info.
18018         (output_refs): Output refs of boundary aliases, too.
18019         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
18020         (output_symtab): Output call eges in thunks in boundary.
18021         (get_alias_symbol): Remove.
18022         (input_node, input_varpool_node): Do not special case weakrefs.
18023         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
18024         alias and thunks targets in the boundary; do not take removed symbols
18025         from their comdat groups.
18026         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
18027         (cgraph_node::global_info): Remove.
18028         (cgraph_node::rtl_info): Look through aliases and thunks.
18029         * cgrpah.h (global_info): Remove.
18030         (non_local_p): Remove.
18031
18032 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18033             Sandra Loosemore  <sandra@codesourcery.com>
18034
18035         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
18036         to inline asm.  List dialects in proper order.
18037
18038 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18039             Sandra Loosemore  <sandra@codesourcery.com>
18040
18041         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
18042
18043 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18044
18045         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
18046         modified) reference to Solaris.
18047
18048 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
18049
18050         * doc/extend.texi (Extended Asm): Fix typos.
18051
18052 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
18053
18054         PR sanitizer/65004
18055         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
18056
18057 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
18058
18059         PR target/64661
18060         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
18061         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
18062         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
18063         * config/sh/constraints.md (Ara, Add): New constraints.
18064         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
18065         predicates.
18066         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
18067         atomic_mem_operand_0.  Don't use force_reg on the memory address.
18068         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
18069         Sra constraint.  Convert to insn_and_split.  Add workaround for
18070         PR 64974.
18071         (atomic_compare_and_swap<mode>_hard): Copy to
18072         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
18073         Use atomic_mem_operand_0 predicate.
18074         (atomic_compare_and_swap<mode>_soft_gusa,
18075         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
18076         AraAdd constraints.
18077         (atomic_compare_and_swap<mode>_soft_tcb,
18078         atomic_compare_and_swap<mode>_soft_imask,
18079         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
18080         atomic_mem_operand_0 predicate and SraSdd constraints.
18081         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
18082         constraint.
18083         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
18084         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
18085         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
18086         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
18087         force_reg on the memory address.
18088         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
18089         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
18090         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
18091         atomic_mem_operand_1 predicate and Sra constraint.
18092         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
18093         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18094         Use atomic_mem_operand_1 predicate.
18095         (atomic_<fetchop_name><mode>_hard): Copy to
18096         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18097         Use atomic_mem_operand_1 predicate.
18098         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
18099         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18100         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
18101         insn_and_split.  Use atomic_mem_operand_1 predicate.
18102         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
18103         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
18104         Use atomic_mem_operand_1 predicate.
18105         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18106         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18107         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18108         in generated insn with original mem operand before emitting the insn.
18109         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18110         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18111         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18112         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18113         Use atomic_mem_operand_1 predicate and AraAdd constraints.
18114         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18115         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18116         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18117         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18118         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18119         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18120         atomic_not_fetch<mode>_soft_tcb,
18121         atomic_<fetchop_name>_fetch<mode>_soft_imask,
18122         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18123         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18124         Use atomic_mem_operand_1 predicate and SraSdd constraints.
18125
18126 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
18127
18128         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18129         and 3 earlyclobber operands.
18130
18131 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18132
18133         * common.opt (fstack-reuse): Mark as optimization.
18134
18135 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18136
18137         PR ipa/64982
18138         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18139
18140 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
18141
18142         PR tree-optimization/64326
18143         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18144
18145 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
18146
18147         PR gcov-profile/61889
18148         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18149
18150 2015-02-10  Richard Biener  <rguenther@suse.de>
18151
18152         PR tree-optimization/64995
18153         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18154         value we use is final.
18155         (visit_reference_op_store): Always valueize op.
18156         (visit_use): Properly valueize vuses.
18157
18158 2015-02-10  Richard Biener  <rguenther@suse.de>
18159
18160         PR tree-optimization/64909
18161         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18162         pass a scalar-stmt count estimate to the cost model.
18163         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18164
18165 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
18166
18167         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18168         enabled by default together with var-tracking.
18169
18170 2015-02-10  Nick Clifton  <nickc@redhat.com>
18171
18172         * config/rl78/rl78.c: Remove DIV attribute code accidentally
18173         included in previous rl78 commit.
18174
18175 2015-02-10  Richard Biener  <rguenther@suse.de>
18176
18177         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18178         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18179         return the bitpack.
18180
18181 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18182
18183         PR gcov-profile/61889
18184         * config.in: regenerate.
18185         * configure.in: Likewise.
18186         * configure.ac: Check for ftw.h.
18187         * gcov-tool.c: Check for ftw.h before using nftw.
18188
18189 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18190
18191         PR lto/64076
18192         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18193         assert when not in lto mode.
18194
18195 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18196
18197         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18198         initialization/assignment of conflict_size.
18199
18200 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18201
18202         PR ipa/64978
18203         * ipa-cp.c (gather_caller_stats): Skip thunks.
18204         (propagate_constants_topo): Skip aliases.
18205
18206 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18207
18208         PR target/64761
18209         * config/sh/sh.c (sh_option_override): Don't change
18210         -freorder-blocks-and-partition to -freorder-blocks even when
18211         unwinding is enabled.
18212         (sh_can_follow_jump): Return false if the followee jump is
18213         a crossing jump when -freorder-blocks-and-partition is specified.
18214         * config/sh/sh.md (*jump_compact_crossing): New insn.
18215
18216 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18217             Kaz Kojima  <kkojima@gcc.gnu.org>
18218
18219         PR target/64761
18220         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18221         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18222         (sh_can_redirect_branch): Rename to ...
18223         (sh_can_follow_jump): ... this.  Constify argument types.
18224         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18225         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18226         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18227         * doc/tm.texi: Regenerate.
18228
18229 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18230
18231         PR sanitizer/64981
18232         * builtins.c (expand_builtin): Call targetm.expand_builtin
18233         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18234
18235 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18236
18237         PR ipa/61548
18238         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18239
18240 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18241
18242         PR ipa/63566
18243         * ipa-icf.c (set_local): New function.
18244         (sem_function::merge): Use it.
18245
18246 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18247
18248         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18249         (add_type_duplicate): Fix comparison of BINFOs.
18250
18251 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18252
18253         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18254         on getting VOID pointer.
18255
18256 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18257
18258         PR target/64979
18259         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18260         va_list escapes.
18261
18262 2015-02-09  Richard Biener  <rguenther@suse.de>
18263
18264         * genmatch.c (replace_id): Copy expr_type.
18265
18266 2015-02-09  Richard Biener  <rguenther@suse.de>
18267
18268         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18269         (streamer_write_tree_bitfields): Declare.
18270         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18271         properly unpack padding.
18272         (unpack_value_fields): Inline ...
18273         (streamer_read_tree_bitfields): ... here.
18274         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18275         and properly add padding bits.
18276         (streamer_pack_tree_bitfields): Fold into ...
18277         (streamer_write_tree_bitfields): ... this new function,
18278         exposing the bitpack object.
18279         * lto-streamer-out.c (lto_write_tree_1): Call
18280         streamer_write_tree_bitfields.
18281
18282 2015-02-09  Richard Biener  <rguenther@suse.de>
18283
18284         PR tree-optimization/54000
18285         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18286         (struct ivopts_data): Add loop_loc member.
18287         (tree_ssa_iv_optimize_loop): Dump loop location.
18288         (create_new_ivs): Likewise, also dump number of IVs generated.
18289
18290 2015-02-09  Martin Liska  <mliska@suse.cz>
18291
18292         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18293         just if not yet registered.
18294         (ipa_icf_generate_summary): Register callgraph hooks.
18295
18296 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18297
18298         * config/aarch64/aarch64.c (gty_dummy): Delete.
18299
18300 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18301
18302         PR ipa/63566
18303         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18304         (cgraph_node::local_p): Remove thunk related FIXME.
18305
18306 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18307
18308         PR ipa/63566
18309         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18310         is local and optimized.
18311         (ix86_function_sseregparm): Likewise; also use target's SSE math
18312         settings; error out instead of silently generating wrong code
18313         on mismatches.
18314         (init_cumulative_args): Look through aliases.
18315
18316 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18317
18318         PR ipa/63566
18319         * ipa-split.c (execute_split_functions): Split if function has aliases.
18320
18321 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18322
18323         PR ipa/63566
18324         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18325         aliases before trying to expand it.
18326         (cgraph_node::expand_thunk): Fix formating.
18327
18328 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18329
18330         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18331         (Using Assembly Language with C): Expand introduction.
18332         (Basic Asm): Copy-edit.  Add more information about uses of
18333         basic asm.
18334         (Extended Asm): Copy-edit.  Document new escape syntax and
18335         %l[label] syntax.
18336         (Global Reg Vars): Copy-edit.
18337         (Local Reg Vars): Likewise.
18338
18339 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18340
18341         PR debug/2714
18342         PR bootstrap/64256
18343         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18344         (DBX_CONTIN_CHAR): Define.
18345
18346 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18347             Brian Rzycki  <b.rzycki@samsung.com>
18348
18349         PR tree-optimization/64878
18350         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18351         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18352         Stop recursion at loop phi nodes after having visited a loop phi node.
18353
18354 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18355
18356         * toplev.c (process_options): Change flag_ipa_ra before creating
18357         optimization_{default,current}_node.
18358
18359         PR ipa/64896
18360         * cgraphunit.c (cgraph_node::expand_thunk): If
18361         restype is not is_gimple_reg_type nor the thunk_fndecl
18362         returns aggregate_value_p, set restmp to a temporary variable
18363         instead of resdecl.
18364
18365 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18366
18367         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18368
18369 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18370
18371         PR target/64205
18372         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18373         add a general secondary reload handler for SDmode, unless we have
18374         both read/write support for SDmode.
18375
18376 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18377
18378         PR middle-end/64937
18379         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18380         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18381         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18382         1 before, push it to abstract_vec.
18383         (dwarf2out_abstract_function): Adjust caller.  Don't call
18384         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18385         DECL_ABSTRACT_P flags for all abstract_vec elts.
18386
18387 2015-02-06  Renlin Li  <renlin.li@arm.com>
18388
18389         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18390         complex gimple.
18391         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18392
18393 2015-02-06  Jeff Law  <law@redhat.com>
18394
18395         PR target/64889
18396         * config/h8300/h8300.c (push): New argument "in_prologue".
18397         Pass "in_prologue" along to "F".
18398         (h8300_push_pop): Corresponding changes.
18399         (h8300_expand_prologue): Likewise.
18400         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18401
18402 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18403
18404         PR rtl-optimization/64957
18405         PR debug/64817
18406         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18407         IOR rather than for AND.
18408
18409 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18410
18411         PR target/62631
18412         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18413         of shift-add and (add + shift) operations.  Rename local variable.
18414
18415 2015-02-05  Jeff Law  <law@redhat.com>
18416
18417         PR target/17306
18418         * config/h8300/constraints.md (U): Correctly dectect
18419         "eightbit_data" memory addresses.
18420         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18421         handle (const (plus (symbol_ref (x)))) where x is declared
18422         as an 8-bit data memory address.
18423         * config/h8300/h8300.md (call, call_value): Correctly detect
18424         "funcvec" functions.
18425
18426         PR target/43264
18427         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18428         24 to 28 bits for the H8/300.
18429
18430 2015-02-06  Alan Modra  <amodra@gmail.com>
18431
18432         PR target/64876
18433         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18434         (rs6000_call_aix): Use it.
18435
18436 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18437
18438         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18439         check.
18440
18441 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18442
18443         * config/h8300/constraints.md ("U" constraint): Use strict
18444         variant of REG_OK_FOR_BASE_P after reload has started.
18445
18446 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18447
18448         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18449         define to zero if !TARGET_NEON.
18450         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18451
18452 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18453             Trevor Saunders  <tsaunders@mozilla.com>
18454
18455         PR ipa/61548
18456         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18457
18458 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18459
18460         PR ipa/61548
18461         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18462         when removing varpool nodes.
18463
18464 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18465
18466         PR ipa/61548
18467         * varpool.c (varpool_node::remove): Fix order of variables.
18468
18469 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18470
18471         PR ipa/64686
18472         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18473         speculation resolution and key updates.
18474
18475 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18476
18477         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18478         about not letting any speculative edges unupdated.
18479
18480 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18481
18482         PR gcov/64123
18483         * gcov-io.c (gcov_var): Export.
18484
18485 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18486
18487         PR middle-end/64922
18488         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18489         edges that become speculative.
18490
18491 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18492
18493         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18494         or DW_LANG_Fortran08.
18495         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18496         DW_LANG_Fortran08.
18497         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18498         "GNU Fortran2008" language strings.
18499         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18500         * langhooks.h (lang_GNU_Fortran): New prototype.
18501         * langhooks.c (lang_GNU_Fortran): New function.
18502         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18503         lang_GNU_Fortran.
18504
18505 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18506
18507         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18508         (RTX_OK_FOR_OLO10_P): Likewise.
18509
18510 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18511
18512         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18513
18514 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18515
18516         PR middle-end/64922
18517         * gimple.c: Include gimple-ssa.h.
18518         (maybe_remove_unused_call_args): New function.
18519         * gimple.h (maybe_remove_unused_call_args): Declare.
18520         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18521         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18522         * gimple-fold.c (gimple_fold_call): Likewise.
18523
18524 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18525
18526         PR rtl-optimization/64905
18527         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18528         pointer alignment if it isn't needed.
18529
18530 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18531
18532         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18533         cortex-a72.cortex-a53.
18534         * config/aarch64/aarch64-tune.md: Regenerate.
18535         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18536
18537 2015-02-04  Nick Clifton  <nickc@redhat.com>
18538
18539         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18540         inside a MEM.
18541
18542 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18543
18544         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18545         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18546         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18547         of DEF_BUILTIN.
18548         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18549         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18550         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18551         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18552         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18553         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18554         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18555         * tree-core.h (enum built_in_function): In between
18556         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18557         for builtins that use DEF_BUILTIN_CHKP macro.
18558
18559 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18560
18561         PR debug/64817
18562         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18563         operands for tcc_comparison exprs.  Fix typos.
18564
18565         PR debug/64817
18566         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18567         of two XORs that have an intervening AND or IOR.
18568
18569         PR debug/64817
18570         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18571         simplification of XOR of AND to not allocate new rtx before
18572         committing to a simplification.
18573
18574 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18575
18576         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18577         manual swaps in all peepholes.
18578
18579 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18580
18581         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18582         of manual swapping implementation.
18583         (aarch64_expand_vec_perm_const_1): Likewise.
18584
18585 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18586
18587         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18588         (generic_addrcost_table): Remove NAMED_PARAM.
18589         (cortexa57_addrcost_table): Likewise.
18590         (xgene1_addrcost_table): Likewise.
18591         (generic_regmove_table): Likewise.
18592         (cortexa53_regmove_table): Likewise.
18593         (xgene1_regmove_table): Likewise.
18594         (generic_vector_table): Likewise.
18595         (cortexa57_vector_table): Likewise.
18596         (xgene1_vector_table): Likewise.
18597         (generic_tunings): Likewise.
18598         (cortexa53_tunings): Likewise.
18599         (cortexa57_tunings): Likewise.
18600         (xgene1_tunings): Likewise.
18601
18602 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18603
18604         * config/arm/arm-cores.def: Add cortex-a72 and
18605         cortex-a72.cortex-a53.
18606         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18607         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18608         * config/arm/arm-tune.md: Regenerate.
18609         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18610         "cortex-a72.cortex-a53".
18611         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18612
18613 2015-02-04  Nick Clifton  <nickc@redhat.com>
18614
18615         PR target/64408
18616         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18617         of accepted codes.
18618         (nonimmediate_di_operand): Likewise.
18619
18620         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18621         prefixes of known F5 using MSP430 MCUs.
18622
18623 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18624
18625         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18626         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18627         instead of __builtin_sqrt.
18628
18629 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18630
18631         * varasm.c (do_assemble_alias): Follow transparent alias
18632         chain for target.
18633         (default_assemble_visibility): Follow transparent alias
18634         chain for decl name.
18635
18636 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18637
18638         PR middle-end/62103
18639         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18640         to compute size of referenced value in the constant case.
18641
18642 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18643
18644         PR rtl-optimization/64756
18645         * cse.c (invalidate_dest): New function.
18646         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18647         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18648         invalidate and do not record it.
18649
18650 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18651
18652         PR target/64660
18653         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18654         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18655         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18656         atomic_nand<mode>_soft_tcb): New insns.
18657         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18658         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18659         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18660         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18661         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18662         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18663         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18664         atomic_not<mode>_hard if operands[0] is unused.
18665         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18666         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18667         if operands[0] is unused.
18668         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18669         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18670         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18671         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18672         unused.
18673         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18674         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18675         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18676         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18677         if operands[0] is unused.
18678         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18679         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18680         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18681         atomic_nand_fetchsi_hard if operands[0] is unused.
18682         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18683         atomic_nand<mode>_hard if operands[0] is unused.
18684         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18685         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18686         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18687         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18688         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18689         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18690         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18691         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18692         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18693         atomic_not<mode>_hard if operands[0] is unused.
18694         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18695         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18696         unused.
18697         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18698         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18699         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18700         atomic_nand<mode>_hard if operands[0] is unused.
18701         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18702         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18703
18704 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18705
18706         PR jit/64810
18707         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18708         * gcc-main.c: New file, containing "main" taken from gcc.c.
18709         * gcc.c (do_self_spec): Free decoded_options.
18710         (class driver): Move declaration to gcc.h.
18711         (main): Move declaration and implementation to new file
18712         gcc-main.c.
18713         (driver_get_configure_time_options): New function.
18714         * gcc.h (class driver): Move this declaration here, from
18715         gcc.c.
18716         (driver_get_configure_time_options): New declaration.
18717
18718 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18719
18720         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18721         cross-module inlining.
18722         * cgraph.h (cgraph_node): Add flag merged.
18723         * ipa-icf.c (sem_function::merge): Maintain it.
18724
18725 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18726
18727         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18728         instead of OBJECT_P.
18729
18730 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18731
18732         PR target/62631
18733         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18734         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18735         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18736         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18737
18738 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18739
18740         PR other/63504
18741         * combine.c (reg_n_sets_max): New variable.
18742         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18743         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18744         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18745         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18746         (rest_of_handle_combine): Initialize reg_n_sets_max.
18747
18748 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18749
18750         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18751         if some always_inline was inlined, apply changes before inlining
18752         heuristically.
18753
18754 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
18755
18756         PR jit/64810
18757         * config/arm/arm.c (arm_option_override): Set
18758         arm_selected_arch/cpu/tune to NULL on entry.
18759
18760 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
18761             Andrew Pinski  <pinskia@gcc.gnu.org>
18762             Jakub Jelinek  <jakub@gcc.gnu.org>
18763
18764         PR target/64231
18765         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
18766         integer typing for small model. Use IN_RANGE.
18767
18768 2015-02-02  Richard Biener  <rguenther@suse.de>
18769
18770         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
18771         * tree-vrp.c (vrp_valueize_1): Likewise.
18772
18773 2015-02-02  Alan Modra  <amodra@gmail.com>
18774
18775         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
18776         than mem for toc_restore.
18777         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
18778         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
18779         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
18780
18781 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
18782
18783         PR target/64047
18784         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
18785         explicit default options.
18786
18787 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
18788
18789         PR ipa/64872
18790         * ipa-utils.c (ipa_merge_profiles): Add release argument.
18791         * ipa-icf.c (sem_function::merge): Do not release body when merging.
18792         * ipa-utils.h (ipa_merge_profiles): Update prototype.
18793
18794 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
18795
18796         PR debug/64817
18797         * cfgexpand.c (deep_ter_debug_map): New variable.
18798         (avoid_deep_ter_for_debug): New function.
18799         (expand_debug_expr): If TERed SSA_NAME is in
18800         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
18801         instead of trying to expand SSA_NAME's def stmt.
18802         (expand_debug_locations): When expanding debug bind
18803         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
18804         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
18805         value.
18806         (pass_expand::execute): Call avoid_deep_ter_for_debug on
18807         all debug bind stmts.  Delete deep_ter_debug_map after
18808         expand_debug_location if non-NULL and clear it.
18809
18810 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
18811
18812         PR target/64851
18813         * config/sh/sync.md (atomic_fetch_notsi_hard,
18814         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
18815         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
18816         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
18817         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
18818         atomic_not_fetch<mode>_soft_imask): New insns.
18819
18820 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18821
18822         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
18823         (rank_for_schedule_debug): Split from ...
18824         (rank_for_schedule): ... this.
18825         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
18826         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
18827
18828 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18829
18830         * doc/md.texi (Machine Constraints): Alphabetize table by target.
18831         * doc/extend.texi (x86 Variable Attributes): Move section to
18832         correct alphabetization after renaming.
18833         (x86 Type Attributes): Likewise.
18834         (Target Builtins): Re-alphabetize menu.
18835         (x86 Built-in Functions): Move section to correct alphabetization
18836         after renaming.
18837         (x86 transactional memory intrinsics): Likewise.
18838         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
18839         and x86 Windows Options in table and menu.
18840         (x86 Options): Move section to correct alphabetization after
18841         renaming.
18842         (x86 Windows Options): Likewise.
18843
18844 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18845
18846         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
18847         preferred names of the architecture and its 32- and 64-bit
18848         variants.
18849         * doc/invoke.texi: Likewise.
18850         * doc/md.texi: Likewise.
18851
18852 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18853
18854         PR target/64882
18855         * config/i386/predicates.md (address_no_seg_operand): Reject
18856         non-CONST_INT_P operands in invalid mode.
18857
18858 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18859
18860         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
18861         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
18862         * config/i386/predicates.md (address_no_seg_operand): Call
18863         address_operand with VOIDmode.
18864         (vsib_address_operand): Ditto.
18865         (address_mpx_no_base_operand): Ditto.
18866         (address_mpx_no_index_operand): Ditto.
18867
18868 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18869
18870         PR target/64688
18871         * lra-constraints.c (original_subreg_reg_mode): New.
18872         (simplify_operand_subreg): Try to simplify subreg of const.  Use
18873         original_subreg_reg_mode for it.
18874         (swap_operands): Update original_subreg_reg_mode.
18875         (curr_insn_transform): Set up original_subreg_reg_mode.
18876
18877 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18878
18879         PR target/64617
18880         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
18881         function.
18882         (process_alt_operands): Use it.
18883         (curr_insn_transform): Check the optional reload pseudo class is
18884         ok for the mode.
18885
18886 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
18887
18888         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
18889         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
18890         prototype.
18891         * toplev.h (init_asm_output): Update comment on use of
18892         UNKNOWN_LOCATION with fatal_error.
18893         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
18894         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
18895         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
18896         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
18897         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
18898         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
18899         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
18900         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
18901         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
18902         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
18903         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
18904         fatal_error changed to pass input_location as first argument.
18905
18906 2015-01-30  Martin Liska  <mliska@suse.cz>
18907
18908         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
18909         in #pragma GCC diagnostic guards.
18910
18911 2015-01-30  Richard Biener  <rguenther@suse.de>
18912
18913         PR tree-optimization/64829
18914         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
18915         not add a widening conversion pattern but hand off extra
18916         widenings to callers.
18917         (vect_recog_widen_mult_pattern): Handle extra widening produced
18918         by vect_handle_widen_op_by_const.
18919         (vect_recog_widen_shift_pattern): Likewise.
18920         (vect_pattern_recog_1): Remove excess vertical space in dumping.
18921         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18922         (vect_init_vector_1): Likewise.
18923         (vect_get_vec_def_for_operand): Likewise.
18924         (vect_finish_stmt_generation): Likewise.
18925         (vectorizable_load): Likewise.
18926         (vect_analyze_stmt): Likewise.
18927         (vect_is_simple_use): Likewise.
18928
18929 2015-01-29  Jeff Law  <law@redhat.com>
18930
18931         * combine.c (try_combine): Fix typo in comment.
18932
18933 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
18934
18935         PR target/64580
18936         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
18937         (rs6000_stack_info): Add assert.
18938         (rs6000_output_savres_externs): New function, split off from...
18939         (rs6000_output_function_prologue): ... here.  Do not call it for
18940         thunks.
18941
18942 2015-01-29  Jeff Law  <law@redhat.com>
18943
18944         PR target/15184
18945         * combine.c (try_combine): If I0 is a memory load and I3 a store
18946         to a related address, increase the "goodness" of doing a 4-insn
18947         combination with I0-I3.
18948         (make_field_assignment): Handle SUBREGs in the ior+and case.
18949
18950 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
18951
18952         PR tree-optimization/64746
18953         * tree-if-conv.c (mask_exists): New function.
18954         (predicate_mem_writes): Save created mask with given size for further
18955         use.
18956         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
18957         (ifcvt_repair_bool_pattern): Collect all statements that are root
18958         of bool pattern and use iterative algorithm to remove multiple uses
18959         of predicates, display number of required iterations.
18960
18961 2015-01-29  Richard Biener  <rguenther@suse.de>
18962
18963         PR tree-optimization/64853
18964         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
18965         stmt will get simulated again.
18966         * tree-ssa-ccp.c (valueize_op_1): Likewise.
18967
18968 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18969
18970         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
18971         return_in_pc.  Remove redundant assignments.
18972         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
18973         (arm_expand_epilogue): Don't compare boolean with true in if condition.
18974
18975 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
18976
18977         * config/i386/i386.c (ix86_mode_after): Make static.
18978
18979 2015-01-29  Richard Biener  <rguenther@suse.de>
18980
18981         PR tree-optimization/64844
18982         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
18983         dump cost model analysis.
18984         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18985         Do not register adjusted load/store costs here.
18986
18987 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18988             Uros Bizjak  <ubizjak@gmail.com>
18989
18990         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
18991         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
18992         using x86_use_pseudo_pic_reg.
18993         * config/i386/i386.c (ix86_conditional_register_usage): Remove
18994         support for fixed PIC register.
18995         (ix86_use_pseudo_pic_reg): Not static any more.
18996
18997 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18998
18999         PR middle-end/64805
19000         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
19001         to avoid error in cgraph node verification.
19002
19003 2015-01-29  Marek Polacek  <polacek@redhat.com>
19004
19005         * doc/standards.texi: Reflect that the default for C is gnu11.
19006
19007 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19008
19009         PR target/64761
19010         * reorg.c (switch_text_sections_between_p): New function.
19011         (relax_delay_slots): Call it when testing if the jump insn
19012         is removable.  Use targetm.can_follow_jump when testing if
19013         the conditional branch can follow an unconditional jump.
19014
19015 2015-01-27  Caroline Tice  <cmtice@google.com>
19016
19017         Committing VTV Cywin/Ming patch for Patrick Wollgast
19018         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
19019         if -fvtable-verify=preinit/std is used.
19020         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
19021         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
19022         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
19023         if -fvtable-verify=preinit/std is used.
19024         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
19025         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
19026         if -fvtable-verify=preinit/std is used.
19027         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
19028         * config/i386/mingw32.h (LIB_SPEC): Likewise.
19029         * varasm.c (assemble_variable): Add code to properly set the comdat
19030         section and name for the .vtable_map_vars section in case the
19031         target is PE or COFF.
19032
19033 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19034
19035         PR ipa/64801
19036         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
19037         make sane BB profile.
19038         (cgraph_node::expand_thunk): Make sane BB profile.
19039         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
19040         * cgraph.h (init_lowered_empty_function): Update prototype.
19041         * config/i386/i386.c (make_resolver_func): Update call.
19042         * predict.c (gate): Disable branch prediction pass if
19043         profile is already there.
19044
19045 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19046
19047         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
19048         * opth-gen.awk: Likewise.
19049         * common.opt: Mark flag_fp_contract_mode as Optimization.
19050
19051 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19052
19053         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
19054         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
19055
19056 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
19057
19058         PR target/64659
19059         * config/sh/predicates.md (atomic_arith_operand,
19060         atomic_logical_operand): Remove.
19061         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
19062         (atomic_arith_operand_0): New predicate.
19063         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
19064         Use atomic_arith_operand_0 for input values.
19065         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
19066         atomic_compare_and_swap<mode>_soft_gusa,
19067         atomic_compare_and_swap<mode>_soft_tcb,
19068         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
19069         arith_reg_operand instead of register_operand.
19070         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
19071         atomic_arith_operand_0 for newval input.
19072         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
19073         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
19074         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
19075         arith_reg_operand instead of register_operand.
19076         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
19077         fetchop_predicate_1, fetchop_constraint_1_llcs,
19078         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
19079         fetchop_constraint_1_imask): New code iterator attributes.
19080         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
19081         register_operand.  Use fetchop_predicate_1.
19082         (atomic_fetch_<fetchop_name>si_hard,
19083         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
19084         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
19085         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
19086         and arith_reg_operand instead of register_operand.  Use
19087         fetchop_predicate_1, fetchop_constraint_1_gusa.
19088         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
19089         and arith_reg_operand instead of register_operand.  Use
19090         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
19091         to allow R0 usage.
19092         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
19093         and arith_reg_operand instead of register_operand.  Use
19094         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
19095         to allow R0 usage.
19096         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
19097         register_operand.  Use atomic_logical_operand_1.
19098         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
19099         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
19100         arith_reg_operand instead of register_operand.
19101         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
19102         Use arith_reg_dest and arith_reg_operand instead of register_operand.
19103         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
19104         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
19105         register_operand.  Use fetchop_predicate_1.
19106         (atomic_<fetchop_name>_fetchsi_hard,
19107         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19108         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19109         fetchop_constraint_1_llcs.
19110         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19111         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19112         fetchop_constraint_1_gusa.
19113         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19114         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19115         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
19116         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19117         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19118         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
19119         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19120         register_operand.  Use atomic_logical_operand_1.
19121         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19122         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19123         arith_reg_operand instead of register_operand.
19124         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19125         arith_reg_operand instead of register_operand.  Use logical_operand
19126         and K08.  Adjust asm sequence to allow R0 usage.
19127         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19128         arith_reg_operand instead of register_operand.  Use logical_operand
19129         and K08.
19130
19131 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19132
19133         PR other/63504
19134         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19135         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19136         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19137         only get_full_len HOST_WIDE_INTs from get_val () array rather than
19138         all bits in *val_wide.
19139
19140 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
19141
19142         * varpool.c (tls_model_names): Fix names.
19143         (varpool_node::dump): Dump tls- prefix for tls models.
19144
19145 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
19146             Bernd Schmidt  <bernds@codesourcery.com>
19147             Nathan Sidwell  <nathan@codesourcery.com>
19148
19149         * config/nvptx/mkoffload.c: New file.
19150         * config/nvptx/t-nvptx: Add build rules for it.
19151         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19152         (extra_programs): Add mkoffload.
19153         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19154         function.
19155         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19156
19157 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
19158
19159         PR middle-end/64809
19160         * cfgexpand.c (reorder_operands): Skip debug gimples.
19161
19162 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
19163
19164         PR tree-optimization/64277
19165         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19166         range info when possible to refine estimation.
19167
19168 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19169
19170         PR tree-optimization/64718
19171         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19172         be a 16bit unsigned integer when n->range is 16.
19173         (bswap_replace): Convert src to that type if necessary for all bswap
19174         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19175         set in pass_optimize_bswap::execute ().
19176
19177 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19178
19179         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19180         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19181         integer and floating point variants.
19182         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19183
19184 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19185
19186         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19187         for all vector modes.
19188
19189 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19190
19191         PR bootstrap/64612
19192         * doc/sourcebuild.texi (comdat_group): Document.
19193
19194 2015-01-28  Terry Guo  <terry.guo@arm.com>
19195
19196         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19197
19198 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19199
19200         * toplev.c (print_version): Add param "show_global_state", and
19201         only print GGC and plugin information if it is true.
19202         (init_asm_output): Pass in "true" for the new param when calling
19203         print_version.
19204         (process_options): Likewise.
19205         (toplev::main): Likewise.
19206         * toplev.h (print_version): Add new param to decl.
19207
19208 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19209
19210         PR ipa/60871
19211         PR ipa/64139
19212         * tree.c (lookup_binfo_at_offset): New function.
19213         (get_binfo_at_offset): Use it.
19214
19215 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19216
19217         PR ipa/64282
19218         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19219         on vtable being vtable.
19220
19221 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19222
19223         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19224         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19225         -mhotpatch= option.
19226         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19227         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19228         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19229         Renamed.
19230         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19231         (s390_hotpatch_hw_max): New name.
19232         (s390_hotpatch_trampoline_halfwords): Renamed.
19233         (s390_hotpatch_hw_before_label): New name.
19234         (get_hotpatch_attribute): Removed.
19235         (s390_hotpatch_hw_after_label): New name.
19236         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19237         attribute.
19238         (s390_attribute_table): Ditto.
19239         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19240         (s390_function_num_hotpatch_hw): New name.
19241         Remove special handling of inline functions and hotpatching.
19242         Return number of nops before and after the function label.
19243         (s390_can_inline_p): Removed.
19244         (s390_asm_output_function_label): Emit a configurable number of nops
19245         after the function label.
19246         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19247         (TARGET_CAN_INLINE_P) Removed.
19248         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19249
19250 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19251             Jiong Wang  <jiong.wang@arm.com>
19252
19253         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19254         of scratch reg.
19255         (cb<optab><mode>1): Likewise.
19256         * config/aarch64/iterators.md (bcond): New define_code_attr.
19257
19258 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19259
19260         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19261         memory accesses.
19262
19263 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19264
19265         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19266         FPR->GPR moves.
19267
19268 2015-01-27  Richard Biener  <rguenther@suse.de>
19269
19270         * tree-vrp.c (update_value_range): Intersect the range with
19271         old recorded SSA name range information.
19272
19273 2015-01-27  Nick Clifton  <nickc@redhat.com>
19274
19275         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19276         BC, DE and HL registers directly, not via AX.
19277         When decrementing the stack pointer by a large amount, transfer SP
19278         into AX and perform the subtraction there.
19279         (rl78_expand_epilogue): Perform the inverse of the above
19280         enhancements.
19281
19282 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19283
19284         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19285
19286 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19287             Yury Gribov  <y.gribov@samsung.com>
19288
19289         PR ubsan/64741
19290         * ubsan.c (ubsan_source_location): Refactor code.
19291         (ubsan_type_descriptor): Update type size. Refactor code.
19292
19293 2015-01-27  Richard Biener  <rguenther@suse.de>
19294
19295         PR tree-optimization/56273
19296         PR tree-optimization/59124
19297         PR tree-optimization/64277
19298         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19299         from the first VRP pass.
19300
19301 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19302
19303         PR ipa/64776
19304         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19305         handle the first argument in the same loop as all the other arguments.
19306
19307         PR rtl-optimization/61058
19308         * jump.c (cleanup_barriers): Update basic block boundaries
19309         if BLOCK_FOR_INSN is non-NULL on PREV.
19310
19311 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19312
19313         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19314         bounds narrowing, already instrumented calls and calls to
19315         not instrumentable functions.
19316
19317 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19318
19319         PR tree-optimization/64807
19320         * wide-int.cc (wi::divmod_internal): Clear
19321         b_dividend[dividend_blocks_needed].
19322
19323 2015-01-26  DJ Delorie  <dj@redhat.com>
19324
19325         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19326         volatile memory references.
19327
19328 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19329
19330         PR target/49263
19331         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19332         remove_insn.
19333         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19334         shifts if it already fits into K08.
19335
19336 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19337
19338         PR ipa/64730
19339         * ipa-inline.c (inline_small_functions): Print "unknown" even
19340         if edge->call_stmt is non-NULL, but has builtins or unknown
19341         location.
19342
19343         PR middle-end/64421
19344         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19345         with asterisk, skip the first character.
19346
19347 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19348
19349         PR target/64806
19350         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19351         order change.
19352
19353 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19354
19355         PR target/64795
19356         * config/i386/i386.md (*movdi_internal): Also check operand 0
19357         to determine TYPE_LEA operand.
19358         (*movsi_internal): Ditto.
19359
19360 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19361
19362         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19363         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19364
19365 2015-01-26  Renlin Li  <renlin.li@arm.com>
19366
19367         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19368         the comment.
19369         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19370         for higher part.
19371
19372 2015-01-26  Richard Biener  <rguenther@suse.de>
19373
19374         PR middle-end/64764
19375         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19376         combining two BIT_AND_EXPR predicates.
19377
19378 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19379
19380         PR bootstrap/64754
19381         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19382
19383 2015-01-26  Terry Guo  <terry.guo@arm.com>
19384
19385         * config/arm/arm.c (arm_file_start): Update the assignment of
19386         Tag_ABI_HardFP_use.
19387
19388 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19389
19390         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19391         pipeline model.
19392         config/arm/arm.md: Include the new Cortex-A57 model.
19393         (generic_sched): Don't use generic_sched when tuning for
19394         Cortex-A57.
19395
19396 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19397             Uros Bizjak  <ubizjak@gmail.com>
19398
19399         * config/i386/i386.c (get_builtin_code_for_version): Add
19400         support for BMI and BMI2 multiversion functions.
19401
19402 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19403
19404         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19405         (extract_bit_field): Likewise.
19406         (extract_low_bits): Likewise.
19407         (expand_mult): Likewise.
19408         (expand_mult_highpart_adjust): Likewise.
19409
19410 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19411
19412         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19413         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19414         * config/i386/i386.c (processor_model): Add
19415         M_INTEL_COREI7_BROADWELL.
19416         (arch_names_table): Add "broadwell".
19417
19418 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19419
19420         PR target/49263
19421         PR target/53987
19422         PR target/64345
19423         PR target/59533
19424         PR target/52933
19425         PR target/54236
19426         PR target/51244
19427         * config/sh/sh-protos.h
19428         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19429         sh_extending_set_of_reg::use_as_unextended_reg,
19430         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19431         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19432         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19433         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19434         (sh_treg_insns): New class.
19435         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19436         (scope_counter): New class.
19437         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19438         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19439         sh_extending_set_of_reg::can_use_as_unextended_reg,
19440         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19441         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19442         sh_split_treg_set_expr): New functions.
19443         (addsubcosts): Handle treg_set_expr.
19444         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19445         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19446         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19447         (sh_insn_operands_modified_between_p): Make non-static.
19448         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19449         simple_mem_operand in addition to displacement_mem_operand.
19450         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19451         (treg_set_expr, treg_set_expr_not_const01,
19452         arith_reg_or_treg_set_expr): New predicates.
19453         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19454         arith_or_int_operand instead of logical_operand.  Convert to
19455         insn_and_split.  Try to optimize constant operand in splitter.
19456         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19457         (*tstqi_t_zero): Delete.
19458         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19459         (tstsi_t_and_not): Delete.
19460         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19461         Convert to insn_and_split.
19462         (unnamed split, tstsi_t_zero_extract_xor,
19463         tstsi_t_zero_extract_subreg_xor_little,
19464         tstsi_t_zero_extract_subreg_xor_big): Delete.
19465         (*tstsi_t_shift_mask): New insn_and_split.
19466         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19467         to recombine with surrounding insns when splitting.
19468         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19469         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19470         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19471         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19472         (*cbranch_div0s: Delete.
19473         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19474         Try to recombine with surrounding insns when splitting.  Add operand
19475         order variants.
19476         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19477         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19478         *addc_r_r_msb, *addc_2r_msb): Delete.
19479         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19480         order variant.
19481         (*addc_negreg_t): New insn_and_split.
19482         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19483         Try to recombine with surrounding insns when splitting.
19484         Add operand order variants.
19485         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19486         insn_and_split patterns.
19487         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19488         surrounding insns when splitting.
19489         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19490         (*rotcl): Likewise.  Add zero_extract variant.
19491         (*ashrsi2_31): New insn_and_split.
19492         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19493         (*zero_extend<mode>si2_disp_mem): Update comment.
19494         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19495         condition.
19496         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19497         with surrounding insns when splitting.
19498         (any_treg_expr_to_reg): New insn_and_split.
19499         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19500         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19501         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19502         *zero_extract_2): New single bit zero extract patterns.
19503         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19504         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19505         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19506         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19507         set destination.
19508         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19509         register_operand for set source.
19510
19511 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19512
19513         * i386.opt (prefetch_sse): New targetsave.
19514         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19515         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19516         ix86_cost/ix86_tune_cost.
19517
19518 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19519
19520         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19521         Support the JIT by using 0 as the language type.
19522
19523 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19524
19525         PR target/64317
19526         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19527         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19528         (mark_regno_live, process_bb_lives): Pass new parameter value to
19529         make_hard_regno_born.
19530
19531 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19532
19533         PR rtl-optimization/63637
19534         PR rtl-optimization/60663
19535         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19536         if elt->cost is MAX_COST for ASM_OPERANDS.
19537         (find_sets_in_insn): Fix up comment typo.
19538         (cse_insn): Don't set src_volatile for all non-volatile
19539         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19540         or with "memory" clobber.  Set elt->cost to MAX_COST
19541         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19542         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19543
19544 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19545
19546         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19547         alternative 1.
19548
19549 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19550
19551         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19552         libgcc/config/i386/elf-lib.h.
19553
19554 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19555
19556         PR driver/64737
19557         * gcc.c (print_configuration): Don't print a blank line at the end
19558         here...
19559         (run_attempt): ... but here unstead.
19560
19561         PR middle-end/64734
19562         * omp-low.c (scan_sharing_clauses): Don't ignore
19563         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19564         on target data/update constructs.
19565
19566 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19567
19568         PR target/50928
19569         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19570         (DEBUG_RELOAD): Removed define.
19571         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19572         (m32c_function_arg): Added a type cast.
19573         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19574         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19575         * config/m32c/bitops.md (andqi3_16): Likewise.
19576         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19577         (push_a01_l): Likewise.
19578
19579 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19580
19581         PR jit/64721
19582         * main.c (main): Construct toplev instances with init_signals=true.
19583         * toplev.c (general_init): Add param "init_signals", and use it to
19584         conditionalize the calls to signal and host_hooks.extra_signals.
19585         (toplev::toplev): Add param "init_signals".
19586         (toplev::main): When invoking general_init, pass m_init_signals
19587         to control whether signal-handlers are installed.
19588         * toplev.h (toplev::toplev): Add param "init_signals".
19589         (toplev::m_init_signals): New field.
19590
19591 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19592
19593         PR jit/64722
19594         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19595         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19596         latter may be affected by the former (e.g. on i686).
19597
19598 2015-01-23  Martin Liska  <mliska@suse.cz>
19599
19600         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19601         false positive during profiledbootstrap.
19602
19603 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19604
19605         PR libgomp/64672
19606         * lto-opts.c (lto_write_options): Output non-explicit conservative
19607         -fno-openacc.
19608         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19609         (append_compiler_options): Pass -fopenacc through.
19610
19611 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19612
19613         PR libgomp/64707
19614         * lto-opts.c (lto_write_options): Output non-explicit conservative
19615         -fno-openmp.
19616         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19617         (append_compiler_options): Pass -fopenmp through.
19618
19619 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19620
19621         PR debug/64511
19622         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19623         GTY markup.
19624
19625         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19626         * diagnostic.def (DK_ICE_NOBT): New kind.
19627         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19628         like DK_ICE, but never print backtrace.
19629         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19630         (internal_error_no_backtrace): New function.
19631         * gcc.c (execute): Use internal_error_no_backtrace instead of
19632         internal_error.
19633
19634 2015-01-22  Jeff Law  <law@redhat.com>
19635
19636         PR target/52076
19637         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19638         improve code density for small immediate to memory case.
19639         (insv): Better handle bitfield assignments when the field is
19640         being set to all ones.
19641         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19642         operand predicate.
19643
19644 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19645             Jakub Jelinek  <jakub@redhat.com>
19646
19647         PR middle-end/64729
19648         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19649         for !TARGET_LIBC_PROVIDES_SSP version and
19650         -fstack-protector-{all,strong,explicit} otherwise.
19651         * config/freebsd.h (LINK_SSP_SPEC): Handle
19652         -fstack-protector-{strong,explicit}.
19653
19654 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19655             H.J. Lu  <hongjiu.lu@intel.com>
19656
19657         PR ipa/64694
19658         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19659         heap.
19660
19661 2015-01-22  Wei Mi  <wmi@google.com>
19662
19663         PR rtl-optimization/64557
19664         * dse.c (record_store): Call get_addr for mem_addr.
19665         (check_mem_read_rtx): Likewise.
19666
19667 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19668
19669         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19670
19671 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19672
19673         * toplev.c (init_local_tick): Process the failure when read
19674         fails for random_seed.
19675
19676         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19677         'pretty_name' to avoid memory overflow.
19678
19679 2015-01-22  Richard Biener  <rguenther@suse.de>
19680
19681         PR middle-end/64728
19682         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19683         abnormal coalescing on undefined SSA names.
19684
19685 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19686
19687         PR target/64688
19688         PR target/64477
19689         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19690         for alternative 3.
19691         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19692
19693 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19694
19695         PR middle-end/63325
19696         * fold-const.c (fold_checksum_tree): Don't include value of
19697         expr->decl_with_vis.symtab_node in the checksum.
19698
19699 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19700
19701         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19702
19703 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19704
19705         PR driver/64690
19706         * gcc.c (insert_comments): New function.
19707         (try_generate_repro): Call it.
19708         (append_text): Removed.
19709
19710 2015-01-22  Richard Biener  <rguenther@suse.de>
19711
19712         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19713         with IL incompatible options.  Properly honor user optimize
19714         attributes.
19715
19716 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19717
19718         PR rtl-optimization/64682
19719         * combine.c (distribute_notes): When moving a death note for
19720         a register that is set in the new I2, make sure to put it
19721         before that new I2.
19722
19723 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19724
19725         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19726         not TARGET_DEFAULT.
19727
19728 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19729
19730         PR debug/64511
19731         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19732         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19733         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19734
19735         PR sanitizer/64706
19736         * doc/invoke.texi (-fsanitize=vptr): Document.
19737
19738         PR rtl-optimization/62078
19739         * dse.c: Include cfgcleanup.h.
19740         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19741         anything call purge_all_dead_edges and cleanup_cfg at the end
19742         of the pass.
19743
19744 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19745
19746         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19747         edges.
19748
19749 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19750
19751         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19752         decl attribute.
19753
19754 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19755             Tejas Belagod <Tejas.Belagod@arm.com>
19756
19757         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
19758         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
19759         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
19760         Removed.
19761
19762 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19763             Tejas Belagod <Tejas.Belagod@arm.com>
19764
19765         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
19766         (aarch64_reverse_mask): New decls.
19767         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
19768         (insn_count): New mode_attr.
19769         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
19770         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
19771         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
19772         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
19773         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
19774         (aarch64_simd_st4): New patterns.
19775         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
19776         (aarch64_reverse_mask): New functions.
19777
19778 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
19779
19780         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
19781         Declare.
19782         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
19783         addressing modes for BE.
19784         (aarch64_print_operand): Add 'R' specifier.
19785         (aarch64_simd_disambiguate_copy): Delete.
19786         (aarch64_simd_emit_reg_reg_move): New function.
19787         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
19788         in define_splits for structural moves.
19789         (mov<mode>): Use less restrictive predicates.
19790         (*aarch64_mov<mode>): Simplify and only allow for LE.
19791         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
19792
19793 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
19794
19795         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
19796
19797 2015-01-21  Richard Henderson  <rth@redhat.com>
19798
19799         PR target/64669
19800         * ccmp.c (used_in_cond_stmt_p): Remove.
19801         (expand_ccmp_expr): Don't use it.
19802
19803 2015-01-21  Nick Clifton  <nickc@redhat.com>
19804
19805         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
19806         PARALLELs.
19807
19808 2015-01-21  Richard Biener  <rguenther@suse.de>
19809
19810         PR middle-end/64313
19811         * tree-core.h (builtin_info, builtin_info_type): Turn from
19812         an object with two arrays into an array of an object with
19813         decl and two flags, implicit_p and declared_p.
19814         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
19815         set_builtin_decl, set_builtin_decl_implicit_p,
19816         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
19817         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
19818         * builtins.c (builtin_info): Adjust.
19819         * gimplify.c (gimplify_addr_expr): References to builtins
19820         that have been declared by the user makes them eligible for
19821         use by the compiler.  Call set_builtin_decl_implicit_p on them.
19822
19823 2015-01-20  Jeff Law  <law@redhat.com>
19824
19825         PR target/59946
19826         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
19827         allow pc-relative addresses in operand predicates or constraints.
19828
19829 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
19830
19831         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
19832         neon on aarch32 processors for stringops.
19833
19834 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19835
19836         PR ipa/63576
19837         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
19838
19839 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19840
19841         PR lto/45375
19842         * ipa-inline.c: Include lto-streamer.h
19843         (report_inline_failed_reason): Output source file differences and
19844         flags on optimization/target node mismatch.
19845         (can_inline_edge_p): Consider caller to be the outer inline function;
19846         be less restrictive about matching opimize and optimize_size attributes.
19847         (inline_account_function_p): Break out from ...
19848         (inline_small_functions): ... here.
19849         * ipa-inline-transform.c (clone_inlined_nodes): Use
19850         inline_account_function_p.
19851         (inline_call): Use optimize attribution; use inline_account_function_p.
19852         (inline_transform): Use opt_for_fn.
19853         * ipa-inline.h (inline_account_function_p): Declare.
19854
19855 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
19856
19857         PR debug/64663
19858         * dwarf2out.c (decl_piece_node): Don't put bitsize into
19859         mode if bitsize <= 0.
19860         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
19861         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
19862         sizes and positions.
19863
19864 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
19865
19866         * config/nios2/nios2.c (nios2_asm_file_end): Implement
19867         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
19868         needed.
19869         (TARGET_ASM_FILE_END): Define.
19870
19871 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19872
19873         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
19874         (struct tune_params): Use the enum.
19875         * arm.c (arm_*_tune): Update.
19876         (arm_option_override): Update.
19877
19878 2015-01-20  Richard Biener  <rguenther@suse.de>
19879
19880         PR ipa/64684
19881         * ipa-reference.c (add_static_var): Inline ...
19882         (analyze_function): ... here after splitting out from ...
19883         (is_proper_for_analysis): ... this.
19884
19885 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
19886
19887         PR target/64149
19888         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
19889         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
19890         replace the conditional with it's true branch.
19891         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
19892         (arm_lra_p): Remove.
19893
19894 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19895
19896         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
19897
19898 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19899
19900         * config/tilegx/mul-tables.c: Move symtab.h include after
19901         coretypes.h include.
19902         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
19903         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
19904         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
19905         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
19906         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19907
19908 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
19909
19910         PR bootstrap/64676
19911         Revert:
19912         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19913
19914         PR rtl-optimization/64081
19915         * loop-iv.c (def_pred_latch_p): New function.
19916         (latch_dominating_def): Allow specific cases with non-single
19917         definitions.
19918         (iv_get_reaching_def): Likewise.
19919         (check_complex_exit_p): New function.
19920         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19921         with exits not executing on any iteration.
19922
19923 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19924
19925         PR lto/45375
19926         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
19927         to set branch cost.
19928
19929 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19930
19931         PR lto/45375
19932         * i386.c (gate): Check flag_expensive_optimizations and
19933         optimize_size.
19934         (ix86_option_override_internal): Drop optimize_size condition
19935         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
19936         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
19937         MASK_PREFER_AVX128.
19938         (ix86_avx256_split_vector_move_misalign,
19939         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
19940         * sse.md (all uses of TARGET_PREFER_AVX128): Add
19941         optimize_insn_for_speed_p check.
19942
19943 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19944
19945         * config/mips/mips.h (FP_ASM_SPEC): New define.
19946         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
19947         instead.
19948
19949 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
19950
19951         PR target/53988
19952         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
19953         nullptr for insn when reaching the first insn.
19954         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
19955         (sh_insn_operands_modified_between_p): Add nullptr check.
19956         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
19957         sign extending mem load if the insn contains any UNSPEC or
19958         UNSPEC_VOLATILE.
19959
19960 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19961
19962         * params.def (inline-unit-growth): Drop to 15%.
19963         * invoke.texi (inline-unit-growth): Document change.
19964
19965 2015-01-19  Martin Liska  <mliska@suse.cz>
19966
19967         PR ipa/64668
19968         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
19969         function for second argument of OBJ_TYPE_REF.
19970
19971 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19972
19973         PR ipa/64218
19974         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
19975         whether function is an alias.
19976
19977 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19978
19979         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
19980         cases.
19981
19982 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19983
19984         PR rtl-optimization/64671
19985         * lra-remat.c (operand_to_remat): Don't consider jump and call
19986         insns.
19987
19988 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
19989
19990         PR target/59828
19991         * config/rs6000/default64.h: Include rs6000-cpus.def.
19992         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
19993         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
19994         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
19995         and POWER8.
19996         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
19997         POWER8.
19998         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
19999         pseudo-op to specify assembler dialect.
20000
20001 2015-01-19  Martin Liska  <mliska@suse.cz>
20002
20003         PR ipa/64664
20004         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
20005         Handle safe potentially removed nodes during filtering.
20006
20007 2015-01-19  Martin Liska  <mliska@suse.cz>
20008
20009         * doc/extend.texi (no_icf): Add new attribute description.
20010         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
20011         where the pass attempts to merge a function with no_icf attribute.
20012
20013 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20014
20015         PR target/64532
20016         * doc/md.texi (ARM Options): Document register constraints.
20017
20018 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
20019             Andrew Pinski  <apinski@cavium.com>
20020
20021         PR target/64304
20022         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
20023         (ashl<mode>3): Don't expand if operands[2] is not constant.
20024
20025 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20026
20027         PR target/64448
20028         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
20029         Match xor-and-xor RTL pattern.
20030
20031 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20032
20033         PR rtl-optimization/64081
20034         * loop-iv.c (def_pred_latch_p): New function.
20035         (latch_dominating_def): Allow specific cases with non-single
20036         definitions.
20037         (iv_get_reaching_def): Likewise.
20038         (check_complex_exit_p): New function.
20039         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20040         with exits not executing on any iteration.
20041
20042 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
20043
20044         * common.opt (fgraphite): Fix a typo.
20045
20046 2015-01-19  Felix Yang  <felix.yang@huawei.com>
20047
20048         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
20049         pattern.
20050         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
20051         uminp, smax_nanp, smin_nanp): New builtins.
20052         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
20053         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
20054         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
20055         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
20056         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
20057         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
20058         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
20059         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
20060         vpminnms_f32): Rewrite using builtin functions.
20061
20062 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
20063
20064         PR libgomp/64625
20065         * omp-low.c (offload_symbol_decl): Remove variable.
20066         (get_offload_symbol_decl): Remove function.
20067         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
20068         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
20069         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
20070         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
20071         BUILT_IN_GOACC_UPDATE don't pass it at all.
20072
20073 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20074
20075         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
20076         callers.
20077
20078 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20079
20080         * ipa-chkp.c (chkp_produce_thunks): Add early param
20081         to split thunks production into two passes.  Keep
20082         'always_inline' function bodies after the first pass.
20083         (pass_data_ipa_chkp_early_produce_thunks): New.
20084         (pass_ipa_chkp_early_produce_thunks): New.
20085         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
20086         chkp_produce_thunks signature.
20087         (make_pass_ipa_chkp_early_produce_thunks): New.
20088         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
20089         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
20090         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
20091
20092 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20093
20094         * cgraph.c (cgraph_node::dump): Dump profile flags.
20095
20096 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
20097
20098         PR target/64652
20099         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
20100         reg appear first in the parallel.
20101
20102 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20103
20104         * ipa-reference.c (set_reference_optimization_summary,
20105         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20106         disabled.
20107         (ignore_module_statics): New static var.
20108         (propagate_bits): If ipa-reference is disabled, do not look into local
20109         properties.
20110         (analyze_function): Disable analysis when ipa_reference is disabled.
20111         (generate_summary): Do not dump when reference is disabled;
20112         collect vars accessed from functions with ipa-reference disabled.
20113         (get_read_write_all_from_node): When ipa-reference is disabled, use the
20114         node flags.
20115         (gate): Enable for LTO.
20116         (ignore_edge_p): New function.
20117         (propagate): Skip functions w/o ipa-reference analysis.
20118         * optc-save-gen.awk: Handle optimize_debug correctly.
20119         * opth-gen.awk: Likewise.
20120         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20121         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20122         fira-share-save-slots, fira-share-spill-slots,
20123         fmodulo-sched-allow-regmoves, fpartial-inlining,
20124         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20125         ftracer, ftree-parallelize-loops, fassociative-math,
20126         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20127         Optimization
20128         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20129         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20130         Optimization.
20131         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20132         Fix for IPA.
20133
20134 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20135
20136         PR ipa/64378
20137         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20138         flag correctly.
20139         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20140
20141 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
20142
20143         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20144         Remove duplicate option listings.
20145
20146 2015-01-18  Felix Yang  <felix.yang@huawei.com>
20147
20148         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20149         (autofdo_source_profile::get_callsite_total_count,
20150         function_instance::get_function_instance_by_decl,
20151         string_table::get_index, string_table::get_index_by_decl,
20152         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20153         Fix comment typos. Reformatting and minor code rearrangement.
20154
20155 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20156
20157         * config/rs6000/rs6000.md (probe_stack): Delete.
20158         (probe_stack_address): New.
20159
20160 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20161
20162         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20163         to test for 32-bit ABIs, not !TARGET_POWERPC64.
20164
20165 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20166
20167         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20168         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
20169         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
20170         snafu.
20171         (rs6000_libcall_value): Use the new function.
20172
20173 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20174
20175         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20176
20177 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20178
20179         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20180         implement a more precise life analysis for it during backward scan.
20181
20182 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20183
20184         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20185
20186 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20187
20188         PR rtl-optimization/52773
20189         * calls.c (emit_library_call_value): When pushing arguments use
20190         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20191         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20192         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20193
20194 2015-01-17  Jeff Law  <law@redhat.com>
20195
20196         PR rtl-optimization/32790
20197         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20198         not ZERO_EXTEND in SET_DESTs.
20199
20200 2015-01-17  Alan Modra  <amodra@gmail.com>
20201
20202         * cprop.c (do_local_cprop): Revert last change.
20203
20204 2015-01-16  DJ Delorie  <dj@redhat.com>
20205             Nick Clifton  <nickc@redhat.com>
20206
20207         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20208         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20209         (subqi3_real): Likewise.
20210         (subhi3_real): Likewise.
20211         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20212         (cbranchhi4_real): Likewise.
20213         (cbranchhi4_real_inverted): Likewise.
20214         (cbranchsi4_real_lt): Likewise.
20215         (cbranchsi4_real_ge): Likewise.
20216         (cbranchsi4_real_ge): Likewise.
20217         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20218         (sub<mode>3_virt): Likewise.
20219         (cbranchqi4_virt): Likewise.
20220         (cbranchhi4_virt): Likewise.
20221         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20222         always use '[reg+imm]' even when imm is zero.
20223         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20224         (rl78_general_operand): New.
20225         (rl78_nonimmediate_operand): New.
20226         (rl78_nonfar_operand): Use them.
20227         (rl78_nonfar_nonimm_operand): Likewise.
20228         (rl78_stack_based_mem): Fix.
20229         * config/rl78/constraints.md (Ibqi): New.
20230         (IBqi): New.
20231         (Wsa): New.
20232         (Wsf): New.
20233         (Cs1): Fix.
20234         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20235         (iorqi3): Likewise.
20236         (xorqi3): Likewise.
20237         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20238
20239         * config/rl78/constrains (Qs8): New constraint.
20240         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20241         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20242         * config/rl78/rl78-real.md (update_Z): New attribute.
20243         Update patterns to set it.
20244         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20245         shorter compare and branch sequence can be used.
20246         (cbranchhi4_real): Likewise.
20247         (cbranchhi4_real_inverted): Likewise.
20248
20249         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20250         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20251         address space.
20252         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20253         (rl78_option_override): Allow -mes0 only if C.
20254         (characterize_address): Support subregs of symbol_refs.
20255         (rl78_addr_space_address_mode): Move.  Add __near.
20256         (rl78_far_p): Likewise.
20257         (rl78_addr_space_pointer_mode): Likewise.
20258         (rl78_as_legitimate_address): Likewise.
20259         (rl78_addr_space_subset_p): Likewise.
20260         (rl78_addr_space_convert): Likewise.
20261         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20262         symbols with -mes0.
20263         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20264         addressing.
20265         (rl78_alloc_physical_registers_op1): Change logic to prefer
20266         symbol[BC] addressing.
20267         (frodata_section): New.
20268         (rl78_asm_init_sections): Initialize it.
20269         (rl78_select_section): Put __far readonly symbols in .frodata.
20270         (rl78_make_type_far): New.
20271         (rl78_insert_attributes): Force all readonly symbols to be
20272         __far when -mes0.
20273         (rl78_asm_out_integer): New.
20274         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20275         * config/rl78/rl78.opt (-mes0): New.
20276
20277         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20278         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20279         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20280         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20281         (rl78_saddr_p): New.
20282         (rl78_output_aligned_common): New.
20283         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20284         (rl78_handle_saddr_attribute): New.
20285         (rl78_handle_naked_attribute): New.
20286         (rl78_attribute_table): Add saddr.
20287         (rl78_print_operand_1): Don't print '!' on saddr operands.
20288         (rl78_print_operand_1): Strip encodings.
20289         (rl78_sfr_p): New.
20290         (rl78_strip_name_encoding): New.
20291         (rl78_attrlist_to_encoding): New.
20292         (rl78_encode_section_info): New.
20293         (rl78_asm_init_sections): New.
20294         (rl78_select_section): New.
20295         (rl78_output_labelref): New.
20296         (rl78_output_aligned_common): New.
20297         (rl78_asm_out_integer): New.
20298         (rl78_asm_ctor_dtor): New.
20299         (rl78_asm_constructor): New.
20300         (rl78_asm_destructor): New.
20301
20302         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20303         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20304         (transcode_memory_rtx): Update.
20305         (rl78_expand_epilogue): Use A_REG instead of 0.
20306
20307 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20308
20309         * config/arm/arm-protos.h (struct tune_params): New field
20310         sched_autopref_queue_depth.
20311         * config/arm/arm.c (sched-int.h): Include header.
20312         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20313         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20314         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20315         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20316         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20317         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20318         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20319         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20320         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20321         * config/arm/t-arm (arm.o): Update.
20322         * haifa-sched.c (update_insn_after_change): Update.
20323         (rank_for_schedule): Use auto-prefetcher model, if requested.
20324         (autopref_multipass_init): New static function.
20325         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20326         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20327         variable for debug dumps.
20328         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20329         (autopref_multipass_dfa_lookahead_guard): New global function that
20330         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20331         (init_h_i_d): Update.
20332         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20333         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20334         (autopref_multipass_data_): Structure for auto-prefetcher data.
20335         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20336         (struct _haifa_insn_data:autopref_multipass_data): New field.
20337         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20338         (autopref_multipass_dfa_lookahead_guard): Declare.
20339
20340 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20341
20342         * rtlanal.c (get_base_term): Handle SCRATCH.
20343
20344 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20345
20346         * config/aarch64/aarch64.c
20347         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20348         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20349         * config/arm/arm.c
20350         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20351         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20352
20353 2015-01-17  Alan Modra  <amodra@gmail.com>
20354
20355         * cprop.c (do_local_cprop): Disallow replacement of fixed
20356         hard registers.
20357
20358 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20359
20360         PR target/62066
20361         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20362         early return 0.
20363
20364 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20365
20366         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20367         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20368
20369 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20370
20371         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20372         * config/arm/thumb1.md: ... Here.
20373
20374 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20375
20376         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20377         TImode for TARGET_32BIT.
20378
20379 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20380
20381         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20382         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20383         as ...
20384         (rs6000_abi_word_mode): New function.
20385
20386 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20387
20388         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20389         instead of UNITS_PER_WORD to describe the size of stack slots.
20390
20391 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20392
20393         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20394         as rs6000_promote_function_mode.  Move comment to there.
20395         (rs6000_promote_function_mode): New function.
20396
20397 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20398
20399         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20400         -mpowerpc64 is active.
20401
20402 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20403
20404         PR middle-end/64353
20405         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20406         virtuals on start.
20407
20408 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20409
20410         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20411         introduced in revision 219724.
20412
20413 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20414             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20415
20416         PR target/64263
20417         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20418         destination is not a GP reg.
20419         (*movdi_aarch64): Likewise.
20420
20421 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20422
20423         PR target/64623
20424         * config/rs6000/default64.h: Revert ISA change.
20425
20426 2015-01-16  Richard Biener  <rguenther@suse.de>
20427
20428         PR middle-end/64614
20429         * tree-ssa-uninit.c: Include tree-cfg.h.
20430         (MAX_SWITCH_CASES): New define.
20431         (convert_control_dep_chain_into_preds): Handle switch statements.
20432         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20433         (normalize_one_pred_1): Do not split bit-manipulations.
20434         Record (x & CST).
20435
20436 2015-01-16  Richard Biener  <rguenther@suse.de>
20437
20438         PR tree-optimization/64568
20439         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20440         complex load rewriting for TARGET_MEM_REFs.
20441
20442 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20443
20444         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20445
20446 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20447
20448         PR target/64149
20449         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20450         variable.
20451         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20452         (aarch64_lra_p): Remove.
20453
20454 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20455
20456         PR target/64363
20457         * ipa-chkp.h (chkp_instrumentable_p): New.
20458         * ipa-chkp.c: Include tree-inline.h.
20459         (chkp_instrumentable_p): New.
20460         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20461         Fix processing of not instrumentable functions.
20462         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20463         not instrumentable functions.
20464         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20465         chkp_instrumentable_p.
20466         * tree-inline.h (copy_forbidden): New.
20467         * tree-inline.c (copy_forbidden): Not static anymore.
20468
20469 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20470
20471         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20472         ptr1, ptr2 unused.
20473
20474 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20475
20476         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20477         type OP_OUT to OP_INOUT.
20478
20479 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20480
20481         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20482         (high x) y) to y if x and y have the same base.
20483
20484 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20485
20486         * config/arm/cortex-a57.md: New.
20487         * config/aarch64/aarch64.md: Include it.
20488         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20489         * config/aarch64/aarch64-tune.md: Regenerate.
20490
20491 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20492
20493         PR target/64015
20494         * ccmp.c (expand_ccmp_next): New function.
20495         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20496         and compare insn sequence.
20497         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20498         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20499         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20500         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20501         (*ccmp_ior): Changed to ccmp_ior<mode>.
20502         (cmp<mode>): New pattern.
20503         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20504         parameters.
20505         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20506
20507 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20508
20509         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20510         _mm256_bsrli_epi128): New.
20511         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20512
20513 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20514
20515         * expmed.c (store_bit_field_using_insv): Improve warning message.
20516         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20517
20518 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20519
20520         PR rtl-optimization/64011
20521         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20522         there is partial overflow.
20523
20524 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20525
20526         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20527         prototype.
20528         (nds32_expand_epilogue_v3pop): Likewise.
20529         * config/nds32/nds32.md (sibcall): Define this for sibling call
20530         optimization.
20531         (sibcall_register): Likewise.
20532         (sibcall_immediate): Likewise.
20533         (sibcall_value): Likewise.
20534         (sibcall_value_register): Likewise.
20535         (sibcall_value_immediate): Likewise.
20536         (sibcall_epilogue): Likewise.
20537         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20538         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20539         (nds32_expand_epilogue_v3pop): Likewise.
20540
20541 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20542
20543         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20544         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20545         (return_internal): New.
20546         (return): Define this named pattern.
20547         (simple_return): Define this named pattern.
20548         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20549         pattern instead of unspec_volatile_func_return.
20550         (nds32_expand_epilogue_v3pop): Likewise.
20551         (nds32_can_use_return_insn): New function.
20552
20553 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20554
20555         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20556         * config/nds32/nds32.md (pop25return): New.
20557         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20558         pop25return pattern.
20559
20560 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20561
20562         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20563         -mforbid-fp-as-gp, and -mex9 options.
20564
20565 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20566
20567         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20568         remove -mgp-direct option.
20569
20570 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20571
20572         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20573         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20574
20575 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20576
20577         * ipa-inline.c (inline_small_functions): Work around hints
20578         cache issue.
20579
20580 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20581
20582         PR target/59710
20583         * doc/invoke.texi (Option Summary): Document new Nios II
20584         -mgpopt= syntax.
20585         (Nios II Options): Likewise.
20586         * config/nios2/nios2.opt: Add -mgpopt= option support.
20587         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20588         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20589         * config/nios2/nios2.c (nios2_option_override): Adjust
20590         -mgpopt defaulting.
20591         (nios2_in_small_data_p): Return true for explicit small data
20592         sections even with -G0.
20593         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20594         option choices.
20595
20596 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20597
20598         PR ipa/64612
20599         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20600         of comdat locals.
20601         (inline_call): Fix removal of aliases.
20602
20603 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20604
20605         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20606         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20607         * opts.c (common_handle_option): Add -fsanitize=vptr.
20608         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20609         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20610         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20611         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20612         (ubsan_expand_vptr_ifn): New prototype.
20613         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20614         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20615         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20616         expand_LOOP_VECTORIZED): Make argument nameless, remove
20617         ATTRIBUTE_UNUSED.
20618         (expand_UBSAN_VPTR): New function.
20619         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20620         in fn spec.
20621         (UBSAN_VPTR): New internal function.
20622         * sanopt.c (tree_map_traits): Renamed to ...
20623         (sanopt_tree_map_traits): ... this.
20624         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20625         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20626         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20627         (maybe_optimize_ubsan_vptr_ifn): New function.
20628         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20629         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20630         -fsanitize=vptr.
20631         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20632         internal calls like pure functions for aliasing, even when they
20633         have other side-effects that prevent making them ECF_PURE.
20634         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20635         (ubsan_expand_vptr_ifn): New function.
20636
20637 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20638
20639         PR rtl-optimization/64110
20640         * stmt.c (parse_output_constraint): Process '^' and '$'.
20641         (parse_input_constraint): Ditto.
20642         * lra-constraints.c (process_alt_operands): Process the new
20643         constraints.
20644         * ira-costs.c (record_reg_classes): Process the new constraint
20645         '^'.
20646         * genoutput.c (indep_constraints): Add '^' and '$'.
20647         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20648         * doc/md.texi: Add description of the new constraints.
20649
20650 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20651             Bernd Schmidt  <bernds@codesourcery.com>
20652             Cesar Philippidis  <cesar@codesourcery.com>
20653             James Norris  <jnorris@codesourcery.com>
20654             Tom de Vries  <tom@codesourcery.com>
20655             Ilmir Usmanov  <i.usmanov@samsung.com>
20656             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20657             Evgeny Gavrin  <e.gavrin@samsung.com>
20658             Jakub Jelinek  <jakub@redhat.com>
20659
20660         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20661         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20662         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20663         New function types.
20664         * builtins.c: Include "gomp-constants.h".
20665         (expand_builtin_acc_on_device): New function.
20666         (expand_builtin, is_inexpensive_builtin): Handle
20667         BUILT_IN_ACC_ON_DEVICE.
20668         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20669         New macros.
20670         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20671         flag_openmp.
20672         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20673         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20674         i386/intelmic-offload.h.
20675         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20676         to libgomp and its dependencies.
20677         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20678         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20679         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20680         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20681         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20682         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20683         * doc/generic.texi: Update for OpenACC changes.
20684         * doc/gimple.texi: Likewise.
20685         * doc/invoke.texi: Likewise.
20686         * doc/sourcebuild.texi: Likewise.
20687         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20688         GF_OMP_FOR_KIND_OACC_LOOP.
20689         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20690         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20691         GF_OMP_TARGET_KIND_OACC_UPDATE,
20692         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20693         Dump more data.
20694         * gimple.c: Update comments for OpenACC changes.
20695         * gimple.def: Likewise.
20696         * gimple.h: Likewise.
20697         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20698         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20699         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20700         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20701         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20702         appropriate place.
20703         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20704         * gimplify.c: Include "gomp-constants.h".
20705         Update comments for OpenACC changes.
20706         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20707         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20708         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20709         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20710         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20711         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20712         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20713         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20714         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20715         OMP_CLAUSE_SEQ.
20716         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20717         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20718         OMP_CLAUSE_SET_MAP_KIND.
20719         (gimplify_oacc_cache): New function.
20720         (gimplify_omp_for): Handle OACC_LOOP.
20721         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20722         OACC_DATA.
20723         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20724         OACC_EXIT_DATA, OACC_UPDATE.
20725         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20726         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20727         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20728         (gimplify_body): Consider flag_openacc next to flag_openmp.
20729         * lto-streamer-out.c: Include "gomp-constants.h".
20730         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20731         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20732         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20733         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20734         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20735         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20736         * omp-low.c: Include "gomp-constants.h".
20737         Update comments for OpenACC changes.
20738         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20739         members.
20740         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20741         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20742         (create_omp_child_function, scan_omp_for, scan_omp_target)
20743         (check_omp_nesting_restrictions, lower_reduction_clauses)
20744         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20745         Update for OpenACC changes.
20746         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20747         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20748         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20749         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20750         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20751         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20752         OMP_CLAUSE_MAP_*.
20753         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
20754         Handle GF_OMP_FOR_KIND_OACC_LOOP.
20755         (expand_omp_target, lower_omp_target): Handle
20756         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20757         GF_OMP_TARGET_KIND_OACC_UPDATE,
20758         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
20759         GF_OMP_TARGET_KIND_OACC_DATA.
20760         (pass_expand_omp::execute, execute_lower_omp)
20761         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
20762         flag_openmp.
20763         (offload_symbol_decl): New variable.
20764         (oacc_get_reduction_array_id, oacc_max_threads)
20765         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
20766         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
20767         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
20768         (oacc_gimple_assign, oacc_initialize_reduction_data)
20769         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
20770         functions.
20771         (is_targetreg_ctx): Remove function.
20772         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
20773         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
20774         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20775         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
20776         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
20777         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
20778         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
20779         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
20780         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
20781         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
20782         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
20783         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
20784         * tree-core.h: Update comments for OpenACC changes.
20785         (enum omp_clause_map_kind): Remove.
20786         (struct tree_omp_clause): Change type of map_kind member from enum
20787         omp_clause_map_kind to unsigned char.
20788         * tree-inline.c: Update comments for OpenACC changes.
20789         * tree-nested.c: Likewise.  Include "gomp-constants.h".
20790         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
20791         (convert_tramp_reference_stmt, convert_gimple_call): Update for
20792         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20793         OMP_CLAUSE_SET_MAP_KIND.
20794         * tree-pretty-print.c: Include "gomp-constants.h".
20795         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
20796         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
20797         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
20798         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
20799         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20800         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
20801         instead of OMP_CLAUSE_MAP_*.
20802         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
20803         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
20804         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20805         * tree-streamer-in.c: Include "gomp-constants.h".
20806         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
20807         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
20808         * tree-streamer-out.c: Include "gomp-constants.h".
20809         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
20810         OMP_CLAUSE_MAP_*.
20811         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
20812         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
20813         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
20814         * tree.c (omp_clause_num_ops): Update accordingly.
20815         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
20816         Likewise.
20817         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
20818         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
20819         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
20820         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
20821         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
20822         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
20823         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
20824         (OMP_CLAUSE_SET_MAP_KIND): New macro.
20825         * varpool.c (varpool_node::get_create): Consider flag_openacc next
20826         to flag_openmp.
20827         * config/i386/intelmic-offload.h: New file.
20828         * config/nvptx/offload.h: Likewise.
20829
20830 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20831
20832         * explow.h: Remove duplicate contents.
20833         * dojump.h: Likewise.
20834
20835 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
20836
20837         * arm.c (arm_xgene_tune): Add default initializer for instruction
20838         fusion.
20839
20840 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20841
20842         PR ipa/64068
20843         PR ipa/64559
20844         * ipa.c (symbol_table::remove_unreachable_nodes):
20845         Do not put abstract origins into boundary.
20846
20847 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
20848
20849         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
20850         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
20851
20852 2015-01-15  Steve Ellcey  <sellcey@mips.com>
20853
20854         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
20855         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
20856         builtins.def, and chkp-builtins.def.
20857
20858 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
20859
20860         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
20861         ISA 2.7 (POWER8).
20862
20863 2015-01-15  Richard Biener  <rguenther@suse.de>
20864
20865         PR tree-optimization/61743
20866         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
20867         information on PHIs for some simple cases.
20868
20869 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20870
20871         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
20872         Include xgene1.md.
20873         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
20874         * config/arm/arm-cores.def (xgene1): New entry.
20875         * config/arm/arm-tables.opt: Regenerate.
20876         * config/arm/arm-tune.md: Regenerate.
20877         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
20878
20879 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20880
20881         * tree-if-conv.c: Include hash-map.h.
20882         (aggressive_if_conv): New variable.
20883         (fold_build_cond_expr): Add simplification of non-zero condition.
20884         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
20885         destination block is not always executed.
20886         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
20887         than two predecessors if AGGRESSIVE_IF_CONV is true.
20888         (if_convertible_stmt_p): Fix commentary.
20889         (all_preds_critical_p): New function.
20890         (has_pred_critical_p): New function.
20891         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
20892         BB can have more than two predecessors and all incoming edges can be
20893         critical.
20894         (predicate_bbs): Skip predication for loop exit block, use build2_loc
20895         to compute predicate for true edge.
20896         (find_phi_replacement_condition): Delete this function.
20897         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
20898         Allow interchange PHI arguments if EXTENDED is false.
20899         Change check that block containing reduction statement candidate
20900         is predecessor of phi-block since phi may have more than two arguments.
20901         (phi_args_hash_traits): New helper structure.
20902         (struct phi_args_hash_traits): New type.
20903         (phi_args_hash_traits::hash): New function.
20904         (phi_args_hash_traits::equal_keys): New function.
20905         (gen_phi_arg_condition): New function.
20906         (predicate_scalar_phi): Add handling of phi nodes with more than two
20907         arguments, delete COND and TRUE_BB arguments, insert body of
20908         find_phi_replacement_condition to predicate ordinary phi nodes.
20909         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
20910         delete call of find_phi_replacement_condition and invoke
20911         predicate_scalar_phi with two arguments.
20912         (insert_gimplified_predicates): Add assert that non-predicated block
20913         don't have statements to insert.
20914         (ifcvt_split_critical_edges): New function.
20915         (ifcvt_split_def_stmt): Likewise.
20916         (ifcvt_walk_pattern_tree): Likewise.
20917         (stmt_is_root_of_bool_pattern): Likewise.
20918         (ifcvt_repair_bool_pattern): Likewise.
20919         (ifcvt_local_dce): Likewise.
20920         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
20921         is copy of inner or outer loop force_vectorize field, invoke
20922         ifcvt_split_critical_edges, ifcvt_local_dce and
20923         ifcvt_repair_bool_pattern for aggressive if-conversion.
20924
20925 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
20926
20927         * config/aarch64/aarch64.md: Include xgene1.md.
20928         * config/aarch64/xgene1.md: New file.
20929
20930 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20931
20932         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
20933         xgene1 (APM XGene-1) core definition.
20934         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
20935         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
20936         * doc/invoke.texi: Document -mcpu=xgene1.
20937
20938 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20939
20940         * dojump.h: New header file.
20941         * explow.h: Likewise.
20942         * expr.h: Remove includes.
20943         Move expmed.c prototypes to expmed.h.
20944         Move dojump.c prototypes to dojump.h.
20945         Move alias.c prototypes to alias.h.
20946         Move explow.c prototypes to explow.h.
20947         Move calls.c prototypes to calls.h.
20948         Move emit-rtl.c prototypes to emit-rtl.h.
20949         Move varasm.c prototypes to varasm.h.
20950         Move stmt.c prototypes to stmt.h.
20951         (saved_pending_stack_adjust): Move to dojump.h.
20952         (adjust_address): Move to explow.h.
20953         (adjust_address_nv): Move to emit-rtl.h.
20954         (adjust_bitfield_address): Likewise.
20955         (adjust_bitfield_address_size): Likewise.
20956         (adjust_bitfield_address_nv): Likewise.
20957         (adjust_automodify_address_nv): Likewise.
20958         * explow.c (expr_size): Move to expr.c.
20959         (int_expr_size): Likewise.
20960         (tree_expr_size): Likewise.
20961         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20962         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20963         * genemit.c (main): Generate includes statistics.h, real.h,
20964         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
20965         stmt.h.
20966         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
20967         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
20968         explow.h, emit-rtl.h, stmt.h.
20969         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
20970         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
20971         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
20972         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
20973         emit-rtl.h, varasm.h, stmt.h.
20974         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
20975         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
20976         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
20977         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
20978         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20979         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
20980         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
20981         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
20982         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
20983         tm.h tree.h varasm.h vec.h wide-int.h.
20984         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20985         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20986         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
20987         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
20988         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
20989         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
20990         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
20991         * loop-iv.c: Likewise.
20992         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
20993         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
20994         statistics.h stmt.h tree.h varasm.h wide-int.h.
20995         * lra-constraints.c: Likewise.
20996         * lra-eliminations.c: Likewise.
20997         * lra-lives.c: Likewise.
20998         * lra-remat.c: Likewise.
20999         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21000         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
21001         statistics.h stmt.h tree.h varasm.h wide-int.h.
21002         * hw-doloop.c: Likewise.
21003         * ira-color.c: Likewise.
21004         * ira-emit.c: Likewise.
21005         * loop-doloop.c: Likewise.
21006         * loop-invariant.c: Likewise.
21007         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21008         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
21009         statistics.h stmt.h tree.h varasm.h wide-int.h.
21010         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
21011         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
21012         statistics.h stmt.h tree.h varasm.h wide-int.h.
21013         * combine-stack-adj.c: Likewise.
21014         * cse.c: Likewise.
21015         * ddg.c: Likewise.
21016         * ifcvt.c: Likewise.
21017         * ira-costs.c: Likewise.
21018         * jump.c: Likewise.
21019         * lra-coalesce.c: Likewise.
21020         * lra-spills.c: Likewise.
21021         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21022         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
21023         stmt.h varasm.h wide-int.h.
21024         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21025         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21026         varasm.h.
21027         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
21028         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
21029         statistics.h stmt.h varasm.h wide-int.h.
21030         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
21031         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
21032         varasm.h wide-int.h.
21033         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
21034         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21035         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
21036         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
21037         statistics.h stmt.h.
21038         * config/tilepro/tilepro.c: Likewise.
21039         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
21040         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
21041         * config/pdp11/pdp11.c: Likewise.
21042         * config/xtensa/xtensa.c: Likewise.
21043         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
21044         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21045         varasm.h.
21046         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21047         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21048         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
21049         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21050         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21051         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
21052         * rtl-chkp.c: Likewise.
21053         * tree-chkp-opt.c: Likewise.
21054         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
21055         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21056         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
21057         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21058         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21059         statistics.h stmt.h.
21060         * tree-vect-data-refs.c: Likewise.
21061         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
21062         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21063         rtl.h statistics.h stmt.h varasm.h.
21064         * internal-fn.c: Likewise.
21065         * ipa-icf-gimple.c: Likewise.
21066         * lto-section-out.c: Likewise.
21067         * tree-data-ref.c: Likewise.
21068         * tree-nested.c: Likewise.
21069         * tree-outof-ssa.c: Likewise.
21070         * tree-predcom.c: Likewise.
21071         * tree-pretty-print.c: Likewise.
21072         * tree-scalar-evolution.c: Likewise.
21073         * tree-ssa-strlen.c: Likewise.
21074         * tree-vect-loop.c: Likewise.
21075         * tree-vect-patterns.c: Likewise.
21076         * tree-vect-slp.c: Likewise.
21077         * tree-vect-stmts.c: Likewise.
21078         * tsan.c: Likewise.
21079         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21080         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
21081         stmt.h.
21082         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
21083         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21084         statistics.h stmt.h varasm.h.
21085         * loop-unroll.c: Likewise.
21086         * ubsan.c: Likewise.
21087         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
21088         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
21089         stmt.h varasm.h.
21090         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21091         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
21092         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
21093         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21094         statistics.h stmt.h.
21095         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
21096         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21097         statistics.h stmt.h varasm.h.
21098         * gimple-match-head.c: Likewise.
21099         * lto-cgraph.c: Likewise.
21100         * lto-section-in.c: Likewise.
21101         * lto-streamer-in.c: Likewise.
21102         * lto-streamer-out.c: Likewise.
21103         * tree-affine.c: Likewise.
21104         * tree-cfg.c: Likewise.
21105         * tree-cfgcleanup.c: Likewise.
21106         * tree-if-conv.c: Likewise.
21107         * tree-into-ssa.c: Likewise.
21108         * tree-ssa-alias.c: Likewise.
21109         * tree-ssa-copyrename.c: Likewise.
21110         * tree-ssa-dse.c: Likewise.
21111         * tree-ssa-forwprop.c: Likewise.
21112         * tree-ssa-live.c: Likewise.
21113         * tree-ssa-math-opts.c: Likewise.
21114         * tree-ssa-pre.c: Likewise.
21115         * tree-ssa-sccvn.c: Likewise.
21116         * tree-tailcall.c: Likewise.
21117         * tree-vect-generic.c: Likewise.
21118         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21119         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21120         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21121         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21122         * varasm.c: Likewise.
21123         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21124         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21125         varasm.h.
21126         * init-regs.c: Likewise.
21127         * ira.c: Likewise.
21128         * omp-low.c: Likewise.
21129         * stack-ptr-mod.c: Likewise.
21130         * tree-ssa-reassoc.c: Likewise.
21131         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21132         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21133         varasm.h.
21134         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21135         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21136         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21137         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21138         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21139         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21140         * tree-ssa-phiopt.c: Likewise.
21141         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21142         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21143         * config/fr30/fr30.c: Likewise.
21144         * config/frv/frv.c: Likewise.
21145         * expr.c: Likewise.
21146         * final.c: Likewise.
21147         * optabs.c: Likewise.
21148         * passes.c: Likewise.
21149         * simplify-rtx.c: Likewise.
21150         * stmt.c: Likewise.
21151         * toplev.c: Likewise.
21152         * var-tracking.c: Likewise.
21153         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21154         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21155         * lower-subreg.c: Likewise.
21156         * postreload-gcse.c: Likewise.
21157         * ree.c: Likewise.
21158         * reginfo.c: Likewise.
21159         * store-motion.c: Likewise.
21160         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21161         fixed-value.h hashtab.h real.h stmt.h varasm.h.
21162         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21163         fixed-value.h hashtab.h statistics.h stmt.h.
21164         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21165         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21166         * except.c: Likewise.
21167         * explow.c: Likewise.
21168         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21169         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21170         varasm.h.
21171         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21172         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21173         * tree-ssa-structalias.c: Likewise.
21174         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21175         fixed-value.h insn-config.h real.h statistics.h.
21176         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21177         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21178         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21179         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21180         * cfgbuild.c: Likewise.
21181         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21182         fixed-value.h real.h rtl.h statistics.h stmt.h.
21183         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21184         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21185         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21186         fixed-value.h real.h statistics.h stmt.h.
21187         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21188         fixed-value.h real.h statistics.h stmt.h varasm.h.
21189         * cprop.c: Likewise.
21190         * modulo-sched.c: Likewise.
21191         * postreload.c: Likewise.
21192         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21193         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21194         statistics.h stmt.h varasm.h.
21195         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21196         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21197         rtl.h statistics.h stmt.h varasm.h.
21198         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21199         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21200         varasm.h.
21201         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21202         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21203         varasm.h.
21204         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21205         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21206         varasm.h.
21207         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21208         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21209         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21210         function.h real.h statistics.h stmt.h varasm.h.
21211         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21212         insn-config.h real.h statistics.h stmt.h.
21213         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21214         statistics.h stmt.h.
21215         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21216         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21217         statistics.h stmt.h varasm.h.
21218         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21219         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21220         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21221         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21222         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21223         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21224         statistics.h stmt.h varasm.h.
21225         * ipa-polymorphic-call.c: Likewise.
21226         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21227         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21228         statistics.h stmt.h.
21229         * config/c6x/c6x.c: Likewise.
21230         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21231         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21232         statistics.h stmt.h varasm.h.
21233         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21234         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21235         stmt.h varasm.h.
21236         * ipa-split.c: Likewise.
21237         * tree-eh.c: Likewise.
21238         * tree-ssa-dce.c: Likewise.
21239         * tree-ssa-loop-niter.c: Likewise.
21240         * tree-vrp.c: Likewise.
21241         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21242         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21243         stmt.h.
21244         * config/nds32/nds32-fp-as-gp.c: Likewise.
21245         * config/nds32/nds32-intrinsic.c: Likewise.
21246         * config/nds32/nds32-isr.c: Likewise.
21247         * config/nds32/nds32-md-auxiliary.c: Likewise.
21248         * config/nds32/nds32-memory-manipulation.c: Likewise.
21249         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21250         * config/nds32/nds32-predicates.c: Likewise.
21251         * config/nds32/nds32.c: Likewise.
21252         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21253         fixed-value.h hashtab.h real.h statistics.h.
21254         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21255         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21256         * config/arm/arm.c: Likewise.
21257         * config/avr/avr.c: Likewise.
21258         * config/bfin/bfin.c: Likewise.
21259         * config/h8300/h8300.c: Likewise.
21260         * config/i386/i386.c: Likewise.
21261         * config/ia64/ia64.c: Likewise.
21262         * config/iq2000/iq2000.c: Likewise.
21263         * config/m32c/m32c.c: Likewise.
21264         * config/m32r/m32r.c: Likewise.
21265         * config/m68k/m68k.c: Likewise.
21266         * config/mcore/mcore.c: Likewise.
21267         * config/mep/mep.c: Likewise.
21268         * config/mips/mips.c: Likewise.
21269         * config/mn10300/mn10300.c: Likewise.
21270         * config/moxie/moxie.c: Likewise.
21271         * config/pa/pa.c: Likewise.
21272         * config/rl78/rl78.c: Likewise.
21273         * config/rx/rx.c: Likewise.
21274         * config/s390/s390.c: Likewise.
21275         * config/sh/sh.c: Likewise.
21276         * config/sparc/sparc.c: Likewise.
21277         * config/spu/spu.c: Likewise.
21278         * config/stormy16/stormy16.c: Likewise.
21279         * config/v850/v850.c: Likewise.
21280         * config/vax/vax.c: Likewise.
21281         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21282         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21283         * config/msp430/msp430.c: Likewise.
21284         * predict.c: Likewise.
21285         * value-prof.c: Likewise.
21286         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21287         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21288         * config/microblaze/microblaze.c: Likewise.
21289         * config/nios2/nios2.c: Likewise.
21290         * config/rs6000/rs6000.c: Likewise.
21291         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21292         insn-config.h real.h rtl.h statistics.h stmt.h.
21293         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21294         insn-config.h real.h statistics.h stmt.h.
21295         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21296         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21297         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21298         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21299         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21300         fixed-value.h real.h statistics.h stmt.h.
21301         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21302         fixed-value.h statistics.h stmt.h.
21303         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21304         stmt.h.
21305
21306 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21307
21308         * gengtype.c (create_user_defined_type): Workaround
21309         -Wmaybe-uninitialized false positives.
21310         * cse.c (fold_rtx): Likewise.
21311         * loop-invariant.c (gain_for_invariant): Likewise.
21312
21313 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21314
21315         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21316         set the memory attributes in all cases but clear MEM_EXPR if need be.
21317
21318 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21319
21320         PR tree-optimization/64434
21321         * cfgexpand.c (reorder_operands): New function.
21322         (expand_gimple_basic_block): Insert call of reorder_operands if
21323         optimized is true.
21324
21325 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21326
21327         * config/mips/micromips.md (*swp): Remove explicit parallel.
21328         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21329         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21330         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21331         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21332         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21333         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21334         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21335         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21336         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21337         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21338         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21339         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21340         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21341         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21342         (mips_wrdsp): Likewise.
21343         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21344         parallel.
21345         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21346         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21347         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21348         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21349         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21350         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21351         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21352         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21353         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21354
21355 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21356
21357         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21358         (mips_print_operand): Support 'y' to print exact log2 in decimal
21359         of a const_int.
21360         * config/mips/mips.h (ISA_HAS_LSA): New define.
21361         (ISA_HAS_DLSA): Likewise.
21362         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21363         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21364
21365 2015-01-15  Martin Liska  <mliska@suse.cz>
21366
21367         PR target/64377
21368         * optc-save-gen.awk: Add support for array types.
21369
21370 2015-01-15  Richard Biener  <rguenther@suse.de>
21371
21372         PR middle-end/64365
21373         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21374         for MEM_REF access functions with the same base can never partially
21375         overlap.
21376
21377 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21378
21379         * common.opt: New option -fstack-protector-explicit.
21380         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21381         (stack_protect_decl_phase): Handle stack_protect attribute for
21382         explicit stack protection requests.
21383         (expand_used_vars): Similarly.
21384         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21385         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21386         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21387
21388 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21389
21390         PR target/53988
21391         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21392         reg-reg copies.
21393         (sh_extending_set_of_reg): New struct.
21394         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21395         sh_remove_reg_dead_or_unused_notes): New Declarations.
21396         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21397         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21398         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21399         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21400         convert to insn_and_split and use new function sh_split_tst_subregs.
21401
21402 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21403
21404         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21405         option.
21406         (Optimization Options): Move -fuse-ld documentation to...
21407         (Link Options): ...here.
21408
21409 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21410
21411         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21412         offsets.
21413         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21414         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21415         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21416         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21417         instead of ZR for the memory operand of LL/SC.
21418         (compare_and_swap_12, sync_add<mode>): Likewise.
21419         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21420         (sync_new_<optab>_12, sync_nand_12): Likewise.
21421         (sync_old_nand_12, sync_new_nand_12): Likewise.
21422         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21423         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21424         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21425         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21426         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21427         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21428         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21429         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21430         * doc/md.texi (ZC): Update description.
21431
21432 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21433
21434         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21435         memory model is CONSUME.
21436         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21437         expand_builtin_atomic_store): Change invalid memory model errors to
21438         warnings.
21439         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21440         and issue warning for CONSUME.
21441
21442 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21443
21444         * lto-cgraph: Update function comments for
21445         lto_symtab_encoder_encode_*.
21446
21447 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21448
21449         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21450
21451 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21452
21453         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21454         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21455         lto_stream_offload_p instead.
21456         * lto-streamer.h (select_what_to_stream): Remove argument.
21457         * passes.c (ipa_write_summaries): Likewise.
21458         * tree-pass.h (ipa_write_summaries): Likewise.
21459
21460 2015-01-14  Richard Biener  <rguenther@suse.de>
21461
21462         PR tree-optimization/59354
21463         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21464         groups larger than the slp group size as having gaps.
21465
21466 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21467
21468         PR middle-end/59448
21469         * builtins.c (get_memmodel): Promote consume to acquire always.
21470
21471 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21472
21473         PR target/64386
21474         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21475         V32HImode.
21476
21477 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21478
21479         PR target/64393
21480         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21481         Enable AVX512BW.
21482         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21483         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21484         AVX512VBMI, as it implies AVX512BW.
21485
21486 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21487
21488         PR target/64387
21489         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21490         (vec_unpacks_hi_v16sf): Ditto.
21491
21492 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21493
21494         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21495         is not available.
21496
21497 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21498
21499         * doc/invoke.texi (mapcs): Mention deprecation.
21500         (mapcs-frame): Likewise.
21501
21502 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21503
21504         PR target/64453
21505         * config/arm/arm.c (callee_saved_reg_p): Define.
21506         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21507         register is callee saved instead of !call_used_regs[reg].
21508         (thumb1_compute_save_reg_mask): Likewise.
21509
21510 2015-01-14  Hale Wang  <hale.wang@arm.com>
21511
21512         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21513         Cortex-M7.
21514
21515 2015-01-14  Richard Biener  <rguenther@suse.de>
21516
21517         PR lto/64415
21518         * tree-inline.c (insert_debug_decl_map): Check destination
21519         function MAY_HAVE_DEBUG_STMTS.
21520         (insert_init_debug_bind): Likewise.
21521         (insert_init_stmt): Remove redundant check.
21522         (remap_gimple_stmt): Drop debug stmts if the destination
21523         function has var-tracking assignments disabled.
21524
21525 2015-01-14  Martin Liska  <mliska@suse.cz>
21526
21527         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21528         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21529
21530 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21531
21532         PR target/64460
21533         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21534         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21535
21536 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21537
21538         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21539         level from an ARCH; do not inject the default.
21540         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21541         MIPS_ISA_LEVEL_SPEC.
21542         (MIPS_ISA_NAN2008_SPEC): Update comment.
21543         (BASE_DRIVER_SELF_SPECS): Likewise.
21544         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21545         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21546         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21547         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21548         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21549
21550 2015-01-14  Richard Biener  <rguenther@suse.de>
21551
21552         PR tree-optimization/64493
21553         PR tree-optimization/64495
21554         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21555         assign the proper vectorized PHI to the inner loop exit PHIs.
21556
21557 2015-01-14  Joey Ye  <joey.ye@arm.com>
21558
21559         * config/arm/arm.c (arm_compute_save_reg_mask):
21560         Do not save lr in case of tail call.
21561         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21562
21563 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21564
21565         * tree-vrp.c (check_array_ref): Emit more warnings
21566         for warn_array_bounds >= 2.
21567         * common.opt: New option -Warray-bounds=.
21568         * doc/invoke.texi: Document -Warray-bounds=.
21569
21570 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21571
21572         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21573         (mforbid-fp-as-gp): Remove.
21574         (mex9): Remove.
21575         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21576         (nds32_symbol_load_store_p): Remove.
21577         (nds32_fp_as_gp_check_available): Clean up implementation.
21578         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21579         cases.
21580         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21581         fp-as-gp and ex9 cases.
21582
21583 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21584
21585         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21586         for bintuils bug 14342.
21587         (init_ic_make_global_vars): Likewise.
21588         (gimple_init_edge_profiler): Likewise.
21589         (gimple_gen_ic_func_profiler): Likewise.
21590
21591 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21592
21593         * ipa-inline.c (inline_small_functions): Swap the operands in
21594         enum.
21595
21596 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21597
21598         PR ipa/64481
21599         * ipa-inline-analysis.c (node_growth_cache): Remove.
21600         (initialize_growth_caches): Do not initialize it.
21601         (free_growth_caches): Do not free it.
21602         (do_estimate_growth): Rename to ...
21603         (estimate_growth): ... this one; drop growth cache code.
21604         (growth_likely_positive): Always go the heuristics way.
21605         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21606         (reset_edge_caches): Do not reset node growth.
21607         (heap_edge_removal_hook): Do not maintain cache.
21608         (inline_small_functions): Likewise; strenghten sanity check.
21609         (ipa_inline): Do not maintain caches.
21610         * ipa-inline.h (node_growth_cache): Remove.
21611         (do_estimate_growth): Remove to ...
21612         (estimate_growth): this one; remove inline version.
21613         (reset_node_growth_cache): Remove.
21614
21615 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21616
21617         PR ipa/64565
21618         * ipa-inline.c (inline_small_functions): Update callee keys after
21619         resolving speculation
21620         (inline_small_functions): Always check monotonicity of the queue.
21621
21622 2015-01-13  Marek Polacek  <polacek@redhat.com>
21623
21624         PR middle-end/64391
21625         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21626
21627 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21628
21629         PR rtl-optimization/64286
21630         * ree.c (combine_reaching_defs): Move part of comment earlier,
21631         remove !SCALAR_INT_MODE_P check.
21632         (add_removable_extension): Don't add vector mode
21633         extensions if all uses of the source register aren't the same
21634         vector extensions.
21635
21636 2015-01-13  Renlin Li  <renlin.li@arm.com>
21637
21638         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21639         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21640
21641 2015-01-13  Martin Liska  <mliska@suse.cz>
21642
21643         * ipa-icf.c (sem_function::equals_private): Call new functions
21644         cl_target_option_print_diff and cl_optimization_print_diff.
21645         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21646         (cl_optimization_print_diff): Likewise.
21647         * opth-gen.awk: Likewise.
21648
21649 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21650
21651         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21652         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21653         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21654         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21655         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21656         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21657
21658 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21659
21660         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21661         instead of src mode.
21662
21663 2015-01-13  Richard Biener  <rguenther@suse.de>
21664
21665         PR lto/64373
21666         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21667         DECL_CONTEXT.
21668
21669 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21670
21671         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21672         volatile mems.
21673         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21674
21675 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21676
21677         PR middle-end/63974
21678         * cfgexpand.c (expand_computed_goto): Don't call
21679         convert_memory_address here.
21680
21681 2015-01-13  Richard Biener  <rguenther@suse.de>
21682
21683         PR tree-optimization/64406
21684         * tree-loop-distibution.c (pass_loop_distribution::execute):
21685         Reset the SCEV hashtable if we distributed anything.
21686
21687 2015-01-13  Richard Biener  <rguenther@suse.de>
21688
21689         PR tree-optimization/64404
21690         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21691         SLP types for CSEd loads.
21692
21693 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21694
21695         PR tree-optimization/64436
21696         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21697         merge of two symbolic numbers for a bitwise OR to ...
21698         (perform_symbolic_merge): This. Also fix computation of the range and
21699         end of the symbolic number corresponding to the result of a bitwise OR.
21700
21701 2015-01-13  Richard Biener  <rguenther@suse.de>
21702
21703         PR tree-optimization/64568
21704         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21705         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21706
21707 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21708
21709         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21710         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21711
21712 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21713
21714         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21715         target-specific symbol_ref flag.
21716         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21717         resides in rodata section.
21718         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21719         (nds32_encode_section_info): New function.
21720
21721 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21722
21723         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21724         clobbers TA_REGNUM if large code model is specified.
21725         (call_register): Likewise.
21726         (call_immediate): Likewise.
21727         (call_value): Likewise.
21728         (call_value_register): Likewise.
21729         (call_value_immediate): Likewise.
21730
21731 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21732
21733         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21734         (TARGET_CMODEL_MEDIUM): New macro.
21735         (TARGET_CMODEL_LARGE): New macro.
21736         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21737         code model setting in assembly code.
21738
21739 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21740
21741         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21742         Remove MASK_GP_DIRECT flag.
21743         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21744         one of the multilib default options.
21745         * config/nds32/nds32.opt (mgp-direct): Remove.
21746         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21747         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21748
21749 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21750
21751         * config/nds32/nds32.opt (mcmodel): Add new option.
21752         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21753         to describe code model.
21754
21755 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
21756
21757         PR target/64479
21758         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
21759
21760 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
21761
21762         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
21763         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
21764         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
21765         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
21766         __builtin_sh_set_fpscr.
21767
21768 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21769
21770         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
21771         after a funtion name just to indicate it is a function.
21772         ([-fsanitize-undefined-trap-on-error]): Likewise.
21773         ([-fdbg-cnt=]): Likewise.
21774         ([-mmemcpy]): Likewise.
21775         ([-mflush-func]): Likewise.
21776         ([-msynci]): Likewise.
21777
21778 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21779
21780         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
21781         example.
21782
21783 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
21784
21785         PR tree-optimization/64563
21786         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
21787         instead of != VR_VARYING.
21788
21789         PR target/64513
21790         * config/i386/i386.c (ix86_expand_prologue): Add
21791         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
21792
21793         PR tree-optimization/64454
21794         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
21795         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
21796         for signed or [0, op1 - 1] for unsigned modulo.
21797         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
21798         even if op1 does not satisfy integer_pow2p.
21799
21800         PR other/64370
21801         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
21802
21803 2015-01-12  Jeff Law  <law@redhat.com>
21804
21805         PR target/64461
21806         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
21807         (trunchiqi2, truncsihi2): Similarly.
21808
21809         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
21810         rather than calling F.
21811
21812 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21813
21814         * tsan.c (instrument_expr): Use force_gimple_operand.
21815         Use may_be_nonaddressable_p instead of is_gimple_addressable.
21816
21817 2015-01-12  Richard Biener  <rguenther@suse.de>
21818
21819         PR tree-optimization/64530
21820         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
21821         back dr1.
21822
21823 2015-01-12  Richard Biener  <rguenther@suse.de>
21824
21825         PR middle-end/64357
21826         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
21827         latches properly.
21828
21829 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21830
21831         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
21832         Cortex-A17 tuning parameters.
21833         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
21834
21835 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21836
21837         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
21838         * config/arm/arm.c (arm_macro_fusion_p): New function.
21839         (arm_macro_fusion_pair_p): Likewise.
21840         (TARGET_SCHED_MACRO_FUSION_P): Define.
21841         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
21842         (ARM_FUSE_NOTHING): Likewise.
21843         (ARM_FUSE_MOVW_MOVT): Likewise.
21844         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
21845         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
21846         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
21847         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
21848         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
21849         arm_cortex_a5_tune): Specify fuseable_ops value.
21850
21851 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
21852
21853         PR bootstrap/64561
21854         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
21855         test for PIE with copy reloc.
21856         * configure: Regenerated.
21857
21858 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21859
21860         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
21861         in gen_rtx_REG.
21862         (arm_tls_descseq_addr): Likewise.
21863         (arm_gen_movmemqi): Likewise.
21864         (arm_expand_epilogue_apcs_frame): Likewise.
21865         (arm_expand_epilogue): Likewise.
21866         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
21867         in gen_rtx_REG.
21868
21869 2015-01-12  Martin Liska  <mliska@suse.cz>
21870
21871         PR ipa/64550
21872         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
21873         volatility for correct operands.
21874
21875 2015-01-12  Martin Liska  <mliska@suse.cz>
21876
21877         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
21878         indication that a function is not leaf.
21879         (sem_function::compare_polymorphic_p): Likewise.
21880
21881 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21882
21883         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
21884         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
21885         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
21886         fold-const.h, tree-check.h.
21887
21888 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21889
21890         PR ipa/63967
21891         PR ipa/64425
21892         * ipa-inline.c (compute_uninlined_call_time,
21893         compute_inlined_call_time): Use counts for extra precision when
21894         needed possible.
21895         (big_speedup_p): Fix formating.
21896         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
21897         (relative_time_benefit): Remove.
21898         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
21899         merge guessed and read profile paths.
21900         (inline_small_functions): Count only !optimize_size functions into
21901         initial size; be more lax about sanity check when profile is used;
21902         be sure to update inlined function profile when profile is read.
21903
21904 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21905
21906         PR ipa/63470
21907         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
21908         cost when edge becomes direct.
21909         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
21910         is resolved or when introducing new speculation.
21911
21912 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
21913
21914         PR ipa/64551
21915         PR ipa/64552
21916         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
21917         '||' to fix typo issue.
21918
21919         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
21920         accept and return NULL.
21921
21922 2015-01-12  Martin Liska  <mliska@suse.cz>
21923
21924         * cgraph.c (cgraph_edge::remove_callee): Move function to header
21925         file for being inlined.
21926         (cgraph_set_edge_callee): Delete.
21927         (cgraph_edge::redirect_callee): Move function to header file
21928         for being inlined.
21929         (cgraph_edge::make_direct): Use new function.
21930         (cgraph_edge::dump_edge_flags): New function created from
21931         static dump_edge_flags function.
21932         (cgraph_node::dump): Use new function.
21933         (cgraph_edge::verify_count_and_frequency): New function created
21934         from verify_edge_count_and_frequency.
21935         (cgraph_edge::verify_corresponds_to_fndecl): New function created
21936         from verify_edge_corresponds_to_fndecl.
21937         (verify_edge_corresponds_to_fndecl): Delete.
21938         (cgraph_node::verify_node): Use new function.
21939         * cgraph.h (cgraph_edge::set_callee): New function.
21940         (cgraph_edge::dump_edge_flags): Likewise.
21941         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
21942
21943 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
21944
21945         * ipa-utils.c (estimate_function_body_sizes): Do not
21946         free node params when called late with early=true.
21947
21948 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
21949
21950         * doc/md.texi (Instruction Patterns): Rewrite text for
21951         clarity.
21952         (Example): Likewise.
21953
21954 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
21955
21956         * doc/invoke.texi (Option Summary): Break long lines.
21957         [(-fdiagnostics-color)]: Put long literal in @smallexample
21958         instead of inline.
21959         [(-fsanitize-recover)]: Likewise.
21960         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
21961         [(-ffast-math)]: Likewise.
21962         [(--param max-inline-insns-recursive)]: Likewise.
21963         [(--param max-inline-recursive-depth)]: Likewise.
21964         [(-mno-text-section-literals)]: Likewise.
21965
21966 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
21967
21968         * doc/install.texi: Update for libgomp being renamed from "GNU
21969         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
21970         Runtime Library".
21971         * doc/sourcebuild.texi: Likewise.
21972
21973 2015-01-10  Anthony Green  <green@moxielogic.com>
21974
21975         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
21976         mul.x availability for moxiebox configuration.
21977
21978 2015-01-09  Anthony Green  <green@moxielogic.com>
21979
21980         * config/moxie/moxie.md: Tabify assembly output.
21981
21982 2015-01-09  Anthony Green  <green@moxielogic.com>
21983
21984         * config/moxie/moxie.md (CC_REG): Correct register definition.
21985
21986 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
21987
21988         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
21989         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
21990         of log files.
21991
21992 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21993
21994         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
21995
21996 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
21997             Jakub Jelinek  <jakub@redhat.com>
21998
21999         PR middle-end/64412
22000         * lto-streamer.h (lto_stream_offload_p): New declaration.
22001         * lto-streamer.c (lto_stream_offload_p): New variable.
22002         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
22003         at the same time as section_name_prefix.
22004         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
22005         if lto_stream_offload_p.
22006         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
22007         stream TREE_TARGET_OPTION if lto_stream_offload_p.
22008         (write_ts_function_decl_tree_pointers): Don't
22009         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
22010         * tree-streamer-in.c (unpack_value_fields): Don't stream
22011         TREE_TARGET_OPTION in if ACCEL_COMPILER.
22012         (lto_input_ts_function_decl_tree_pointers): Don't stream
22013         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
22014         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
22015         instead of section_name_prefix string comparisons.
22016
22017 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
22018
22019         PR rtl-optimization/64536
22020         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
22021         tablejumps.
22022
22023 2015-01-09  Michael Collison  <michael.collison@linaro.org>
22024
22025         PR tree-optimization/64322
22026         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
22027         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
22028
22029 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22030
22031         PR rtl-optimization/64539
22032         * regcprop.c (kill_clobbered_values): Factor out of ...
22033         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
22034         instead of note_stores with kill_clobbered_value.
22035
22036 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22037
22038          * ginclude/unwind-arm-common.h: Revert previous commit.
22039
22040 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22041
22042         * config.gcc (arm*-*-freebsd*): New configuration.
22043         * config/arm/freebsd.h: New file.
22044         * config.host: Add extra components for arm*-*-freebsd*.
22045         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
22046         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
22047
22048 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22049
22050         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
22051         for -mcpu=e6500.
22052         * config/rs6000/t-rtems: Add e6500 multilibs.
22053
22054 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22055
22056         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
22057         MPC8540.
22058
22059 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22060
22061         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
22062         MULTILIB_EXCEPTIONS.
22063
22064 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22065
22066         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
22067         MULTILIB_EXCEPTIONS.
22068
22069 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22070
22071         * config/arm/t-rtems-eabi: Rename to...
22072         * config/arm/t-rtems: ...this.
22073         * config/arm/rtems-eabi.h: Rename to...
22074         * config/arm/rtems.h: ...this.
22075         * config.gcc (arm*-*-rtems*): Reflect changes above.
22076
22077 2015-01-09  Richard Biener  <rguenther@suse.de>
22078
22079         PR tree-optimization/64410
22080         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
22081         on the LHS.
22082         (execute_update_addresses_taken): Deal with that.
22083         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
22084         loads/stores for complex variables.
22085
22086 2015-01-09  Martin Liska  <mliska@suse.cz>
22087
22088         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
22089         name comparison.
22090         (func_checker::compare_memory_operand): New function.
22091         (func_checker::compare_operand): Split case to newly
22092         added functions.
22093         (func_checker::compare_cst_or_decl): New function.
22094         (func_checker::compare_gimple_call): Identify
22095         memory operands.
22096         (func_checker::compare_gimple_assign): Likewise.
22097         * ipa-icf-gimple.h: New function.
22098
22099 2015-01-09  Martin Liska  <mliska@suse.cz>
22100
22101         PR ipa/64503
22102         * sreal.c (sreal::dump): Change unsigned format to signed for
22103         m_exp value.
22104         (sreal::to_double): Replace exp2 with scalbln.
22105
22106 2015-01-09  Martin Liska  <mliska@suse.cz>
22107
22108         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22109         * ipa-icf.c (sem_function::equals_private): Add support for target and
22110         (sem_item_optimizer::merge_classes): Remove redundant function
22111         optimization flags comparison.
22112         * tree.h (target_opts_for_fn): New function.
22113
22114 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22115
22116         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22117
22118 2015-01-09  Kito Cheng  <kito@0xlab.org>
22119
22120         PR rtl-optimization/64348
22121         * lra-constraints.c (split_reg): Fix caller-save store/restore
22122         instruction generation.
22123
22124 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
22125
22126         PR gcov-profile/61790
22127         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22128         long long.  Fallback to int64_t if host doesn't have long long and
22129         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
22130
22131 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22132
22133         PR tree-optimization/63989
22134         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22135         from 1000 to 10000.
22136         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22137         (get_stridx): If we don't have a record for certain SSA_NAME,
22138         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22139         constant offset, call get_stridx_plus_constant.
22140         (get_stridx_plus_constant): New function.
22141         (zero_length_string): Don't use get_stridx here.
22142
22143         PR target/55023
22144         PR middle-end/64388
22145         * dse.c (struct insn_info): Mention frame_read set also
22146         before reload for tail calls on some targets.
22147         (scan_insn): Revert 2014-12-22 change.  Set frame_read
22148         also before reload for tail calls if
22149         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
22150         instead of add_non_frame_wild_read for non-const/memset
22151         tail calls after reload.
22152
22153 2015-01-08  Jason Merrill  <jason@redhat.com>
22154
22155         * ubsan.c (do_ubsan_in_current_function): New.
22156         (pass_ubsan::gate): Use it.
22157         * ubsan.h: Declare it.
22158         * convert.c (convert_to_integer): Use it.
22159
22160 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22161
22162         PR target/64338
22163         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22164         compare_code when it is unconditionally overwritten afterwards.
22165         Use ix86_reverse_condition instead of reverse_condition.  Don't
22166         change code if *reverse_condition* returned UNKNOWN and don't
22167         swap ct/cf and negate diff in that case.
22168
22169 2015-01-08  Mike Stump  <mikestump@comcast.net>
22170
22171         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22172         (pass_tsan_O0::gate): Likewise.
22173         * extend.texi (Function Attributes): Add no_sanitize_thread
22174         documentation.
22175
22176 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22177
22178         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22179         for registering builtins.
22180         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22181         add -fopenmp to the argv_obstack used when invoking
22182         compile_for_target.
22183
22184         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22185         add "-m32" or "-m64" to argv_obstack.
22186         (generate_host_descr_file): Likewise, when invoking host_compiler.
22187         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22188         ld.
22189
22190 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22191
22192         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22193         tstsi_t insns.
22194
22195 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22196
22197         PR target/55212
22198         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22199         constant load if constant operand fits into I08.
22200
22201 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22202
22203         PR sanitizer/64336
22204         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22205         and TREE_THIS_VOLATILE for MEM_REFs.
22206         (build5_stat): Fix up initialization of TREE_READONLY and
22207         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22208
22209 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22210
22211         PR target/64533
22212         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22213         of r for the second alternative of the destination operand.
22214
22215 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22216
22217         PR target/36557
22218         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22219
22220 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22221
22222         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22223         keywords.
22224         ([-fivar-visibility], [-fvisibility]): Likewise.
22225
22226 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22227
22228         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22229         the file where @code, @command, etc is more appropriate.
22230
22231 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22232
22233         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22234         of -mrecip= documentation.
22235
22236 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22237
22238         PR target/64505
22239         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22240         correct reload handler if -m32 -mpowerpc64 is used.
22241
22242 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22243
22244         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22245
22246 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22247
22248         PR target/64507
22249         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22250
22251 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22252
22253         PR tree-optimization/63259
22254         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22255         if optab exists for 16bit byteswap.
22256
22257 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22258
22259         * opts.c (common_handle_option): Add support for
22260         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22261         * doc/invoke.texi: Document -fno-sanitize=all,
22262         -f{,no-}sanitize-recover=all.  Document that
22263         -fsanitize=float-cast-overflow is not enabled
22264         by -fsanitize=undefined.  Fix up documentation
22265         of -f{,no-}sanitize-recover.
22266
22267 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22268
22269         * config.gcc: Add Visium support.
22270         * configure.ac: Likewise.
22271         * configure: Regenerate.
22272         * doc/extend.texi (interrupt attribute): Add Visium.
22273         * doc/invoke.texi: Document Visium options.
22274         * doc/install.texi: Document Visium target.
22275         * doc/md.texi: Document Visium constraints.
22276         * common/config/visium: New directory.
22277         * config/visium: Likewise.
22278
22279 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22280
22281         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22282         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22283
22284 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22285
22286         * combine.c (combine_validate_cost): Do not count the cost of a
22287         split I2 twice.  Do not display it twice in the dump, either.
22288
22289 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22290
22291         Revert parts of r219199.
22292         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22293         <inttypes.h>.
22294         ([-Wtraditional]): Restore markup on <limits.h>.
22295
22296 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22297
22298         PR c++/31397
22299         * doc/invoke.texi: Document -Wsuggest-override.
22300
22301 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22302
22303         PR rtl-optimization/64287
22304         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22305         (process_options): Disable flag_ipa_ra if profiling.
22306
22307 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22308
22309         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22310
22311 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22312
22313         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22314         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22315         put under #if TARGET_LOOPS guard.
22316
22317 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22318
22319         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22320
22321 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22322
22323         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22324         * rtl.h (refers_to_regno_p): Add overload.
22325         * cse.c: Use it.
22326         * bt-load.c: Likewise.
22327         * combine.c: Likewise.
22328         * df-scan.c: Likewise.
22329         * sched-deps.c: Likewise.
22330         * config/s390/s390.c: Likewise.
22331         * config/m32r/m32r.c: Likewise.
22332         * config/rs6000/spe.md: Likewise.
22333         * config/rs6000/rs6000.c: Likewise.
22334         * config/pa/pa.c: Likewise.
22335         * config/stormy16/stormy16.c: Likewise.
22336         * config/cris/cris.c: Likewise.
22337         * config/arc/arc.md: Likewise.
22338         * config/arc/arc.c: Likewise.
22339         * config/sh/sh.md: Likewise.
22340         * config/sh/sh.c: Likewise.
22341         * config/frv/frv.c: Likewise.
22342
22343 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22344
22345         PR sanitizer/64265
22346         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22347         call as cleanup of the whole body.
22348         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22349         * tsan.c (replace_func_exit): New function.
22350         (instrument_func_exit): Moved earlier.
22351         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22352         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22353         been found.
22354         (tsan_pass): Don't call instrument_func_exit.
22355         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22356         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22357         inlining.
22358
22359         PR sanitizer/64344
22360         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22361         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22362         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22363         if the result is integer_zerop, return NULL_TREE.
22364         * convert.c (convert_to_integer): Pass expr as ARG.
22365
22366         PR tree-optimization/64465
22367         * tree-inline.c (redirect_all_calls): During inlining
22368         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22369         changed the stmt to a non-throwing call.
22370
22371 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22372
22373         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22374         etc markup throughout the file.
22375
22376 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22377
22378         Enable experimental TSAN support for Ada.
22379         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22380
22381 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22382
22383         PR tree-optimization/64494
22384         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22385         clear SSA_NAME_ANTI_RANGE_P flag.
22386
22387 2015-01-05  Marek Polacek  <polacek@redhat.com>
22388
22389         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22390
22391 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22392
22393         Update copyright years.
22394
22395         * gcc.c (process_command): Update copyright notice dates.
22396         * gcov-dump.c: Ditto.
22397         * gcov.c: Ditto.
22398         * doc/cpp.texi: Bump @copying's copyright year.
22399         * doc/cppinternals.texi: Ditto.
22400         * doc/gcc.texi: Ditto.
22401         * doc/gccint.texi: Ditto.
22402         * doc/gcov.texi: Ditto.
22403         * doc/install.texi: Ditto.
22404         * doc/invoke.texi: Ditto.
22405
22406         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22407
22408 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22409
22410         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22411         verb tense, etc.
22412         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22413         ([-Wabi]): Likewise.
22414         ([-fmessage-length]): Likewise.
22415         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22416         ([-Wno-discarded-qualifiers]): Likewise.
22417         ([-Wnodiscarded-array-qualifiers]): Likewise.
22418         ([-Wno-virtual-move-assign]): Likewise.
22419         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22420         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22421         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22422         ([-fsanitize-undefined-trap-on-error]): Likewise.
22423         ([-floop-interchange]): Likewise.
22424         ([-ftree-coalesce-inlined-vars]): Likewise.
22425         ([-fvect-cost-model]): Likewise.
22426         ([-flto]): Likewise.
22427         ([--param]): Likewise.
22428         (Spec Files): Likewise.
22429         ([-mstrict-align]): Likewise.
22430         ([-mfix-cortex-a53-835769]): Likewise.
22431         ([-march], [-mtune]): Likewise.
22432         ([-mpic-register]): Likewise.
22433         ([-munaligned-access]): Likewise.
22434         ([-msp8]): Likewise.
22435         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22436         (AVR Built-in Macros): Likewise.
22437         ([-mpreferred-stack-boundary]): Likewise.
22438         ([-mtune-crtl]): Likewise.
22439         ([-mashf]): Likewise.
22440         ([-mmcu=]): Likewise.
22441         ([-minrt]): Likewise.
22442         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22443         ([-mupper-regs]): Likewise.
22444         ([-matomic-model]): Likewise.
22445         ([-mdiv]): Likewise.
22446         ([-mzdcbranch]): Likewise.
22447         ([-mdisable-callt]): Likewise.
22448         ([-msoft-float]): Likewise.
22449         ([-m8byte-align]): Likewise.
22450         ([-fstack-reuse]): Likewise.
22451
22452 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22453
22454         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22455         Fix markup, light copy-editing.
22456         ([-fauto-profile]): Rewrite to fix formatting and content
22457         problems.
22458
22459 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22460
22461         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22462         Copy-edit description.
22463         ([-fisolate-erroneous-paths-attribute]): Likewise.
22464         * common.opt (fisolate-erroneous-paths-dereference):
22465         Copy-edit description.
22466         (fisolate-erroneous-paths-attribute): Likewise.
22467
22468 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22469
22470         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22471         tidy grammar.
22472
22473 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22474
22475         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22476         ([-fvtv-debug]): Likewise.
22477         ([-Wc++-compat]): Likewise.
22478         ([-Wc++11-compat]): Likewise.
22479         ([-Wc++14-compat]): Likewise.
22480         ([-Wno-sized-deallocation]): Likewise.
22481         ([-femit-class-debug-always]): Likewise.
22482         ([-femit-struct-debug-detailed]): Likewise.
22483         ([-fno-keep-inline-dllexport]): Likewise.
22484         ([-fira-algorithm]): Likewise.
22485         ([-fira-region]): Likewise.
22486         ([-flra-remat]): Likewise.
22487         ([-fipa-ra]): Likewise.
22488         ([-fhoist-adjacent-loads]): Likewise.
22489         ([-fisolate-erroneous-paths-dereference]): Likewise.
22490         ([-fisolate-erroneous-paths-attribute]): Likewise.
22491         ([-ftree-switch-conversion]): Likewise.
22492         ([-ftree-tail-merge]): Likewise.
22493         ([-ftree-loop-if-convert]): Likewise.
22494         ([-ftree-loop-if-convert-stores]): Likewise.
22495         ([-ftree-loop-distribution]): Likewise.
22496         ([-ftree-loop-distribute-patterns]): Likewise.
22497         ([-flto-compression-level]): Likewise.
22498         ([-flto-report]): Likewise.
22499         ([-flto-report-wpa]): Likewise.
22500         ([-fuse-linker-plugin]): Likewise.
22501         ([-mfix-cortex-a53-835769]): Likewise.
22502         ([-mno-fix-cortex-a53-835769]): Likewise.
22503         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22504         explicit listing; add a note to the discussion indicating they
22505         exist.  Reorder table to group similar options.  Add missing
22506         @opindex entries.  Add @need commands throughout the table to
22507         allow it to be split across multiple pages.
22508         ([-m8bit-idiv]): Fix @opindex.
22509         ([-mavx256-split-unaligned-load]): Likewise.
22510         ([-mavx256-split-unaligned-store]): Likewise.
22511         ([-mstack-protector-guard]): Likewise.
22512         ([-mcpu=]): Likewise.
22513         ([-mcpu]): Likewise.
22514         ([-mpointer-size=]): Likewise.
22515
22516 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22517
22518         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22519         instead of `m' constraint.  Likewise for unnamed movb comparison
22520         patterns using reg_before_reload_operand predicate.
22521         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22522         predicate to reject register index and LO_SUM DLT memory forms
22523         after reload.
22524
22525 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22526
22527         * doc/invoke.texi (Option Summary): Fix spelling of
22528         -fdevirtualize-at-ltrans.
22529         ([-fdevirtualize]): Fix markup.
22530         ([-fdevirtualize-speculatively]): Fix typo.
22531         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22532         implementor-speaky.
22533         * common.opt (fdevirtualize-at-ltrans): Likewise.
22534         * ipa-devirt.c: Fix typos in comments throughout the file.
22535         (ipa_devirt): Fix typos in format strings for dump output.
22536
22537 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22538
22539         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22540         discussion of defaults, light copy-editing.
22541
22542 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22543
22544         * tsan.c (instrument_expr): corrected previous checkin.
22545
22546 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22547
22548         Instrument bit field and unaligned accesses for TSAN.
22549         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22550         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22551         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22552         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22553         unaligned memory regions.
22554
22555 2015-01-01  Anthony Green  <green@moxielogic.com>
22556
22557         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22558         Restrict move source register offsets to 16 bits.
22559 \f
22560 Copyright (C) 2015 Free Software Foundation, Inc.
22561
22562 Copying and distribution of this file, with or without modification,
22563 are permitted in any medium without royalty provided the copyright
22564 notice and this notice are preserved.