can_nonlocal_goto can take a rtx_insn *
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2
3         * except.c (can_nonlocal_goto): Change type of argument to
4         rtx_insn *.
5         * rtl.h: Adjust.
6
7 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8
9         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
10         * rtl.h: Adjust.
11
12 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13
14         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
15         * cfgrtl.c (can_delete_label_p): Adjust.
16         * rtl.h: likewise.
17
18 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19
20         * reorg.c (stop_search_p): Change argument to rtx_insn *.
21
22 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23
24         * except.c (make_reg_eh_region_note): Change argument to
25         rtx_insn *.
26         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
27         * except.h: Adjust.
28
29 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30
31         * mode-switching.c (commit_mode_sets): Change type of local
32         variable from rtx to rtx_insn *.
33
34 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
35
36         * doc/install.texi (--enable-languages): Add missing jit and lto info.
37         Add ^ to grep command.
38         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
39         arg to last gimple_simplify declaration.  Add missing gimple_build
40         declaration for built-in function case with four tree args.
41
42 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
43             Szabolcs Nagy  <szabolcs.nagy@arm.com>
44
45         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
46         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
47         (GNU_USER_DYNAMIC_LINKERN32): Update.
48
49 2015-05-08  Richard Biener  <rguenther@suse.de>
50
51         PR tree-optimization/66036
52         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
53         Handle strided group loads.
54         (vect_verify_datarefs_alignment): Likewise.
55         (vect_enhance_data_refs_alignment): Likewise.
56         (vect_analyze_group_access): Likewise.
57         (vect_analyze_data_ref_access): Likewise.
58         (vect_analyze_data_ref_accesses): Likewise.
59         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
60         (vectorizable_load): Likewise.
61
62 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
63
64         * config/rs6000/rs6000.md: Require operand inequality in one
65         of the peepholes.
66
67 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
68             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
69
70         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
71         from (set ...).
72         * config/rx/rx.md (movdi, movdf): Likewise.
73         Likewise for define_peephole2s.
74
75 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
76
77         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
78         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
79         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
80         vtst_u64): Rewrite using gcc vector extensions.
81
82 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
83
84         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
85         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
86
87 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
88
89         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
90
91 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
92
93         * config/glibc-stdint.h (OPTION_MUSL): Define.
94         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
95         Change the definition based on OPTION_MUSL for 64 bit targets.
96         * config/linux.h (OPTION_MUSL): Redefine.
97         * config/alpha/linux.h (OPTION_MUSL): Redefine.
98         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
99         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
100
101 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
102             Szabolcs Nagy  <szabolcs.nagy@arm.com>
103
104         * config.gcc (LIBC_MUSL): New tm_defines macro.
105         * config/linux.h (OPTION_MUSL): Define.
106         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
107         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
108         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
109         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
110         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
111         * config/linux.opt (mmusl): New option.
112         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
113         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
114         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
115         * configure: Regenerate.
116
117 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
118             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
119
120         PR target/48904
121         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
122         * config/i386/knetbsd-gnu64.h: New file.
123
124 2015-05-08  Marek Polacek  <polacek@redhat.com>
125
126         PR c/64918
127         * doc/invoke.texi: Document -Woverride-init-side-effects.
128
129 2015-05-07  Marek Polacek  <polacek@redhat.com>
130
131         PR c/65179
132         * doc/invoke.texi: Document -Wshift-negative-value.
133
134 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
135
136         * gcov-tool.c (do_merge): Refactore to remove int ret.
137         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
138         !type == FUNC to type != FUNC.
139         * reload.h (struct target_reload): Changee to type of
140         x_spill_indirect_levels from bool to unsigned char.
141
142 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
143
144         * rtl.h (always_void_p): New function.
145         * gengenrtl.c (always_void_p): Likewise.
146         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
147         with code foo are always VOIDmode.
148         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
149         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
150         compare-elim.c, config/aarch64/aarch64.c,
151         config/aarch64/aarch64.md, config/alpha/alpha.c,
152         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
153         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
154         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
155         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
156         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
157         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
158         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
159         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
160         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
161         config/ia64/vect.md, config/iq2000/iq2000.c,
162         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
163         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
164         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
165         config/mep/mep.c, config/microblaze/microblaze.c,
166         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
167         config/mn10300/mn10300.c, config/msp430/msp430.c,
168         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
169         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
170         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
171         config/rs6000/altivec.md, config/rs6000/rs6000.c,
172         config/rs6000/rs6000.md, config/rs6000/vector.md,
173         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
174         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
175         config/sh/sh.md, config/sh/sh_treg_combine.cc,
176         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
177         config/spu/spu.md, config/stormy16/stormy16.c,
178         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
179         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
180         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
181         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
182         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
183         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
184         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
185         var-tracking.c: Update calls accordingly.
186
187 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
188
189         PR middle-end/192
190         PR middle-end/54303
191         * varasm.c (function_mergeable_rodata_prefix): New function.
192         (mergeable_string_section): Use it.
193         (mergeable_constant_section): Use it.
194
195 2015-05-07  Jeff Law  <law@redhat.com>
196
197         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
198         simplifier to narrow arithmetic.
199         * generic-match-head.c: (types_match, single_use): New functions.
200         * gimple-match-head.c: (types_match, single_use): New functions.
201
202 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
203
204         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
205         rtx type.
206
207 2015-05-07  Richard Biener  <rguenther@suse.de>
208
209         PR tree-optimization/66002
210         * passes.def: Schedule another pass_merge_phi after ifcombine, right
211         before phiopt.
212
213 2015-05-07  Marek Polacek  <polacek@redhat.com>
214             Martin Uecker  <uecker@eecs.berkeley.edu>
215
216         * doc/invoke.texi: Document -fsanitize=bounds-strict.
217         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
218         into SANITIZE_NONDEFAULT.
219         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
220
221 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
222
223         PR target/66015
224         * config/alpha/alpha.c (alpha_override_options_after_change): New.
225         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
226         (alpha_override_options): Move align_loops, align_jumps and
227         align_functions handling into alpha_override_options_after_change.
228
229 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
230             Chris Jones  <chrisj@nvidia.com>
231             Joshua Conner  <jconner@nvidia.com>
232
233         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
234         linking of crtfastmath.o.
235         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
236
237 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
238
239         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
240         (cstore<mode>4_unsigned_imm): New expander.
241         (cstore<mode>4): Remove empty constraint strings.  Use the new
242         expanders.
243
244 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
245
246         PR target/64208
247         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
248         alternatives.
249
250 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
251
252         * config/aarch64/geniterators.sh: Use standard BRE in sed.
253
254 2015-05-06  Alan Modra  <amodra@gmail.com>
255
256         PR target/66033
257         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
258         (UNSPEC_NOP): Define.
259         (reload_vsx_from_gpr<mode>): Add missing DONE.
260         (reload_gpr_from_vsx<mode>): Likewise.
261         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
262         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
263
264 2015-05-06  Christian Bruel  <christian.bruel@st.com>
265
266         PR target/66015
267         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
268         align_jumps, align_functions into aarch64_override_options_after_change.
269
270 2015-05-06  Richard Biener  <rguenther@suse.de>
271
272         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
273         vect_transform_slp_perm_load to check if we support a permutation
274         for basic-block vectorization.
275
276 2015-05-06  Nick Clifton  <nickc@redhat.com>
277
278         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
279         used, even if it is not being used as a frame pointer.
280
281 2015-05-05  Jason Merrill  <jason@redhat.com>
282
283         * dwarf2out.c (gen_member_die): Don't emit anything for an
284         anonymous class constructor.
285
286 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
287
288         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
289         that it reflects the block structure.
290         (afdo_propagate_edge): Likewise.
291         (afdo_calculate_branch_prob): Likewise.
292         (afdo_annotate_cfg): Likewise.
293         * cfgcleanup.c (equal_different_set_p): Likewise.
294         (try_crossjump_to_edge): Likewise.
295         * cgraph.c (cgraph_node::verify_node): Likewise.
296         * cgraphunit.c (expand_all_functions): Likewise.
297         * config/i386/i386.c (ix86_expand_copysign): Likewise.
298         (exact_dependency_1): Likewise.
299         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
300         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
301         * gensupport.c (process_define_subst): Likewise.
302         * lto-wrapper.c (merge_and_complain): Likewise.
303         * tree-if-conv.c (if_convertible_bb_p): Likewise.
304         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
305         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
306         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
307         * tree-vect-loop.c (vectorizable_reduction): Likewise.
308         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
309         * tree-vect-stmts.c (vectorizable_shift): Likewise.
310         * tree-vrp.c (vrp_finalize): Likewise.
311         * tree.c (variably_modified_type_p): Likewise.
312
313 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
314
315         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
316         on darwin12 and later.
317         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
318         file to pass -rdynamic on darwin12 and later.
319         * config/darwin.opt (rdynamic): Add.
320
321 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
322
323         * doc/extend.texi (C Extensions): Update menu for moved Variable
324         Attributes and Type Attributes sections.
325
326 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
327
328         PR target/65990
329         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
330         if rep_8byte stringop strategy was specified for 32-bit target.
331
332 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
333
334         PR target/65915
335         * config/i386/i386.md (vector convert to float spltiter): Check for
336         xmm16+, when splitting scalar float conversion.
337         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
338
339 2015-05-05  Nick Clifton  <nickc@redhat.com>
340
341         * config/msp430/msp430-opts.h (enum msp430_regions): New.
342         * config/msp430/msp430.c (msp430_override_options): Complain if
343         -mcode-region or -mdata-region is used on a non MSP430X.
344         (msp430_section_attr): New function.  Checks lower, upper and
345         either attributes.
346         (msp430_attribute_table): Add lower, upper and either.
347         (gen_prefix): New function.  Generates a prefix for a section
348         name.
349         (msp430_select_section): New function - handles the choice of
350         section for an object.  Takes into account memory region
351         attributes and options.
352         (msp430_function_section): Use gen_prefix.
353         (TARGET_SECTION_TYPE_FLAGS): Define.
354         (msp430_section_type_flags): New function.
355         (TARGET_ASM_UNIQUE_SECTION): Define.
356         (msp430_unique_section): New function.
357         (msp430_output_aligned_decl_common): New function.
358         (msp430_do_not_relax_short_jumps): New function.
359         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
360         Define.
361         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
362         * config/msp430/msp430-protos.h
363         (msp430_do_not_relax_short_jumps): New prototype.
364         (msp430_output_aligned_decl_common): New prototype.
365         * config/msp430/msp430.md (length): New attribute.
366         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
367         then use a long code sequence for short jumps.
368         * config/msp430/msp430.opt (mcode-region): New.
369         (mdata-region): New.
370         * doc/invoke.texi: Document new options.
371         * doc/extend.texi: Document new attributes.
372
373 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
374
375         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
376         (tune_params): Add field branch_costs.
377         (aarch64_branch_cost): Declare.
378         * gcc/config/aarch64.c (generic_branch_cost): New.
379         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
380         (cortexa53_tunings): Likewise.
381         (cortexa57_tunings): Likewise.
382         (thunderx_tunings): Likewise.
383         (xgene1_tunings): Likewise.
384         (aarch64_branch_cost): Define.
385         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
386
387 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
388
389         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
390         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
391         * config/i386/i386.md: Ditto.
392         * config/i386/winnt.c: Ditto.
393
394 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
395
396         * doc/extend.texi (__atomic Builtins): Move implementation details
397         to the end of the description, rewrite opening paragraphs, state
398         difference with __sync builtins, state C11/C++11 assumptions,
399         weaken itemized descriptions, add explanation of memory model
400         behaviour, expand description of compare-exchange, simplify text.
401
402 2015-05-05  Renlin Li  <renlin.li@arm.com>
403
404         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
405
406 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
407
408         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
409         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
410         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
411         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
412         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
413         * configure: Regenerate.
414         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
415         * doc/install.texi (aarch64*-*-*): Document new
416         --enable-fix-cortex-a53-843419 option.
417         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
418         and -mno-fix-cortex-a53-843419 options.
419
420 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
421
422         PR target/65871
423         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
424
425 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
426
427         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
428         fix overactive TYPE_MIN_VALUE check and add FIXME for type
429         compatibility problems.
430
431 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
432
433         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
434         constraints.
435         (cbranchsi4_reg): New.
436         * config/microblaze/microblaze.c
437         (microblaze_expand_conditional_branch_reg): New.
438         * config/microblaze/microblaze-protos.h
439         (microblaze_expand_conditional_branch_reg): New prototype.
440
441 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
442
443         * config/microblaze/microblaze.md (peephole2): New.
444
445 2015-05-04  Jeff Law  <law@redhat.com>
446
447         Revert:
448         2015-05-04  Jeff Law  <law@redhat.com>
449
450         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
451         simplifier to narrow arithmetic.
452         * generic-match-head.c: (types_match, single_use): New functions.
453         * gimple-match-head.c: (types_match, single_use): New functions.
454
455 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
456
457         PR target/65987
458         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
459         (split_branches): Likewise.
460
461 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
462
463         * common.opt (fdelete-null-pointer-checks): Init to -1.
464         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
465         override flag_delete_null_pointer_checks default.
466         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
467         behavior re address zero.  Better document target-specific behavior.
468         (-fisolate-errneous-paths-dereference): Mention relationship to
469         -fdelete-null-pointer-checks.
470
471 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
472
473         PR tree-optimization/65984
474         * ubsan.c: Include tree-cfg.h.
475         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
476         stmt_could_throw_p test, rename can_throw variable to ends_bb.
477
478 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
479
480         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
481         to CONST_DOUBLE_P predicate.
482         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
483         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
484         allow only operands that satisfy standard_sse_constant_p predicate.
485         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
486         to CONST_DOUBLE_P predicate.
487
488 2015-05-04  Jeff Law  <law@redhat.com>
489
490         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
491         simplifier to narrow arithmetic.
492         * generic-match-head.c: (types_match, single_use): New functions.
493         * gimple-match-head.c: (types_match, single_use): New functions.
494
495 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
496
497         * config/arm/arm.c: Restore bootstrap.
498
499 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
500
501         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
502         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
503         as CONST_WIDE_INT, not CONST_DOUBLE.
504         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
505         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
506         (ix86_find_base_term): Do not check for CONST_DOUBLE.
507         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
508         (ix86_build_signbit_mask): Rewrite using wide ints.
509         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
510         (ix86_rtx_costs): Handle CONST_WIDE_INT.
511         (find_constant): Ditto.
512         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
513         using gen_int_mode.
514         * config/i386/predicates.md (x86_64_immediate_operand)
515         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
516         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
517         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
518         (const0_operand): Also match const_wide_int.
519         (constm1_operand): Ditto.
520         (const1_operand): Ditto.
521
522 2015-05-04  Richard Biener  <rguenther@suse.de>
523
524         PR tree-optimization/65965
525         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
526         store groups at gaps.
527
528 2015-05-04  Richard Biener  <rguenther@suse.de>
529
530         PR tree-optimization/65935
531         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
532         then make sure to apply that swapping to the IL.
533
534 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
535
536         * Makefile.in (PATCHLEVEL_c): New variable.
537         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
538         expand the same way as if DEVPHASE_c was non-empty.
539
540 2015-05-04  Kai Tietz  <ktietz@redhat.com>
541
542         PR target/65559
543         * lto-wrapper.c (run_gcc): Open filename
544         in binary-mode.
545
546 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
547
548         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
549         sections up in file, to immediately after the Function Attributes
550         section.
551
552 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
553
554         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
555
556 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
557
558         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
559         (insert_partition_copy_on_edge): Adjust.
560         (insert_rtx_to_part_on_edge): Likewise.
561         (insert_part_to_rtx_on_edge): Likewise.
562
563 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
564
565         * function.c (set_return_jump_label): Change type of argument to
566         rtx_insn *.
567         * function.h (set_return_jump_label): Adjust.
568
569 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
570
571         * reload.h (struct reg_equivs_t): Change type of init to
572         rtx_insn *.
573         * ira.c (fix_reg_equiv_init): Adjust.
574         * reload1.c (eliminate_regs_1): Likewise.
575         (init_eliminable_invariants): Likewise.
576
577 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
578
579         * cselib.c (fp_setter_insn): Take a rtx_insn *.
580         * cselib.h (fp_setter_insn): Adjust.
581
582 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
583
584         * recog.c (struct validate_replace_src_data): Change type of
585         insn field to rtx_insn *.
586         (validate_replace_src_group): Change type of argument to rtx_insn *.
587         * recog.h (validate_replace_src_group): Adjust.
588
589 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
590
591         * haifa-sched.c: Change the type of some variables to rtx_insn *.
592         * sched-deps.c: Likewise.
593         * sched-int.h: Likewise.
594         * sched-rgn.c: Likewise.
595         * sel-sched.c: Likewise.
596
597 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
598
599         to rtx_insn *.
600         * config/i386/i386.c: Change the type of some arguments to
601         rtx_insn *.
602         * config/arm/arm.c: Likewise.
603
604 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
605
606         * lra-constraints.c: Change type of some arguments to rtx_insn *.
607
608 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
609
610         * regcprop.c (kill_autoinc_value): Change type of argument to
611         rtx_insn *.
612
613 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
614
615         * genrecog.c (print_subroutine): Adjust.
616         * recog.c (get_bool_attr_mask_uncached): Likewise.
617         * recog.h (struct recog_data_d): Change the type of insn to
618         rtx_insn *.
619
620 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
621
622         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
623
624 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
625
626         * df-problems.c (df_set_note): Change type of argument to
627         rtx_insn *.
628
629 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
630
631         * builtins.c (expand_builtin_trap): Change type of local
632         variable to rtx_insn *.
633         (add_sched_insns_for_speculation): Likewise.
634         (ix86_emit_save_regs): Likewise.
635         (get_scratch_register_on_entry): Likewise.
636         (ix86_emit_restore_reg_using_pop): Likewise.
637         (ix86_emit_leave): Likewise.
638         (ix86_emit_restore_regs_using_mov): Likewise.
639         (ix86_expand_epilogue): Likewise.
640         Likewise.
641         (rl78_alloc_physical_registers_umul): Likewise.
642         * cselib.c (discard_useless_locs): Likewise.
643         (cselib_invalidate_regno): Likewise.
644         (cselib_invalidate_mem): Likewise.
645         * function.c (expand_function_start): Likewise.
646         (emit_use_return_register_into_block): Likewise.
647         * gcse.c: Likewise.
648         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
649         * ifcvt.c (noce_get_alt_condition): Likewise.
650         * loop-doloop.c (doloop_condition_get): Likewise.
651         * lra-constraints.c (inherit_in_ebb): Likewise.
652         * modulo-sched.c (sms_schedule_by_order): Likewise.
653         * recog.c (next_insn_tests_no_inequality): Likewise.
654         * reorg.c (emit_delay_sequence): Likewise.
655         (update_reg_dead_notes): Likewise.
656         (fix_reg_dead_note): Likewise.
657         (fill_slots_from_thread): Likewise.
658         (delete_computation): Likewise.
659
660 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
661
662         * doc/extend.texi (Variable Attributes): Add menu and proper
663         @nodes to subsections.  Move Microsoft Windows attributes to
664         their own subsection.
665         (Type Attributes): Reorganize introduction to remove duplicate
666         list of attributes.  Add menu and proper @nodes to subsections.
667         Alphabetize the main table of common attributes.
668
669 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
670
671         * match.pd: New simplification patterns.
672         (x + (x & 1))  -> ((x + 1) & ~1)
673         (x & ~(x & y)) -> ((x & ~y))
674         (x | ~(x | y)) -> ((x | ~y))
675
676 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
677
678         * target.def (attribute_table): Mention that struct attribute_spec
679         is defined in tree-core.h rather than tree.h
680         * doc/tm.texi: Regenerate.
681
682 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
683
684         * genrecog.c (test): Rename to rtx_test.  Update rest of file
685         accordingly.
686
687 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
688
689         PR translation/65959
690         * params.h (DEFPARAM): Rename msgid to nocmsgid.
691
692 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
693
694         * gcc/config/aarch64/aarch64-protos.h (tune_params):
695         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
696         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
697         Return value depending on target.
698         (generic_tunings): Initialize new target settings.
699         (cortexa53_tunings): Likewise.
700         (cortexa57_tunings): Likewise.
701         (thunderx_tunings): Likewise.
702         (xgene1_tunings): Likewise.
703
704 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
705
706         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
707         Make Cortex-A53 shift costs more accurate.
708
709 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
710
711         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
712         UNSIGNED_FLOAT.
713
714 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
715
716         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
717         Calculate cost of op0 and op1 in PLUS and MINUS cases.
718
719 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
720
721         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
722         Add cost of op0 in the compare-with-fpzero case.
723
724 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
725
726         * builtins.c (fold_builtin_1): Remove spurious second
727         semicolon.
728         * cgraph.h (symtab_node::get_availability): Likewise.
729         * opts.c (common_handle_option): Remove spurious second semicolon.
730         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
731         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
732
733 2015-04-30  Caroline Tice  <cmtice@google.com>
734
735         PR 65929
736         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
737         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
738         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
739         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
740         * doc/tm.texi: Regenerate.
741         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
742         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
743         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
744         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
745
746 2015-04-30  Marek Polacek  <polacek@redhat.com>
747
748         * varasm.c (handle_cache_entry): Fix logic.
749
750 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
751
752         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
753         (*extrsi5_insn_uxtw_alt): Likewise.
754         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
755         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
756         operations.
757
758 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
759
760         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
761         fabd in ABS case.
762
763 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
764
765         * config/aarch64/aarch64.md
766         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
767         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
768         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
769         appropriately.  Handle alternative EON form.
770
771 2015-04-30  Renlin Li  <renlin.li@arm.com>
772
773         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
774         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
775
776 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
777
778         PR ipa/65873
779         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
780         -fstrict-aliasing boundaries.
781
782 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
783
784         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
785         and [SU]MNEGL patterns.
786
787 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
788
789         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
790         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
791         combined arithmetic-shift ops.  Properly handle all shift and extend
792         operations that can occur in combination with PLUS/MINUS.
793         Rename maybe_fma to compound_p.
794         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
795         arithmetic and shift operations.
796
797 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
798
799         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
800         rather than arith_shift cost when costing ADD/MINUS of an
801         extended value.
802
803 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
804
805         PR lto/65948
806         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
807         to itself.
808
809 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
810
811         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
812         are for the same position.
813
814 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
815
816         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
817         vectorize_loops.
818         (vectorize_loops): Use it.
819
820 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
821
822         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
823         for aggregate types.
824         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
825         type to be non_ODR.
826         * tree.c (need_assembler_name_p): Compute mangled name for
827         non-fundamental types and integer types.
828
829 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
830
831         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
832         manual swaps.
833         * expr.c (expand_expr_real_2): Likewise.
834
835 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
836
837         * tree.c (build_common_builtin_nodes): Do not build
838         __builtin_alloca_with_align as equivalent of library alloca.
839
840 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
841
842         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
843         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
844         bugus variants.
845         * tree.c: Include print-tree.h and ipa-utils.h
846         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
847         (free_lang_data_in_cgraph): Call verify_type.
848         (verify_type_variant): New function.
849         (verify_type): New function.
850         * tree.h (verify_type): Declare.
851
852 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
853
854         * config/mips/mips-cpus.def: (mips4): Change default processor
855         from PROCESSOR_R8000 to PROCESSOR_R10000.
856
857 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
858
859         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
860         la/jalr instead of jal.
861
862 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
863
864         PR target/65871
865         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
866         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
867         (setcc+movzbl peephole2): Check also clobbered reg.
868         (setcc+andl peephole2): Ditto.
869
870 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
871
872         PR libgomp/65099
873         * config/nvptx/mkoffload.c (target_ilp32): New variable.
874         (main): Set it depending on "-foffload-abi=[...]".
875         (compile_native, main): Use it to pass "-m32" or "-m64" to the
876         compiler.
877
878 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
879
880         PR target/65770
881         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
882         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
883         Flip lane index back at assembly time for bigendian.
884
885 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
886
887         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
888         * gimplify.c (gimplify_omp_workshare): Use it.
889
890 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
891
892         * Makefile.in (build/genrecog.o): Depend on inchash.h.
893         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
894         build/inchash.o
895         * genrecog.c: Rewrite most of the code except for the third page.
896
897 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
898
899         * inchash.h, inchash.c: Include bconfig.h for build objects.
900         * Makefile.in (build/inchash.o): New rule.
901
902 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
903
904         PR target/65924
905         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
906         number in type attribute expression.
907
908 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
909
910         * loop-iv.c (canon_condition): Generalize to all types of integer
911         constant.
912
913 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
914
915         * gimple-walk.c: Prune duplicate or unneeded includes.
916         (walk_gimple_asm): Only call parse_input_constraint or
917         parse_output_constraint if their findings are used.
918         Honour parse_input_constraint and parse_output_constraint
919         result.
920
921 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
922
923         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
924
925 2015-04-29  Tom de Vries  <tom@codesourcery.com>
926
927         PR tree-optimization/65893
928         * passes.def (pass_all_optimizations): Move pass_stdarg to after
929         pass_dce.
930
931 2015-04-29  Richard Biener  <rguenther@suse.de>
932
933         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
934         compute GROUP_SIZE for basic-block SLP.
935         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
936         take into account gaps.
937         (vect_get_mask_element): Properly reject references to previous
938         vectors.
939         (vect_transform_slp_perm_load): Likewise.
940
941 2015-04-29  Christian Bruel  <christian.bruel@st.com>
942
943         PR target/64835
944         * config/i386/i386.c (ix86_default_align): New function.
945         (ix86_override_options_after_change): Call ix86_default_align.
946         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
947         (ix86_override_options_after_change): New function.
948
949 2015-04-28  Jeff Law  <law@redhat.com>
950
951         * tree-ssa-dom.c (record_equality); Fix comment typos.
952
953 2015-04-28  Tom de Vries  <tom@codesourcery.com>
954
955         PR tree-optimization/65887
956         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
957
958 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
959
960         * doc/extend.texi (Declaring Attributes of Functions): Split into
961         subsections by target.  Alphabetize the table of common attributes.
962         Rewrite some of the introductory text to reflect the new structure.
963         Update some cross-references to point to the new subsections.
964         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
965         duplicate copies in the discussion of function, label, and type
966         attributes.
967
968 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
969
970         PR bootstrap/65910
971         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
972
973 2015-04-28  Jason Merrill  <jason@redhat.com>
974
975         PR c++/65734
976         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
977         (finalize_type_size): Respect TYPE_USER_ALIGN.
978         (layout_type) [ARRAY_TYPE]: Likewise.
979
980 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
981
982         * config/arm/arm.md (*arm_movt): Fix type attribute.
983         (*cmpsi_shiftsi): Likewise.
984         (*cmpsi_shiftsi_swp): Likewise.
985         (*movsicc_insn): Likewise.
986         (*cond_move): Likewise.
987         (*if_plus_move): Likewise.
988         (*if_move_plus): Likewise.
989         (*if_arith_move): Likewise.
990         (*if_move_arith): Likewise.
991         (*if_shift_move): Likewise.
992         (*if_move_shift): Likewise.
993         (*arm_movtas_ze): Likewise.
994         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
995         redundancy and type attribute.
996         (*thumb2_movsi_insn): Fix type attribute.
997         (*thumb2_addsi_short): Likewise.
998         (thumb2_addsi3_compare0): Likewise.
999         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
1000         attributes accordingly.
1001
1002 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
1003
1004         PR other/65911
1005         * function.c (pad_to_arg_alignment): Add parentheses.
1006
1007 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
1008
1009         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
1010         libgcc/config/frv/elf-lib.h.
1011
1012 2015-04-28  Tom de Vries  <tom@codesourcery.com>
1013
1014         * tree-call-cdce.c: Fix example in header comment.
1015
1016 2015-04-28  Richard Biener  <rguenther@suse.de>
1017
1018         PR tree-optimization/62283
1019         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
1020         fails fatally and we are vectorizing a basic-block simply
1021         cause the child to be constructed piecewise.
1022         (vect_analyze_slp_cost_1): Adjust.
1023         (vect_detect_hybrid_slp_stmts): Likewise.
1024         (vect_bb_slp_scalar_cost): Likewise.
1025         (vect_get_constant_vectors): For piecewise constructed
1026         constants place them after the last def.
1027         (vect_get_slp_defs): Adjust.
1028         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
1029         externals for basic-block vectorization.
1030
1031 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1032
1033         PR target/63503
1034         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
1035         aarch64-*-*.
1036         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
1037         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
1038         (AARCH64_TUNE_FMA_STEERING): Likewise.
1039         * config/aarch64/aarch64-cores.def: Set
1040         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
1041         FMUL/FMADD instructions.
1042         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
1043         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
1044         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
1045         * config/aarch64/cortex-a57-fma-steering.h: New file.
1046         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1047
1048 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
1049
1050         * gensupport.c (std_preds): Add missing codes to address_operand entry.
1051
1052 2015-04-28  Richard Biener  <rguenther@suse.de>
1053
1054         PR tree-optimization/65851
1055         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
1056         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
1057         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
1058         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
1059         (ccp_visit_phi_node): Adjust.
1060         (evaluate_stmt): For simplifications to SSA names return its
1061         lattice value if that isn't VARYING.  Return immediately when
1062         simplified to a constant.
1063         (visit_assignment): Adjust.
1064         (ccp_visit_stmt): Likewise.
1065
1066 2015-04-28  Tom de Vries  <tom@codesourcery.com>
1067
1068         PR tree-optimization/65818
1069         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
1070         evaluated.
1071
1072 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1073
1074         * calls.c (save_fixed_argument_area): Don't check
1075         ARGS_GROW_DOWNWARD with the preprocessor.
1076         (restore_fixed_argument_area): Likewise.
1077         (mem_overlaps_already_clobbered_arg_p): Likewise.
1078         (check_sibcall_argument_overlap): Likewise.
1079         (expand_call): Likewise.
1080         (emit_library_call_value_1): Likewise.
1081         (store_one_arg): Likewise.
1082         * function.c (assign_parms): Likewise.
1083         (locate_and_pad_parm): Likewise.
1084         (pad_to_arg_alignment): Likewise.
1085         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1086
1087 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1088
1089         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
1090         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
1091         * calls.c (save_fixed_argument_area): Don't chekc if
1092         ARGS_GROW_DOWNWARD is defined.
1093         (restore_fixed_argument_area): Likewise.
1094         (mem_overlaps_already_clobbered_arg_p): Likewise.
1095         (check_sibcall_argument_overlap): Likewise.
1096         (expand_call): Likewise.
1097         (emit_library_call_value_1): Likewise.
1098         (store_one_arg): Likewise.
1099         * function.c (assign_parms): Likewise.
1100         (locate_and_pad_parm): Likewise.
1101         (pad_to_arg_alignment): Likewise.
1102         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1103
1104 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1105
1106         * defaults.h (gen_epilogue): New function.
1107         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
1108         defined.
1109         * cfgrtl.c (cfg_layout_finalize): Likewise.
1110         * df-scan.c: Likewise.
1111         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1112         (reposition_prologue_and_epilogue_notes): Likewise.
1113         * reorg.c (find_end_label): Likewise.
1114         * toplev.c: Likewise.
1115
1116 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1117
1118         * bb-reorder.c (HAVE_return): Don't check if its undefined.
1119         * defaults.h (gen_simple_return): New function.
1120         (gen_simple_return): Likewise.
1121         (HAVE_return): Add default definition to false.
1122         (HAVE_simple_return): Likewise.
1123         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
1124         HAVE_return and HAVE_simple_return are defined.
1125         * function.c (gen_return_pattern): Likewise.
1126         (convert_jumps_to_returns): Likewise.
1127         (thread_prologue_and_epilogue_insns): Likewise.
1128         * reorg.c (find_end_label): Likewise.
1129         (dbr_schedule): Likewise.
1130         * shrink-wrap.c: Likewise.
1131         * shrink-wrap.h: Likewise.
1132
1133 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1134
1135         * defaults.h (EPILOGUE_USES): Add default definition of false.
1136         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
1137         * resource.c (init_resource_info): Likewise.
1138
1139 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1140
1141         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
1142         to false.
1143         * dwarf2out.c (field_byte_offset): REmove check if
1144         PCC_BITFIELD_TYPE_MATTERS is defined.
1145         * stor-layout.c (layout_decl): Likewise.
1146         (update_alignment_for_field): Likewise.
1147         (place_field): Likewise.
1148
1149 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1150
1151         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
1152         true.
1153         * regrename.c (check_new_reg_p): Remove check if
1154         HARD_REGNO_RENAME_OK is defined.
1155         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
1156
1157 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1158
1159         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
1160         * cse.c (fold_rtx): Likewise.
1161         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
1162         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
1163         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
1164         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
1165         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
1166         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
1167         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
1168         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
1169         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
1170         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
1171         * Likewise.
1172         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
1173         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
1174         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
1175         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
1176         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
1177         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
1178         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
1179         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
1180         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
1181         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
1182         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
1183         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
1184         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
1185         * doc/tm.texi: Regenerate.
1186         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
1187         either true or false.
1188
1189 2015-04-27  Jeff Law  <law@redhat.com>
1190
1191         PR tree-optimization/65217
1192         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
1193         of them has a single use, make sure it is the LHS of the implied
1194         copy.
1195
1196 2015-04-28  Alan Modra  <amodra@gmail.com>
1197
1198         PR target/65810
1199         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
1200         (offsettable_ok_by_alignment): Use minimum of decl and toc
1201         pointer alignment.  Replace dead code with assertion.
1202         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
1203         case if size exceeds toc pointer alignment.
1204         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
1205         (rs6000_emit_move): Likewise.
1206         * configure.ac: Add linker toc pointer alignment check.
1207         * configure: Regenerate.
1208         * config.in: Regenerate.
1209
1210 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
1211
1212         * config.gcc: Add h8300-*-linux.
1213         * config/h8300/linux.h: New.
1214         * config/h8300/t-linux: New.
1215         * config/h8300/h8300.c (h8300_option_override): Normal mode
1216         is not supported for h8300-*-linux.
1217         (h8300_file_start): Target priority change.
1218         (get_shift_alg): Likewise.
1219         (h8300_shift_need_scratch_p): Likewise.
1220         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1221         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
1222
1223 2015-04-27  Caroline Tice  <cmtice@google.com>
1224
1225         * final.c (final_scan_insn):  Output cold_function_name as function
1226         type.
1227         * varasm.c (cold_function_name):  Make global.
1228         (assemble_start_function):  Re-set cold_function_name.
1229         (assemble_end_function): Output cold partition size.
1230         * varasm.h (cold_function_name):  Declare global.
1231
1232 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
1233
1234         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
1235         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
1236         constraint.
1237         (*movxi_internal_avx512f): Ditto.
1238         (define_split): Check for xmm16+, when splitting scalar float_extend.
1239         (*extendsfdf2_mixed): Use "v" constraint.
1240         (define_split): Check for xmm16+, when splitting scalar float_truncate.
1241         (*truncdfsf_fast_sse): Use "v" constraint.
1242         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
1243         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
1244         (define_peephole2): Check for xmm16+, when converting scalar
1245         float_truncate.
1246         (define_peephole2): Check for xmm16+, when converting scalar
1247         float_extend.
1248         (*fop_<mode>_comm_mixed): Use "v" constraint.
1249         (*fop_<mode>_comm_sse): Ditto.
1250         (*fop_<mode>_1_mixed): Ditto.
1251         (*sqrt<mode>2_sse): Ditto.
1252         (*ieee_s<ieee_maxmin><mode>3): Ditto.
1253
1254 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1255
1256         * combine.c (simplify_if_then_else): Use std::swap instead
1257         of manually swapping.
1258         (known_cond): Likewise.
1259         (simplify_comparison): Likewise.
1260
1261 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
1262
1263         PR target/64579
1264         * config/rs6000/htm.md: Remove all define_expands.
1265         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
1266         UNSPECV_HTM_TABORTWCI): Remove.
1267         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
1268         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
1269         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
1270         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
1271         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
1272         tabortwci_internal): Remove define_insns.
1273         (tabort<wd>c, tabort<wd>ci): New define_insns.
1274         (tabort): Use gpc_reg_operand.
1275         (tcheck): Remove operand.
1276         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
1277         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
1278         expected value.
1279         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
1280         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
1281         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
1282         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
1283         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
1284         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
1285         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
1286         (tcheck): Remove builtin argument.
1287         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
1288         not TARGET_64BIT.
1289         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
1290         tabortdc and tabortdci builtins when not in 64-bit mode.
1291         Modify code to handle the loss of the HTM define_expands.
1292         Emit code to copy the CR register to TARGET.
1293         (htm_init_builtins): Modify code to handle the loss of the HTM
1294         define_expands.
1295         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
1296         (RS6000_BTC_64BIT): Likewise.
1297         (RS6000_BTC_CR): New macro.
1298         * doc/extend.texi: Update documentation for htm builtins.
1299
1300 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1301
1302         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
1303         of manually swapping.
1304         (simplify_associative_operation): Likewise.
1305         (simplify_binary_operation): Likewise.
1306         (simplify_plus_minus): Likewise.
1307         (simplify_relational_operation): Likewise.
1308         (simplify_ternary_operation): Likewise.
1309
1310 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
1311
1312         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
1313         (xs_hi_nonmemory_operand): Remove error.
1314         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
1315         general_operand rather than xs_hi_general_operand.
1316
1317 2015-04-27  Richard Biener  <rguenther@suse.de>
1318
1319         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
1320         (record_equivalences_from_stmt): Valueize rhs.
1321         (record_equality): Canonicalize x and y order via
1322         tree_swap_operands_p.  Do not swap operands for same loop depth.
1323
1324 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
1325
1326         PR target/65296
1327         PR target/65895
1328         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
1329         Add hint how to use own spec file.
1330
1331 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
1332
1333         PR tree-optimization/65875
1334         * tree-vrp.c (update_value_range): If in is_new case setting
1335         old_vr to VR_VARYING, also set new_vr to it.  Remove
1336         old_vr->type == VR_VARYING test.
1337         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
1338         SSA_PROP_INTERESTING if update_value_range returned true,
1339         but new range is VR_VARYING.
1340
1341 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1342
1343         * combine.c (sign_extend_short_imm): New.
1344         (set_nonzero_bits_and_sign_copies): Use above new function for sign
1345         extension of src short immediate.
1346         (reg_nonzero_bits_for_combine): Likewise for tem.
1347
1348 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1349
1350         * stor-layout.c (self_referential_component_ref_p): New predicate.
1351         (copy_self_referential_tree_r): Use it.
1352         (self_referential_size): Punt for simple operations directly involving
1353         self-referential component references.
1354         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
1355
1356 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1357
1358         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
1359
1360 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
1361
1362         * vec.h (vec): Make splice arguments const.  Update definitions
1363         accordingly.
1364
1365 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
1366
1367         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
1368         alternatives.
1369
1370 2015-04-26  Tom de Vries  <tom@codesourcery.com>
1371
1372         PR tree-optimization/65826
1373         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
1374
1375 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
1376
1377         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
1378         (*madd3<mode>): Ditto.
1379         (*msub4<mode>): Ditto.
1380         (*msub3<mode>): Ditto.
1381         (*nmadd4<mode>): Ditto.
1382         (*nmadd3<mode>): Ditto.
1383         (*nmadd4<mode>_fastmath): Ditto.
1384         (*nmadd3<mode>_fastmath): Ditto.
1385         (*nmsub4<mode>): Ditto.
1386         (*nmsub3<mode>): Ditto.
1387         (*nmsub4<mode>_fastmath): Ditto.
1388         (*nmsub3<mode>_fastmath): Ditto.
1389
1390 2015-04-24  Jason Merrill  <jason@redhat.com>
1391
1392         PR c++/50800
1393         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
1394         down when building TYPE_CANONICAL.
1395         (build_pointer_type_for_mode): Likewise.
1396
1397 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
1398
1399         * genrecog.c (validate_pattern): Check matching constraint refers
1400         to a lower numbered operand.
1401
1402 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1403
1404         PR target/65849
1405         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
1406         save to independent variables use the Save attribute.  This will
1407         allow these options to be modified with the #pragma/attribute
1408         target support.
1409         (-mallow-movmisalign): Likewise.
1410         (-mallow-df-permute): Likewise.
1411         (-msched-groups): Likewise.
1412         (-malways-hint): Likewise.
1413         (-malign-branch-targets): Likewise.
1414         (-mvectorize-builtins): Likewise.
1415         (-msave-toc-indirect): Likewise.
1416
1417         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
1418         can be set via the #pragma/attribute target support.
1419         (rs6000_opt_vars): Likewise.
1420         (rs6000_inner_target_options): If VSX was set, also set
1421         -mno-avoid-indexed-addresses.
1422
1423 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1424
1425         * config/arm/iterators.md (shiftable_ops): Rename to...
1426         (SHIFTABLE_OPS): ... This.  Update use in comments.
1427         (ior_xor): Rename to...
1428         (IOR_XOR): ... This.
1429         (vqh_ops): Rename to...
1430         (VQH_OPS): ... This.
1431         (vqhs_ops): Rename to...
1432         (VQHS_OPS): ... This.
1433         (rshifts): Rename to...
1434         (RSHIFTS): ... This.
1435         (returns): Rename to...
1436         (RETURNS): ... This.
1437         * config/arm/arm.md: Update uses of the above.
1438         * config/arm/neon.md: Likewise.
1439
1440 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1441
1442         * config.host (case ${host}): Add aarch64*-*-linux case.
1443         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
1444         fields to all the cores.
1445         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
1446         Add MCPU_MTUNE_NATIVE_SPECS.
1447         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
1448         field to all extensions.
1449         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
1450         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
1451         Adjust definition of AARCH64_OPT_EXTENSION.
1452         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
1453         (MCPU_MTUNE_NATIVE_SPECS): Define.
1454         * config/aarch64/driver-aarch64.c: New file.
1455         * config/aarch64/x-arch64: New file.
1456         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
1457         -mtune and -march.
1458
1459 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1460             Wei Mi  <wmi@google.com>
1461
1462         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
1463         * config/i386/i386.c (extract_base_offset_in_addr): New function.
1464         (ix86_operands_ok_for_move_multiple): Ditto.
1465         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
1466         (movlpd/movhpd to movupd peephole2): Ditto.
1467
1468 2015-04-24  Marek Polacek  <polacek@redhat.com>
1469
1470         PR c/61534
1471         * input.h (from_macro_expansion_at): Define.
1472
1473         PR c/63357
1474         * doc/invoke.texi: Update description of -Wlogical-op.
1475
1476 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1477
1478         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
1479         ternary operator in fprintf and harmonize spacing.
1480
1481 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1482
1483         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
1484         Mark operand1 commutative.
1485
1486 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1487
1488         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
1489         input operands in memory.
1490         (*vec_concatv2si_sse4_1): Ditto.
1491         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
1492         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
1493         register_operand.
1494         (vec_extract_hi_v32hi): Ditto.
1495         (vec_extract_hi_v64hi): Ditto.
1496         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
1497
1498 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1499             Steven Bosscher <steven@gcc.gnu.org>
1500
1501         PR rtl-optimization/34503
1502         * cprop.c (cprop_reg_p): New.
1503         (hash_scan_set): Use above function to check if register can be
1504         propagated.
1505         (find_avail_set): Return up to two sets, one whose source is a
1506         register and one whose source is a constant.  Sets are returned in an
1507         array passed as parameter rather than as a return value.
1508         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
1509         sets returned by find_avail_set, starting with the one whose source is
1510         a constant. Use cprop_reg_p to check if register can be propagated.
1511         (do_local_cprop): Use cprop_reg_p to check if register can be
1512         propagated.
1513         (implicit_set_cond_p): Likewise.
1514
1515 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1516
1517         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
1518         (sem_function::equals): IGNORED_NODES parameter is now unused;
1519         update call of equals_private.
1520         (sem_function::equals_private): Do not call equals_wpa; skip
1521         gimple body matching if there is no body.
1522         (sem_function::init): Add logic to hash tthunk info.
1523         (sem_function::parse): Also parse thunks.
1524         * ipa-icf.h (equals_private): Update declaration.
1525
1526 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1527
1528         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
1529         asterisk from name so this can be generated directly.
1530         (*altivec_stvx_<mode>_internal): Likewise.
1531         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
1532         that this is never called during or after reload/lra.
1533         (rs6000_frame_related): Remove split_reg
1534         argument and logic that references it.
1535         (emit_frame_save): Remove last parameter from call to
1536         rs6000_frame_related.
1537         (rs6000_emit_prologue): Remove last parameter from eight calls to
1538         rs6000_frame_related.  Force generation of stvx instruction for
1539         Altivec register saves.  Remove split_reg handling, which is no
1540         longer needed.
1541         (rs6000_emit_epilogue):  Force generation of lvx instruction for
1542         Altivec register restores.
1543
1544 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1545
1546         * config/rs6000/rs6000.opt (mcrypto): Change option description to
1547         match category changes in ISA 2.07B.
1548
1549 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1550
1551         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
1552         iterators.
1553         (cmp_op, cmp_type): New code attributes.
1554         (NEON_VCMP, NEON_VACMP): New int iterators.
1555         (cmp_op_unsp): New int attribute.
1556         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
1557         (neon_vceq<mode>): Delete.
1558         (neon_vc<cmp_op><mode>_insn): New pattern.
1559         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
1560         (neon_vcgeu<mode>): Delete.
1561         (neon_vcle<mode>): Likewise.
1562         (neon_vclt<mode>: Likewise.
1563         (neon_vcage<mode>): Likewise.
1564         (neon_vcagt<mode>): Likewise.
1565         (neon_vca<cmp_op><mode>): New define_expand.
1566         (neon_vca<cmp_op><mode>_insn): New pattern.
1567         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
1568
1569 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1570
1571         * tree.h (attribute_value_equal): Declare.
1572         * tree.c (attribute_value_equal): Export.
1573
1574 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1575
1576         * ipa-icf.c (sem_item::compare_attributes): New function.
1577         (sem_item::compare_referenced_symbol_properties): Compare variable
1578         attributes.
1579         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
1580         (sem_function::param_used_p): New function.
1581         (sem_function::equals_wpa): Fix attribute comparsion; match
1582         parameter type codes; do not compare paremter flags when
1583         they are not used; compare edge flags; compare indirect calls.
1584         (sem_item::update_hash_by_addr_refs): Hash reference type.
1585         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
1586         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
1587         reference use type.
1588         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
1589         * ipa-icf.h (compare_attributes, param_used_p): Declare.
1590
1591 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1592
1593         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
1594         cleanup.
1595         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
1596         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
1597         (sem_item::compare_referenced_symbol_properties): New.
1598         (sem_item::hash_referenced_symbol_properties): New.
1599         (sem_item::compare_cgraph_references): Rename to ...
1600         (sem_item::compare_symbol_references): ... this one; use
1601         compare_referenced_symbol_properties.
1602         (sem_function::equals_wpa): Do not compare
1603         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
1604         DECL_IS_OPERATOR_NEW; compare pointer sizes.
1605         (sem_item::update_hash_by_addr_refs): Call
1606         hash_referenced_symbol_properties.
1607         (sem_item::update_hash_by_local_refs): Cleanup.
1608         (sem_function::merge): Do not mix up symbol properties.
1609         (sem_variable::equals_wpa): Use compare_symbol_references.
1610         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
1611         (sem_item::hash_referenced_symbol_properties): New.
1612         (sem_item::compare_symbol_references): New.
1613         (sem_item::compare_cgraph_references): Remove.
1614
1615 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
1616
1617         PR target/26702
1618         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
1619         Emit size of local.
1620
1621 2015-04-23  Nick Clifton  <nickc@redhat.com>
1622
1623         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
1624         ATTRIBUTE_UNUSED to x parameter.
1625         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
1626
1627 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1628
1629         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
1630         TARGET_CRYPTO to TARGET_P8_VECTOR>
1631         (crypto_vpermxor_<mode>): Likewise.
1632         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
1633         (BU_CRYPTO_3A): Likewise.
1634         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
1635         (BU_CRYPTO_OVERLOAD_3A): New #define.
1636         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
1637         (VPMSUMH): Likewise.
1638         (VPMSUMW): Likewise.
1639         (VPMSUMD): Likewise.
1640         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
1641         (VPERMXOR_V4SI): Likewise.
1642         (VPERMXOR_V8HI): Likewise.
1643         (VPERMXOR_V16QI): Likewise.
1644         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
1645         BU_CRYPTO_OVERLOAD_2A.
1646         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
1647         BU_CRYPTO_OVERLOAD_3A.
1648         * config/rs6000/rs6000.opt (mcrypto): Change description of
1649         option.
1650
1651 2015-04-23  Richard Biener  <rguenther@suse.de>
1652
1653         * passes.def: Remove copy propagation passes run directly after CCP.
1654         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
1655         SSA names.
1656         (ccp_visit_phi_node): Rework to handle first executable edge
1657         specially.
1658
1659 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
1660
1661         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1662         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1663         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1664         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
1665         (thumb_legimitimize_reload_address): Remove.
1666         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
1667         Remove.
1668         (thumb_legimitimize_reload_address): Remove.
1669
1670 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1671
1672         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
1673
1674 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1675
1676         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
1677         MAX_LDM_STM_OPS.
1678         (store_multiple): Likewise.
1679
1680 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1681
1682         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
1683         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
1684         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
1685         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
1686         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
1687         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
1688         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
1689         Specify issue_rate value.
1690         (arm_issue_rate): Look up issue rate from tuning structs. Remove
1691         large switch statement.
1692         (arm_marvell_pj4_tune): New struct.
1693         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
1694         struct.
1695
1696 2015-04-23  Richard Biener  <rguenther@suse.de>
1697
1698         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
1699         (vect_find_last_store_in_slp_instance): Rename to ...
1700         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
1701         (vect_analyze_slp_cost_1): Use vector_load for constant defs
1702         and vec_construct for external defs when estimating prologue cost.
1703         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
1704         Compute costs here only when vectorizing loops.
1705         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
1706         have been determined.
1707         (vect_schedule_slp_instance): Simplify vectorized code placement
1708         and prepare for in-BB external defs.
1709         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
1710         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
1711         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
1712         guard.
1713         (vect_model_load_cost): Likewise.
1714         (vectorizable_store): Instead add it here.
1715         (vectorizable_load): Likewise.
1716         (vect_is_simple_use): Dump def type textually.
1717
1718 2015-04-23  Richard Biener  <rguenther@suse.de>
1719
1720         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
1721         * cfgloop.c (verify_loop_structure): Verify the root loop node.
1722         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
1723         instead of get_eh_region_from_lp_number.
1724         * loop-init.c (fix_loop_structure): If we removed a loop, reset
1725         the SCEV cache.
1726
1727 2015-04-23  Anton Blanchard  <anton@samba.org>
1728
1729         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
1730         need for -mprofile-kernel to save LR to stack.
1731
1732 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1733
1734         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
1735         adjustments.
1736         (insn_is_swappable_p): Return 1 for a convert from double to
1737         single precision when all of its uses are splats of BE element
1738         zero.
1739
1740 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1741
1742         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
1743
1744 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1745
1746         PR target/65456
1747         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
1748         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
1749         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
1750         option.
1751         (rs6000_builtin_mask_for_load): Return 0 for targets with
1752         efficient unaligned VSX accesses so that the vectorizer will use
1753         direct unaligned loads.
1754         (rs6000_builtin_support_vector_misalignment): Always return true
1755         for targets with efficient unaligned VSX accesses.
1756         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
1757         stores on targets with efficient unaligned VSX accesses is almost
1758         always the same as the cost of an aligned load or store, so model
1759         it that way.
1760         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
1761         unaligned vectors if we have efficient unaligned VSX accesses.
1762         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
1763         undocumented option.
1764
1765 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1766
1767         Revert:
1768         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1769
1770         * config.gcc (LIBC_MUSL): New tm_defines macro.
1771         * config/linux.h (OPTION_MUSL): Define.
1772         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1773         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1774         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1775
1776         * config/linux.opt (mmusl): New option.
1777         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1778         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1779
1780         * configure: Regenerate.
1781
1782 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1783
1784         * config.gcc (LIBC_MUSL): New tm_defines macro.
1785         * config/linux.h (OPTION_MUSL): Define.
1786         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1787         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1788         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1789
1790         * config/linux.opt (mmusl): New option.
1791         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1792         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1793
1794         * configure: Regenerate.
1795
1796 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
1797
1798         * doc/invoke.texi (-fsanitize-sections): Update description.
1799         * asan.c (set_sanitized_sections): Parse incoming arg.
1800         (section_sanitized_p): Support wildcards.
1801
1802 2015-04-22  Tom de Vries  <tom@codesourcery.com>
1803
1804         PR tree-optimization/65823
1805         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
1806         equality between ap_copy and ap.
1807
1808 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1809
1810         PR target/47098
1811         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
1812
1813 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1814
1815         PR target/47122
1816         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
1817
1818 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1819
1820         PR target/55144
1821         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
1822         remove already contained t-files.
1823
1824 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1825
1826         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
1827         Remove unneeded forward declarations.
1828         (suitable_for_tail_call_opt_p): Commentary typo fix.
1829
1830 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1831
1832         * varasm.c (emit_bss): Remove redundant guard.
1833
1834 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1835
1836         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
1837
1838 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1839
1840         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
1841
1842 2015-04-22  Hale Wang  <hale.wang@arm.com>
1843             Terry Guo  <terry.guo@arm.com>
1844
1845         PR rtl-optimization/64818
1846         * combine.c (can_combine_p): Don't combine user-specified
1847         register if it is in an asm input.
1848
1849 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
1850
1851         PR ipa/65076
1852         * passes.def (early_optimizations): Add pass_dse.
1853
1854 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1855
1856         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
1857         * reorg.c (redundant_insn): Remove ifdef
1858         INSN_REFERENCES_ARE_DELAYED.
1859         * resource.c (mark_referenced_resources): Likewise.
1860
1861 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1862
1863         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
1864         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
1865         * resource.c (mark_set_resources): Likewise.
1866
1867 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1868
1869         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
1870         * cfgcleanup.c (flow_find_cross_jump): Likewise.
1871         (flow_find_head_matching_sequence): Likewise.
1872         (try_head_merge_bb): Likewise.
1873         * combine.c (can_combine_p): Likewise.
1874         (try_combine): Likewise.
1875         (distribute_notes): Likewise.
1876         * df-problems.c (can_move_insns_across): Likewise.
1877         * final.c (final): Likewise.
1878         * gcse.c (insert_insn_end_basic_block): Likewise.
1879         * ira.c (find_moveable_pseudos): Likewise.
1880         * reorg.c (try_merge_delay_insns): Likewise.
1881         (fill_simple_delay_slots): Likewise.
1882         (fill_slots_from_thread): Likewise.
1883         * sched-deps.c (sched_analyze_2): Likewise.
1884
1885 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1886
1887         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
1888         PIC_OFFSET_TABLE_REGNUM.
1889
1890 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1891
1892         * alias.c (init_alias_target): Remove ifdef
1893         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
1894         * df-scan.c (df_insn_refs_collect): Likewise.
1895         (df_get_regular_block_artificial_uses): Likewise.
1896         (df_get_eh_block_artificial_uses): Likewise.
1897         (df_get_entry_block_def_set): Likewise.
1898         (df_get_exit_block_use_set): Likewise.
1899         * emit-rtl.c (gen_rtx_REG): Likewise.
1900         * ira.c (ira_setup_eliminable_regset): Likewise.
1901         * reginfo.c (init_reg_sets_1): Likewise.
1902         * regrename.c (rename_chains): Likewise.
1903         * reload1.c (reload): Likewise.
1904         (eliminate_regs_in_insn): Likewise.
1905         * resource.c (mark_referenced_resources): Likewise.
1906         (init_resource_info): Likewise.
1907
1908 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1909
1910         * defaults.h (MASK_RETURN_ADDR): New definition.
1911         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1912         MASK_RETURN_ADDR.
1913
1914 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1915
1916         * defaults.h (RETURN_ADDR_OFFSET): New definition.
1917         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1918         RETURN_ADDR_OFFSET.
1919         (expand_builtin_frob_return_addr): Likewise.
1920
1921 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1922
1923         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
1924         (try_redirect_by_replacing_jump): Likewise.
1925         (rtl_tidy_fallthru_edge): Likewise.
1926         * combine.c (insn_a_feeds_b): Likewise.
1927         (find_split_point): Likewise.
1928         (simplify_set): Likewise.
1929         * cprop.c (cprop_jump): Likewise.
1930         * cse.c (cse_extended_basic_block): Likewise.
1931         * df-problems.c (can_move_insns_across): Likewise.
1932         * function.c (emit_use_return_register_into_block): Likewise.
1933         * haifa-sched.c (sched_init): Likewise.
1934         * ira.c (find_moveable_pseudos): Likewise.
1935         * loop-invariant.c (find_invariant_insn): Likewise.
1936         * lra-constraints.c (curr_insn_transform): Likewise.
1937         * postreload.c (reload_combine_recognize_const_pattern):
1938         * Likewise.
1939         * reload.c (find_reloads): Likewise.
1940         * reorg.c (delete_scheduled_jump): Likewise.
1941         (steal_delay_list_from_target): Likewise.
1942         (steal_delay_list_from_fallthrough): Likewise.
1943         (redundant_insn): Likewise.
1944         (fill_simple_delay_slots): Likewise.
1945         (fill_slots_from_thread): Likewise.
1946         (delete_computation): Likewise.
1947         * sched-rgn.c (add_branch_dependences): Likewise.
1948
1949 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1950
1951         * genconfig.c (main): Always define HAVE_cc0.
1952         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
1953         HAVE_cc0.
1954         * cfgcleanup.c (flow_find_cross_jump): Likewise.
1955         (flow_find_head_matching_sequence): Likewise.
1956         (try_head_merge_bb): Likewise.
1957         * cfgrtl.c (rtl_merge_blocks): Likewise.
1958         (try_redirect_by_replacing_jump): Likewise.
1959         (rtl_tidy_fallthru_edge): Likewise.
1960         * combine.c (do_SUBST_MODE): Likewise.
1961         (insn_a_feeds_b): Likewise.
1962         (combine_instructions): Likewise.
1963         (can_combine_p): Likewise.
1964         (try_combine): Likewise.
1965         (find_split_point): Likewise.
1966         (subst): Likewise.
1967         (simplify_set): Likewise.
1968         (distribute_notes): Likewise.
1969         * cprop.c (cprop_jump): Likewise.
1970         * cse.c (cse_extended_basic_block): Likewise.
1971         * df-problems.c (can_move_insns_across): Likewise.
1972         * final.c (final): Likewise.
1973         (final_scan_insn): Likewise.
1974         * function.c (emit_use_return_register_into_block): Likewise.
1975         * gcse.c (insert_insn_end_basic_block): Likewise.
1976         * haifa-sched.c (sched_init): Likewise.
1977         * ira.c (find_moveable_pseudos): Likewise.
1978         * loop-invariant.c (find_invariant_insn): Likewise.
1979         * lra-constraints.c (curr_insn_transform): Likewise.
1980         * optabs.c (prepare_cmp_insn): Likewise.
1981         * postreload.c (reload_combine_recognize_const_pattern):
1982         * Likewise.
1983         * reload.c (find_reloads): Likewise.
1984         (find_reloads_address_1): Likewise.
1985         * reorg.c (delete_scheduled_jump): Likewise.
1986         (steal_delay_list_from_target): Likewise.
1987         (steal_delay_list_from_fallthrough): Likewise.
1988         (try_merge_delay_insns): Likewise.
1989         (redundant_insn): Likewise.
1990         (fill_simple_delay_slots): Likewise.
1991         (fill_slots_from_thread): Likewise.
1992         (delete_computation): Likewise.
1993         (relax_delay_slots): Likewise.
1994         * sched-deps.c (sched_analyze_2): Likewise.
1995         * sched-rgn.c (add_branch_dependences): Likewise.
1996
1997 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1998
1999         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
2000         that is trivially ded on non cc0 targets.
2001         (simplify_set): Likewise.
2002         (mark_used_regs_combine): Likewise.
2003         * cse.c (new_basic_block): Likewise.
2004         (fold_rtx): Likewise.
2005         (cse_insn): Likewise.
2006         (cse_extended_basic_block): Likewise.
2007         (set_live_p): Likewise.
2008         * rtlanal.c (canonicalize_condition): Likewise.
2009         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2010
2011 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2012
2013         * conditions.h: Define macros even if HAVE_cc0 is undefined.
2014         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
2015         * final.c: Likewise.
2016         * jump.c: Likewise.
2017         * recog.c: Likewise.
2018         * recog.h: Declare functions even when HAVE_cc0 is undefined.
2019         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
2020
2021 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2022
2023         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
2024         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
2025         * builtins.c (expand_builtin): Remove check if
2026         EH_RETURN_DATA_REGNO is defined.
2027         * df-scan.c (df_bb_refs_collect): Likewise.
2028         (df_get_exit_block_use_set): Likewise.
2029         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
2030         * ira-lives.c (process_bb_node_lives): Likewise.
2031         * lra-lives.c (process_bb_lives): Likewise.
2032
2033 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
2034
2035         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
2036         FIRST_PSEUDO_REG): New.
2037         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
2038         (ARG_POINTER_REGNUM): Define to ARGP_REG.
2039         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
2040         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
2041         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
2042         (FIRST_INT_REG): New.
2043         (LAST_INT_REG): New.
2044         (FIRST_*_REG): Define using *_REG.
2045         (LAST_*_REG): Ditto.
2046         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
2047         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
2048         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
2049
2050 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2051
2052         * expmed.c: (synth_mult): Only assume overlapping
2053         shift with previous steps in alg_sub_t_m2 case.
2054
2055 2015-04-21  Richard Biener  <rguenther@suse.de>
2056
2057         PR tree-optimization/65650
2058         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
2059         transitions involving copies.
2060         (set_lattice_value): Adjust for copy lattice state.
2061         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
2062         if that doesn't dominate the merge point.
2063         (bit_value_unop): Adjust what we treat as varying mask.
2064         (bit_value_binop): Likewise.
2065         (bit_value_assume_aligned): Likewise.
2066         (evaluate_stmt): When we simplified to a SSA name record a copy
2067         instead of dropping to varying.
2068         (visit_assignment): Simplify.
2069
2070         * gimple-match.h (gimple_simplify): Add another callback.
2071         * gimple-fold.c (fold_stmt_1): Adjust caller.
2072         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
2073         for the 2nd callback.
2074         * gimple-match-head.c (gimple_simplify): Add a callback that is
2075         used to valueize the stmt operands and use it that way.
2076
2077 2015-04-21  Richard Biener  <rguenther@suse.de>
2078
2079         PR tree-optimization/65788
2080         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
2081
2082 2015-04-21  Richard Biener  <rguenther@suse.de>
2083
2084         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
2085         vec_construct cost by vec_stmt_cost.
2086
2087 2015-04-21  Richard Biener  <rguenther@suse.de>
2088
2089         * cfghooks.h (create_basic_block): Replace with two overloads
2090         for RTL and GIMPLE.
2091         (split_block): Likewise.
2092         * cfghooks.c (split_block): Rename to ...
2093         (split_block_1): ... this.
2094         (split_block): Add two type-safe overloads for RTL and GIMPLE.
2095         (split_block_after_labels): Call split_block_1.
2096         (create_basic_block): Rename to ...
2097         (create_basic_block_1): ... this.
2098         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
2099         (create_empty_bb): Call create_basic_block_1.
2100         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
2101         split_block_after_labels.
2102         * omp-low.c (expand_parallel_call): Likewise.
2103         (expand_omp_target): Likewise.
2104         (simd_clone_adjust): Likewise.
2105         * tree-chkp.c (chkp_get_entry_block): Likewise.
2106         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
2107         create_basic_block overload.
2108         (cgraph_node::expand_thunk): Likewise.
2109         * tree-cfg.c (make_blocks): Likewise.
2110         (handle_abnormal_edges): Likewise.
2111         * tree-inline.c (copy_bb): Likewise.
2112
2113 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2114
2115         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
2116         New pattern.
2117         (*xor_one_cmplsidi3_ze): Likewise.
2118
2119 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2120
2121         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
2122         use df_remove_problem rather than manually removing problems, leaving
2123         holes in df->problems_in_order[].
2124
2125 2015-04-21  Tom de Vries  <tom@codesourcery.com>
2126
2127         PR tree-optimization/65802
2128         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
2129
2130 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2131
2132         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
2133         Increase to 128.
2134         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
2135         at '.'.  Assert that there's enough space for everything.
2136
2137 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
2138
2139         PR tree-optimization/64950
2140         Revert:
2141         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         PR target/41089
2144         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
2145         as volatile.
2146
2147 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
2148
2149         PR rtl-optimization/64916
2150         * cfgcleanup.c (values_equal_p): New function.
2151         (can_replace_by): Use it.
2152
2153 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
2154
2155         PR c++/65801
2156         * doc/invoke.texi ([-Wnarrowing]): Update.
2157
2158 2015-04-20  Jeff Law  <law@redhat.com>
2159
2160         PR tree-optimization/65658
2161         * tree-ssa-threadupdate.c (redirection_block_p): Remove
2162         redundant test for GIMPLE_ASSIGN in last change.
2163
2164 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
2165
2166         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
2167         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
2168         (legitimize_tls_address): Ditto.
2169         (ix86_expand_move): Ditto.
2170         (ix86_expand_binary_operator): Remove reload_in_progress checks.
2171         (ix86_expand_unary_operator): Ditto.
2172         * config/i386/predicates.md (index_register_operand): Ditto.
2173
2174 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
2175
2176         * reorg.c (try_merge_delay_insns): Improve correctness checking
2177         for targets with multiple delay slots.
2178
2179 2015-04-20  Jeff Law  <law@redhat.com>
2180
2181         PR tree-optimization/65658
2182         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
2183         statements too.
2184
2185 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
2186
2187         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
2188         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
2189         Delete.
2190
2191 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
2192
2193         PR debug/65807
2194         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
2195
2196 2015-04-20  Richard Biener  <rguenther@suse.de>
2197
2198         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
2199         * gimple-fold.c (gimple_build_valueize): New function.
2200         (gimple_build): Always use gimple_build_valueize as valueize hook.
2201
2202 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
2203
2204         PR target/64134
2205         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
2206         and overwrite variable parts if <= 1/2 the elements are variable.
2207
2208 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2209
2210         PR rtl-optimization/65805
2211         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
2212         Don't use difference of offset and previous offset if
2213         update_sp_offset is non-zero.
2214         (eliminate_regs_in_insn): Ditto.
2215         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
2216         lra_eliminate_regs_1 call.
2217         * lra-constraints.c (get_equiv_with_elimination): Ditto.
2218
2219 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
2220
2221         * hash-table.h: Remove version of hash_table that stored value_type *.
2222         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
2223         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
2224         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
2225         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
2226         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
2227         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
2228         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
2229         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
2230         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
2231         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
2232         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
2233         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
2234         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
2235         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
2236         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
2237         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
2238
2239 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2240             Jakub Jelinek  <jakub@redhat.com>
2241
2242         PR target/65787
2243         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
2244         subsequent SH_NONE operand does not overwrite an existing *special
2245         value.
2246         (adjust_extract): Handle case where a vec_extract operation is
2247         wrapped in a PARALLEL.
2248
2249 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2250
2251         PR target/65780
2252         * config/i386/i386.c (ix86_binds_local_p): Define only if
2253         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
2254
2255 2015-04-17  Jeff Law  <law@redhat.com>
2256
2257         PR tree-optimization/47679
2258         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
2259         * tree-ssa-scopedtables.c: New file.
2260         * tree-ssa-scopedtables.h: New file.
2261         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
2262         (const_and_copies): Change name/type.
2263         (record_const_or_copy): Move into tree-ssa-scopedtables.c
2264         (record_const_or_copy_1): Similarly.
2265         (restore_vars_to_original_value): Similarly.
2266         (pass_dominator::execute): Create and destroy const_and_copies table.
2267         (thread_across_edge): Update passing of const_and_copies.
2268         (record_temporary_equivalence): Use method calls rather than
2269         manipulating const_and_copies directly.
2270         (record_equality, cprop_into_successor_phis): Similarly.
2271         (dom_opt_dom_walker::before_dom_children): Similarly.
2272         (dom_opt_dom_walker::after_dom_children): Similarly.
2273         (eliminate_redundant_computations): Similarly.
2274         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
2275         (record_temporary_equivalence): Likewise.
2276         (invalidate_equivalences): Likewise.
2277         (record_temporary_equivalences_from_phis): Update due to type
2278         change of const_and_copies.  Use method calls rather than
2279         manipulating the stack directly.
2280         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
2281         (thread_through_normal_block, thread_across_edge): Likewise.
2282         (thread_across_edge): Likewise.
2283         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
2284         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
2285         of equiv_stack.
2286         (identify_jump_threads): Update due to type change of equiv_stack.
2287         (finalize_jump_threads): Delete the equiv_stack when complete.
2288
2289 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
2290
2291         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
2292         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
2293         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
2294
2295 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
2296
2297         PR target/65535
2298         * config.gcc: Exit with a comment when we do not have a major version
2299         number for the FreeBSD target.
2300
2301 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2302
2303         PR target/65689
2304         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
2305         maybe_allows_mem bitfields.
2306         (maybe_allows_none_start, maybe_allows_none_end,
2307         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
2308         maybe_allows_mem_end): New variables.
2309         (compute_maybe_allows): New function.
2310         (add_constraint): Use it to initialize maybe_allows_reg and
2311         maybe_allows_mem fields.
2312         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
2313         is_address constraints such that those that allow neither mem nor
2314         reg come first, then those that only allow reg but not mem, then
2315         those that only allow mem but not reg, then the rest.
2316         (write_allows_reg_mem_function): New function.
2317         (write_tm_preds_h): Call it.
2318         * stmt.c (parse_output_constraint, parse_input_constraint): Use
2319         the generated insn_extra_constraint_allows_reg_mem function
2320         instead of always setting *allows_reg = true; *allows_mem = true;
2321         for unknown extra constraints.
2322
2323 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2324
2325         PR target/65780
2326         * output.h (default_binds_local_p_3): New.
2327         * varasm.c (default_binds_local_p_3): Make it public.  Take an
2328         argument to indicate if common symbol may be local.  If common
2329         symbol may be local, treat non-external variable as defined
2330         locally.
2331         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
2332         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
2333         * config/i386/i386.c (ix86_binds_local_p): New.
2334         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
2335         ix86_binds_local_p.
2336
2337 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2338
2339         PR debug/65771
2340         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
2341         trying mem_loc_descriptor on XEXP (rtl, 0).
2342
2343 2015-04-17  Martin Liska  <mliska@suse.cz>
2344
2345         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
2346         Release symbol_compare_collection.
2347         * ipa-reference.c: Add TODO that a vector should be released.
2348
2349 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
2350
2351         PR target/65296
2352         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
2353         to new AVR-LibC file layout (bug #44574).
2354         (*avrlibc_devicelib): Same.
2355         * config/avr/avr-mcus.def: Adjust comments.
2356         * config/avr/avr.opt (nodevicelib): Adjust help.
2357
2358 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
2359
2360         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
2361
2362 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
2363
2364         PR c++/64527
2365         * gimplify.c (gimplify_init_constructor): Always emit a
2366         side-effecting constructor.
2367
2368 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2369
2370         PR tree-optimization/64950
2371         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
2372         in cfun->curr_properties.
2373         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
2374         if we generate an IFN_VA_ARG.
2375         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
2376         function if PROP_gimple_lva is not set in src function.
2377
2378 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2379             Michael Matz  <matz@suse.de>
2380
2381         PR tree-optimization/64950
2382         * gimple-iterator.c (update_modified_stmts): Remove static.
2383         * gimple-iterator.h (update_modified_stmts): Declare.
2384         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
2385         (gimplify_va_arg_internal): New function.
2386         (gimplify_va_arg_expr): Use IFN_VA_ARG.
2387         * gimplify.h (gimplify_va_arg_internal): Declare.
2388         * internal-fn.c (expand_VA_ARG): New unreachable function.
2389         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
2390         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
2391         (expand_ifn_va_arg): New function.
2392         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
2393         (pass_stdarg::execute): Call expand_ifn_va_arg.
2394         (pass_data_lower_vaarg): New pass_data.
2395         (pass_lower_vaarg): New gimple_opt_pass.
2396         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
2397         (make_pass_lower_vaarg): New function.
2398         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
2399         properties_required field.
2400         * passes.def (all_passes): Add pass_lower_vaarg.
2401         * tree-pass.h (PROP_gimple_lva): Add define.
2402         (make_pass_lower_vaarg): Declare.
2403
2404 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2405
2406         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
2407         * calls.c (call_expr_flags): Same.
2408
2409 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2410
2411         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
2412         (pass_stdarg::execute): ... here.
2413
2414 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2415             Michael Matz  <matz@suse.de>
2416
2417         * tree-cfg.c (make_blocks_1): Factor out of ...
2418         (make_blocks): ... here.
2419         (make_edges_bb): Factor out of ...
2420         (make_edges): ... here.
2421         (gimple_find_sub_bbs): New function.
2422         * tree-cfg.h (gimple_find_sub_bbs): Declare.
2423
2424 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2425
2426         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
2427
2428 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
2429
2430         * asan.c (set_sanitized_sections): New function.
2431         (section_sanitized_p): Ditto.
2432         (asan_protect_global): Optionally sanitize user-defined
2433         sections.
2434         * asan.h (set_sanitized_sections): Declare new function.
2435         * common.opt (fsanitize-sections): New option.
2436         * doc/invoke.texi (-fsanitize-sections): Document new option.
2437         * opts-global.c (handle_common_deferred_options): Handle new
2438         option.
2439
2440 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2441
2442         PR debug/65771
2443         * dwarf2out.c (loc_list_from_tree): Return NULL
2444         for DEBUG_EXPR_DECL.
2445
2446 2015-04-17  Christian Bruel  <christian.bruel@st.com>
2447
2448         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
2449         same attributes.
2450
2451 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
2452
2453         * ira-color.c (setup_left_conflict_sizes_p): Do not process
2454         node itself when computing left conflict subnode size.
2455
2456 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
2457
2458         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
2459         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
2460         *fop_<mode>_1_sse using enabled attribute.  Use
2461         register_mixssei387nonimm_operand operand 1 predicate. Change
2462         alternative 3 constraints from "x" to "v".
2463
2464 2015-04-16  Richard Biener  <rguenther@suse.de>
2465
2466         PR tree-optimization/65774
2467         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
2468         bit-value tracking on.
2469
2470 2015-04-16  Richard Biener  <rguenther@suse.de>
2471
2472         PR tree-optimization/64277
2473         * tree-vrp.c (check_array_ref): Fix anti-range handling,
2474         simplify upper bound handling.
2475         (search_for_addr_array): Simplify.
2476         (check_array_bounds): Handle ADDR_EXPRs here.
2477         (check_all_array_refs): Simplify.
2478
2479 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
2480
2481         * config/i386/i386.c (print_reg): Rewrite function.
2482
2483 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2484
2485         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
2486         Invert the condition.
2487
2488 2015-04-16  Renlin Li  <renlin.li@arm.com>
2489
2490         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
2491         simplifications for UNSIGNED_FLOAT.
2492
2493 2015-04-16  Nick Clifton  <nickc@redhat.com>
2494
2495         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
2496         MUL_UNINIT.
2497         (enum rl78_cpu_type): New.
2498         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
2499         (umulhi3_shift_virt): Remove m constraint from operand 1.
2500         (umulqihi3_virt): Likewise.
2501         * config/rl78/rl78.c (rl78_option_override): Add code to process
2502         -mcpu and -mmul options.
2503         (rl78_alloc_physical_registers): Add code to handle divhi and
2504         divsi valloc attributes.
2505         (set_origin): Likewise.
2506         * config/rl78/rl78.h (RL78_MUL_G14): Define.
2507         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
2508         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
2509         __RL78_Gxx__.
2510         (ASM_SPEC): Pass -mcpu on to assembler.
2511         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
2512         (mulqi3_rl78): Likewise.
2513         (mulhi3_g13): Likewise.
2514         (mulhi3): Generate the G13 or G14 versions of the insn directly.
2515         (mulsi3): Likewise.
2516         (mulhi3_g14): Add clobbers of AX and BC.
2517         (mulsi3_g14): Likewise.
2518         (mulsi3_g13): Likewise.
2519         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
2520         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
2521         * config/rl78/rl78.opt (mmul): Initialise value to
2522         RL78_MUL_UNINIT.
2523         (mcpu): New option.
2524         (m13, m14, mrl78): New option aliases.
2525         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
2526         (MULTILIB_DIRNAMES): Add g13 and g14.
2527         * doc/invoke.texi: Document -mcpu and -mmul options.
2528
2529 2015-04-16  Richard Biener  <rguenther@suse.de>
2530
2531         * tree-ssa-ccp.c (likely_value): See if we have operands that
2532         are marked as never simulate again and return CONSTANT in this
2533         case.
2534         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
2535         not have any operands that will be simulated again as
2536         not being simulated again.
2537
2538 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
2539
2540         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
2541         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
2542         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
2543         attribute.
2544         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
2545         enabled attribute.
2546         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
2547         *float<SWI48:mode><MODEF:mode>2_sse.
2548         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
2549         enabled attribute.
2550         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
2551         enabled attribute.
2552
2553 2015-04-15  Tom de Vries  <tom@codesourcery.com>
2554
2555         PR other/65487
2556         * function.c (push_dummy_function): New function.
2557         (init_dummy_function_start): Use push_dummy_function.
2558         (pop_dummy_function): New function.  Factored out of ...
2559         (expand_dummy_function_end): ... here.
2560         * function.h (push_dummy_function, pop_dummy_function): Declare.
2561         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
2562         pop_dummy_function.
2563         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
2564
2565 2015-04-15  Jeff Law  <law@redhat.com>
2566
2567         PR tree-optimization/47679
2568         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
2569         need for forward declaration in upcoming changes.
2570         (record_conditions, record_edge_info): Likewise.
2571
2572         PR rtl-optimization/42522
2573         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
2574         SIGN_EXTRACT as a whole object rather than simplifying
2575         its operand.
2576
2577 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
2578
2579         PR ipa/65765
2580         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
2581         and GIMPLE_PREDICT use break instead of return true. For
2582         GIMPLE_EH_DISPATCH, compare dispatch region.
2583
2584 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
2585
2586         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
2587         details about the implementation.  Make clear preference for
2588         __atomic builtins.  Reduce possibility of future change.
2589
2590 2015-04-15  Nick Clifton  <nickc@redhat.com>
2591
2592         * config/rx/rx.opt (mallow-string-insns): New option.
2593         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
2594         builtin if string instructions are denied.
2595         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
2596         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
2597         appropriate.
2598         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
2599         * config/rx/rx.md (movstr): Enable pattern only if string
2600         instructions are allowed.
2601         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
2602         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
2603         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
2604         (MULTILIB_DIRNAMES): Add no-strings.
2605         * doc/invoke.texi: Document -mno-allow-string-insns.
2606
2607 2015-04-15  Alan Modra  <amodra@gmail.com>
2608
2609         PR target/65408
2610         PR target/58744
2611         PR middle-end/36043
2612         * calls.c (load_register_parameters): Don't load past end of
2613         mem unless suitably aligned.
2614
2615 2015-04-15  Nick Clifton  <nickc@redhat.com>
2616
2617         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
2618         decrement instruction as being frame related.
2619         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
2620         based addresses.
2621         If zero extending a function address enclose the operation in
2622         %code(...).
2623         (rl78_preferred_reload_class): New function.
2624         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2625         * config/rl78/rl78.md: Remove useless constraints in expanders.
2626         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
2627         (mulhi3_rl78): Likewise.
2628         (mulhi3_g13): Likewise.
2629         (mulsi3_rl78): Likewise.
2630         (es_addr): Move to before the multiply patterns.
2631
2632 2015-04-15  Alan Modra  <amodra@gmail.com>
2633
2634         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
2635         and sequence_stack.  Add seq.
2636         (seq_stack): Delete.
2637         * function.c (prepare_function_start): Don't access x_last_insn.
2638         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
2639         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
2640         * emit_rtl.c (start_sequence, push_topmost_sequence,
2641         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
2642         sequence accessors.
2643         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
2644         remove_insn): Likewise.  Simplify.
2645         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
2646         and pop_topmost_sequence.
2647         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
2648         debug insns.
2649         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
2650
2651 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
2652
2653         PR target/65729
2654         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
2655         the assertiion.
2656
2657 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2658
2659         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
2660         (LEGACY_INT_REGNO_P): Ditto.
2661         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
2662         (ANY_MASK_REG_P): Remove.
2663         (BND_REG_P): Rename from ANY_BND_REG_P.
2664         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
2665         legacy integer registers.  Do not handle MMX_REG_P in a special way.
2666         Merge 64byte and 32byte SSE handling.
2667
2668 2015-04-14  Nick Clifton  <nickc@redhat.com>
2669
2670         * expr.c (expand_assignment): Force an address offset computation
2671         into a register before changing its mode.
2672         (expand_expr_real_1): Likewise.
2673
2674 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
2675
2676         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
2677         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
2678         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
2679         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
2680         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
2681         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
2682         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
2683         and __aarch64_vget_lane_any.
2684
2685 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
2686
2687         PR rtl-optimization/65761
2688         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
2689         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
2690
2691 2015-04-14  Richard Biener  <rguenther@suse.de>
2692
2693         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
2694         (graphite_can_represent_scev): Use POINTER_TYPE_P.
2695
2696 2015-04-14  Richard Biener  <rguenther@suse.de>
2697
2698         PR tree-optimization/65758
2699         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
2700         against -1.
2701         (ccp_lattice_meet): Likewise.
2702         (bit_value_unop): Likewise.
2703         (bit_value_binop): Likewise.
2704         (bit_value_assume_aligned): Likewise.
2705
2706 2015-04-14  Christian Bruel  <christian.bruel@st.com>
2707
2708         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
2709         function.
2710
2711 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
2712
2713         PR tree-optimization/63387
2714         * match.pd ((x unord x) | (y unord y) -> (x unord y),
2715         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
2716
2717 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2718
2719         * config/i386/predicates.md (any_QIreg_operand): Rename from
2720         q_regs_operand.  Do not process subregs.
2721         (QIreg_operand): Use QI_REGNO_P predicate.
2722         (ext_QIreg_operand): Ditto.
2723         (ext_register_operand): Ditto.
2724         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
2725         (AND splitters): Ditto.
2726         (AND with -65536 splitter): Add SWI48 mode for operand 0.
2727         (AND with -256 splitter): Use any_QIreg_operand predicate and
2728         SWI248 mode for operand 0.
2729         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
2730         mode for operand 0.
2731         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
2732
2733 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
2734
2735         * doc/plugins.texi: Rewrite first introductory paragraph.
2736
2737 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2738
2739         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
2740         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
2741
2742 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2743
2744         * ipa-profie.c (ipa_profile): Check number of parameters
2745         and possible polymorphic call targets before
2746         devirtualizing.
2747
2748 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
2749
2750         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
2751         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
2752
2753 2015-04-13  Richard Biener  <rguenther@suse.de>
2754
2755         PR tree-optimization/65204
2756         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
2757         takens for bit-CCP.
2758
2759 2015-04-13  Richard Biener  <rguenther@suse.de>
2760
2761         PR target/65660
2762         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
2763         and cond_not_taken_branch_cost to 4 and 2.
2764         (bdver2_cost): Likewise.
2765         (bdver3_cost): Likewise.
2766         (bdver4_cost): Likewise.
2767
2768 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2769
2770         * hash-table.h (hash_table constructor): Add mem stats.
2771         (alloc_entries): Likewise.
2772
2773 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2774
2775         * ipa-cp.c (ipcp_driver): Relase prev_edge.
2776         * passes.c (execute_one_pass): Only add transform if pass has one.
2777
2778 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
2779
2780         * config/i386/i386.c (ix86_option_override_internal): Don't set
2781         -fprefetch-loop-arrays if optimizing for size.
2782
2783 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2784             Gerald Pfeifer  <gerald@pfeifer.com>
2785
2786         * doc/contrib.texi (Contributors): Add Martin Jambor and
2787         Michael Matz.
2788
2789 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
2790
2791         * BASE-VER: Set to 6.0.0.
2792
2793         PR tree-optimization/65747
2794         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
2795         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
2796
2797 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2798
2799         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
2800         sentence.  Improve grammar.
2801
2802 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2803
2804         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
2805
2806 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2807
2808         PR ipa/65743
2809         * ipa-inline-transform.c (speculation_removed): Remove static var.
2810         (check_speculations): New function.
2811         (clone_inlined_nodes): Do not check spculations.
2812         (inline_call): Call check_speculations.
2813         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
2814         consider non-invariants.
2815
2816 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2817             Martin Liska  <mliska@suse.cz>
2818
2819         PR ipa/65722
2820         * ipa-icf.c (sem_item::compare_cgraph_references): function and
2821         variable can not match.
2822         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
2823         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
2824
2825 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
2826
2827         PR tree-optimization/65735
2828         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
2829         Remove visited_phis argument, add visited_bbs, avoid recursing into the
2830         same bb rather than just into the same phi node.
2831         (thread_through_normal_block): Adjust caller.
2832
2833 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2834
2835         * doc/contrib.texi (Contributors): Add Ira Rosen.
2836
2837 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
2838
2839         * gcov.c (find_source): Fix miswording in error message.
2840         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
2841         (ix86_expand_sse_comi_round): Fix typo in error message.
2842
2843 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2844
2845         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
2846
2847 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
2848
2849         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
2850
2851 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2852
2853         PR target/65710
2854         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
2855         Print bad_spills_num and insn_pseudos_num.
2856
2857 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2858
2859         PR target/65694
2860         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
2861         when creating +1 values for SImode.
2862
2863 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2864
2865         PR target/65729
2866         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
2867         assert.
2868
2869 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
2870             Iain Sandoe  <iain@codesourcery.com>
2871
2872         PR target/65351
2873         * configure: Regenerate.
2874
2875 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2876
2877         PR target/65671
2878         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
2879
2880 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
2881
2882         * doc/contrib.texi (Contributors): Add John Marino.
2883
2884 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2885
2886         PR tree-optimization/65709
2887         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
2888         TREE_TYPE (TREE_TYPE (t)).
2889
2890 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
2891
2892         PR target/65710
2893         * lra-int.h (lra_bad_spill_regno_start): New.
2894         * lra.c (lra_bad_spill_regno_start): New.
2895         (lra): Set up lra_bad_spill_regno_start.  Set up
2896         lra_constraint_new_regno_start unconditionally.
2897         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
2898         spill preferences.
2899
2900 2015-04-09  Marek Polacek  <polacek@redhat.com>
2901             Jakub Jelinek  <jakub@redhat.com>
2902
2903         PR middle-end/65554
2904         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
2905         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
2906         of STRIP_NOPS.
2907
2908 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
2909
2910         PR rtl-optimization/65693
2911         * combine.c (is_parallel_of_n_reg_sets): Move outside of
2912         #ifndef HAVE_cc0.
2913
2914 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
2915
2916         PR target/65296
2917         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
2918         device specs file if "device-specs%s" didn't resolve to a path.
2919
2920 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2921
2922         PR target/65676
2923         * config/i386/i386.c (fixup_modeless_constant): New.
2924         (ix86_expand_args_builtin): Fixup modeless constant operand.
2925         (ix86_expand_round_builtin): Ditto.
2926         (ix86_expand_special_args_builtin): Ditto.
2927         (ix86_expand_builtin): Ditto.
2928
2929 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2930
2931         PR target/65693
2932         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
2933         any pow2 integer in between 2 and 0x80000000U inclusive.
2934
2935 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
2936
2937         PR rtl-optimization/65693
2938         * combine.c (is_parallel_of_n_reg_sets): Change first argument
2939         from an rtx_insn * to an rtx.
2940         (try_combine): Adjust both callers.  Use it once more.
2941
2942 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2943
2944         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
2945         (chkp_make_static_const_bounds): Search existing
2946         symbol by assembler name.  Use make_decl_one_only.
2947         (chkp_get_zero_bounds_var): Remove node search which
2948         is now performed in chkp_make_static_const_bounds.
2949         (chkp_get_none_bounds_var): Likewise.
2950
2951 2015-04-08  Michael Witten  <mfwitten@gmail.com>
2952
2953         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
2954         to an example.
2955
2956 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2957
2958         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
2959
2960 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
2961
2962         * doc/extend.texi (__sync Builtins): Fix grammar.
2963
2964 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2965
2966         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
2967
2968 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2969
2970         * varasm.c (emit_local): Move definition of align.
2971
2972 2015-04-08  Julian Brown  <julian@codesourcery.com>
2973
2974         * config/nvptx/mkoffload.c (process): Support variable mapping.
2975
2976 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
2977
2978         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
2979         alpha_links **.
2980         (alpha_write_one_linkage): Correct typo.
2981
2982 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2983
2984         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
2985
2986 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
2987
2988         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
2989
2990 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2991
2992         * tree-chkp.h (chkp_insert_retbnd_call): New.
2993         * tree-chkp.c (chkp_insert_retbnd_call): New.
2994         * ipa-split.c (insert_bndret_call_after): Remove.
2995         (split_function): Use chkp_insert_retbnd_call.
2996         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
2997         bounds for instrumented functions.
2998
2999 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
3000
3001         PR ipa/65540
3002         * calls.c (initialize_argument_information): When producing tail
3003         call also turn SSA_NAMES passed by references to original PARM_DECLs
3004
3005 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
3006
3007         PR target/65648
3008         * lra-remat.c (do_remat): Process input and non-input insn
3009         registers separately.
3010
3011 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
3012
3013         PR debug/65678
3014         * valtrack.c (debug_lowpart_subreg): New function.
3015         (dead_debug_insert_temp): Use it.
3016
3017         PR middle-end/65680
3018         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
3019         into signed HOST_WIDE_INT the same as negative bit_offset.
3020
3021 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
3022
3023         * ipa-comdats.c (ipa_comdats): Visit all thunks
3024         to set proper comdat group.
3025
3026 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3027
3028         PR target/65489
3029         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
3030         on constants for NEON VSTRUCT modes.
3031
3032 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
3033             Iain Sandoe  <iain@codesourcery.com>
3034
3035         PR target/65351
3036         * configure: Regenerate.
3037
3038 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3039
3040         PR target/65614
3041         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
3042         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
3043         that LFD is used to load double constants instead of LFS.  Add
3044         defaults for all costs structures.  Add comments for missing
3045         initialization fields.
3046         (size32_cost): Likewise.
3047         (size64_cost): Likewise.
3048         (rs64a_cost): Likewise.
3049         (mpccore_cost): Likewise.
3050         (ppc403_cost): Likewise.
3051         (ppc405_cost): Likewise.
3052         (ppc440_cost): Likewise.
3053         (ppc476_cost): Likewise.
3054         (ppc601_cost): Likewise.
3055         (ppc603_cost): Likewise.
3056         (ppc604_cost): Likewise.
3057         (ppc604e_cost): Likewise.
3058         (ppc620_cost): Likewise.
3059         (ppc630_cost): Likewise.
3060         (ppccell_cost): Likewise.
3061         (ppc750_cost): Likewise.
3062         (ppc7450_cost): Likewise.
3063         (ppc8540_cost): Likewise.
3064         (ppce300c2c3_cost): Likewise.
3065         (ppce500mc_cost): Likewise.
3066         (ppce500mc64_cost): Likewise.
3067         (ppce5500_cost): Likewise.
3068         (ppce6500_cost): Likewise.
3069         (titan_cost): Likewise.
3070         (power4_cost): Likewise.
3071         (power6_cost): Likewise.
3072         (power7_cost): Likewise.
3073         (power8_cost): Likewise.
3074         (ppca2_cost): Likewise.
3075         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
3076
3077         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
3078         instead of XXLOR to copy SFmode to clear out dirty bits created
3079         when SFmode denormals are generated.
3080         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
3081         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
3082
3083 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
3084
3085         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
3086         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
3087         * config/aarch64/aarch64-tune.md: Regenerate.
3088
3089 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
3090
3091         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
3092         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
3093         * config/arm/arm-cores.def (exynos-m1): New core.
3094         * config/arm/arm-tune.md: Regenerate.
3095         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
3096         * config/arm/bpabi.h: Likewise.
3097
3098 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
3099
3100         * ipa-cp (set_single_call_flag): Remove too
3101         restrictive assert.
3102
3103 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
3104
3105         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
3106         GOMP_offload_unregister from the destructor.
3107
3108 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
3109
3110         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
3111         flags for instrumentation thunk.
3112         (chkp_produce_thunks): Likewise.
3113
3114 2015-04-05  Martin Liska  <mliska@suse.cz>
3115
3116         PR ipa/65665
3117         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
3118         has computed data structure.
3119         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
3120
3121 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
3122
3123         * invoke.texi (inline-unit-growth): Increase growth to 20%
3124         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
3125
3126 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
3127
3128         PR target/65647
3129         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
3130         value checking.
3131         (lra_rematerialization_iter): New.
3132         * lra.c (lra): Initialize lra_rematerialization_iter.
3133         Stop updating lra_constraint_new_regno_start after switching of
3134         inheritance and rematerialization.
3135         * lra-remat.c (lra_rematerialization_iter): New.
3136         (lra_remat): Add printing pass iteration.  Do rematerialization
3137         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
3138
3139 2015-04-04  Richard Biener  <rguenther@suse.de>
3140
3141         PR tree-optimization/64909
3142         PR tree-optimization/65660
3143         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
3144         to take a cost vector for scalar iteration cost.
3145         (vect_get_single_scalar_iteration_cost): Likewise.
3146         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
3147         Compute the scalar iteration cost into a cost vector.
3148         (vect_get_known_peeling_cost): Use the scalar cost vector to
3149         account for the cost of the peeled iterations.
3150         (vect_estimate_min_profitable_iters): Likewise.
3151         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
3152         Likewise.
3153
3154 2015-04-04  Alan Modra  <amodra@gmail.com>
3155
3156         PR target/65576
3157         PR target/65240
3158         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
3159         0.0 constant unless TARGET_VSX.
3160         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
3161         alternative.
3162
3163 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3164
3165         PR ipa/65654
3166         * ipa-inline-transform.c (inline_call): Skip sanity check to work
3167         around the ICE
3168
3169 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3170
3171         PR ipa/65655
3172         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
3173         speculative indirect edges to avoid ordering issue.
3174
3175 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3176
3177         PR ipa/65076
3178         * ipa-inline.c (edge_badness): Add combined size to the denominator.
3179
3180 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
3181
3182         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
3183         TYPE_ARTIFICIAL on the .omp_data* types.
3184
3185 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3186
3187         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
3188         instrumentation thunks.
3189
3190 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3191
3192         * config/i386/i386.c (ix86_expand_call): Avoid nested
3193         PARALLEL in returned call value.
3194
3195 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3196
3197         * lto-cgraph.c (input_cgraph_1): Always link instrumented
3198         assembler name with original one.
3199
3200 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3201
3202         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
3203
3204 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3205
3206         Revert parts of r216820.
3207         * config/i386/i386.md (movqi_internal): Correct type calculation
3208         for alternatives 3 and 5.
3209
3210 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR preprocessor/61977
3213         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
3214         predefine __vector/__bool/__pixel macros nor context sensitive
3215         macros for CLK_ASM.
3216         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
3217
3218 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
3219
3220         * config/pa/pa.c (pa_output_move_double): Directly handle register
3221         indexed memory operand.  Simplify handling of scaled register indexed
3222         memory operands.
3223
3224 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3225
3226         PR driver/65444
3227         * config/i386/linux-common.h (MPX_SPEC): New.
3228         (CHKP_SPEC): Add MPX_SPEC.
3229         * doc/invoke.texi (-fcheck-pointer-boudns): Document
3230         possible issues with '-z bndplt' support in linker.
3231
3232 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3233
3234         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
3235         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
3236         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
3237         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
3238         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
3239
3240 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
3241
3242         * config/i386/sync.md (UNSPEC_MOVA): Remove.
3243         (atomic_load<mode>): Change operand 0 predicate to
3244         nonimmediate_operand and fix up the destination when needed.
3245         Use UNSPEC_LDA.
3246         (atomic_loaddi_fpu): Use UNSPEC_LDA.
3247         (atomic_store<mode>): Change operand 1 predicate to
3248         nonimmendate_operand and move the source to register when needed.
3249         Use UNSPEC_STA.
3250         (atomic_store<mode>_1): Use UNSPEC_STA.
3251         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
3252         Fix moves from memory operand.  Use UNSPEC_STA.
3253
3254 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3255
3256         * expmed.c (strict_volatile_bitfield_p): Check that the access will
3257         not cross a MODESIZE boundary.
3258         (store_bit_field, extract_bit_field): Added assertions in the
3259         strict volatile bitfields code path.
3260
3261 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
3262
3263         PR target/65624
3264         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
3265         Increase args array size by one to avoid buffer overflow.
3266
3267 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
3268
3269         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
3270         split_part.
3271         * ipa-inline.c (edge_badness): Add wrapper penalty.
3272         (sum_callers): Move up.
3273         (inline_small_functions): Set single_caller.
3274         * ipa-inline.h (inline_summary): Add single_caller.
3275         * ipa-split.c (split_function): Set split_part.
3276         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
3277         * cgraph.h (cgraph_node): Add split_part.
3278
3279 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
3280
3281         PR target/58945
3282         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
3283         Do not split operands 0 and operands 2 to halfmode.
3284         (atomic_compare_and_swap<mode>): Update for
3285         atomic_compare_and_swap<dwi>_doubleword changes.
3286
3287 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
3288
3289         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
3290         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
3291         no caching is done.
3292
3293 2015-03-31  Martin Liska  <mliska@suse.cz>
3294
3295         PR ipa/65557
3296         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
3297         has already filled up function summary.
3298         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
3299
3300 2015-03-31  Richard Biener  <rguenther@suse.de>
3301
3302         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
3303         of types.
3304
3305 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3306
3307         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
3308         nested functions.
3309         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
3310         (s390_asm_output_function_label): Adapt to new signature of
3311         s390_function_num_hotpatch_hw
3312         Optimise the code generating assembler output.
3313         Add comments to assembler file.
3314
3315 2015-03-31  Richard Biener  <rguenther@suse.de>
3316
3317         PR middle-end/65626
3318         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
3319         of the noreturn call so it is last and cleanup_control_flow_bb
3320         can do the CFG part.
3321
3322 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
3323
3324         PR target/65531
3325         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
3326         same_comdat_group for external symbols.
3327         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
3328         infinite same_comdat_group traversal loop.
3329
3330 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
3331
3332         PR plugins/61176
3333         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
3334         automatically to $headers.
3335
3336 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
3337
3338         PR ipa/65610
3339         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
3340         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
3341         function.
3342         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
3343         Use it.
3344         * ipa-prop.c (param_type_may_change_p): Likewise.
3345         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
3346         (remove_unused_scope_block_p): Add in_ctor_dtor_block
3347         argument.  Before inlining, preserve
3348         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
3349         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
3350         recursive calls.
3351         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
3352
3353 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3354
3355         PR ipa/65076
3356         * ipa-inline.c (edge_badness): Base denominator on callee's
3357         grwoth squared.
3358
3359 2015-03-27  Martin Jambor  <mjambor@suse.cz>
3360
3361         PR ipa/65478
3362         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
3363         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
3364         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
3365         node_calling_single_call.
3366         * ipa-cp.c (count_callers): New function.
3367         (set_single_call_flag): Likewise.
3368         (initialize_node_lattices): Count callers and set single_flag_call if
3369         necessary.
3370         (incorporate_penalties): New function.
3371         (good_cloning_opportunity_p): Use it, dump new flags.
3372         (propagate_constants_topo): Set node_within_scc flag if appropriate.
3373         * doc/invoke.texi (ipa-cp-recursion-penalty,
3374         ipa-cp-single-call-pentalty): Document.
3375
3376 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3377
3378         PR ipa/65588
3379         * symtab.c (symtab_node::get_partitioning_class): Register vars
3380         are duplicated.
3381         * varpool.c (symbol_table::output_variables) Do not assemble unefined
3382         decls for non-symbols.
3383
3384 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3385
3386         PR target/65248
3387         * output.h (default_binds_local_p_2): New.
3388         * varasm.c (default_binds_local_p_2): Renamed to ...
3389         (default_binds_local_p_3): This.  Don't return true on protected
3390         data symbol if protected data may be external.
3391         (default_binds_local_p): Use default_binds_local_p_3.
3392         (default_binds_local_p_1): Likewise.
3393         (default_binds_local_p_2): New.
3394         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
3395         default_binds_local_p_2 if TARGET_MACHO is undefined.
3396
3397 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR target/65593
3400         * config/i386/i386.c (legitimize_pic_address): If base
3401         is SYMBOL_REF or LABEL_REF using %rip addressing, force
3402         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
3403
3404 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3405
3406         PR target/65531
3407         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
3408         comdat groups.
3409
3410 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3411
3412         PR ipa/65600
3413         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
3414         of optimized out indirect call.
3415         (redirect_to_unreachable): Always build symbol table node for
3416         BUILT_IN_UNREACHABLE
3417
3418 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3419
3420         PR target/65407
3421         * ira-costs.c (record_reg_classes): Process all constraint string
3422         containing 0-9.
3423
3424 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
3425
3426         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
3427         memory_operand.
3428
3429         PR target/65052
3430         * config/c6x/constraints.md (S3): New constraint.
3431         * config/c6x/c6x.md (real_jump): Use it.
3432
3433 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3434
3435         PR middle-end/65595
3436         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
3437         do redirection if the call is not optimized out.
3438
3439 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3440
3441         PR target/65495
3442         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
3443         (fchkp-check-incomplete-type): Add LTO.
3444         (fchkp-zero-input-bounds-for-main): Likewise.
3445         (fchkp-first-field-has-own-bounds): Likewise.
3446         (fchkp-narrow-bounds): Likewise.
3447         (fchkp-narrow-to-innermost-array): Likewise.
3448         (fchkp-use-static-bounds): Likewise.
3449         (fchkp-use-static-const-bounds): Likewise.
3450         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
3451
3452 2015-03-27  Marek Polacek  <polacek@redhat.com>
3453
3454         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
3455
3456 2015-03-27  Marek Polacek  <polacek@redhat.com>
3457
3458         PR sanitizer/65583
3459         * ubsan.c (ubsan_create_edge): New function.
3460         (instrument_bool_enum_load): Call it.
3461         (instrument_nonnull_arg): Likewise.
3462         (instrument_nonnull_return): Likewise.
3463         (instrument_object_size): Likewise.
3464
3465 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3466
3467         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
3468         auto_vec.
3469
3470 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3471
3472         PR lto/65536
3473         * lto-streamer.h (class lto_location_cache): New.
3474         (struct data_in): Add location_cache.
3475         (lto_input_location): Update prototype.
3476         (stream_input_location_now): New.
3477         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
3478         pointer to location.
3479         (stream_input_location): Update.
3480         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
3481         (warn_odr): Apply location cache before warning.
3482         (lto_input_location): Update prototype.
3483         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
3484         Use stream_input_location_now.
3485         * lto-streamer-in.c (lto_location_cache::current_cache): New static
3486         variable.
3487         (lto_location_cache::cmp_loc): New function.
3488         (lto_location_cache::apply_location_cache): New function.
3489         (lto_location_cache::accept_location_cache): New function.
3490         (lto_location_cache::revert_location_cache): New function.
3491         (lto_location_cache::input_location): New function.
3492         (lto_input_location): Do location caching.
3493         (stream_input_location_now): New function.
3494         (input_eh_region, input_struct_function_base): Use
3495         stream_input_location_now.
3496         (lto_data_in_create): use new.
3497         (lto_data_in_delete): Use delete.
3498         * tree-streamer-in.c (unpack_ts_block_value_fields,
3499         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
3500         lto_input_ts_exp_tree_pointers): Update for cached location api.
3501
3502 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3503
3504         PR ipa/65076
3505         * passes.def: Add pass_nothrow.
3506         * ipa-pure-const.c: (pass_data_nothrow): New.
3507         (pass_nothrow): New.
3508         (pass_nothrow::execute): New.
3509         (make_pass_nothrow): New.
3510         * tree-pass.h (make_pass_nothrow): Declare.
3511
3512 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3513
3514         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
3515         edge to change by speculation resolution or redirection.
3516         (edge_set_predicate): Likewise.
3517         (inline_summary_t::duplicate): Likewise.
3518         (remap_edge_summaries): Likewise.
3519
3520 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3521
3522         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
3523         New macros.
3524         (can_inline_edge_p): Relax option matching for always inline functions.
3525
3526 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
3527
3528         PR target/65561
3529         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
3530         Check operand 4 and operand 0 for equality.
3531         (avx512f_vextract<shuffletype>32x4_1_maskm):
3532         Check operand 6 and operand 0 for equality.
3533         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
3534         for equality.
3535         (vec_extract_hi_<mode>_maskm): Ditto.
3536
3537 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3538
3539         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
3540         dead calls back to live.
3541         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
3542         cross check to ...
3543         (cgraph_node::verify_node): ... here; verify only callee edges,
3544         not caller.
3545         * cif-code.def (CILK_SPAWN): New code.
3546
3547 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3548
3549         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
3550         (edge_set_predicate): Use it to mark unreachable edges.
3551         (inline_summary_t::duplicate): Remove unnecesary code.
3552         (remap_edge_summaries): Likewise.
3553         (dump_inline_summary): Report contains_cilk_spawn.
3554         (compute_inline_parameters): Compute contains_cilk_spawn.
3555         (inline_read_section, inline_write_summary): Stream
3556         contains_cilk_spawn.
3557         * ipa-inline.c (can_inline_edge_p): Do not touch
3558         DECL_STRUCT_FUNCTION that may not be available;
3559         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
3560         remove check for callee_fun->can_throw_non_call_exceptions and
3561         replace it by optimization attribute check; check for flag_exceptions.
3562         * ipa-inline-transform.c (inline_call): Maintain
3563         DECL_FUNCTION_PERSONALITY
3564         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
3565
3566 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3567
3568         PR tree-optimization/65551
3569         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
3570         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
3571
3572 2015-03-26  Richard Biener  <rguenther@suse.de>
3573
3574         PR middle-end/65555
3575         * tree-cfg.c (verify_gimple_call): Do not require a call to
3576         have no LHS if it wasn't recognized as control altering yet.
3577
3578 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3579
3580         PR tree-optimization/64715
3581         * passes.def: Add another instance of pass_object_sizes before ccp1.
3582         * tree-object-size.c (pass_object_sizes::execute): In
3583         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
3584         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
3585         __bos result and the computed constant.  Remove redundant
3586         checks, obsoleted by gimple_call_builtin_p test.
3587
3588         * var-tracking.c (variable_tracking_main_1): Don't track
3589         variables for targetm.no_register_allocation targets.
3590
3591 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
3592
3593         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
3594         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
3595
3596 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3597
3598         PR target/65569
3599         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
3600         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
3601         0.0 is correctly setup.
3602         (extenddftf2_internal): Likewise.
3603
3604 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
3605
3606         PR tree-optimization/65177
3607         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
3608         (bb_in_bbs): New.
3609         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
3610         edges not adjacent on the path to the original code.
3611
3612 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
3613
3614         PR bootstrap/65537
3615         * doc/install.texi (Building a native compiler): Document new
3616         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
3617         configuration assumes that the host supports the linker plugin.
3618
3619 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
3620
3621         PR target/65508
3622         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
3623         chain for generated call.
3624
3625 2015-03-25  Richard Biener  <rguenther@suse.de>
3626
3627         * passes.c (pass_manager::execute_early_local_passes): Guard
3628         execution of pass_chkp_instrumentation_passes with
3629         flag_check_pointer_bounds.
3630         (pass_chkp_instrumentation_passes::gate): Likewise.
3631
3632 2015-03-25  Martin Liska  <mliska@suse.cz>
3633
3634         PR tree-optimization/65538
3635         * symbol-summary.h (function_summary::~function_summary):
3636         Relese memory for allocated summaries.
3637         (function_summary::release): New function.
3638
3639 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR lto/65515
3642         * lto-streamer-out.c (DFS::worklist): New struct.
3643         (DFS::worklist_vec): New data member.
3644         (DFS::next_dfs_num): Remove.
3645         (DFS::DFS): Rewritten using worklist instead of recursion,
3646         using most of code from DFS::DFS_write_tree.
3647         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
3648         pass it to DFS_write_tree calls.
3649         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
3650         quick initial checks push it into worklist_vec and return.
3651
3652 2015-03-25  Richard Biener  <rguenther@suse.de>
3653
3654         PR middle-end/65519
3655         * genmatch.c (expr::gen_transform): Re-write to avoid
3656         using gimple_build.
3657
3658 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3659
3660         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
3661
3662 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3663
3664         * config/arm/arm.opt (print_tune_info): New option.
3665         * config/arm/arm.c (arm_print_tune_info): New function.
3666         (arm_file_start): Call arm_print_tune_info.
3667         * config/arm/arm-protos.h (struct tune_params): Add comment.
3668         * doc/invoke.texi (@item -mprint-tune-info): New item.
3669         (-mtune): mention it in ARM Option Summary.
3670
3671 2015-03-25  DJ Delorie  <dj@redhat.com>
3672
3673         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
3674         correct clause.
3675
3676 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
3677             Martin Liska  <mliska@suse.cz>
3678
3679         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
3680         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
3681         (sem_item::add_type): New function.
3682         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
3683         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
3684         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
3685         (sem_function::equals_wpa): Fix typo.
3686         * ipa-icf.h (sem_item::add_type): New function.
3687         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
3688         order.
3689
3690 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
3691
3692         PR tree-optimization/65533
3693         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
3694         with swapped operands, call vect_free_slp_tree on
3695         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
3696         vector.
3697
3698 2015-03-24  Richard Biener  <rguenther@suse.de>
3699
3700         PR middle-end/65517
3701         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
3702         for fixup if necessary.
3703
3704 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
3705
3706         * doc/extend.texi (Function Attributes): Add @cindex entries
3707         for all attributes and regularize their format.  Delete text
3708         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
3709         information about "eightbit_data", "tiny_data", and "model"
3710         variable attributes to the Variable Attributes section.  Fix
3711         some obvious typos and copy-editing issues.
3712         (Variable Attributes, Type Attributes): Likewise add/fix
3713         @cindex entries for all attributes.
3714
3715 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3716
3717         PR target/65523
3718         * tree-chkp.c (chkp_build_returned_bound): Ignore
3719         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
3720
3721 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
3722
3723         PR target/65505
3724         * config/sh/predicates.md (simple_mem_operand,
3725         displacement_mem_operand): Add test for reg.
3726         (short_displacement_mem_operand): Test for displacement_mem_operand
3727         before invoking sh_disp_addr_displacement.
3728         * config/sh/constraints.md (Sdd, Sra): Simplify.
3729         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
3730         Remove redundant displacement_mem_operand tests.
3731
3732 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
3733
3734         PR target/65296
3735         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
3736         the same -mmcu=MCU more than once.
3737
3738 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3739
3740         PR bootstrap/65522
3741         * ipa-devirt.c: Remove duplicate demangle.h include.
3742
3743         PR target/65504
3744         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
3745         on the pseudo.
3746         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
3747         REG_POINTER on *destptr after adjusting it for prologue size.
3748
3749         PR ipa/65521
3750         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
3751         ultimate_alias_target ()->order ints instead of
3752         ultimate_alias_target () pointers.
3753
3754 2015-03-23  Richard Biener  <rguenther@suse.de>
3755
3756         PR tree-optimization/65518
3757         * tree-vect-stmts.c (vectorizable_load): Reject single-element
3758         interleaving cases we generate absymal code for.
3759
3760 2015-03-23  Richard Biener  <rguenther@suse.de>
3761
3762         PR tree-optimization/65494
3763         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
3764         matches here.
3765         (vect_analyze_slp_instance): But do that here, always and once.
3766
3767 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3768
3769         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
3770         adding T or multiplying by T+1 and subracting T.
3771
3772 2015-03-22  Jeff Law  <law@redhat.com>
3773
3774         PR rtl-optimization/64317
3775         * Makefile.in (OBJS): Add gcse-common.c
3776         * gcse.c: Include gcse-common.h
3777         (struct modify_pair_s): Move structure definition to gcse-common.h
3778         (compute_transp): Move function to gcse-common.c.
3779         (canon_list_insert): Similarly.
3780         (record_last_mem_set_info): Break out some code and put it into
3781         gcse-common.c.  Call into the new common code.
3782         (compute_local_properties): Pass additional arguments to compute_transp.
3783         * postreload-gcse.c: Include gcse-common.h and df.h
3784         (modify_mem_list_set, blocks_with_calls): New variables.
3785         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
3786         (get_bb_avail_insn): Pass in the expression index too.
3787         (alloc_mem): Allocate memory for the new bitmaps and lists.
3788         (free_mem): Free memory for the new bitmaps and lists.
3789         (insert_expr_in_table): Record a bitmap index for each entry we
3790         add to the table.
3791         (record_last_mem_set_info): Call into common code in gcse-common.c.
3792         (get_bb_avail_insn): If no available insn was found in the requested
3793         BB.  If BB has a single predecessor, see if the expression is
3794         transparent in BB and available in that single predecessor.
3795         (compute_expr_transp): New wrapper for compute_transp.
3796         (eliminate_partially_redundant_load): Pass expression's bitmap_index
3797         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
3798         (gcse_after_reload_main): If there are elements in the hash table,
3799         then compute transparency for all the elements in the hash table.
3800         * gcse-common.h: New file.
3801         * gcse-common.c: New file.
3802
3803 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
3804
3805         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
3806         as an adjective.
3807         (System Headers): Likewise.
3808         (Ifdef): Likewise.
3809         (Traditional macros): Likewise.
3810         (Invocation): Likewise.
3811         (Option Index): Likewise.
3812         * doc/cppopts.texi (-M): Likewise.
3813         (-finput-charset): Likewise.
3814         (--help): Likewise.
3815         * doc.invoke.texi (AVR Options): Likewise.
3816         (V850 Options): Likewise.
3817
3818 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
3819
3820         PR ipa/65475
3821         * ipa-devirt.c: Include demangle.h
3822         (odr_type_d): Add field rtti_broken.
3823         (odr_subtypes_equivalent_p): Do not require name to match.
3824         (compare_virtual_tables): Fix typo; if type already has ODR violation,
3825         bypass the tests; be ready for function referneces in vtables that are
3826         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
3827         (warn_odr): Give up for nameless types.
3828         (warn_types_mismatch): Report mismatch in mangled names;
3829         report mismatch in anonymous namespaces; look into component types to
3830         give useful error; report when mismatch is dragged in from other ODR
3831         type.
3832         (odr_types_equivalent_p): Match types for being polymorphic; avoid
3833         duplicated diagnostics.
3834         (add_type_duplicate): Reorder checks so more informative ones come
3835         first; fix typo; do not output "the extra base is defined here" when
3836         we did not warn.
3837         (BINFO_N_BASE_BINFOS): Relax sanity check.
3838
3839 2015-03-22  Martin Liska  <mliska@suse.cz>
3840             Jakub Jelinek  <jakub@redhat.com>
3841
3842         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
3843         masks that can potentially include a builtin.
3844         (ix86_add_new_builtins): Introduce fast filter for isa values
3845         that cannot trigger builtin inclusion.
3846
3847 2015-03-22  Martin Liska  <mliska@suse.cz>
3848
3849         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
3850         (sem_item::update_hash_by_local_refs): Likewise.
3851         (sem_variable::get_hash): Empty line is fixed.
3852         (sem_item_optimizer::execute): Include adding of hash references.
3853         (sem_item_optimizer::update_hash_by_addr_refs): New function.
3854         (sem_item_optimizer::build_hash_based_classes): Use local hash.
3855         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
3856         (sem_item::update_hash_by_local_refs): Likewise.
3857
3858 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3859
3860         PR ipa/65502
3861         * ipa-comdats.c (enqueue_references): Walk through thunks.
3862         (ipa_comdats): Likewise.
3863         (set_comdat_group_1): New function.
3864
3865 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3866
3867         PR ipa/65475
3868         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
3869         non-polymorphic
3870
3871 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3872             Gerald Pfeifer  <gerald@pfeifer.com>
3873
3874         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
3875
3876 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
3877             Sandra Loosemore  <sandra@codesourcery.com>
3878
3879         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
3880         function parameter declaration.
3881         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
3882         Update arguments to nios2_adjust_call_address().
3883         (sibcall_internal): Rename from *sibcall.
3884         (sibcall_value_internal): Rename from *sibcall_value.
3885         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
3886         (nios2_large_got_address): Add target temp reg parameter.
3887         (nios2_got_address): Adjust call to nios2_large_got_address, add
3888         force_reg around it.
3889         (nios2_load_pic_address): Add target temp reg parameter, replace call
3890         to nios2_got_address with corresponding code.
3891         (nios2_legitimize_constant_address): Update call to
3892         nios2_load_pic_address.
3893         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
3894         to use temp reg for PIC loading purposes.
3895         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
3896         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
3897         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
3898
3899 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3900
3901         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
3902         usage of "the @option{...}".
3903         (-Wopenmp-simd): Likewise.
3904         (-fsanitize-recover): Likewise.
3905         (-fsanitize-undefined-trap-on-error): Likewise.
3906         (-flto): Likewise.
3907         (tracer-dynamic-coverage-feedback): Likewise.
3908         (reorder-block-duplicate-feedback): Likewise.
3909         (loop-unroll-jam-size): Likewise.
3910         (-B): Likewise.
3911         (-I-): Likewise.
3912         (-mabs=legacy): Likewise.
3913         (-mupper-regs-df): Likewise.
3914         (-mupper-regs-sf): Likewise.
3915         (-mpointers-to-nested-functions): Likewise.
3916
3917 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3918
3919         * doc/extend.texi (Cilk Plus Builtins): Add markup.
3920
3921 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3922
3923         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
3924         additional index entries and cross-references.
3925         (-fchkp-check-incomplete-type): Likewise.
3926         (-fchkp-first-field-has-own-bounds): Likewise.
3927         (-fchkp-narrow-to-innermost-array): Likewise.
3928         (-fchkp-use-fast-string-functions): Likewise.
3929         (-fchkp-use-nochk-string-functions): Likewise.
3930         (-fchkp-use-static-const-bounds): Likewise.
3931         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
3932         (-fchkp-instrument-marked-only): Likewise.
3933         (-fchkp-use-wrappers): Likewise.
3934         (-static-libmpx): Likewise.
3935         (-static-libmpxwrappers): Likewise.
3936         * doc/extend.texi (bnd_legacy): Likewise.
3937         (bnd_instrument): Likewise.
3938         (bnd_variable_size): Likewise.
3939         (Pointer Bounds Checker builtins): Likewise.
3940
3941 2015-03-21  Tom de Vries  <tom@codesourcery.com>
3942
3943         PR tree-optimization/65458
3944         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
3945         * cgraph.h (cgraph_node): Add parallelized_function field.
3946         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
3947         (input_overwrite_node): Read parallelized_function field.
3948         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
3949         parallelized_function on cgraph_node for child_fn.
3950         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
3951         Remove include of gt-tree-parloops.h.
3952         (parallelized_functions): Remove static variable.
3953         (parallelized_function_p): Rewrite using parallelized_function field of
3954         cgraph_node.
3955         (create_loop_fn): Remove adding to parallelized_functions.
3956         * Makefile.in (GTFILES): Remove tree-parloops.c
3957
3958 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
3959
3960         PR rtl-optimization/64366
3961         * lra.c (lra_update_insn_regno_info): Consider regs in
3962         CALL_INSN_FUNCTION_USAGE memory.
3963
3964 2015-03-20  Richard Biener  <rguenther@suse.de>
3965
3966         PR middle-end/64715
3967         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
3968         for type comparison and gcc_checking_assert.
3969         (chrec_fold_plus_poly_poly): Likewise.
3970         (chrec_fold_multiply_poly_poly): Likewise.
3971         (chrec_convert_1): Likewise.
3972         * gimplify.c (gimplify_expr): Remove premature folding of
3973         &X + CST to &MEM[&X, CST].
3974
3975 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3976
3977         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
3978         already is final.
3979         (ipa_inline): Recompute inline_failed codes.
3980         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
3981         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
3982         CIF_FINAL_ERROR.
3983
3984 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
3985
3986         PR rtl-optimization/60851
3987         * recog.c (constrain_operands): Accept a pseudo register before reload
3988         for LRA enabled targets.
3989
3990 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3991
3992         PR target/65240
3993         * config/rs6000/predicates.md (easy_fp_constant): Remove special
3994         -ffast-math handling that kept non-0 constants live in the RTL
3995         until reload.  Remove logic testing the number of instructions it
3996         took to create a constant in a GPR that was never used, due to a
3997         test for soft-float earlier.
3998         (memory_fp_constant): Delete, no longer used.
3999
4000         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
4001         alternatives for loading non-0 constants into GPRs for hard
4002         floating point that is no longer needed due to changes in
4003         easy_fp_constant.  Add support for loading 0.0 into GPRs.
4004         (mov<mode>_hardfloat32): Likewise.
4005         (mov<mode>_hardfloat64): Likewise.
4006         (mov<mode>_64bit_dm): Likewise.
4007         (movtd_64bit_nodm): Likewise.
4008         (pre-reload move FP constant define_split): Delete define_split,
4009         since it is no longer used.
4010         (extenddftf2_internal): Remove GHF constraints that are not valid
4011         for extenddftf2.
4012
4013 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
4014
4015         PR rtl-optimization/63491
4016         * lra-constraints.c (check_and_process_move): Use src instead of
4017         sreg.  Remove some dead code.
4018
4019 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
4020
4021         PR ipa/65380
4022         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
4023         (sem_variable::merge): Likewise.
4024
4025 2015-03-19  Martin Liska  <mliska@suse.cz>
4026
4027         PR ipa/65465
4028         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
4029         all fields of cgraph_thunk_info.
4030
4031 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4032
4033         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
4034         clone instrumented thunks.
4035
4036 2015-03-19  Richard Biener  <rguenther@suse.de>
4037
4038         Revert
4039         2015-03-10  Richard Biener  <rguenther@suse.de>
4040
4041         PR middle-end/63155
4042         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
4043         * tree-ssa-coalesce.c: Include timevar.h.
4044         (attempt_coalesce): Handle graph being NULL.
4045         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
4046         Split out abnormal coalescing to ...
4047         (perform_abnormal_coalescing): ... this function.
4048         (coalesce_ssa_name): Perform abnormal coalescing without computing
4049         live/conflict.
4050         (verify_ssa_coalescing_worker): New function.
4051         (verify_ssa_coalescing): Likewise.
4052
4053 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4054             Jakub Jelinek  <jakub@redhat.com>
4055
4056         PR sanitizer/65400
4057         * tsan.c (instrument_gimple): Clear tail call flag on
4058         calls.
4059
4060 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
4061
4062         PR sanitizer/65400
4063         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
4064         call in the return bb.
4065         (find_split_points): Add RETURN_BB argument, don't call
4066         find_return_bb.
4067         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
4068         if true append TSAN_FUNC_EXIT internal call after the call to
4069         the split off function.
4070         (execute_split_functions): Call find_return_bb here.
4071         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
4072         Adjust find_split_points and split_function calls.
4073
4074 2015-03-18  DJ Delorie  <dj@redhat.com>
4075
4076         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
4077         (iorqi3_virt): Likewise.
4078
4079 2015-03-18  Tom de Vries  <tom@codesourcery.com>
4080
4081         * tree-parloops.c (parallelize_loops): Make static.
4082         * tree-parloops.h (parallelize_loops): Remove extern declaration.
4083
4084 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
4085
4086         PR middle-end/64491
4087         Revert:
4088         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
4089
4090         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
4091         condition would be removed due to undefined behaviour.
4092
4093 2015-03-18  Martin Liska  <mliska@suse.cz>
4094
4095         PR ipa/65432
4096         * cgraph.c (cgraph_node::get_create): Remove unnecessary
4097         xstrdup_for_dump wrapper.
4098         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
4099         sem_item::name.
4100         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
4101         with xstrdup_for_dump.
4102         (sem_variable::equals): Likewise.
4103         (sem_item_optimizer::read_section): Use symtab_node::name instead of
4104         sem_item::name.
4105         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
4106         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
4107         symtab_node::asm_name with xstrdup_for_dump.
4108         (congruence_class::dump): Use symtab_node::name instead of
4109         sem_item::name.
4110         * ipa-icf.h (symtab_node::name): Remove.
4111         (symtab_node::asm_name): Likewise.
4112
4113 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
4114
4115         PR tree-optimization/65450
4116         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
4117         function.
4118         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
4119         it instead of duplicate_ssa_name_ptr_info.
4120
4121         PR target/65222
4122         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
4123
4124 2015-03-18  Richard Biener  <rguenther@suse.de>
4125
4126         * tree-data-ref.h (struct access_matrix): Remove.
4127         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
4128         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
4129         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
4130         (am_vector_index_for_loop): Likewise.
4131         (struct data_reference): Remove access_matrix member.
4132         (DR_ACCESS_MATRIX): Remove.
4133         (lambda_vector_new): Add comment.
4134         (lambda_matrix_new): Use XOBNEWVEC.
4135
4136 2015-03-18  Richard Biener  <rguenther@suse.de>
4137
4138         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
4139         (pass_ch::execute): Cleanup the CFG only if we did sth.
4140         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
4141
4142 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4143
4144         * expmed.c (synth_mult): Use std::swap instead of manually
4145         swapping algorithms.
4146
4147 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
4148
4149         PR target/65078
4150         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
4151
4152 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
4153
4154         PR target/65296
4155         * config/avr/avr.opt (-nodevicelib): New option.
4156         * doc/invoke.texi (AVR Options): Document it.
4157         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
4158         libgcc.a, libc.a, libm.a.
4159         * config/avr/specs.h: Same.
4160         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
4161         which don't (directly) depend on the device.  Print more help.
4162         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
4163         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
4164         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
4165         case of an error.
4166         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
4167         for specs file name.
4168         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
4169         * config/avr/avr-mcus.def: Adjust initializers and comments.
4170
4171 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
4172
4173         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
4174         DECL_ONE_ONLY to check if decl is one only.
4175         * ipa-split.c (consider_split): Limit splitt of one only functions.
4176
4177 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
4178
4179         PR tree-optimization/65427
4180         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
4181         functions.
4182         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
4183
4184 2015-03-16  Marek Polacek  <polacek@redhat.com>
4185
4186         * cgraph.h (add_new_static_var): Remove declaration.
4187         * varpool.c (add_new_static_var): Remove function.
4188
4189 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
4190
4191         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
4192         instead of vec<tree> * with vec_alloc and release for args.
4193         Adjust all users.
4194
4195         PR middle-end/65431
4196         * omp-low.c (delete_omp_context): Only splay_tree_delete
4197         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
4198         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
4199
4200 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
4201
4202         PR sanitizer/64820
4203         * cfgexpand.c (align_base): New function.
4204         (alloc_stack_frame_space): Call it.
4205         (expand_stack_vars): Align prev_frame to be sure
4206         data->asan_vec elements aligned properly.
4207
4208 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
4209
4210         PR middle-end/65409
4211         * expr.c (store_field): Do not do a direct block copy if the source is
4212         a PARALLEL with BLKmode.
4213
4214 2015-03-16  Tom de Vries  <tom@codesourcery.com>
4215
4216         PR middle-end/65414
4217         Revert:
4218         2015-03-12  Tom de Vries  <tom@codesourcery.com>
4219
4220         PR rtl-optimization/64895
4221         * lra-lives.c (check_pseudos_live_through_calls): Use
4222         actual_call_used_reg_set instead of call_used_reg_set, if available.
4223
4224 2015-03-16  Alan Modra  <amodra@gmail.com>
4225
4226         PR target/63150
4227         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
4228         Modify Z->r bswapdi splitter to use dest in place of scratch.
4229         In r->Z and Z->r bswapdi splitter rename word_high, word_low
4230         to word1, word2 and rearrange logic to suit.
4231         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
4232         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
4233         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
4234         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
4235         early clobber.
4236
4237 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
4238
4239         PR tree-optimization/65369
4240         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
4241         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
4242         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
4243
4244         PR tree-optimization/65418
4245         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
4246         are casts in the first PLUS_EXPR operand, ensure tbias and
4247         *totallowp are in the inner type.
4248
4249         PR rtl-optimization/65401
4250         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
4251         argument.  If true, adjust_address_nv of x with big-endian
4252         correction for the mode widening to GET_MODE (y).
4253         (make_field_assignment): Don't do MEM mode widening here.
4254         Use MEM_P instead of GET_CODE == MEM.
4255
4256 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
4257
4258         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
4259         the external decls.
4260
4261 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4262
4263         PR target/64600
4264         * config/arm/arm.c (arm_gen_constant, AND case): Use
4265         ARM_SIGN_EXTEND when constructing AND mask.
4266
4267 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4268
4269         * graph.c (print_graph_cfg): Make function names visible and append
4270         parenthesis to it.  Also make groups of basic blocks belonging to the
4271         same function visible.
4272
4273 2015-03-12  Richard Biener  <rguenther@suse.de>
4274
4275         PR middle-end/44563
4276         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
4277         to avoid quadratic behavior with inline expansion splitting blocks.
4278         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
4279         with the successor if the predecessor will be merged with it.
4280         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
4281         entry block with its successor.
4282
4283 2015-03-13  Richard Biener  <rguenther@suse.de>
4284
4285         PR middle-end/44563
4286         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
4287         (cleanup_tree_cfg_1): Do not call it.
4288         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
4289         (fixup_noreturn_call): Mark the stmt as control altering.
4290         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
4291         here.
4292         (pass_data_fixup_cfg): Produce a dump file.
4293         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
4294         (need_noreturn_fixup): New global.
4295         (pass_dominator::execute): Fixup queued noreturn calls.
4296         (optimize_stmt): Queue calls that became noreturn for fixup.
4297         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
4298         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
4299         (el_to_fixup): New global.
4300         (eliminate_dom_walker::before_dom_childre): Queue calls that
4301         became noreturn for fixup.
4302         (eliminate): Fixup queued noreturn calls.
4303         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
4304         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
4305         (substitute_and_fold_dom_walker::before_dom_children): Queue
4306         alls that became noreturn for fixup.
4307         (substitute_and_fold): Fixup queued noreturn calls.
4308
4309 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
4310
4311         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
4312         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
4313         are building; for methods check ODR type of class they belong to if
4314         they may lead to a polymorphic call.
4315         (sem_function::compare_polymorphic_p): Be bit smarter about testing
4316         when function may lead to a polymorphic call.
4317         (sem_function::compare_type_list): Remove.
4318         (sem_variable::equals): Update use of compatible_types_p.
4319         (sem_variable::parse_tree_refs): Remove.
4320         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
4321         cdtor.
4322         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
4323         matching here.
4324         (func_checker::compatible_polymorphic_types_p): Break out from ...
4325         (unc_checker::compatible_types_p): ... here.
4326         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
4327         Declare.
4328         (unc_checker::compatible_types_p): Update.
4329         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
4330         Remove.
4331
4332 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4333
4334         PR rtl-optimization/65235
4335         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
4336         When first element of vec_concat is const_int, calculate its size
4337         using second element.
4338
4339 2015-03-12  Richard Biener  <rguenther@suse.de>
4340
4341         PR middle-end/65270
4342         * fold-const.c (operand_equal_p): Fix ordering of resetting
4343         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
4344
4345 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4346
4347         * config/s390/s390.c (s390_reorg): Move code to output nops after label
4348         to s390_reorg ().
4349         (s390_asm_output_function_label): Likewise.
4350         * config/s390/s390.c (s390_asm_output_function_label):
4351         Fix function label alignment with -mhtopatch.
4352         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
4353         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
4354         ("nop_2_byte"): New define_insn.
4355         ("nop_4_byte"): Likewise.
4356         ("nop_6_byte"): Likewise.
4357         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
4358         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
4359
4360 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4361
4362         PR target/65103
4363         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
4364         register.
4365
4366 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4367
4368         PR target/65044
4369         * toplev.c (process_options): Restrict Pointer Bounds Checker
4370         usage with Address Sanitizer.
4371
4372 2015-03-12  Richard Biener  <rguenther@suse.de>
4373
4374         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
4375         to split on.
4376         * omp-low.c (expand_omp_taskreg): Split block before removing
4377         the stmt.
4378         (expand_omp_target): Likewise.
4379         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
4380         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
4381         stmt to split_block.
4382
4383 2015-03-12  Tom de Vries  <tom@codesourcery.com>
4384
4385         PR rtl-optimization/64895
4386         * lra-lives.c (check_pseudos_live_through_calls): Use
4387         actual_call_used_reg_set instead of call_used_reg_set, if available.
4388
4389 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4390
4391         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
4392         (cgraph_node::remove): Likewise.
4393         (cgraph_node::get_untransformed_body): Likewise.
4394         * varpool.c (varpool_node::remove): Likewise.
4395         (varpool_node::get_constructor): Add sanity check.
4396
4397 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
4398
4399         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
4400         old GCC versions.
4401         (-fabi-compat-version): Likewise.
4402         (-ffriend-injection): Likewise.
4403         (-Wdeclaration-after-statement): Likewise.
4404         (-fomit-frame-pointer): Likewise.
4405         (-ftree-coalesce-inlined-vars): Likewise.
4406         (-fvisibility=): Likewise.
4407         * doc/extend.texi (Typeof): Likewise.
4408         (Zero Length): Likewise.
4409         (Escaped Newlines): Likewise.
4410         (Compound Literals): Likewise.
4411         (Function Attributes): Likewise.
4412         (Label Attributes): Likewise.
4413         (Type Attributes): Likewise.
4414         (Function Names): Likewise.
4415         (Other Builtins): Likewise.
4416         (Function Specific Option Pragmas): Likewise.
4417         (C++ Interface): Likewise.
4418
4419 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
4420
4421         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
4422
4423 2015-03-11  Marek Polacek  <polacek@redhat.com>
4424
4425         PR tree-optimization/65388
4426         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
4427
4428 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
4429
4430         PR target/65296
4431         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
4432         * configure: Regenerate.
4433         * config.in: Regenerate.
4434         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
4435         [-mn-flash]: Document it.
4436         [__AVR_ARCH__]: Document avrtiny.
4437
4438         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
4439         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
4440         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
4441
4442 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4443
4444         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
4445
4446 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4447
4448         PR target/65242
4449         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
4450         allow reloads of PLUS in floating point/VSX registers.
4451
4452 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
4453
4454         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
4455         crypto_sha256_fast.
4456         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
4457
4458 2015-03-11  Richard Biener  <rguenther@suse.de>
4459
4460         PR tree-optimization/65310
4461         * tree-sra.c (build_ref_for_offset): Also preserve larger
4462         alignment.
4463
4464 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
4465
4466         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
4467
4468 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4469
4470         PR target/65368
4471         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
4472         new define_expand.
4473         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
4474
4475 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4476
4477         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
4478         (sem_function::equals_wpa): ... here.
4479
4480 2015-03-10  Marek Polacek  <polacek@redhat.com>
4481             Jakub Jelinek  <jakub@redhat.com>
4482
4483         PR sanitizer/65367
4484         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
4485         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
4486         separately.
4487
4488 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4489
4490         PR target/65286
4491         * config/rs6000/t-linux: For powerpc64* target set
4492         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
4493
4494 2015-03-10  Richard Biener  <rguenther@suse.de>
4495
4496         PR middle-end/44563
4497         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
4498         for redirect_all_calls.
4499
4500 2015-03-10  Marek Polacek  <polacek@redhat.com>
4501
4502         * gdbinit.in (pcfun): Define and document.
4503
4504 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
4505
4506         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
4507         of libgomp-plugin.h.
4508         (find_target_compiler): Support a case when the path to gcc is
4509         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
4510         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
4511         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
4512         libgomp-plugin.h.
4513         (main): Use GCC_INSTALL_NAME as target_driver_name.
4514         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
4515         define.
4516         (mkoffload.o): Remove obsolete include path and defines.
4517         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
4518
4519 2015-03-10  Richard Biener  <rguenther@suse.de>
4520
4521         PR middle-end/63155
4522         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
4523         * tree-ssa-coalesce.c: Include timevar.h.
4524         (attempt_coalesce): Handle graph being NULL.
4525         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
4526         Split out abnormal coalescing to ...
4527         (perform_abnormal_coalescing): ... this function.
4528         (coalesce_ssa_name): Perform abnormal coalescing without computing
4529         live/conflict.
4530         (verify_ssa_coalescing_worker): New function.
4531         (verify_ssa_coalescing): Likewise.
4532
4533 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
4534
4535         PR target/65296
4536         * config.gcc (extra_options) [avr]: Remove.
4537         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
4538         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
4539         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
4540
4541         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
4542         (-mmcu=): Add Var and MissingArgError properties.
4543         (-march=): Remove.
4544         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
4545         * config/avr/t-multilib: Regenerate.
4546         * config/avr/specs.h: New file.
4547         * config/avr/driver-avr.c: New file.
4548         * config/avr/genopt.sh: Remove file.
4549         * config/avr/avr-tables.opt: Remove file.
4550         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
4551         * config/avr/avr-c.c: Same.
4552         * avr-arch.h: Same.
4553         (avr_current_device): Remove proto.
4554         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
4555         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
4556         (EXTRA_SPEC_FUNCTIONS): Define.
4557         (avr_devicespecs_file): New specs function proto.
4558         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
4559         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
4560         (avr_current_device): Remove definition and usage.
4561         (avr_set_core_architecture): New static function.
4562         (avr_option_override): Use it.
4563         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
4564         (mcu_name): New static array.
4565         (comparator, avr_archs_str, avr_mcus_str): New static functions.
4566         (avr_inform_devices, avr_inform_core_architectures): New functions.
4567         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
4568         (avrlibc.h) [WITH_AVRLIBC]: Include.
4569         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
4570         (print_mcu): Rewrite from scratch.
4571         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
4572         Forward to avr-specific specs defined in device-specs file.
4573         * config/avr/t-avr (driver-avr.o): New rule.
4574         (avr-devices.o): Depend on avr-arch.h.
4575         (avr-mcus): No more depend on avr-tables.opt.
4576         (avr-tables.opt): Remove rule.
4577         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
4578
4579 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4580
4581         * c-family/c.opt (fchkp-use-wrappers): New.
4582         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
4583         (chkp_wrap_function): New.
4584         (chkp_build_instrumented_fndecl): Support wrapped
4585         functions.
4586         * doc/invoke.texi (-fcheck-pointer-bounds): New.
4587         (-fchkp-check-incomplete-type): New.
4588         (-fchkp-first-field-has-own-bounds): New.
4589         (-fchkp-narrow-bounds): New.
4590         (-fchkp-narrow-to-innermost-array): New.
4591         (-fchkp-optimize): New.
4592         (-fchkp-use-fast-string-functions): New.
4593         (-fchkp-use-nochk-string-functions): New.
4594         (-fchkp-use-static-bounds): New.
4595         (-fchkp-use-static-const-bounds): New.
4596         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
4597         (-fchkp-check-read): New.
4598         (-fchkp-check-write): New.
4599         (-fchkp-store-bounds): New.
4600         (-fchkp-instrument-calls): New.
4601         (-fchkp-instrument-marked-only): New.
4602         (-fchkp-use-wrappers): New.
4603         (-static-libmpx): New.
4604         (-static-libmpxwrappers): New.
4605
4606 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4607
4608         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
4609         (CHKP_SPEC): Add wrappers library.
4610         * c-family/c.opt (static-libmpxwrappers): New.
4611
4612 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4613
4614         * config/i386/linux-common.h (LIBMPX_LIBS): New.
4615         (LIBMPX_SPEC): New.
4616         (CHKP_SPEC): New.
4617         * gcc.c (CHKP_SPEC): New.
4618         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
4619         * c-family/c.opt (static-libmpx): New.
4620
4621 2015-03-10  Richard Biener  <rguenther@suse.de>
4622
4623         PR middle-end/44563
4624         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
4625         for compare_type.
4626         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
4627         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
4628         (cgraph_add_edge_to_call_site_hash): Likewise.
4629         (cgraph_node::get_edge): Likewise.
4630         (cgraph_edge::set_call_stmt): Likewise.
4631         (cgraph_edge::remove_caller): Likewise.
4632
4633 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
4634
4635         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
4636         (callee_saved_gpr_regs_size): ... this.
4637         (callee_saved_regs_first_regno): Rename to ...
4638         (callee_saved_first_gpr_regno): ... this.
4639         (callee_saved_regs_last_regno) Rename to ...
4640         (callee_saved_last_gpr_regno): ... this.
4641         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
4642         variables.
4643         (nds32_initial_elimination_offset): Likewise.
4644         (nds32_expand_prologue): Likewise.
4645         (nds32_expand_epilogue): Likewise.
4646         (nds32_expand_prologue_v3push): Likewise.
4647         (nds32_expand_epilogue_v3pop): Likewise.
4648         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
4649         Adjust renamed variables.
4650         (nds32_output_stack_pop): Likewise.
4651
4652 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4653
4654         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
4655         code in comment.
4656
4657 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4658
4659         PR rtl-optimization/65321
4660         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
4661         than shift mode.
4662         * var-tracking.c (use_narrower_mode): Likewise.
4663
4664 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4665
4666         PR tree-optimization/65355
4667         * varasm.c (notice_global_symbol): Do not produce RTL.
4668         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
4669         anchor.
4670         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
4671         check for section anchors.
4672
4673 2015-03-10  Alan Modra  <amodra@gmail.com>
4674
4675         PR target/65286
4676         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
4677         to be single-arch by default.  Set cpu_is_64bit for powerpc64
4678         given --with-cpu=native.
4679         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
4680         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
4681         and powerpc64le.
4682         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
4683         rs6000_isa_flags rather than TARGET_64BIT.
4684
4685 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
4686             Kaz Kojima  <kkojima@gcc.gnu.org>
4687
4688         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
4689
4690 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
4691
4692         PR lto/65361
4693         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
4694         on a TREE_BINFO, instead use BINFO_TYPE.
4695
4696 2015-03-09  Richard Biener  <rguenther@suse.de>
4697
4698         PR middle-end/65270
4699         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
4700         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
4701         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
4702         of that.  When comparing dereferences compare alignment.
4703         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
4704
4705 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4706
4707         * ipa-inline-analysis.c (check_callers): Check
4708         node->can_remove_if_no_direct_calls_and_refs_p.
4709         (growth_likely_positive): Reorganize to call
4710         can_remove_if_no_direct_calls_p later.
4711         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
4712         will_be_removed_from_program_if_no_direct_calls_p): Add
4713         will_inline parameter.
4714         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
4715         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4716         Handle inliner case correctly.
4717
4718 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4719
4720         PR tree-optimization/63743
4721         * cfgexpand.c (reorder_operands): Also reorder if only second operand
4722         had its definition forwarded by TER.
4723
4724 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4725
4726         PR lto/65316
4727         * ipa-utils.h (types_odr_comparable): Add strict argument.
4728         * ipa-devirt.c: Fix whitespace;
4729         (odr_hasher): Remove.
4730         (odr_name_hasher, odr_vtable_hasher): New hashers.
4731         (can_be_name_hashed_p): New predicate.
4732         (hash_type_name): remove.
4733         (hash_odr_name): New.
4734         (odr_name_hasher::hash): new.
4735         (can_be_vtable_hashed_p): New.
4736         (hash_odr_vtable): New.
4737         (odr_vtable_hasher::hash): New.
4738         (types_same_for_odr): Add strict parameter.
4739         (types_odr_comparable): Likewise.
4740         (odr_name_hasher::equal): New.
4741         (odr_vtable_hasher::equal): New.
4742         (odr_name_hasher::remove): New.
4743         (odr_hash_type): Change to hash_table<odr_name_hasher>.
4744         (odr_vtable_hash_type): New.
4745         (odr_vtable_hash): New.
4746         (odr_subtypes_equivalent_p): Do strict comparsion.
4747         (add_type_duplicate): Merge type names; cleanup; avoid type
4748         duplicates.
4749         (register_odr_type): Initialize vtable hash.
4750         (build_type_inheritance_graph): Likewise
4751         (get_odr_type): Reorg to use two hashes.
4752         (dump_possible_polymorphic_call_targets): Move sanity check after debug
4753         output.
4754         (ipa_devirt): Dump type_inheritance_graph.
4755         (types_same_for_odr): Add strict mode.
4756
4757 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4758
4759         PR ipa/65334
4760         * cgraph.h (symtab_node): Add definition_alignment,
4761         can_increase_alignment_p and increase_alignment.
4762         * symtab.c (symtab_node::can_increase_alignment_p,
4763         increase_alignment_1, symtab_node::increase_alignment,
4764         symtab_node::definition_alignment): New.
4765         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
4766         can_increase_alignment_p.
4767         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
4768         * tree-vect-stmts.c (ensure_base_align): Likewise.
4769         * varasm.c (function_section_1): Use definition_alignment.
4770         (assemble_start_function): Likewise.
4771         (emit_local): likewise.
4772         (build_constant_desc): Likewsie.
4773         (output_constant_def_contents): Likewise.
4774         (place_block_symbol): Likewise.
4775         (output_object_block): Likewise.
4776
4777 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4778
4779         PR ipa/65316
4780         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
4781         when outputting debug.
4782
4783 2015-03-07  Marek Polacek  <polacek@redhat.com>
4784             Martin Uecker  <uecker@eecs.berkeley.edu>
4785
4786         PR sanitizer/65280
4787         * doc/invoke.texi: Update description of -fsanitize=bounds.
4788
4789 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4790
4791         * tree-ssa-phiopt.c (neg_replacement): Remove.
4792         (tree_ssa_phiopt_worker): Remove negate optimization.
4793
4794 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4795
4796         PR ipa/65302
4797         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
4798
4799 2015-03-06  Richard Biener  <rguenther@suse.de>
4800
4801         PR middle-end/64928
4802         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
4803         and liveout_obstack members.
4804         (calculate_live_on_exit): Remove.
4805         (calculate_live_ranges): Change declaration.
4806         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
4807         (new_tree_live_info): Adjust.
4808         (calculate_live_ranges): Delete livein when not wanted.
4809         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
4810         Deal with partly deleted live info.
4811         (loe_visit_block): Remove temporary bitmap by using
4812         bitmap_ior_and_compl_into.
4813         (live_worklist): Adjust accordingly.
4814         (calculate_live_on_exit): Make static.
4815         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
4816         we do not need livein.
4817
4818 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
4819
4820         * real.c (real_from_string): Fix typo in assertion.
4821
4822 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
4823
4824         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
4825         the patch.
4826
4827 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4828
4829         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
4830
4831 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
4832
4833         PR target/64342
4834         * lra-assigns.c (find_hard_regno_for): Rename to
4835         find_hard_regno_for_1.  Add a new parameter.
4836         (find_hard_regno_for): New function using find_hard_regno_for_1.
4837
4838 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4839
4840         PR rtl-optimization/65067
4841         * expmed.c (store_bit_field, extract_bit_field): Reworked the
4842         strict volatile bitfield handling.
4843
4844 2015-03-05  Martin Liska  <mliska@suse.cz>
4845
4846         PR ipa/65318
4847         * ipa-icf.c (sem_variable::equals): Compare variables types.
4848
4849 2015-03-05  Richard Henderson  <rth@redhat.com>
4850
4851         PR target/65121
4852         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
4853         correctly check weak symbol binding.
4854
4855 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
4856
4857         PR middle-end/65315
4858         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
4859         needed alignment.
4860
4861 2015-03-05  Martin Liska  <mliska@suse.cz>
4862
4863         * ipa-inline.c (inline_small_functions): Set default value to
4864         prevent warning during bootstrap.
4865         * tree.h: Add pragma guard that ignores false positives during
4866         bootstrap.
4867
4868 2015-03-05  Richard Biener  <rguenther@suse.de>
4869
4870         PR tree-optimization/65310
4871         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4872         Properly preserve alignment of the base of the access.
4873
4874 2015-03-05  Richard Biener  <rguenther@suse.de>
4875
4876         PR ipa/65270
4877         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
4878         Compare dependence info.
4879
4880 2015-03-05  Richard Biener  <rguenther@suse.de>
4881
4882         PR middle-end/65233
4883         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
4884         tree-into-ssa.h.
4885         (walk_ssa_copies): Revert last chage.  Instead do not walk
4886         SSA names registered for SSA update.
4887
4888 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4889
4890         PR ipa/65270
4891         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
4892         vtable references for their containing type.
4893         (sem_function::equals_wpa): Compare TYPE_RESTRICT
4894         and type attributes.
4895
4896 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
4897
4898         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
4899         before negating it.
4900         * stor-layout.c (finalize_record_size): Revert latest change.
4901
4902 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
4903
4904         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
4905
4906 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4907
4908         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
4909         for correct comdat handling.
4910         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4911         Likewise.
4912         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
4913         (used_from_object_file_p_worker): Remove.
4914         (cgraph_node::only_called_directly_or_alised): Add
4915         used_from_object_file_p.
4916         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
4917         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
4918         can_remove_if_no_direct_calls_and_refs_p.
4919
4920 2015-03-04  Nick Clifton  <nickc@redhat.com>
4921
4922         * config/rl78/rl78.h (enum reg_class): Remove real registers from
4923         General register class.
4924         * config/rl78/rl78-real.md: Replace general register constraints
4925         with real+virtual register constraints.
4926
4927 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4928
4929         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
4930         from checking for -mhtm option.
4931
4932 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4933
4934         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
4935         (struct ipa_sra_check_caller_data): Add has_thunk field.
4936         (ipa_sra_check_caller): Check for thunk.
4937         (ipa_sra_preliminary_function_checks): Give up on function with
4938         thunks.
4939         (ipa_early_sra): Use call_for_symbol_and_aliases.
4940
4941 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4942
4943         PR target/65249
4944         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
4945         called for __stack_chk_guard symbol.
4946
4947 2015-03-03  DJ Delorie  <dj@redhat.com>
4948
4949         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
4950         inc/dec.
4951         (*addhi3_real): Likewise.
4952         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
4953         pattern to match incrementing memory.
4954         * config/rl78/predicates.md (rl78_1_2_operand): New.
4955         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
4956         it's the same and only mem.
4957         (rl78_alloc_physical_registers_op2): If there's effectively only
4958         one MEM, transcode it into HL.
4959         (rl78_far_p): Reject addresses that aren't legitimate.
4960
4961 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
4962
4963         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
4964         negating it.
4965
4966         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
4967
4968 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
4969
4970         Implement call0 ABI for xtensa
4971         * config/xtensa/constraints.md ("a" constraint): Include stack
4972         pointer in case of call0 ABI.
4973         ("q" constraint): Make empty in case of call0 ABI.
4974         ("D" constraint): Include stack pointer in case of call0 ABI.
4975         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
4976         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
4977         prototypes.
4978         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
4979         variable.
4980         (xtensa_regno_to_class): Make it a local variable in the
4981         function xtensa_regno_to_class.
4982         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
4983         macro, function prototype and implementation.
4984         (reg_nonleaf_alloc_order): Make it a local variable in the
4985         function order_regs_for_local_alloc.
4986         (xtensa_conditional_register_usage): New function.
4987         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
4988         (xtensa_valid_move): Allow direct moves to stack pointer
4989         register in call0 ABI.
4990         (xtensa_setup_frame_addresses): Only spill register windows in
4991         windowed ABI.
4992         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
4993         call0 ABI respectively.
4994         (xtensa_function_arg_1): Only mark a7 register for copying in
4995         windowed ABI.
4996         (xtensa_call_save_reg): New function.
4997         (compute_frame_size): Add space for callee saved register
4998         storage to the frame size in call0 ABI.
4999         (xtensa_expand_prologue): Generate code to set up stack frame
5000         and save callee-saved registers in call0 ABI.
5001         (xtensa_expand_epilogue): New function.
5002         (xtensa_set_return_address): New function.
5003         (xtensa_return_addr): Calculate return address in call0 ABI.
5004         (xtensa_builtin_saveregs): Only mark a7 register for copying and
5005         emit copying code in windowed ABI.
5006         (order_regs_for_local_alloc): Add preferred register allocation
5007         order for non-leaf function in call0 ABI.
5008         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
5009         (xtensa_asm_trampoline_template): Add trampoline generation for
5010         call0 ABI.
5011         (xtensa_trampoline_init): Add trampoline initialization for
5012         call0 ABI.
5013         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
5014         functions.
5015         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
5016         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
5017         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
5018         ABI call-used registers.
5019         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
5020         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
5021         call0 ABI.
5022         (REG_CLASS_CONTENTS): Include all registers into the preferred
5023         reload registers set, adjust the set in the
5024         xtensa_conditional_register_usage.
5025         (xtensa_regno_to_class): Drop variable declaration.
5026         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
5027         function.
5028         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
5029         respectively.
5030         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
5031         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
5032         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
5033         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
5034         location in call0 ABI.
5035         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
5036         stack adjustment size when handling exception.
5037         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
5038         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
5039         definitions.
5040         ("return" pattern): Generate ret.n/ret in call0 ABI.
5041         ("epilogue" pattern): Expand epilogue.
5042         ("nonlocal_goto" pattern): Use default in call0 ABI.
5043         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
5044         emit eh_set_a0_* depending on ABI.
5045         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
5046         ("eh_set_a0_call0", "blockage"): New patterns.
5047
5048 2015-03-03  Martin Liska  <mliska@suse.cz>
5049
5050         PR ipa/65287
5051         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
5052
5053 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5054
5055         PR 65138/target
5056         * config/rs6000/rs6000-tables.opt: Regenerate table.
5057
5058 2015-03-03  Renlin Li  <renlin.li@arm.com>
5059
5060         * doc/md.texi (@item ^): Change ? into ^.
5061
5062 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
5063
5064         * doc/tm.texi: Regenerated.
5065
5066 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
5067
5068         * builtins.c (expand_builtin_return_addr): Add
5069         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
5070         surrounding #ifdef.
5071         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
5072         definition to 1.
5073         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
5074         Likewise.
5075         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
5076         undefined.
5077         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
5078         paragraph.
5079
5080 2015-03-03  Martin Jambor  <mjambor@suse.cz>
5081             Eric Botcazou  <ebotcazou@adacore.com>
5082
5083         * tree-sra.c (ipa_sra_check_caller_data): New type.
5084         (has_caller_p): Removed.
5085         (ipa_sra_check_caller): New function.
5086         (ipa_sra_preliminary_function_checks): Use it.
5087
5088 2015-03-03  Martin Liska  <mliska@suse.cz>
5089
5090         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
5091         instead of if branch.
5092
5093 2015-03-03  Martin Liska  <mliska@suse.cz>
5094
5095         PR ipa/65282
5096         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
5097
5098 2015-03-23  Jeff Law  <law@redhat.com>
5099
5100         PR tree-optimization/65241
5101         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
5102         hash table if INSERT is true.
5103
5104 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5105
5106         PR target/65296
5107         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
5108
5109 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5110
5111         PR target/64331
5112         * config/avr/avr.c (context.h, tree-pass.h): Include them.
5113         (avr_pass_data_recompute_notes): New static variable.
5114         (avr_pass_recompute_notes): New class.
5115         (avr_register_passes): New static function.
5116         (avr_option_override): Call it.
5117
5118 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5119
5120         Fix various problems with specs file generation.
5121
5122         PR target/65296
5123         * config.gcc (extra_gcc_objs) [avr]: Remove.
5124         * config/avr/driver-avr.c: Remove file.
5125         * config/avr/t-avr (driver-avr.o): Remove rule.
5126         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
5127         INCLUDES to build.  Depend on TM_H.
5128         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
5129         build warnings.  Fix non-matching types and non-existing %-codes.
5130         (tm.h): Include.
5131         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
5132         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
5133         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
5134         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
5135         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
5136         (LIBGCC_SPEC): Remove definitions.
5137
5138 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5139
5140         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
5141         to create a register in testing mode.
5142
5143 2015-03-03  Martin Liska  <mliska@suse.cz>
5144             Jan Hubicka  <hubicka@ucw.cz>
5145
5146         PR ipa/65263
5147         * cgraph.c (cgraph_node::has_thunk_p): New function.
5148         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
5149         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
5150         (sem_function::merge): Assert is changed.
5151
5152 2015-03-03  Martin Liska  <mliska@suse.cz>
5153             Martin Jambor  <mjambor@suse.cz>
5154
5155         PR ipa/65087
5156         * ipa-icf.c (sem_item_optimizer::execute): Change function
5157         return value to boolean.
5158         (sem_item_optimizer::merge_classes): Likewise.
5159         (ipa_icf_driver): Return TODO_remove_functions in case there's
5160         a merge operation processed.
5161         * ipa-icf.h: Change function return value to boolean.
5162
5163 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5164
5165         PR 65138/target
5166         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
5167         processor type for 64-bit little endian PowerPC.
5168
5169         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5170         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
5171         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
5172         printing built-in mask so it does not pass NULL pointers.
5173
5174         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
5175         -mcpu=powerpc64le.
5176
5177 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
5178
5179         PR target/58158
5180         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
5181         !ISA_HAS_FP_CONDMOVE.
5182
5183 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
5184
5185         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
5186         reload_completed.
5187
5188 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
5189
5190         * doc/invoke.texi (Options for Code Generation Conventions):
5191         Fix URL of DSO paper.
5192
5193 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5194
5195         PR ipa/65130
5196         * ipa-inline.c (check_callers): Looks for recursion.
5197         (inline_to_all_callers): Give up on uninlinable or recursive edges.
5198         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
5199         summary of inline clones.
5200         (do_estimate_growth_1): Fix recursion check.
5201
5202 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5203
5204         PR ipa/64988
5205         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
5206         comdat groups.
5207
5208 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5209             Aldy Hernandez  <aldyh@redhat.com>
5210
5211         PR lto/65276
5212         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
5213         when checking TYPE_BINFO.
5214
5215 2015-03-02  Richard Biener  <rguenther@suse.de>
5216
5217         PR ipa/65270
5218         * ipa-icf-gimple.c: Include builtins.h.
5219         (func_checker::compare_memory_operand): Compare base alignment.
5220
5221 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5222
5223         PR target/65184
5224         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
5225         are never passed by reference.
5226
5227 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5228
5229         PR target/65183
5230         * tree-chkp.c (chkp_check_lower): Don't check against
5231         zero bounds for already instrumented functions.
5232         (chkp_check_upper): Likewise.
5233         (chkp_fini): Clean pass local data to avoid wrong reusage.
5234
5235 2015-02-28  Martin Liska  <mliska@suse.cz>
5236             Jan Hubicka  <hubicka@ucw.cz>
5237
5238         * ipa-icf.c (sem_variable::equals): Improve debug output;
5239         get variable constructor.
5240         (sem_variable::parse): Do not filter out too early; give up on
5241         volatile and register vars.
5242         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
5243         variables.
5244         * ipa-icf.h (sem_variable::init): Do not set ctor.
5245         (sem_variable::ctor): Remove.
5246
5247 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
5248
5249         PR middle-end/65233
5250         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
5251
5252 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5253
5254         * ipa-icf.c: Include stor-layout.h
5255         (sem_function::compare_cgraph_references): Rename to ...
5256         (sem_item::compare_cgraph_references): ... this one.
5257         (sem_variable::equals_wpa): New function
5258         (sem_variable::equals): Do not check stuff already verified by
5259         equals_wpa.
5260         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
5261         * ipa-icf.h (sem_item): Add compare_cgraph_references.
5262         (sem_function): Remove compare_cgraph_references.
5263         (sem_variable): Turns equals_wpa into non-inline.
5264
5265 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5266
5267         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
5268         (sem_item::add_expr): New function.
5269         (sem_function::hash_stmt): Handle operands of most statements.
5270         (sem_variable::get_hash): Hash the actual constructor.
5271         * ipa-icf.h (sem_item): Add add_expr.
5272         (sem_function): Update prototype of hash_stmt
5273
5274 2015-02-28  Martin Liska  <mliska@suse.cz>
5275             Jan Hubicka  <hubicka@ucw.cz>
5276
5277         PR ipa/65245
5278         * ipa-icf-gimple.c (func_checker::compare_function_decl):
5279         Remove.
5280         (func_checker::compare_variable_decl): Skip symtab vars.
5281         (func_checker::compare_cst_or_decl): Update.
5282         * ipa-icf.c (sem_function::parse): Do not consider aliases.
5283         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
5284         use correct symtab predicates.
5285         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
5286         (sem_variable::parse):  Update comment.
5287         (sem_item_optimizer::build_graph): Consider ultimate aliases
5288         for references.
5289
5290 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5291
5292         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
5293         of OBJ_TYPE_REF.
5294
5295 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5296
5297         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
5298         (sem_variable::merge) Likewise.
5299
5300 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5301
5302         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
5303         target; also match flag_ipa_devirt.
5304
5305 2015-03-01  Martin Liska  <mliska@suse.cz>
5306             Jan Hubicka  <hubicka@ucw.cz>
5307
5308         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
5309         Validate variable alignment.
5310         * ipa-icf.c (sem_function::equals_private): Be more precise
5311         about non-common function attributes.
5312         (sem_variable::equals): Likewise.
5313
5314 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5315
5316         PR ipa/65237
5317         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
5318         across COMDAT group boundary.
5319
5320 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5321
5322         PR ipa/65232
5323         * ipa-icf.c (clear_decl_rtl): New function.
5324         (sem_function::merge): Clear RTL before forming alias.
5325         (sem_variable::merge): Clear RTL before forming alias.
5326
5327 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5328
5329         PR ipa/65236
5330         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
5331
5332 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
5333
5334         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
5335         to neon_to_gp<q>.
5336
5337 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5338
5339         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
5340         a typo in the description.
5341
5342 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5343
5344         PR target/64317
5345         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
5346         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
5347         * lra-constraints.c: Include "params.h".
5348         (EBB_PROBABILITY_CUTOFF): Use
5349         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
5350         (lra_inheritance): Use '<' instead of '<=' for
5351         EBB_PROBABILITY_CUTOFF.
5352         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
5353         Document change.
5354
5355 2015-02-27  Martin Liska  <mliska@suse.cz>
5356
5357         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
5358         vector length condition.
5359
5360 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
5361
5362         * doc/extend.texi (x86 transactional memory intrinsics):
5363         Reorganize discussion of _xbegin.  Clarify that the return
5364         value is a bit mask.  Expand example and move to end of section.
5365
5366 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5367             Aldy Hernandez  <aldyh@redhat.com>
5368
5369         PR rtl-optimization/65220
5370         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
5371
5372 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5373
5374         PR target/65032
5375         * lra-remat.c (update_scratch_ops): New.
5376         (do_remat): Call it.
5377         * lra.c (lra_register_new_scratch_op): New. Take code from ...
5378         (remove_scratches): ... here.
5379         * lra-int.h (lra_register_new_scratch_op): New prototype.
5380
5381 2015-02-27  Marek Polacek  <polacek@redhat.com>
5382
5383         PR c/65040
5384         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
5385         -Wformat-signedness anymore.
5386
5387 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5388
5389         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
5390         function.
5391         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
5392
5393 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5394
5395         * config/s390/s390.c (enum s390_builtin):
5396         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
5397         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
5398         (s390_init_builtins): Generate new builtin functions.
5399         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
5400         (s390_sfpc, s390_efpc): New pattern definitions.
5401
5402 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5403
5404         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
5405         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
5406         (s390_builtin_decls): New array.
5407         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
5408         (s390_builtin_decl): New function.
5409         (TARGET_BUILTIN_DECL): Define macro.
5410
5411 2015-02-27  Richard Biener  <rguenther@suse.de>
5412
5413         PR middle-end/63175
5414         * builtins.c (get_object_alignment_2): Make sure to re-apply
5415         the ANDed mask after recursing to its operand gets us a new
5416         misalignment bit position.
5417
5418 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
5419             Martin Liska  <mliska@suse.cz>
5420
5421         PR bootstrap/65150
5422         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
5423         Use address_matters_p.
5424         (redirect_all_callers, set_addressable): New functions.
5425         (sem_function::merge): Reorganize and fix merging issues.
5426         (sem_variable::merge): Likewise.
5427         (sem_variable::compare_sections): Remove.
5428         * common.opt (fmerge-all-constants, fmerge-constants): Remove
5429         Optimization flag.
5430         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
5431         redirect them.
5432         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
5433         decl is used.
5434         (address_matters_1): New function.
5435         (symtab_node::address_matters_p): New function.
5436         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
5437         check for merged flag.
5438         * cgraph.h (address_matters_p): Declare.
5439         (symtab_node::address_taken_from_non_vtable_p): Remove.
5440         (symtab_node::address_can_be_compared_p): New method.
5441         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
5442         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
5443         Remove.
5444         (comdat_can_be_unshared_p_1) Use address_matters_p.
5445         (update_vtable_references): Fix formating.
5446         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
5447         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
5448         * cgraphclones.c: Preserve merged and icf_merged flags.
5449
5450 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
5451
5452         * doc/extend.texi (Function Attributes): Fix spelling and typos.
5453         (Label Attributes): Likewise.
5454         (Cilk Plus Builtins): Likewise.
5455         (ARC SIMD Built-in Functions): Likewise.
5456         (ARM C Language Extensions (ACLE)): Likewise.
5457         (PowerPC Built-in Functions): Likewise.
5458         (PowerPC Hardware Transactional Memory Built-in Functions):
5459         Likewise.
5460
5461 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5462
5463         PR tree-optimization/65216
5464         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
5465         new stmt and new SSA_NAME for lhs whenever the arguments have
5466         changed and weren't just swapped.  Fix comment typo.
5467
5468         PR tree-optimization/65215
5469         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
5470         for PDP endian targets.
5471         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
5472         Fix up formatting issues.
5473         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
5474         size is smaller than the original, adjust MEM_REF offset by the
5475         difference of sizes.  Use is_gimple_mem_ref_addr instead of
5476         is_gimple_min_invariant test to avoid adding address temporaries.
5477
5478 2015-02-26  Martin Liska  <mliska@suse.cz>
5479             Jan Hubicka  <hubicka@ucw.cz>
5480
5481         PR ipa/64693
5482         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
5483         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
5484         (sem_item_optimizer::process_cong_reduction): Include division by
5485         sensitive references.
5486         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
5487         * ipa-ref.c (ipa_ref::address_matters_p): New function.
5488         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
5489
5490 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
5491
5492         PR target/65192
5493         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
5494         Remove.
5495         * config/avr/avr.c: Same.
5496         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
5497         Refuse any constant address not in 0..0xbf.
5498         * config/avr/avr.md (*mov<mode>, *movsf): Remove
5499         tiny_valid_direct_memory_access_range from insn conditions.
5500         (mov<mode>): Don't special-case expansion of avrtiny addresses.
5501
5502 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
5503
5504         PR target/61142
5505         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
5506         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
5507         * config/sh/predicates.md (const_logical_operand): New predicate.
5508         * config/sh/sh.md: Add new peephole2 patterns.
5509
5510 2015-02-26  Marek Polacek  <polacek@redhat.com>
5511
5512         PR ipa/65008
5513         * ipa-inline.c (early_inliner): Recompute inline parameters.
5514
5515 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5516
5517         PR target/65171
5518         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
5519         instructions with TImode operands are included in the analysis.
5520
5521 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
5522
5523         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
5524         of an EDGE_FSM_THREAD.
5525
5526 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
5527
5528         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
5529
5530 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
5531
5532         PR debug/46102
5533         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
5534
5535 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
5536
5537         PR tree-optimization/65048
5538         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
5539         (thread_through_all_blocks): Call valid_jump_thread_path.
5540         Remove invalid FSM jump-thread paths.
5541
5542 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5543
5544         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
5545         (ipa_write_optimization_summaries): Likewise.
5546         * tree-streamer.h: Include data-streamer.h.
5547         (streamer_mode_table): Declare extern variable.
5548         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
5549         * lto-streamer-out.c (lto_output_init_mode_table,
5550         lto_write_mode_table): New functions.
5551         (produce_asm_for_decls): Call lto_write_mode_table when streaming
5552         offloading LTO.
5553         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
5554         (lto_create_simple_input_block): Add mode_table argument to the
5555         lto_input_block constructors.
5556         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
5557         Likewise.
5558         * data-streamer-in.c (string_for_index): Likewise.
5559         * ipa-inline-analysis.c (inline_read_section): Likewise.
5560         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
5561         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
5562         * lto-streamer-in.c (lto_read_body_or_constructor,
5563         lto_input_toplevel_asms): Likewise.
5564         (lto_input_mode_table): New function.
5565         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
5566         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
5567         Use bp_pack_machine_mode.
5568         * real.h (struct real_format): Add name field.
5569         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
5570         (class lto_input_block): Add mode_table member.
5571         (lto_input_block::lto_input_block): Add mode_table_ argument,
5572         initialize mode_table.
5573         (struct lto_file_decl_data): Add mode_table field.
5574         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
5575         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
5576         unpack_ts_decl_common_value_fields,
5577         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
5578         * tree-streamer.c (streamer_mode_table): New variable.
5579         * real.c (ieee_single_format, mips_single_format,
5580         motorola_single_format, spu_single_format, ieee_double_format,
5581         mips_double_format, motorola_double_format,
5582         ieee_extended_motorola_format, ieee_extended_intel_96_format,
5583         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
5584         ibm_extended_format, mips_extended_format, ieee_quad_format,
5585         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
5586         decimal_single_format, decimal_double_format, decimal_quad_format,
5587         ieee_half_format, arm_half_format, real_internal_format): Add name
5588         field.
5589         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
5590
5591 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
5592
5593         PR target/65161
5594         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
5595         reordering for selective scheduling.
5596
5597 2015-02-26  Terry Guo  <terry.guo@arm.com>
5598
5599         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
5600         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
5601         (arm_arch_no_volatile_ce): Declare new global variable.
5602         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
5603         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
5604         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
5605         (TARGET_NO_VOLATILE_CE): New macro.
5606         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
5607         volatile memory access in IT block
5608
5609 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5610
5611         PR tree-optimization/61917
5612         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
5613         that reduc_def_stmt is null.
5614
5615 2015-02-25  Martin Liska  <mliska@suse.cz>
5616
5617         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
5618         hard register variables.
5619
5620 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5621
5622         PR target/64212
5623         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
5624         (symtab::noninterposable_alias): Likewise.
5625
5626 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
5627
5628         PR target/65167
5629         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
5630         bounds registers.
5631         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
5632
5633 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
5634
5635         PR target/64997
5636         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
5637         as split condition; force split via '#' in output pattern.
5638
5639 2015-02-25  Richard Biener  <rguenther@suse.de>
5640             Kai Tietz  <ktietz@redhat.com>
5641
5642         PR tree-optimization/61917
5643         * tree-vect-loop.c (vectorizable_reduction): Allow
5644         vect_internal_def without reduction to exit graceful.
5645
5646 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5647
5648         PR target/65196
5649         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
5650         only with NONDEBUG_INSN_P.
5651
5652 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5653
5654         Use variadic macros with avr-log.c.
5655
5656         * config/avr/avr-protos.h (avr_vdump): New prototype.
5657         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
5658         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
5659         * config/avr/avr-log.c: Adjust comments.
5660         (avr_vdump): New function.
5661         (avr_vadump): Pass caller as 2nd argument instead of format string.
5662         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
5663         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
5664
5665 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
5666
5667         PR lto/64374
5668         * target.def (target_option_stream_in): New target hook.
5669         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
5670         targetm.target_option.post_stream_in if non-NULL.
5671         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
5672         * doc/tm.texi: Updated.
5673         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
5674         function.
5675         (TARGET_OPTION_POST_STREAM_IN): Redefine.
5676
5677 2015-02-24  Jeff Law  <law@redhat.com>
5678
5679         PR target/65117
5680         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
5681         of operand 0 and operand 2.
5682         (zero_cost_loop_end, loop_end): Similarly.
5683
5684 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
5685
5686         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
5687         CXX_MEM_STAT_INFO.
5688
5689 2015-02-24  DJ Delorie  <dj@redhat.com>
5690
5691         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
5692         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
5693         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
5694         instead of hardcoding SImode.
5695
5696 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
5697
5698         * omp-low.c (create_omp_child_function): Tag entrypoint
5699         functions with a special attribute.
5700
5701 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
5702
5703         PR target/65058
5704         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
5705
5706 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
5707
5708         PR rtl-optimization/65123
5709         * lra-remat.c (operand_to_remat): Check hard regs in insn
5710         definition too.
5711
5712 2015-02-24  Nick Clifton  <nickc@redhat.com>
5713
5714         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
5715         to the assembler.
5716
5717 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
5718
5719         PR libgomp/64625
5720         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
5721         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
5722         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
5723         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
5724         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
5725         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
5726         (BUILT_IN_GOACC_PARALLEL): Specify as
5727         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
5728         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
5729         * builtin-types.def
5730         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5731         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5732         Remove function types.
5733         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
5734         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5735         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5736         New function types.
5737
5738 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
5739
5740         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
5741
5742 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
5743
5744         PR tree-optimization/65170
5745         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
5746         if val[1] < 0, clear also val[2] and return 3.
5747
5748 2015-02-24  Alan Modra  <amodra@gmail.com>
5749
5750         PR target/65172
5751         * config/rs6000/rs6000.c (get_memref_parts): Only return true
5752         when *base is a reg.  Handle nested plus addresses.  Simplify
5753         pre_modify test.
5754
5755 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
5756
5757         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
5758         use natural alignment when optimizing for size.
5759
5760 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
5761
5762         PR target/65153
5763         * config/sh/sh.md (movsicc_true+3): Remove peephole.
5764         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
5765         * config/sh/sh.c (replace_n_hard_rtx): Remove.
5766
5767 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
5768
5769         PR fortran/63427
5770         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
5771         too big for a wide_int.  Implement missing wrapping operation.
5772
5773 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
5774
5775         PR target/65163
5776         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
5777         instead of const_int 4294901760.
5778
5779 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
5780
5781         * config/avr/t-avr: Fix typo in comment.
5782
5783 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
5784
5785         * doc/rtl.texi (fma): Clarify documentation.
5786
5787 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
5788
5789         PR debug/58123
5790         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
5791         over input_location.
5792
5793 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5794
5795         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
5796         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
5797         restrict alignments to absolute_biggest_alignment.
5798         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
5799         Define.
5800         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
5801         * doc/tm.texi: Regenerate.
5802         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
5803
5804 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
5805
5806         PR target/64172
5807         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
5808
5809 2015-02-20  Richard Biener  <rguenther@suse.de>
5810
5811         PR tree-optimization/65136
5812         * tree-ssa-propagate.c: Include cfgloop.h.
5813         (replace_phi_args_in): Avoid replacing loop latch edge PHI
5814         arguments with constants.
5815
5816 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
5817             Martin Liska  <mliska@suse.cz>
5818
5819         PR target/63892
5820         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
5821         don't try to create_thunk if stdarg_p.  If
5822         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
5823         redirect_callers if possible.
5824         (sem_item_optimizer::execute): Call unregister_hooks here...
5825         (ipa_icf_driver): ... instead of here.
5826
5827 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5828
5829         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
5830         Mark operand 0 as earlyclobber in 2nd alternative.
5831         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
5832         Write negated shift amount into QI lowpart operand 0 and use it
5833         in the shift step.
5834         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5835
5836 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5837
5838         * cgraph.h (clone_function_name_1): Declare.
5839         * cgraphclones.c (clone_function_name_1): New function.
5840         (clone_function_name): Use it.
5841         * lto-partition.c: Include "stringpool.h".
5842         (must_not_rename, maybe_rewrite_identifier)
5843         (validize_symbol_for_target): New static functions.
5844         (privatize_symbol_name): Use must_not_rename.
5845         (promote_symbol): Call validize_symbol_for_target.
5846         (lto_promote_cross_file_statics): Likewise.
5847         (lto_promote_statics_nonwpa): Likewise.
5848
5849 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
5850
5851         PR target/64452
5852         * config/avr/avr.md (pushhi_insn): New insn.
5853         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
5854
5855 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5856             Jakub Jelinek  <jakub@redhat.com>
5857
5858         * tree-streamer.c (preload_common_nodes): Don't preload
5859         TI_VA_LIST* for offloading.
5860         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
5861         in_lto_p.
5862
5863 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
5864
5865         * config/pa/pa.c (pa_emit_move_sequence): Always force
5866         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
5867         note on insn.
5868
5869         * config/pa/pa.c (pa_reloc_rw_mask): New function.
5870         (TARGET_ASM_RELOC_RW_MASK): Define.
5871         (pa_cannot_force_const_mem): Revert previous change.
5872
5873 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
5874             Jan Hubicka  <hubicka@ucw.cz>
5875
5876         PR ipa/65028
5877         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
5878         across jump functions.
5879
5880 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
5881
5882         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
5883
5884 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
5885
5886         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
5887
5888 2015-02-19  Richard Henderson  <rth@redhat.com>
5889
5890         PR middle-end/65074
5891         * varasm.c (default_binds_local_p_2): Don't test node->definition;
5892         test DECL_EXTERNAL independent of symtab_node.
5893
5894 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
5895
5896         PR lto/65012
5897         * varpool.c (varpool_node::get_constructor): Return early
5898         if this->lto_file_data is NULL.
5899
5900 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5901
5902         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
5903         (rank_for_schedule_debug): Update.
5904         (ready_sort): Make static.  Move sorting logic to ...
5905         (ready_sort_debug, ready_sort_real): New static functions.
5906         (schedule_block): Sort both debug insns and real insns in preparation
5907         for ready list trimming.  Improve debug output.
5908         * sched-int.h (ready_sort): Remove global declaration.
5909
5910 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
5911
5912         * ipa-icf.c (sem_function::equals_private): Adjust.
5913         (sem_function::bb_dict_test): Take a vec<int> * instead of
5914         auto_vec<int>.
5915         * ipa-icf.h (bb_dict_test): Likewise.
5916
5917 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5918
5919         PR gcov-profile/64634
5920         * tree-eh.c (frob_into_branch_around): Fix up typos
5921         in function comment.
5922         (lower_catch): Put eh_seq resulting from EH lowering of
5923         the cleanup sequence after the cleanup rather than before it.
5924
5925 2015-02-18  Tom de Vries  <tom@codesourcery.com>
5926
5927         * common.opt (fstdarg-opt): New option.
5928         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
5929         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
5930         (@item -fstdarg-opt): New item.
5931
5932 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5933
5934         PR target/65064
5935         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
5936         for common symbols.
5937
5938 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5939
5940         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
5941         insn-modes.h.
5942         (ALL_HOST_OBJS): Add mkoffload.o.
5943         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
5944
5945 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
5946
5947         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
5948         (compare_virtual_tables): Be smarter about skipping typeinfos;
5949         do sane output on virtual table table mismatch.
5950         (warn_odr): Be ready for forward declarations of enums;
5951         output sane info on base mismatch and virtual table mismatch.
5952         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
5953         when only one type is polymorphic.
5954         (get_odr_type): Fix hashtable corruption.
5955         (dump_odr_type): Dump mangled names.
5956
5957 2015-02-18  Richard Biener  <rguenther@suse.de>
5958
5959         PR tree-optimization/65063
5960         * tree-predcom.c (determine_unroll_factor): Return 1 if we
5961         have replaced looparound PHIs.
5962
5963 2015-02-18  Martin Liska  <mliska@suse.cz>
5964
5965         * lto-streamer.c (lto_streamer_init): Encapsulate
5966         streamer_check_handled_ts_structures with checking macro.
5967
5968 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5969
5970         PR ipa/65087
5971         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
5972         section if !implicit_section.
5973         (cgraph_node::create_version_clone_with_body): Likewise.
5974         * trans-mem.c (ipa_tm_create_version): Likewise.
5975
5976 2015-02-18  Richard Biener  <rguenther@suse.de>
5977
5978         PR tree-optimization/62217
5979         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
5980         into BIVs.
5981
5982 2015-02-18  Marek Polacek  <polacek@redhat.com>
5983
5984         PR sanitizer/65081
5985         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
5986         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
5987         is in range [-16K, -1].  Don't issue run-time error if
5988         (ptr > ptr + offset).
5989
5990 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
5991
5992         * doc/install.texi (nvptx-*-none): New section.
5993         * doc/invoke.texi (Nvidia PTX Options): Likewise.
5994         * config/nvptx/nvptx.opt: Update.
5995
5996         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
5997         (access_check): New functions, copied from
5998         config/i386/intelmic-mkoffload.c.
5999         (main): For non-installed testing, look in all COMPILER_PATHs for
6000         GCC_INSTALL_NAME.
6001
6002         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
6003
6004 2015-02-18  Andrew Pinski  <apinski@cavium.com>
6005             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6006
6007         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
6008         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
6009
6010 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
6011
6012         * ipa-visibility.c (function_and_variable_visibility): Only
6013         check locality if node is not already local.
6014         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
6015         call_for_symbol_and_aliases instead of
6016         call_for_symbol_thunks_and_aliases.
6017         (ipa_inline): Likewise.
6018         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6019         first walk aliases.
6020         * ipa.c (symbol_table::remove_unreachable_nodes): Use
6021         call_for_symbol_and_aliases.
6022         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
6023         (ipa_propagate_frequency_1): Use it; use opt_for_fn
6024         (ipa_propagate_frequency): Update.
6025         (ipa_profile): Add opt_for_fn gueards.
6026
6027 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
6028
6029         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
6030         * doc/invoke.texi (SH options): Document it.
6031         * config/sh/sh.c (sh_insn_length_adjustment): Check
6032         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
6033
6034 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
6035
6036         * common.opt (fipa-cp-alignment): New.
6037         * ipa-cp.c (ipcp_store_alignment_results): Check
6038         flag_ipa_cp_alignment.
6039         * opts.c (default_options_table): Enable -fipa-cp-alignment for
6040         -O2.
6041         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
6042         * doc/invoke.texi: Document -fipa-cp-alignment.
6043
6044 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
6045
6046         PR target/64793
6047         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
6048         to nil.  Adjust comments.
6049
6050 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
6051
6052         * ipa-visibility.c (function_and_variable_visibility): Only
6053         check locality if node is not already local.
6054         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
6055         call_for_symbol_and_aliases instead of
6056         call_for_symbol_thunks_and_aliases.
6057         (ipa_inline): Likewise.
6058         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6059         first walk aliases.
6060         * ipa.c (symbol_table::remove_unreachable_nodes): Use
6061         call_for_symbol_and_aliases.
6062         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
6063         (ipa_propagate_frequency_1): Use it; use opt_for_fn
6064         (ipa_propagate_frequency): Update.
6065         (ipa_profile): Add opt_for_fn guards.
6066
6067 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
6068
6069         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
6070         skipping of "strange" tokens.
6071
6072 2015-02-17  Jeff Law  <law@redhat.com>
6073
6074         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
6075         obsolete comment.
6076
6077 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
6078
6079         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
6080         as forcing a HARD_DEP between instructions, thereby
6081         disallowing rewriting to break dependencies.
6082
6083 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
6084
6085         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
6086         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
6087         variables in boundary that have no inlitalizer encoded and are
6088         not aliases.
6089         * varasm.c (default_binds_local_p_2): External definitions do not
6090         count as definitions here.
6091
6092 2015-02-16  Jeff Law  <law@redhat.com>
6093
6094         PR tree-optimization/64823
6095         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
6096         statements.
6097         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
6098         threading through blocks with PHIs, but no statements.
6099         (thread_through_normal_block): Distinguish between blocks where
6100         we did not process all the statements and blocks with no statements.
6101
6102 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
6103             James Greenhalgh  <james.greenhalgh@arm.com>
6104
6105         PR ipa/64963
6106         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
6107         section if not linkonce.  Fix up formatting.
6108         (cgraph_node::create_version_clone_with_body): Copy section.
6109         * trans-mem.c (ipa_tm_create_version): Likewise.
6110
6111 2015-02-16  Richard Biener  <rguenther@suse.de>
6112
6113         PR tree-optimization/65077
6114         * tree-ssa-structalias.c (get_constraint_for_1): Handle
6115         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
6116         (find_func_aliases): Allow float values to carry pointers again.
6117
6118 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
6119
6120         * doc/install.texi (Specific): Reorder targets list to put
6121         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
6122         from the top menu.
6123
6124 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
6125             David Edelsohn  <dje.gcc@gmail.com>
6126
6127         PR target/65058
6128         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
6129         mapping class to external variable or function reference.
6130         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
6131         mapping class.
6132
6133 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
6134
6135         PR target/53348
6136         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
6137         ASM_WEAKEN_DECL if defined.
6138
6139 2015-02-16  Richard Biener  <rguenther@suse.de>
6140
6141         PR lto/65015
6142         * varasm.c (default_file_start): For LTO produced units
6143         emit <artificial> as file directive.
6144
6145 2015-02-16  Richard Biener  <rguenther@suse.de>
6146
6147         PR tree-optimization/63593
6148         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
6149         stmts and releasing SSA names until...
6150         (execute_pred_commoning): ... after processing all chains.
6151
6152 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
6153
6154         PR ipa/65059
6155         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
6156         external functions.
6157
6158 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
6159
6160         * doc/bugreport.texi: Adjust section titles throughout the file
6161         to use "Title Case".
6162         * doc/extend.texi: Likewise.
6163         * doc/gcov.texi: Likewise.
6164         * doc/implement-c.texi: Likewise.
6165         * doc/implement-cxx.texi: Likewise.
6166         * doc/invoke.texi: Likewise.
6167         * doc/objc.texi: Likewise.
6168         * doc/standards.texi: Likewise.
6169         * doc/trouble.texi: Likewise.
6170
6171 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
6172
6173         * cgraph.h (symtab_node::has_aliases_p): Simplify.
6174         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
6175         * tree.c (lookup_binfo_at_offset): Make static.
6176         (get_binfo_at_offset): Do not shadow offset; add explanatory
6177         comment.
6178
6179 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
6180
6181         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
6182         for all floading point loads and stores except those using a register
6183         index address.
6184         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
6185         to a register.
6186
6187 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
6188
6189         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
6190         (do_estimate_growth_1): Record if any uninlinable edge was seen.
6191         (estimate_growth): Handle uninlinable edges correctly.
6192         (check_callers): New.
6193         (growth_likely_positive): Handle aliases correctly.
6194
6195 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
6196
6197         * ipa-chkp.c: Use iterate_direct_aliases.
6198         * symtab.c (resolution_used_from_other_file_p): Move inline.
6199         (symtab_node::create_reference): Fix formating.
6200         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
6201         (symtab_node::iterate_reference): Move inline.
6202         (symtab_node::iterate_referring): Move inline.
6203         (symtab_node::iterate_direct_aliases): Move inline.
6204         (symtab_node::used_from_object_file_p_worker): Inline into ...
6205         (symtab_node::used_from_object_file_p): ... this one; move inline.
6206         (symtab_node::call_for_symbol_and_aliases): Move inline;
6207         use iterate_direct_aliases.
6208         (symtab_node::call_for_symbol_and_aliases_1): New method.
6209         (cgraph_node::call_for_symbol_and_aliases): Move inline;
6210         use iterate_direct_aliases.
6211         (cgraph_node::call_for_symbol_and_aliases_1): New method.
6212         (varpool_node::call_for_node_and_aliases): Rename to ...
6213         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
6214         use iterate_direct_aliases.
6215         (varpool_node::call_for_symbol_and_aliases_1): New method.
6216         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
6217         (ipa_discover_readonly_nonaddressable_var): Update.
6218         * ipa-devirt.c: Fix formating.
6219         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
6220         Move inline.
6221         (cgraph_node::call_for_symbol_and_aliases): Move inline.
6222         (cgraph_node::call_for_symbol_and_aliases_1): New function..
6223         * cgraph.h (used_from_object_file_p_worker): Remove.
6224         (resolution_used_from_other_file_p): Move inline.
6225         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
6226         (symtab_node::iterate_reference): Move inline.
6227         (symtab_node::iterate_referring): Move inline.
6228         (symtab_node::iterate_direct_aliases): Move inline.
6229         (symtab_node::used_from_object_file_p_worker): Inline into ...
6230         (symtab_node::used_from_object_file_p): Move inline.
6231         * tree-emutls.c (ipa_lower_emutls): Update.
6232         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
6233         (varpool_node::call_for_node_and_aliases): Remove.
6234
6235 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
6236
6237         PR tree-optimization/62209
6238         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
6239         op == range->exp, insert seq and gimplified code after labels
6240         instead of after the phi.
6241
6242 2015-02-13  Jeff Law  <law@redhat.com>
6243
6244         PR bootstrap/65060
6245         Revert my change for tree-optimization/64823.
6246
6247 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
6248
6249         PR tree-optimization/65053
6250         * tree-ssa-phiopt.c (value_replacement): When moving assign before
6251         cond, either reset VR on lhs or set it to phi result VR.
6252
6253 2015-02-13  Jeff Law  <law@redhat.com>
6254
6255         PR tree-optimization/64823
6256         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
6257         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
6258         threading through blocks with PHIs, but no statements.
6259         (thread_through_normal_block): Distinguish between blocks where
6260         we did not process all the statements and blocks with no statements.
6261
6262         PR rtl-optimization/47477
6263         * match.pd (convert (plus/minus (convert @0) (convert @1): New
6264         simplifier to narrow arithmetic.
6265
6266 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
6267
6268         PR ipa/65028
6269         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
6270         polymorphic call info when type is not known to be preserved.
6271
6272 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
6273
6274         PR ipa/65028
6275         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
6276         (inline_call): Use it.
6277
6278 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
6279
6280         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
6281         GOMP_DEVICE_NVIDIA_PTX.
6282
6283 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
6284
6285         PR ipa/65034
6286         * stmt.c (emit_case_nodes): Use void_type_node instead of
6287         NULL_TREE as LABEL_DECL type.
6288
6289 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
6290
6291         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
6292         constraints.
6293         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
6294         symbolic references to data to be forced to constant memory on the
6295         SOM target.
6296
6297 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6298
6299         PR tree-optimization/65002
6300         * tree-cfg.c (pass_data_fixup_cfg): Don't update
6301         SSA on start.
6302         * tree-sra.c (some_callers_have_no_vuse_p): New.
6303         (ipa_early_sra): Reject functions whose callers
6304         assume function is read only.
6305
6306 2015-02-13  Richard Biener  <rguenther@suse.de>
6307
6308         PR lto/65015
6309         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
6310         for LTO produced CUs.
6311
6312 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
6313
6314         PR tree-optimization/64705
6315         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
6316         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
6317         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
6318         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
6319         expand_simple_operations.
6320
6321 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6322             Richard Henderson  <rth@redhat.com>
6323
6324         PR rtl/32219
6325         * cgraphunit.c (cgraph_node::finalize_function): Set definition
6326         before notice_global_symbol.
6327         (varpool_node::finalize_decl): Likewise.
6328         * varasm.c (default_binds_local_p_2): Rename from
6329         default_binds_local_p_1, add weak_dominate argument.  Use direct
6330         returns instead of assigning to local variable.  Unify varpool and
6331         cgraph paths via symtab_node.  Reject undef weak variables before
6332         testing visibility.  Reorder tests for simplicity.
6333         (default_binds_local_p): Use default_binds_local_p_2.
6334         (default_binds_local_p_1): Likewise.
6335         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
6336         via symtab_node.
6337         (default_elf_asm_output_external): Emit visibility when specified.
6338
6339 2015-02-13  Alan Modra  <amodra@gmail.com>
6340
6341         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
6342         code setting up r11 for out-of-line fp restore.
6343
6344 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
6345
6346         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
6347         (muser-mode): Likewise.
6348
6349 2015-02-13  Alan Modra  <amodra@gmail.com>
6350
6351         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
6352         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
6353
6354 2015-02-12  David Howells  <dhowells@redhat.com>
6355
6356         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
6357         warning.
6358         * tree-ssa-uninit.c (dump_predicates): Likewise.
6359         * opts.c (print_filtered_help): Likewise.
6360
6361 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
6362
6363         * dwarf2out.c (output_die): Use "%s", name instead of name to
6364         avoid -Wformat-security warning.
6365
6366         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
6367         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
6368         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
6369         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
6370
6371 2015-02-12  Jason Merrill  <jason@redhat.com>
6372
6373         * common.opt (-flifetime-dse): New.
6374
6375 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
6376
6377         PR sanitizer/65019
6378         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
6379
6380         PR tree-optimization/65014
6381         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
6382         use original second operand of arg0 or arg1 instead of
6383         that adjusted by STRIP_NOPS.
6384
6385 2015-02-11  Jeff Law  <law@redhat.com>
6386
6387         PR target/63347
6388         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
6389         that needs to be queued, just queue it for a single cycle.
6390
6391 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
6392
6393         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
6394         bodies of thunks; comment on why.
6395         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
6396         symbols are extern.
6397
6398 2015-02-11  Richard Henderson  <rth@redhat.com>
6399
6400         PR sanitize/65000
6401         * tree-eh.c (mark_reachable_handlers): Mark source and destination
6402         regions of __builtin_eh_copy_values.
6403
6404 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
6405
6406         PR middle-end/65003
6407         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
6408         ultimate alias is MEM with SYMBOL_REF satisfying
6409         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
6410         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
6411
6412 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
6413
6414         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
6415         "diagnostic-core.h".
6416         (main): Initialize progname, and call diagnostic_initialize.
6417
6418         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
6419         instead of __OPENMP_TARGET__.
6420
6421         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
6422         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
6423         hard-coding PTX_ID.
6424
6425 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
6426
6427         * doc/sourcebuild.texi (pie_enabled): Document.
6428
6429 2015-02-11  Martin Liska  <mliska@suse.cz>
6430
6431         PR ipa/64813
6432         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
6433         a return value for call to a function that is noreturn.
6434
6435 2015-02-11  Richard Biener  <rguenther@suse.de>
6436
6437         PR lto/65015
6438         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
6439         and -fresolution.
6440
6441 2015-02-11  Andrew Pinski  <apinski@cavium.com>
6442
6443         PR target/64893
6444         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
6445         Change the first argument type to size_type_node and add another
6446         size_type_node.
6447         (aarch64_simd_expand_builtin): Handle the new argument to
6448         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
6449         print an out when the first two arguments are not
6450         nonzero integer constants.
6451         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
6452         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
6453
6454 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
6455
6456         PR target/61925
6457         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
6458         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
6459         (ix86_set_current_function): Rewritten.
6460         (ix86_add_new_builtins): Temporarily clear current_target_pragma
6461         when creating builtin fndecls.
6462
6463 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6464
6465         PR ipa/65005
6466         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
6467         function.
6468         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
6469         have no comdat group.
6470         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
6471         (lto_output_varpool_node): Always output alias info.
6472         (output_refs): Output refs of boundary aliases, too.
6473         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
6474         (output_symtab): Output call eges in thunks in boundary.
6475         (get_alias_symbol): Remove.
6476         (input_node, input_varpool_node): Do not special case weakrefs.
6477         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
6478         alias and thunks targets in the boundary; do not take removed symbols
6479         from their comdat groups.
6480         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
6481         (cgraph_node::global_info): Remove.
6482         (cgraph_node::rtl_info): Look through aliases and thunks.
6483         * cgrpah.h (global_info): Remove.
6484         (non_local_p): Remove.
6485
6486 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6487             Sandra Loosemore  <sandra@codesourcery.com>
6488
6489         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
6490         to inline asm.  List dialects in proper order.
6491
6492 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6493             Sandra Loosemore  <sandra@codesourcery.com>
6494
6495         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
6496
6497 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6498
6499         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
6500         modified) reference to Solaris.
6501
6502 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
6503
6504         * doc/extend.texi (Extended Asm): Fix typos.
6505
6506 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
6507
6508         PR sanitizer/65004
6509         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
6510
6511 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
6512
6513         PR target/64661
6514         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
6515         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
6516         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
6517         * config/sh/constraints.md (Ara, Add): New constraints.
6518         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
6519         predicates.
6520         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
6521         atomic_mem_operand_0.  Don't use force_reg on the memory address.
6522         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
6523         Sra constraint.  Convert to insn_and_split.  Add workaround for
6524         PR 64974.
6525         (atomic_compare_and_swap<mode>_hard): Copy to
6526         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
6527         Use atomic_mem_operand_0 predicate.
6528         (atomic_compare_and_swap<mode>_soft_gusa,
6529         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
6530         AraAdd constraints.
6531         (atomic_compare_and_swap<mode>_soft_tcb,
6532         atomic_compare_and_swap<mode>_soft_imask,
6533         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
6534         atomic_mem_operand_0 predicate and SraSdd constraints.
6535         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
6536         constraint.
6537         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
6538         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
6539         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
6540         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
6541         force_reg on the memory address.
6542         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
6543         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
6544         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
6545         atomic_mem_operand_1 predicate and Sra constraint.
6546         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
6547         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6548         Use atomic_mem_operand_1 predicate.
6549         (atomic_<fetchop_name><mode>_hard): Copy to
6550         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6551         Use atomic_mem_operand_1 predicate.
6552         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
6553         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6554         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
6555         insn_and_split.  Use atomic_mem_operand_1 predicate.
6556         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
6557         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
6558         Use atomic_mem_operand_1 predicate.
6559         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
6560         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6561         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
6562         in generated insn with original mem operand before emitting the insn.
6563         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
6564         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
6565         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
6566         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
6567         Use atomic_mem_operand_1 predicate and AraAdd constraints.
6568         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
6569         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
6570         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
6571         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
6572         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
6573         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
6574         atomic_not_fetch<mode>_soft_tcb,
6575         atomic_<fetchop_name>_fetch<mode>_soft_imask,
6576         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
6577         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
6578         Use atomic_mem_operand_1 predicate and SraSdd constraints.
6579
6580 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
6581
6582         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
6583         and 3 earlyclobber operands.
6584
6585 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6586
6587         * common.opt (fstack-reuse): Mark as optimization.
6588
6589 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6590
6591         PR ipa/64982
6592         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
6593
6594 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
6595
6596         PR tree-optimization/64326
6597         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
6598
6599 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
6600
6601         PR gcov-profile/61889
6602         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
6603
6604 2015-02-10  Richard Biener  <rguenther@suse.de>
6605
6606         PR tree-optimization/64995
6607         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
6608         value we use is final.
6609         (visit_reference_op_store): Always valueize op.
6610         (visit_use): Properly valueize vuses.
6611
6612 2015-02-10  Richard Biener  <rguenther@suse.de>
6613
6614         PR tree-optimization/64909
6615         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
6616         pass a scalar-stmt count estimate to the cost model.
6617         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
6618
6619 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
6620
6621         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
6622         enabled by default together with var-tracking.
6623
6624 2015-02-10  Nick Clifton  <nickc@redhat.com>
6625
6626         * config/rl78/rl78.c: Remove DIV attribute code accidentally
6627         included in previous rl78 commit.
6628
6629 2015-02-10  Richard Biener  <rguenther@suse.de>
6630
6631         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
6632         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
6633         return the bitpack.
6634
6635 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6636
6637         PR gcov-profile/61889
6638         * config.in: regenerate.
6639         * configure.in: Likewise.
6640         * configure.ac: Check for ftw.h.
6641         * gcov-tool.c: Check for ftw.h before using nftw.
6642
6643 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6644
6645         PR lto/64076
6646         * ipa-visibility.c (update_visibility_by_resolution_info): Only
6647         assert when not in lto mode.
6648
6649 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
6650
6651         * ira-color.c (setup_left_conflict_sizes_p): Simplify
6652         initialization/assignment of conflict_size.
6653
6654 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
6655
6656         PR ipa/64978
6657         * ipa-cp.c (gather_caller_stats): Skip thunks.
6658         (propagate_constants_topo): Skip aliases.
6659
6660 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6661
6662         PR target/64761
6663         * config/sh/sh.c (sh_option_override): Don't change
6664         -freorder-blocks-and-partition to -freorder-blocks even when
6665         unwinding is enabled.
6666         (sh_can_follow_jump): Return false if the followee jump is
6667         a crossing jump when -freorder-blocks-and-partition is specified.
6668         * config/sh/sh.md (*jump_compact_crossing): New insn.
6669
6670 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6671             Kaz Kojima  <kkojima@gcc.gnu.org>
6672
6673         PR target/64761
6674         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
6675         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
6676         (sh_can_redirect_branch): Rename to ...
6677         (sh_can_follow_jump): ... this.  Constify argument types.
6678         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
6679         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
6680         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
6681         * doc/tm.texi: Regenerate.
6682
6683 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6684
6685         PR sanitizer/64981
6686         * builtins.c (expand_builtin): Call targetm.expand_builtin
6687         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
6688
6689 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6690
6691         PR ipa/61548
6692         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
6693
6694 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6695
6696         PR ipa/63566
6697         * ipa-icf.c (set_local): New function.
6698         (sem_function::merge): Use it.
6699
6700 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6701
6702         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
6703         (add_type_duplicate): Fix comparison of BINFOs.
6704
6705 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6706
6707         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
6708         on getting VOID pointer.
6709
6710 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6711
6712         PR target/64979
6713         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
6714         va_list escapes.
6715
6716 2015-02-09  Richard Biener  <rguenther@suse.de>
6717
6718         * genmatch.c (replace_id): Copy expr_type.
6719
6720 2015-02-09  Richard Biener  <rguenther@suse.de>
6721
6722         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
6723         (streamer_write_tree_bitfields): Declare.
6724         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
6725         properly unpack padding.
6726         (unpack_value_fields): Inline ...
6727         (streamer_read_tree_bitfields): ... here.
6728         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
6729         and properly add padding bits.
6730         (streamer_pack_tree_bitfields): Fold into ...
6731         (streamer_write_tree_bitfields): ... this new function,
6732         exposing the bitpack object.
6733         * lto-streamer-out.c (lto_write_tree_1): Call
6734         streamer_write_tree_bitfields.
6735
6736 2015-02-09  Richard Biener  <rguenther@suse.de>
6737
6738         PR tree-optimization/54000
6739         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
6740         (struct ivopts_data): Add loop_loc member.
6741         (tree_ssa_iv_optimize_loop): Dump loop location.
6742         (create_new_ivs): Likewise, also dump number of IVs generated.
6743
6744 2015-02-09  Martin Liska  <mliska@suse.cz>
6745
6746         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
6747         just if not yet registered.
6748         (ipa_icf_generate_summary): Register callgraph hooks.
6749
6750 2015-02-08  Andrew Pinski  <apinski@cavium.com>
6751
6752         * config/aarch64/aarch64.c (gty_dummy): Delete.
6753
6754 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6755
6756         PR ipa/63566
6757         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
6758         (cgraph_node::local_p): Remove thunk related FIXME.
6759
6760 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6761
6762         PR ipa/63566
6763         * i386.c (ix86_function_regparm): Look through aliases to see if callee
6764         is local and optimized.
6765         (ix86_function_sseregparm): Likewise; also use target's SSE math
6766         settings; error out instead of silently generating wrong code
6767         on mismatches.
6768         (init_cumulative_args): Look through aliases.
6769
6770 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6771
6772         PR ipa/63566
6773         * ipa-split.c (execute_split_functions): Split if function has aliases.
6774
6775 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6776
6777         PR ipa/63566
6778         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
6779         aliases before trying to expand it.
6780         (cgraph_node::expand_thunk): Fix formating.
6781
6782 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
6783
6784         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
6785         (Using Assembly Language with C): Expand introduction.
6786         (Basic Asm): Copy-edit.  Add more information about uses of
6787         basic asm.
6788         (Extended Asm): Copy-edit.  Document new escape syntax and
6789         %l[label] syntax.
6790         (Global Reg Vars): Copy-edit.
6791         (Local Reg Vars): Likewise.
6792
6793 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
6794
6795         PR debug/2714
6796         PR bootstrap/64256
6797         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
6798         (DBX_CONTIN_CHAR): Define.
6799
6800 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
6801             Brian Rzycki  <b.rzycki@samsung.com>
6802
6803         PR tree-optimization/64878
6804         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
6805         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
6806         Stop recursion at loop phi nodes after having visited a loop phi node.
6807
6808 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6809
6810         * toplev.c (process_options): Change flag_ipa_ra before creating
6811         optimization_{default,current}_node.
6812
6813         PR ipa/64896
6814         * cgraphunit.c (cgraph_node::expand_thunk): If
6815         restype is not is_gimple_reg_type nor the thunk_fndecl
6816         returns aggregate_value_p, set restmp to a temporary variable
6817         instead of resdecl.
6818
6819 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
6820
6821         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
6822
6823 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6824
6825         PR target/64205
6826         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
6827         add a general secondary reload handler for SDmode, unless we have
6828         both read/write support for SDmode.
6829
6830 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6831
6832         PR middle-end/64937
6833         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
6834         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
6835         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
6836         1 before, push it to abstract_vec.
6837         (dwarf2out_abstract_function): Adjust caller.  Don't call
6838         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
6839         DECL_ABSTRACT_P flags for all abstract_vec elts.
6840
6841 2015-02-06  Renlin Li  <renlin.li@arm.com>
6842
6843         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
6844         complex gimple.
6845         * tree-ssa.c (execute_update_addresses_taken): Likewise.
6846
6847 2015-02-06  Jeff Law  <law@redhat.com>
6848
6849         PR target/64889
6850         * config/h8300/h8300.c (push): New argument "in_prologue".
6851         Pass "in_prologue" along to "F".
6852         (h8300_push_pop): Corresponding changes.
6853         (h8300_expand_prologue): Likewise.
6854         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
6855
6856 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6857
6858         PR rtl-optimization/64957
6859         PR debug/64817
6860         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
6861         IOR rather than for AND.
6862
6863 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
6864
6865         PR target/62631
6866         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
6867         of shift-add and (add + shift) operations.  Rename local variable.
6868
6869 2015-02-05  Jeff Law  <law@redhat.com>
6870
6871         PR target/17306
6872         * config/h8300/constraints.md (U): Correctly dectect
6873         "eightbit_data" memory addresses.
6874         * config/h8300/h8300.c (eightbit_constant_address_p): Also
6875         handle (const (plus (symbol_ref (x)))) where x is declared
6876         as an 8-bit data memory address.
6877         * config/h8300/h8300.md (call, call_value): Correctly detect
6878         "funcvec" functions.
6879
6880         PR target/43264
6881         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
6882         24 to 28 bits for the H8/300.
6883
6884 2015-02-06  Alan Modra  <amodra@gmail.com>
6885
6886         PR target/64876
6887         * config/rs6000/rs6000.c (chain_already_loaded): New function.
6888         (rs6000_call_aix): Use it.
6889
6890 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
6891
6892         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
6893         check.
6894
6895 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
6896
6897         * config/h8300/constraints.md ("U" constraint): Use strict
6898         variant of REG_OK_FOR_BASE_P after reload has started.
6899
6900 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
6901
6902         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
6903         define to zero if !TARGET_NEON.
6904         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
6905
6906 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6907             Trevor Saunders  <tsaunders@mozilla.com>
6908
6909         PR ipa/61548
6910         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
6911
6912 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6913
6914         PR ipa/61548
6915         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
6916         when removing varpool nodes.
6917
6918 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6919
6920         PR ipa/61548
6921         * varpool.c (varpool_node::remove): Fix order of variables.
6922
6923 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6924
6925         PR ipa/64686
6926         * ipa-inline.c (inline_small_functions): Fix ordering issue between
6927         speculation resolution and key updates.
6928
6929 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6930
6931         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
6932         about not letting any speculative edges unupdated.
6933
6934 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6935
6936         PR gcov/64123
6937         * gcov-io.c (gcov_var): Export.
6938
6939 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6940
6941         PR middle-end/64922
6942         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
6943         edges that become speculative.
6944
6945 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6946
6947         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
6948         or DW_LANG_Fortran08.
6949         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
6950         DW_LANG_Fortran08.
6951         (gen_compile_unit_die): Handle "GNU Fortran2003" and
6952         "GNU Fortran2008" language strings.
6953         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
6954         * langhooks.h (lang_GNU_Fortran): New prototype.
6955         * langhooks.c (lang_GNU_Fortran): New function.
6956         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
6957         lang_GNU_Fortran.
6958
6959 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
6960
6961         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
6962         (RTX_OK_FOR_OLO10_P): Likewise.
6963
6964 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
6965
6966         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
6967
6968 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6969
6970         PR middle-end/64922
6971         * gimple.c: Include gimple-ssa.h.
6972         (maybe_remove_unused_call_args): New function.
6973         * gimple.h (maybe_remove_unused_call_args): Declare.
6974         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
6975         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
6976         * gimple-fold.c (gimple_fold_call): Likewise.
6977
6978 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
6979
6980         PR rtl-optimization/64905
6981         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
6982         pointer alignment if it isn't needed.
6983
6984 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
6985
6986         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
6987         cortex-a72.cortex-a53.
6988         * config/aarch64/aarch64-tune.md: Regenerate.
6989         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
6990
6991 2015-02-04  Nick Clifton  <nickc@redhat.com>
6992
6993         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
6994         inside a MEM.
6995
6996 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6997
6998         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
6999         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
7000         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
7001         of DEF_BUILTIN.
7002         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
7003         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
7004         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
7005         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
7006         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
7007         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
7008         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
7009         * tree-core.h (enum built_in_function): In between
7010         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
7011         for builtins that use DEF_BUILTIN_CHKP macro.
7012
7013 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
7014
7015         PR debug/64817
7016         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
7017         operands for tcc_comparison exprs.  Fix typos.
7018
7019         PR debug/64817
7020         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
7021         of two XORs that have an intervening AND or IOR.
7022
7023         PR debug/64817
7024         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
7025         simplification of XOR of AND to not allocate new rtx before
7026         committing to a simplification.
7027
7028 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7029
7030         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
7031         manual swaps in all peepholes.
7032
7033 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7034
7035         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
7036         of manual swapping implementation.
7037         (aarch64_expand_vec_perm_const_1): Likewise.
7038
7039 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
7040
7041         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
7042         (generic_addrcost_table): Remove NAMED_PARAM.
7043         (cortexa57_addrcost_table): Likewise.
7044         (xgene1_addrcost_table): Likewise.
7045         (generic_regmove_table): Likewise.
7046         (cortexa53_regmove_table): Likewise.
7047         (xgene1_regmove_table): Likewise.
7048         (generic_vector_table): Likewise.
7049         (cortexa57_vector_table): Likewise.
7050         (xgene1_vector_table): Likewise.
7051         (generic_tunings): Likewise.
7052         (cortexa53_tunings): Likewise.
7053         (cortexa57_tunings): Likewise.
7054         (xgene1_tunings): Likewise.
7055
7056 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
7057
7058         * config/arm/arm-cores.def: Add cortex-a72 and
7059         cortex-a72.cortex-a53.
7060         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
7061         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
7062         * config/arm/arm-tune.md: Regenerate.
7063         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
7064         "cortex-a72.cortex-a53".
7065         * doc/invoke.texi (ARM Options/-mtune): Likewise.
7066
7067 2015-02-04  Nick Clifton  <nickc@redhat.com>
7068
7069         PR target/64408
7070         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
7071         of accepted codes.
7072         (nonimmediate_di_operand): Likewise.
7073
7074         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
7075         prefixes of known F5 using MSP430 MCUs.
7076
7077 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7078
7079         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
7080         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
7081         instead of __builtin_sqrt.
7082
7083 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
7084
7085         * varasm.c (do_assemble_alias): Follow transparent alias
7086         chain for target.
7087         (default_assemble_visibility): Follow transparent alias
7088         chain for decl name.
7089
7090 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7091
7092         PR middle-end/62103
7093         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
7094         to compute size of referenced value in the constant case.
7095
7096 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
7097
7098         PR rtl-optimization/64756
7099         * cse.c (invalidate_dest): New function.
7100         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
7101         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
7102         invalidate and do not record it.
7103
7104 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
7105
7106         PR target/64660
7107         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
7108         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
7109         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
7110         atomic_nand<mode>_soft_tcb): New insns.
7111         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
7112         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
7113         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
7114         Split into atomic_not_fetchsi_hard if operands[0] is unused.
7115         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
7116         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
7117         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
7118         atomic_not<mode>_hard if operands[0] is unused.
7119         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
7120         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
7121         if operands[0] is unused.
7122         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
7123         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
7124         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
7125         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
7126         unused.
7127         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
7128         into atomic_not<mode>_soft_tcb if operands[0] is unused.
7129         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
7130         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
7131         if operands[0] is unused.
7132         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
7133         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
7134         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
7135         atomic_nand_fetchsi_hard if operands[0] is unused.
7136         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
7137         atomic_nand<mode>_hard if operands[0] is unused.
7138         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
7139         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
7140         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
7141         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
7142         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
7143         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
7144         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
7145         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
7146         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
7147         atomic_not<mode>_hard if operands[0] is unused.
7148         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
7149         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
7150         unused.
7151         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
7152         into atomic_not<mode>_soft_tcb if operands[0] is unused.
7153         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
7154         atomic_nand<mode>_hard if operands[0] is unused.
7155         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
7156         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
7157
7158 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
7159
7160         PR jit/64810
7161         * Makefile.in (GCC_OBJS): Add gcc-main.o.
7162         * gcc-main.c: New file, containing "main" taken from gcc.c.
7163         * gcc.c (do_self_spec): Free decoded_options.
7164         (class driver): Move declaration to gcc.h.
7165         (main): Move declaration and implementation to new file
7166         gcc-main.c.
7167         (driver_get_configure_time_options): New function.
7168         * gcc.h (class driver): Move this declaration here, from
7169         gcc.c.
7170         (driver_get_configure_time_options): New declaration.
7171
7172 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
7173
7174         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
7175         cross-module inlining.
7176         * cgraph.h (cgraph_node): Add flag merged.
7177         * ipa-icf.c (sem_function::merge): Maintain it.
7178
7179 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
7180
7181         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
7182         instead of OBJECT_P.
7183
7184 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
7185
7186         PR target/62631
7187         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
7188         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
7189         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
7190         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
7191
7192 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
7193
7194         PR other/63504
7195         * combine.c (reg_n_sets_max): New variable.
7196         (can_change_dest_mode, reg_nonzero_bits_for_combine,
7197         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
7198         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
7199         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
7200         (rest_of_handle_combine): Initialize reg_n_sets_max.
7201
7202 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
7203
7204         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
7205         if some always_inline was inlined, apply changes before inlining
7206         heuristically.
7207
7208 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
7209
7210         PR jit/64810
7211         * config/arm/arm.c (arm_option_override): Set
7212         arm_selected_arch/cpu/tune to NULL on entry.
7213
7214 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
7215             Andrew Pinski  <pinskia@gcc.gnu.org>
7216             Jakub Jelinek  <jakub@gcc.gnu.org>
7217
7218         PR target/64231
7219         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
7220         integer typing for small model. Use IN_RANGE.
7221
7222 2015-02-02  Richard Biener  <rguenther@suse.de>
7223
7224         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
7225         * tree-vrp.c (vrp_valueize_1): Likewise.
7226
7227 2015-02-02  Alan Modra  <amodra@gmail.com>
7228
7229         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
7230         than mem for toc_restore.
7231         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
7232         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
7233         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
7234
7235 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
7236
7237         PR target/64047
7238         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
7239         explicit default options.
7240
7241 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
7242
7243         PR ipa/64872
7244         * ipa-utils.c (ipa_merge_profiles): Add release argument.
7245         * ipa-icf.c (sem_function::merge): Do not release body when merging.
7246         * ipa-utils.h (ipa_merge_profiles): Update prototype.
7247
7248 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
7249
7250         PR debug/64817
7251         * cfgexpand.c (deep_ter_debug_map): New variable.
7252         (avoid_deep_ter_for_debug): New function.
7253         (expand_debug_expr): If TERed SSA_NAME is in
7254         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
7255         instead of trying to expand SSA_NAME's def stmt.
7256         (expand_debug_locations): When expanding debug bind
7257         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
7258         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
7259         value.
7260         (pass_expand::execute): Call avoid_deep_ter_for_debug on
7261         all debug bind stmts.  Delete deep_ter_debug_map after
7262         expand_debug_location if non-NULL and clear it.
7263
7264 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
7265
7266         PR target/64851
7267         * config/sh/sync.md (atomic_fetch_notsi_hard,
7268         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
7269         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
7270         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
7271         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
7272         atomic_not_fetch<mode>_soft_imask): New insns.
7273
7274 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7275
7276         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
7277         (rank_for_schedule_debug): Split from ...
7278         (rank_for_schedule): ... this.
7279         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
7280         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
7281
7282 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
7283
7284         * doc/md.texi (Machine Constraints): Alphabetize table by target.
7285         * doc/extend.texi (x86 Variable Attributes): Move section to
7286         correct alphabetization after renaming.
7287         (x86 Type Attributes): Likewise.
7288         (Target Builtins): Re-alphabetize menu.
7289         (x86 Built-in Functions): Move section to correct alphabetization
7290         after renaming.
7291         (x86 transactional memory intrinsics): Likewise.
7292         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
7293         and x86 Windows Options in table and menu.
7294         (x86 Options): Move section to correct alphabetization after
7295         renaming.
7296         (x86 Windows Options): Likewise.
7297
7298 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
7299
7300         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
7301         preferred names of the architecture and its 32- and 64-bit
7302         variants.
7303         * doc/invoke.texi: Likewise.
7304         * doc/md.texi: Likewise.
7305
7306 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         PR target/64882
7309         * config/i386/predicates.md (address_no_seg_operand): Reject
7310         non-CONST_INT_P operands in invalid mode.
7311
7312 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
7313
7314         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
7315         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
7316         * config/i386/predicates.md (address_no_seg_operand): Call
7317         address_operand with VOIDmode.
7318         (vsib_address_operand): Ditto.
7319         (address_mpx_no_base_operand): Ditto.
7320         (address_mpx_no_index_operand): Ditto.
7321
7322 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7323
7324         PR target/64688
7325         * lra-constraints.c (original_subreg_reg_mode): New.
7326         (simplify_operand_subreg): Try to simplify subreg of const.  Use
7327         original_subreg_reg_mode for it.
7328         (swap_operands): Update original_subreg_reg_mode.
7329         (curr_insn_transform): Set up original_subreg_reg_mode.
7330
7331 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7332
7333         PR target/64617
7334         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
7335         function.
7336         (process_alt_operands): Use it.
7337         (curr_insn_transform): Check the optional reload pseudo class is
7338         ok for the mode.
7339
7340 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
7341
7342         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
7343         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
7344         prototype.
7345         * toplev.h (init_asm_output): Update comment on use of
7346         UNKNOWN_LOCATION with fatal_error.
7347         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
7348         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
7349         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
7350         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
7351         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
7352         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
7353         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
7354         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
7355         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
7356         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
7357         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
7358         fatal_error changed to pass input_location as first argument.
7359
7360 2015-01-30  Martin Liska  <mliska@suse.cz>
7361
7362         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
7363         in #pragma GCC diagnostic guards.
7364
7365 2015-01-30  Richard Biener  <rguenther@suse.de>
7366
7367         PR tree-optimization/64829
7368         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
7369         not add a widening conversion pattern but hand off extra
7370         widenings to callers.
7371         (vect_recog_widen_mult_pattern): Handle extra widening produced
7372         by vect_handle_widen_op_by_const.
7373         (vect_recog_widen_shift_pattern): Likewise.
7374         (vect_pattern_recog_1): Remove excess vertical space in dumping.
7375         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7376         (vect_init_vector_1): Likewise.
7377         (vect_get_vec_def_for_operand): Likewise.
7378         (vect_finish_stmt_generation): Likewise.
7379         (vectorizable_load): Likewise.
7380         (vect_analyze_stmt): Likewise.
7381         (vect_is_simple_use): Likewise.
7382
7383 2015-01-29  Jeff Law  <law@redhat.com>
7384
7385         * combine.c (try_combine): Fix typo in comment.
7386
7387 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
7388
7389         PR target/64580
7390         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
7391         (rs6000_stack_info): Add assert.
7392         (rs6000_output_savres_externs): New function, split off from...
7393         (rs6000_output_function_prologue): ... here.  Do not call it for
7394         thunks.
7395
7396 2015-01-29  Jeff Law  <law@redhat.com>
7397
7398         PR target/15184
7399         * combine.c (try_combine): If I0 is a memory load and I3 a store
7400         to a related address, increase the "goodness" of doing a 4-insn
7401         combination with I0-I3.
7402         (make_field_assignment): Handle SUBREGs in the ior+and case.
7403
7404 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
7405
7406         PR tree-optimization/64746
7407         * tree-if-conv.c (mask_exists): New function.
7408         (predicate_mem_writes): Save created mask with given size for further
7409         use.
7410         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
7411         (ifcvt_repair_bool_pattern): Collect all statements that are root
7412         of bool pattern and use iterative algorithm to remove multiple uses
7413         of predicates, display number of required iterations.
7414
7415 2015-01-29  Richard Biener  <rguenther@suse.de>
7416
7417         PR tree-optimization/64853
7418         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
7419         stmt will get simulated again.
7420         * tree-ssa-ccp.c (valueize_op_1): Likewise.
7421
7422 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7423
7424         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
7425         return_in_pc.  Remove redundant assignments.
7426         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
7427         (arm_expand_epilogue): Don't compare boolean with true in if condition.
7428
7429 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
7430
7431         * config/i386/i386.c (ix86_mode_after): Make static.
7432
7433 2015-01-29  Richard Biener  <rguenther@suse.de>
7434
7435         PR tree-optimization/64844
7436         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
7437         dump cost model analysis.
7438         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7439         Do not register adjusted load/store costs here.
7440
7441 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7442             Uros Bizjak  <ubizjak@gmail.com>
7443
7444         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
7445         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
7446         using x86_use_pseudo_pic_reg.
7447         * config/i386/i386.c (ix86_conditional_register_usage): Remove
7448         support for fixed PIC register.
7449         (ix86_use_pseudo_pic_reg): Not static any more.
7450
7451 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7452
7453         PR middle-end/64805
7454         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
7455         to avoid error in cgraph node verification.
7456
7457 2015-01-29  Marek Polacek  <polacek@redhat.com>
7458
7459         * doc/standards.texi: Reflect that the default for C is gnu11.
7460
7461 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7462
7463         PR target/64761
7464         * reorg.c (switch_text_sections_between_p): New function.
7465         (relax_delay_slots): Call it when testing if the jump insn
7466         is removable.  Use targetm.can_follow_jump when testing if
7467         the conditional branch can follow an unconditional jump.
7468
7469 2015-01-27  Caroline Tice  <cmtice@google.com>
7470
7471         Committing VTV Cywin/Ming patch for Patrick Wollgast
7472         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
7473         if -fvtable-verify=preinit/std is used.
7474         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
7475         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
7476         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
7477         if -fvtable-verify=preinit/std is used.
7478         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
7479         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
7480         if -fvtable-verify=preinit/std is used.
7481         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
7482         * config/i386/mingw32.h (LIB_SPEC): Likewise.
7483         * varasm.c (assemble_variable): Add code to properly set the comdat
7484         section and name for the .vtable_map_vars section in case the
7485         target is PE or COFF.
7486
7487 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
7488
7489         PR ipa/64801
7490         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
7491         make sane BB profile.
7492         (cgraph_node::expand_thunk): Make sane BB profile.
7493         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
7494         * cgraph.h (init_lowered_empty_function): Update prototype.
7495         * config/i386/i386.c (make_resolver_func): Update call.
7496         * predict.c (gate): Disable branch prediction pass if
7497         profile is already there.
7498
7499 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
7500
7501         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
7502         * opth-gen.awk: Likewise.
7503         * common.opt: Mark flag_fp_contract_mode as Optimization.
7504
7505 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7506
7507         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
7508         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
7509
7510 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
7511
7512         PR target/64659
7513         * config/sh/predicates.md (atomic_arith_operand,
7514         atomic_logical_operand): Remove.
7515         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
7516         (atomic_arith_operand_0): New predicate.
7517         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
7518         Use atomic_arith_operand_0 for input values.
7519         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
7520         atomic_compare_and_swap<mode>_soft_gusa,
7521         atomic_compare_and_swap<mode>_soft_tcb,
7522         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
7523         arith_reg_operand instead of register_operand.
7524         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
7525         atomic_arith_operand_0 for newval input.
7526         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
7527         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
7528         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
7529         arith_reg_operand instead of register_operand.
7530         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
7531         fetchop_predicate_1, fetchop_constraint_1_llcs,
7532         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
7533         fetchop_constraint_1_imask): New code iterator attributes.
7534         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
7535         register_operand.  Use fetchop_predicate_1.
7536         (atomic_fetch_<fetchop_name>si_hard,
7537         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
7538         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
7539         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
7540         and arith_reg_operand instead of register_operand.  Use
7541         fetchop_predicate_1, fetchop_constraint_1_gusa.
7542         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
7543         and arith_reg_operand instead of register_operand.  Use
7544         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
7545         to allow R0 usage.
7546         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
7547         and arith_reg_operand instead of register_operand.  Use
7548         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
7549         to allow R0 usage.
7550         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
7551         register_operand.  Use atomic_logical_operand_1.
7552         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
7553         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
7554         arith_reg_operand instead of register_operand.
7555         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
7556         Use arith_reg_dest and arith_reg_operand instead of register_operand.
7557         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
7558         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
7559         register_operand.  Use fetchop_predicate_1.
7560         (atomic_<fetchop_name>_fetchsi_hard,
7561         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
7562         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7563         fetchop_constraint_1_llcs.
7564         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
7565         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7566         fetchop_constraint_1_gusa.
7567         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
7568         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7569         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
7570         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
7571         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7572         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
7573         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
7574         register_operand.  Use atomic_logical_operand_1.
7575         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
7576         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
7577         arith_reg_operand instead of register_operand.
7578         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
7579         arith_reg_operand instead of register_operand.  Use logical_operand
7580         and K08.  Adjust asm sequence to allow R0 usage.
7581         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
7582         arith_reg_operand instead of register_operand.  Use logical_operand
7583         and K08.
7584
7585 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7586
7587         PR other/63504
7588         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
7589         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
7590         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
7591         only get_full_len HOST_WIDE_INTs from get_val () array rather than
7592         all bits in *val_wide.
7593
7594 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
7595
7596         * varpool.c (tls_model_names): Fix names.
7597         (varpool_node::dump): Dump tls- prefix for tls models.
7598
7599 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
7600             Bernd Schmidt  <bernds@codesourcery.com>
7601             Nathan Sidwell  <nathan@codesourcery.com>
7602
7603         * config/nvptx/mkoffload.c: New file.
7604         * config/nvptx/t-nvptx: Add build rules for it.
7605         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
7606         (extra_programs): Add mkoffload.
7607         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
7608         function.
7609         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
7610
7611 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
7612
7613         PR middle-end/64809
7614         * cfgexpand.c (reorder_operands): Skip debug gimples.
7615
7616 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
7617
7618         PR tree-optimization/64277
7619         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
7620         range info when possible to refine estimation.
7621
7622 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7623
7624         PR tree-optimization/64718
7625         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
7626         be a 16bit unsigned integer when n->range is 16.
7627         (bswap_replace): Convert src to that type if necessary for all bswap
7628         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
7629         set in pass_optimize_bswap::execute ().
7630
7631 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
7632
7633         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
7634         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
7635         integer and floating point variants.
7636         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
7637
7638 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
7639
7640         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
7641         for all vector modes.
7642
7643 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7644
7645         PR bootstrap/64612
7646         * doc/sourcebuild.texi (comdat_group): Document.
7647
7648 2015-01-28  Terry Guo  <terry.guo@arm.com>
7649
7650         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
7651
7652 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
7653
7654         * toplev.c (print_version): Add param "show_global_state", and
7655         only print GGC and plugin information if it is true.
7656         (init_asm_output): Pass in "true" for the new param when calling
7657         print_version.
7658         (process_options): Likewise.
7659         (toplev::main): Likewise.
7660         * toplev.h (print_version): Add new param to decl.
7661
7662 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7663
7664         PR ipa/60871
7665         PR ipa/64139
7666         * tree.c (lookup_binfo_at_offset): New function.
7667         (get_binfo_at_offset): Use it.
7668
7669 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7670
7671         PR ipa/64282
7672         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
7673         on vtable being vtable.
7674
7675 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7676
7677         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
7678         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
7679         -mhotpatch= option.
7680         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
7681         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
7682         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
7683         Renamed.
7684         (s390_hotpatch_trampoline_halfwords_max): Renamed.
7685         (s390_hotpatch_hw_max): New name.
7686         (s390_hotpatch_trampoline_halfwords): Renamed.
7687         (s390_hotpatch_hw_before_label): New name.
7688         (get_hotpatch_attribute): Removed.
7689         (s390_hotpatch_hw_after_label): New name.
7690         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
7691         attribute.
7692         (s390_attribute_table): Ditto.
7693         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
7694         (s390_function_num_hotpatch_hw): New name.
7695         Remove special handling of inline functions and hotpatching.
7696         Return number of nops before and after the function label.
7697         (s390_can_inline_p): Removed.
7698         (s390_asm_output_function_label): Emit a configurable number of nops
7699         after the function label.
7700         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
7701         (TARGET_CAN_INLINE_P) Removed.
7702         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
7703
7704 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7705             Jiong Wang  <jiong.wang@arm.com>
7706
7707         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
7708         of scratch reg.
7709         (cb<optab><mode>1): Likewise.
7710         * config/aarch64/iterators.md (bcond): New define_code_attr.
7711
7712 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7713
7714         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
7715         memory accesses.
7716
7717 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7718
7719         * config/s390/s390.c (s390_register_move_cost): Increase costs for
7720         FPR->GPR moves.
7721
7722 2015-01-27  Richard Biener  <rguenther@suse.de>
7723
7724         * tree-vrp.c (update_value_range): Intersect the range with
7725         old recorded SSA name range information.
7726
7727 2015-01-27  Nick Clifton  <nickc@redhat.com>
7728
7729         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
7730         BC, DE and HL registers directly, not via AX.
7731         When decrementing the stack pointer by a large amount, transfer SP
7732         into AX and perform the subtraction there.
7733         (rl78_expand_epilogue): Perform the inverse of the above
7734         enhancements.
7735
7736 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7737
7738         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
7739
7740 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7741             Yury Gribov  <y.gribov@samsung.com>
7742
7743         PR ubsan/64741
7744         * ubsan.c (ubsan_source_location): Refactor code.
7745         (ubsan_type_descriptor): Update type size. Refactor code.
7746
7747 2015-01-27  Richard Biener  <rguenther@suse.de>
7748
7749         PR tree-optimization/56273
7750         PR tree-optimization/59124
7751         PR tree-optimization/64277
7752         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
7753         from the first VRP pass.
7754
7755 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7756
7757         PR ipa/64776
7758         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
7759         handle the first argument in the same loop as all the other arguments.
7760
7761         PR rtl-optimization/61058
7762         * jump.c (cleanup_barriers): Update basic block boundaries
7763         if BLOCK_FOR_INSN is non-NULL on PREV.
7764
7765 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
7766
7767         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
7768         bounds narrowing, already instrumented calls and calls to
7769         not instrumentable functions.
7770
7771 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7772
7773         PR tree-optimization/64807
7774         * wide-int.cc (wi::divmod_internal): Clear
7775         b_dividend[dividend_blocks_needed].
7776
7777 2015-01-26  DJ Delorie  <dj@redhat.com>
7778
7779         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
7780         volatile memory references.
7781
7782 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
7783
7784         PR target/49263
7785         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
7786         remove_insn.
7787         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
7788         shifts if it already fits into K08.
7789
7790 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7791
7792         PR ipa/64730
7793         * ipa-inline.c (inline_small_functions): Print "unknown" even
7794         if edge->call_stmt is non-NULL, but has builtins or unknown
7795         location.
7796
7797         PR middle-end/64421
7798         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
7799         with asterisk, skip the first character.
7800
7801 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7802
7803         PR target/64806
7804         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
7805         order change.
7806
7807 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
7808
7809         PR target/64795
7810         * config/i386/i386.md (*movdi_internal): Also check operand 0
7811         to determine TYPE_LEA operand.
7812         (*movsi_internal): Ditto.
7813
7814 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7815
7816         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
7817         OPTION_MASK_QUAD_MEMORY_ATOMIC.
7818
7819 2015-01-26  Renlin Li  <renlin.li@arm.com>
7820
7821         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
7822         the comment.
7823         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
7824         for higher part.
7825
7826 2015-01-26  Richard Biener  <rguenther@suse.de>
7827
7828         PR middle-end/64764
7829         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
7830         combining two BIT_AND_EXPR predicates.
7831
7832 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7833
7834         PR bootstrap/64754
7835         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
7836
7837 2015-01-26  Terry Guo  <terry.guo@arm.com>
7838
7839         * config/arm/arm.c (arm_file_start): Update the assignment of
7840         Tag_ABI_HardFP_use.
7841
7842 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
7843
7844         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
7845         pipeline model.
7846         config/arm/arm.md: Include the new Cortex-A57 model.
7847         (generic_sched): Don't use generic_sched when tuning for
7848         Cortex-A57.
7849
7850 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
7851             Uros Bizjak  <ubizjak@gmail.com>
7852
7853         * config/i386/i386.c (get_builtin_code_for_version): Add
7854         support for BMI and BMI2 multiversion functions.
7855
7856 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7857
7858         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
7859         (extract_bit_field): Likewise.
7860         (extract_low_bits): Likewise.
7861         (expand_mult): Likewise.
7862         (expand_mult_highpart_adjust): Likewise.
7863
7864 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7865
7866         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
7867         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
7868         * config/i386/i386.c (processor_model): Add
7869         M_INTEL_COREI7_BROADWELL.
7870         (arch_names_table): Add "broadwell".
7871
7872 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
7873
7874         PR target/49263
7875         PR target/53987
7876         PR target/64345
7877         PR target/59533
7878         PR target/52933
7879         PR target/54236
7880         PR target/51244
7881         * config/sh/sh-protos.h
7882         (sh_extending_set_of_reg::can_use_as_unextended_reg,
7883         sh_extending_set_of_reg::use_as_unextended_reg,
7884         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
7885         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
7886         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
7887         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
7888         (sh_treg_insns): New class.
7889         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
7890         (scope_counter): New class.
7891         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
7892         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
7893         sh_extending_set_of_reg::can_use_as_unextended_reg,
7894         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
7895         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
7896         sh_split_treg_set_expr): New functions.
7897         (addsubcosts): Handle treg_set_expr.
7898         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
7899         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
7900         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
7901         (sh_insn_operands_modified_between_p): Make non-static.
7902         * config/sh/predicates.md (zero_extend_movu_operand): Allow
7903         simple_mem_operand in addition to displacement_mem_operand.
7904         (zero_extend_operand): Don't allow zero_extend_movu_operand.
7905         (treg_set_expr, treg_set_expr_not_const01,
7906         arith_reg_or_treg_set_expr): New predicates.
7907         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
7908         arith_or_int_operand instead of logical_operand.  Convert to
7909         insn_and_split.  Try to optimize constant operand in splitter.
7910         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
7911         (*tstqi_t_zero): Delete.
7912         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
7913         (tstsi_t_and_not): Delete.
7914         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
7915         Convert to insn_and_split.
7916         (unnamed split, tstsi_t_zero_extract_xor,
7917         tstsi_t_zero_extract_subreg_xor_little,
7918         tstsi_t_zero_extract_subreg_xor_big): Delete.
7919         (*tstsi_t_shift_mask): New insn_and_split.
7920         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
7921         to recombine with surrounding insns when splitting.
7922         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
7923         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
7924         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
7925         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
7926         (*cbranch_div0s: Delete.
7927         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7928         Try to recombine with surrounding insns when splitting.  Add operand
7929         order variants.
7930         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
7931         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
7932         *addc_r_r_msb, *addc_2r_msb): Delete.
7933         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
7934         order variant.
7935         (*addc_negreg_t): New insn_and_split.
7936         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7937         Try to recombine with surrounding insns when splitting.
7938         Add operand order variants.
7939         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
7940         insn_and_split patterns.
7941         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
7942         surrounding insns when splitting.
7943         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
7944         (*rotcl): Likewise.  Add zero_extract variant.
7945         (*ashrsi2_31): New insn_and_split.
7946         (*negc): Convert to insn_and_split.  Use treg_set_expr.
7947         (*zero_extend<mode>si2_disp_mem): Update comment.
7948         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
7949         condition.
7950         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
7951         with surrounding insns when splitting.
7952         (any_treg_expr_to_reg): New insn_and_split.
7953         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
7954         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
7955         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
7956         *zero_extract_2): New single bit zero extract patterns.
7957         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
7958         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
7959         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
7960         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
7961         set destination.
7962         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
7963         register_operand for set source.
7964
7965 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
7966
7967         * i386.opt (prefetch_sse): New targetsave.
7968         * i386.c (ix86_function_specific_save): Save prefetch_sse.
7969         (ix86_function_specific_restore): Restore prefetch_sse and initialize
7970         ix86_cost/ix86_tune_cost.
7971
7972 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
7973
7974         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
7975         Support the JIT by using 0 as the language type.
7976
7977 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
7978
7979         PR target/64317
7980         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
7981         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
7982         (mark_regno_live, process_bb_lives): Pass new parameter value to
7983         make_hard_regno_born.
7984
7985 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
7986
7987         PR rtl-optimization/63637
7988         PR rtl-optimization/60663
7989         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
7990         if elt->cost is MAX_COST for ASM_OPERANDS.
7991         (find_sets_in_insn): Fix up comment typo.
7992         (cse_insn): Don't set src_volatile for all non-volatile
7993         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
7994         or with "memory" clobber.  Set elt->cost to MAX_COST
7995         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
7996         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
7997
7998 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
7999
8000         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
8001         alternative 1.
8002
8003 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
8004
8005         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
8006         libgcc/config/i386/elf-lib.h.
8007
8008 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
8009
8010         PR driver/64737
8011         * gcc.c (print_configuration): Don't print a blank line at the end
8012         here...
8013         (run_attempt): ... but here unstead.
8014
8015         PR middle-end/64734
8016         * omp-low.c (scan_sharing_clauses): Don't ignore
8017         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
8018         on target data/update constructs.
8019
8020 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8021
8022         PR target/50928
8023         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
8024         (DEBUG_RELOAD): Removed define.
8025         (m32c_limit_reload_class): Enable traces with if DEBUG0.
8026         (m32c_function_arg): Added a type cast.
8027         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
8028         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
8029         * config/m32c/bitops.md (andqi3_16): Likewise.
8030         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
8031         (push_a01_l): Likewise.
8032
8033 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
8034
8035         PR jit/64721
8036         * main.c (main): Construct toplev instances with init_signals=true.
8037         * toplev.c (general_init): Add param "init_signals", and use it to
8038         conditionalize the calls to signal and host_hooks.extra_signals.
8039         (toplev::toplev): Add param "init_signals".
8040         (toplev::main): When invoking general_init, pass m_init_signals
8041         to control whether signal-handlers are installed.
8042         * toplev.h (toplev::toplev): Add param "init_signals".
8043         (toplev::m_init_signals): New field.
8044
8045 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
8046
8047         PR jit/64722
8048         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
8049         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
8050         latter may be affected by the former (e.g. on i686).
8051
8052 2015-01-23  Martin Liska  <mliska@suse.cz>
8053
8054         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
8055         false positive during profiledbootstrap.
8056
8057 2015-01-23  Tom de Vries  <tom@codesourcery.com>
8058
8059         PR libgomp/64672
8060         * lto-opts.c (lto_write_options): Output non-explicit conservative
8061         -fno-openacc.
8062         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
8063         (append_compiler_options): Pass -fopenacc through.
8064
8065 2015-01-23  Tom de Vries  <tom@codesourcery.com>
8066
8067         PR libgomp/64707
8068         * lto-opts.c (lto_write_options): Output non-explicit conservative
8069         -fno-openmp.
8070         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
8071         (append_compiler_options): Pass -fopenmp through.
8072
8073 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
8074
8075         PR debug/64511
8076         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
8077         GTY markup.
8078
8079         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
8080         * diagnostic.def (DK_ICE_NOBT): New kind.
8081         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
8082         like DK_ICE, but never print backtrace.
8083         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
8084         (internal_error_no_backtrace): New function.
8085         * gcc.c (execute): Use internal_error_no_backtrace instead of
8086         internal_error.
8087
8088 2015-01-22  Jeff Law  <law@redhat.com>
8089
8090         PR target/52076
8091         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
8092         improve code density for small immediate to memory case.
8093         (insv): Better handle bitfield assignments when the field is
8094         being set to all ones.
8095         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
8096         operand predicate.
8097
8098 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8099             Jakub Jelinek  <jakub@redhat.com>
8100
8101         PR middle-end/64729
8102         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
8103         for !TARGET_LIBC_PROVIDES_SSP version and
8104         -fstack-protector-{all,strong,explicit} otherwise.
8105         * config/freebsd.h (LINK_SSP_SPEC): Handle
8106         -fstack-protector-{strong,explicit}.
8107
8108 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
8109             H.J. Lu  <hongjiu.lu@intel.com>
8110
8111         PR ipa/64694
8112         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
8113         heap.
8114
8115 2015-01-22  Wei Mi  <wmi@google.com>
8116
8117         PR rtl-optimization/64557
8118         * dse.c (record_store): Call get_addr for mem_addr.
8119         (check_mem_read_rtx): Likewise.
8120
8121 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8122
8123         * fold-const.c (const_binop): Add early return for non-tcc_binary.
8124
8125 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
8126
8127         * toplev.c (init_local_tick): Process the failure when read
8128         fails for random_seed.
8129
8130         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
8131         'pretty_name' to avoid memory overflow.
8132
8133 2015-01-22  Richard Biener  <rguenther@suse.de>
8134
8135         PR middle-end/64728
8136         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
8137         abnormal coalescing on undefined SSA names.
8138
8139 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
8140
8141         PR target/64688
8142         PR target/64477
8143         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
8144         for alternative 3.
8145         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
8146
8147 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
8148
8149         PR middle-end/63325
8150         * fold-const.c (fold_checksum_tree): Don't include value of
8151         expr->decl_with_vis.symtab_node in the checksum.
8152
8153 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8154
8155         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
8156
8157 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
8158
8159         PR driver/64690
8160         * gcc.c (insert_comments): New function.
8161         (try_generate_repro): Call it.
8162         (append_text): Removed.
8163
8164 2015-01-22  Richard Biener  <rguenther@suse.de>
8165
8166         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
8167         with IL incompatible options.  Properly honor user optimize
8168         attributes.
8169
8170 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
8171
8172         PR rtl-optimization/64682
8173         * combine.c (distribute_notes): When moving a death note for
8174         a register that is set in the new I2, make sure to put it
8175         before that new I2.
8176
8177 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
8178
8179         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
8180         not TARGET_DEFAULT.
8181
8182 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
8183
8184         PR debug/64511
8185         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
8186         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
8187         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
8188
8189         PR sanitizer/64706
8190         * doc/invoke.texi (-fsanitize=vptr): Document.
8191
8192         PR rtl-optimization/62078
8193         * dse.c: Include cfgcleanup.h.
8194         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
8195         anything call purge_all_dead_edges and cleanup_cfg at the end
8196         of the pass.
8197
8198 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
8199
8200         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
8201         edges.
8202
8203 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8204
8205         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
8206         decl attribute.
8207
8208 2015-01-21  David Sherwood  <david.sherwood@arm.com>
8209             Tejas Belagod <Tejas.Belagod@arm.com>
8210
8211         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
8212         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
8213         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
8214         Removed.
8215
8216 2015-01-21  David Sherwood  <david.sherwood@arm.com>
8217             Tejas Belagod <Tejas.Belagod@arm.com>
8218
8219         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
8220         (aarch64_reverse_mask): New decls.
8221         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
8222         (insn_count): New mode_attr.
8223         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
8224         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
8225         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
8226         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
8227         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
8228         (aarch64_simd_st4): New patterns.
8229         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
8230         (aarch64_reverse_mask): New functions.
8231
8232 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
8233
8234         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
8235         Declare.
8236         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
8237         addressing modes for BE.
8238         (aarch64_print_operand): Add 'R' specifier.
8239         (aarch64_simd_disambiguate_copy): Delete.
8240         (aarch64_simd_emit_reg_reg_move): New function.
8241         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
8242         in define_splits for structural moves.
8243         (mov<mode>): Use less restrictive predicates.
8244         (*aarch64_mov<mode>): Simplify and only allow for LE.
8245         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
8246
8247 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
8248
8249         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
8250
8251 2015-01-21  Richard Henderson  <rth@redhat.com>
8252
8253         PR target/64669
8254         * ccmp.c (used_in_cond_stmt_p): Remove.
8255         (expand_ccmp_expr): Don't use it.
8256
8257 2015-01-21  Nick Clifton  <nickc@redhat.com>
8258
8259         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
8260         PARALLELs.
8261
8262 2015-01-21  Richard Biener  <rguenther@suse.de>
8263
8264         PR middle-end/64313
8265         * tree-core.h (builtin_info, builtin_info_type): Turn from
8266         an object with two arrays into an array of an object with
8267         decl and two flags, implicit_p and declared_p.
8268         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
8269         set_builtin_decl, set_builtin_decl_implicit_p,
8270         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
8271         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
8272         * builtins.c (builtin_info): Adjust.
8273         * gimplify.c (gimplify_addr_expr): References to builtins
8274         that have been declared by the user makes them eligible for
8275         use by the compiler.  Call set_builtin_decl_implicit_p on them.
8276
8277 2015-01-20  Jeff Law  <law@redhat.com>
8278
8279         PR target/59946
8280         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
8281         allow pc-relative addresses in operand predicates or constraints.
8282
8283 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
8284
8285         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
8286         neon on aarch32 processors for stringops.
8287
8288 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8289
8290         PR ipa/63576
8291         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
8292
8293 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8294
8295         PR lto/45375
8296         * ipa-inline.c: Include lto-streamer.h
8297         (report_inline_failed_reason): Output source file differences and
8298         flags on optimization/target node mismatch.
8299         (can_inline_edge_p): Consider caller to be the outer inline function;
8300         be less restrictive about matching opimize and optimize_size attributes.
8301         (inline_account_function_p): Break out from ...
8302         (inline_small_functions): ... here.
8303         * ipa-inline-transform.c (clone_inlined_nodes): Use
8304         inline_account_function_p.
8305         (inline_call): Use optimize attribution; use inline_account_function_p.
8306         (inline_transform): Use opt_for_fn.
8307         * ipa-inline.h (inline_account_function_p): Declare.
8308
8309 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
8310
8311         PR debug/64663
8312         * dwarf2out.c (decl_piece_node): Don't put bitsize into
8313         mode if bitsize <= 0.
8314         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
8315         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
8316         sizes and positions.
8317
8318 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
8319
8320         * config/nios2/nios2.c (nios2_asm_file_end): Implement
8321         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
8322         needed.
8323         (TARGET_ASM_FILE_END): Define.
8324
8325 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8326
8327         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
8328         (struct tune_params): Use the enum.
8329         * arm.c (arm_*_tune): Update.
8330         (arm_option_override): Update.
8331
8332 2015-01-20  Richard Biener  <rguenther@suse.de>
8333
8334         PR ipa/64684
8335         * ipa-reference.c (add_static_var): Inline ...
8336         (analyze_function): ... here after splitting out from ...
8337         (is_proper_for_analysis): ... this.
8338
8339 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
8340
8341         PR target/64149
8342         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
8343         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
8344         replace the conditional with it's true branch.
8345         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
8346         (arm_lra_p): Remove.
8347
8348 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
8349
8350         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
8351
8352 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8353
8354         * config/tilegx/mul-tables.c: Move symtab.h include after
8355         coretypes.h include.
8356         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
8357         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
8358         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
8359         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
8360         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
8361
8362 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
8363
8364         PR bootstrap/64676
8365         Revert:
8366         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
8367
8368         PR rtl-optimization/64081
8369         * loop-iv.c (def_pred_latch_p): New function.
8370         (latch_dominating_def): Allow specific cases with non-single
8371         definitions.
8372         (iv_get_reaching_def): Likewise.
8373         (check_complex_exit_p): New function.
8374         (check_simple_exit): Use check_complex_exit_p to allow certain cases
8375         with exits not executing on any iteration.
8376
8377 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8378
8379         PR lto/45375
8380         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
8381         to set branch cost.
8382
8383 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8384
8385         PR lto/45375
8386         * i386.c (gate): Check flag_expensive_optimizations and
8387         optimize_size.
8388         (ix86_option_override_internal): Drop optimize_size condition
8389         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
8390         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
8391         MASK_PREFER_AVX128.
8392         (ix86_avx256_split_vector_move_misalign,
8393         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
8394         * sse.md (all uses of TARGET_PREFER_AVX128): Add
8395         optimize_insn_for_speed_p check.
8396
8397 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
8398
8399         * config/mips/mips.h (FP_ASM_SPEC): New define.
8400         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
8401         instead.
8402
8403 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
8404
8405         PR target/53988
8406         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
8407         nullptr for insn when reaching the first insn.
8408         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
8409         (sh_insn_operands_modified_between_p): Add nullptr check.
8410         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
8411         sign extending mem load if the insn contains any UNSPEC or
8412         UNSPEC_VOLATILE.
8413
8414 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8415
8416         * params.def (inline-unit-growth): Drop to 15%.
8417         * invoke.texi (inline-unit-growth): Document change.
8418
8419 2015-01-19  Martin Liska  <mliska@suse.cz>
8420
8421         PR ipa/64668
8422         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
8423         function for second argument of OBJ_TYPE_REF.
8424
8425 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8426
8427         PR ipa/64218
8428         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
8429         whether function is an alias.
8430
8431 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8432
8433         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
8434         cases.
8435
8436 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
8437
8438         PR rtl-optimization/64671
8439         * lra-remat.c (operand_to_remat): Don't consider jump and call
8440         insns.
8441
8442 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
8443
8444         PR target/59828
8445         * config/rs6000/default64.h: Include rs6000-cpus.def.
8446         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
8447         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
8448         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
8449         and POWER8.
8450         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
8451         POWER8.
8452         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
8453         pseudo-op to specify assembler dialect.
8454
8455 2015-01-19  Martin Liska  <mliska@suse.cz>
8456
8457         PR ipa/64664
8458         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
8459         Handle safe potentially removed nodes during filtering.
8460
8461 2015-01-19  Martin Liska  <mliska@suse.cz>
8462
8463         * doc/extend.texi (no_icf): Add new attribute description.
8464         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
8465         where the pass attempts to merge a function with no_icf attribute.
8466
8467 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8468
8469         PR target/64532
8470         * doc/md.texi (ARM Options): Document register constraints.
8471
8472 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
8473             Andrew Pinski  <apinski@cavium.com>
8474
8475         PR target/64304
8476         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
8477         (ashl<mode>3): Don't expand if operands[2] is not constant.
8478
8479 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8480
8481         PR target/64448
8482         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
8483         Match xor-and-xor RTL pattern.
8484
8485 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
8486
8487         PR rtl-optimization/64081
8488         * loop-iv.c (def_pred_latch_p): New function.
8489         (latch_dominating_def): Allow specific cases with non-single
8490         definitions.
8491         (iv_get_reaching_def): Likewise.
8492         (check_complex_exit_p): New function.
8493         (check_simple_exit): Use check_complex_exit_p to allow certain cases
8494         with exits not executing on any iteration.
8495
8496 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
8497
8498         * common.opt (fgraphite): Fix a typo.
8499
8500 2015-01-19  Felix Yang  <felix.yang@huawei.com>
8501
8502         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
8503         pattern.
8504         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
8505         uminp, smax_nanp, smin_nanp): New builtins.
8506         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
8507         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
8508         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
8509         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
8510         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
8511         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
8512         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
8513         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
8514         vpminnms_f32): Rewrite using builtin functions.
8515
8516 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
8517
8518         PR libgomp/64625
8519         * omp-low.c (offload_symbol_decl): Remove variable.
8520         (get_offload_symbol_decl): Remove function.
8521         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
8522         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
8523         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
8524         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
8525         BUILT_IN_GOACC_UPDATE don't pass it at all.
8526
8527 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
8528
8529         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
8530         callers.
8531
8532 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
8533
8534         * ipa-chkp.c (chkp_produce_thunks): Add early param
8535         to split thunks production into two passes.  Keep
8536         'always_inline' function bodies after the first pass.
8537         (pass_data_ipa_chkp_early_produce_thunks): New.
8538         (pass_ipa_chkp_early_produce_thunks): New.
8539         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
8540         chkp_produce_thunks signature.
8541         (make_pass_ipa_chkp_early_produce_thunks): New.
8542         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
8543         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
8544         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
8545
8546 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8547
8548         * cgraph.c (cgraph_node::dump): Dump profile flags.
8549
8550 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
8551
8552         PR target/64652
8553         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
8554         reg appear first in the parallel.
8555
8556 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8557
8558         * ipa-reference.c (set_reference_optimization_summary,
8559         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
8560         disabled.
8561         (ignore_module_statics): New static var.
8562         (propagate_bits): If ipa-reference is disabled, do not look into local
8563         properties.
8564         (analyze_function): Disable analysis when ipa_reference is disabled.
8565         (generate_summary): Do not dump when reference is disabled;
8566         collect vars accessed from functions with ipa-reference disabled.
8567         (get_read_write_all_from_node): When ipa-reference is disabled, use the
8568         node flags.
8569         (gate): Enable for LTO.
8570         (ignore_edge_p): New function.
8571         (propagate): Skip functions w/o ipa-reference analysis.
8572         * optc-save-gen.awk: Handle optimize_debug correctly.
8573         * opth-gen.awk: Likewise.
8574         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
8575         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
8576         fira-share-save-slots, fira-share-spill-slots,
8577         fmodulo-sched-allow-regmoves, fpartial-inlining,
8578         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
8579         ftracer, ftree-parallelize-loops, fassociative-math,
8580         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
8581         Optimization
8582         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
8583         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
8584         Optimization.
8585         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
8586         Fix for IPA.
8587
8588 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8589
8590         PR ipa/64378
8591         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
8592         flag correctly.
8593         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
8594
8595 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
8596
8597         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
8598         Remove duplicate option listings.
8599
8600 2015-01-18  Felix Yang  <felix.yang@huawei.com>
8601
8602         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
8603         (autofdo_source_profile::get_callsite_total_count,
8604         function_instance::get_function_instance_by_decl,
8605         string_table::get_index, string_table::get_index_by_decl,
8606         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
8607         Fix comment typos. Reformatting and minor code rearrangement.
8608
8609 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8610
8611         * config/rs6000/rs6000.md (probe_stack): Delete.
8612         (probe_stack_address): New.
8613
8614 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8615
8616         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
8617         to test for 32-bit ABIs, not !TARGET_POWERPC64.
8618
8619 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8620
8621         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
8622         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
8623         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
8624         snafu.
8625         (rs6000_libcall_value): Use the new function.
8626
8627 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
8628
8629         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
8630
8631 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8632
8633         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
8634         implement a more precise life analysis for it during backward scan.
8635
8636 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
8637
8638         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
8639
8640 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
8641
8642         PR rtl-optimization/52773
8643         * calls.c (emit_library_call_value): When pushing arguments use
8644         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
8645         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
8646         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
8647
8648 2015-01-17  Jeff Law  <law@redhat.com>
8649
8650         PR rtl-optimization/32790
8651         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
8652         not ZERO_EXTEND in SET_DESTs.
8653
8654 2015-01-17  Alan Modra  <amodra@gmail.com>
8655
8656         * cprop.c (do_local_cprop): Revert last change.
8657
8658 2015-01-16  DJ Delorie  <dj@redhat.com>
8659             Nick Clifton  <nickc@redhat.com>
8660
8661         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
8662         (addhi3_real): Likewise.  Fix [HL+0] syntax.
8663         (subqi3_real): Likewise.
8664         (subhi3_real): Likewise.
8665         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
8666         (cbranchhi4_real): Likewise.
8667         (cbranchhi4_real_inverted): Likewise.
8668         (cbranchsi4_real_lt): Likewise.
8669         (cbranchsi4_real_ge): Likewise.
8670         (cbranchsi4_real_ge): Likewise.
8671         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
8672         (sub<mode>3_virt): Likewise.
8673         (cbranchqi4_virt): Likewise.
8674         (cbranchhi4_virt): Likewise.
8675         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
8676         always use '[reg+imm]' even when imm is zero.
8677         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
8678         (rl78_general_operand): New.
8679         (rl78_nonimmediate_operand): New.
8680         (rl78_nonfar_operand): Use them.
8681         (rl78_nonfar_nonimm_operand): Likewise.
8682         (rl78_stack_based_mem): Fix.
8683         * config/rl78/constraints.md (Ibqi): New.
8684         (IBqi): New.
8685         (Wsa): New.
8686         (Wsf): New.
8687         (Cs1): Fix.
8688         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
8689         (iorqi3): Likewise.
8690         (xorqi3): Likewise.
8691         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
8692
8693         * config/rl78/constrains (Qs8): New constraint.
8694         * config/rl78/rl78.c (rl78_flags_already_set): New function.
8695         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
8696         * config/rl78/rl78-real.md (update_Z): New attribute.
8697         Update patterns to set it.
8698         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
8699         shorter compare and branch sequence can be used.
8700         (cbranchhi4_real): Likewise.
8701         (cbranchhi4_real_inverted): Likewise.
8702
8703         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
8704         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
8705         address space.
8706         * config/rl78/rl78.c (rl78_get_name_encoding): New.
8707         (rl78_option_override): Allow -mes0 only if C.
8708         (characterize_address): Support subregs of symbol_refs.
8709         (rl78_addr_space_address_mode): Move.  Add __near.
8710         (rl78_far_p): Likewise.
8711         (rl78_addr_space_pointer_mode): Likewise.
8712         (rl78_as_legitimate_address): Likewise.
8713         (rl78_addr_space_subset_p): Likewise.
8714         (rl78_addr_space_convert): Likewise.
8715         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
8716         symbols with -mes0.
8717         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
8718         addressing.
8719         (rl78_alloc_physical_registers_op1): Change logic to prefer
8720         symbol[BC] addressing.
8721         (frodata_section): New.
8722         (rl78_asm_init_sections): Initialize it.
8723         (rl78_select_section): Put __far readonly symbols in .frodata.
8724         (rl78_make_type_far): New.
8725         (rl78_insert_attributes): Force all readonly symbols to be
8726         __far when -mes0.
8727         (rl78_asm_out_integer): New.
8728         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
8729         * config/rl78/rl78.opt (-mes0): New.
8730
8731         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
8732         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8733         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
8734         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
8735         (rl78_saddr_p): New.
8736         (rl78_output_aligned_common): New.
8737         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
8738         (rl78_handle_saddr_attribute): New.
8739         (rl78_handle_naked_attribute): New.
8740         (rl78_attribute_table): Add saddr.
8741         (rl78_print_operand_1): Don't print '!' on saddr operands.
8742         (rl78_print_operand_1): Strip encodings.
8743         (rl78_sfr_p): New.
8744         (rl78_strip_name_encoding): New.
8745         (rl78_attrlist_to_encoding): New.
8746         (rl78_encode_section_info): New.
8747         (rl78_asm_init_sections): New.
8748         (rl78_select_section): New.
8749         (rl78_output_labelref): New.
8750         (rl78_output_aligned_common): New.
8751         (rl78_asm_out_integer): New.
8752         (rl78_asm_ctor_dtor): New.
8753         (rl78_asm_constructor): New.
8754         (rl78_asm_destructor): New.
8755
8756         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
8757         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
8758         (transcode_memory_rtx): Update.
8759         (rl78_expand_epilogue): Use A_REG instead of 0.
8760
8761 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8762
8763         * config/arm/arm-protos.h (struct tune_params): New field
8764         sched_autopref_queue_depth.
8765         * config/arm/arm.c (sched-int.h): Include header.
8766         (arm_first_cycle_multipass_dfa_lookahead_guard,)
8767         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
8768         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
8769         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
8770         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
8771         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
8772         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
8773         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
8774         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
8775         * config/arm/t-arm (arm.o): Update.
8776         * haifa-sched.c (update_insn_after_change): Update.
8777         (rank_for_schedule): Use auto-prefetcher model, if requested.
8778         (autopref_multipass_init): New static function.
8779         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
8780         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
8781         variable for debug dumps.
8782         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
8783         (autopref_multipass_dfa_lookahead_guard): New global function that
8784         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
8785         (init_h_i_d): Update.
8786         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
8787         * sched-int.h (enum autopref_multipass_data_status): New const enum.
8788         (autopref_multipass_data_): Structure for auto-prefetcher data.
8789         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
8790         (struct _haifa_insn_data:autopref_multipass_data): New field.
8791         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
8792         (autopref_multipass_dfa_lookahead_guard): Declare.
8793
8794 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8795
8796         * rtlanal.c (get_base_term): Handle SCRATCH.
8797
8798 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8799
8800         * config/aarch64/aarch64.c
8801         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
8802         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8803         * config/arm/arm.c
8804         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
8805         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8806
8807 2015-01-17  Alan Modra  <amodra@gmail.com>
8808
8809         * cprop.c (do_local_cprop): Disallow replacement of fixed
8810         hard registers.
8811
8812 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8813
8814         PR target/62066
8815         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
8816         early return 0.
8817
8818 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8819
8820         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
8821         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
8822
8823 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8824
8825         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
8826         * config/arm/thumb1.md: ... Here.
8827
8828 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8829
8830         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
8831         TImode for TARGET_32BIT.
8832
8833 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8834
8835         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
8836         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
8837         as ...
8838         (rs6000_abi_word_mode): New function.
8839
8840 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8841
8842         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
8843         instead of UNITS_PER_WORD to describe the size of stack slots.
8844
8845 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8846
8847         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
8848         as rs6000_promote_function_mode.  Move comment to there.
8849         (rs6000_promote_function_mode): New function.
8850
8851 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8852
8853         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
8854         -mpowerpc64 is active.
8855
8856 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8857
8858         PR middle-end/64353
8859         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
8860         virtuals on start.
8861
8862 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8863
8864         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
8865         introduced in revision 219724.
8866
8867 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8868             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8869
8870         PR target/64263
8871         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
8872         destination is not a GP reg.
8873         (*movdi_aarch64): Likewise.
8874
8875 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
8876
8877         PR target/64623
8878         * config/rs6000/default64.h: Revert ISA change.
8879
8880 2015-01-16  Richard Biener  <rguenther@suse.de>
8881
8882         PR middle-end/64614
8883         * tree-ssa-uninit.c: Include tree-cfg.h.
8884         (MAX_SWITCH_CASES): New define.
8885         (convert_control_dep_chain_into_preds): Handle switch statements.
8886         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
8887         (normalize_one_pred_1): Do not split bit-manipulations.
8888         Record (x & CST).
8889
8890 2015-01-16  Richard Biener  <rguenther@suse.de>
8891
8892         PR tree-optimization/64568
8893         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
8894         complex load rewriting for TARGET_MEM_REFs.
8895
8896 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
8897
8898         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
8899
8900 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
8901
8902         PR target/64149
8903         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
8904         variable.
8905         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
8906         (aarch64_lra_p): Remove.
8907
8908 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8909
8910         PR target/64363
8911         * ipa-chkp.h (chkp_instrumentable_p): New.
8912         * ipa-chkp.c: Include tree-inline.h.
8913         (chkp_instrumentable_p): New.
8914         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
8915         Fix processing of not instrumentable functions.
8916         (chkp_versioning): Use chkp_instrumentable_p. Warn about
8917         not instrumentable functions.
8918         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
8919         chkp_instrumentable_p.
8920         * tree-inline.h (copy_forbidden): New.
8921         * tree-inline.c (copy_forbidden): Not static anymore.
8922
8923 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8924
8925         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
8926         ptr1, ptr2 unused.
8927
8928 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8929
8930         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
8931         type OP_OUT to OP_INOUT.
8932
8933 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8934
8935         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
8936         (high x) y) to y if x and y have the same base.
8937
8938 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8939
8940         * config/arm/cortex-a57.md: New.
8941         * config/aarch64/aarch64.md: Include it.
8942         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
8943         * config/aarch64/aarch64-tune.md: Regenerate.
8944
8945 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8946
8947         PR target/64015
8948         * ccmp.c (expand_ccmp_next): New function.
8949         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
8950         and compare insn sequence.
8951         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
8952         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
8953         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
8954         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
8955         (*ccmp_ior): Changed to ccmp_ior<mode>.
8956         (cmp<mode>): New pattern.
8957         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
8958         parameters.
8959         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
8960
8961 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
8962
8963         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
8964         _mm256_bsrli_epi128): New.
8965         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
8966
8967 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
8968
8969         * expmed.c (store_bit_field_using_insv): Improve warning message.
8970         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
8971
8972 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
8973
8974         PR rtl-optimization/64011
8975         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
8976         there is partial overflow.
8977
8978 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8979
8980         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
8981         prototype.
8982         (nds32_expand_epilogue_v3pop): Likewise.
8983         * config/nds32/nds32.md (sibcall): Define this for sibling call
8984         optimization.
8985         (sibcall_register): Likewise.
8986         (sibcall_immediate): Likewise.
8987         (sibcall_value): Likewise.
8988         (sibcall_value_register): Likewise.
8989         (sibcall_value_immediate): Likewise.
8990         (sibcall_epilogue): Likewise.
8991         (epilogue): Pass false to indicate this is not a sibcall epilogue.
8992         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
8993         (nds32_expand_epilogue_v3pop): Likewise.
8994
8995 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8996
8997         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
8998         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
8999         (return_internal): New.
9000         (return): Define this named pattern.
9001         (simple_return): Define this named pattern.
9002         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
9003         pattern instead of unspec_volatile_func_return.
9004         (nds32_expand_epilogue_v3pop): Likewise.
9005         (nds32_can_use_return_insn): New function.
9006
9007 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9008
9009         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
9010         * config/nds32/nds32.md (pop25return): New.
9011         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
9012         pop25return pattern.
9013
9014 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9015
9016         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
9017         -mforbid-fp-as-gp, and -mex9 options.
9018
9019 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9020
9021         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
9022         remove -mgp-direct option.
9023
9024 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9025
9026         * doc/invoke.texi (--param early-inlining-insns): Update default value.
9027         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
9028
9029 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9030
9031         * ipa-inline.c (inline_small_functions): Work around hints
9032         cache issue.
9033
9034 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
9035
9036         PR target/59710
9037         * doc/invoke.texi (Option Summary): Document new Nios II
9038         -mgpopt= syntax.
9039         (Nios II Options): Likewise.
9040         * config/nios2/nios2.opt: Add -mgpopt= option support.
9041         Modify existing -mgpopt and -mno-gpopt options to be aliases.
9042         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
9043         * config/nios2/nios2.c (nios2_option_override): Adjust
9044         -mgpopt defaulting.
9045         (nios2_in_small_data_p): Return true for explicit small data
9046         sections even with -G0.
9047         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
9048         option choices.
9049
9050 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9051
9052         PR ipa/64612
9053         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
9054         of comdat locals.
9055         (inline_call): Fix removal of aliases.
9056
9057 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
9058
9059         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
9060         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
9061         * opts.c (common_handle_option): Add -fsanitize=vptr.
9062         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
9063         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
9064         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
9065         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
9066         (ubsan_expand_vptr_ifn): New prototype.
9067         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
9068         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
9069         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
9070         expand_LOOP_VECTORIZED): Make argument nameless, remove
9071         ATTRIBUTE_UNUSED.
9072         (expand_UBSAN_VPTR): New function.
9073         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
9074         in fn spec.
9075         (UBSAN_VPTR): New internal function.
9076         * sanopt.c (tree_map_traits): Renamed to ...
9077         (sanopt_tree_map_traits): ... this.
9078         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
9079         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
9080         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
9081         (maybe_optimize_ubsan_vptr_ifn): New function.
9082         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
9083         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
9084         -fsanitize=vptr.
9085         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
9086         internal calls like pure functions for aliasing, even when they
9087         have other side-effects that prevent making them ECF_PURE.
9088         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
9089         (ubsan_expand_vptr_ifn): New function.
9090
9091 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
9092
9093         PR rtl-optimization/64110
9094         * stmt.c (parse_output_constraint): Process '^' and '$'.
9095         (parse_input_constraint): Ditto.
9096         * lra-constraints.c (process_alt_operands): Process the new
9097         constraints.
9098         * ira-costs.c (record_reg_classes): Process the new constraint
9099         '^'.
9100         * genoutput.c (indep_constraints): Add '^' and '$'.
9101         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
9102         * doc/md.texi: Add description of the new constraints.
9103
9104 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
9105             Bernd Schmidt  <bernds@codesourcery.com>
9106             Cesar Philippidis  <cesar@codesourcery.com>
9107             James Norris  <jnorris@codesourcery.com>
9108             Tom de Vries  <tom@codesourcery.com>
9109             Ilmir Usmanov  <i.usmanov@samsung.com>
9110             Dmitry Bocharnikov  <dmitry.b@samsung.com>
9111             Evgeny Gavrin  <e.gavrin@samsung.com>
9112             Jakub Jelinek  <jakub@redhat.com>
9113
9114         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
9115         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
9116         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
9117         New function types.
9118         * builtins.c: Include "gomp-constants.h".
9119         (expand_builtin_acc_on_device): New function.
9120         (expand_builtin, is_inexpensive_builtin): Handle
9121         BUILT_IN_ACC_ON_DEVICE.
9122         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
9123         New macros.
9124         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
9125         flag_openmp.
9126         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
9127         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
9128         i386/intelmic-offload.h.
9129         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
9130         to libgomp and its dependencies.
9131         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
9132         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9133         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9134         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9135         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9136         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9137         * doc/generic.texi: Update for OpenACC changes.
9138         * doc/gimple.texi: Likewise.
9139         * doc/invoke.texi: Likewise.
9140         * doc/sourcebuild.texi: Likewise.
9141         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
9142         GF_OMP_FOR_KIND_OACC_LOOP.
9143         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
9144         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
9145         GF_OMP_TARGET_KIND_OACC_UPDATE,
9146         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
9147         Dump more data.
9148         * gimple.c: Update comments for OpenACC changes.
9149         * gimple.def: Likewise.
9150         * gimple.h: Likewise.
9151         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
9152         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
9153         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
9154         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
9155         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
9156         appropriate place.
9157         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
9158         * gimplify.c: Include "gomp-constants.h".
9159         Update comments for OpenACC changes.
9160         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
9161         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
9162         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
9163         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
9164         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
9165         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
9166         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
9167         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
9168         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
9169         OMP_CLAUSE_SEQ.
9170         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
9171         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
9172         OMP_CLAUSE_SET_MAP_KIND.
9173         (gimplify_oacc_cache): New function.
9174         (gimplify_omp_for): Handle OACC_LOOP.
9175         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
9176         OACC_DATA.
9177         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
9178         OACC_EXIT_DATA, OACC_UPDATE.
9179         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
9180         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
9181         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
9182         (gimplify_body): Consider flag_openacc next to flag_openmp.
9183         * lto-streamer-out.c: Include "gomp-constants.h".
9184         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
9185         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
9186         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
9187         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
9188         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
9189         (BUILT_IN_ACC_ON_DEVICE): New builtins.
9190         * omp-low.c: Include "gomp-constants.h".
9191         Update comments for OpenACC changes.
9192         (struct omp_context): Add reduction_map, gwv_below, gwv_this
9193         members.
9194         (extract_omp_for_data, use_pointer_for_field, install_var_field)
9195         (new_omp_context, delete_omp_context, scan_sharing_clauses)
9196         (create_omp_child_function, scan_omp_for, scan_omp_target)
9197         (check_omp_nesting_restrictions, lower_reduction_clauses)
9198         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
9199         Update for OpenACC changes.
9200         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
9201         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
9202         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
9203         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
9204         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
9205         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
9206         OMP_CLAUSE_MAP_*.
9207         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
9208         Handle GF_OMP_FOR_KIND_OACC_LOOP.
9209         (expand_omp_target, lower_omp_target): Handle
9210         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
9211         GF_OMP_TARGET_KIND_OACC_UPDATE,
9212         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
9213         GF_OMP_TARGET_KIND_OACC_DATA.
9214         (pass_expand_omp::execute, execute_lower_omp)
9215         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
9216         flag_openmp.
9217         (offload_symbol_decl): New variable.
9218         (oacc_get_reduction_array_id, oacc_max_threads)
9219         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
9220         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
9221         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
9222         (oacc_gimple_assign, oacc_initialize_reduction_data)
9223         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
9224         functions.
9225         (is_targetreg_ctx): Remove function.
9226         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
9227         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
9228         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
9229         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
9230         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
9231         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
9232         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
9233         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
9234         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
9235         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
9236         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
9237         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
9238         * tree-core.h: Update comments for OpenACC changes.
9239         (enum omp_clause_map_kind): Remove.
9240         (struct tree_omp_clause): Change type of map_kind member from enum
9241         omp_clause_map_kind to unsigned char.
9242         * tree-inline.c: Update comments for OpenACC changes.
9243         * tree-nested.c: Likewise.  Include "gomp-constants.h".
9244         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
9245         (convert_tramp_reference_stmt, convert_gimple_call): Update for
9246         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
9247         OMP_CLAUSE_SET_MAP_KIND.
9248         * tree-pretty-print.c: Include "gomp-constants.h".
9249         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
9250         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
9251         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
9252         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
9253         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
9254         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
9255         instead of OMP_CLAUSE_MAP_*.
9256         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
9257         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
9258         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
9259         * tree-streamer-in.c: Include "gomp-constants.h".
9260         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
9261         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
9262         * tree-streamer-out.c: Include "gomp-constants.h".
9263         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
9264         OMP_CLAUSE_MAP_*.
9265         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
9266         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
9267         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
9268         * tree.c (omp_clause_num_ops): Update accordingly.
9269         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
9270         Likewise.
9271         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
9272         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
9273         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
9274         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
9275         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
9276         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
9277         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
9278         (OMP_CLAUSE_SET_MAP_KIND): New macro.
9279         * varpool.c (varpool_node::get_create): Consider flag_openacc next
9280         to flag_openmp.
9281         * config/i386/intelmic-offload.h: New file.
9282         * config/nvptx/offload.h: Likewise.
9283
9284 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9285
9286         * explow.h: Remove duplicate contents.
9287         * dojump.h: Likewise.
9288
9289 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
9290
9291         * arm.c (arm_xgene_tune): Add default initializer for instruction
9292         fusion.
9293
9294 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9295
9296         PR ipa/64068
9297         PR ipa/64559
9298         * ipa.c (symbol_table::remove_unreachable_nodes):
9299         Do not put abstract origins into boundary.
9300
9301 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
9302
9303         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
9304         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
9305
9306 2015-01-15  Steve Ellcey  <sellcey@mips.com>
9307
9308         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
9309         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
9310         builtins.def, and chkp-builtins.def.
9311
9312 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
9313
9314         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
9315         ISA 2.7 (POWER8).
9316
9317 2015-01-15  Richard Biener  <rguenther@suse.de>
9318
9319         PR tree-optimization/61743
9320         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
9321         information on PHIs for some simple cases.
9322
9323 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9324
9325         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
9326         Include xgene1.md.
9327         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
9328         * config/arm/arm-cores.def (xgene1): New entry.
9329         * config/arm/arm-tables.opt: Regenerate.
9330         * config/arm/arm-tune.md: Regenerate.
9331         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
9332
9333 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
9334
9335         * tree-if-conv.c: Include hash-map.h.
9336         (aggressive_if_conv): New variable.
9337         (fold_build_cond_expr): Add simplification of non-zero condition.
9338         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
9339         destination block is not always executed.
9340         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
9341         than two predecessors if AGGRESSIVE_IF_CONV is true.
9342         (if_convertible_stmt_p): Fix commentary.
9343         (all_preds_critical_p): New function.
9344         (has_pred_critical_p): New function.
9345         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
9346         BB can have more than two predecessors and all incoming edges can be
9347         critical.
9348         (predicate_bbs): Skip predication for loop exit block, use build2_loc
9349         to compute predicate for true edge.
9350         (find_phi_replacement_condition): Delete this function.
9351         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
9352         Allow interchange PHI arguments if EXTENDED is false.
9353         Change check that block containing reduction statement candidate
9354         is predecessor of phi-block since phi may have more than two arguments.
9355         (phi_args_hash_traits): New helper structure.
9356         (struct phi_args_hash_traits): New type.
9357         (phi_args_hash_traits::hash): New function.
9358         (phi_args_hash_traits::equal_keys): New function.
9359         (gen_phi_arg_condition): New function.
9360         (predicate_scalar_phi): Add handling of phi nodes with more than two
9361         arguments, delete COND and TRUE_BB arguments, insert body of
9362         find_phi_replacement_condition to predicate ordinary phi nodes.
9363         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
9364         delete call of find_phi_replacement_condition and invoke
9365         predicate_scalar_phi with two arguments.
9366         (insert_gimplified_predicates): Add assert that non-predicated block
9367         don't have statements to insert.
9368         (ifcvt_split_critical_edges): New function.
9369         (ifcvt_split_def_stmt): Likewise.
9370         (ifcvt_walk_pattern_tree): Likewise.
9371         (stmt_is_root_of_bool_pattern): Likewise.
9372         (ifcvt_repair_bool_pattern): Likewise.
9373         (ifcvt_local_dce): Likewise.
9374         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
9375         is copy of inner or outer loop force_vectorize field, invoke
9376         ifcvt_split_critical_edges, ifcvt_local_dce and
9377         ifcvt_repair_bool_pattern for aggressive if-conversion.
9378
9379 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
9380
9381         * config/aarch64/aarch64.md: Include xgene1.md.
9382         * config/aarch64/xgene1.md: New file.
9383
9384 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9385
9386         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
9387         xgene1 (APM XGene-1) core definition.
9388         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
9389         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
9390         * doc/invoke.texi: Document -mcpu=xgene1.
9391
9392 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9393
9394         * dojump.h: New header file.
9395         * explow.h: Likewise.
9396         * expr.h: Remove includes.
9397         Move expmed.c prototypes to expmed.h.
9398         Move dojump.c prototypes to dojump.h.
9399         Move alias.c prototypes to alias.h.
9400         Move explow.c prototypes to explow.h.
9401         Move calls.c prototypes to calls.h.
9402         Move emit-rtl.c prototypes to emit-rtl.h.
9403         Move varasm.c prototypes to varasm.h.
9404         Move stmt.c prototypes to stmt.h.
9405         (saved_pending_stack_adjust): Move to dojump.h.
9406         (adjust_address): Move to explow.h.
9407         (adjust_address_nv): Move to emit-rtl.h.
9408         (adjust_bitfield_address): Likewise.
9409         (adjust_bitfield_address_size): Likewise.
9410         (adjust_bitfield_address_nv): Likewise.
9411         (adjust_automodify_address_nv): Likewise.
9412         * explow.c (expr_size): Move to expr.c.
9413         (int_expr_size): Likewise.
9414         (tree_expr_size): Likewise.
9415         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9416         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
9417         * genemit.c (main): Generate includes statistics.h, real.h,
9418         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
9419         stmt.h.
9420         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
9421         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
9422         explow.h, emit-rtl.h, stmt.h.
9423         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
9424         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
9425         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
9426         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
9427         emit-rtl.h, varasm.h, stmt.h.
9428         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
9429         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
9430         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
9431         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
9432         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
9433         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
9434         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
9435         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
9436         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
9437         tm.h tree.h varasm.h vec.h wide-int.h.
9438         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9439         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
9440         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
9441         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
9442         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
9443         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
9444         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
9445         * loop-iv.c: Likewise.
9446         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
9447         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
9448         statistics.h stmt.h tree.h varasm.h wide-int.h.
9449         * lra-constraints.c: Likewise.
9450         * lra-eliminations.c: Likewise.
9451         * lra-lives.c: Likewise.
9452         * lra-remat.c: Likewise.
9453         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9454         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
9455         statistics.h stmt.h tree.h varasm.h wide-int.h.
9456         * hw-doloop.c: Likewise.
9457         * ira-color.c: Likewise.
9458         * ira-emit.c: Likewise.
9459         * loop-doloop.c: Likewise.
9460         * loop-invariant.c: Likewise.
9461         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9462         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
9463         statistics.h stmt.h tree.h varasm.h wide-int.h.
9464         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
9465         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
9466         statistics.h stmt.h tree.h varasm.h wide-int.h.
9467         * combine-stack-adj.c: Likewise.
9468         * cse.c: Likewise.
9469         * ddg.c: Likewise.
9470         * ifcvt.c: Likewise.
9471         * ira-costs.c: Likewise.
9472         * jump.c: Likewise.
9473         * lra-coalesce.c: Likewise.
9474         * lra-spills.c: Likewise.
9475         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9476         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
9477         stmt.h varasm.h wide-int.h.
9478         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9479         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
9480         varasm.h.
9481         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
9482         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
9483         statistics.h stmt.h varasm.h wide-int.h.
9484         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
9485         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
9486         varasm.h wide-int.h.
9487         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
9488         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9489         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
9490         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
9491         statistics.h stmt.h.
9492         * config/tilepro/tilepro.c: Likewise.
9493         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
9494         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
9495         * config/pdp11/pdp11.c: Likewise.
9496         * config/xtensa/xtensa.c: Likewise.
9497         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
9498         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
9499         varasm.h.
9500         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9501         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
9502         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
9503         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9504         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
9505         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
9506         * rtl-chkp.c: Likewise.
9507         * tree-chkp-opt.c: Likewise.
9508         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
9509         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
9510         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
9511         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9512         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
9513         statistics.h stmt.h.
9514         * tree-vect-data-refs.c: Likewise.
9515         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
9516         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9517         rtl.h statistics.h stmt.h varasm.h.
9518         * internal-fn.c: Likewise.
9519         * ipa-icf-gimple.c: Likewise.
9520         * lto-section-out.c: Likewise.
9521         * tree-data-ref.c: Likewise.
9522         * tree-nested.c: Likewise.
9523         * tree-outof-ssa.c: Likewise.
9524         * tree-predcom.c: Likewise.
9525         * tree-pretty-print.c: Likewise.
9526         * tree-scalar-evolution.c: Likewise.
9527         * tree-ssa-strlen.c: Likewise.
9528         * tree-vect-loop.c: Likewise.
9529         * tree-vect-patterns.c: Likewise.
9530         * tree-vect-slp.c: Likewise.
9531         * tree-vect-stmts.c: Likewise.
9532         * tsan.c: Likewise.
9533         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9534         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
9535         stmt.h.
9536         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
9537         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9538         statistics.h stmt.h varasm.h.
9539         * loop-unroll.c: Likewise.
9540         * ubsan.c: Likewise.
9541         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
9542         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
9543         stmt.h varasm.h.
9544         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9545         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
9546         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
9547         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9548         statistics.h stmt.h.
9549         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
9550         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9551         statistics.h stmt.h varasm.h.
9552         * gimple-match-head.c: Likewise.
9553         * lto-cgraph.c: Likewise.
9554         * lto-section-in.c: Likewise.
9555         * lto-streamer-in.c: Likewise.
9556         * lto-streamer-out.c: Likewise.
9557         * tree-affine.c: Likewise.
9558         * tree-cfg.c: Likewise.
9559         * tree-cfgcleanup.c: Likewise.
9560         * tree-if-conv.c: Likewise.
9561         * tree-into-ssa.c: Likewise.
9562         * tree-ssa-alias.c: Likewise.
9563         * tree-ssa-copyrename.c: Likewise.
9564         * tree-ssa-dse.c: Likewise.
9565         * tree-ssa-forwprop.c: Likewise.
9566         * tree-ssa-live.c: Likewise.
9567         * tree-ssa-math-opts.c: Likewise.
9568         * tree-ssa-pre.c: Likewise.
9569         * tree-ssa-sccvn.c: Likewise.
9570         * tree-tailcall.c: Likewise.
9571         * tree-vect-generic.c: Likewise.
9572         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9573         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
9574         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9575         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
9576         * varasm.c: Likewise.
9577         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9578         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
9579         varasm.h.
9580         * init-regs.c: Likewise.
9581         * ira.c: Likewise.
9582         * omp-low.c: Likewise.
9583         * stack-ptr-mod.c: Likewise.
9584         * tree-ssa-reassoc.c: Likewise.
9585         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9586         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
9587         varasm.h.
9588         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9589         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
9590         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9591         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
9592         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9593         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
9594         * tree-ssa-phiopt.c: Likewise.
9595         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9596         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9597         * config/fr30/fr30.c: Likewise.
9598         * config/frv/frv.c: Likewise.
9599         * expr.c: Likewise.
9600         * final.c: Likewise.
9601         * optabs.c: Likewise.
9602         * passes.c: Likewise.
9603         * simplify-rtx.c: Likewise.
9604         * stmt.c: Likewise.
9605         * toplev.c: Likewise.
9606         * var-tracking.c: Likewise.
9607         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9608         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9609         * lower-subreg.c: Likewise.
9610         * postreload-gcse.c: Likewise.
9611         * ree.c: Likewise.
9612         * reginfo.c: Likewise.
9613         * store-motion.c: Likewise.
9614         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9615         fixed-value.h hashtab.h real.h stmt.h varasm.h.
9616         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9617         fixed-value.h hashtab.h statistics.h stmt.h.
9618         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9619         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
9620         * except.c: Likewise.
9621         * explow.c: Likewise.
9622         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9623         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
9624         varasm.h.
9625         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9626         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
9627         * tree-ssa-structalias.c: Likewise.
9628         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9629         fixed-value.h insn-config.h real.h statistics.h.
9630         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9631         fixed-value.h insn-config.h real.h statistics.h stmt.h.
9632         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9633         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9634         * cfgbuild.c: Likewise.
9635         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9636         fixed-value.h real.h rtl.h statistics.h stmt.h.
9637         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9638         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9639         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9640         fixed-value.h real.h statistics.h stmt.h.
9641         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9642         fixed-value.h real.h statistics.h stmt.h varasm.h.
9643         * cprop.c: Likewise.
9644         * modulo-sched.c: Likewise.
9645         * postreload.c: Likewise.
9646         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9647         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
9648         statistics.h stmt.h varasm.h.
9649         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
9650         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9651         rtl.h statistics.h stmt.h varasm.h.
9652         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
9653         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
9654         varasm.h.
9655         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9656         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
9657         varasm.h.
9658         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
9659         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
9660         varasm.h.
9661         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
9662         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9663         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9664         function.h real.h statistics.h stmt.h varasm.h.
9665         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9666         insn-config.h real.h statistics.h stmt.h.
9667         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9668         statistics.h stmt.h.
9669         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
9670         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
9671         statistics.h stmt.h varasm.h.
9672         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
9673         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
9674         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9675         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
9676         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
9677         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
9678         statistics.h stmt.h varasm.h.
9679         * ipa-polymorphic-call.c: Likewise.
9680         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
9681         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9682         statistics.h stmt.h.
9683         * config/c6x/c6x.c: Likewise.
9684         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
9685         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9686         statistics.h stmt.h varasm.h.
9687         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
9688         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
9689         stmt.h varasm.h.
9690         * ipa-split.c: Likewise.
9691         * tree-eh.c: Likewise.
9692         * tree-ssa-dce.c: Likewise.
9693         * tree-ssa-loop-niter.c: Likewise.
9694         * tree-vrp.c: Likewise.
9695         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
9696         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
9697         stmt.h.
9698         * config/nds32/nds32-fp-as-gp.c: Likewise.
9699         * config/nds32/nds32-intrinsic.c: Likewise.
9700         * config/nds32/nds32-isr.c: Likewise.
9701         * config/nds32/nds32-md-auxiliary.c: Likewise.
9702         * config/nds32/nds32-memory-manipulation.c: Likewise.
9703         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
9704         * config/nds32/nds32-predicates.c: Likewise.
9705         * config/nds32/nds32.c: Likewise.
9706         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
9707         fixed-value.h hashtab.h real.h statistics.h.
9708         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
9709         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9710         * config/arm/arm.c: Likewise.
9711         * config/avr/avr.c: Likewise.
9712         * config/bfin/bfin.c: Likewise.
9713         * config/h8300/h8300.c: Likewise.
9714         * config/i386/i386.c: Likewise.
9715         * config/ia64/ia64.c: Likewise.
9716         * config/iq2000/iq2000.c: Likewise.
9717         * config/m32c/m32c.c: Likewise.
9718         * config/m32r/m32r.c: Likewise.
9719         * config/m68k/m68k.c: Likewise.
9720         * config/mcore/mcore.c: Likewise.
9721         * config/mep/mep.c: Likewise.
9722         * config/mips/mips.c: Likewise.
9723         * config/mn10300/mn10300.c: Likewise.
9724         * config/moxie/moxie.c: Likewise.
9725         * config/pa/pa.c: Likewise.
9726         * config/rl78/rl78.c: Likewise.
9727         * config/rx/rx.c: Likewise.
9728         * config/s390/s390.c: Likewise.
9729         * config/sh/sh.c: Likewise.
9730         * config/sparc/sparc.c: Likewise.
9731         * config/spu/spu.c: Likewise.
9732         * config/stormy16/stormy16.c: Likewise.
9733         * config/v850/v850.c: Likewise.
9734         * config/vax/vax.c: Likewise.
9735         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
9736         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9737         * config/msp430/msp430.c: Likewise.
9738         * predict.c: Likewise.
9739         * value-prof.c: Likewise.
9740         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
9741         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
9742         * config/microblaze/microblaze.c: Likewise.
9743         * config/nios2/nios2.c: Likewise.
9744         * config/rs6000/rs6000.c: Likewise.
9745         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9746         insn-config.h real.h rtl.h statistics.h stmt.h.
9747         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9748         insn-config.h real.h statistics.h stmt.h.
9749         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
9750         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9751         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
9752         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9753         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
9754         fixed-value.h real.h statistics.h stmt.h.
9755         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
9756         fixed-value.h statistics.h stmt.h.
9757         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
9758         stmt.h.
9759
9760 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
9761
9762         * gengtype.c (create_user_defined_type): Workaround
9763         -Wmaybe-uninitialized false positives.
9764         * cse.c (fold_rtx): Likewise.
9765         * loop-invariant.c (gain_for_invariant): Likewise.
9766
9767 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9768
9769         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
9770         set the memory attributes in all cases but clear MEM_EXPR if need be.
9771
9772 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
9773
9774         PR tree-optimization/64434
9775         * cfgexpand.c (reorder_operands): New function.
9776         (expand_gimple_basic_block): Insert call of reorder_operands if
9777         optimized is true.
9778
9779 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
9780
9781         * config/mips/micromips.md (*swp): Remove explicit parallel.
9782         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
9783         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
9784         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
9785         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
9786         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
9787         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
9788         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
9789         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
9790         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
9791         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
9792         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
9793         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
9794         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
9795         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
9796         (mips_wrdsp): Likewise.
9797         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
9798         parallel.
9799         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
9800         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
9801         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
9802         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
9803         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
9804         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
9805         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
9806         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
9807         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
9808
9809 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9810
9811         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
9812         (mips_print_operand): Support 'y' to print exact log2 in decimal
9813         of a const_int.
9814         * config/mips/mips.h (ISA_HAS_LSA): New define.
9815         (ISA_HAS_DLSA): Likewise.
9816         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
9817         * config/mips/predicates.md (const_immlsa_operand): New predicate.
9818
9819 2015-01-15  Martin Liska  <mliska@suse.cz>
9820
9821         PR target/64377
9822         * optc-save-gen.awk: Add support for array types.
9823
9824 2015-01-15  Richard Biener  <rguenther@suse.de>
9825
9826         PR middle-end/64365
9827         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
9828         for MEM_REF access functions with the same base can never partially
9829         overlap.
9830
9831 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
9832
9833         * common.opt: New option -fstack-protector-explicit.
9834         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
9835         (stack_protect_decl_phase): Handle stack_protect attribute for
9836         explicit stack protection requests.
9837         (expand_used_vars): Similarly.
9838         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
9839         * doc/extend.texi: Add documentation for "stack_protect" attribute.
9840         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
9841
9842 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
9843
9844         PR target/53988
9845         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
9846         reg-reg copies.
9847         (sh_extending_set_of_reg): New struct.
9848         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
9849         sh_remove_reg_dead_or_unused_notes): New Declarations.
9850         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
9851         sh_find_extending_set_of_reg, sh_split_tst_subregs,
9852         sh_extending_set_of_reg::use_as_extended_reg): New functions.
9853         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
9854         convert to insn_and_split and use new function sh_split_tst_subregs.
9855
9856 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
9857
9858         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
9859         option.
9860         (Optimization Options): Move -fuse-ld documentation to...
9861         (Link Options): ...here.
9862
9863 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9864
9865         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
9866         offsets.
9867         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
9868         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
9869         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
9870         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
9871         instead of ZR for the memory operand of LL/SC.
9872         (compare_and_swap_12, sync_add<mode>): Likewise.
9873         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
9874         (sync_new_<optab>_12, sync_nand_12): Likewise.
9875         (sync_old_nand_12, sync_new_nand_12): Likewise.
9876         (sync_sub<mode>, sync_old_add<mode>): Likewise.
9877         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
9878         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
9879         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
9880         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
9881         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
9882         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
9883         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
9884         * doc/md.texi (ZC): Update description.
9885
9886 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9887
9888         * builtins.c (expand_builtin_atomic_exchange): Remove error when
9889         memory model is CONSUME.
9890         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
9891         expand_builtin_atomic_store): Change invalid memory model errors to
9892         warnings.
9893         (expand_builtin_atomic_clear): Change invalid model errors to warnings
9894         and issue warning for CONSUME.
9895
9896 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
9897
9898         * lto-cgraph: Update function comments for
9899         lto_symtab_encoder_encode_*.
9900
9901 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9902
9903         * Makefile.in (site.exp): Do not set ENABLE_LTO.
9904
9905 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9906
9907         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
9908         * lto-cgraph.c (select_what_to_stream): Remove argument, use
9909         lto_stream_offload_p instead.
9910         * lto-streamer.h (select_what_to_stream): Remove argument.
9911         * passes.c (ipa_write_summaries): Likewise.
9912         * tree-pass.h (ipa_write_summaries): Likewise.
9913
9914 2015-01-14  Richard Biener  <rguenther@suse.de>
9915
9916         PR tree-optimization/59354
9917         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
9918         groups larger than the slp group size as having gaps.
9919
9920 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9921
9922         PR middle-end/59448
9923         * builtins.c (get_memmodel): Promote consume to acquire always.
9924
9925 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9926
9927         PR target/64386
9928         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
9929         V32HImode.
9930
9931 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9932
9933         PR target/64393
9934         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
9935         Enable AVX512BW.
9936         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
9937         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
9938         AVX512VBMI, as it implies AVX512BW.
9939
9940 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9941
9942         PR target/64387
9943         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
9944         (vec_unpacks_hi_v16sf): Ditto.
9945
9946 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9947
9948         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
9949         is not available.
9950
9951 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9952
9953         * doc/invoke.texi (mapcs): Mention deprecation.
9954         (mapcs-frame): Likewise.
9955
9956 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9957
9958         PR target/64453
9959         * config/arm/arm.c (callee_saved_reg_p): Define.
9960         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
9961         register is callee saved instead of !call_used_regs[reg].
9962         (thumb1_compute_save_reg_mask): Likewise.
9963
9964 2015-01-14  Hale Wang  <hale.wang@arm.com>
9965
9966         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
9967         Cortex-M7.
9968
9969 2015-01-14  Richard Biener  <rguenther@suse.de>
9970
9971         PR lto/64415
9972         * tree-inline.c (insert_debug_decl_map): Check destination
9973         function MAY_HAVE_DEBUG_STMTS.
9974         (insert_init_debug_bind): Likewise.
9975         (insert_init_stmt): Remove redundant check.
9976         (remap_gimple_stmt): Drop debug stmts if the destination
9977         function has var-tracking assignments disabled.
9978
9979 2015-01-14  Martin Liska  <mliska@suse.cz>
9980
9981         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
9982         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
9983
9984 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9985
9986         PR target/64460
9987         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
9988         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
9989
9990 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9991
9992         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
9993         level from an ARCH; do not inject the default.
9994         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
9995         MIPS_ISA_LEVEL_SPEC.
9996         (MIPS_ISA_NAN2008_SPEC): Update comment.
9997         (BASE_DRIVER_SELF_SPECS): Likewise.
9998         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
9999         MIPS_DEFAULT_ISA_LEVEL_SPEC.
10000         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
10001         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
10002         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
10003
10004 2015-01-14  Richard Biener  <rguenther@suse.de>
10005
10006         PR tree-optimization/64493
10007         PR tree-optimization/64495
10008         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
10009         assign the proper vectorized PHI to the inner loop exit PHIs.
10010
10011 2015-01-14  Joey Ye  <joey.ye@arm.com>
10012
10013         * config/arm/arm.c (arm_compute_save_reg_mask):
10014         Do not save lr in case of tail call.
10015         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
10016
10017 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
10018
10019         * tree-vrp.c (check_array_ref): Emit more warnings
10020         for warn_array_bounds >= 2.
10021         * common.opt: New option -Warray-bounds=.
10022         * doc/invoke.texi: Document -Warray-bounds=.
10023
10024 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
10025
10026         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
10027         (mforbid-fp-as-gp): Remove.
10028         (mex9): Remove.
10029         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
10030         (nds32_symbol_load_store_p): Remove.
10031         (nds32_fp_as_gp_check_available): Clean up implementation.
10032         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
10033         cases.
10034         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
10035         fp-as-gp and ex9 cases.
10036
10037 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10038
10039         * tree-profile.c (init_ic_make_global_vars): Drop workaround
10040         for bintuils bug 14342.
10041         (init_ic_make_global_vars): Likewise.
10042         (gimple_init_edge_profiler): Likewise.
10043         (gimple_gen_ic_func_profiler): Likewise.
10044
10045 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10046
10047         * ipa-inline.c (inline_small_functions): Swap the operands in
10048         enum.
10049
10050 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10051
10052         PR ipa/64481
10053         * ipa-inline-analysis.c (node_growth_cache): Remove.
10054         (initialize_growth_caches): Do not initialize it.
10055         (free_growth_caches): Do not free it.
10056         (do_estimate_growth): Rename to ...
10057         (estimate_growth): ... this one; drop growth cache code.
10058         (growth_likely_positive): Always go the heuristics way.
10059         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
10060         (reset_edge_caches): Do not reset node growth.
10061         (heap_edge_removal_hook): Do not maintain cache.
10062         (inline_small_functions): Likewise; strenghten sanity check.
10063         (ipa_inline): Do not maintain caches.
10064         * ipa-inline.h (node_growth_cache): Remove.
10065         (do_estimate_growth): Remove to ...
10066         (estimate_growth): this one; remove inline version.
10067         (reset_node_growth_cache): Remove.
10068
10069 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10070
10071         PR ipa/64565
10072         * ipa-inline.c (inline_small_functions): Update callee keys after
10073         resolving speculation
10074         (inline_small_functions): Always check monotonicity of the queue.
10075
10076 2015-01-13  Marek Polacek  <polacek@redhat.com>
10077
10078         PR middle-end/64391
10079         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
10080
10081 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
10082
10083         PR rtl-optimization/64286
10084         * ree.c (combine_reaching_defs): Move part of comment earlier,
10085         remove !SCALAR_INT_MODE_P check.
10086         (add_removable_extension): Don't add vector mode
10087         extensions if all uses of the source register aren't the same
10088         vector extensions.
10089
10090 2015-01-13  Renlin Li  <renlin.li@arm.com>
10091
10092         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
10093         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
10094
10095 2015-01-13  Martin Liska  <mliska@suse.cz>
10096
10097         * ipa-icf.c (sem_function::equals_private): Call new functions
10098         cl_target_option_print_diff and cl_optimization_print_diff.
10099         * optc-save-gen.awk (cl_target_option_print_diff): New function.
10100         (cl_optimization_print_diff): Likewise.
10101         * opth-gen.awk: Likewise.
10102
10103 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
10104
10105         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
10106         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
10107         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
10108         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
10109         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
10110         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
10111
10112 2015-01-13  Andrew Pinski  <apinski@cavium.com>
10113
10114         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
10115         instead of src mode.
10116
10117 2015-01-13  Richard Biener  <rguenther@suse.de>
10118
10119         PR lto/64373
10120         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
10121         DECL_CONTEXT.
10122
10123 2015-01-13  Andrew Pinski  <apinski@cavium.com>
10124
10125         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
10126         volatile mems.
10127         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
10128
10129 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
10130
10131         PR middle-end/63974
10132         * cfgexpand.c (expand_computed_goto): Don't call
10133         convert_memory_address here.
10134
10135 2015-01-13  Richard Biener  <rguenther@suse.de>
10136
10137         PR tree-optimization/64406
10138         * tree-loop-distibution.c (pass_loop_distribution::execute):
10139         Reset the SCEV hashtable if we distributed anything.
10140
10141 2015-01-13  Richard Biener  <rguenther@suse.de>
10142
10143         PR tree-optimization/64404
10144         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
10145         SLP types for CSEd loads.
10146
10147 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10148
10149         PR tree-optimization/64436
10150         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
10151         merge of two symbolic numbers for a bitwise OR to ...
10152         (perform_symbolic_merge): This. Also fix computation of the range and
10153         end of the symbolic number corresponding to the result of a bitwise OR.
10154
10155 2015-01-13  Richard Biener  <rguenther@suse.de>
10156
10157         PR tree-optimization/64568
10158         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
10159         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
10160
10161 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10162
10163         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
10164         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
10165
10166 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10167
10168         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
10169         target-specific symbol_ref flag.
10170         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
10171         resides in rodata section.
10172         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
10173         (nds32_encode_section_info): New function.
10174
10175 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10176
10177         * config/nds32/nds32.md (call): Use pseudo instruction bal which
10178         clobbers TA_REGNUM if large code model is specified.
10179         (call_register): Likewise.
10180         (call_immediate): Likewise.
10181         (call_value): Likewise.
10182         (call_value_register): Likewise.
10183         (call_value_immediate): Likewise.
10184
10185 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10186
10187         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
10188         (TARGET_CMODEL_MEDIUM): New macro.
10189         (TARGET_CMODEL_LARGE): New macro.
10190         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
10191         code model setting in assembly code.
10192
10193 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10194
10195         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
10196         Remove MASK_GP_DIRECT flag.
10197         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
10198         one of the multilib default options.
10199         * config/nds32/nds32.opt (mgp-direct): Remove.
10200         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
10201         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
10202
10203 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10204
10205         * config/nds32/nds32.opt (mcmodel): Add new option.
10206         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
10207         to describe code model.
10208
10209 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
10210
10211         PR target/64479
10212         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
10213
10214 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
10215
10216         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
10217         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
10218         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
10219         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
10220         __builtin_sh_set_fpscr.
10221
10222 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
10223
10224         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
10225         after a funtion name just to indicate it is a function.
10226         ([-fsanitize-undefined-trap-on-error]): Likewise.
10227         ([-fdbg-cnt=]): Likewise.
10228         ([-mmemcpy]): Likewise.
10229         ([-mflush-func]): Likewise.
10230         ([-msynci]): Likewise.
10231
10232 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
10233
10234         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
10235         example.
10236
10237 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
10238
10239         PR tree-optimization/64563
10240         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
10241         instead of != VR_VARYING.
10242
10243         PR target/64513
10244         * config/i386/i386.c (ix86_expand_prologue): Add
10245         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
10246
10247         PR tree-optimization/64454
10248         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
10249         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
10250         for signed or [0, op1 - 1] for unsigned modulo.
10251         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
10252         even if op1 does not satisfy integer_pow2p.
10253
10254         PR other/64370
10255         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
10256
10257 2015-01-12  Jeff Law  <law@redhat.com>
10258
10259         PR target/64461
10260         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
10261         (trunchiqi2, truncsihi2): Similarly.
10262
10263         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
10264         rather than calling F.
10265
10266 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10267
10268         * tsan.c (instrument_expr): Use force_gimple_operand.
10269         Use may_be_nonaddressable_p instead of is_gimple_addressable.
10270
10271 2015-01-12  Richard Biener  <rguenther@suse.de>
10272
10273         PR tree-optimization/64530
10274         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
10275         back dr1.
10276
10277 2015-01-12  Richard Biener  <rguenther@suse.de>
10278
10279         PR middle-end/64357
10280         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
10281         latches properly.
10282
10283 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10284
10285         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
10286         Cortex-A17 tuning parameters.
10287         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
10288
10289 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10290
10291         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
10292         * config/arm/arm.c (arm_macro_fusion_p): New function.
10293         (arm_macro_fusion_pair_p): Likewise.
10294         (TARGET_SCHED_MACRO_FUSION_P): Define.
10295         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
10296         (ARM_FUSE_NOTHING): Likewise.
10297         (ARM_FUSE_MOVW_MOVT): Likewise.
10298         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
10299         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
10300         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
10301         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
10302         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
10303         arm_cortex_a5_tune): Specify fuseable_ops value.
10304
10305 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
10306
10307         PR bootstrap/64561
10308         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
10309         test for PIE with copy reloc.
10310         * configure: Regenerated.
10311
10312 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10313
10314         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
10315         in gen_rtx_REG.
10316         (arm_tls_descseq_addr): Likewise.
10317         (arm_gen_movmemqi): Likewise.
10318         (arm_expand_epilogue_apcs_frame): Likewise.
10319         (arm_expand_epilogue): Likewise.
10320         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
10321         in gen_rtx_REG.
10322
10323 2015-01-12  Martin Liska  <mliska@suse.cz>
10324
10325         PR ipa/64550
10326         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
10327         volatility for correct operands.
10328
10329 2015-01-12  Martin Liska  <mliska@suse.cz>
10330
10331         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
10332         that a function is not leaf.
10333         (sem_function::compare_polymorphic_p): Likewise.
10334
10335 2015-01-12  Martin Liska  <mliska@suse.cz>
10336
10337         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
10338         that a function is not leaf.
10339         (sem_function::compare_polymorphic_p): Likewise.
10340
10341 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10342
10343         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
10344         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
10345         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
10346         fold-const.h, tree-check.h.
10347
10348 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
10349
10350         PR ipa/63967
10351         PR ipa/64425
10352         * ipa-inline.c (compute_uninlined_call_time,
10353         compute_inlined_call_time): Use counts for extra precision when
10354         needed possible.
10355         (big_speedup_p): Fix formating.
10356         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
10357         (relative_time_benefit): Remove.
10358         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
10359         merge guessed and read profile paths.
10360         (inline_small_functions): Count only !optimize_size functions into
10361         initial size; be more lax about sanity check when profile is used;
10362         be sure to update inlined function profile when profile is read.
10363
10364 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
10365
10366         PR ipa/63470
10367         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
10368         cost when edge becomes direct.
10369         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
10370         is resolved or when introducing new speculation.
10371
10372 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
10373
10374         PR ipa/64551
10375         PR ipa/64552
10376         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
10377         '||' to fix typo issue.
10378
10379         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
10380         accept and return NULL.
10381
10382 2015-01-12  Martin Liska  <mliska@suse.cz>
10383
10384         * cgraph.c (cgraph_edge::remove_callee): Move function to header
10385         file for being inlined.
10386         (cgraph_set_edge_callee): Delete.
10387         (cgraph_edge::redirect_callee): Move function to header file
10388         for being inlined.
10389         (cgraph_edge::make_direct): Use new function.
10390         (cgraph_edge::dump_edge_flags): New function created from
10391         static dump_edge_flags function.
10392         (cgraph_node::dump): Use new function.
10393         (cgraph_edge::verify_count_and_frequency): New function created
10394         from verify_edge_count_and_frequency.
10395         (cgraph_edge::verify_corresponds_to_fndecl): New function created
10396         from verify_edge_corresponds_to_fndecl.
10397         (verify_edge_corresponds_to_fndecl): Delete.
10398         (cgraph_node::verify_node): Use new function.
10399         * cgraph.h (cgraph_edge::set_callee): New function.
10400         (cgraph_edge::dump_edge_flags): Likewise.
10401         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
10402
10403 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
10404
10405         * ipa-utils.c (estimate_function_body_sizes): Do not
10406         free node params when called late with early=true.
10407
10408 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
10409
10410         * doc/md.texi (Instruction Patterns): Rewrite text for
10411         clarity.
10412         (Example): Likewise.
10413
10414 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
10415
10416         * doc/invoke.texi (Option Summary): Break long lines.
10417         [(-fdiagnostics-color)]: Put long literal in @smallexample
10418         instead of inline.
10419         [(-fsanitize-recover)]: Likewise.
10420         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
10421         [(-ffast-math)]: Likewise.
10422         [(--param max-inline-insns-recursive)]: Likewise.
10423         [(--param max-inline-recursive-depth)]: Likewise.
10424         [(-mno-text-section-literals)]: Likewise.
10425
10426 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
10427
10428         * doc/install.texi: Update for libgomp being renamed from "GNU
10429         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
10430         Runtime Library".
10431         * doc/sourcebuild.texi: Likewise.
10432
10433 2015-01-10  Anthony Green  <green@moxielogic.com>
10434
10435         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
10436         mul.x availability for moxiebox configuration.
10437
10438 2015-01-09  Anthony Green  <green@moxielogic.com>
10439
10440         * config/moxie/moxie.md: Tabify assembly output.
10441
10442 2015-01-09  Anthony Green  <green@moxielogic.com>
10443
10444         * config/moxie/moxie.md (CC_REG): Correct register definition.
10445
10446 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
10447
10448         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
10449         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
10450         of log files.
10451
10452 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10453
10454         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
10455
10456 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
10457             Jakub Jelinek  <jakub@redhat.com>
10458
10459         PR middle-end/64412
10460         * lto-streamer.h (lto_stream_offload_p): New declaration.
10461         * lto-streamer.c (lto_stream_offload_p): New variable.
10462         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
10463         at the same time as section_name_prefix.
10464         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
10465         if lto_stream_offload_p.
10466         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
10467         stream TREE_TARGET_OPTION if lto_stream_offload_p.
10468         (write_ts_function_decl_tree_pointers): Don't
10469         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
10470         * tree-streamer-in.c (unpack_value_fields): Don't stream
10471         TREE_TARGET_OPTION in if ACCEL_COMPILER.
10472         (lto_input_ts_function_decl_tree_pointers): Don't stream
10473         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
10474         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
10475         instead of section_name_prefix string comparisons.
10476
10477 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
10478
10479         PR rtl-optimization/64536
10480         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
10481         tablejumps.
10482
10483 2015-01-09  Michael Collison  <michael.collison@linaro.org>
10484
10485         PR tree-optimization/64322
10486         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
10487         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
10488
10489 2015-01-09  Tom de Vries  <tom@codesourcery.com>
10490
10491         PR rtl-optimization/64539
10492         * regcprop.c (kill_clobbered_values): Factor out of ...
10493         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
10494         instead of note_stores with kill_clobbered_value.
10495
10496 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10497
10498          * ginclude/unwind-arm-common.h: Revert previous commit.
10499
10500 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10501
10502         * config.gcc (arm*-*-freebsd*): New configuration.
10503         * config/arm/freebsd.h: New file.
10504         * config.host: Add extra components for arm*-*-freebsd*.
10505         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
10506         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
10507
10508 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10509
10510         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
10511         for -mcpu=e6500.
10512         * config/rs6000/t-rtems: Add e6500 multilibs.
10513
10514 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10515
10516         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
10517         MPC8540.
10518
10519 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10520
10521         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
10522         MULTILIB_EXCEPTIONS.
10523
10524 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10525
10526         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
10527         MULTILIB_EXCEPTIONS.
10528
10529 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10530
10531         * config/arm/t-rtems-eabi: Rename to...
10532         * config/arm/t-rtems: ...this.
10533         * config/arm/rtems-eabi.h: Rename to...
10534         * config/arm/rtems.h: ...this.
10535         * config.gcc (arm*-*-rtems*): Reflect changes above.
10536
10537 2015-01-09  Richard Biener  <rguenther@suse.de>
10538
10539         PR tree-optimization/64410
10540         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
10541         on the LHS.
10542         (execute_update_addresses_taken): Deal with that.
10543         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
10544         loads/stores for complex variables.
10545
10546 2015-01-09  Martin Liska  <mliska@suse.cz>
10547
10548         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
10549         name comparison.
10550         (func_checker::compare_memory_operand): New function.
10551         (func_checker::compare_operand): Split case to newly
10552         added functions.
10553         (func_checker::compare_cst_or_decl): New function.
10554         (func_checker::compare_gimple_call): Identify
10555         memory operands.
10556         (func_checker::compare_gimple_assign): Likewise.
10557         * ipa-icf-gimple.h: New function.
10558
10559 2015-01-09  Martin Liska  <mliska@suse.cz>
10560
10561         PR ipa/64503
10562         * sreal.c (sreal::dump): Change unsigned format to signed for
10563         m_exp value.
10564         (sreal::to_double): Replace exp2 with scalbln.
10565
10566 2015-01-09  Martin Liska  <mliska@suse.cz>
10567
10568         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
10569         * ipa-icf.c (sem_function::equals_private): Add support for target and
10570         (sem_item_optimizer::merge_classes): Remove redundant function
10571         optimization flags comparison.
10572         * tree.h (target_opts_for_fn): New function.
10573
10574 2015-01-09  Tom de Vries  <tom@codesourcery.com>
10575
10576         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
10577
10578 2015-01-09  Kito Cheng  <kito@0xlab.org>
10579
10580         PR rtl-optimization/64348
10581         * lra-constraints.c (split_reg): Fix caller-save store/restore
10582         instruction generation.
10583
10584 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
10585
10586         PR gcov-profile/61790
10587         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
10588         long long.  Fallback to int64_t if host doesn't have long long and
10589         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
10590
10591 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10592
10593         PR tree-optimization/63989
10594         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
10595         from 1000 to 10000.
10596         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
10597         (get_stridx): If we don't have a record for certain SSA_NAME,
10598         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
10599         constant offset, call get_stridx_plus_constant.
10600         (get_stridx_plus_constant): New function.
10601         (zero_length_string): Don't use get_stridx here.
10602
10603         PR target/55023
10604         PR middle-end/64388
10605         * dse.c (struct insn_info): Mention frame_read set also
10606         before reload for tail calls on some targets.
10607         (scan_insn): Revert 2014-12-22 change.  Set frame_read
10608         also before reload for tail calls if
10609         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
10610         instead of add_non_frame_wild_read for non-const/memset
10611         tail calls after reload.
10612
10613 2015-01-08  Jason Merrill  <jason@redhat.com>
10614
10615         * ubsan.c (do_ubsan_in_current_function): New.
10616         (pass_ubsan::gate): Use it.
10617         * ubsan.h: Declare it.
10618         * convert.c (convert_to_integer): Use it.
10619
10620 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10621
10622         PR target/64338
10623         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
10624         compare_code when it is unconditionally overwritten afterwards.
10625         Use ix86_reverse_condition instead of reverse_condition.  Don't
10626         change code if *reverse_condition* returned UNKNOWN and don't
10627         swap ct/cf and negate diff in that case.
10628
10629 2015-01-08  Mike Stump  <mikestump@comcast.net>
10630
10631         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
10632         (pass_tsan_O0::gate): Likewise.
10633         * extend.texi (Function Attributes): Add no_sanitize_thread
10634         documentation.
10635
10636 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
10637
10638         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
10639         for registering builtins.
10640         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
10641         add -fopenmp to the argv_obstack used when invoking
10642         compile_for_target.
10643
10644         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
10645         add "-m32" or "-m64" to argv_obstack.
10646         (generate_host_descr_file): Likewise, when invoking host_compiler.
10647         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
10648         ld.
10649
10650 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10651
10652         * config/sh/sh-mem.cc: Use constant as second operand when emitting
10653         tstsi_t insns.
10654
10655 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10656
10657         PR target/55212
10658         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
10659         constant load if constant operand fits into I08.
10660
10661 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10662
10663         PR sanitizer/64336
10664         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
10665         and TREE_THIS_VOLATILE for MEM_REFs.
10666         (build5_stat): Fix up initialization of TREE_READONLY and
10667         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
10668
10669 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10670
10671         PR target/64533
10672         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
10673         of r for the second alternative of the destination operand.
10674
10675 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
10676
10677         PR target/36557
10678         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
10679
10680 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10681
10682         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
10683         keywords.
10684         ([-fivar-visibility], [-fvisibility]): Likewise.
10685
10686 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10687
10688         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
10689         the file where @code, @command, etc is more appropriate.
10690
10691 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
10692
10693         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
10694         of -mrecip= documentation.
10695
10696 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10697
10698         PR target/64505
10699         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
10700         correct reload handler if -m32 -mpowerpc64 is used.
10701
10702 2015-01-06  Tom de Vries  <tom@codesourcery.com>
10703
10704         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
10705
10706 2015-01-08  Christian Bruel  <christian.bruel@st.com>
10707
10708         PR target/64507
10709         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
10710
10711 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10712
10713         PR tree-optimization/63259
10714         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
10715         if optab exists for 16bit byteswap.
10716
10717 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
10718
10719         * opts.c (common_handle_option): Add support for
10720         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
10721         * doc/invoke.texi: Document -fno-sanitize=all,
10722         -f{,no-}sanitize-recover=all.  Document that
10723         -fsanitize=float-cast-overflow is not enabled
10724         by -fsanitize=undefined.  Fix up documentation
10725         of -f{,no-}sanitize-recover.
10726
10727 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10728
10729         * config.gcc: Add Visium support.
10730         * configure.ac: Likewise.
10731         * configure: Regenerate.
10732         * doc/extend.texi (interrupt attribute): Add Visium.
10733         * doc/invoke.texi: Document Visium options.
10734         * doc/install.texi: Document Visium target.
10735         * doc/md.texi: Document Visium constraints.
10736         * common/config/visium: New directory.
10737         * config/visium: Likewise.
10738
10739 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10740
10741         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
10742         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
10743
10744 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10745
10746         * combine.c (combine_validate_cost): Do not count the cost of a
10747         split I2 twice.  Do not display it twice in the dump, either.
10748
10749 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10750
10751         Revert parts of r219199.
10752         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
10753         <inttypes.h>.
10754         ([-Wtraditional]): Restore markup on <limits.h>.
10755
10756 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
10757
10758         PR c++/31397
10759         * doc/invoke.texi: Document -Wsuggest-override.
10760
10761 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
10762
10763         PR rtl-optimization/64287
10764         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
10765         (process_options): Disable flag_ipa_ra if profiling.
10766
10767 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10768
10769         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
10770
10771 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
10772
10773         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
10774         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
10775         put under #if TARGET_LOOPS guard.
10776
10777 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
10778
10779         * config/i386/i386.c (output_387_binary_op): Use std::swap.
10780
10781 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
10782
10783         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
10784         * rtl.h (refers_to_regno_p): Add overload.
10785         * cse.c: Use it.
10786         * bt-load.c: Likewise.
10787         * combine.c: Likewise.
10788         * df-scan.c: Likewise.
10789         * sched-deps.c: Likewise.
10790         * config/s390/s390.c: Likewise.
10791         * config/m32r/m32r.c: Likewise.
10792         * config/rs6000/spe.md: Likewise.
10793         * config/rs6000/rs6000.c: Likewise.
10794         * config/pa/pa.c: Likewise.
10795         * config/stormy16/stormy16.c: Likewise.
10796         * config/cris/cris.c: Likewise.
10797         * config/arc/arc.md: Likewise.
10798         * config/arc/arc.c: Likewise.
10799         * config/sh/sh.md: Likewise.
10800         * config/sh/sh.c: Likewise.
10801         * config/frv/frv.c: Likewise.
10802
10803 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10804
10805         PR sanitizer/64265
10806         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
10807         call as cleanup of the whole body.
10808         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
10809         * tsan.c (replace_func_exit): New function.
10810         (instrument_func_exit): Moved earlier.
10811         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
10812         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
10813         been found.
10814         (tsan_pass): Don't call instrument_func_exit.
10815         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
10816         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
10817         inlining.
10818
10819         PR sanitizer/64344
10820         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
10821         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
10822         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
10823         if the result is integer_zerop, return NULL_TREE.
10824         * convert.c (convert_to_integer): Pass expr as ARG.
10825
10826         PR tree-optimization/64465
10827         * tree-inline.c (redirect_all_calls): During inlining
10828         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
10829         changed the stmt to a non-throwing call.
10830
10831 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10832
10833         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
10834         etc markup throughout the file.
10835
10836 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10837
10838         Enable experimental TSAN support for Ada.
10839         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
10840
10841 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10842
10843         PR tree-optimization/64494
10844         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
10845         clear SSA_NAME_ANTI_RANGE_P flag.
10846
10847 2015-01-05  Marek Polacek  <polacek@redhat.com>
10848
10849         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
10850
10851 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10852
10853         Update copyright years.
10854
10855         * gcc.c (process_command): Update copyright notice dates.
10856         * gcov-dump.c: Ditto.
10857         * gcov.c: Ditto.
10858         * doc/cpp.texi: Bump @copying's copyright year.
10859         * doc/cppinternals.texi: Ditto.
10860         * doc/gcc.texi: Ditto.
10861         * doc/gccint.texi: Ditto.
10862         * doc/gcov.texi: Ditto.
10863         * doc/install.texi: Ditto.
10864         * doc/invoke.texi: Ditto.
10865
10866         * auto-profile.c, auto-profile.h: Fix up Copyright line.
10867
10868 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
10869
10870         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
10871         verb tense, etc.
10872         ([-fvtable-verify], [-fvtv-debug]): Likewise.
10873         ([-Wabi]): Likewise.
10874         ([-fmessage-length]): Likewise.
10875         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
10876         ([-Wno-discarded-qualifiers]): Likewise.
10877         ([-Wnodiscarded-array-qualifiers]): Likewise.
10878         ([-Wno-virtual-move-assign]): Likewise.
10879         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
10880         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
10881         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
10882         ([-fsanitize-undefined-trap-on-error]): Likewise.
10883         ([-floop-interchange]): Likewise.
10884         ([-ftree-coalesce-inlined-vars]): Likewise.
10885         ([-fvect-cost-model]): Likewise.
10886         ([-flto]): Likewise.
10887         ([--param]): Likewise.
10888         (Spec Files): Likewise.
10889         ([-mstrict-align]): Likewise.
10890         ([-mfix-cortex-a53-835769]): Likewise.
10891         ([-march], [-mtune]): Likewise.
10892         ([-mpic-register]): Likewise.
10893         ([-munaligned-access]): Likewise.
10894         ([-msp8]): Likewise.
10895         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
10896         (AVR Built-in Macros): Likewise.
10897         ([-mpreferred-stack-boundary]): Likewise.
10898         ([-mtune-crtl]): Likewise.
10899         ([-mashf]): Likewise.
10900         ([-mmcu=]): Likewise.
10901         ([-minrt]): Likewise.
10902         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
10903         ([-mupper-regs]): Likewise.
10904         ([-matomic-model]): Likewise.
10905         ([-mdiv]): Likewise.
10906         ([-mzdcbranch]): Likewise.
10907         ([-mdisable-callt]): Likewise.
10908         ([-msoft-float]): Likewise.
10909         ([-m8byte-align]): Likewise.
10910         ([-fstack-reuse]): Likewise.
10911
10912 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10913
10914         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
10915         Fix markup, light copy-editing.
10916         ([-fauto-profile]): Rewrite to fix formatting and content
10917         problems.
10918
10919 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10920
10921         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
10922         Copy-edit description.
10923         ([-fisolate-erroneous-paths-attribute]): Likewise.
10924         * common.opt (fisolate-erroneous-paths-dereference):
10925         Copy-edit description.
10926         (fisolate-erroneous-paths-attribute): Likewise.
10927
10928 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10929
10930         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
10931         tidy grammar.
10932
10933 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10934
10935         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
10936         ([-fvtv-debug]): Likewise.
10937         ([-Wc++-compat]): Likewise.
10938         ([-Wc++11-compat]): Likewise.
10939         ([-Wc++14-compat]): Likewise.
10940         ([-Wno-sized-deallocation]): Likewise.
10941         ([-femit-class-debug-always]): Likewise.
10942         ([-femit-struct-debug-detailed]): Likewise.
10943         ([-fno-keep-inline-dllexport]): Likewise.
10944         ([-fira-algorithm]): Likewise.
10945         ([-fira-region]): Likewise.
10946         ([-flra-remat]): Likewise.
10947         ([-fipa-ra]): Likewise.
10948         ([-fhoist-adjacent-loads]): Likewise.
10949         ([-fisolate-erroneous-paths-dereference]): Likewise.
10950         ([-fisolate-erroneous-paths-attribute]): Likewise.
10951         ([-ftree-switch-conversion]): Likewise.
10952         ([-ftree-tail-merge]): Likewise.
10953         ([-ftree-loop-if-convert]): Likewise.
10954         ([-ftree-loop-if-convert-stores]): Likewise.
10955         ([-ftree-loop-distribution]): Likewise.
10956         ([-ftree-loop-distribute-patterns]): Likewise.
10957         ([-flto-compression-level]): Likewise.
10958         ([-flto-report]): Likewise.
10959         ([-flto-report-wpa]): Likewise.
10960         ([-fuse-linker-plugin]): Likewise.
10961         ([-mfix-cortex-a53-835769]): Likewise.
10962         ([-mno-fix-cortex-a53-835769]): Likewise.
10963         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
10964         explicit listing; add a note to the discussion indicating they
10965         exist.  Reorder table to group similar options.  Add missing
10966         @opindex entries.  Add @need commands throughout the table to
10967         allow it to be split across multiple pages.
10968         ([-m8bit-idiv]): Fix @opindex.
10969         ([-mavx256-split-unaligned-load]): Likewise.
10970         ([-mavx256-split-unaligned-store]): Likewise.
10971         ([-mstack-protector-guard]): Likewise.
10972         ([-mcpu=]): Likewise.
10973         ([-mcpu]): Likewise.
10974         ([-mpointer-size=]): Likewise.
10975
10976 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
10977
10978         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
10979         instead of `m' constraint.  Likewise for unnamed movb comparison
10980         patterns using reg_before_reload_operand predicate.
10981         * config/pa/predicates.md (reg_before_reload_operand): Tighten
10982         predicate to reject register index and LO_SUM DLT memory forms
10983         after reload.
10984
10985 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
10986
10987         * doc/invoke.texi (Option Summary): Fix spelling of
10988         -fdevirtualize-at-ltrans.
10989         ([-fdevirtualize]): Fix markup.
10990         ([-fdevirtualize-speculatively]): Fix typo.
10991         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
10992         implementor-speaky.
10993         * common.opt (fdevirtualize-at-ltrans): Likewise.
10994         * ipa-devirt.c: Fix typos in comments throughout the file.
10995         (ipa_devirt): Fix typos in format strings for dump output.
10996
10997 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
10998
10999         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
11000         discussion of defaults, light copy-editing.
11001
11002 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11003
11004         * tsan.c (instrument_expr): corrected previous checkin.
11005
11006 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11007
11008         Instrument bit field and unaligned accesses for TSAN.
11009         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
11010         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
11011         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
11012         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
11013         unaligned memory regions.
11014
11015 2015-01-01  Anthony Green  <green@moxielogic.com>
11016
11017         * config/moxie/predicates.md (moxie_general_movsrc_operand):
11018         Restrict move source register offsets to 16 bits.
11019 \f
11020 Copyright (C) 2015 Free Software Foundation, Inc.
11021
11022 Copying and distribution of this file, with or without modification,
11023 are permitted in any medium without royalty provided the copyright
11024 notice and this notice are preserved.