change more argument types to rtx_insn *
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2
3         * ira-color.c: Change argument types to rtx_insn *.
4         * lra-eliminations.c: Likewise.
5         * ira.h: Adjust.
6
7 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8
9         * gcse.c: Change argument types to rtx_insn *.
10
11 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12
13         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
14
15 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16
17         * emit-rtl.c (emit_debug_insn_before): Change argument type to
18         rtx_insn *.
19         * rtl.h: Adjust.
20
21 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22
23         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
24         * rtl.h: Adjust.
25
26 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27
28         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
29         * rtl.h: Adjust.
30
31 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32
33         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
34         * rtl.h: Adjust.
35
36 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
37
38         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
39         * rtl.h: Adjust.
40
41 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
42
43         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
44         to rtx_insn *.
45         * rtl.h: Adjust.
46
47 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
48
49         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
50         to rtx_insn *.
51         * rtl.h: Likewise.
52
53 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
54
55         * except.c (can_nonlocal_goto): Change type of argument to
56         rtx_insn *.
57         * rtl.h: Adjust.
58
59 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
60
61         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
62         * rtl.h: Adjust.
63
64 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
65
66         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
67         * cfgrtl.c (can_delete_label_p): Adjust.
68         * rtl.h: likewise.
69
70 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
71
72         * reorg.c (stop_search_p): Change argument to rtx_insn *.
73
74 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
75
76         * except.c (make_reg_eh_region_note): Change argument to
77         rtx_insn *.
78         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
79         * except.h: Adjust.
80
81 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
82
83         * mode-switching.c (commit_mode_sets): Change type of local
84         variable from rtx to rtx_insn *.
85
86 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
87
88         * doc/install.texi (--enable-languages): Add missing jit and lto info.
89         Add ^ to grep command.
90         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
91         arg to last gimple_simplify declaration.  Add missing gimple_build
92         declaration for built-in function case with four tree args.
93
94 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
95             Szabolcs Nagy  <szabolcs.nagy@arm.com>
96
97         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
98         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
99         (GNU_USER_DYNAMIC_LINKERN32): Update.
100
101 2015-05-08  Richard Biener  <rguenther@suse.de>
102
103         PR tree-optimization/66036
104         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
105         Handle strided group loads.
106         (vect_verify_datarefs_alignment): Likewise.
107         (vect_enhance_data_refs_alignment): Likewise.
108         (vect_analyze_group_access): Likewise.
109         (vect_analyze_data_ref_access): Likewise.
110         (vect_analyze_data_ref_accesses): Likewise.
111         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
112         (vectorizable_load): Likewise.
113
114 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
115
116         * config/rs6000/rs6000.md: Require operand inequality in one
117         of the peepholes.
118
119 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
120             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
121
122         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
123         from (set ...).
124         * config/rx/rx.md (movdi, movdf): Likewise.
125         Likewise for define_peephole2s.
126
127 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
128
129         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
130         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
131         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
132         vtst_u64): Rewrite using gcc vector extensions.
133
134 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
135
136         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
137         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
138
139 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
140
141         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
142
143 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
144
145         * config/glibc-stdint.h (OPTION_MUSL): Define.
146         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
147         Change the definition based on OPTION_MUSL for 64 bit targets.
148         * config/linux.h (OPTION_MUSL): Redefine.
149         * config/alpha/linux.h (OPTION_MUSL): Redefine.
150         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
151         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
152
153 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
154             Szabolcs Nagy  <szabolcs.nagy@arm.com>
155
156         * config.gcc (LIBC_MUSL): New tm_defines macro.
157         * config/linux.h (OPTION_MUSL): Define.
158         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
159         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
160         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
161         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
162         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
163         * config/linux.opt (mmusl): New option.
164         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
165         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
166         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
167         * configure: Regenerate.
168
169 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
170             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
171
172         PR target/48904
173         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
174         * config/i386/knetbsd-gnu64.h: New file.
175
176 2015-05-08  Marek Polacek  <polacek@redhat.com>
177
178         PR c/64918
179         * doc/invoke.texi: Document -Woverride-init-side-effects.
180
181 2015-05-07  Marek Polacek  <polacek@redhat.com>
182
183         PR c/65179
184         * doc/invoke.texi: Document -Wshift-negative-value.
185
186 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
187
188         * gcov-tool.c (do_merge): Refactore to remove int ret.
189         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
190         !type == FUNC to type != FUNC.
191         * reload.h (struct target_reload): Changee to type of
192         x_spill_indirect_levels from bool to unsigned char.
193
194 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
195
196         * rtl.h (always_void_p): New function.
197         * gengenrtl.c (always_void_p): Likewise.
198         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
199         with code foo are always VOIDmode.
200         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
201         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
202         compare-elim.c, config/aarch64/aarch64.c,
203         config/aarch64/aarch64.md, config/alpha/alpha.c,
204         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
205         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
206         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
207         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
208         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
209         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
210         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
211         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
212         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
213         config/ia64/vect.md, config/iq2000/iq2000.c,
214         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
215         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
216         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
217         config/mep/mep.c, config/microblaze/microblaze.c,
218         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
219         config/mn10300/mn10300.c, config/msp430/msp430.c,
220         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
221         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
222         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
223         config/rs6000/altivec.md, config/rs6000/rs6000.c,
224         config/rs6000/rs6000.md, config/rs6000/vector.md,
225         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
226         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
227         config/sh/sh.md, config/sh/sh_treg_combine.cc,
228         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
229         config/spu/spu.md, config/stormy16/stormy16.c,
230         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
231         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
232         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
233         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
234         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
235         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
236         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
237         var-tracking.c: Update calls accordingly.
238
239 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
240
241         PR middle-end/192
242         PR middle-end/54303
243         * varasm.c (function_mergeable_rodata_prefix): New function.
244         (mergeable_string_section): Use it.
245         (mergeable_constant_section): Use it.
246
247 2015-05-07  Jeff Law  <law@redhat.com>
248
249         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
250         simplifier to narrow arithmetic.
251         * generic-match-head.c: (types_match, single_use): New functions.
252         * gimple-match-head.c: (types_match, single_use): New functions.
253
254 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
255
256         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
257         rtx type.
258
259 2015-05-07  Richard Biener  <rguenther@suse.de>
260
261         PR tree-optimization/66002
262         * passes.def: Schedule another pass_merge_phi after ifcombine, right
263         before phiopt.
264
265 2015-05-07  Marek Polacek  <polacek@redhat.com>
266             Martin Uecker  <uecker@eecs.berkeley.edu>
267
268         * doc/invoke.texi: Document -fsanitize=bounds-strict.
269         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
270         into SANITIZE_NONDEFAULT.
271         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
272
273 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
274
275         PR target/66015
276         * config/alpha/alpha.c (alpha_override_options_after_change): New.
277         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
278         (alpha_override_options): Move align_loops, align_jumps and
279         align_functions handling into alpha_override_options_after_change.
280
281 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
282             Chris Jones  <chrisj@nvidia.com>
283             Joshua Conner  <jconner@nvidia.com>
284
285         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
286         linking of crtfastmath.o.
287         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
288
289 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
290
291         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
292         (cstore<mode>4_unsigned_imm): New expander.
293         (cstore<mode>4): Remove empty constraint strings.  Use the new
294         expanders.
295
296 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
297
298         PR target/64208
299         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
300         alternatives.
301
302 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
303
304         * config/aarch64/geniterators.sh: Use standard BRE in sed.
305
306 2015-05-06  Alan Modra  <amodra@gmail.com>
307
308         PR target/66033
309         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
310         (UNSPEC_NOP): Define.
311         (reload_vsx_from_gpr<mode>): Add missing DONE.
312         (reload_gpr_from_vsx<mode>): Likewise.
313         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
314         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
315
316 2015-05-06  Christian Bruel  <christian.bruel@st.com>
317
318         PR target/66015
319         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
320         align_jumps, align_functions into aarch64_override_options_after_change.
321
322 2015-05-06  Richard Biener  <rguenther@suse.de>
323
324         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
325         vect_transform_slp_perm_load to check if we support a permutation
326         for basic-block vectorization.
327
328 2015-05-06  Nick Clifton  <nickc@redhat.com>
329
330         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
331         used, even if it is not being used as a frame pointer.
332
333 2015-05-05  Jason Merrill  <jason@redhat.com>
334
335         * dwarf2out.c (gen_member_die): Don't emit anything for an
336         anonymous class constructor.
337
338 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
339
340         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
341         that it reflects the block structure.
342         (afdo_propagate_edge): Likewise.
343         (afdo_calculate_branch_prob): Likewise.
344         (afdo_annotate_cfg): Likewise.
345         * cfgcleanup.c (equal_different_set_p): Likewise.
346         (try_crossjump_to_edge): Likewise.
347         * cgraph.c (cgraph_node::verify_node): Likewise.
348         * cgraphunit.c (expand_all_functions): Likewise.
349         * config/i386/i386.c (ix86_expand_copysign): Likewise.
350         (exact_dependency_1): Likewise.
351         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
352         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
353         * gensupport.c (process_define_subst): Likewise.
354         * lto-wrapper.c (merge_and_complain): Likewise.
355         * tree-if-conv.c (if_convertible_bb_p): Likewise.
356         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
357         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
358         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
359         * tree-vect-loop.c (vectorizable_reduction): Likewise.
360         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
361         * tree-vect-stmts.c (vectorizable_shift): Likewise.
362         * tree-vrp.c (vrp_finalize): Likewise.
363         * tree.c (variably_modified_type_p): Likewise.
364
365 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
366
367         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
368         on darwin12 and later.
369         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
370         file to pass -rdynamic on darwin12 and later.
371         * config/darwin.opt (rdynamic): Add.
372
373 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
374
375         * doc/extend.texi (C Extensions): Update menu for moved Variable
376         Attributes and Type Attributes sections.
377
378 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
379
380         PR target/65990
381         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
382         if rep_8byte stringop strategy was specified for 32-bit target.
383
384 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
385
386         PR target/65915
387         * config/i386/i386.md (vector convert to float spltiter): Check for
388         xmm16+, when splitting scalar float conversion.
389         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
390
391 2015-05-05  Nick Clifton  <nickc@redhat.com>
392
393         * config/msp430/msp430-opts.h (enum msp430_regions): New.
394         * config/msp430/msp430.c (msp430_override_options): Complain if
395         -mcode-region or -mdata-region is used on a non MSP430X.
396         (msp430_section_attr): New function.  Checks lower, upper and
397         either attributes.
398         (msp430_attribute_table): Add lower, upper and either.
399         (gen_prefix): New function.  Generates a prefix for a section
400         name.
401         (msp430_select_section): New function - handles the choice of
402         section for an object.  Takes into account memory region
403         attributes and options.
404         (msp430_function_section): Use gen_prefix.
405         (TARGET_SECTION_TYPE_FLAGS): Define.
406         (msp430_section_type_flags): New function.
407         (TARGET_ASM_UNIQUE_SECTION): Define.
408         (msp430_unique_section): New function.
409         (msp430_output_aligned_decl_common): New function.
410         (msp430_do_not_relax_short_jumps): New function.
411         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
412         Define.
413         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
414         * config/msp430/msp430-protos.h
415         (msp430_do_not_relax_short_jumps): New prototype.
416         (msp430_output_aligned_decl_common): New prototype.
417         * config/msp430/msp430.md (length): New attribute.
418         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
419         then use a long code sequence for short jumps.
420         * config/msp430/msp430.opt (mcode-region): New.
421         (mdata-region): New.
422         * doc/invoke.texi: Document new options.
423         * doc/extend.texi: Document new attributes.
424
425 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
426
427         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
428         (tune_params): Add field branch_costs.
429         (aarch64_branch_cost): Declare.
430         * gcc/config/aarch64.c (generic_branch_cost): New.
431         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
432         (cortexa53_tunings): Likewise.
433         (cortexa57_tunings): Likewise.
434         (thunderx_tunings): Likewise.
435         (xgene1_tunings): Likewise.
436         (aarch64_branch_cost): Define.
437         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
438
439 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
440
441         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
442         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
443         * config/i386/i386.md: Ditto.
444         * config/i386/winnt.c: Ditto.
445
446 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
447
448         * doc/extend.texi (__atomic Builtins): Move implementation details
449         to the end of the description, rewrite opening paragraphs, state
450         difference with __sync builtins, state C11/C++11 assumptions,
451         weaken itemized descriptions, add explanation of memory model
452         behaviour, expand description of compare-exchange, simplify text.
453
454 2015-05-05  Renlin Li  <renlin.li@arm.com>
455
456         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
457
458 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
459
460         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
461         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
462         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
463         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
464         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
465         * configure: Regenerate.
466         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
467         * doc/install.texi (aarch64*-*-*): Document new
468         --enable-fix-cortex-a53-843419 option.
469         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
470         and -mno-fix-cortex-a53-843419 options.
471
472 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
473
474         PR target/65871
475         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
476
477 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
478
479         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
480         fix overactive TYPE_MIN_VALUE check and add FIXME for type
481         compatibility problems.
482
483 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
484
485         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
486         constraints.
487         (cbranchsi4_reg): New.
488         * config/microblaze/microblaze.c
489         (microblaze_expand_conditional_branch_reg): New.
490         * config/microblaze/microblaze-protos.h
491         (microblaze_expand_conditional_branch_reg): New prototype.
492
493 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
494
495         * config/microblaze/microblaze.md (peephole2): New.
496
497 2015-05-04  Jeff Law  <law@redhat.com>
498
499         Revert:
500         2015-05-04  Jeff Law  <law@redhat.com>
501
502         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
503         simplifier to narrow arithmetic.
504         * generic-match-head.c: (types_match, single_use): New functions.
505         * gimple-match-head.c: (types_match, single_use): New functions.
506
507 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
508
509         PR target/65987
510         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
511         (split_branches): Likewise.
512
513 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
514
515         * common.opt (fdelete-null-pointer-checks): Init to -1.
516         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
517         override flag_delete_null_pointer_checks default.
518         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
519         behavior re address zero.  Better document target-specific behavior.
520         (-fisolate-errneous-paths-dereference): Mention relationship to
521         -fdelete-null-pointer-checks.
522
523 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
524
525         PR tree-optimization/65984
526         * ubsan.c: Include tree-cfg.h.
527         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
528         stmt_could_throw_p test, rename can_throw variable to ends_bb.
529
530 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
531
532         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
533         to CONST_DOUBLE_P predicate.
534         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
535         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
536         allow only operands that satisfy standard_sse_constant_p predicate.
537         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
538         to CONST_DOUBLE_P predicate.
539
540 2015-05-04  Jeff Law  <law@redhat.com>
541
542         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
543         simplifier to narrow arithmetic.
544         * generic-match-head.c: (types_match, single_use): New functions.
545         * gimple-match-head.c: (types_match, single_use): New functions.
546
547 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
548
549         * config/arm/arm.c: Restore bootstrap.
550
551 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
552
553         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
554         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
555         as CONST_WIDE_INT, not CONST_DOUBLE.
556         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
557         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
558         (ix86_find_base_term): Do not check for CONST_DOUBLE.
559         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
560         (ix86_build_signbit_mask): Rewrite using wide ints.
561         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
562         (ix86_rtx_costs): Handle CONST_WIDE_INT.
563         (find_constant): Ditto.
564         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
565         using gen_int_mode.
566         * config/i386/predicates.md (x86_64_immediate_operand)
567         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
568         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
569         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
570         (const0_operand): Also match const_wide_int.
571         (constm1_operand): Ditto.
572         (const1_operand): Ditto.
573
574 2015-05-04  Richard Biener  <rguenther@suse.de>
575
576         PR tree-optimization/65965
577         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
578         store groups at gaps.
579
580 2015-05-04  Richard Biener  <rguenther@suse.de>
581
582         PR tree-optimization/65935
583         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
584         then make sure to apply that swapping to the IL.
585
586 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
587
588         * Makefile.in (PATCHLEVEL_c): New variable.
589         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
590         expand the same way as if DEVPHASE_c was non-empty.
591
592 2015-05-04  Kai Tietz  <ktietz@redhat.com>
593
594         PR target/65559
595         * lto-wrapper.c (run_gcc): Open filename
596         in binary-mode.
597
598 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
599
600         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
601         sections up in file, to immediately after the Function Attributes
602         section.
603
604 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
605
606         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
607
608 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
609
610         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
611         (insert_partition_copy_on_edge): Adjust.
612         (insert_rtx_to_part_on_edge): Likewise.
613         (insert_part_to_rtx_on_edge): Likewise.
614
615 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
616
617         * function.c (set_return_jump_label): Change type of argument to
618         rtx_insn *.
619         * function.h (set_return_jump_label): Adjust.
620
621 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
622
623         * reload.h (struct reg_equivs_t): Change type of init to
624         rtx_insn *.
625         * ira.c (fix_reg_equiv_init): Adjust.
626         * reload1.c (eliminate_regs_1): Likewise.
627         (init_eliminable_invariants): Likewise.
628
629 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
630
631         * cselib.c (fp_setter_insn): Take a rtx_insn *.
632         * cselib.h (fp_setter_insn): Adjust.
633
634 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
635
636         * recog.c (struct validate_replace_src_data): Change type of
637         insn field to rtx_insn *.
638         (validate_replace_src_group): Change type of argument to rtx_insn *.
639         * recog.h (validate_replace_src_group): Adjust.
640
641 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
642
643         * haifa-sched.c: Change the type of some variables to rtx_insn *.
644         * sched-deps.c: Likewise.
645         * sched-int.h: Likewise.
646         * sched-rgn.c: Likewise.
647         * sel-sched.c: Likewise.
648
649 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
650
651         to rtx_insn *.
652         * config/i386/i386.c: Change the type of some arguments to
653         rtx_insn *.
654         * config/arm/arm.c: Likewise.
655
656 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
657
658         * lra-constraints.c: Change type of some arguments to rtx_insn *.
659
660 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
661
662         * regcprop.c (kill_autoinc_value): Change type of argument to
663         rtx_insn *.
664
665 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
666
667         * genrecog.c (print_subroutine): Adjust.
668         * recog.c (get_bool_attr_mask_uncached): Likewise.
669         * recog.h (struct recog_data_d): Change the type of insn to
670         rtx_insn *.
671
672 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
673
674         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
675
676 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
677
678         * df-problems.c (df_set_note): Change type of argument to
679         rtx_insn *.
680
681 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
682
683         * builtins.c (expand_builtin_trap): Change type of local
684         variable to rtx_insn *.
685         (add_sched_insns_for_speculation): Likewise.
686         (ix86_emit_save_regs): Likewise.
687         (get_scratch_register_on_entry): Likewise.
688         (ix86_emit_restore_reg_using_pop): Likewise.
689         (ix86_emit_leave): Likewise.
690         (ix86_emit_restore_regs_using_mov): Likewise.
691         (ix86_expand_epilogue): Likewise.
692         Likewise.
693         (rl78_alloc_physical_registers_umul): Likewise.
694         * cselib.c (discard_useless_locs): Likewise.
695         (cselib_invalidate_regno): Likewise.
696         (cselib_invalidate_mem): Likewise.
697         * function.c (expand_function_start): Likewise.
698         (emit_use_return_register_into_block): Likewise.
699         * gcse.c: Likewise.
700         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
701         * ifcvt.c (noce_get_alt_condition): Likewise.
702         * loop-doloop.c (doloop_condition_get): Likewise.
703         * lra-constraints.c (inherit_in_ebb): Likewise.
704         * modulo-sched.c (sms_schedule_by_order): Likewise.
705         * recog.c (next_insn_tests_no_inequality): Likewise.
706         * reorg.c (emit_delay_sequence): Likewise.
707         (update_reg_dead_notes): Likewise.
708         (fix_reg_dead_note): Likewise.
709         (fill_slots_from_thread): Likewise.
710         (delete_computation): Likewise.
711
712 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
713
714         * doc/extend.texi (Variable Attributes): Add menu and proper
715         @nodes to subsections.  Move Microsoft Windows attributes to
716         their own subsection.
717         (Type Attributes): Reorganize introduction to remove duplicate
718         list of attributes.  Add menu and proper @nodes to subsections.
719         Alphabetize the main table of common attributes.
720
721 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
722
723         * match.pd: New simplification patterns.
724         (x + (x & 1))  -> ((x + 1) & ~1)
725         (x & ~(x & y)) -> ((x & ~y))
726         (x | ~(x | y)) -> ((x | ~y))
727
728 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
729
730         * target.def (attribute_table): Mention that struct attribute_spec
731         is defined in tree-core.h rather than tree.h
732         * doc/tm.texi: Regenerate.
733
734 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
735
736         * genrecog.c (test): Rename to rtx_test.  Update rest of file
737         accordingly.
738
739 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
740
741         PR translation/65959
742         * params.h (DEFPARAM): Rename msgid to nocmsgid.
743
744 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
745
746         * gcc/config/aarch64/aarch64-protos.h (tune_params):
747         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
748         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
749         Return value depending on target.
750         (generic_tunings): Initialize new target settings.
751         (cortexa53_tunings): Likewise.
752         (cortexa57_tunings): Likewise.
753         (thunderx_tunings): Likewise.
754         (xgene1_tunings): Likewise.
755
756 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
757
758         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
759         Make Cortex-A53 shift costs more accurate.
760
761 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
762
763         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
764         UNSIGNED_FLOAT.
765
766 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
767
768         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
769         Calculate cost of op0 and op1 in PLUS and MINUS cases.
770
771 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
772
773         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
774         Add cost of op0 in the compare-with-fpzero case.
775
776 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
777
778         * builtins.c (fold_builtin_1): Remove spurious second
779         semicolon.
780         * cgraph.h (symtab_node::get_availability): Likewise.
781         * opts.c (common_handle_option): Remove spurious second semicolon.
782         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
783         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
784
785 2015-04-30  Caroline Tice  <cmtice@google.com>
786
787         PR 65929
788         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
789         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
790         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
791         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
792         * doc/tm.texi: Regenerate.
793         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
794         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
795         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
796         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
797
798 2015-04-30  Marek Polacek  <polacek@redhat.com>
799
800         * varasm.c (handle_cache_entry): Fix logic.
801
802 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
803
804         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
805         (*extrsi5_insn_uxtw_alt): Likewise.
806         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
807         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
808         operations.
809
810 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
811
812         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
813         fabd in ABS case.
814
815 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
816
817         * config/aarch64/aarch64.md
818         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
819         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
820         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
821         appropriately.  Handle alternative EON form.
822
823 2015-04-30  Renlin Li  <renlin.li@arm.com>
824
825         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
826         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
827
828 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
829
830         PR ipa/65873
831         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
832         -fstrict-aliasing boundaries.
833
834 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
835
836         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
837         and [SU]MNEGL patterns.
838
839 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
840
841         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
842         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
843         combined arithmetic-shift ops.  Properly handle all shift and extend
844         operations that can occur in combination with PLUS/MINUS.
845         Rename maybe_fma to compound_p.
846         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
847         arithmetic and shift operations.
848
849 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
850
851         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
852         rather than arith_shift cost when costing ADD/MINUS of an
853         extended value.
854
855 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
856
857         PR lto/65948
858         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
859         to itself.
860
861 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
862
863         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
864         are for the same position.
865
866 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
867
868         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
869         vectorize_loops.
870         (vectorize_loops): Use it.
871
872 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
873
874         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
875         for aggregate types.
876         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
877         type to be non_ODR.
878         * tree.c (need_assembler_name_p): Compute mangled name for
879         non-fundamental types and integer types.
880
881 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
882
883         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
884         manual swaps.
885         * expr.c (expand_expr_real_2): Likewise.
886
887 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
888
889         * tree.c (build_common_builtin_nodes): Do not build
890         __builtin_alloca_with_align as equivalent of library alloca.
891
892 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
893
894         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
895         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
896         bugus variants.
897         * tree.c: Include print-tree.h and ipa-utils.h
898         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
899         (free_lang_data_in_cgraph): Call verify_type.
900         (verify_type_variant): New function.
901         (verify_type): New function.
902         * tree.h (verify_type): Declare.
903
904 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
905
906         * config/mips/mips-cpus.def: (mips4): Change default processor
907         from PROCESSOR_R8000 to PROCESSOR_R10000.
908
909 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
910
911         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
912         la/jalr instead of jal.
913
914 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
915
916         PR target/65871
917         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
918         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
919         (setcc+movzbl peephole2): Check also clobbered reg.
920         (setcc+andl peephole2): Ditto.
921
922 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
923
924         PR libgomp/65099
925         * config/nvptx/mkoffload.c (target_ilp32): New variable.
926         (main): Set it depending on "-foffload-abi=[...]".
927         (compile_native, main): Use it to pass "-m32" or "-m64" to the
928         compiler.
929
930 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
931
932         PR target/65770
933         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
934         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
935         Flip lane index back at assembly time for bigendian.
936
937 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
938
939         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
940         * gimplify.c (gimplify_omp_workshare): Use it.
941
942 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
943
944         * Makefile.in (build/genrecog.o): Depend on inchash.h.
945         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
946         build/inchash.o
947         * genrecog.c: Rewrite most of the code except for the third page.
948
949 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
950
951         * inchash.h, inchash.c: Include bconfig.h for build objects.
952         * Makefile.in (build/inchash.o): New rule.
953
954 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
955
956         PR target/65924
957         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
958         number in type attribute expression.
959
960 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
961
962         * loop-iv.c (canon_condition): Generalize to all types of integer
963         constant.
964
965 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
966
967         * gimple-walk.c: Prune duplicate or unneeded includes.
968         (walk_gimple_asm): Only call parse_input_constraint or
969         parse_output_constraint if their findings are used.
970         Honour parse_input_constraint and parse_output_constraint
971         result.
972
973 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
974
975         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
976
977 2015-04-29  Tom de Vries  <tom@codesourcery.com>
978
979         PR tree-optimization/65893
980         * passes.def (pass_all_optimizations): Move pass_stdarg to after
981         pass_dce.
982
983 2015-04-29  Richard Biener  <rguenther@suse.de>
984
985         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
986         compute GROUP_SIZE for basic-block SLP.
987         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
988         take into account gaps.
989         (vect_get_mask_element): Properly reject references to previous
990         vectors.
991         (vect_transform_slp_perm_load): Likewise.
992
993 2015-04-29  Christian Bruel  <christian.bruel@st.com>
994
995         PR target/64835
996         * config/i386/i386.c (ix86_default_align): New function.
997         (ix86_override_options_after_change): Call ix86_default_align.
998         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
999         (ix86_override_options_after_change): New function.
1000
1001 2015-04-28  Jeff Law  <law@redhat.com>
1002
1003         * tree-ssa-dom.c (record_equality); Fix comment typos.
1004
1005 2015-04-28  Tom de Vries  <tom@codesourcery.com>
1006
1007         PR tree-optimization/65887
1008         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
1009
1010 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
1011
1012         * doc/extend.texi (Declaring Attributes of Functions): Split into
1013         subsections by target.  Alphabetize the table of common attributes.
1014         Rewrite some of the introductory text to reflect the new structure.
1015         Update some cross-references to point to the new subsections.
1016         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
1017         duplicate copies in the discussion of function, label, and type
1018         attributes.
1019
1020 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
1021
1022         PR bootstrap/65910
1023         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
1024
1025 2015-04-28  Jason Merrill  <jason@redhat.com>
1026
1027         PR c++/65734
1028         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
1029         (finalize_type_size): Respect TYPE_USER_ALIGN.
1030         (layout_type) [ARRAY_TYPE]: Likewise.
1031
1032 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
1033
1034         * config/arm/arm.md (*arm_movt): Fix type attribute.
1035         (*cmpsi_shiftsi): Likewise.
1036         (*cmpsi_shiftsi_swp): Likewise.
1037         (*movsicc_insn): Likewise.
1038         (*cond_move): Likewise.
1039         (*if_plus_move): Likewise.
1040         (*if_move_plus): Likewise.
1041         (*if_arith_move): Likewise.
1042         (*if_move_arith): Likewise.
1043         (*if_shift_move): Likewise.
1044         (*if_move_shift): Likewise.
1045         (*arm_movtas_ze): Likewise.
1046         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
1047         redundancy and type attribute.
1048         (*thumb2_movsi_insn): Fix type attribute.
1049         (*thumb2_addsi_short): Likewise.
1050         (thumb2_addsi3_compare0): Likewise.
1051         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
1052         attributes accordingly.
1053
1054 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
1055
1056         PR other/65911
1057         * function.c (pad_to_arg_alignment): Add parentheses.
1058
1059 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
1060
1061         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
1062         libgcc/config/frv/elf-lib.h.
1063
1064 2015-04-28  Tom de Vries  <tom@codesourcery.com>
1065
1066         * tree-call-cdce.c: Fix example in header comment.
1067
1068 2015-04-28  Richard Biener  <rguenther@suse.de>
1069
1070         PR tree-optimization/62283
1071         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
1072         fails fatally and we are vectorizing a basic-block simply
1073         cause the child to be constructed piecewise.
1074         (vect_analyze_slp_cost_1): Adjust.
1075         (vect_detect_hybrid_slp_stmts): Likewise.
1076         (vect_bb_slp_scalar_cost): Likewise.
1077         (vect_get_constant_vectors): For piecewise constructed
1078         constants place them after the last def.
1079         (vect_get_slp_defs): Adjust.
1080         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
1081         externals for basic-block vectorization.
1082
1083 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1084
1085         PR target/63503
1086         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
1087         aarch64-*-*.
1088         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
1089         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
1090         (AARCH64_TUNE_FMA_STEERING): Likewise.
1091         * config/aarch64/aarch64-cores.def: Set
1092         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
1093         FMUL/FMADD instructions.
1094         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
1095         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
1096         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
1097         * config/aarch64/cortex-a57-fma-steering.h: New file.
1098         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1099
1100 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
1101
1102         * gensupport.c (std_preds): Add missing codes to address_operand entry.
1103
1104 2015-04-28  Richard Biener  <rguenther@suse.de>
1105
1106         PR tree-optimization/65851
1107         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
1108         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
1109         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
1110         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
1111         (ccp_visit_phi_node): Adjust.
1112         (evaluate_stmt): For simplifications to SSA names return its
1113         lattice value if that isn't VARYING.  Return immediately when
1114         simplified to a constant.
1115         (visit_assignment): Adjust.
1116         (ccp_visit_stmt): Likewise.
1117
1118 2015-04-28  Tom de Vries  <tom@codesourcery.com>
1119
1120         PR tree-optimization/65818
1121         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
1122         evaluated.
1123
1124 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1125
1126         * calls.c (save_fixed_argument_area): Don't check
1127         ARGS_GROW_DOWNWARD with the preprocessor.
1128         (restore_fixed_argument_area): Likewise.
1129         (mem_overlaps_already_clobbered_arg_p): Likewise.
1130         (check_sibcall_argument_overlap): Likewise.
1131         (expand_call): Likewise.
1132         (emit_library_call_value_1): Likewise.
1133         (store_one_arg): Likewise.
1134         * function.c (assign_parms): Likewise.
1135         (locate_and_pad_parm): Likewise.
1136         (pad_to_arg_alignment): Likewise.
1137         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1138
1139 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1140
1141         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
1142         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
1143         * calls.c (save_fixed_argument_area): Don't chekc if
1144         ARGS_GROW_DOWNWARD is defined.
1145         (restore_fixed_argument_area): Likewise.
1146         (mem_overlaps_already_clobbered_arg_p): Likewise.
1147         (check_sibcall_argument_overlap): Likewise.
1148         (expand_call): Likewise.
1149         (emit_library_call_value_1): Likewise.
1150         (store_one_arg): Likewise.
1151         * function.c (assign_parms): Likewise.
1152         (locate_and_pad_parm): Likewise.
1153         (pad_to_arg_alignment): Likewise.
1154         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1155
1156 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1157
1158         * defaults.h (gen_epilogue): New function.
1159         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
1160         defined.
1161         * cfgrtl.c (cfg_layout_finalize): Likewise.
1162         * df-scan.c: Likewise.
1163         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1164         (reposition_prologue_and_epilogue_notes): Likewise.
1165         * reorg.c (find_end_label): Likewise.
1166         * toplev.c: Likewise.
1167
1168 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1169
1170         * bb-reorder.c (HAVE_return): Don't check if its undefined.
1171         * defaults.h (gen_simple_return): New function.
1172         (gen_simple_return): Likewise.
1173         (HAVE_return): Add default definition to false.
1174         (HAVE_simple_return): Likewise.
1175         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
1176         HAVE_return and HAVE_simple_return are defined.
1177         * function.c (gen_return_pattern): Likewise.
1178         (convert_jumps_to_returns): Likewise.
1179         (thread_prologue_and_epilogue_insns): Likewise.
1180         * reorg.c (find_end_label): Likewise.
1181         (dbr_schedule): Likewise.
1182         * shrink-wrap.c: Likewise.
1183         * shrink-wrap.h: Likewise.
1184
1185 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1186
1187         * defaults.h (EPILOGUE_USES): Add default definition of false.
1188         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
1189         * resource.c (init_resource_info): Likewise.
1190
1191 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1192
1193         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
1194         to false.
1195         * dwarf2out.c (field_byte_offset): REmove check if
1196         PCC_BITFIELD_TYPE_MATTERS is defined.
1197         * stor-layout.c (layout_decl): Likewise.
1198         (update_alignment_for_field): Likewise.
1199         (place_field): Likewise.
1200
1201 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1202
1203         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
1204         true.
1205         * regrename.c (check_new_reg_p): Remove check if
1206         HARD_REGNO_RENAME_OK is defined.
1207         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
1208
1209 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1210
1211         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
1212         * cse.c (fold_rtx): Likewise.
1213         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
1214         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
1215         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
1216         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
1217         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
1218         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
1219         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
1220         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
1221         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
1222         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
1223         * Likewise.
1224         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
1225         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
1226         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
1227         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
1228         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
1229         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
1230         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
1231         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
1232         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
1233         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
1234         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
1235         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
1236         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
1237         * doc/tm.texi: Regenerate.
1238         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
1239         either true or false.
1240
1241 2015-04-27  Jeff Law  <law@redhat.com>
1242
1243         PR tree-optimization/65217
1244         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
1245         of them has a single use, make sure it is the LHS of the implied
1246         copy.
1247
1248 2015-04-28  Alan Modra  <amodra@gmail.com>
1249
1250         PR target/65810
1251         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
1252         (offsettable_ok_by_alignment): Use minimum of decl and toc
1253         pointer alignment.  Replace dead code with assertion.
1254         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
1255         case if size exceeds toc pointer alignment.
1256         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
1257         (rs6000_emit_move): Likewise.
1258         * configure.ac: Add linker toc pointer alignment check.
1259         * configure: Regenerate.
1260         * config.in: Regenerate.
1261
1262 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
1263
1264         * config.gcc: Add h8300-*-linux.
1265         * config/h8300/linux.h: New.
1266         * config/h8300/t-linux: New.
1267         * config/h8300/h8300.c (h8300_option_override): Normal mode
1268         is not supported for h8300-*-linux.
1269         (h8300_file_start): Target priority change.
1270         (get_shift_alg): Likewise.
1271         (h8300_shift_need_scratch_p): Likewise.
1272         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1273         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
1274
1275 2015-04-27  Caroline Tice  <cmtice@google.com>
1276
1277         * final.c (final_scan_insn):  Output cold_function_name as function
1278         type.
1279         * varasm.c (cold_function_name):  Make global.
1280         (assemble_start_function):  Re-set cold_function_name.
1281         (assemble_end_function): Output cold partition size.
1282         * varasm.h (cold_function_name):  Declare global.
1283
1284 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
1285
1286         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
1287         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
1288         constraint.
1289         (*movxi_internal_avx512f): Ditto.
1290         (define_split): Check for xmm16+, when splitting scalar float_extend.
1291         (*extendsfdf2_mixed): Use "v" constraint.
1292         (define_split): Check for xmm16+, when splitting scalar float_truncate.
1293         (*truncdfsf_fast_sse): Use "v" constraint.
1294         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
1295         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
1296         (define_peephole2): Check for xmm16+, when converting scalar
1297         float_truncate.
1298         (define_peephole2): Check for xmm16+, when converting scalar
1299         float_extend.
1300         (*fop_<mode>_comm_mixed): Use "v" constraint.
1301         (*fop_<mode>_comm_sse): Ditto.
1302         (*fop_<mode>_1_mixed): Ditto.
1303         (*sqrt<mode>2_sse): Ditto.
1304         (*ieee_s<ieee_maxmin><mode>3): Ditto.
1305
1306 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1307
1308         * combine.c (simplify_if_then_else): Use std::swap instead
1309         of manually swapping.
1310         (known_cond): Likewise.
1311         (simplify_comparison): Likewise.
1312
1313 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
1314
1315         PR target/64579
1316         * config/rs6000/htm.md: Remove all define_expands.
1317         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
1318         UNSPECV_HTM_TABORTWCI): Remove.
1319         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
1320         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
1321         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
1322         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
1323         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
1324         tabortwci_internal): Remove define_insns.
1325         (tabort<wd>c, tabort<wd>ci): New define_insns.
1326         (tabort): Use gpc_reg_operand.
1327         (tcheck): Remove operand.
1328         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
1329         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
1330         expected value.
1331         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
1332         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
1333         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
1334         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
1335         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
1336         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
1337         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
1338         (tcheck): Remove builtin argument.
1339         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
1340         not TARGET_64BIT.
1341         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
1342         tabortdc and tabortdci builtins when not in 64-bit mode.
1343         Modify code to handle the loss of the HTM define_expands.
1344         Emit code to copy the CR register to TARGET.
1345         (htm_init_builtins): Modify code to handle the loss of the HTM
1346         define_expands.
1347         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
1348         (RS6000_BTC_64BIT): Likewise.
1349         (RS6000_BTC_CR): New macro.
1350         * doc/extend.texi: Update documentation for htm builtins.
1351
1352 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1353
1354         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
1355         of manually swapping.
1356         (simplify_associative_operation): Likewise.
1357         (simplify_binary_operation): Likewise.
1358         (simplify_plus_minus): Likewise.
1359         (simplify_relational_operation): Likewise.
1360         (simplify_ternary_operation): Likewise.
1361
1362 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
1363
1364         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
1365         (xs_hi_nonmemory_operand): Remove error.
1366         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
1367         general_operand rather than xs_hi_general_operand.
1368
1369 2015-04-27  Richard Biener  <rguenther@suse.de>
1370
1371         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
1372         (record_equivalences_from_stmt): Valueize rhs.
1373         (record_equality): Canonicalize x and y order via
1374         tree_swap_operands_p.  Do not swap operands for same loop depth.
1375
1376 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
1377
1378         PR target/65296
1379         PR target/65895
1380         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
1381         Add hint how to use own spec file.
1382
1383 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
1384
1385         PR tree-optimization/65875
1386         * tree-vrp.c (update_value_range): If in is_new case setting
1387         old_vr to VR_VARYING, also set new_vr to it.  Remove
1388         old_vr->type == VR_VARYING test.
1389         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
1390         SSA_PROP_INTERESTING if update_value_range returned true,
1391         but new range is VR_VARYING.
1392
1393 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1394
1395         * combine.c (sign_extend_short_imm): New.
1396         (set_nonzero_bits_and_sign_copies): Use above new function for sign
1397         extension of src short immediate.
1398         (reg_nonzero_bits_for_combine): Likewise for tem.
1399
1400 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1401
1402         * stor-layout.c (self_referential_component_ref_p): New predicate.
1403         (copy_self_referential_tree_r): Use it.
1404         (self_referential_size): Punt for simple operations directly involving
1405         self-referential component references.
1406         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
1407
1408 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1409
1410         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
1411
1412 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
1413
1414         * vec.h (vec): Make splice arguments const.  Update definitions
1415         accordingly.
1416
1417 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
1418
1419         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
1420         alternatives.
1421
1422 2015-04-26  Tom de Vries  <tom@codesourcery.com>
1423
1424         PR tree-optimization/65826
1425         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
1426
1427 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
1428
1429         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
1430         (*madd3<mode>): Ditto.
1431         (*msub4<mode>): Ditto.
1432         (*msub3<mode>): Ditto.
1433         (*nmadd4<mode>): Ditto.
1434         (*nmadd3<mode>): Ditto.
1435         (*nmadd4<mode>_fastmath): Ditto.
1436         (*nmadd3<mode>_fastmath): Ditto.
1437         (*nmsub4<mode>): Ditto.
1438         (*nmsub3<mode>): Ditto.
1439         (*nmsub4<mode>_fastmath): Ditto.
1440         (*nmsub3<mode>_fastmath): Ditto.
1441
1442 2015-04-24  Jason Merrill  <jason@redhat.com>
1443
1444         PR c++/50800
1445         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
1446         down when building TYPE_CANONICAL.
1447         (build_pointer_type_for_mode): Likewise.
1448
1449 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
1450
1451         * genrecog.c (validate_pattern): Check matching constraint refers
1452         to a lower numbered operand.
1453
1454 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1455
1456         PR target/65849
1457         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
1458         save to independent variables use the Save attribute.  This will
1459         allow these options to be modified with the #pragma/attribute
1460         target support.
1461         (-mallow-movmisalign): Likewise.
1462         (-mallow-df-permute): Likewise.
1463         (-msched-groups): Likewise.
1464         (-malways-hint): Likewise.
1465         (-malign-branch-targets): Likewise.
1466         (-mvectorize-builtins): Likewise.
1467         (-msave-toc-indirect): Likewise.
1468
1469         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
1470         can be set via the #pragma/attribute target support.
1471         (rs6000_opt_vars): Likewise.
1472         (rs6000_inner_target_options): If VSX was set, also set
1473         -mno-avoid-indexed-addresses.
1474
1475 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1476
1477         * config/arm/iterators.md (shiftable_ops): Rename to...
1478         (SHIFTABLE_OPS): ... This.  Update use in comments.
1479         (ior_xor): Rename to...
1480         (IOR_XOR): ... This.
1481         (vqh_ops): Rename to...
1482         (VQH_OPS): ... This.
1483         (vqhs_ops): Rename to...
1484         (VQHS_OPS): ... This.
1485         (rshifts): Rename to...
1486         (RSHIFTS): ... This.
1487         (returns): Rename to...
1488         (RETURNS): ... This.
1489         * config/arm/arm.md: Update uses of the above.
1490         * config/arm/neon.md: Likewise.
1491
1492 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1493
1494         * config.host (case ${host}): Add aarch64*-*-linux case.
1495         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
1496         fields to all the cores.
1497         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
1498         Add MCPU_MTUNE_NATIVE_SPECS.
1499         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
1500         field to all extensions.
1501         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
1502         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
1503         Adjust definition of AARCH64_OPT_EXTENSION.
1504         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
1505         (MCPU_MTUNE_NATIVE_SPECS): Define.
1506         * config/aarch64/driver-aarch64.c: New file.
1507         * config/aarch64/x-arch64: New file.
1508         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
1509         -mtune and -march.
1510
1511 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1512             Wei Mi  <wmi@google.com>
1513
1514         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
1515         * config/i386/i386.c (extract_base_offset_in_addr): New function.
1516         (ix86_operands_ok_for_move_multiple): Ditto.
1517         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
1518         (movlpd/movhpd to movupd peephole2): Ditto.
1519
1520 2015-04-24  Marek Polacek  <polacek@redhat.com>
1521
1522         PR c/61534
1523         * input.h (from_macro_expansion_at): Define.
1524
1525         PR c/63357
1526         * doc/invoke.texi: Update description of -Wlogical-op.
1527
1528 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1529
1530         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
1531         ternary operator in fprintf and harmonize spacing.
1532
1533 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1534
1535         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
1536         Mark operand1 commutative.
1537
1538 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
1539
1540         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
1541         input operands in memory.
1542         (*vec_concatv2si_sse4_1): Ditto.
1543         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
1544         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
1545         register_operand.
1546         (vec_extract_hi_v32hi): Ditto.
1547         (vec_extract_hi_v64hi): Ditto.
1548         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
1549
1550 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1551             Steven Bosscher <steven@gcc.gnu.org>
1552
1553         PR rtl-optimization/34503
1554         * cprop.c (cprop_reg_p): New.
1555         (hash_scan_set): Use above function to check if register can be
1556         propagated.
1557         (find_avail_set): Return up to two sets, one whose source is a
1558         register and one whose source is a constant.  Sets are returned in an
1559         array passed as parameter rather than as a return value.
1560         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
1561         sets returned by find_avail_set, starting with the one whose source is
1562         a constant. Use cprop_reg_p to check if register can be propagated.
1563         (do_local_cprop): Use cprop_reg_p to check if register can be
1564         propagated.
1565         (implicit_set_cond_p): Likewise.
1566
1567 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1568
1569         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
1570         (sem_function::equals): IGNORED_NODES parameter is now unused;
1571         update call of equals_private.
1572         (sem_function::equals_private): Do not call equals_wpa; skip
1573         gimple body matching if there is no body.
1574         (sem_function::init): Add logic to hash tthunk info.
1575         (sem_function::parse): Also parse thunks.
1576         * ipa-icf.h (equals_private): Update declaration.
1577
1578 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1579
1580         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
1581         asterisk from name so this can be generated directly.
1582         (*altivec_stvx_<mode>_internal): Likewise.
1583         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
1584         that this is never called during or after reload/lra.
1585         (rs6000_frame_related): Remove split_reg
1586         argument and logic that references it.
1587         (emit_frame_save): Remove last parameter from call to
1588         rs6000_frame_related.
1589         (rs6000_emit_prologue): Remove last parameter from eight calls to
1590         rs6000_frame_related.  Force generation of stvx instruction for
1591         Altivec register saves.  Remove split_reg handling, which is no
1592         longer needed.
1593         (rs6000_emit_epilogue):  Force generation of lvx instruction for
1594         Altivec register restores.
1595
1596 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1597
1598         * config/rs6000/rs6000.opt (mcrypto): Change option description to
1599         match category changes in ISA 2.07B.
1600
1601 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1602
1603         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
1604         iterators.
1605         (cmp_op, cmp_type): New code attributes.
1606         (NEON_VCMP, NEON_VACMP): New int iterators.
1607         (cmp_op_unsp): New int attribute.
1608         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
1609         (neon_vceq<mode>): Delete.
1610         (neon_vc<cmp_op><mode>_insn): New pattern.
1611         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
1612         (neon_vcgeu<mode>): Delete.
1613         (neon_vcle<mode>): Likewise.
1614         (neon_vclt<mode>: Likewise.
1615         (neon_vcage<mode>): Likewise.
1616         (neon_vcagt<mode>): Likewise.
1617         (neon_vca<cmp_op><mode>): New define_expand.
1618         (neon_vca<cmp_op><mode>_insn): New pattern.
1619         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
1620
1621 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1622
1623         * tree.h (attribute_value_equal): Declare.
1624         * tree.c (attribute_value_equal): Export.
1625
1626 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1627
1628         * ipa-icf.c (sem_item::compare_attributes): New function.
1629         (sem_item::compare_referenced_symbol_properties): Compare variable
1630         attributes.
1631         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
1632         (sem_function::param_used_p): New function.
1633         (sem_function::equals_wpa): Fix attribute comparsion; match
1634         parameter type codes; do not compare paremter flags when
1635         they are not used; compare edge flags; compare indirect calls.
1636         (sem_item::update_hash_by_addr_refs): Hash reference type.
1637         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
1638         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
1639         reference use type.
1640         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
1641         * ipa-icf.h (compare_attributes, param_used_p): Declare.
1642
1643 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1644
1645         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
1646         cleanup.
1647         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
1648         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
1649         (sem_item::compare_referenced_symbol_properties): New.
1650         (sem_item::hash_referenced_symbol_properties): New.
1651         (sem_item::compare_cgraph_references): Rename to ...
1652         (sem_item::compare_symbol_references): ... this one; use
1653         compare_referenced_symbol_properties.
1654         (sem_function::equals_wpa): Do not compare
1655         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
1656         DECL_IS_OPERATOR_NEW; compare pointer sizes.
1657         (sem_item::update_hash_by_addr_refs): Call
1658         hash_referenced_symbol_properties.
1659         (sem_item::update_hash_by_local_refs): Cleanup.
1660         (sem_function::merge): Do not mix up symbol properties.
1661         (sem_variable::equals_wpa): Use compare_symbol_references.
1662         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
1663         (sem_item::hash_referenced_symbol_properties): New.
1664         (sem_item::compare_symbol_references): New.
1665         (sem_item::compare_cgraph_references): Remove.
1666
1667 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
1668
1669         PR target/26702
1670         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
1671         Emit size of local.
1672
1673 2015-04-23  Nick Clifton  <nickc@redhat.com>
1674
1675         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
1676         ATTRIBUTE_UNUSED to x parameter.
1677         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
1678
1679 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1680
1681         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
1682         TARGET_CRYPTO to TARGET_P8_VECTOR>
1683         (crypto_vpermxor_<mode>): Likewise.
1684         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
1685         (BU_CRYPTO_3A): Likewise.
1686         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
1687         (BU_CRYPTO_OVERLOAD_3A): New #define.
1688         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
1689         (VPMSUMH): Likewise.
1690         (VPMSUMW): Likewise.
1691         (VPMSUMD): Likewise.
1692         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
1693         (VPERMXOR_V4SI): Likewise.
1694         (VPERMXOR_V8HI): Likewise.
1695         (VPERMXOR_V16QI): Likewise.
1696         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
1697         BU_CRYPTO_OVERLOAD_2A.
1698         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
1699         BU_CRYPTO_OVERLOAD_3A.
1700         * config/rs6000/rs6000.opt (mcrypto): Change description of
1701         option.
1702
1703 2015-04-23  Richard Biener  <rguenther@suse.de>
1704
1705         * passes.def: Remove copy propagation passes run directly after CCP.
1706         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
1707         SSA names.
1708         (ccp_visit_phi_node): Rework to handle first executable edge
1709         specially.
1710
1711 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
1712
1713         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1714         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1715         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1716         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
1717         (thumb_legimitimize_reload_address): Remove.
1718         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
1719         Remove.
1720         (thumb_legimitimize_reload_address): Remove.
1721
1722 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1723
1724         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
1725
1726 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1727
1728         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
1729         MAX_LDM_STM_OPS.
1730         (store_multiple): Likewise.
1731
1732 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1733
1734         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
1735         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
1736         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
1737         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
1738         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
1739         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
1740         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
1741         Specify issue_rate value.
1742         (arm_issue_rate): Look up issue rate from tuning structs. Remove
1743         large switch statement.
1744         (arm_marvell_pj4_tune): New struct.
1745         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
1746         struct.
1747
1748 2015-04-23  Richard Biener  <rguenther@suse.de>
1749
1750         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
1751         (vect_find_last_store_in_slp_instance): Rename to ...
1752         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
1753         (vect_analyze_slp_cost_1): Use vector_load for constant defs
1754         and vec_construct for external defs when estimating prologue cost.
1755         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
1756         Compute costs here only when vectorizing loops.
1757         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
1758         have been determined.
1759         (vect_schedule_slp_instance): Simplify vectorized code placement
1760         and prepare for in-BB external defs.
1761         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
1762         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
1763         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
1764         guard.
1765         (vect_model_load_cost): Likewise.
1766         (vectorizable_store): Instead add it here.
1767         (vectorizable_load): Likewise.
1768         (vect_is_simple_use): Dump def type textually.
1769
1770 2015-04-23  Richard Biener  <rguenther@suse.de>
1771
1772         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
1773         * cfgloop.c (verify_loop_structure): Verify the root loop node.
1774         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
1775         instead of get_eh_region_from_lp_number.
1776         * loop-init.c (fix_loop_structure): If we removed a loop, reset
1777         the SCEV cache.
1778
1779 2015-04-23  Anton Blanchard  <anton@samba.org>
1780
1781         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
1782         need for -mprofile-kernel to save LR to stack.
1783
1784 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1785
1786         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
1787         adjustments.
1788         (insn_is_swappable_p): Return 1 for a convert from double to
1789         single precision when all of its uses are splats of BE element
1790         zero.
1791
1792 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1793
1794         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
1795
1796 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1797
1798         PR target/65456
1799         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
1800         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
1801         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
1802         option.
1803         (rs6000_builtin_mask_for_load): Return 0 for targets with
1804         efficient unaligned VSX accesses so that the vectorizer will use
1805         direct unaligned loads.
1806         (rs6000_builtin_support_vector_misalignment): Always return true
1807         for targets with efficient unaligned VSX accesses.
1808         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
1809         stores on targets with efficient unaligned VSX accesses is almost
1810         always the same as the cost of an aligned load or store, so model
1811         it that way.
1812         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
1813         unaligned vectors if we have efficient unaligned VSX accesses.
1814         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
1815         undocumented option.
1816
1817 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1818
1819         Revert:
1820         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1821
1822         * config.gcc (LIBC_MUSL): New tm_defines macro.
1823         * config/linux.h (OPTION_MUSL): Define.
1824         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1825         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1826         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1827
1828         * config/linux.opt (mmusl): New option.
1829         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1830         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1831
1832         * configure: Regenerate.
1833
1834 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1835
1836         * config.gcc (LIBC_MUSL): New tm_defines macro.
1837         * config/linux.h (OPTION_MUSL): Define.
1838         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1839         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1840         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1841
1842         * config/linux.opt (mmusl): New option.
1843         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1844         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1845
1846         * configure: Regenerate.
1847
1848 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
1849
1850         * doc/invoke.texi (-fsanitize-sections): Update description.
1851         * asan.c (set_sanitized_sections): Parse incoming arg.
1852         (section_sanitized_p): Support wildcards.
1853
1854 2015-04-22  Tom de Vries  <tom@codesourcery.com>
1855
1856         PR tree-optimization/65823
1857         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
1858         equality between ap_copy and ap.
1859
1860 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1861
1862         PR target/47098
1863         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
1864
1865 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1866
1867         PR target/47122
1868         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
1869
1870 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1871
1872         PR target/55144
1873         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
1874         remove already contained t-files.
1875
1876 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1877
1878         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
1879         Remove unneeded forward declarations.
1880         (suitable_for_tail_call_opt_p): Commentary typo fix.
1881
1882 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1883
1884         * varasm.c (emit_bss): Remove redundant guard.
1885
1886 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1887
1888         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
1889
1890 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1891
1892         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
1893
1894 2015-04-22  Hale Wang  <hale.wang@arm.com>
1895             Terry Guo  <terry.guo@arm.com>
1896
1897         PR rtl-optimization/64818
1898         * combine.c (can_combine_p): Don't combine user-specified
1899         register if it is in an asm input.
1900
1901 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
1902
1903         PR ipa/65076
1904         * passes.def (early_optimizations): Add pass_dse.
1905
1906 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1907
1908         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
1909         * reorg.c (redundant_insn): Remove ifdef
1910         INSN_REFERENCES_ARE_DELAYED.
1911         * resource.c (mark_referenced_resources): Likewise.
1912
1913 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1914
1915         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
1916         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
1917         * resource.c (mark_set_resources): Likewise.
1918
1919 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1920
1921         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
1922         * cfgcleanup.c (flow_find_cross_jump): Likewise.
1923         (flow_find_head_matching_sequence): Likewise.
1924         (try_head_merge_bb): Likewise.
1925         * combine.c (can_combine_p): Likewise.
1926         (try_combine): Likewise.
1927         (distribute_notes): Likewise.
1928         * df-problems.c (can_move_insns_across): Likewise.
1929         * final.c (final): Likewise.
1930         * gcse.c (insert_insn_end_basic_block): Likewise.
1931         * ira.c (find_moveable_pseudos): Likewise.
1932         * reorg.c (try_merge_delay_insns): Likewise.
1933         (fill_simple_delay_slots): Likewise.
1934         (fill_slots_from_thread): Likewise.
1935         * sched-deps.c (sched_analyze_2): Likewise.
1936
1937 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1938
1939         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
1940         PIC_OFFSET_TABLE_REGNUM.
1941
1942 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1943
1944         * alias.c (init_alias_target): Remove ifdef
1945         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
1946         * df-scan.c (df_insn_refs_collect): Likewise.
1947         (df_get_regular_block_artificial_uses): Likewise.
1948         (df_get_eh_block_artificial_uses): Likewise.
1949         (df_get_entry_block_def_set): Likewise.
1950         (df_get_exit_block_use_set): Likewise.
1951         * emit-rtl.c (gen_rtx_REG): Likewise.
1952         * ira.c (ira_setup_eliminable_regset): Likewise.
1953         * reginfo.c (init_reg_sets_1): Likewise.
1954         * regrename.c (rename_chains): Likewise.
1955         * reload1.c (reload): Likewise.
1956         (eliminate_regs_in_insn): Likewise.
1957         * resource.c (mark_referenced_resources): Likewise.
1958         (init_resource_info): Likewise.
1959
1960 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1961
1962         * defaults.h (MASK_RETURN_ADDR): New definition.
1963         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1964         MASK_RETURN_ADDR.
1965
1966 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1967
1968         * defaults.h (RETURN_ADDR_OFFSET): New definition.
1969         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1970         RETURN_ADDR_OFFSET.
1971         (expand_builtin_frob_return_addr): Likewise.
1972
1973 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1974
1975         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
1976         (try_redirect_by_replacing_jump): Likewise.
1977         (rtl_tidy_fallthru_edge): Likewise.
1978         * combine.c (insn_a_feeds_b): Likewise.
1979         (find_split_point): Likewise.
1980         (simplify_set): Likewise.
1981         * cprop.c (cprop_jump): Likewise.
1982         * cse.c (cse_extended_basic_block): Likewise.
1983         * df-problems.c (can_move_insns_across): Likewise.
1984         * function.c (emit_use_return_register_into_block): Likewise.
1985         * haifa-sched.c (sched_init): Likewise.
1986         * ira.c (find_moveable_pseudos): Likewise.
1987         * loop-invariant.c (find_invariant_insn): Likewise.
1988         * lra-constraints.c (curr_insn_transform): Likewise.
1989         * postreload.c (reload_combine_recognize_const_pattern):
1990         * Likewise.
1991         * reload.c (find_reloads): Likewise.
1992         * reorg.c (delete_scheduled_jump): Likewise.
1993         (steal_delay_list_from_target): Likewise.
1994         (steal_delay_list_from_fallthrough): Likewise.
1995         (redundant_insn): Likewise.
1996         (fill_simple_delay_slots): Likewise.
1997         (fill_slots_from_thread): Likewise.
1998         (delete_computation): Likewise.
1999         * sched-rgn.c (add_branch_dependences): Likewise.
2000
2001 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2002
2003         * genconfig.c (main): Always define HAVE_cc0.
2004         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
2005         HAVE_cc0.
2006         * cfgcleanup.c (flow_find_cross_jump): Likewise.
2007         (flow_find_head_matching_sequence): Likewise.
2008         (try_head_merge_bb): Likewise.
2009         * cfgrtl.c (rtl_merge_blocks): Likewise.
2010         (try_redirect_by_replacing_jump): Likewise.
2011         (rtl_tidy_fallthru_edge): Likewise.
2012         * combine.c (do_SUBST_MODE): Likewise.
2013         (insn_a_feeds_b): Likewise.
2014         (combine_instructions): Likewise.
2015         (can_combine_p): Likewise.
2016         (try_combine): Likewise.
2017         (find_split_point): Likewise.
2018         (subst): Likewise.
2019         (simplify_set): Likewise.
2020         (distribute_notes): Likewise.
2021         * cprop.c (cprop_jump): Likewise.
2022         * cse.c (cse_extended_basic_block): Likewise.
2023         * df-problems.c (can_move_insns_across): Likewise.
2024         * final.c (final): Likewise.
2025         (final_scan_insn): Likewise.
2026         * function.c (emit_use_return_register_into_block): Likewise.
2027         * gcse.c (insert_insn_end_basic_block): Likewise.
2028         * haifa-sched.c (sched_init): Likewise.
2029         * ira.c (find_moveable_pseudos): Likewise.
2030         * loop-invariant.c (find_invariant_insn): Likewise.
2031         * lra-constraints.c (curr_insn_transform): Likewise.
2032         * optabs.c (prepare_cmp_insn): Likewise.
2033         * postreload.c (reload_combine_recognize_const_pattern):
2034         * Likewise.
2035         * reload.c (find_reloads): Likewise.
2036         (find_reloads_address_1): Likewise.
2037         * reorg.c (delete_scheduled_jump): Likewise.
2038         (steal_delay_list_from_target): Likewise.
2039         (steal_delay_list_from_fallthrough): Likewise.
2040         (try_merge_delay_insns): Likewise.
2041         (redundant_insn): Likewise.
2042         (fill_simple_delay_slots): Likewise.
2043         (fill_slots_from_thread): Likewise.
2044         (delete_computation): Likewise.
2045         (relax_delay_slots): Likewise.
2046         * sched-deps.c (sched_analyze_2): Likewise.
2047         * sched-rgn.c (add_branch_dependences): Likewise.
2048
2049 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2050
2051         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
2052         that is trivially ded on non cc0 targets.
2053         (simplify_set): Likewise.
2054         (mark_used_regs_combine): Likewise.
2055         * cse.c (new_basic_block): Likewise.
2056         (fold_rtx): Likewise.
2057         (cse_insn): Likewise.
2058         (cse_extended_basic_block): Likewise.
2059         (set_live_p): Likewise.
2060         * rtlanal.c (canonicalize_condition): Likewise.
2061         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2062
2063 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2064
2065         * conditions.h: Define macros even if HAVE_cc0 is undefined.
2066         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
2067         * final.c: Likewise.
2068         * jump.c: Likewise.
2069         * recog.c: Likewise.
2070         * recog.h: Declare functions even when HAVE_cc0 is undefined.
2071         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
2072
2073 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2074
2075         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
2076         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
2077         * builtins.c (expand_builtin): Remove check if
2078         EH_RETURN_DATA_REGNO is defined.
2079         * df-scan.c (df_bb_refs_collect): Likewise.
2080         (df_get_exit_block_use_set): Likewise.
2081         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
2082         * ira-lives.c (process_bb_node_lives): Likewise.
2083         * lra-lives.c (process_bb_lives): Likewise.
2084
2085 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
2086
2087         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
2088         FIRST_PSEUDO_REG): New.
2089         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
2090         (ARG_POINTER_REGNUM): Define to ARGP_REG.
2091         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
2092         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
2093         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
2094         (FIRST_INT_REG): New.
2095         (LAST_INT_REG): New.
2096         (FIRST_*_REG): Define using *_REG.
2097         (LAST_*_REG): Ditto.
2098         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
2099         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
2100         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
2101
2102 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2103
2104         * expmed.c: (synth_mult): Only assume overlapping
2105         shift with previous steps in alg_sub_t_m2 case.
2106
2107 2015-04-21  Richard Biener  <rguenther@suse.de>
2108
2109         PR tree-optimization/65650
2110         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
2111         transitions involving copies.
2112         (set_lattice_value): Adjust for copy lattice state.
2113         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
2114         if that doesn't dominate the merge point.
2115         (bit_value_unop): Adjust what we treat as varying mask.
2116         (bit_value_binop): Likewise.
2117         (bit_value_assume_aligned): Likewise.
2118         (evaluate_stmt): When we simplified to a SSA name record a copy
2119         instead of dropping to varying.
2120         (visit_assignment): Simplify.
2121
2122         * gimple-match.h (gimple_simplify): Add another callback.
2123         * gimple-fold.c (fold_stmt_1): Adjust caller.
2124         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
2125         for the 2nd callback.
2126         * gimple-match-head.c (gimple_simplify): Add a callback that is
2127         used to valueize the stmt operands and use it that way.
2128
2129 2015-04-21  Richard Biener  <rguenther@suse.de>
2130
2131         PR tree-optimization/65788
2132         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
2133
2134 2015-04-21  Richard Biener  <rguenther@suse.de>
2135
2136         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
2137         vec_construct cost by vec_stmt_cost.
2138
2139 2015-04-21  Richard Biener  <rguenther@suse.de>
2140
2141         * cfghooks.h (create_basic_block): Replace with two overloads
2142         for RTL and GIMPLE.
2143         (split_block): Likewise.
2144         * cfghooks.c (split_block): Rename to ...
2145         (split_block_1): ... this.
2146         (split_block): Add two type-safe overloads for RTL and GIMPLE.
2147         (split_block_after_labels): Call split_block_1.
2148         (create_basic_block): Rename to ...
2149         (create_basic_block_1): ... this.
2150         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
2151         (create_empty_bb): Call create_basic_block_1.
2152         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
2153         split_block_after_labels.
2154         * omp-low.c (expand_parallel_call): Likewise.
2155         (expand_omp_target): Likewise.
2156         (simd_clone_adjust): Likewise.
2157         * tree-chkp.c (chkp_get_entry_block): Likewise.
2158         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
2159         create_basic_block overload.
2160         (cgraph_node::expand_thunk): Likewise.
2161         * tree-cfg.c (make_blocks): Likewise.
2162         (handle_abnormal_edges): Likewise.
2163         * tree-inline.c (copy_bb): Likewise.
2164
2165 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2166
2167         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
2168         New pattern.
2169         (*xor_one_cmplsidi3_ze): Likewise.
2170
2171 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2172
2173         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
2174         use df_remove_problem rather than manually removing problems, leaving
2175         holes in df->problems_in_order[].
2176
2177 2015-04-21  Tom de Vries  <tom@codesourcery.com>
2178
2179         PR tree-optimization/65802
2180         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
2181
2182 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2183
2184         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
2185         Increase to 128.
2186         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
2187         at '.'.  Assert that there's enough space for everything.
2188
2189 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
2190
2191         PR tree-optimization/64950
2192         Revert:
2193         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
2194
2195         PR target/41089
2196         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
2197         as volatile.
2198
2199 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
2200
2201         PR rtl-optimization/64916
2202         * cfgcleanup.c (values_equal_p): New function.
2203         (can_replace_by): Use it.
2204
2205 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
2206
2207         PR c++/65801
2208         * doc/invoke.texi ([-Wnarrowing]): Update.
2209
2210 2015-04-20  Jeff Law  <law@redhat.com>
2211
2212         PR tree-optimization/65658
2213         * tree-ssa-threadupdate.c (redirection_block_p): Remove
2214         redundant test for GIMPLE_ASSIGN in last change.
2215
2216 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
2217
2218         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
2219         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
2220         (legitimize_tls_address): Ditto.
2221         (ix86_expand_move): Ditto.
2222         (ix86_expand_binary_operator): Remove reload_in_progress checks.
2223         (ix86_expand_unary_operator): Ditto.
2224         * config/i386/predicates.md (index_register_operand): Ditto.
2225
2226 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
2227
2228         * reorg.c (try_merge_delay_insns): Improve correctness checking
2229         for targets with multiple delay slots.
2230
2231 2015-04-20  Jeff Law  <law@redhat.com>
2232
2233         PR tree-optimization/65658
2234         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
2235         statements too.
2236
2237 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
2238
2239         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
2240         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
2241         Delete.
2242
2243 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
2244
2245         PR debug/65807
2246         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
2247
2248 2015-04-20  Richard Biener  <rguenther@suse.de>
2249
2250         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
2251         * gimple-fold.c (gimple_build_valueize): New function.
2252         (gimple_build): Always use gimple_build_valueize as valueize hook.
2253
2254 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
2255
2256         PR target/64134
2257         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
2258         and overwrite variable parts if <= 1/2 the elements are variable.
2259
2260 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2261
2262         PR rtl-optimization/65805
2263         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
2264         Don't use difference of offset and previous offset if
2265         update_sp_offset is non-zero.
2266         (eliminate_regs_in_insn): Ditto.
2267         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
2268         lra_eliminate_regs_1 call.
2269         * lra-constraints.c (get_equiv_with_elimination): Ditto.
2270
2271 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
2272
2273         * hash-table.h: Remove version of hash_table that stored value_type *.
2274         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
2275         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
2276         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
2277         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
2278         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
2279         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
2280         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
2281         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
2282         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
2283         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
2284         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
2285         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
2286         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
2287         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
2288         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
2289         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
2290
2291 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2292             Jakub Jelinek  <jakub@redhat.com>
2293
2294         PR target/65787
2295         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
2296         subsequent SH_NONE operand does not overwrite an existing *special
2297         value.
2298         (adjust_extract): Handle case where a vec_extract operation is
2299         wrapped in a PARALLEL.
2300
2301 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2302
2303         PR target/65780
2304         * config/i386/i386.c (ix86_binds_local_p): Define only if
2305         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
2306
2307 2015-04-17  Jeff Law  <law@redhat.com>
2308
2309         PR tree-optimization/47679
2310         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
2311         * tree-ssa-scopedtables.c: New file.
2312         * tree-ssa-scopedtables.h: New file.
2313         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
2314         (const_and_copies): Change name/type.
2315         (record_const_or_copy): Move into tree-ssa-scopedtables.c
2316         (record_const_or_copy_1): Similarly.
2317         (restore_vars_to_original_value): Similarly.
2318         (pass_dominator::execute): Create and destroy const_and_copies table.
2319         (thread_across_edge): Update passing of const_and_copies.
2320         (record_temporary_equivalence): Use method calls rather than
2321         manipulating const_and_copies directly.
2322         (record_equality, cprop_into_successor_phis): Similarly.
2323         (dom_opt_dom_walker::before_dom_children): Similarly.
2324         (dom_opt_dom_walker::after_dom_children): Similarly.
2325         (eliminate_redundant_computations): Similarly.
2326         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
2327         (record_temporary_equivalence): Likewise.
2328         (invalidate_equivalences): Likewise.
2329         (record_temporary_equivalences_from_phis): Update due to type
2330         change of const_and_copies.  Use method calls rather than
2331         manipulating the stack directly.
2332         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
2333         (thread_through_normal_block, thread_across_edge): Likewise.
2334         (thread_across_edge): Likewise.
2335         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
2336         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
2337         of equiv_stack.
2338         (identify_jump_threads): Update due to type change of equiv_stack.
2339         (finalize_jump_threads): Delete the equiv_stack when complete.
2340
2341 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
2342
2343         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
2344         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
2345         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
2346
2347 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
2348
2349         PR target/65535
2350         * config.gcc: Exit with a comment when we do not have a major version
2351         number for the FreeBSD target.
2352
2353 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2354
2355         PR target/65689
2356         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
2357         maybe_allows_mem bitfields.
2358         (maybe_allows_none_start, maybe_allows_none_end,
2359         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
2360         maybe_allows_mem_end): New variables.
2361         (compute_maybe_allows): New function.
2362         (add_constraint): Use it to initialize maybe_allows_reg and
2363         maybe_allows_mem fields.
2364         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
2365         is_address constraints such that those that allow neither mem nor
2366         reg come first, then those that only allow reg but not mem, then
2367         those that only allow mem but not reg, then the rest.
2368         (write_allows_reg_mem_function): New function.
2369         (write_tm_preds_h): Call it.
2370         * stmt.c (parse_output_constraint, parse_input_constraint): Use
2371         the generated insn_extra_constraint_allows_reg_mem function
2372         instead of always setting *allows_reg = true; *allows_mem = true;
2373         for unknown extra constraints.
2374
2375 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2376
2377         PR target/65780
2378         * output.h (default_binds_local_p_3): New.
2379         * varasm.c (default_binds_local_p_3): Make it public.  Take an
2380         argument to indicate if common symbol may be local.  If common
2381         symbol may be local, treat non-external variable as defined
2382         locally.
2383         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
2384         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
2385         * config/i386/i386.c (ix86_binds_local_p): New.
2386         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
2387         ix86_binds_local_p.
2388
2389 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2390
2391         PR debug/65771
2392         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
2393         trying mem_loc_descriptor on XEXP (rtl, 0).
2394
2395 2015-04-17  Martin Liska  <mliska@suse.cz>
2396
2397         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
2398         Release symbol_compare_collection.
2399         * ipa-reference.c: Add TODO that a vector should be released.
2400
2401 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
2402
2403         PR target/65296
2404         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
2405         to new AVR-LibC file layout (bug #44574).
2406         (*avrlibc_devicelib): Same.
2407         * config/avr/avr-mcus.def: Adjust comments.
2408         * config/avr/avr.opt (nodevicelib): Adjust help.
2409
2410 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
2411
2412         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
2413
2414 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
2415
2416         PR c++/64527
2417         * gimplify.c (gimplify_init_constructor): Always emit a
2418         side-effecting constructor.
2419
2420 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2421
2422         PR tree-optimization/64950
2423         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
2424         in cfun->curr_properties.
2425         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
2426         if we generate an IFN_VA_ARG.
2427         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
2428         function if PROP_gimple_lva is not set in src function.
2429
2430 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2431             Michael Matz  <matz@suse.de>
2432
2433         PR tree-optimization/64950
2434         * gimple-iterator.c (update_modified_stmts): Remove static.
2435         * gimple-iterator.h (update_modified_stmts): Declare.
2436         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
2437         (gimplify_va_arg_internal): New function.
2438         (gimplify_va_arg_expr): Use IFN_VA_ARG.
2439         * gimplify.h (gimplify_va_arg_internal): Declare.
2440         * internal-fn.c (expand_VA_ARG): New unreachable function.
2441         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
2442         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
2443         (expand_ifn_va_arg): New function.
2444         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
2445         (pass_stdarg::execute): Call expand_ifn_va_arg.
2446         (pass_data_lower_vaarg): New pass_data.
2447         (pass_lower_vaarg): New gimple_opt_pass.
2448         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
2449         (make_pass_lower_vaarg): New function.
2450         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
2451         properties_required field.
2452         * passes.def (all_passes): Add pass_lower_vaarg.
2453         * tree-pass.h (PROP_gimple_lva): Add define.
2454         (make_pass_lower_vaarg): Declare.
2455
2456 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2457
2458         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
2459         * calls.c (call_expr_flags): Same.
2460
2461 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2462
2463         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
2464         (pass_stdarg::execute): ... here.
2465
2466 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2467             Michael Matz  <matz@suse.de>
2468
2469         * tree-cfg.c (make_blocks_1): Factor out of ...
2470         (make_blocks): ... here.
2471         (make_edges_bb): Factor out of ...
2472         (make_edges): ... here.
2473         (gimple_find_sub_bbs): New function.
2474         * tree-cfg.h (gimple_find_sub_bbs): Declare.
2475
2476 2015-04-17  Tom de Vries  <tom@codesourcery.com>
2477
2478         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
2479
2480 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
2481
2482         * asan.c (set_sanitized_sections): New function.
2483         (section_sanitized_p): Ditto.
2484         (asan_protect_global): Optionally sanitize user-defined
2485         sections.
2486         * asan.h (set_sanitized_sections): Declare new function.
2487         * common.opt (fsanitize-sections): New option.
2488         * doc/invoke.texi (-fsanitize-sections): Document new option.
2489         * opts-global.c (handle_common_deferred_options): Handle new
2490         option.
2491
2492 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
2493
2494         PR debug/65771
2495         * dwarf2out.c (loc_list_from_tree): Return NULL
2496         for DEBUG_EXPR_DECL.
2497
2498 2015-04-17  Christian Bruel  <christian.bruel@st.com>
2499
2500         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
2501         same attributes.
2502
2503 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
2504
2505         * ira-color.c (setup_left_conflict_sizes_p): Do not process
2506         node itself when computing left conflict subnode size.
2507
2508 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
2509
2510         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
2511         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
2512         *fop_<mode>_1_sse using enabled attribute.  Use
2513         register_mixssei387nonimm_operand operand 1 predicate. Change
2514         alternative 3 constraints from "x" to "v".
2515
2516 2015-04-16  Richard Biener  <rguenther@suse.de>
2517
2518         PR tree-optimization/65774
2519         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
2520         bit-value tracking on.
2521
2522 2015-04-16  Richard Biener  <rguenther@suse.de>
2523
2524         PR tree-optimization/64277
2525         * tree-vrp.c (check_array_ref): Fix anti-range handling,
2526         simplify upper bound handling.
2527         (search_for_addr_array): Simplify.
2528         (check_array_bounds): Handle ADDR_EXPRs here.
2529         (check_all_array_refs): Simplify.
2530
2531 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
2532
2533         * config/i386/i386.c (print_reg): Rewrite function.
2534
2535 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2536
2537         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
2538         Invert the condition.
2539
2540 2015-04-16  Renlin Li  <renlin.li@arm.com>
2541
2542         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
2543         simplifications for UNSIGNED_FLOAT.
2544
2545 2015-04-16  Nick Clifton  <nickc@redhat.com>
2546
2547         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
2548         MUL_UNINIT.
2549         (enum rl78_cpu_type): New.
2550         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
2551         (umulhi3_shift_virt): Remove m constraint from operand 1.
2552         (umulqihi3_virt): Likewise.
2553         * config/rl78/rl78.c (rl78_option_override): Add code to process
2554         -mcpu and -mmul options.
2555         (rl78_alloc_physical_registers): Add code to handle divhi and
2556         divsi valloc attributes.
2557         (set_origin): Likewise.
2558         * config/rl78/rl78.h (RL78_MUL_G14): Define.
2559         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
2560         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
2561         __RL78_Gxx__.
2562         (ASM_SPEC): Pass -mcpu on to assembler.
2563         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
2564         (mulqi3_rl78): Likewise.
2565         (mulhi3_g13): Likewise.
2566         (mulhi3): Generate the G13 or G14 versions of the insn directly.
2567         (mulsi3): Likewise.
2568         (mulhi3_g14): Add clobbers of AX and BC.
2569         (mulsi3_g14): Likewise.
2570         (mulsi3_g13): Likewise.
2571         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
2572         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
2573         * config/rl78/rl78.opt (mmul): Initialise value to
2574         RL78_MUL_UNINIT.
2575         (mcpu): New option.
2576         (m13, m14, mrl78): New option aliases.
2577         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
2578         (MULTILIB_DIRNAMES): Add g13 and g14.
2579         * doc/invoke.texi: Document -mcpu and -mmul options.
2580
2581 2015-04-16  Richard Biener  <rguenther@suse.de>
2582
2583         * tree-ssa-ccp.c (likely_value): See if we have operands that
2584         are marked as never simulate again and return CONSTANT in this
2585         case.
2586         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
2587         not have any operands that will be simulated again as
2588         not being simulated again.
2589
2590 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
2591
2592         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
2593         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
2594         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
2595         attribute.
2596         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
2597         enabled attribute.
2598         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
2599         *float<SWI48:mode><MODEF:mode>2_sse.
2600         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
2601         enabled attribute.
2602         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
2603         enabled attribute.
2604
2605 2015-04-15  Tom de Vries  <tom@codesourcery.com>
2606
2607         PR other/65487
2608         * function.c (push_dummy_function): New function.
2609         (init_dummy_function_start): Use push_dummy_function.
2610         (pop_dummy_function): New function.  Factored out of ...
2611         (expand_dummy_function_end): ... here.
2612         * function.h (push_dummy_function, pop_dummy_function): Declare.
2613         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
2614         pop_dummy_function.
2615         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
2616
2617 2015-04-15  Jeff Law  <law@redhat.com>
2618
2619         PR tree-optimization/47679
2620         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
2621         need for forward declaration in upcoming changes.
2622         (record_conditions, record_edge_info): Likewise.
2623
2624         PR rtl-optimization/42522
2625         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
2626         SIGN_EXTRACT as a whole object rather than simplifying
2627         its operand.
2628
2629 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
2630
2631         PR ipa/65765
2632         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
2633         and GIMPLE_PREDICT use break instead of return true. For
2634         GIMPLE_EH_DISPATCH, compare dispatch region.
2635
2636 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
2637
2638         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
2639         details about the implementation.  Make clear preference for
2640         __atomic builtins.  Reduce possibility of future change.
2641
2642 2015-04-15  Nick Clifton  <nickc@redhat.com>
2643
2644         * config/rx/rx.opt (mallow-string-insns): New option.
2645         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
2646         builtin if string instructions are denied.
2647         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
2648         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
2649         appropriate.
2650         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
2651         * config/rx/rx.md (movstr): Enable pattern only if string
2652         instructions are allowed.
2653         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
2654         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
2655         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
2656         (MULTILIB_DIRNAMES): Add no-strings.
2657         * doc/invoke.texi: Document -mno-allow-string-insns.
2658
2659 2015-04-15  Alan Modra  <amodra@gmail.com>
2660
2661         PR target/65408
2662         PR target/58744
2663         PR middle-end/36043
2664         * calls.c (load_register_parameters): Don't load past end of
2665         mem unless suitably aligned.
2666
2667 2015-04-15  Nick Clifton  <nickc@redhat.com>
2668
2669         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
2670         decrement instruction as being frame related.
2671         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
2672         based addresses.
2673         If zero extending a function address enclose the operation in
2674         %code(...).
2675         (rl78_preferred_reload_class): New function.
2676         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2677         * config/rl78/rl78.md: Remove useless constraints in expanders.
2678         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
2679         (mulhi3_rl78): Likewise.
2680         (mulhi3_g13): Likewise.
2681         (mulsi3_rl78): Likewise.
2682         (es_addr): Move to before the multiply patterns.
2683
2684 2015-04-15  Alan Modra  <amodra@gmail.com>
2685
2686         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
2687         and sequence_stack.  Add seq.
2688         (seq_stack): Delete.
2689         * function.c (prepare_function_start): Don't access x_last_insn.
2690         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
2691         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
2692         * emit_rtl.c (start_sequence, push_topmost_sequence,
2693         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
2694         sequence accessors.
2695         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
2696         remove_insn): Likewise.  Simplify.
2697         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
2698         and pop_topmost_sequence.
2699         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
2700         debug insns.
2701         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
2702
2703 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
2704
2705         PR target/65729
2706         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
2707         the assertiion.
2708
2709 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2710
2711         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
2712         (LEGACY_INT_REGNO_P): Ditto.
2713         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
2714         (ANY_MASK_REG_P): Remove.
2715         (BND_REG_P): Rename from ANY_BND_REG_P.
2716         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
2717         legacy integer registers.  Do not handle MMX_REG_P in a special way.
2718         Merge 64byte and 32byte SSE handling.
2719
2720 2015-04-14  Nick Clifton  <nickc@redhat.com>
2721
2722         * expr.c (expand_assignment): Force an address offset computation
2723         into a register before changing its mode.
2724         (expand_expr_real_1): Likewise.
2725
2726 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
2727
2728         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
2729         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
2730         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
2731         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
2732         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
2733         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
2734         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
2735         and __aarch64_vget_lane_any.
2736
2737 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
2738
2739         PR rtl-optimization/65761
2740         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
2741         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
2742
2743 2015-04-14  Richard Biener  <rguenther@suse.de>
2744
2745         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
2746         (graphite_can_represent_scev): Use POINTER_TYPE_P.
2747
2748 2015-04-14  Richard Biener  <rguenther@suse.de>
2749
2750         PR tree-optimization/65758
2751         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
2752         against -1.
2753         (ccp_lattice_meet): Likewise.
2754         (bit_value_unop): Likewise.
2755         (bit_value_binop): Likewise.
2756         (bit_value_assume_aligned): Likewise.
2757
2758 2015-04-14  Christian Bruel  <christian.bruel@st.com>
2759
2760         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
2761         function.
2762
2763 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
2764
2765         PR tree-optimization/63387
2766         * match.pd ((x unord x) | (y unord y) -> (x unord y),
2767         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
2768
2769 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2770
2771         * config/i386/predicates.md (any_QIreg_operand): Rename from
2772         q_regs_operand.  Do not process subregs.
2773         (QIreg_operand): Use QI_REGNO_P predicate.
2774         (ext_QIreg_operand): Ditto.
2775         (ext_register_operand): Ditto.
2776         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
2777         (AND splitters): Ditto.
2778         (AND with -65536 splitter): Add SWI48 mode for operand 0.
2779         (AND with -256 splitter): Use any_QIreg_operand predicate and
2780         SWI248 mode for operand 0.
2781         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
2782         mode for operand 0.
2783         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
2784
2785 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
2786
2787         * doc/plugins.texi: Rewrite first introductory paragraph.
2788
2789 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2790
2791         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
2792         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
2793
2794 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2795
2796         * ipa-profie.c (ipa_profile): Check number of parameters
2797         and possible polymorphic call targets before
2798         devirtualizing.
2799
2800 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
2801
2802         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
2803         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
2804
2805 2015-04-13  Richard Biener  <rguenther@suse.de>
2806
2807         PR tree-optimization/65204
2808         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
2809         takens for bit-CCP.
2810
2811 2015-04-13  Richard Biener  <rguenther@suse.de>
2812
2813         PR target/65660
2814         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
2815         and cond_not_taken_branch_cost to 4 and 2.
2816         (bdver2_cost): Likewise.
2817         (bdver3_cost): Likewise.
2818         (bdver4_cost): Likewise.
2819
2820 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2821
2822         * hash-table.h (hash_table constructor): Add mem stats.
2823         (alloc_entries): Likewise.
2824
2825 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2826
2827         * ipa-cp.c (ipcp_driver): Relase prev_edge.
2828         * passes.c (execute_one_pass): Only add transform if pass has one.
2829
2830 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
2831
2832         * config/i386/i386.c (ix86_option_override_internal): Don't set
2833         -fprefetch-loop-arrays if optimizing for size.
2834
2835 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2836             Gerald Pfeifer  <gerald@pfeifer.com>
2837
2838         * doc/contrib.texi (Contributors): Add Martin Jambor and
2839         Michael Matz.
2840
2841 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
2842
2843         * BASE-VER: Set to 6.0.0.
2844
2845         PR tree-optimization/65747
2846         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
2847         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
2848
2849 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2850
2851         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
2852         sentence.  Improve grammar.
2853
2854 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2855
2856         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
2857
2858 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2859
2860         PR ipa/65743
2861         * ipa-inline-transform.c (speculation_removed): Remove static var.
2862         (check_speculations): New function.
2863         (clone_inlined_nodes): Do not check spculations.
2864         (inline_call): Call check_speculations.
2865         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
2866         consider non-invariants.
2867
2868 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2869             Martin Liska  <mliska@suse.cz>
2870
2871         PR ipa/65722
2872         * ipa-icf.c (sem_item::compare_cgraph_references): function and
2873         variable can not match.
2874         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
2875         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
2876
2877 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
2878
2879         PR tree-optimization/65735
2880         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
2881         Remove visited_phis argument, add visited_bbs, avoid recursing into the
2882         same bb rather than just into the same phi node.
2883         (thread_through_normal_block): Adjust caller.
2884
2885 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2886
2887         * doc/contrib.texi (Contributors): Add Ira Rosen.
2888
2889 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
2890
2891         * gcov.c (find_source): Fix miswording in error message.
2892         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
2893         (ix86_expand_sse_comi_round): Fix typo in error message.
2894
2895 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2896
2897         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
2898
2899 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
2900
2901         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
2902
2903 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2904
2905         PR target/65710
2906         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
2907         Print bad_spills_num and insn_pseudos_num.
2908
2909 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2910
2911         PR target/65694
2912         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
2913         when creating +1 values for SImode.
2914
2915 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2916
2917         PR target/65729
2918         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
2919         assert.
2920
2921 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
2922             Iain Sandoe  <iain@codesourcery.com>
2923
2924         PR target/65351
2925         * configure: Regenerate.
2926
2927 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2928
2929         PR target/65671
2930         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
2931
2932 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
2933
2934         * doc/contrib.texi (Contributors): Add John Marino.
2935
2936 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2937
2938         PR tree-optimization/65709
2939         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
2940         TREE_TYPE (TREE_TYPE (t)).
2941
2942 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
2943
2944         PR target/65710
2945         * lra-int.h (lra_bad_spill_regno_start): New.
2946         * lra.c (lra_bad_spill_regno_start): New.
2947         (lra): Set up lra_bad_spill_regno_start.  Set up
2948         lra_constraint_new_regno_start unconditionally.
2949         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
2950         spill preferences.
2951
2952 2015-04-09  Marek Polacek  <polacek@redhat.com>
2953             Jakub Jelinek  <jakub@redhat.com>
2954
2955         PR middle-end/65554
2956         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
2957         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
2958         of STRIP_NOPS.
2959
2960 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
2961
2962         PR rtl-optimization/65693
2963         * combine.c (is_parallel_of_n_reg_sets): Move outside of
2964         #ifndef HAVE_cc0.
2965
2966 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
2967
2968         PR target/65296
2969         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
2970         device specs file if "device-specs%s" didn't resolve to a path.
2971
2972 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2973
2974         PR target/65676
2975         * config/i386/i386.c (fixup_modeless_constant): New.
2976         (ix86_expand_args_builtin): Fixup modeless constant operand.
2977         (ix86_expand_round_builtin): Ditto.
2978         (ix86_expand_special_args_builtin): Ditto.
2979         (ix86_expand_builtin): Ditto.
2980
2981 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2982
2983         PR target/65693
2984         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
2985         any pow2 integer in between 2 and 0x80000000U inclusive.
2986
2987 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
2988
2989         PR rtl-optimization/65693
2990         * combine.c (is_parallel_of_n_reg_sets): Change first argument
2991         from an rtx_insn * to an rtx.
2992         (try_combine): Adjust both callers.  Use it once more.
2993
2994 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2995
2996         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
2997         (chkp_make_static_const_bounds): Search existing
2998         symbol by assembler name.  Use make_decl_one_only.
2999         (chkp_get_zero_bounds_var): Remove node search which
3000         is now performed in chkp_make_static_const_bounds.
3001         (chkp_get_none_bounds_var): Likewise.
3002
3003 2015-04-08  Michael Witten  <mfwitten@gmail.com>
3004
3005         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
3006         to an example.
3007
3008 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3009
3010         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
3011
3012 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
3013
3014         * doc/extend.texi (__sync Builtins): Fix grammar.
3015
3016 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3017
3018         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
3019
3020 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3021
3022         * varasm.c (emit_local): Move definition of align.
3023
3024 2015-04-08  Julian Brown  <julian@codesourcery.com>
3025
3026         * config/nvptx/mkoffload.c (process): Support variable mapping.
3027
3028 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
3029
3030         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
3031         alpha_links **.
3032         (alpha_write_one_linkage): Correct typo.
3033
3034 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
3035
3036         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
3037
3038 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
3039
3040         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
3041
3042 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
3043
3044         * tree-chkp.h (chkp_insert_retbnd_call): New.
3045         * tree-chkp.c (chkp_insert_retbnd_call): New.
3046         * ipa-split.c (insert_bndret_call_after): Remove.
3047         (split_function): Use chkp_insert_retbnd_call.
3048         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
3049         bounds for instrumented functions.
3050
3051 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
3052
3053         PR ipa/65540
3054         * calls.c (initialize_argument_information): When producing tail
3055         call also turn SSA_NAMES passed by references to original PARM_DECLs
3056
3057 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
3058
3059         PR target/65648
3060         * lra-remat.c (do_remat): Process input and non-input insn
3061         registers separately.
3062
3063 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
3064
3065         PR debug/65678
3066         * valtrack.c (debug_lowpart_subreg): New function.
3067         (dead_debug_insert_temp): Use it.
3068
3069         PR middle-end/65680
3070         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
3071         into signed HOST_WIDE_INT the same as negative bit_offset.
3072
3073 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
3074
3075         * ipa-comdats.c (ipa_comdats): Visit all thunks
3076         to set proper comdat group.
3077
3078 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3079
3080         PR target/65489
3081         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
3082         on constants for NEON VSTRUCT modes.
3083
3084 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
3085             Iain Sandoe  <iain@codesourcery.com>
3086
3087         PR target/65351
3088         * configure: Regenerate.
3089
3090 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3091
3092         PR target/65614
3093         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
3094         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
3095         that LFD is used to load double constants instead of LFS.  Add
3096         defaults for all costs structures.  Add comments for missing
3097         initialization fields.
3098         (size32_cost): Likewise.
3099         (size64_cost): Likewise.
3100         (rs64a_cost): Likewise.
3101         (mpccore_cost): Likewise.
3102         (ppc403_cost): Likewise.
3103         (ppc405_cost): Likewise.
3104         (ppc440_cost): Likewise.
3105         (ppc476_cost): Likewise.
3106         (ppc601_cost): Likewise.
3107         (ppc603_cost): Likewise.
3108         (ppc604_cost): Likewise.
3109         (ppc604e_cost): Likewise.
3110         (ppc620_cost): Likewise.
3111         (ppc630_cost): Likewise.
3112         (ppccell_cost): Likewise.
3113         (ppc750_cost): Likewise.
3114         (ppc7450_cost): Likewise.
3115         (ppc8540_cost): Likewise.
3116         (ppce300c2c3_cost): Likewise.
3117         (ppce500mc_cost): Likewise.
3118         (ppce500mc64_cost): Likewise.
3119         (ppce5500_cost): Likewise.
3120         (ppce6500_cost): Likewise.
3121         (titan_cost): Likewise.
3122         (power4_cost): Likewise.
3123         (power6_cost): Likewise.
3124         (power7_cost): Likewise.
3125         (power8_cost): Likewise.
3126         (ppca2_cost): Likewise.
3127         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
3128
3129         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
3130         instead of XXLOR to copy SFmode to clear out dirty bits created
3131         when SFmode denormals are generated.
3132         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
3133         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
3134
3135 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
3136
3137         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
3138         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
3139         * config/aarch64/aarch64-tune.md: Regenerate.
3140
3141 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
3142
3143         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
3144         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
3145         * config/arm/arm-cores.def (exynos-m1): New core.
3146         * config/arm/arm-tune.md: Regenerate.
3147         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
3148         * config/arm/bpabi.h: Likewise.
3149
3150 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
3151
3152         * ipa-cp (set_single_call_flag): Remove too
3153         restrictive assert.
3154
3155 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
3156
3157         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
3158         GOMP_offload_unregister from the destructor.
3159
3160 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
3161
3162         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
3163         flags for instrumentation thunk.
3164         (chkp_produce_thunks): Likewise.
3165
3166 2015-04-05  Martin Liska  <mliska@suse.cz>
3167
3168         PR ipa/65665
3169         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
3170         has computed data structure.
3171         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
3172
3173 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
3174
3175         * invoke.texi (inline-unit-growth): Increase growth to 20%
3176         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
3177
3178 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
3179
3180         PR target/65647
3181         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
3182         value checking.
3183         (lra_rematerialization_iter): New.
3184         * lra.c (lra): Initialize lra_rematerialization_iter.
3185         Stop updating lra_constraint_new_regno_start after switching of
3186         inheritance and rematerialization.
3187         * lra-remat.c (lra_rematerialization_iter): New.
3188         (lra_remat): Add printing pass iteration.  Do rematerialization
3189         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
3190
3191 2015-04-04  Richard Biener  <rguenther@suse.de>
3192
3193         PR tree-optimization/64909
3194         PR tree-optimization/65660
3195         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
3196         to take a cost vector for scalar iteration cost.
3197         (vect_get_single_scalar_iteration_cost): Likewise.
3198         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
3199         Compute the scalar iteration cost into a cost vector.
3200         (vect_get_known_peeling_cost): Use the scalar cost vector to
3201         account for the cost of the peeled iterations.
3202         (vect_estimate_min_profitable_iters): Likewise.
3203         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
3204         Likewise.
3205
3206 2015-04-04  Alan Modra  <amodra@gmail.com>
3207
3208         PR target/65576
3209         PR target/65240
3210         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
3211         0.0 constant unless TARGET_VSX.
3212         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
3213         alternative.
3214
3215 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3216
3217         PR ipa/65654
3218         * ipa-inline-transform.c (inline_call): Skip sanity check to work
3219         around the ICE
3220
3221 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3222
3223         PR ipa/65655
3224         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
3225         speculative indirect edges to avoid ordering issue.
3226
3227 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
3228
3229         PR ipa/65076
3230         * ipa-inline.c (edge_badness): Add combined size to the denominator.
3231
3232 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
3233
3234         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
3235         TYPE_ARTIFICIAL on the .omp_data* types.
3236
3237 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3238
3239         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
3240         instrumentation thunks.
3241
3242 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3243
3244         * config/i386/i386.c (ix86_expand_call): Avoid nested
3245         PARALLEL in returned call value.
3246
3247 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3248
3249         * lto-cgraph.c (input_cgraph_1): Always link instrumented
3250         assembler name with original one.
3251
3252 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3253
3254         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
3255
3256 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3257
3258         Revert parts of r216820.
3259         * config/i386/i386.md (movqi_internal): Correct type calculation
3260         for alternatives 3 and 5.
3261
3262 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
3263
3264         PR preprocessor/61977
3265         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
3266         predefine __vector/__bool/__pixel macros nor context sensitive
3267         macros for CLK_ASM.
3268         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
3269
3270 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
3271
3272         * config/pa/pa.c (pa_output_move_double): Directly handle register
3273         indexed memory operand.  Simplify handling of scaled register indexed
3274         memory operands.
3275
3276 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
3277
3278         PR driver/65444
3279         * config/i386/linux-common.h (MPX_SPEC): New.
3280         (CHKP_SPEC): Add MPX_SPEC.
3281         * doc/invoke.texi (-fcheck-pointer-boudns): Document
3282         possible issues with '-z bndplt' support in linker.
3283
3284 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
3285
3286         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
3287         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
3288         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
3289         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
3290         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
3291
3292 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
3293
3294         * config/i386/sync.md (UNSPEC_MOVA): Remove.
3295         (atomic_load<mode>): Change operand 0 predicate to
3296         nonimmediate_operand and fix up the destination when needed.
3297         Use UNSPEC_LDA.
3298         (atomic_loaddi_fpu): Use UNSPEC_LDA.
3299         (atomic_store<mode>): Change operand 1 predicate to
3300         nonimmendate_operand and move the source to register when needed.
3301         Use UNSPEC_STA.
3302         (atomic_store<mode>_1): Use UNSPEC_STA.
3303         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
3304         Fix moves from memory operand.  Use UNSPEC_STA.
3305
3306 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3307
3308         * expmed.c (strict_volatile_bitfield_p): Check that the access will
3309         not cross a MODESIZE boundary.
3310         (store_bit_field, extract_bit_field): Added assertions in the
3311         strict volatile bitfields code path.
3312
3313 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
3314
3315         PR target/65624
3316         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
3317         Increase args array size by one to avoid buffer overflow.
3318
3319 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
3320
3321         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
3322         split_part.
3323         * ipa-inline.c (edge_badness): Add wrapper penalty.
3324         (sum_callers): Move up.
3325         (inline_small_functions): Set single_caller.
3326         * ipa-inline.h (inline_summary): Add single_caller.
3327         * ipa-split.c (split_function): Set split_part.
3328         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
3329         * cgraph.h (cgraph_node): Add split_part.
3330
3331 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
3332
3333         PR target/58945
3334         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
3335         Do not split operands 0 and operands 2 to halfmode.
3336         (atomic_compare_and_swap<mode>): Update for
3337         atomic_compare_and_swap<dwi>_doubleword changes.
3338
3339 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
3340
3341         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
3342         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
3343         no caching is done.
3344
3345 2015-03-31  Martin Liska  <mliska@suse.cz>
3346
3347         PR ipa/65557
3348         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
3349         has already filled up function summary.
3350         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
3351
3352 2015-03-31  Richard Biener  <rguenther@suse.de>
3353
3354         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
3355         of types.
3356
3357 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3358
3359         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
3360         nested functions.
3361         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
3362         (s390_asm_output_function_label): Adapt to new signature of
3363         s390_function_num_hotpatch_hw
3364         Optimise the code generating assembler output.
3365         Add comments to assembler file.
3366
3367 2015-03-31  Richard Biener  <rguenther@suse.de>
3368
3369         PR middle-end/65626
3370         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
3371         of the noreturn call so it is last and cleanup_control_flow_bb
3372         can do the CFG part.
3373
3374 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
3375
3376         PR target/65531
3377         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
3378         same_comdat_group for external symbols.
3379         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
3380         infinite same_comdat_group traversal loop.
3381
3382 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR plugins/61176
3385         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
3386         automatically to $headers.
3387
3388 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
3389
3390         PR ipa/65610
3391         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
3392         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
3393         function.
3394         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
3395         Use it.
3396         * ipa-prop.c (param_type_may_change_p): Likewise.
3397         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
3398         (remove_unused_scope_block_p): Add in_ctor_dtor_block
3399         argument.  Before inlining, preserve
3400         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
3401         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
3402         recursive calls.
3403         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
3404
3405 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3406
3407         PR ipa/65076
3408         * ipa-inline.c (edge_badness): Base denominator on callee's
3409         grwoth squared.
3410
3411 2015-03-27  Martin Jambor  <mjambor@suse.cz>
3412
3413         PR ipa/65478
3414         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
3415         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
3416         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
3417         node_calling_single_call.
3418         * ipa-cp.c (count_callers): New function.
3419         (set_single_call_flag): Likewise.
3420         (initialize_node_lattices): Count callers and set single_flag_call if
3421         necessary.
3422         (incorporate_penalties): New function.
3423         (good_cloning_opportunity_p): Use it, dump new flags.
3424         (propagate_constants_topo): Set node_within_scc flag if appropriate.
3425         * doc/invoke.texi (ipa-cp-recursion-penalty,
3426         ipa-cp-single-call-pentalty): Document.
3427
3428 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3429
3430         PR ipa/65588
3431         * symtab.c (symtab_node::get_partitioning_class): Register vars
3432         are duplicated.
3433         * varpool.c (symbol_table::output_variables) Do not assemble unefined
3434         decls for non-symbols.
3435
3436 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3437
3438         PR target/65248
3439         * output.h (default_binds_local_p_2): New.
3440         * varasm.c (default_binds_local_p_2): Renamed to ...
3441         (default_binds_local_p_3): This.  Don't return true on protected
3442         data symbol if protected data may be external.
3443         (default_binds_local_p): Use default_binds_local_p_3.
3444         (default_binds_local_p_1): Likewise.
3445         (default_binds_local_p_2): New.
3446         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
3447         default_binds_local_p_2 if TARGET_MACHO is undefined.
3448
3449 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
3450
3451         PR target/65593
3452         * config/i386/i386.c (legitimize_pic_address): If base
3453         is SYMBOL_REF or LABEL_REF using %rip addressing, force
3454         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
3455
3456 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3457
3458         PR target/65531
3459         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
3460         comdat groups.
3461
3462 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
3463
3464         PR ipa/65600
3465         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
3466         of optimized out indirect call.
3467         (redirect_to_unreachable): Always build symbol table node for
3468         BUILT_IN_UNREACHABLE
3469
3470 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3471
3472         PR target/65407
3473         * ira-costs.c (record_reg_classes): Process all constraint string
3474         containing 0-9.
3475
3476 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
3477
3478         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
3479         memory_operand.
3480
3481         PR target/65052
3482         * config/c6x/constraints.md (S3): New constraint.
3483         * config/c6x/c6x.md (real_jump): Use it.
3484
3485 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3486
3487         PR middle-end/65595
3488         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
3489         do redirection if the call is not optimized out.
3490
3491 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3492
3493         PR target/65495
3494         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
3495         (fchkp-check-incomplete-type): Add LTO.
3496         (fchkp-zero-input-bounds-for-main): Likewise.
3497         (fchkp-first-field-has-own-bounds): Likewise.
3498         (fchkp-narrow-bounds): Likewise.
3499         (fchkp-narrow-to-innermost-array): Likewise.
3500         (fchkp-use-static-bounds): Likewise.
3501         (fchkp-use-static-const-bounds): Likewise.
3502         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
3503
3504 2015-03-27  Marek Polacek  <polacek@redhat.com>
3505
3506         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
3507
3508 2015-03-27  Marek Polacek  <polacek@redhat.com>
3509
3510         PR sanitizer/65583
3511         * ubsan.c (ubsan_create_edge): New function.
3512         (instrument_bool_enum_load): Call it.
3513         (instrument_nonnull_arg): Likewise.
3514         (instrument_nonnull_return): Likewise.
3515         (instrument_object_size): Likewise.
3516
3517 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3518
3519         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
3520         auto_vec.
3521
3522 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3523
3524         PR lto/65536
3525         * lto-streamer.h (class lto_location_cache): New.
3526         (struct data_in): Add location_cache.
3527         (lto_input_location): Update prototype.
3528         (stream_input_location_now): New.
3529         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
3530         pointer to location.
3531         (stream_input_location): Update.
3532         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
3533         (warn_odr): Apply location cache before warning.
3534         (lto_input_location): Update prototype.
3535         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
3536         Use stream_input_location_now.
3537         * lto-streamer-in.c (lto_location_cache::current_cache): New static
3538         variable.
3539         (lto_location_cache::cmp_loc): New function.
3540         (lto_location_cache::apply_location_cache): New function.
3541         (lto_location_cache::accept_location_cache): New function.
3542         (lto_location_cache::revert_location_cache): New function.
3543         (lto_location_cache::input_location): New function.
3544         (lto_input_location): Do location caching.
3545         (stream_input_location_now): New function.
3546         (input_eh_region, input_struct_function_base): Use
3547         stream_input_location_now.
3548         (lto_data_in_create): use new.
3549         (lto_data_in_delete): Use delete.
3550         * tree-streamer-in.c (unpack_ts_block_value_fields,
3551         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
3552         lto_input_ts_exp_tree_pointers): Update for cached location api.
3553
3554 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3555
3556         PR ipa/65076
3557         * passes.def: Add pass_nothrow.
3558         * ipa-pure-const.c: (pass_data_nothrow): New.
3559         (pass_nothrow): New.
3560         (pass_nothrow::execute): New.
3561         (make_pass_nothrow): New.
3562         * tree-pass.h (make_pass_nothrow): Declare.
3563
3564 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3565
3566         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
3567         edge to change by speculation resolution or redirection.
3568         (edge_set_predicate): Likewise.
3569         (inline_summary_t::duplicate): Likewise.
3570         (remap_edge_summaries): Likewise.
3571
3572 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3573
3574         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
3575         New macros.
3576         (can_inline_edge_p): Relax option matching for always inline functions.
3577
3578 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
3579
3580         PR target/65561
3581         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
3582         Check operand 4 and operand 0 for equality.
3583         (avx512f_vextract<shuffletype>32x4_1_maskm):
3584         Check operand 6 and operand 0 for equality.
3585         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
3586         for equality.
3587         (vec_extract_hi_<mode>_maskm): Ditto.
3588
3589 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3590
3591         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
3592         dead calls back to live.
3593         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
3594         cross check to ...
3595         (cgraph_node::verify_node): ... here; verify only callee edges,
3596         not caller.
3597         * cif-code.def (CILK_SPAWN): New code.
3598
3599 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3600
3601         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
3602         (edge_set_predicate): Use it to mark unreachable edges.
3603         (inline_summary_t::duplicate): Remove unnecesary code.
3604         (remap_edge_summaries): Likewise.
3605         (dump_inline_summary): Report contains_cilk_spawn.
3606         (compute_inline_parameters): Compute contains_cilk_spawn.
3607         (inline_read_section, inline_write_summary): Stream
3608         contains_cilk_spawn.
3609         * ipa-inline.c (can_inline_edge_p): Do not touch
3610         DECL_STRUCT_FUNCTION that may not be available;
3611         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
3612         remove check for callee_fun->can_throw_non_call_exceptions and
3613         replace it by optimization attribute check; check for flag_exceptions.
3614         * ipa-inline-transform.c (inline_call): Maintain
3615         DECL_FUNCTION_PERSONALITY
3616         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
3617
3618 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3619
3620         PR tree-optimization/65551
3621         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
3622         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
3623
3624 2015-03-26  Richard Biener  <rguenther@suse.de>
3625
3626         PR middle-end/65555
3627         * tree-cfg.c (verify_gimple_call): Do not require a call to
3628         have no LHS if it wasn't recognized as control altering yet.
3629
3630 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3631
3632         PR tree-optimization/64715
3633         * passes.def: Add another instance of pass_object_sizes before ccp1.
3634         * tree-object-size.c (pass_object_sizes::execute): In
3635         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
3636         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
3637         __bos result and the computed constant.  Remove redundant
3638         checks, obsoleted by gimple_call_builtin_p test.
3639
3640         * var-tracking.c (variable_tracking_main_1): Don't track
3641         variables for targetm.no_register_allocation targets.
3642
3643 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
3644
3645         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
3646         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
3647
3648 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3649
3650         PR target/65569
3651         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
3652         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
3653         0.0 is correctly setup.
3654         (extenddftf2_internal): Likewise.
3655
3656 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
3657
3658         PR tree-optimization/65177
3659         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
3660         (bb_in_bbs): New.
3661         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
3662         edges not adjacent on the path to the original code.
3663
3664 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
3665
3666         PR bootstrap/65537
3667         * doc/install.texi (Building a native compiler): Document new
3668         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
3669         configuration assumes that the host supports the linker plugin.
3670
3671 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
3672
3673         PR target/65508
3674         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
3675         chain for generated call.
3676
3677 2015-03-25  Richard Biener  <rguenther@suse.de>
3678
3679         * passes.c (pass_manager::execute_early_local_passes): Guard
3680         execution of pass_chkp_instrumentation_passes with
3681         flag_check_pointer_bounds.
3682         (pass_chkp_instrumentation_passes::gate): Likewise.
3683
3684 2015-03-25  Martin Liska  <mliska@suse.cz>
3685
3686         PR tree-optimization/65538
3687         * symbol-summary.h (function_summary::~function_summary):
3688         Relese memory for allocated summaries.
3689         (function_summary::release): New function.
3690
3691 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
3692
3693         PR lto/65515
3694         * lto-streamer-out.c (DFS::worklist): New struct.
3695         (DFS::worklist_vec): New data member.
3696         (DFS::next_dfs_num): Remove.
3697         (DFS::DFS): Rewritten using worklist instead of recursion,
3698         using most of code from DFS::DFS_write_tree.
3699         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
3700         pass it to DFS_write_tree calls.
3701         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
3702         quick initial checks push it into worklist_vec and return.
3703
3704 2015-03-25  Richard Biener  <rguenther@suse.de>
3705
3706         PR middle-end/65519
3707         * genmatch.c (expr::gen_transform): Re-write to avoid
3708         using gimple_build.
3709
3710 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3711
3712         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
3713
3714 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3715
3716         * config/arm/arm.opt (print_tune_info): New option.
3717         * config/arm/arm.c (arm_print_tune_info): New function.
3718         (arm_file_start): Call arm_print_tune_info.
3719         * config/arm/arm-protos.h (struct tune_params): Add comment.
3720         * doc/invoke.texi (@item -mprint-tune-info): New item.
3721         (-mtune): mention it in ARM Option Summary.
3722
3723 2015-03-25  DJ Delorie  <dj@redhat.com>
3724
3725         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
3726         correct clause.
3727
3728 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
3729             Martin Liska  <mliska@suse.cz>
3730
3731         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
3732         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
3733         (sem_item::add_type): New function.
3734         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
3735         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
3736         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
3737         (sem_function::equals_wpa): Fix typo.
3738         * ipa-icf.h (sem_item::add_type): New function.
3739         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
3740         order.
3741
3742 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
3743
3744         PR tree-optimization/65533
3745         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
3746         with swapped operands, call vect_free_slp_tree on
3747         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
3748         vector.
3749
3750 2015-03-24  Richard Biener  <rguenther@suse.de>
3751
3752         PR middle-end/65517
3753         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
3754         for fixup if necessary.
3755
3756 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
3757
3758         * doc/extend.texi (Function Attributes): Add @cindex entries
3759         for all attributes and regularize their format.  Delete text
3760         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
3761         information about "eightbit_data", "tiny_data", and "model"
3762         variable attributes to the Variable Attributes section.  Fix
3763         some obvious typos and copy-editing issues.
3764         (Variable Attributes, Type Attributes): Likewise add/fix
3765         @cindex entries for all attributes.
3766
3767 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3768
3769         PR target/65523
3770         * tree-chkp.c (chkp_build_returned_bound): Ignore
3771         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
3772
3773 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
3774
3775         PR target/65505
3776         * config/sh/predicates.md (simple_mem_operand,
3777         displacement_mem_operand): Add test for reg.
3778         (short_displacement_mem_operand): Test for displacement_mem_operand
3779         before invoking sh_disp_addr_displacement.
3780         * config/sh/constraints.md (Sdd, Sra): Simplify.
3781         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
3782         Remove redundant displacement_mem_operand tests.
3783
3784 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
3785
3786         PR target/65296
3787         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
3788         the same -mmcu=MCU more than once.
3789
3790 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR bootstrap/65522
3793         * ipa-devirt.c: Remove duplicate demangle.h include.
3794
3795         PR target/65504
3796         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
3797         on the pseudo.
3798         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
3799         REG_POINTER on *destptr after adjusting it for prologue size.
3800
3801         PR ipa/65521
3802         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
3803         ultimate_alias_target ()->order ints instead of
3804         ultimate_alias_target () pointers.
3805
3806 2015-03-23  Richard Biener  <rguenther@suse.de>
3807
3808         PR tree-optimization/65518
3809         * tree-vect-stmts.c (vectorizable_load): Reject single-element
3810         interleaving cases we generate absymal code for.
3811
3812 2015-03-23  Richard Biener  <rguenther@suse.de>
3813
3814         PR tree-optimization/65494
3815         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
3816         matches here.
3817         (vect_analyze_slp_instance): But do that here, always and once.
3818
3819 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3820
3821         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
3822         adding T or multiplying by T+1 and subracting T.
3823
3824 2015-03-22  Jeff Law  <law@redhat.com>
3825
3826         PR rtl-optimization/64317
3827         * Makefile.in (OBJS): Add gcse-common.c
3828         * gcse.c: Include gcse-common.h
3829         (struct modify_pair_s): Move structure definition to gcse-common.h
3830         (compute_transp): Move function to gcse-common.c.
3831         (canon_list_insert): Similarly.
3832         (record_last_mem_set_info): Break out some code and put it into
3833         gcse-common.c.  Call into the new common code.
3834         (compute_local_properties): Pass additional arguments to compute_transp.
3835         * postreload-gcse.c: Include gcse-common.h and df.h
3836         (modify_mem_list_set, blocks_with_calls): New variables.
3837         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
3838         (get_bb_avail_insn): Pass in the expression index too.
3839         (alloc_mem): Allocate memory for the new bitmaps and lists.
3840         (free_mem): Free memory for the new bitmaps and lists.
3841         (insert_expr_in_table): Record a bitmap index for each entry we
3842         add to the table.
3843         (record_last_mem_set_info): Call into common code in gcse-common.c.
3844         (get_bb_avail_insn): If no available insn was found in the requested
3845         BB.  If BB has a single predecessor, see if the expression is
3846         transparent in BB and available in that single predecessor.
3847         (compute_expr_transp): New wrapper for compute_transp.
3848         (eliminate_partially_redundant_load): Pass expression's bitmap_index
3849         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
3850         (gcse_after_reload_main): If there are elements in the hash table,
3851         then compute transparency for all the elements in the hash table.
3852         * gcse-common.h: New file.
3853         * gcse-common.c: New file.
3854
3855 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
3856
3857         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
3858         as an adjective.
3859         (System Headers): Likewise.
3860         (Ifdef): Likewise.
3861         (Traditional macros): Likewise.
3862         (Invocation): Likewise.
3863         (Option Index): Likewise.
3864         * doc/cppopts.texi (-M): Likewise.
3865         (-finput-charset): Likewise.
3866         (--help): Likewise.
3867         * doc.invoke.texi (AVR Options): Likewise.
3868         (V850 Options): Likewise.
3869
3870 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
3871
3872         PR ipa/65475
3873         * ipa-devirt.c: Include demangle.h
3874         (odr_type_d): Add field rtti_broken.
3875         (odr_subtypes_equivalent_p): Do not require name to match.
3876         (compare_virtual_tables): Fix typo; if type already has ODR violation,
3877         bypass the tests; be ready for function referneces in vtables that are
3878         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
3879         (warn_odr): Give up for nameless types.
3880         (warn_types_mismatch): Report mismatch in mangled names;
3881         report mismatch in anonymous namespaces; look into component types to
3882         give useful error; report when mismatch is dragged in from other ODR
3883         type.
3884         (odr_types_equivalent_p): Match types for being polymorphic; avoid
3885         duplicated diagnostics.
3886         (add_type_duplicate): Reorder checks so more informative ones come
3887         first; fix typo; do not output "the extra base is defined here" when
3888         we did not warn.
3889         (BINFO_N_BASE_BINFOS): Relax sanity check.
3890
3891 2015-03-22  Martin Liska  <mliska@suse.cz>
3892             Jakub Jelinek  <jakub@redhat.com>
3893
3894         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
3895         masks that can potentially include a builtin.
3896         (ix86_add_new_builtins): Introduce fast filter for isa values
3897         that cannot trigger builtin inclusion.
3898
3899 2015-03-22  Martin Liska  <mliska@suse.cz>
3900
3901         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
3902         (sem_item::update_hash_by_local_refs): Likewise.
3903         (sem_variable::get_hash): Empty line is fixed.
3904         (sem_item_optimizer::execute): Include adding of hash references.
3905         (sem_item_optimizer::update_hash_by_addr_refs): New function.
3906         (sem_item_optimizer::build_hash_based_classes): Use local hash.
3907         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
3908         (sem_item::update_hash_by_local_refs): Likewise.
3909
3910 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3911
3912         PR ipa/65502
3913         * ipa-comdats.c (enqueue_references): Walk through thunks.
3914         (ipa_comdats): Likewise.
3915         (set_comdat_group_1): New function.
3916
3917 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3918
3919         PR ipa/65475
3920         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
3921         non-polymorphic
3922
3923 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3924             Gerald Pfeifer  <gerald@pfeifer.com>
3925
3926         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
3927
3928 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
3929             Sandra Loosemore  <sandra@codesourcery.com>
3930
3931         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
3932         function parameter declaration.
3933         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
3934         Update arguments to nios2_adjust_call_address().
3935         (sibcall_internal): Rename from *sibcall.
3936         (sibcall_value_internal): Rename from *sibcall_value.
3937         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
3938         (nios2_large_got_address): Add target temp reg parameter.
3939         (nios2_got_address): Adjust call to nios2_large_got_address, add
3940         force_reg around it.
3941         (nios2_load_pic_address): Add target temp reg parameter, replace call
3942         to nios2_got_address with corresponding code.
3943         (nios2_legitimize_constant_address): Update call to
3944         nios2_load_pic_address.
3945         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
3946         to use temp reg for PIC loading purposes.
3947         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
3948         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
3949         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
3950
3951 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3952
3953         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
3954         usage of "the @option{...}".
3955         (-Wopenmp-simd): Likewise.
3956         (-fsanitize-recover): Likewise.
3957         (-fsanitize-undefined-trap-on-error): Likewise.
3958         (-flto): Likewise.
3959         (tracer-dynamic-coverage-feedback): Likewise.
3960         (reorder-block-duplicate-feedback): Likewise.
3961         (loop-unroll-jam-size): Likewise.
3962         (-B): Likewise.
3963         (-I-): Likewise.
3964         (-mabs=legacy): Likewise.
3965         (-mupper-regs-df): Likewise.
3966         (-mupper-regs-sf): Likewise.
3967         (-mpointers-to-nested-functions): Likewise.
3968
3969 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3970
3971         * doc/extend.texi (Cilk Plus Builtins): Add markup.
3972
3973 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3974
3975         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
3976         additional index entries and cross-references.
3977         (-fchkp-check-incomplete-type): Likewise.
3978         (-fchkp-first-field-has-own-bounds): Likewise.
3979         (-fchkp-narrow-to-innermost-array): Likewise.
3980         (-fchkp-use-fast-string-functions): Likewise.
3981         (-fchkp-use-nochk-string-functions): Likewise.
3982         (-fchkp-use-static-const-bounds): Likewise.
3983         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
3984         (-fchkp-instrument-marked-only): Likewise.
3985         (-fchkp-use-wrappers): Likewise.
3986         (-static-libmpx): Likewise.
3987         (-static-libmpxwrappers): Likewise.
3988         * doc/extend.texi (bnd_legacy): Likewise.
3989         (bnd_instrument): Likewise.
3990         (bnd_variable_size): Likewise.
3991         (Pointer Bounds Checker builtins): Likewise.
3992
3993 2015-03-21  Tom de Vries  <tom@codesourcery.com>
3994
3995         PR tree-optimization/65458
3996         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
3997         * cgraph.h (cgraph_node): Add parallelized_function field.
3998         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
3999         (input_overwrite_node): Read parallelized_function field.
4000         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
4001         parallelized_function on cgraph_node for child_fn.
4002         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
4003         Remove include of gt-tree-parloops.h.
4004         (parallelized_functions): Remove static variable.
4005         (parallelized_function_p): Rewrite using parallelized_function field of
4006         cgraph_node.
4007         (create_loop_fn): Remove adding to parallelized_functions.
4008         * Makefile.in (GTFILES): Remove tree-parloops.c
4009
4010 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
4011
4012         PR rtl-optimization/64366
4013         * lra.c (lra_update_insn_regno_info): Consider regs in
4014         CALL_INSN_FUNCTION_USAGE memory.
4015
4016 2015-03-20  Richard Biener  <rguenther@suse.de>
4017
4018         PR middle-end/64715
4019         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
4020         for type comparison and gcc_checking_assert.
4021         (chrec_fold_plus_poly_poly): Likewise.
4022         (chrec_fold_multiply_poly_poly): Likewise.
4023         (chrec_convert_1): Likewise.
4024         * gimplify.c (gimplify_expr): Remove premature folding of
4025         &X + CST to &MEM[&X, CST].
4026
4027 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
4028
4029         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
4030         already is final.
4031         (ipa_inline): Recompute inline_failed codes.
4032         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
4033         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
4034         CIF_FINAL_ERROR.
4035
4036 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
4037
4038         PR rtl-optimization/60851
4039         * recog.c (constrain_operands): Accept a pseudo register before reload
4040         for LRA enabled targets.
4041
4042 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4043
4044         PR target/65240
4045         * config/rs6000/predicates.md (easy_fp_constant): Remove special
4046         -ffast-math handling that kept non-0 constants live in the RTL
4047         until reload.  Remove logic testing the number of instructions it
4048         took to create a constant in a GPR that was never used, due to a
4049         test for soft-float earlier.
4050         (memory_fp_constant): Delete, no longer used.
4051
4052         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
4053         alternatives for loading non-0 constants into GPRs for hard
4054         floating point that is no longer needed due to changes in
4055         easy_fp_constant.  Add support for loading 0.0 into GPRs.
4056         (mov<mode>_hardfloat32): Likewise.
4057         (mov<mode>_hardfloat64): Likewise.
4058         (mov<mode>_64bit_dm): Likewise.
4059         (movtd_64bit_nodm): Likewise.
4060         (pre-reload move FP constant define_split): Delete define_split,
4061         since it is no longer used.
4062         (extenddftf2_internal): Remove GHF constraints that are not valid
4063         for extenddftf2.
4064
4065 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
4066
4067         PR rtl-optimization/63491
4068         * lra-constraints.c (check_and_process_move): Use src instead of
4069         sreg.  Remove some dead code.
4070
4071 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
4072
4073         PR ipa/65380
4074         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
4075         (sem_variable::merge): Likewise.
4076
4077 2015-03-19  Martin Liska  <mliska@suse.cz>
4078
4079         PR ipa/65465
4080         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
4081         all fields of cgraph_thunk_info.
4082
4083 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4084
4085         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
4086         clone instrumented thunks.
4087
4088 2015-03-19  Richard Biener  <rguenther@suse.de>
4089
4090         Revert
4091         2015-03-10  Richard Biener  <rguenther@suse.de>
4092
4093         PR middle-end/63155
4094         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
4095         * tree-ssa-coalesce.c: Include timevar.h.
4096         (attempt_coalesce): Handle graph being NULL.
4097         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
4098         Split out abnormal coalescing to ...
4099         (perform_abnormal_coalescing): ... this function.
4100         (coalesce_ssa_name): Perform abnormal coalescing without computing
4101         live/conflict.
4102         (verify_ssa_coalescing_worker): New function.
4103         (verify_ssa_coalescing): Likewise.
4104
4105 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4106             Jakub Jelinek  <jakub@redhat.com>
4107
4108         PR sanitizer/65400
4109         * tsan.c (instrument_gimple): Clear tail call flag on
4110         calls.
4111
4112 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
4113
4114         PR sanitizer/65400
4115         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
4116         call in the return bb.
4117         (find_split_points): Add RETURN_BB argument, don't call
4118         find_return_bb.
4119         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
4120         if true append TSAN_FUNC_EXIT internal call after the call to
4121         the split off function.
4122         (execute_split_functions): Call find_return_bb here.
4123         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
4124         Adjust find_split_points and split_function calls.
4125
4126 2015-03-18  DJ Delorie  <dj@redhat.com>
4127
4128         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
4129         (iorqi3_virt): Likewise.
4130
4131 2015-03-18  Tom de Vries  <tom@codesourcery.com>
4132
4133         * tree-parloops.c (parallelize_loops): Make static.
4134         * tree-parloops.h (parallelize_loops): Remove extern declaration.
4135
4136 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
4137
4138         PR middle-end/64491
4139         Revert:
4140         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
4141
4142         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
4143         condition would be removed due to undefined behaviour.
4144
4145 2015-03-18  Martin Liska  <mliska@suse.cz>
4146
4147         PR ipa/65432
4148         * cgraph.c (cgraph_node::get_create): Remove unnecessary
4149         xstrdup_for_dump wrapper.
4150         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
4151         sem_item::name.
4152         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
4153         with xstrdup_for_dump.
4154         (sem_variable::equals): Likewise.
4155         (sem_item_optimizer::read_section): Use symtab_node::name instead of
4156         sem_item::name.
4157         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
4158         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
4159         symtab_node::asm_name with xstrdup_for_dump.
4160         (congruence_class::dump): Use symtab_node::name instead of
4161         sem_item::name.
4162         * ipa-icf.h (symtab_node::name): Remove.
4163         (symtab_node::asm_name): Likewise.
4164
4165 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
4166
4167         PR tree-optimization/65450
4168         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
4169         function.
4170         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
4171         it instead of duplicate_ssa_name_ptr_info.
4172
4173         PR target/65222
4174         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
4175
4176 2015-03-18  Richard Biener  <rguenther@suse.de>
4177
4178         * tree-data-ref.h (struct access_matrix): Remove.
4179         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
4180         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
4181         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
4182         (am_vector_index_for_loop): Likewise.
4183         (struct data_reference): Remove access_matrix member.
4184         (DR_ACCESS_MATRIX): Remove.
4185         (lambda_vector_new): Add comment.
4186         (lambda_matrix_new): Use XOBNEWVEC.
4187
4188 2015-03-18  Richard Biener  <rguenther@suse.de>
4189
4190         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
4191         (pass_ch::execute): Cleanup the CFG only if we did sth.
4192         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
4193
4194 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4195
4196         * expmed.c (synth_mult): Use std::swap instead of manually
4197         swapping algorithms.
4198
4199 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
4200
4201         PR target/65078
4202         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
4203
4204 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
4205
4206         PR target/65296
4207         * config/avr/avr.opt (-nodevicelib): New option.
4208         * doc/invoke.texi (AVR Options): Document it.
4209         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
4210         libgcc.a, libc.a, libm.a.
4211         * config/avr/specs.h: Same.
4212         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
4213         which don't (directly) depend on the device.  Print more help.
4214         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
4215         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
4216         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
4217         case of an error.
4218         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
4219         for specs file name.
4220         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
4221         * config/avr/avr-mcus.def: Adjust initializers and comments.
4222
4223 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
4224
4225         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
4226         DECL_ONE_ONLY to check if decl is one only.
4227         * ipa-split.c (consider_split): Limit splitt of one only functions.
4228
4229 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
4230
4231         PR tree-optimization/65427
4232         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
4233         functions.
4234         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
4235
4236 2015-03-16  Marek Polacek  <polacek@redhat.com>
4237
4238         * cgraph.h (add_new_static_var): Remove declaration.
4239         * varpool.c (add_new_static_var): Remove function.
4240
4241 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
4242
4243         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
4244         instead of vec<tree> * with vec_alloc and release for args.
4245         Adjust all users.
4246
4247         PR middle-end/65431
4248         * omp-low.c (delete_omp_context): Only splay_tree_delete
4249         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
4250         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
4251
4252 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
4253
4254         PR sanitizer/64820
4255         * cfgexpand.c (align_base): New function.
4256         (alloc_stack_frame_space): Call it.
4257         (expand_stack_vars): Align prev_frame to be sure
4258         data->asan_vec elements aligned properly.
4259
4260 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
4261
4262         PR middle-end/65409
4263         * expr.c (store_field): Do not do a direct block copy if the source is
4264         a PARALLEL with BLKmode.
4265
4266 2015-03-16  Tom de Vries  <tom@codesourcery.com>
4267
4268         PR middle-end/65414
4269         Revert:
4270         2015-03-12  Tom de Vries  <tom@codesourcery.com>
4271
4272         PR rtl-optimization/64895
4273         * lra-lives.c (check_pseudos_live_through_calls): Use
4274         actual_call_used_reg_set instead of call_used_reg_set, if available.
4275
4276 2015-03-16  Alan Modra  <amodra@gmail.com>
4277
4278         PR target/63150
4279         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
4280         Modify Z->r bswapdi splitter to use dest in place of scratch.
4281         In r->Z and Z->r bswapdi splitter rename word_high, word_low
4282         to word1, word2 and rearrange logic to suit.
4283         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
4284         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
4285         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
4286         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
4287         early clobber.
4288
4289 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR tree-optimization/65369
4292         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
4293         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
4294         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
4295
4296         PR tree-optimization/65418
4297         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
4298         are casts in the first PLUS_EXPR operand, ensure tbias and
4299         *totallowp are in the inner type.
4300
4301         PR rtl-optimization/65401
4302         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
4303         argument.  If true, adjust_address_nv of x with big-endian
4304         correction for the mode widening to GET_MODE (y).
4305         (make_field_assignment): Don't do MEM mode widening here.
4306         Use MEM_P instead of GET_CODE == MEM.
4307
4308 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
4309
4310         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
4311         the external decls.
4312
4313 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4314
4315         PR target/64600
4316         * config/arm/arm.c (arm_gen_constant, AND case): Use
4317         ARM_SIGN_EXTEND when constructing AND mask.
4318
4319 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4320
4321         * graph.c (print_graph_cfg): Make function names visible and append
4322         parenthesis to it.  Also make groups of basic blocks belonging to the
4323         same function visible.
4324
4325 2015-03-12  Richard Biener  <rguenther@suse.de>
4326
4327         PR middle-end/44563
4328         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
4329         to avoid quadratic behavior with inline expansion splitting blocks.
4330         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
4331         with the successor if the predecessor will be merged with it.
4332         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
4333         entry block with its successor.
4334
4335 2015-03-13  Richard Biener  <rguenther@suse.de>
4336
4337         PR middle-end/44563
4338         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
4339         (cleanup_tree_cfg_1): Do not call it.
4340         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
4341         (fixup_noreturn_call): Mark the stmt as control altering.
4342         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
4343         here.
4344         (pass_data_fixup_cfg): Produce a dump file.
4345         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
4346         (need_noreturn_fixup): New global.
4347         (pass_dominator::execute): Fixup queued noreturn calls.
4348         (optimize_stmt): Queue calls that became noreturn for fixup.
4349         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
4350         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
4351         (el_to_fixup): New global.
4352         (eliminate_dom_walker::before_dom_childre): Queue calls that
4353         became noreturn for fixup.
4354         (eliminate): Fixup queued noreturn calls.
4355         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
4356         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
4357         (substitute_and_fold_dom_walker::before_dom_children): Queue
4358         alls that became noreturn for fixup.
4359         (substitute_and_fold): Fixup queued noreturn calls.
4360
4361 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
4362
4363         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
4364         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
4365         are building; for methods check ODR type of class they belong to if
4366         they may lead to a polymorphic call.
4367         (sem_function::compare_polymorphic_p): Be bit smarter about testing
4368         when function may lead to a polymorphic call.
4369         (sem_function::compare_type_list): Remove.
4370         (sem_variable::equals): Update use of compatible_types_p.
4371         (sem_variable::parse_tree_refs): Remove.
4372         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
4373         cdtor.
4374         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
4375         matching here.
4376         (func_checker::compatible_polymorphic_types_p): Break out from ...
4377         (unc_checker::compatible_types_p): ... here.
4378         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
4379         Declare.
4380         (unc_checker::compatible_types_p): Update.
4381         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
4382         Remove.
4383
4384 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4385
4386         PR rtl-optimization/65235
4387         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
4388         When first element of vec_concat is const_int, calculate its size
4389         using second element.
4390
4391 2015-03-12  Richard Biener  <rguenther@suse.de>
4392
4393         PR middle-end/65270
4394         * fold-const.c (operand_equal_p): Fix ordering of resetting
4395         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
4396
4397 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4398
4399         * config/s390/s390.c (s390_reorg): Move code to output nops after label
4400         to s390_reorg ().
4401         (s390_asm_output_function_label): Likewise.
4402         * config/s390/s390.c (s390_asm_output_function_label):
4403         Fix function label alignment with -mhtopatch.
4404         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
4405         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
4406         ("nop_2_byte"): New define_insn.
4407         ("nop_4_byte"): Likewise.
4408         ("nop_6_byte"): Likewise.
4409         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
4410         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
4411
4412 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4413
4414         PR target/65103
4415         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
4416         register.
4417
4418 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4419
4420         PR target/65044
4421         * toplev.c (process_options): Restrict Pointer Bounds Checker
4422         usage with Address Sanitizer.
4423
4424 2015-03-12  Richard Biener  <rguenther@suse.de>
4425
4426         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
4427         to split on.
4428         * omp-low.c (expand_omp_taskreg): Split block before removing
4429         the stmt.
4430         (expand_omp_target): Likewise.
4431         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
4432         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
4433         stmt to split_block.
4434
4435 2015-03-12  Tom de Vries  <tom@codesourcery.com>
4436
4437         PR rtl-optimization/64895
4438         * lra-lives.c (check_pseudos_live_through_calls): Use
4439         actual_call_used_reg_set instead of call_used_reg_set, if available.
4440
4441 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4442
4443         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
4444         (cgraph_node::remove): Likewise.
4445         (cgraph_node::get_untransformed_body): Likewise.
4446         * varpool.c (varpool_node::remove): Likewise.
4447         (varpool_node::get_constructor): Add sanity check.
4448
4449 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
4450
4451         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
4452         old GCC versions.
4453         (-fabi-compat-version): Likewise.
4454         (-ffriend-injection): Likewise.
4455         (-Wdeclaration-after-statement): Likewise.
4456         (-fomit-frame-pointer): Likewise.
4457         (-ftree-coalesce-inlined-vars): Likewise.
4458         (-fvisibility=): Likewise.
4459         * doc/extend.texi (Typeof): Likewise.
4460         (Zero Length): Likewise.
4461         (Escaped Newlines): Likewise.
4462         (Compound Literals): Likewise.
4463         (Function Attributes): Likewise.
4464         (Label Attributes): Likewise.
4465         (Type Attributes): Likewise.
4466         (Function Names): Likewise.
4467         (Other Builtins): Likewise.
4468         (Function Specific Option Pragmas): Likewise.
4469         (C++ Interface): Likewise.
4470
4471 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
4472
4473         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
4474
4475 2015-03-11  Marek Polacek  <polacek@redhat.com>
4476
4477         PR tree-optimization/65388
4478         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
4479
4480 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
4481
4482         PR target/65296
4483         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
4484         * configure: Regenerate.
4485         * config.in: Regenerate.
4486         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
4487         [-mn-flash]: Document it.
4488         [__AVR_ARCH__]: Document avrtiny.
4489
4490         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
4491         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
4492         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
4493
4494 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4495
4496         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
4497
4498 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4499
4500         PR target/65242
4501         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
4502         allow reloads of PLUS in floating point/VSX registers.
4503
4504 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
4505
4506         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
4507         crypto_sha256_fast.
4508         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
4509
4510 2015-03-11  Richard Biener  <rguenther@suse.de>
4511
4512         PR tree-optimization/65310
4513         * tree-sra.c (build_ref_for_offset): Also preserve larger
4514         alignment.
4515
4516 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
4517
4518         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
4519
4520 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4521
4522         PR target/65368
4523         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
4524         new define_expand.
4525         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
4526
4527 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4528
4529         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
4530         (sem_function::equals_wpa): ... here.
4531
4532 2015-03-10  Marek Polacek  <polacek@redhat.com>
4533             Jakub Jelinek  <jakub@redhat.com>
4534
4535         PR sanitizer/65367
4536         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
4537         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
4538         separately.
4539
4540 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4541
4542         PR target/65286
4543         * config/rs6000/t-linux: For powerpc64* target set
4544         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
4545
4546 2015-03-10  Richard Biener  <rguenther@suse.de>
4547
4548         PR middle-end/44563
4549         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
4550         for redirect_all_calls.
4551
4552 2015-03-10  Marek Polacek  <polacek@redhat.com>
4553
4554         * gdbinit.in (pcfun): Define and document.
4555
4556 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
4557
4558         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
4559         of libgomp-plugin.h.
4560         (find_target_compiler): Support a case when the path to gcc is
4561         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
4562         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
4563         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
4564         libgomp-plugin.h.
4565         (main): Use GCC_INSTALL_NAME as target_driver_name.
4566         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
4567         define.
4568         (mkoffload.o): Remove obsolete include path and defines.
4569         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
4570
4571 2015-03-10  Richard Biener  <rguenther@suse.de>
4572
4573         PR middle-end/63155
4574         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
4575         * tree-ssa-coalesce.c: Include timevar.h.
4576         (attempt_coalesce): Handle graph being NULL.
4577         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
4578         Split out abnormal coalescing to ...
4579         (perform_abnormal_coalescing): ... this function.
4580         (coalesce_ssa_name): Perform abnormal coalescing without computing
4581         live/conflict.
4582         (verify_ssa_coalescing_worker): New function.
4583         (verify_ssa_coalescing): Likewise.
4584
4585 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
4586
4587         PR target/65296
4588         * config.gcc (extra_options) [avr]: Remove.
4589         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
4590         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
4591         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
4592
4593         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
4594         (-mmcu=): Add Var and MissingArgError properties.
4595         (-march=): Remove.
4596         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
4597         * config/avr/t-multilib: Regenerate.
4598         * config/avr/specs.h: New file.
4599         * config/avr/driver-avr.c: New file.
4600         * config/avr/genopt.sh: Remove file.
4601         * config/avr/avr-tables.opt: Remove file.
4602         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
4603         * config/avr/avr-c.c: Same.
4604         * avr-arch.h: Same.
4605         (avr_current_device): Remove proto.
4606         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
4607         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
4608         (EXTRA_SPEC_FUNCTIONS): Define.
4609         (avr_devicespecs_file): New specs function proto.
4610         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
4611         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
4612         (avr_current_device): Remove definition and usage.
4613         (avr_set_core_architecture): New static function.
4614         (avr_option_override): Use it.
4615         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
4616         (mcu_name): New static array.
4617         (comparator, avr_archs_str, avr_mcus_str): New static functions.
4618         (avr_inform_devices, avr_inform_core_architectures): New functions.
4619         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
4620         (avrlibc.h) [WITH_AVRLIBC]: Include.
4621         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
4622         (print_mcu): Rewrite from scratch.
4623         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
4624         Forward to avr-specific specs defined in device-specs file.
4625         * config/avr/t-avr (driver-avr.o): New rule.
4626         (avr-devices.o): Depend on avr-arch.h.
4627         (avr-mcus): No more depend on avr-tables.opt.
4628         (avr-tables.opt): Remove rule.
4629         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
4630
4631 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4632
4633         * c-family/c.opt (fchkp-use-wrappers): New.
4634         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
4635         (chkp_wrap_function): New.
4636         (chkp_build_instrumented_fndecl): Support wrapped
4637         functions.
4638         * doc/invoke.texi (-fcheck-pointer-bounds): New.
4639         (-fchkp-check-incomplete-type): New.
4640         (-fchkp-first-field-has-own-bounds): New.
4641         (-fchkp-narrow-bounds): New.
4642         (-fchkp-narrow-to-innermost-array): New.
4643         (-fchkp-optimize): New.
4644         (-fchkp-use-fast-string-functions): New.
4645         (-fchkp-use-nochk-string-functions): New.
4646         (-fchkp-use-static-bounds): New.
4647         (-fchkp-use-static-const-bounds): New.
4648         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
4649         (-fchkp-check-read): New.
4650         (-fchkp-check-write): New.
4651         (-fchkp-store-bounds): New.
4652         (-fchkp-instrument-calls): New.
4653         (-fchkp-instrument-marked-only): New.
4654         (-fchkp-use-wrappers): New.
4655         (-static-libmpx): New.
4656         (-static-libmpxwrappers): New.
4657
4658 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4659
4660         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
4661         (CHKP_SPEC): Add wrappers library.
4662         * c-family/c.opt (static-libmpxwrappers): New.
4663
4664 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4665
4666         * config/i386/linux-common.h (LIBMPX_LIBS): New.
4667         (LIBMPX_SPEC): New.
4668         (CHKP_SPEC): New.
4669         * gcc.c (CHKP_SPEC): New.
4670         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
4671         * c-family/c.opt (static-libmpx): New.
4672
4673 2015-03-10  Richard Biener  <rguenther@suse.de>
4674
4675         PR middle-end/44563
4676         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
4677         for compare_type.
4678         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
4679         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
4680         (cgraph_add_edge_to_call_site_hash): Likewise.
4681         (cgraph_node::get_edge): Likewise.
4682         (cgraph_edge::set_call_stmt): Likewise.
4683         (cgraph_edge::remove_caller): Likewise.
4684
4685 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
4686
4687         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
4688         (callee_saved_gpr_regs_size): ... this.
4689         (callee_saved_regs_first_regno): Rename to ...
4690         (callee_saved_first_gpr_regno): ... this.
4691         (callee_saved_regs_last_regno) Rename to ...
4692         (callee_saved_last_gpr_regno): ... this.
4693         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
4694         variables.
4695         (nds32_initial_elimination_offset): Likewise.
4696         (nds32_expand_prologue): Likewise.
4697         (nds32_expand_epilogue): Likewise.
4698         (nds32_expand_prologue_v3push): Likewise.
4699         (nds32_expand_epilogue_v3pop): Likewise.
4700         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
4701         Adjust renamed variables.
4702         (nds32_output_stack_pop): Likewise.
4703
4704 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4705
4706         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
4707         code in comment.
4708
4709 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4710
4711         PR rtl-optimization/65321
4712         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
4713         than shift mode.
4714         * var-tracking.c (use_narrower_mode): Likewise.
4715
4716 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4717
4718         PR tree-optimization/65355
4719         * varasm.c (notice_global_symbol): Do not produce RTL.
4720         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
4721         anchor.
4722         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
4723         check for section anchors.
4724
4725 2015-03-10  Alan Modra  <amodra@gmail.com>
4726
4727         PR target/65286
4728         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
4729         to be single-arch by default.  Set cpu_is_64bit for powerpc64
4730         given --with-cpu=native.
4731         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
4732         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
4733         and powerpc64le.
4734         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
4735         rs6000_isa_flags rather than TARGET_64BIT.
4736
4737 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
4738             Kaz Kojima  <kkojima@gcc.gnu.org>
4739
4740         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
4741
4742 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
4743
4744         PR lto/65361
4745         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
4746         on a TREE_BINFO, instead use BINFO_TYPE.
4747
4748 2015-03-09  Richard Biener  <rguenther@suse.de>
4749
4750         PR middle-end/65270
4751         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
4752         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
4753         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
4754         of that.  When comparing dereferences compare alignment.
4755         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
4756
4757 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4758
4759         * ipa-inline-analysis.c (check_callers): Check
4760         node->can_remove_if_no_direct_calls_and_refs_p.
4761         (growth_likely_positive): Reorganize to call
4762         can_remove_if_no_direct_calls_p later.
4763         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
4764         will_be_removed_from_program_if_no_direct_calls_p): Add
4765         will_inline parameter.
4766         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
4767         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4768         Handle inliner case correctly.
4769
4770 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4771
4772         PR tree-optimization/63743
4773         * cfgexpand.c (reorder_operands): Also reorder if only second operand
4774         had its definition forwarded by TER.
4775
4776 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4777
4778         PR lto/65316
4779         * ipa-utils.h (types_odr_comparable): Add strict argument.
4780         * ipa-devirt.c: Fix whitespace;
4781         (odr_hasher): Remove.
4782         (odr_name_hasher, odr_vtable_hasher): New hashers.
4783         (can_be_name_hashed_p): New predicate.
4784         (hash_type_name): remove.
4785         (hash_odr_name): New.
4786         (odr_name_hasher::hash): new.
4787         (can_be_vtable_hashed_p): New.
4788         (hash_odr_vtable): New.
4789         (odr_vtable_hasher::hash): New.
4790         (types_same_for_odr): Add strict parameter.
4791         (types_odr_comparable): Likewise.
4792         (odr_name_hasher::equal): New.
4793         (odr_vtable_hasher::equal): New.
4794         (odr_name_hasher::remove): New.
4795         (odr_hash_type): Change to hash_table<odr_name_hasher>.
4796         (odr_vtable_hash_type): New.
4797         (odr_vtable_hash): New.
4798         (odr_subtypes_equivalent_p): Do strict comparsion.
4799         (add_type_duplicate): Merge type names; cleanup; avoid type
4800         duplicates.
4801         (register_odr_type): Initialize vtable hash.
4802         (build_type_inheritance_graph): Likewise
4803         (get_odr_type): Reorg to use two hashes.
4804         (dump_possible_polymorphic_call_targets): Move sanity check after debug
4805         output.
4806         (ipa_devirt): Dump type_inheritance_graph.
4807         (types_same_for_odr): Add strict mode.
4808
4809 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4810
4811         PR ipa/65334
4812         * cgraph.h (symtab_node): Add definition_alignment,
4813         can_increase_alignment_p and increase_alignment.
4814         * symtab.c (symtab_node::can_increase_alignment_p,
4815         increase_alignment_1, symtab_node::increase_alignment,
4816         symtab_node::definition_alignment): New.
4817         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
4818         can_increase_alignment_p.
4819         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
4820         * tree-vect-stmts.c (ensure_base_align): Likewise.
4821         * varasm.c (function_section_1): Use definition_alignment.
4822         (assemble_start_function): Likewise.
4823         (emit_local): likewise.
4824         (build_constant_desc): Likewsie.
4825         (output_constant_def_contents): Likewise.
4826         (place_block_symbol): Likewise.
4827         (output_object_block): Likewise.
4828
4829 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4830
4831         PR ipa/65316
4832         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
4833         when outputting debug.
4834
4835 2015-03-07  Marek Polacek  <polacek@redhat.com>
4836             Martin Uecker  <uecker@eecs.berkeley.edu>
4837
4838         PR sanitizer/65280
4839         * doc/invoke.texi: Update description of -fsanitize=bounds.
4840
4841 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4842
4843         * tree-ssa-phiopt.c (neg_replacement): Remove.
4844         (tree_ssa_phiopt_worker): Remove negate optimization.
4845
4846 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4847
4848         PR ipa/65302
4849         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
4850
4851 2015-03-06  Richard Biener  <rguenther@suse.de>
4852
4853         PR middle-end/64928
4854         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
4855         and liveout_obstack members.
4856         (calculate_live_on_exit): Remove.
4857         (calculate_live_ranges): Change declaration.
4858         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
4859         (new_tree_live_info): Adjust.
4860         (calculate_live_ranges): Delete livein when not wanted.
4861         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
4862         Deal with partly deleted live info.
4863         (loe_visit_block): Remove temporary bitmap by using
4864         bitmap_ior_and_compl_into.
4865         (live_worklist): Adjust accordingly.
4866         (calculate_live_on_exit): Make static.
4867         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
4868         we do not need livein.
4869
4870 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
4871
4872         * real.c (real_from_string): Fix typo in assertion.
4873
4874 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
4875
4876         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
4877         the patch.
4878
4879 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4880
4881         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
4882
4883 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
4884
4885         PR target/64342
4886         * lra-assigns.c (find_hard_regno_for): Rename to
4887         find_hard_regno_for_1.  Add a new parameter.
4888         (find_hard_regno_for): New function using find_hard_regno_for_1.
4889
4890 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4891
4892         PR rtl-optimization/65067
4893         * expmed.c (store_bit_field, extract_bit_field): Reworked the
4894         strict volatile bitfield handling.
4895
4896 2015-03-05  Martin Liska  <mliska@suse.cz>
4897
4898         PR ipa/65318
4899         * ipa-icf.c (sem_variable::equals): Compare variables types.
4900
4901 2015-03-05  Richard Henderson  <rth@redhat.com>
4902
4903         PR target/65121
4904         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
4905         correctly check weak symbol binding.
4906
4907 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
4908
4909         PR middle-end/65315
4910         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
4911         needed alignment.
4912
4913 2015-03-05  Martin Liska  <mliska@suse.cz>
4914
4915         * ipa-inline.c (inline_small_functions): Set default value to
4916         prevent warning during bootstrap.
4917         * tree.h: Add pragma guard that ignores false positives during
4918         bootstrap.
4919
4920 2015-03-05  Richard Biener  <rguenther@suse.de>
4921
4922         PR tree-optimization/65310
4923         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4924         Properly preserve alignment of the base of the access.
4925
4926 2015-03-05  Richard Biener  <rguenther@suse.de>
4927
4928         PR ipa/65270
4929         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
4930         Compare dependence info.
4931
4932 2015-03-05  Richard Biener  <rguenther@suse.de>
4933
4934         PR middle-end/65233
4935         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
4936         tree-into-ssa.h.
4937         (walk_ssa_copies): Revert last chage.  Instead do not walk
4938         SSA names registered for SSA update.
4939
4940 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4941
4942         PR ipa/65270
4943         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
4944         vtable references for their containing type.
4945         (sem_function::equals_wpa): Compare TYPE_RESTRICT
4946         and type attributes.
4947
4948 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
4949
4950         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
4951         before negating it.
4952         * stor-layout.c (finalize_record_size): Revert latest change.
4953
4954 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
4955
4956         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
4957
4958 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4959
4960         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
4961         for correct comdat handling.
4962         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4963         Likewise.
4964         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
4965         (used_from_object_file_p_worker): Remove.
4966         (cgraph_node::only_called_directly_or_alised): Add
4967         used_from_object_file_p.
4968         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
4969         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
4970         can_remove_if_no_direct_calls_and_refs_p.
4971
4972 2015-03-04  Nick Clifton  <nickc@redhat.com>
4973
4974         * config/rl78/rl78.h (enum reg_class): Remove real registers from
4975         General register class.
4976         * config/rl78/rl78-real.md: Replace general register constraints
4977         with real+virtual register constraints.
4978
4979 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4980
4981         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
4982         from checking for -mhtm option.
4983
4984 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4985
4986         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
4987         (struct ipa_sra_check_caller_data): Add has_thunk field.
4988         (ipa_sra_check_caller): Check for thunk.
4989         (ipa_sra_preliminary_function_checks): Give up on function with
4990         thunks.
4991         (ipa_early_sra): Use call_for_symbol_and_aliases.
4992
4993 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4994
4995         PR target/65249
4996         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
4997         called for __stack_chk_guard symbol.
4998
4999 2015-03-03  DJ Delorie  <dj@redhat.com>
5000
5001         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
5002         inc/dec.
5003         (*addhi3_real): Likewise.
5004         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
5005         pattern to match incrementing memory.
5006         * config/rl78/predicates.md (rl78_1_2_operand): New.
5007         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
5008         it's the same and only mem.
5009         (rl78_alloc_physical_registers_op2): If there's effectively only
5010         one MEM, transcode it into HL.
5011         (rl78_far_p): Reject addresses that aren't legitimate.
5012
5013 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5014
5015         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
5016         negating it.
5017
5018         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
5019
5020 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
5021
5022         Implement call0 ABI for xtensa
5023         * config/xtensa/constraints.md ("a" constraint): Include stack
5024         pointer in case of call0 ABI.
5025         ("q" constraint): Make empty in case of call0 ABI.
5026         ("D" constraint): Include stack pointer in case of call0 ABI.
5027         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
5028         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
5029         prototypes.
5030         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
5031         variable.
5032         (xtensa_regno_to_class): Make it a local variable in the
5033         function xtensa_regno_to_class.
5034         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
5035         macro, function prototype and implementation.
5036         (reg_nonleaf_alloc_order): Make it a local variable in the
5037         function order_regs_for_local_alloc.
5038         (xtensa_conditional_register_usage): New function.
5039         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
5040         (xtensa_valid_move): Allow direct moves to stack pointer
5041         register in call0 ABI.
5042         (xtensa_setup_frame_addresses): Only spill register windows in
5043         windowed ABI.
5044         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
5045         call0 ABI respectively.
5046         (xtensa_function_arg_1): Only mark a7 register for copying in
5047         windowed ABI.
5048         (xtensa_call_save_reg): New function.
5049         (compute_frame_size): Add space for callee saved register
5050         storage to the frame size in call0 ABI.
5051         (xtensa_expand_prologue): Generate code to set up stack frame
5052         and save callee-saved registers in call0 ABI.
5053         (xtensa_expand_epilogue): New function.
5054         (xtensa_set_return_address): New function.
5055         (xtensa_return_addr): Calculate return address in call0 ABI.
5056         (xtensa_builtin_saveregs): Only mark a7 register for copying and
5057         emit copying code in windowed ABI.
5058         (order_regs_for_local_alloc): Add preferred register allocation
5059         order for non-leaf function in call0 ABI.
5060         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
5061         (xtensa_asm_trampoline_template): Add trampoline generation for
5062         call0 ABI.
5063         (xtensa_trampoline_init): Add trampoline initialization for
5064         call0 ABI.
5065         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
5066         functions.
5067         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
5068         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
5069         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
5070         ABI call-used registers.
5071         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
5072         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
5073         call0 ABI.
5074         (REG_CLASS_CONTENTS): Include all registers into the preferred
5075         reload registers set, adjust the set in the
5076         xtensa_conditional_register_usage.
5077         (xtensa_regno_to_class): Drop variable declaration.
5078         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
5079         function.
5080         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
5081         respectively.
5082         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
5083         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
5084         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
5085         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
5086         location in call0 ABI.
5087         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
5088         stack adjustment size when handling exception.
5089         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
5090         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
5091         definitions.
5092         ("return" pattern): Generate ret.n/ret in call0 ABI.
5093         ("epilogue" pattern): Expand epilogue.
5094         ("nonlocal_goto" pattern): Use default in call0 ABI.
5095         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
5096         emit eh_set_a0_* depending on ABI.
5097         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
5098         ("eh_set_a0_call0", "blockage"): New patterns.
5099
5100 2015-03-03  Martin Liska  <mliska@suse.cz>
5101
5102         PR ipa/65287
5103         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
5104
5105 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5106
5107         PR 65138/target
5108         * config/rs6000/rs6000-tables.opt: Regenerate table.
5109
5110 2015-03-03  Renlin Li  <renlin.li@arm.com>
5111
5112         * doc/md.texi (@item ^): Change ? into ^.
5113
5114 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
5115
5116         * doc/tm.texi: Regenerated.
5117
5118 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
5119
5120         * builtins.c (expand_builtin_return_addr): Add
5121         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
5122         surrounding #ifdef.
5123         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
5124         definition to 1.
5125         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
5126         Likewise.
5127         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
5128         undefined.
5129         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
5130         paragraph.
5131
5132 2015-03-03  Martin Jambor  <mjambor@suse.cz>
5133             Eric Botcazou  <ebotcazou@adacore.com>
5134
5135         * tree-sra.c (ipa_sra_check_caller_data): New type.
5136         (has_caller_p): Removed.
5137         (ipa_sra_check_caller): New function.
5138         (ipa_sra_preliminary_function_checks): Use it.
5139
5140 2015-03-03  Martin Liska  <mliska@suse.cz>
5141
5142         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
5143         instead of if branch.
5144
5145 2015-03-03  Martin Liska  <mliska@suse.cz>
5146
5147         PR ipa/65282
5148         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
5149
5150 2015-03-23  Jeff Law  <law@redhat.com>
5151
5152         PR tree-optimization/65241
5153         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
5154         hash table if INSERT is true.
5155
5156 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5157
5158         PR target/65296
5159         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
5160
5161 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5162
5163         PR target/64331
5164         * config/avr/avr.c (context.h, tree-pass.h): Include them.
5165         (avr_pass_data_recompute_notes): New static variable.
5166         (avr_pass_recompute_notes): New class.
5167         (avr_register_passes): New static function.
5168         (avr_option_override): Call it.
5169
5170 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
5171
5172         Fix various problems with specs file generation.
5173
5174         PR target/65296
5175         * config.gcc (extra_gcc_objs) [avr]: Remove.
5176         * config/avr/driver-avr.c: Remove file.
5177         * config/avr/t-avr (driver-avr.o): Remove rule.
5178         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
5179         INCLUDES to build.  Depend on TM_H.
5180         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
5181         build warnings.  Fix non-matching types and non-existing %-codes.
5182         (tm.h): Include.
5183         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
5184         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
5185         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
5186         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
5187         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
5188         (LIBGCC_SPEC): Remove definitions.
5189
5190 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5191
5192         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
5193         to create a register in testing mode.
5194
5195 2015-03-03  Martin Liska  <mliska@suse.cz>
5196             Jan Hubicka  <hubicka@ucw.cz>
5197
5198         PR ipa/65263
5199         * cgraph.c (cgraph_node::has_thunk_p): New function.
5200         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
5201         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
5202         (sem_function::merge): Assert is changed.
5203
5204 2015-03-03  Martin Liska  <mliska@suse.cz>
5205             Martin Jambor  <mjambor@suse.cz>
5206
5207         PR ipa/65087
5208         * ipa-icf.c (sem_item_optimizer::execute): Change function
5209         return value to boolean.
5210         (sem_item_optimizer::merge_classes): Likewise.
5211         (ipa_icf_driver): Return TODO_remove_functions in case there's
5212         a merge operation processed.
5213         * ipa-icf.h: Change function return value to boolean.
5214
5215 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5216
5217         PR 65138/target
5218         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
5219         processor type for 64-bit little endian PowerPC.
5220
5221         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5222         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
5223         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
5224         printing built-in mask so it does not pass NULL pointers.
5225
5226         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
5227         -mcpu=powerpc64le.
5228
5229 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
5230
5231         PR target/58158
5232         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
5233         !ISA_HAS_FP_CONDMOVE.
5234
5235 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
5236
5237         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
5238         reload_completed.
5239
5240 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
5241
5242         * doc/invoke.texi (Options for Code Generation Conventions):
5243         Fix URL of DSO paper.
5244
5245 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5246
5247         PR ipa/65130
5248         * ipa-inline.c (check_callers): Looks for recursion.
5249         (inline_to_all_callers): Give up on uninlinable or recursive edges.
5250         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
5251         summary of inline clones.
5252         (do_estimate_growth_1): Fix recursion check.
5253
5254 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5255
5256         PR ipa/64988
5257         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
5258         comdat groups.
5259
5260 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
5261             Aldy Hernandez  <aldyh@redhat.com>
5262
5263         PR lto/65276
5264         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
5265         when checking TYPE_BINFO.
5266
5267 2015-03-02  Richard Biener  <rguenther@suse.de>
5268
5269         PR ipa/65270
5270         * ipa-icf-gimple.c: Include builtins.h.
5271         (func_checker::compare_memory_operand): Compare base alignment.
5272
5273 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5274
5275         PR target/65184
5276         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
5277         are never passed by reference.
5278
5279 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5280
5281         PR target/65183
5282         * tree-chkp.c (chkp_check_lower): Don't check against
5283         zero bounds for already instrumented functions.
5284         (chkp_check_upper): Likewise.
5285         (chkp_fini): Clean pass local data to avoid wrong reusage.
5286
5287 2015-02-28  Martin Liska  <mliska@suse.cz>
5288             Jan Hubicka  <hubicka@ucw.cz>
5289
5290         * ipa-icf.c (sem_variable::equals): Improve debug output;
5291         get variable constructor.
5292         (sem_variable::parse): Do not filter out too early; give up on
5293         volatile and register vars.
5294         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
5295         variables.
5296         * ipa-icf.h (sem_variable::init): Do not set ctor.
5297         (sem_variable::ctor): Remove.
5298
5299 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
5300
5301         PR middle-end/65233
5302         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
5303
5304 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5305
5306         * ipa-icf.c: Include stor-layout.h
5307         (sem_function::compare_cgraph_references): Rename to ...
5308         (sem_item::compare_cgraph_references): ... this one.
5309         (sem_variable::equals_wpa): New function
5310         (sem_variable::equals): Do not check stuff already verified by
5311         equals_wpa.
5312         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
5313         * ipa-icf.h (sem_item): Add compare_cgraph_references.
5314         (sem_function): Remove compare_cgraph_references.
5315         (sem_variable): Turns equals_wpa into non-inline.
5316
5317 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5318
5319         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
5320         (sem_item::add_expr): New function.
5321         (sem_function::hash_stmt): Handle operands of most statements.
5322         (sem_variable::get_hash): Hash the actual constructor.
5323         * ipa-icf.h (sem_item): Add add_expr.
5324         (sem_function): Update prototype of hash_stmt
5325
5326 2015-02-28  Martin Liska  <mliska@suse.cz>
5327             Jan Hubicka  <hubicka@ucw.cz>
5328
5329         PR ipa/65245
5330         * ipa-icf-gimple.c (func_checker::compare_function_decl):
5331         Remove.
5332         (func_checker::compare_variable_decl): Skip symtab vars.
5333         (func_checker::compare_cst_or_decl): Update.
5334         * ipa-icf.c (sem_function::parse): Do not consider aliases.
5335         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
5336         use correct symtab predicates.
5337         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
5338         (sem_variable::parse):  Update comment.
5339         (sem_item_optimizer::build_graph): Consider ultimate aliases
5340         for references.
5341
5342 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5343
5344         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
5345         of OBJ_TYPE_REF.
5346
5347 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5348
5349         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
5350         (sem_variable::merge) Likewise.
5351
5352 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5353
5354         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
5355         target; also match flag_ipa_devirt.
5356
5357 2015-03-01  Martin Liska  <mliska@suse.cz>
5358             Jan Hubicka  <hubicka@ucw.cz>
5359
5360         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
5361         Validate variable alignment.
5362         * ipa-icf.c (sem_function::equals_private): Be more precise
5363         about non-common function attributes.
5364         (sem_variable::equals): Likewise.
5365
5366 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5367
5368         PR ipa/65237
5369         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
5370         across COMDAT group boundary.
5371
5372 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5373
5374         PR ipa/65232
5375         * ipa-icf.c (clear_decl_rtl): New function.
5376         (sem_function::merge): Clear RTL before forming alias.
5377         (sem_variable::merge): Clear RTL before forming alias.
5378
5379 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
5380
5381         PR ipa/65236
5382         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
5383
5384 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
5385
5386         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
5387         to neon_to_gp<q>.
5388
5389 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5390
5391         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
5392         a typo in the description.
5393
5394 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5395
5396         PR target/64317
5397         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
5398         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
5399         * lra-constraints.c: Include "params.h".
5400         (EBB_PROBABILITY_CUTOFF): Use
5401         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
5402         (lra_inheritance): Use '<' instead of '<=' for
5403         EBB_PROBABILITY_CUTOFF.
5404         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
5405         Document change.
5406
5407 2015-02-27  Martin Liska  <mliska@suse.cz>
5408
5409         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
5410         vector length condition.
5411
5412 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
5413
5414         * doc/extend.texi (x86 transactional memory intrinsics):
5415         Reorganize discussion of _xbegin.  Clarify that the return
5416         value is a bit mask.  Expand example and move to end of section.
5417
5418 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5419             Aldy Hernandez  <aldyh@redhat.com>
5420
5421         PR rtl-optimization/65220
5422         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
5423
5424 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5425
5426         PR target/65032
5427         * lra-remat.c (update_scratch_ops): New.
5428         (do_remat): Call it.
5429         * lra.c (lra_register_new_scratch_op): New. Take code from ...
5430         (remove_scratches): ... here.
5431         * lra-int.h (lra_register_new_scratch_op): New prototype.
5432
5433 2015-02-27  Marek Polacek  <polacek@redhat.com>
5434
5435         PR c/65040
5436         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
5437         -Wformat-signedness anymore.
5438
5439 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5440
5441         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
5442         function.
5443         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
5444
5445 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5446
5447         * config/s390/s390.c (enum s390_builtin):
5448         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
5449         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
5450         (s390_init_builtins): Generate new builtin functions.
5451         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
5452         (s390_sfpc, s390_efpc): New pattern definitions.
5453
5454 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5455
5456         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
5457         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
5458         (s390_builtin_decls): New array.
5459         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
5460         (s390_builtin_decl): New function.
5461         (TARGET_BUILTIN_DECL): Define macro.
5462
5463 2015-02-27  Richard Biener  <rguenther@suse.de>
5464
5465         PR middle-end/63175
5466         * builtins.c (get_object_alignment_2): Make sure to re-apply
5467         the ANDed mask after recursing to its operand gets us a new
5468         misalignment bit position.
5469
5470 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
5471             Martin Liska  <mliska@suse.cz>
5472
5473         PR bootstrap/65150
5474         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
5475         Use address_matters_p.
5476         (redirect_all_callers, set_addressable): New functions.
5477         (sem_function::merge): Reorganize and fix merging issues.
5478         (sem_variable::merge): Likewise.
5479         (sem_variable::compare_sections): Remove.
5480         * common.opt (fmerge-all-constants, fmerge-constants): Remove
5481         Optimization flag.
5482         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
5483         redirect them.
5484         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
5485         decl is used.
5486         (address_matters_1): New function.
5487         (symtab_node::address_matters_p): New function.
5488         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
5489         check for merged flag.
5490         * cgraph.h (address_matters_p): Declare.
5491         (symtab_node::address_taken_from_non_vtable_p): Remove.
5492         (symtab_node::address_can_be_compared_p): New method.
5493         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
5494         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
5495         Remove.
5496         (comdat_can_be_unshared_p_1) Use address_matters_p.
5497         (update_vtable_references): Fix formating.
5498         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
5499         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
5500         * cgraphclones.c: Preserve merged and icf_merged flags.
5501
5502 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
5503
5504         * doc/extend.texi (Function Attributes): Fix spelling and typos.
5505         (Label Attributes): Likewise.
5506         (Cilk Plus Builtins): Likewise.
5507         (ARC SIMD Built-in Functions): Likewise.
5508         (ARM C Language Extensions (ACLE)): Likewise.
5509         (PowerPC Built-in Functions): Likewise.
5510         (PowerPC Hardware Transactional Memory Built-in Functions):
5511         Likewise.
5512
5513 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5514
5515         PR tree-optimization/65216
5516         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
5517         new stmt and new SSA_NAME for lhs whenever the arguments have
5518         changed and weren't just swapped.  Fix comment typo.
5519
5520         PR tree-optimization/65215
5521         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
5522         for PDP endian targets.
5523         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
5524         Fix up formatting issues.
5525         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
5526         size is smaller than the original, adjust MEM_REF offset by the
5527         difference of sizes.  Use is_gimple_mem_ref_addr instead of
5528         is_gimple_min_invariant test to avoid adding address temporaries.
5529
5530 2015-02-26  Martin Liska  <mliska@suse.cz>
5531             Jan Hubicka  <hubicka@ucw.cz>
5532
5533         PR ipa/64693
5534         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
5535         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
5536         (sem_item_optimizer::process_cong_reduction): Include division by
5537         sensitive references.
5538         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
5539         * ipa-ref.c (ipa_ref::address_matters_p): New function.
5540         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
5541
5542 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
5543
5544         PR target/65192
5545         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
5546         Remove.
5547         * config/avr/avr.c: Same.
5548         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
5549         Refuse any constant address not in 0..0xbf.
5550         * config/avr/avr.md (*mov<mode>, *movsf): Remove
5551         tiny_valid_direct_memory_access_range from insn conditions.
5552         (mov<mode>): Don't special-case expansion of avrtiny addresses.
5553
5554 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
5555
5556         PR target/61142
5557         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
5558         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
5559         * config/sh/predicates.md (const_logical_operand): New predicate.
5560         * config/sh/sh.md: Add new peephole2 patterns.
5561
5562 2015-02-26  Marek Polacek  <polacek@redhat.com>
5563
5564         PR ipa/65008
5565         * ipa-inline.c (early_inliner): Recompute inline parameters.
5566
5567 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5568
5569         PR target/65171
5570         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
5571         instructions with TImode operands are included in the analysis.
5572
5573 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
5574
5575         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
5576         of an EDGE_FSM_THREAD.
5577
5578 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
5579
5580         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
5581
5582 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
5583
5584         PR debug/46102
5585         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
5586
5587 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
5588
5589         PR tree-optimization/65048
5590         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
5591         (thread_through_all_blocks): Call valid_jump_thread_path.
5592         Remove invalid FSM jump-thread paths.
5593
5594 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
5595
5596         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
5597         (ipa_write_optimization_summaries): Likewise.
5598         * tree-streamer.h: Include data-streamer.h.
5599         (streamer_mode_table): Declare extern variable.
5600         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
5601         * lto-streamer-out.c (lto_output_init_mode_table,
5602         lto_write_mode_table): New functions.
5603         (produce_asm_for_decls): Call lto_write_mode_table when streaming
5604         offloading LTO.
5605         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
5606         (lto_create_simple_input_block): Add mode_table argument to the
5607         lto_input_block constructors.
5608         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
5609         Likewise.
5610         * data-streamer-in.c (string_for_index): Likewise.
5611         * ipa-inline-analysis.c (inline_read_section): Likewise.
5612         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
5613         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
5614         * lto-streamer-in.c (lto_read_body_or_constructor,
5615         lto_input_toplevel_asms): Likewise.
5616         (lto_input_mode_table): New function.
5617         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
5618         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
5619         Use bp_pack_machine_mode.
5620         * real.h (struct real_format): Add name field.
5621         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
5622         (class lto_input_block): Add mode_table member.
5623         (lto_input_block::lto_input_block): Add mode_table_ argument,
5624         initialize mode_table.
5625         (struct lto_file_decl_data): Add mode_table field.
5626         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
5627         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
5628         unpack_ts_decl_common_value_fields,
5629         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
5630         * tree-streamer.c (streamer_mode_table): New variable.
5631         * real.c (ieee_single_format, mips_single_format,
5632         motorola_single_format, spu_single_format, ieee_double_format,
5633         mips_double_format, motorola_double_format,
5634         ieee_extended_motorola_format, ieee_extended_intel_96_format,
5635         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
5636         ibm_extended_format, mips_extended_format, ieee_quad_format,
5637         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
5638         decimal_single_format, decimal_double_format, decimal_quad_format,
5639         ieee_half_format, arm_half_format, real_internal_format): Add name
5640         field.
5641         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
5642
5643 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
5644
5645         PR target/65161
5646         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
5647         reordering for selective scheduling.
5648
5649 2015-02-26  Terry Guo  <terry.guo@arm.com>
5650
5651         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
5652         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
5653         (arm_arch_no_volatile_ce): Declare new global variable.
5654         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
5655         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
5656         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
5657         (TARGET_NO_VOLATILE_CE): New macro.
5658         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
5659         volatile memory access in IT block
5660
5661 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5662
5663         PR tree-optimization/61917
5664         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
5665         that reduc_def_stmt is null.
5666
5667 2015-02-25  Martin Liska  <mliska@suse.cz>
5668
5669         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
5670         hard register variables.
5671
5672 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5673
5674         PR target/64212
5675         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
5676         (symtab::noninterposable_alias): Likewise.
5677
5678 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
5679
5680         PR target/65167
5681         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
5682         bounds registers.
5683         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
5684
5685 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
5686
5687         PR target/64997
5688         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
5689         as split condition; force split via '#' in output pattern.
5690
5691 2015-02-25  Richard Biener  <rguenther@suse.de>
5692             Kai Tietz  <ktietz@redhat.com>
5693
5694         PR tree-optimization/61917
5695         * tree-vect-loop.c (vectorizable_reduction): Allow
5696         vect_internal_def without reduction to exit graceful.
5697
5698 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5699
5700         PR target/65196
5701         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
5702         only with NONDEBUG_INSN_P.
5703
5704 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5705
5706         Use variadic macros with avr-log.c.
5707
5708         * config/avr/avr-protos.h (avr_vdump): New prototype.
5709         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
5710         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
5711         * config/avr/avr-log.c: Adjust comments.
5712         (avr_vdump): New function.
5713         (avr_vadump): Pass caller as 2nd argument instead of format string.
5714         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
5715         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
5716
5717 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
5718
5719         PR lto/64374
5720         * target.def (target_option_stream_in): New target hook.
5721         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
5722         targetm.target_option.post_stream_in if non-NULL.
5723         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
5724         * doc/tm.texi: Updated.
5725         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
5726         function.
5727         (TARGET_OPTION_POST_STREAM_IN): Redefine.
5728
5729 2015-02-24  Jeff Law  <law@redhat.com>
5730
5731         PR target/65117
5732         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
5733         of operand 0 and operand 2.
5734         (zero_cost_loop_end, loop_end): Similarly.
5735
5736 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
5737
5738         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
5739         CXX_MEM_STAT_INFO.
5740
5741 2015-02-24  DJ Delorie  <dj@redhat.com>
5742
5743         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
5744         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
5745         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
5746         instead of hardcoding SImode.
5747
5748 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
5749
5750         * omp-low.c (create_omp_child_function): Tag entrypoint
5751         functions with a special attribute.
5752
5753 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
5754
5755         PR target/65058
5756         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
5757
5758 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
5759
5760         PR rtl-optimization/65123
5761         * lra-remat.c (operand_to_remat): Check hard regs in insn
5762         definition too.
5763
5764 2015-02-24  Nick Clifton  <nickc@redhat.com>
5765
5766         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
5767         to the assembler.
5768
5769 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
5770
5771         PR libgomp/64625
5772         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
5773         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
5774         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
5775         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
5776         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
5777         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
5778         (BUILT_IN_GOACC_PARALLEL): Specify as
5779         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
5780         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
5781         * builtin-types.def
5782         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5783         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5784         Remove function types.
5785         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
5786         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5787         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5788         New function types.
5789
5790 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
5791
5792         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
5793
5794 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
5795
5796         PR tree-optimization/65170
5797         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
5798         if val[1] < 0, clear also val[2] and return 3.
5799
5800 2015-02-24  Alan Modra  <amodra@gmail.com>
5801
5802         PR target/65172
5803         * config/rs6000/rs6000.c (get_memref_parts): Only return true
5804         when *base is a reg.  Handle nested plus addresses.  Simplify
5805         pre_modify test.
5806
5807 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
5808
5809         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
5810         use natural alignment when optimizing for size.
5811
5812 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
5813
5814         PR target/65153
5815         * config/sh/sh.md (movsicc_true+3): Remove peephole.
5816         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
5817         * config/sh/sh.c (replace_n_hard_rtx): Remove.
5818
5819 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
5820
5821         PR fortran/63427
5822         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
5823         too big for a wide_int.  Implement missing wrapping operation.
5824
5825 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
5826
5827         PR target/65163
5828         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
5829         instead of const_int 4294901760.
5830
5831 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
5832
5833         * config/avr/t-avr: Fix typo in comment.
5834
5835 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
5836
5837         * doc/rtl.texi (fma): Clarify documentation.
5838
5839 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
5840
5841         PR debug/58123
5842         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
5843         over input_location.
5844
5845 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5846
5847         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
5848         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
5849         restrict alignments to absolute_biggest_alignment.
5850         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
5851         Define.
5852         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
5853         * doc/tm.texi: Regenerate.
5854         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
5855
5856 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
5857
5858         PR target/64172
5859         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
5860
5861 2015-02-20  Richard Biener  <rguenther@suse.de>
5862
5863         PR tree-optimization/65136
5864         * tree-ssa-propagate.c: Include cfgloop.h.
5865         (replace_phi_args_in): Avoid replacing loop latch edge PHI
5866         arguments with constants.
5867
5868 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
5869             Martin Liska  <mliska@suse.cz>
5870
5871         PR target/63892
5872         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
5873         don't try to create_thunk if stdarg_p.  If
5874         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
5875         redirect_callers if possible.
5876         (sem_item_optimizer::execute): Call unregister_hooks here...
5877         (ipa_icf_driver): ... instead of here.
5878
5879 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5880
5881         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
5882         Mark operand 0 as earlyclobber in 2nd alternative.
5883         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
5884         Write negated shift amount into QI lowpart operand 0 and use it
5885         in the shift step.
5886         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5887
5888 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5889
5890         * cgraph.h (clone_function_name_1): Declare.
5891         * cgraphclones.c (clone_function_name_1): New function.
5892         (clone_function_name): Use it.
5893         * lto-partition.c: Include "stringpool.h".
5894         (must_not_rename, maybe_rewrite_identifier)
5895         (validize_symbol_for_target): New static functions.
5896         (privatize_symbol_name): Use must_not_rename.
5897         (promote_symbol): Call validize_symbol_for_target.
5898         (lto_promote_cross_file_statics): Likewise.
5899         (lto_promote_statics_nonwpa): Likewise.
5900
5901 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
5902
5903         PR target/64452
5904         * config/avr/avr.md (pushhi_insn): New insn.
5905         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
5906
5907 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5908             Jakub Jelinek  <jakub@redhat.com>
5909
5910         * tree-streamer.c (preload_common_nodes): Don't preload
5911         TI_VA_LIST* for offloading.
5912         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
5913         in_lto_p.
5914
5915 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
5916
5917         * config/pa/pa.c (pa_emit_move_sequence): Always force
5918         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
5919         note on insn.
5920
5921         * config/pa/pa.c (pa_reloc_rw_mask): New function.
5922         (TARGET_ASM_RELOC_RW_MASK): Define.
5923         (pa_cannot_force_const_mem): Revert previous change.
5924
5925 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
5926             Jan Hubicka  <hubicka@ucw.cz>
5927
5928         PR ipa/65028
5929         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
5930         across jump functions.
5931
5932 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
5933
5934         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
5935
5936 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
5937
5938         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
5939
5940 2015-02-19  Richard Henderson  <rth@redhat.com>
5941
5942         PR middle-end/65074
5943         * varasm.c (default_binds_local_p_2): Don't test node->definition;
5944         test DECL_EXTERNAL independent of symtab_node.
5945
5946 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
5947
5948         PR lto/65012
5949         * varpool.c (varpool_node::get_constructor): Return early
5950         if this->lto_file_data is NULL.
5951
5952 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5953
5954         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
5955         (rank_for_schedule_debug): Update.
5956         (ready_sort): Make static.  Move sorting logic to ...
5957         (ready_sort_debug, ready_sort_real): New static functions.
5958         (schedule_block): Sort both debug insns and real insns in preparation
5959         for ready list trimming.  Improve debug output.
5960         * sched-int.h (ready_sort): Remove global declaration.
5961
5962 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
5963
5964         * ipa-icf.c (sem_function::equals_private): Adjust.
5965         (sem_function::bb_dict_test): Take a vec<int> * instead of
5966         auto_vec<int>.
5967         * ipa-icf.h (bb_dict_test): Likewise.
5968
5969 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5970
5971         PR gcov-profile/64634
5972         * tree-eh.c (frob_into_branch_around): Fix up typos
5973         in function comment.
5974         (lower_catch): Put eh_seq resulting from EH lowering of
5975         the cleanup sequence after the cleanup rather than before it.
5976
5977 2015-02-18  Tom de Vries  <tom@codesourcery.com>
5978
5979         * common.opt (fstdarg-opt): New option.
5980         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
5981         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
5982         (@item -fstdarg-opt): New item.
5983
5984 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5985
5986         PR target/65064
5987         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
5988         for common symbols.
5989
5990 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5991
5992         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
5993         insn-modes.h.
5994         (ALL_HOST_OBJS): Add mkoffload.o.
5995         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
5996
5997 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
5998
5999         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
6000         (compare_virtual_tables): Be smarter about skipping typeinfos;
6001         do sane output on virtual table table mismatch.
6002         (warn_odr): Be ready for forward declarations of enums;
6003         output sane info on base mismatch and virtual table mismatch.
6004         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
6005         when only one type is polymorphic.
6006         (get_odr_type): Fix hashtable corruption.
6007         (dump_odr_type): Dump mangled names.
6008
6009 2015-02-18  Richard Biener  <rguenther@suse.de>
6010
6011         PR tree-optimization/65063
6012         * tree-predcom.c (determine_unroll_factor): Return 1 if we
6013         have replaced looparound PHIs.
6014
6015 2015-02-18  Martin Liska  <mliska@suse.cz>
6016
6017         * lto-streamer.c (lto_streamer_init): Encapsulate
6018         streamer_check_handled_ts_structures with checking macro.
6019
6020 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
6021
6022         PR ipa/65087
6023         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
6024         section if !implicit_section.
6025         (cgraph_node::create_version_clone_with_body): Likewise.
6026         * trans-mem.c (ipa_tm_create_version): Likewise.
6027
6028 2015-02-18  Richard Biener  <rguenther@suse.de>
6029
6030         PR tree-optimization/62217
6031         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
6032         into BIVs.
6033
6034 2015-02-18  Marek Polacek  <polacek@redhat.com>
6035
6036         PR sanitizer/65081
6037         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
6038         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
6039         is in range [-16K, -1].  Don't issue run-time error if
6040         (ptr > ptr + offset).
6041
6042 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
6043
6044         * doc/install.texi (nvptx-*-none): New section.
6045         * doc/invoke.texi (Nvidia PTX Options): Likewise.
6046         * config/nvptx/nvptx.opt: Update.
6047
6048         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
6049         (access_check): New functions, copied from
6050         config/i386/intelmic-mkoffload.c.
6051         (main): For non-installed testing, look in all COMPILER_PATHs for
6052         GCC_INSTALL_NAME.
6053
6054         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
6055
6056 2015-02-18  Andrew Pinski  <apinski@cavium.com>
6057             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6058
6059         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
6060         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
6061
6062 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
6063
6064         * ipa-visibility.c (function_and_variable_visibility): Only
6065         check locality if node is not already local.
6066         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
6067         call_for_symbol_and_aliases instead of
6068         call_for_symbol_thunks_and_aliases.
6069         (ipa_inline): Likewise.
6070         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6071         first walk aliases.
6072         * ipa.c (symbol_table::remove_unreachable_nodes): Use
6073         call_for_symbol_and_aliases.
6074         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
6075         (ipa_propagate_frequency_1): Use it; use opt_for_fn
6076         (ipa_propagate_frequency): Update.
6077         (ipa_profile): Add opt_for_fn gueards.
6078
6079 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
6080
6081         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
6082         * doc/invoke.texi (SH options): Document it.
6083         * config/sh/sh.c (sh_insn_length_adjustment): Check
6084         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
6085
6086 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
6087
6088         * common.opt (fipa-cp-alignment): New.
6089         * ipa-cp.c (ipcp_store_alignment_results): Check
6090         flag_ipa_cp_alignment.
6091         * opts.c (default_options_table): Enable -fipa-cp-alignment for
6092         -O2.
6093         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
6094         * doc/invoke.texi: Document -fipa-cp-alignment.
6095
6096 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
6097
6098         PR target/64793
6099         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
6100         to nil.  Adjust comments.
6101
6102 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
6103
6104         * ipa-visibility.c (function_and_variable_visibility): Only
6105         check locality if node is not already local.
6106         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
6107         call_for_symbol_and_aliases instead of
6108         call_for_symbol_thunks_and_aliases.
6109         (ipa_inline): Likewise.
6110         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6111         first walk aliases.
6112         * ipa.c (symbol_table::remove_unreachable_nodes): Use
6113         call_for_symbol_and_aliases.
6114         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
6115         (ipa_propagate_frequency_1): Use it; use opt_for_fn
6116         (ipa_propagate_frequency): Update.
6117         (ipa_profile): Add opt_for_fn guards.
6118
6119 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
6120
6121         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
6122         skipping of "strange" tokens.
6123
6124 2015-02-17  Jeff Law  <law@redhat.com>
6125
6126         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
6127         obsolete comment.
6128
6129 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
6130
6131         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
6132         as forcing a HARD_DEP between instructions, thereby
6133         disallowing rewriting to break dependencies.
6134
6135 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
6136
6137         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
6138         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
6139         variables in boundary that have no inlitalizer encoded and are
6140         not aliases.
6141         * varasm.c (default_binds_local_p_2): External definitions do not
6142         count as definitions here.
6143
6144 2015-02-16  Jeff Law  <law@redhat.com>
6145
6146         PR tree-optimization/64823
6147         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
6148         statements.
6149         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
6150         threading through blocks with PHIs, but no statements.
6151         (thread_through_normal_block): Distinguish between blocks where
6152         we did not process all the statements and blocks with no statements.
6153
6154 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
6155             James Greenhalgh  <james.greenhalgh@arm.com>
6156
6157         PR ipa/64963
6158         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
6159         section if not linkonce.  Fix up formatting.
6160         (cgraph_node::create_version_clone_with_body): Copy section.
6161         * trans-mem.c (ipa_tm_create_version): Likewise.
6162
6163 2015-02-16  Richard Biener  <rguenther@suse.de>
6164
6165         PR tree-optimization/65077
6166         * tree-ssa-structalias.c (get_constraint_for_1): Handle
6167         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
6168         (find_func_aliases): Allow float values to carry pointers again.
6169
6170 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
6171
6172         * doc/install.texi (Specific): Reorder targets list to put
6173         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
6174         from the top menu.
6175
6176 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
6177             David Edelsohn  <dje.gcc@gmail.com>
6178
6179         PR target/65058
6180         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
6181         mapping class to external variable or function reference.
6182         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
6183         mapping class.
6184
6185 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
6186
6187         PR target/53348
6188         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
6189         ASM_WEAKEN_DECL if defined.
6190
6191 2015-02-16  Richard Biener  <rguenther@suse.de>
6192
6193         PR lto/65015
6194         * varasm.c (default_file_start): For LTO produced units
6195         emit <artificial> as file directive.
6196
6197 2015-02-16  Richard Biener  <rguenther@suse.de>
6198
6199         PR tree-optimization/63593
6200         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
6201         stmts and releasing SSA names until...
6202         (execute_pred_commoning): ... after processing all chains.
6203
6204 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
6205
6206         PR ipa/65059
6207         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
6208         external functions.
6209
6210 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
6211
6212         * doc/bugreport.texi: Adjust section titles throughout the file
6213         to use "Title Case".
6214         * doc/extend.texi: Likewise.
6215         * doc/gcov.texi: Likewise.
6216         * doc/implement-c.texi: Likewise.
6217         * doc/implement-cxx.texi: Likewise.
6218         * doc/invoke.texi: Likewise.
6219         * doc/objc.texi: Likewise.
6220         * doc/standards.texi: Likewise.
6221         * doc/trouble.texi: Likewise.
6222
6223 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
6224
6225         * cgraph.h (symtab_node::has_aliases_p): Simplify.
6226         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
6227         * tree.c (lookup_binfo_at_offset): Make static.
6228         (get_binfo_at_offset): Do not shadow offset; add explanatory
6229         comment.
6230
6231 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
6232
6233         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
6234         for all floading point loads and stores except those using a register
6235         index address.
6236         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
6237         to a register.
6238
6239 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
6240
6241         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
6242         (do_estimate_growth_1): Record if any uninlinable edge was seen.
6243         (estimate_growth): Handle uninlinable edges correctly.
6244         (check_callers): New.
6245         (growth_likely_positive): Handle aliases correctly.
6246
6247 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
6248
6249         * ipa-chkp.c: Use iterate_direct_aliases.
6250         * symtab.c (resolution_used_from_other_file_p): Move inline.
6251         (symtab_node::create_reference): Fix formating.
6252         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
6253         (symtab_node::iterate_reference): Move inline.
6254         (symtab_node::iterate_referring): Move inline.
6255         (symtab_node::iterate_direct_aliases): Move inline.
6256         (symtab_node::used_from_object_file_p_worker): Inline into ...
6257         (symtab_node::used_from_object_file_p): ... this one; move inline.
6258         (symtab_node::call_for_symbol_and_aliases): Move inline;
6259         use iterate_direct_aliases.
6260         (symtab_node::call_for_symbol_and_aliases_1): New method.
6261         (cgraph_node::call_for_symbol_and_aliases): Move inline;
6262         use iterate_direct_aliases.
6263         (cgraph_node::call_for_symbol_and_aliases_1): New method.
6264         (varpool_node::call_for_node_and_aliases): Rename to ...
6265         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
6266         use iterate_direct_aliases.
6267         (varpool_node::call_for_symbol_and_aliases_1): New method.
6268         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
6269         (ipa_discover_readonly_nonaddressable_var): Update.
6270         * ipa-devirt.c: Fix formating.
6271         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
6272         Move inline.
6273         (cgraph_node::call_for_symbol_and_aliases): Move inline.
6274         (cgraph_node::call_for_symbol_and_aliases_1): New function..
6275         * cgraph.h (used_from_object_file_p_worker): Remove.
6276         (resolution_used_from_other_file_p): Move inline.
6277         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
6278         (symtab_node::iterate_reference): Move inline.
6279         (symtab_node::iterate_referring): Move inline.
6280         (symtab_node::iterate_direct_aliases): Move inline.
6281         (symtab_node::used_from_object_file_p_worker): Inline into ...
6282         (symtab_node::used_from_object_file_p): Move inline.
6283         * tree-emutls.c (ipa_lower_emutls): Update.
6284         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
6285         (varpool_node::call_for_node_and_aliases): Remove.
6286
6287 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
6288
6289         PR tree-optimization/62209
6290         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
6291         op == range->exp, insert seq and gimplified code after labels
6292         instead of after the phi.
6293
6294 2015-02-13  Jeff Law  <law@redhat.com>
6295
6296         PR bootstrap/65060
6297         Revert my change for tree-optimization/64823.
6298
6299 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
6300
6301         PR tree-optimization/65053
6302         * tree-ssa-phiopt.c (value_replacement): When moving assign before
6303         cond, either reset VR on lhs or set it to phi result VR.
6304
6305 2015-02-13  Jeff Law  <law@redhat.com>
6306
6307         PR tree-optimization/64823
6308         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
6309         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
6310         threading through blocks with PHIs, but no statements.
6311         (thread_through_normal_block): Distinguish between blocks where
6312         we did not process all the statements and blocks with no statements.
6313
6314         PR rtl-optimization/47477
6315         * match.pd (convert (plus/minus (convert @0) (convert @1): New
6316         simplifier to narrow arithmetic.
6317
6318 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
6319
6320         PR ipa/65028
6321         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
6322         polymorphic call info when type is not known to be preserved.
6323
6324 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
6325
6326         PR ipa/65028
6327         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
6328         (inline_call): Use it.
6329
6330 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
6331
6332         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
6333         GOMP_DEVICE_NVIDIA_PTX.
6334
6335 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
6336
6337         PR ipa/65034
6338         * stmt.c (emit_case_nodes): Use void_type_node instead of
6339         NULL_TREE as LABEL_DECL type.
6340
6341 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
6342
6343         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
6344         constraints.
6345         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
6346         symbolic references to data to be forced to constant memory on the
6347         SOM target.
6348
6349 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6350
6351         PR tree-optimization/65002
6352         * tree-cfg.c (pass_data_fixup_cfg): Don't update
6353         SSA on start.
6354         * tree-sra.c (some_callers_have_no_vuse_p): New.
6355         (ipa_early_sra): Reject functions whose callers
6356         assume function is read only.
6357
6358 2015-02-13  Richard Biener  <rguenther@suse.de>
6359
6360         PR lto/65015
6361         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
6362         for LTO produced CUs.
6363
6364 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
6365
6366         PR tree-optimization/64705
6367         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
6368         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
6369         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
6370         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
6371         expand_simple_operations.
6372
6373 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6374             Richard Henderson  <rth@redhat.com>
6375
6376         PR rtl/32219
6377         * cgraphunit.c (cgraph_node::finalize_function): Set definition
6378         before notice_global_symbol.
6379         (varpool_node::finalize_decl): Likewise.
6380         * varasm.c (default_binds_local_p_2): Rename from
6381         default_binds_local_p_1, add weak_dominate argument.  Use direct
6382         returns instead of assigning to local variable.  Unify varpool and
6383         cgraph paths via symtab_node.  Reject undef weak variables before
6384         testing visibility.  Reorder tests for simplicity.
6385         (default_binds_local_p): Use default_binds_local_p_2.
6386         (default_binds_local_p_1): Likewise.
6387         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
6388         via symtab_node.
6389         (default_elf_asm_output_external): Emit visibility when specified.
6390
6391 2015-02-13  Alan Modra  <amodra@gmail.com>
6392
6393         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
6394         code setting up r11 for out-of-line fp restore.
6395
6396 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
6397
6398         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
6399         (muser-mode): Likewise.
6400
6401 2015-02-13  Alan Modra  <amodra@gmail.com>
6402
6403         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
6404         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
6405
6406 2015-02-12  David Howells  <dhowells@redhat.com>
6407
6408         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
6409         warning.
6410         * tree-ssa-uninit.c (dump_predicates): Likewise.
6411         * opts.c (print_filtered_help): Likewise.
6412
6413 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
6414
6415         * dwarf2out.c (output_die): Use "%s", name instead of name to
6416         avoid -Wformat-security warning.
6417
6418         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
6419         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
6420         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
6421         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
6422
6423 2015-02-12  Jason Merrill  <jason@redhat.com>
6424
6425         * common.opt (-flifetime-dse): New.
6426
6427 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
6428
6429         PR sanitizer/65019
6430         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
6431
6432         PR tree-optimization/65014
6433         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
6434         use original second operand of arg0 or arg1 instead of
6435         that adjusted by STRIP_NOPS.
6436
6437 2015-02-11  Jeff Law  <law@redhat.com>
6438
6439         PR target/63347
6440         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
6441         that needs to be queued, just queue it for a single cycle.
6442
6443 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
6444
6445         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
6446         bodies of thunks; comment on why.
6447         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
6448         symbols are extern.
6449
6450 2015-02-11  Richard Henderson  <rth@redhat.com>
6451
6452         PR sanitize/65000
6453         * tree-eh.c (mark_reachable_handlers): Mark source and destination
6454         regions of __builtin_eh_copy_values.
6455
6456 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
6457
6458         PR middle-end/65003
6459         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
6460         ultimate alias is MEM with SYMBOL_REF satisfying
6461         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
6462         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
6463
6464 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
6465
6466         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
6467         "diagnostic-core.h".
6468         (main): Initialize progname, and call diagnostic_initialize.
6469
6470         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
6471         instead of __OPENMP_TARGET__.
6472
6473         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
6474         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
6475         hard-coding PTX_ID.
6476
6477 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
6478
6479         * doc/sourcebuild.texi (pie_enabled): Document.
6480
6481 2015-02-11  Martin Liska  <mliska@suse.cz>
6482
6483         PR ipa/64813
6484         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
6485         a return value for call to a function that is noreturn.
6486
6487 2015-02-11  Richard Biener  <rguenther@suse.de>
6488
6489         PR lto/65015
6490         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
6491         and -fresolution.
6492
6493 2015-02-11  Andrew Pinski  <apinski@cavium.com>
6494
6495         PR target/64893
6496         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
6497         Change the first argument type to size_type_node and add another
6498         size_type_node.
6499         (aarch64_simd_expand_builtin): Handle the new argument to
6500         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
6501         print an out when the first two arguments are not
6502         nonzero integer constants.
6503         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
6504         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
6505
6506 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
6507
6508         PR target/61925
6509         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
6510         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
6511         (ix86_set_current_function): Rewritten.
6512         (ix86_add_new_builtins): Temporarily clear current_target_pragma
6513         when creating builtin fndecls.
6514
6515 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6516
6517         PR ipa/65005
6518         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
6519         function.
6520         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
6521         have no comdat group.
6522         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
6523         (lto_output_varpool_node): Always output alias info.
6524         (output_refs): Output refs of boundary aliases, too.
6525         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
6526         (output_symtab): Output call eges in thunks in boundary.
6527         (get_alias_symbol): Remove.
6528         (input_node, input_varpool_node): Do not special case weakrefs.
6529         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
6530         alias and thunks targets in the boundary; do not take removed symbols
6531         from their comdat groups.
6532         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
6533         (cgraph_node::global_info): Remove.
6534         (cgraph_node::rtl_info): Look through aliases and thunks.
6535         * cgrpah.h (global_info): Remove.
6536         (non_local_p): Remove.
6537
6538 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6539             Sandra Loosemore  <sandra@codesourcery.com>
6540
6541         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
6542         to inline asm.  List dialects in proper order.
6543
6544 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6545             Sandra Loosemore  <sandra@codesourcery.com>
6546
6547         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
6548
6549 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
6550
6551         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
6552         modified) reference to Solaris.
6553
6554 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
6555
6556         * doc/extend.texi (Extended Asm): Fix typos.
6557
6558 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
6559
6560         PR sanitizer/65004
6561         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
6562
6563 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
6564
6565         PR target/64661
6566         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
6567         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
6568         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
6569         * config/sh/constraints.md (Ara, Add): New constraints.
6570         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
6571         predicates.
6572         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
6573         atomic_mem_operand_0.  Don't use force_reg on the memory address.
6574         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
6575         Sra constraint.  Convert to insn_and_split.  Add workaround for
6576         PR 64974.
6577         (atomic_compare_and_swap<mode>_hard): Copy to
6578         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
6579         Use atomic_mem_operand_0 predicate.
6580         (atomic_compare_and_swap<mode>_soft_gusa,
6581         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
6582         AraAdd constraints.
6583         (atomic_compare_and_swap<mode>_soft_tcb,
6584         atomic_compare_and_swap<mode>_soft_imask,
6585         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
6586         atomic_mem_operand_0 predicate and SraSdd constraints.
6587         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
6588         constraint.
6589         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
6590         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
6591         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
6592         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
6593         force_reg on the memory address.
6594         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
6595         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
6596         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
6597         atomic_mem_operand_1 predicate and Sra constraint.
6598         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
6599         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6600         Use atomic_mem_operand_1 predicate.
6601         (atomic_<fetchop_name><mode>_hard): Copy to
6602         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6603         Use atomic_mem_operand_1 predicate.
6604         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
6605         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6606         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
6607         insn_and_split.  Use atomic_mem_operand_1 predicate.
6608         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
6609         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
6610         Use atomic_mem_operand_1 predicate.
6611         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
6612         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6613         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
6614         in generated insn with original mem operand before emitting the insn.
6615         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
6616         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
6617         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
6618         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
6619         Use atomic_mem_operand_1 predicate and AraAdd constraints.
6620         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
6621         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
6622         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
6623         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
6624         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
6625         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
6626         atomic_not_fetch<mode>_soft_tcb,
6627         atomic_<fetchop_name>_fetch<mode>_soft_imask,
6628         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
6629         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
6630         Use atomic_mem_operand_1 predicate and SraSdd constraints.
6631
6632 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
6633
6634         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
6635         and 3 earlyclobber operands.
6636
6637 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6638
6639         * common.opt (fstack-reuse): Mark as optimization.
6640
6641 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6642
6643         PR ipa/64982
6644         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
6645
6646 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
6647
6648         PR tree-optimization/64326
6649         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
6650
6651 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
6652
6653         PR gcov-profile/61889
6654         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
6655
6656 2015-02-10  Richard Biener  <rguenther@suse.de>
6657
6658         PR tree-optimization/64995
6659         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
6660         value we use is final.
6661         (visit_reference_op_store): Always valueize op.
6662         (visit_use): Properly valueize vuses.
6663
6664 2015-02-10  Richard Biener  <rguenther@suse.de>
6665
6666         PR tree-optimization/64909
6667         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
6668         pass a scalar-stmt count estimate to the cost model.
6669         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
6670
6671 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
6672
6673         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
6674         enabled by default together with var-tracking.
6675
6676 2015-02-10  Nick Clifton  <nickc@redhat.com>
6677
6678         * config/rl78/rl78.c: Remove DIV attribute code accidentally
6679         included in previous rl78 commit.
6680
6681 2015-02-10  Richard Biener  <rguenther@suse.de>
6682
6683         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
6684         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
6685         return the bitpack.
6686
6687 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6688
6689         PR gcov-profile/61889
6690         * config.in: regenerate.
6691         * configure.in: Likewise.
6692         * configure.ac: Check for ftw.h.
6693         * gcov-tool.c: Check for ftw.h before using nftw.
6694
6695 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6696
6697         PR lto/64076
6698         * ipa-visibility.c (update_visibility_by_resolution_info): Only
6699         assert when not in lto mode.
6700
6701 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
6702
6703         * ira-color.c (setup_left_conflict_sizes_p): Simplify
6704         initialization/assignment of conflict_size.
6705
6706 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
6707
6708         PR ipa/64978
6709         * ipa-cp.c (gather_caller_stats): Skip thunks.
6710         (propagate_constants_topo): Skip aliases.
6711
6712 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6713
6714         PR target/64761
6715         * config/sh/sh.c (sh_option_override): Don't change
6716         -freorder-blocks-and-partition to -freorder-blocks even when
6717         unwinding is enabled.
6718         (sh_can_follow_jump): Return false if the followee jump is
6719         a crossing jump when -freorder-blocks-and-partition is specified.
6720         * config/sh/sh.md (*jump_compact_crossing): New insn.
6721
6722 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6723             Kaz Kojima  <kkojima@gcc.gnu.org>
6724
6725         PR target/64761
6726         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
6727         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
6728         (sh_can_redirect_branch): Rename to ...
6729         (sh_can_follow_jump): ... this.  Constify argument types.
6730         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
6731         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
6732         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
6733         * doc/tm.texi: Regenerate.
6734
6735 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6736
6737         PR sanitizer/64981
6738         * builtins.c (expand_builtin): Call targetm.expand_builtin
6739         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
6740
6741 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6742
6743         PR ipa/61548
6744         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
6745
6746 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6747
6748         PR ipa/63566
6749         * ipa-icf.c (set_local): New function.
6750         (sem_function::merge): Use it.
6751
6752 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6753
6754         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
6755         (add_type_duplicate): Fix comparison of BINFOs.
6756
6757 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6758
6759         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
6760         on getting VOID pointer.
6761
6762 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6763
6764         PR target/64979
6765         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
6766         va_list escapes.
6767
6768 2015-02-09  Richard Biener  <rguenther@suse.de>
6769
6770         * genmatch.c (replace_id): Copy expr_type.
6771
6772 2015-02-09  Richard Biener  <rguenther@suse.de>
6773
6774         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
6775         (streamer_write_tree_bitfields): Declare.
6776         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
6777         properly unpack padding.
6778         (unpack_value_fields): Inline ...
6779         (streamer_read_tree_bitfields): ... here.
6780         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
6781         and properly add padding bits.
6782         (streamer_pack_tree_bitfields): Fold into ...
6783         (streamer_write_tree_bitfields): ... this new function,
6784         exposing the bitpack object.
6785         * lto-streamer-out.c (lto_write_tree_1): Call
6786         streamer_write_tree_bitfields.
6787
6788 2015-02-09  Richard Biener  <rguenther@suse.de>
6789
6790         PR tree-optimization/54000
6791         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
6792         (struct ivopts_data): Add loop_loc member.
6793         (tree_ssa_iv_optimize_loop): Dump loop location.
6794         (create_new_ivs): Likewise, also dump number of IVs generated.
6795
6796 2015-02-09  Martin Liska  <mliska@suse.cz>
6797
6798         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
6799         just if not yet registered.
6800         (ipa_icf_generate_summary): Register callgraph hooks.
6801
6802 2015-02-08  Andrew Pinski  <apinski@cavium.com>
6803
6804         * config/aarch64/aarch64.c (gty_dummy): Delete.
6805
6806 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6807
6808         PR ipa/63566
6809         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
6810         (cgraph_node::local_p): Remove thunk related FIXME.
6811
6812 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6813
6814         PR ipa/63566
6815         * i386.c (ix86_function_regparm): Look through aliases to see if callee
6816         is local and optimized.
6817         (ix86_function_sseregparm): Likewise; also use target's SSE math
6818         settings; error out instead of silently generating wrong code
6819         on mismatches.
6820         (init_cumulative_args): Look through aliases.
6821
6822 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6823
6824         PR ipa/63566
6825         * ipa-split.c (execute_split_functions): Split if function has aliases.
6826
6827 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6828
6829         PR ipa/63566
6830         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
6831         aliases before trying to expand it.
6832         (cgraph_node::expand_thunk): Fix formating.
6833
6834 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
6835
6836         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
6837         (Using Assembly Language with C): Expand introduction.
6838         (Basic Asm): Copy-edit.  Add more information about uses of
6839         basic asm.
6840         (Extended Asm): Copy-edit.  Document new escape syntax and
6841         %l[label] syntax.
6842         (Global Reg Vars): Copy-edit.
6843         (Local Reg Vars): Likewise.
6844
6845 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
6846
6847         PR debug/2714
6848         PR bootstrap/64256
6849         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
6850         (DBX_CONTIN_CHAR): Define.
6851
6852 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
6853             Brian Rzycki  <b.rzycki@samsung.com>
6854
6855         PR tree-optimization/64878
6856         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
6857         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
6858         Stop recursion at loop phi nodes after having visited a loop phi node.
6859
6860 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6861
6862         * toplev.c (process_options): Change flag_ipa_ra before creating
6863         optimization_{default,current}_node.
6864
6865         PR ipa/64896
6866         * cgraphunit.c (cgraph_node::expand_thunk): If
6867         restype is not is_gimple_reg_type nor the thunk_fndecl
6868         returns aggregate_value_p, set restmp to a temporary variable
6869         instead of resdecl.
6870
6871 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
6872
6873         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
6874
6875 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6876
6877         PR target/64205
6878         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
6879         add a general secondary reload handler for SDmode, unless we have
6880         both read/write support for SDmode.
6881
6882 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6883
6884         PR middle-end/64937
6885         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
6886         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
6887         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
6888         1 before, push it to abstract_vec.
6889         (dwarf2out_abstract_function): Adjust caller.  Don't call
6890         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
6891         DECL_ABSTRACT_P flags for all abstract_vec elts.
6892
6893 2015-02-06  Renlin Li  <renlin.li@arm.com>
6894
6895         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
6896         complex gimple.
6897         * tree-ssa.c (execute_update_addresses_taken): Likewise.
6898
6899 2015-02-06  Jeff Law  <law@redhat.com>
6900
6901         PR target/64889
6902         * config/h8300/h8300.c (push): New argument "in_prologue".
6903         Pass "in_prologue" along to "F".
6904         (h8300_push_pop): Corresponding changes.
6905         (h8300_expand_prologue): Likewise.
6906         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
6907
6908 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6909
6910         PR rtl-optimization/64957
6911         PR debug/64817
6912         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
6913         IOR rather than for AND.
6914
6915 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
6916
6917         PR target/62631
6918         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
6919         of shift-add and (add + shift) operations.  Rename local variable.
6920
6921 2015-02-05  Jeff Law  <law@redhat.com>
6922
6923         PR target/17306
6924         * config/h8300/constraints.md (U): Correctly dectect
6925         "eightbit_data" memory addresses.
6926         * config/h8300/h8300.c (eightbit_constant_address_p): Also
6927         handle (const (plus (symbol_ref (x)))) where x is declared
6928         as an 8-bit data memory address.
6929         * config/h8300/h8300.md (call, call_value): Correctly detect
6930         "funcvec" functions.
6931
6932         PR target/43264
6933         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
6934         24 to 28 bits for the H8/300.
6935
6936 2015-02-06  Alan Modra  <amodra@gmail.com>
6937
6938         PR target/64876
6939         * config/rs6000/rs6000.c (chain_already_loaded): New function.
6940         (rs6000_call_aix): Use it.
6941
6942 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
6943
6944         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
6945         check.
6946
6947 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
6948
6949         * config/h8300/constraints.md ("U" constraint): Use strict
6950         variant of REG_OK_FOR_BASE_P after reload has started.
6951
6952 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
6953
6954         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
6955         define to zero if !TARGET_NEON.
6956         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
6957
6958 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6959             Trevor Saunders  <tsaunders@mozilla.com>
6960
6961         PR ipa/61548
6962         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
6963
6964 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6965
6966         PR ipa/61548
6967         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
6968         when removing varpool nodes.
6969
6970 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6971
6972         PR ipa/61548
6973         * varpool.c (varpool_node::remove): Fix order of variables.
6974
6975 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6976
6977         PR ipa/64686
6978         * ipa-inline.c (inline_small_functions): Fix ordering issue between
6979         speculation resolution and key updates.
6980
6981 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6982
6983         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
6984         about not letting any speculative edges unupdated.
6985
6986 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6987
6988         PR gcov/64123
6989         * gcov-io.c (gcov_var): Export.
6990
6991 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6992
6993         PR middle-end/64922
6994         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
6995         edges that become speculative.
6996
6997 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6998
6999         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
7000         or DW_LANG_Fortran08.
7001         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
7002         DW_LANG_Fortran08.
7003         (gen_compile_unit_die): Handle "GNU Fortran2003" and
7004         "GNU Fortran2008" language strings.
7005         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
7006         * langhooks.h (lang_GNU_Fortran): New prototype.
7007         * langhooks.c (lang_GNU_Fortran): New function.
7008         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
7009         lang_GNU_Fortran.
7010
7011 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
7012
7013         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
7014         (RTX_OK_FOR_OLO10_P): Likewise.
7015
7016 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
7017
7018         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
7019
7020 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
7021
7022         PR middle-end/64922
7023         * gimple.c: Include gimple-ssa.h.
7024         (maybe_remove_unused_call_args): New function.
7025         * gimple.h (maybe_remove_unused_call_args): Declare.
7026         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
7027         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
7028         * gimple-fold.c (gimple_fold_call): Likewise.
7029
7030 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
7031
7032         PR rtl-optimization/64905
7033         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
7034         pointer alignment if it isn't needed.
7035
7036 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
7037
7038         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
7039         cortex-a72.cortex-a53.
7040         * config/aarch64/aarch64-tune.md: Regenerate.
7041         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
7042
7043 2015-02-04  Nick Clifton  <nickc@redhat.com>
7044
7045         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
7046         inside a MEM.
7047
7048 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
7049
7050         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
7051         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
7052         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
7053         of DEF_BUILTIN.
7054         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
7055         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
7056         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
7057         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
7058         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
7059         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
7060         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
7061         * tree-core.h (enum built_in_function): In between
7062         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
7063         for builtins that use DEF_BUILTIN_CHKP macro.
7064
7065 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
7066
7067         PR debug/64817
7068         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
7069         operands for tcc_comparison exprs.  Fix typos.
7070
7071         PR debug/64817
7072         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
7073         of two XORs that have an intervening AND or IOR.
7074
7075         PR debug/64817
7076         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
7077         simplification of XOR of AND to not allocate new rtx before
7078         committing to a simplification.
7079
7080 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7081
7082         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
7083         manual swaps in all peepholes.
7084
7085 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7086
7087         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
7088         of manual swapping implementation.
7089         (aarch64_expand_vec_perm_const_1): Likewise.
7090
7091 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
7092
7093         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
7094         (generic_addrcost_table): Remove NAMED_PARAM.
7095         (cortexa57_addrcost_table): Likewise.
7096         (xgene1_addrcost_table): Likewise.
7097         (generic_regmove_table): Likewise.
7098         (cortexa53_regmove_table): Likewise.
7099         (xgene1_regmove_table): Likewise.
7100         (generic_vector_table): Likewise.
7101         (cortexa57_vector_table): Likewise.
7102         (xgene1_vector_table): Likewise.
7103         (generic_tunings): Likewise.
7104         (cortexa53_tunings): Likewise.
7105         (cortexa57_tunings): Likewise.
7106         (xgene1_tunings): Likewise.
7107
7108 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
7109
7110         * config/arm/arm-cores.def: Add cortex-a72 and
7111         cortex-a72.cortex-a53.
7112         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
7113         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
7114         * config/arm/arm-tune.md: Regenerate.
7115         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
7116         "cortex-a72.cortex-a53".
7117         * doc/invoke.texi (ARM Options/-mtune): Likewise.
7118
7119 2015-02-04  Nick Clifton  <nickc@redhat.com>
7120
7121         PR target/64408
7122         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
7123         of accepted codes.
7124         (nonimmediate_di_operand): Likewise.
7125
7126         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
7127         prefixes of known F5 using MSP430 MCUs.
7128
7129 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7130
7131         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
7132         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
7133         instead of __builtin_sqrt.
7134
7135 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
7136
7137         * varasm.c (do_assemble_alias): Follow transparent alias
7138         chain for target.
7139         (default_assemble_visibility): Follow transparent alias
7140         chain for decl name.
7141
7142 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7143
7144         PR middle-end/62103
7145         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
7146         to compute size of referenced value in the constant case.
7147
7148 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
7149
7150         PR rtl-optimization/64756
7151         * cse.c (invalidate_dest): New function.
7152         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
7153         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
7154         invalidate and do not record it.
7155
7156 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
7157
7158         PR target/64660
7159         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
7160         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
7161         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
7162         atomic_nand<mode>_soft_tcb): New insns.
7163         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
7164         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
7165         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
7166         Split into atomic_not_fetchsi_hard if operands[0] is unused.
7167         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
7168         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
7169         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
7170         atomic_not<mode>_hard if operands[0] is unused.
7171         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
7172         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
7173         if operands[0] is unused.
7174         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
7175         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
7176         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
7177         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
7178         unused.
7179         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
7180         into atomic_not<mode>_soft_tcb if operands[0] is unused.
7181         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
7182         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
7183         if operands[0] is unused.
7184         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
7185         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
7186         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
7187         atomic_nand_fetchsi_hard if operands[0] is unused.
7188         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
7189         atomic_nand<mode>_hard if operands[0] is unused.
7190         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
7191         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
7192         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
7193         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
7194         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
7195         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
7196         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
7197         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
7198         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
7199         atomic_not<mode>_hard if operands[0] is unused.
7200         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
7201         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
7202         unused.
7203         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
7204         into atomic_not<mode>_soft_tcb if operands[0] is unused.
7205         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
7206         atomic_nand<mode>_hard if operands[0] is unused.
7207         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
7208         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
7209
7210 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
7211
7212         PR jit/64810
7213         * Makefile.in (GCC_OBJS): Add gcc-main.o.
7214         * gcc-main.c: New file, containing "main" taken from gcc.c.
7215         * gcc.c (do_self_spec): Free decoded_options.
7216         (class driver): Move declaration to gcc.h.
7217         (main): Move declaration and implementation to new file
7218         gcc-main.c.
7219         (driver_get_configure_time_options): New function.
7220         * gcc.h (class driver): Move this declaration here, from
7221         gcc.c.
7222         (driver_get_configure_time_options): New declaration.
7223
7224 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
7225
7226         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
7227         cross-module inlining.
7228         * cgraph.h (cgraph_node): Add flag merged.
7229         * ipa-icf.c (sem_function::merge): Maintain it.
7230
7231 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
7232
7233         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
7234         instead of OBJECT_P.
7235
7236 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
7237
7238         PR target/62631
7239         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
7240         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
7241         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
7242         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
7243
7244 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
7245
7246         PR other/63504
7247         * combine.c (reg_n_sets_max): New variable.
7248         (can_change_dest_mode, reg_nonzero_bits_for_combine,
7249         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
7250         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
7251         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
7252         (rest_of_handle_combine): Initialize reg_n_sets_max.
7253
7254 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
7255
7256         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
7257         if some always_inline was inlined, apply changes before inlining
7258         heuristically.
7259
7260 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
7261
7262         PR jit/64810
7263         * config/arm/arm.c (arm_option_override): Set
7264         arm_selected_arch/cpu/tune to NULL on entry.
7265
7266 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
7267             Andrew Pinski  <pinskia@gcc.gnu.org>
7268             Jakub Jelinek  <jakub@gcc.gnu.org>
7269
7270         PR target/64231
7271         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
7272         integer typing for small model. Use IN_RANGE.
7273
7274 2015-02-02  Richard Biener  <rguenther@suse.de>
7275
7276         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
7277         * tree-vrp.c (vrp_valueize_1): Likewise.
7278
7279 2015-02-02  Alan Modra  <amodra@gmail.com>
7280
7281         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
7282         than mem for toc_restore.
7283         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
7284         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
7285         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
7286
7287 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
7288
7289         PR target/64047
7290         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
7291         explicit default options.
7292
7293 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
7294
7295         PR ipa/64872
7296         * ipa-utils.c (ipa_merge_profiles): Add release argument.
7297         * ipa-icf.c (sem_function::merge): Do not release body when merging.
7298         * ipa-utils.h (ipa_merge_profiles): Update prototype.
7299
7300 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR debug/64817
7303         * cfgexpand.c (deep_ter_debug_map): New variable.
7304         (avoid_deep_ter_for_debug): New function.
7305         (expand_debug_expr): If TERed SSA_NAME is in
7306         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
7307         instead of trying to expand SSA_NAME's def stmt.
7308         (expand_debug_locations): When expanding debug bind
7309         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
7310         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
7311         value.
7312         (pass_expand::execute): Call avoid_deep_ter_for_debug on
7313         all debug bind stmts.  Delete deep_ter_debug_map after
7314         expand_debug_location if non-NULL and clear it.
7315
7316 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
7317
7318         PR target/64851
7319         * config/sh/sync.md (atomic_fetch_notsi_hard,
7320         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
7321         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
7322         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
7323         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
7324         atomic_not_fetch<mode>_soft_imask): New insns.
7325
7326 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7327
7328         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
7329         (rank_for_schedule_debug): Split from ...
7330         (rank_for_schedule): ... this.
7331         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
7332         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
7333
7334 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
7335
7336         * doc/md.texi (Machine Constraints): Alphabetize table by target.
7337         * doc/extend.texi (x86 Variable Attributes): Move section to
7338         correct alphabetization after renaming.
7339         (x86 Type Attributes): Likewise.
7340         (Target Builtins): Re-alphabetize menu.
7341         (x86 Built-in Functions): Move section to correct alphabetization
7342         after renaming.
7343         (x86 transactional memory intrinsics): Likewise.
7344         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
7345         and x86 Windows Options in table and menu.
7346         (x86 Options): Move section to correct alphabetization after
7347         renaming.
7348         (x86 Windows Options): Likewise.
7349
7350 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
7351
7352         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
7353         preferred names of the architecture and its 32- and 64-bit
7354         variants.
7355         * doc/invoke.texi: Likewise.
7356         * doc/md.texi: Likewise.
7357
7358 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
7359
7360         PR target/64882
7361         * config/i386/predicates.md (address_no_seg_operand): Reject
7362         non-CONST_INT_P operands in invalid mode.
7363
7364 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
7365
7366         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
7367         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
7368         * config/i386/predicates.md (address_no_seg_operand): Call
7369         address_operand with VOIDmode.
7370         (vsib_address_operand): Ditto.
7371         (address_mpx_no_base_operand): Ditto.
7372         (address_mpx_no_index_operand): Ditto.
7373
7374 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7375
7376         PR target/64688
7377         * lra-constraints.c (original_subreg_reg_mode): New.
7378         (simplify_operand_subreg): Try to simplify subreg of const.  Use
7379         original_subreg_reg_mode for it.
7380         (swap_operands): Update original_subreg_reg_mode.
7381         (curr_insn_transform): Set up original_subreg_reg_mode.
7382
7383 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7384
7385         PR target/64617
7386         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
7387         function.
7388         (process_alt_operands): Use it.
7389         (curr_insn_transform): Check the optional reload pseudo class is
7390         ok for the mode.
7391
7392 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
7393
7394         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
7395         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
7396         prototype.
7397         * toplev.h (init_asm_output): Update comment on use of
7398         UNKNOWN_LOCATION with fatal_error.
7399         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
7400         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
7401         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
7402         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
7403         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
7404         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
7405         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
7406         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
7407         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
7408         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
7409         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
7410         fatal_error changed to pass input_location as first argument.
7411
7412 2015-01-30  Martin Liska  <mliska@suse.cz>
7413
7414         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
7415         in #pragma GCC diagnostic guards.
7416
7417 2015-01-30  Richard Biener  <rguenther@suse.de>
7418
7419         PR tree-optimization/64829
7420         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
7421         not add a widening conversion pattern but hand off extra
7422         widenings to callers.
7423         (vect_recog_widen_mult_pattern): Handle extra widening produced
7424         by vect_handle_widen_op_by_const.
7425         (vect_recog_widen_shift_pattern): Likewise.
7426         (vect_pattern_recog_1): Remove excess vertical space in dumping.
7427         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7428         (vect_init_vector_1): Likewise.
7429         (vect_get_vec_def_for_operand): Likewise.
7430         (vect_finish_stmt_generation): Likewise.
7431         (vectorizable_load): Likewise.
7432         (vect_analyze_stmt): Likewise.
7433         (vect_is_simple_use): Likewise.
7434
7435 2015-01-29  Jeff Law  <law@redhat.com>
7436
7437         * combine.c (try_combine): Fix typo in comment.
7438
7439 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
7440
7441         PR target/64580
7442         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
7443         (rs6000_stack_info): Add assert.
7444         (rs6000_output_savres_externs): New function, split off from...
7445         (rs6000_output_function_prologue): ... here.  Do not call it for
7446         thunks.
7447
7448 2015-01-29  Jeff Law  <law@redhat.com>
7449
7450         PR target/15184
7451         * combine.c (try_combine): If I0 is a memory load and I3 a store
7452         to a related address, increase the "goodness" of doing a 4-insn
7453         combination with I0-I3.
7454         (make_field_assignment): Handle SUBREGs in the ior+and case.
7455
7456 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
7457
7458         PR tree-optimization/64746
7459         * tree-if-conv.c (mask_exists): New function.
7460         (predicate_mem_writes): Save created mask with given size for further
7461         use.
7462         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
7463         (ifcvt_repair_bool_pattern): Collect all statements that are root
7464         of bool pattern and use iterative algorithm to remove multiple uses
7465         of predicates, display number of required iterations.
7466
7467 2015-01-29  Richard Biener  <rguenther@suse.de>
7468
7469         PR tree-optimization/64853
7470         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
7471         stmt will get simulated again.
7472         * tree-ssa-ccp.c (valueize_op_1): Likewise.
7473
7474 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7475
7476         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
7477         return_in_pc.  Remove redundant assignments.
7478         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
7479         (arm_expand_epilogue): Don't compare boolean with true in if condition.
7480
7481 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
7482
7483         * config/i386/i386.c (ix86_mode_after): Make static.
7484
7485 2015-01-29  Richard Biener  <rguenther@suse.de>
7486
7487         PR tree-optimization/64844
7488         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
7489         dump cost model analysis.
7490         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7491         Do not register adjusted load/store costs here.
7492
7493 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7494             Uros Bizjak  <ubizjak@gmail.com>
7495
7496         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
7497         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
7498         using x86_use_pseudo_pic_reg.
7499         * config/i386/i386.c (ix86_conditional_register_usage): Remove
7500         support for fixed PIC register.
7501         (ix86_use_pseudo_pic_reg): Not static any more.
7502
7503 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7504
7505         PR middle-end/64805
7506         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
7507         to avoid error in cgraph node verification.
7508
7509 2015-01-29  Marek Polacek  <polacek@redhat.com>
7510
7511         * doc/standards.texi: Reflect that the default for C is gnu11.
7512
7513 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7514
7515         PR target/64761
7516         * reorg.c (switch_text_sections_between_p): New function.
7517         (relax_delay_slots): Call it when testing if the jump insn
7518         is removable.  Use targetm.can_follow_jump when testing if
7519         the conditional branch can follow an unconditional jump.
7520
7521 2015-01-27  Caroline Tice  <cmtice@google.com>
7522
7523         Committing VTV Cywin/Ming patch for Patrick Wollgast
7524         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
7525         if -fvtable-verify=preinit/std is used.
7526         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
7527         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
7528         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
7529         if -fvtable-verify=preinit/std is used.
7530         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
7531         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
7532         if -fvtable-verify=preinit/std is used.
7533         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
7534         * config/i386/mingw32.h (LIB_SPEC): Likewise.
7535         * varasm.c (assemble_variable): Add code to properly set the comdat
7536         section and name for the .vtable_map_vars section in case the
7537         target is PE or COFF.
7538
7539 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
7540
7541         PR ipa/64801
7542         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
7543         make sane BB profile.
7544         (cgraph_node::expand_thunk): Make sane BB profile.
7545         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
7546         * cgraph.h (init_lowered_empty_function): Update prototype.
7547         * config/i386/i386.c (make_resolver_func): Update call.
7548         * predict.c (gate): Disable branch prediction pass if
7549         profile is already there.
7550
7551 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
7552
7553         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
7554         * opth-gen.awk: Likewise.
7555         * common.opt: Mark flag_fp_contract_mode as Optimization.
7556
7557 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7558
7559         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
7560         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
7561
7562 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
7563
7564         PR target/64659
7565         * config/sh/predicates.md (atomic_arith_operand,
7566         atomic_logical_operand): Remove.
7567         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
7568         (atomic_arith_operand_0): New predicate.
7569         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
7570         Use atomic_arith_operand_0 for input values.
7571         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
7572         atomic_compare_and_swap<mode>_soft_gusa,
7573         atomic_compare_and_swap<mode>_soft_tcb,
7574         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
7575         arith_reg_operand instead of register_operand.
7576         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
7577         atomic_arith_operand_0 for newval input.
7578         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
7579         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
7580         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
7581         arith_reg_operand instead of register_operand.
7582         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
7583         fetchop_predicate_1, fetchop_constraint_1_llcs,
7584         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
7585         fetchop_constraint_1_imask): New code iterator attributes.
7586         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
7587         register_operand.  Use fetchop_predicate_1.
7588         (atomic_fetch_<fetchop_name>si_hard,
7589         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
7590         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
7591         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
7592         and arith_reg_operand instead of register_operand.  Use
7593         fetchop_predicate_1, fetchop_constraint_1_gusa.
7594         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
7595         and arith_reg_operand instead of register_operand.  Use
7596         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
7597         to allow R0 usage.
7598         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
7599         and arith_reg_operand instead of register_operand.  Use
7600         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
7601         to allow R0 usage.
7602         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
7603         register_operand.  Use atomic_logical_operand_1.
7604         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
7605         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
7606         arith_reg_operand instead of register_operand.
7607         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
7608         Use arith_reg_dest and arith_reg_operand instead of register_operand.
7609         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
7610         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
7611         register_operand.  Use fetchop_predicate_1.
7612         (atomic_<fetchop_name>_fetchsi_hard,
7613         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
7614         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7615         fetchop_constraint_1_llcs.
7616         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
7617         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7618         fetchop_constraint_1_gusa.
7619         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
7620         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7621         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
7622         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
7623         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7624         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
7625         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
7626         register_operand.  Use atomic_logical_operand_1.
7627         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
7628         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
7629         arith_reg_operand instead of register_operand.
7630         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
7631         arith_reg_operand instead of register_operand.  Use logical_operand
7632         and K08.  Adjust asm sequence to allow R0 usage.
7633         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
7634         arith_reg_operand instead of register_operand.  Use logical_operand
7635         and K08.
7636
7637 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7638
7639         PR other/63504
7640         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
7641         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
7642         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
7643         only get_full_len HOST_WIDE_INTs from get_val () array rather than
7644         all bits in *val_wide.
7645
7646 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
7647
7648         * varpool.c (tls_model_names): Fix names.
7649         (varpool_node::dump): Dump tls- prefix for tls models.
7650
7651 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
7652             Bernd Schmidt  <bernds@codesourcery.com>
7653             Nathan Sidwell  <nathan@codesourcery.com>
7654
7655         * config/nvptx/mkoffload.c: New file.
7656         * config/nvptx/t-nvptx: Add build rules for it.
7657         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
7658         (extra_programs): Add mkoffload.
7659         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
7660         function.
7661         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
7662
7663 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
7664
7665         PR middle-end/64809
7666         * cfgexpand.c (reorder_operands): Skip debug gimples.
7667
7668 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
7669
7670         PR tree-optimization/64277
7671         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
7672         range info when possible to refine estimation.
7673
7674 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7675
7676         PR tree-optimization/64718
7677         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
7678         be a 16bit unsigned integer when n->range is 16.
7679         (bswap_replace): Convert src to that type if necessary for all bswap
7680         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
7681         set in pass_optimize_bswap::execute ().
7682
7683 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
7684
7685         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
7686         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
7687         integer and floating point variants.
7688         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
7689
7690 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
7691
7692         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
7693         for all vector modes.
7694
7695 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7696
7697         PR bootstrap/64612
7698         * doc/sourcebuild.texi (comdat_group): Document.
7699
7700 2015-01-28  Terry Guo  <terry.guo@arm.com>
7701
7702         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
7703
7704 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
7705
7706         * toplev.c (print_version): Add param "show_global_state", and
7707         only print GGC and plugin information if it is true.
7708         (init_asm_output): Pass in "true" for the new param when calling
7709         print_version.
7710         (process_options): Likewise.
7711         (toplev::main): Likewise.
7712         * toplev.h (print_version): Add new param to decl.
7713
7714 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7715
7716         PR ipa/60871
7717         PR ipa/64139
7718         * tree.c (lookup_binfo_at_offset): New function.
7719         (get_binfo_at_offset): Use it.
7720
7721 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7722
7723         PR ipa/64282
7724         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
7725         on vtable being vtable.
7726
7727 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7728
7729         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
7730         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
7731         -mhotpatch= option.
7732         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
7733         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
7734         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
7735         Renamed.
7736         (s390_hotpatch_trampoline_halfwords_max): Renamed.
7737         (s390_hotpatch_hw_max): New name.
7738         (s390_hotpatch_trampoline_halfwords): Renamed.
7739         (s390_hotpatch_hw_before_label): New name.
7740         (get_hotpatch_attribute): Removed.
7741         (s390_hotpatch_hw_after_label): New name.
7742         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
7743         attribute.
7744         (s390_attribute_table): Ditto.
7745         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
7746         (s390_function_num_hotpatch_hw): New name.
7747         Remove special handling of inline functions and hotpatching.
7748         Return number of nops before and after the function label.
7749         (s390_can_inline_p): Removed.
7750         (s390_asm_output_function_label): Emit a configurable number of nops
7751         after the function label.
7752         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
7753         (TARGET_CAN_INLINE_P) Removed.
7754         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
7755
7756 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7757             Jiong Wang  <jiong.wang@arm.com>
7758
7759         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
7760         of scratch reg.
7761         (cb<optab><mode>1): Likewise.
7762         * config/aarch64/iterators.md (bcond): New define_code_attr.
7763
7764 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7765
7766         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
7767         memory accesses.
7768
7769 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7770
7771         * config/s390/s390.c (s390_register_move_cost): Increase costs for
7772         FPR->GPR moves.
7773
7774 2015-01-27  Richard Biener  <rguenther@suse.de>
7775
7776         * tree-vrp.c (update_value_range): Intersect the range with
7777         old recorded SSA name range information.
7778
7779 2015-01-27  Nick Clifton  <nickc@redhat.com>
7780
7781         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
7782         BC, DE and HL registers directly, not via AX.
7783         When decrementing the stack pointer by a large amount, transfer SP
7784         into AX and perform the subtraction there.
7785         (rl78_expand_epilogue): Perform the inverse of the above
7786         enhancements.
7787
7788 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7789
7790         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
7791
7792 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7793             Yury Gribov  <y.gribov@samsung.com>
7794
7795         PR ubsan/64741
7796         * ubsan.c (ubsan_source_location): Refactor code.
7797         (ubsan_type_descriptor): Update type size. Refactor code.
7798
7799 2015-01-27  Richard Biener  <rguenther@suse.de>
7800
7801         PR tree-optimization/56273
7802         PR tree-optimization/59124
7803         PR tree-optimization/64277
7804         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
7805         from the first VRP pass.
7806
7807 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7808
7809         PR ipa/64776
7810         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
7811         handle the first argument in the same loop as all the other arguments.
7812
7813         PR rtl-optimization/61058
7814         * jump.c (cleanup_barriers): Update basic block boundaries
7815         if BLOCK_FOR_INSN is non-NULL on PREV.
7816
7817 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
7818
7819         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
7820         bounds narrowing, already instrumented calls and calls to
7821         not instrumentable functions.
7822
7823 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7824
7825         PR tree-optimization/64807
7826         * wide-int.cc (wi::divmod_internal): Clear
7827         b_dividend[dividend_blocks_needed].
7828
7829 2015-01-26  DJ Delorie  <dj@redhat.com>
7830
7831         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
7832         volatile memory references.
7833
7834 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
7835
7836         PR target/49263
7837         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
7838         remove_insn.
7839         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
7840         shifts if it already fits into K08.
7841
7842 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7843
7844         PR ipa/64730
7845         * ipa-inline.c (inline_small_functions): Print "unknown" even
7846         if edge->call_stmt is non-NULL, but has builtins or unknown
7847         location.
7848
7849         PR middle-end/64421
7850         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
7851         with asterisk, skip the first character.
7852
7853 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7854
7855         PR target/64806
7856         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
7857         order change.
7858
7859 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
7860
7861         PR target/64795
7862         * config/i386/i386.md (*movdi_internal): Also check operand 0
7863         to determine TYPE_LEA operand.
7864         (*movsi_internal): Ditto.
7865
7866 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7867
7868         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
7869         OPTION_MASK_QUAD_MEMORY_ATOMIC.
7870
7871 2015-01-26  Renlin Li  <renlin.li@arm.com>
7872
7873         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
7874         the comment.
7875         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
7876         for higher part.
7877
7878 2015-01-26  Richard Biener  <rguenther@suse.de>
7879
7880         PR middle-end/64764
7881         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
7882         combining two BIT_AND_EXPR predicates.
7883
7884 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7885
7886         PR bootstrap/64754
7887         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
7888
7889 2015-01-26  Terry Guo  <terry.guo@arm.com>
7890
7891         * config/arm/arm.c (arm_file_start): Update the assignment of
7892         Tag_ABI_HardFP_use.
7893
7894 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
7895
7896         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
7897         pipeline model.
7898         config/arm/arm.md: Include the new Cortex-A57 model.
7899         (generic_sched): Don't use generic_sched when tuning for
7900         Cortex-A57.
7901
7902 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
7903             Uros Bizjak  <ubizjak@gmail.com>
7904
7905         * config/i386/i386.c (get_builtin_code_for_version): Add
7906         support for BMI and BMI2 multiversion functions.
7907
7908 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7909
7910         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
7911         (extract_bit_field): Likewise.
7912         (extract_low_bits): Likewise.
7913         (expand_mult): Likewise.
7914         (expand_mult_highpart_adjust): Likewise.
7915
7916 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7917
7918         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
7919         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
7920         * config/i386/i386.c (processor_model): Add
7921         M_INTEL_COREI7_BROADWELL.
7922         (arch_names_table): Add "broadwell".
7923
7924 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
7925
7926         PR target/49263
7927         PR target/53987
7928         PR target/64345
7929         PR target/59533
7930         PR target/52933
7931         PR target/54236
7932         PR target/51244
7933         * config/sh/sh-protos.h
7934         (sh_extending_set_of_reg::can_use_as_unextended_reg,
7935         sh_extending_set_of_reg::use_as_unextended_reg,
7936         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
7937         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
7938         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
7939         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
7940         (sh_treg_insns): New class.
7941         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
7942         (scope_counter): New class.
7943         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
7944         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
7945         sh_extending_set_of_reg::can_use_as_unextended_reg,
7946         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
7947         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
7948         sh_split_treg_set_expr): New functions.
7949         (addsubcosts): Handle treg_set_expr.
7950         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
7951         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
7952         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
7953         (sh_insn_operands_modified_between_p): Make non-static.
7954         * config/sh/predicates.md (zero_extend_movu_operand): Allow
7955         simple_mem_operand in addition to displacement_mem_operand.
7956         (zero_extend_operand): Don't allow zero_extend_movu_operand.
7957         (treg_set_expr, treg_set_expr_not_const01,
7958         arith_reg_or_treg_set_expr): New predicates.
7959         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
7960         arith_or_int_operand instead of logical_operand.  Convert to
7961         insn_and_split.  Try to optimize constant operand in splitter.
7962         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
7963         (*tstqi_t_zero): Delete.
7964         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
7965         (tstsi_t_and_not): Delete.
7966         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
7967         Convert to insn_and_split.
7968         (unnamed split, tstsi_t_zero_extract_xor,
7969         tstsi_t_zero_extract_subreg_xor_little,
7970         tstsi_t_zero_extract_subreg_xor_big): Delete.
7971         (*tstsi_t_shift_mask): New insn_and_split.
7972         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
7973         to recombine with surrounding insns when splitting.
7974         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
7975         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
7976         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
7977         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
7978         (*cbranch_div0s: Delete.
7979         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7980         Try to recombine with surrounding insns when splitting.  Add operand
7981         order variants.
7982         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
7983         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
7984         *addc_r_r_msb, *addc_2r_msb): Delete.
7985         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
7986         order variant.
7987         (*addc_negreg_t): New insn_and_split.
7988         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7989         Try to recombine with surrounding insns when splitting.
7990         Add operand order variants.
7991         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
7992         insn_and_split patterns.
7993         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
7994         surrounding insns when splitting.
7995         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
7996         (*rotcl): Likewise.  Add zero_extract variant.
7997         (*ashrsi2_31): New insn_and_split.
7998         (*negc): Convert to insn_and_split.  Use treg_set_expr.
7999         (*zero_extend<mode>si2_disp_mem): Update comment.
8000         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
8001         condition.
8002         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
8003         with surrounding insns when splitting.
8004         (any_treg_expr_to_reg): New insn_and_split.
8005         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
8006         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
8007         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
8008         *zero_extract_2): New single bit zero extract patterns.
8009         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
8010         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
8011         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
8012         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
8013         set destination.
8014         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
8015         register_operand for set source.
8016
8017 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
8018
8019         * i386.opt (prefetch_sse): New targetsave.
8020         * i386.c (ix86_function_specific_save): Save prefetch_sse.
8021         (ix86_function_specific_restore): Restore prefetch_sse and initialize
8022         ix86_cost/ix86_tune_cost.
8023
8024 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
8025
8026         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
8027         Support the JIT by using 0 as the language type.
8028
8029 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
8030
8031         PR target/64317
8032         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
8033         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
8034         (mark_regno_live, process_bb_lives): Pass new parameter value to
8035         make_hard_regno_born.
8036
8037 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
8038
8039         PR rtl-optimization/63637
8040         PR rtl-optimization/60663
8041         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
8042         if elt->cost is MAX_COST for ASM_OPERANDS.
8043         (find_sets_in_insn): Fix up comment typo.
8044         (cse_insn): Don't set src_volatile for all non-volatile
8045         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
8046         or with "memory" clobber.  Set elt->cost to MAX_COST
8047         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
8048         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
8049
8050 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
8051
8052         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
8053         alternative 1.
8054
8055 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
8056
8057         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
8058         libgcc/config/i386/elf-lib.h.
8059
8060 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
8061
8062         PR driver/64737
8063         * gcc.c (print_configuration): Don't print a blank line at the end
8064         here...
8065         (run_attempt): ... but here unstead.
8066
8067         PR middle-end/64734
8068         * omp-low.c (scan_sharing_clauses): Don't ignore
8069         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
8070         on target data/update constructs.
8071
8072 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8073
8074         PR target/50928
8075         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
8076         (DEBUG_RELOAD): Removed define.
8077         (m32c_limit_reload_class): Enable traces with if DEBUG0.
8078         (m32c_function_arg): Added a type cast.
8079         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
8080         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
8081         * config/m32c/bitops.md (andqi3_16): Likewise.
8082         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
8083         (push_a01_l): Likewise.
8084
8085 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
8086
8087         PR jit/64721
8088         * main.c (main): Construct toplev instances with init_signals=true.
8089         * toplev.c (general_init): Add param "init_signals", and use it to
8090         conditionalize the calls to signal and host_hooks.extra_signals.
8091         (toplev::toplev): Add param "init_signals".
8092         (toplev::main): When invoking general_init, pass m_init_signals
8093         to control whether signal-handlers are installed.
8094         * toplev.h (toplev::toplev): Add param "init_signals".
8095         (toplev::m_init_signals): New field.
8096
8097 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
8098
8099         PR jit/64722
8100         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
8101         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
8102         latter may be affected by the former (e.g. on i686).
8103
8104 2015-01-23  Martin Liska  <mliska@suse.cz>
8105
8106         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
8107         false positive during profiledbootstrap.
8108
8109 2015-01-23  Tom de Vries  <tom@codesourcery.com>
8110
8111         PR libgomp/64672
8112         * lto-opts.c (lto_write_options): Output non-explicit conservative
8113         -fno-openacc.
8114         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
8115         (append_compiler_options): Pass -fopenacc through.
8116
8117 2015-01-23  Tom de Vries  <tom@codesourcery.com>
8118
8119         PR libgomp/64707
8120         * lto-opts.c (lto_write_options): Output non-explicit conservative
8121         -fno-openmp.
8122         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
8123         (append_compiler_options): Pass -fopenmp through.
8124
8125 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
8126
8127         PR debug/64511
8128         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
8129         GTY markup.
8130
8131         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
8132         * diagnostic.def (DK_ICE_NOBT): New kind.
8133         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
8134         like DK_ICE, but never print backtrace.
8135         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
8136         (internal_error_no_backtrace): New function.
8137         * gcc.c (execute): Use internal_error_no_backtrace instead of
8138         internal_error.
8139
8140 2015-01-22  Jeff Law  <law@redhat.com>
8141
8142         PR target/52076
8143         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
8144         improve code density for small immediate to memory case.
8145         (insv): Better handle bitfield assignments when the field is
8146         being set to all ones.
8147         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
8148         operand predicate.
8149
8150 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8151             Jakub Jelinek  <jakub@redhat.com>
8152
8153         PR middle-end/64729
8154         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
8155         for !TARGET_LIBC_PROVIDES_SSP version and
8156         -fstack-protector-{all,strong,explicit} otherwise.
8157         * config/freebsd.h (LINK_SSP_SPEC): Handle
8158         -fstack-protector-{strong,explicit}.
8159
8160 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
8161             H.J. Lu  <hongjiu.lu@intel.com>
8162
8163         PR ipa/64694
8164         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
8165         heap.
8166
8167 2015-01-22  Wei Mi  <wmi@google.com>
8168
8169         PR rtl-optimization/64557
8170         * dse.c (record_store): Call get_addr for mem_addr.
8171         (check_mem_read_rtx): Likewise.
8172
8173 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8174
8175         * fold-const.c (const_binop): Add early return for non-tcc_binary.
8176
8177 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
8178
8179         * toplev.c (init_local_tick): Process the failure when read
8180         fails for random_seed.
8181
8182         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
8183         'pretty_name' to avoid memory overflow.
8184
8185 2015-01-22  Richard Biener  <rguenther@suse.de>
8186
8187         PR middle-end/64728
8188         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
8189         abnormal coalescing on undefined SSA names.
8190
8191 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
8192
8193         PR target/64688
8194         PR target/64477
8195         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
8196         for alternative 3.
8197         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
8198
8199 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
8200
8201         PR middle-end/63325
8202         * fold-const.c (fold_checksum_tree): Don't include value of
8203         expr->decl_with_vis.symtab_node in the checksum.
8204
8205 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8206
8207         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
8208
8209 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
8210
8211         PR driver/64690
8212         * gcc.c (insert_comments): New function.
8213         (try_generate_repro): Call it.
8214         (append_text): Removed.
8215
8216 2015-01-22  Richard Biener  <rguenther@suse.de>
8217
8218         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
8219         with IL incompatible options.  Properly honor user optimize
8220         attributes.
8221
8222 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
8223
8224         PR rtl-optimization/64682
8225         * combine.c (distribute_notes): When moving a death note for
8226         a register that is set in the new I2, make sure to put it
8227         before that new I2.
8228
8229 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
8230
8231         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
8232         not TARGET_DEFAULT.
8233
8234 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
8235
8236         PR debug/64511
8237         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
8238         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
8239         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
8240
8241         PR sanitizer/64706
8242         * doc/invoke.texi (-fsanitize=vptr): Document.
8243
8244         PR rtl-optimization/62078
8245         * dse.c: Include cfgcleanup.h.
8246         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
8247         anything call purge_all_dead_edges and cleanup_cfg at the end
8248         of the pass.
8249
8250 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
8251
8252         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
8253         edges.
8254
8255 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8256
8257         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
8258         decl attribute.
8259
8260 2015-01-21  David Sherwood  <david.sherwood@arm.com>
8261             Tejas Belagod <Tejas.Belagod@arm.com>
8262
8263         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
8264         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
8265         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
8266         Removed.
8267
8268 2015-01-21  David Sherwood  <david.sherwood@arm.com>
8269             Tejas Belagod <Tejas.Belagod@arm.com>
8270
8271         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
8272         (aarch64_reverse_mask): New decls.
8273         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
8274         (insn_count): New mode_attr.
8275         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
8276         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
8277         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
8278         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
8279         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
8280         (aarch64_simd_st4): New patterns.
8281         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
8282         (aarch64_reverse_mask): New functions.
8283
8284 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
8285
8286         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
8287         Declare.
8288         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
8289         addressing modes for BE.
8290         (aarch64_print_operand): Add 'R' specifier.
8291         (aarch64_simd_disambiguate_copy): Delete.
8292         (aarch64_simd_emit_reg_reg_move): New function.
8293         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
8294         in define_splits for structural moves.
8295         (mov<mode>): Use less restrictive predicates.
8296         (*aarch64_mov<mode>): Simplify and only allow for LE.
8297         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
8298
8299 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
8300
8301         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
8302
8303 2015-01-21  Richard Henderson  <rth@redhat.com>
8304
8305         PR target/64669
8306         * ccmp.c (used_in_cond_stmt_p): Remove.
8307         (expand_ccmp_expr): Don't use it.
8308
8309 2015-01-21  Nick Clifton  <nickc@redhat.com>
8310
8311         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
8312         PARALLELs.
8313
8314 2015-01-21  Richard Biener  <rguenther@suse.de>
8315
8316         PR middle-end/64313
8317         * tree-core.h (builtin_info, builtin_info_type): Turn from
8318         an object with two arrays into an array of an object with
8319         decl and two flags, implicit_p and declared_p.
8320         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
8321         set_builtin_decl, set_builtin_decl_implicit_p,
8322         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
8323         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
8324         * builtins.c (builtin_info): Adjust.
8325         * gimplify.c (gimplify_addr_expr): References to builtins
8326         that have been declared by the user makes them eligible for
8327         use by the compiler.  Call set_builtin_decl_implicit_p on them.
8328
8329 2015-01-20  Jeff Law  <law@redhat.com>
8330
8331         PR target/59946
8332         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
8333         allow pc-relative addresses in operand predicates or constraints.
8334
8335 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
8336
8337         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
8338         neon on aarch32 processors for stringops.
8339
8340 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8341
8342         PR ipa/63576
8343         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
8344
8345 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8346
8347         PR lto/45375
8348         * ipa-inline.c: Include lto-streamer.h
8349         (report_inline_failed_reason): Output source file differences and
8350         flags on optimization/target node mismatch.
8351         (can_inline_edge_p): Consider caller to be the outer inline function;
8352         be less restrictive about matching opimize and optimize_size attributes.
8353         (inline_account_function_p): Break out from ...
8354         (inline_small_functions): ... here.
8355         * ipa-inline-transform.c (clone_inlined_nodes): Use
8356         inline_account_function_p.
8357         (inline_call): Use optimize attribution; use inline_account_function_p.
8358         (inline_transform): Use opt_for_fn.
8359         * ipa-inline.h (inline_account_function_p): Declare.
8360
8361 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
8362
8363         PR debug/64663
8364         * dwarf2out.c (decl_piece_node): Don't put bitsize into
8365         mode if bitsize <= 0.
8366         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
8367         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
8368         sizes and positions.
8369
8370 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
8371
8372         * config/nios2/nios2.c (nios2_asm_file_end): Implement
8373         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
8374         needed.
8375         (TARGET_ASM_FILE_END): Define.
8376
8377 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8378
8379         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
8380         (struct tune_params): Use the enum.
8381         * arm.c (arm_*_tune): Update.
8382         (arm_option_override): Update.
8383
8384 2015-01-20  Richard Biener  <rguenther@suse.de>
8385
8386         PR ipa/64684
8387         * ipa-reference.c (add_static_var): Inline ...
8388         (analyze_function): ... here after splitting out from ...
8389         (is_proper_for_analysis): ... this.
8390
8391 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
8392
8393         PR target/64149
8394         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
8395         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
8396         replace the conditional with it's true branch.
8397         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
8398         (arm_lra_p): Remove.
8399
8400 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
8401
8402         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
8403
8404 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8405
8406         * config/tilegx/mul-tables.c: Move symtab.h include after
8407         coretypes.h include.
8408         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
8409         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
8410         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
8411         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
8412         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
8413
8414 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
8415
8416         PR bootstrap/64676
8417         Revert:
8418         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
8419
8420         PR rtl-optimization/64081
8421         * loop-iv.c (def_pred_latch_p): New function.
8422         (latch_dominating_def): Allow specific cases with non-single
8423         definitions.
8424         (iv_get_reaching_def): Likewise.
8425         (check_complex_exit_p): New function.
8426         (check_simple_exit): Use check_complex_exit_p to allow certain cases
8427         with exits not executing on any iteration.
8428
8429 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8430
8431         PR lto/45375
8432         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
8433         to set branch cost.
8434
8435 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8436
8437         PR lto/45375
8438         * i386.c (gate): Check flag_expensive_optimizations and
8439         optimize_size.
8440         (ix86_option_override_internal): Drop optimize_size condition
8441         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
8442         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
8443         MASK_PREFER_AVX128.
8444         (ix86_avx256_split_vector_move_misalign,
8445         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
8446         * sse.md (all uses of TARGET_PREFER_AVX128): Add
8447         optimize_insn_for_speed_p check.
8448
8449 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
8450
8451         * config/mips/mips.h (FP_ASM_SPEC): New define.
8452         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
8453         instead.
8454
8455 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
8456
8457         PR target/53988
8458         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
8459         nullptr for insn when reaching the first insn.
8460         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
8461         (sh_insn_operands_modified_between_p): Add nullptr check.
8462         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
8463         sign extending mem load if the insn contains any UNSPEC or
8464         UNSPEC_VOLATILE.
8465
8466 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8467
8468         * params.def (inline-unit-growth): Drop to 15%.
8469         * invoke.texi (inline-unit-growth): Document change.
8470
8471 2015-01-19  Martin Liska  <mliska@suse.cz>
8472
8473         PR ipa/64668
8474         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
8475         function for second argument of OBJ_TYPE_REF.
8476
8477 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8478
8479         PR ipa/64218
8480         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
8481         whether function is an alias.
8482
8483 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
8484
8485         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
8486         cases.
8487
8488 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
8489
8490         PR rtl-optimization/64671
8491         * lra-remat.c (operand_to_remat): Don't consider jump and call
8492         insns.
8493
8494 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
8495
8496         PR target/59828
8497         * config/rs6000/default64.h: Include rs6000-cpus.def.
8498         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
8499         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
8500         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
8501         and POWER8.
8502         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
8503         POWER8.
8504         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
8505         pseudo-op to specify assembler dialect.
8506
8507 2015-01-19  Martin Liska  <mliska@suse.cz>
8508
8509         PR ipa/64664
8510         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
8511         Handle safe potentially removed nodes during filtering.
8512
8513 2015-01-19  Martin Liska  <mliska@suse.cz>
8514
8515         * doc/extend.texi (no_icf): Add new attribute description.
8516         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
8517         where the pass attempts to merge a function with no_icf attribute.
8518
8519 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8520
8521         PR target/64532
8522         * doc/md.texi (ARM Options): Document register constraints.
8523
8524 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
8525             Andrew Pinski  <apinski@cavium.com>
8526
8527         PR target/64304
8528         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
8529         (ashl<mode>3): Don't expand if operands[2] is not constant.
8530
8531 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8532
8533         PR target/64448
8534         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
8535         Match xor-and-xor RTL pattern.
8536
8537 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
8538
8539         PR rtl-optimization/64081
8540         * loop-iv.c (def_pred_latch_p): New function.
8541         (latch_dominating_def): Allow specific cases with non-single
8542         definitions.
8543         (iv_get_reaching_def): Likewise.
8544         (check_complex_exit_p): New function.
8545         (check_simple_exit): Use check_complex_exit_p to allow certain cases
8546         with exits not executing on any iteration.
8547
8548 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
8549
8550         * common.opt (fgraphite): Fix a typo.
8551
8552 2015-01-19  Felix Yang  <felix.yang@huawei.com>
8553
8554         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
8555         pattern.
8556         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
8557         uminp, smax_nanp, smin_nanp): New builtins.
8558         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
8559         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
8560         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
8561         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
8562         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
8563         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
8564         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
8565         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
8566         vpminnms_f32): Rewrite using builtin functions.
8567
8568 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
8569
8570         PR libgomp/64625
8571         * omp-low.c (offload_symbol_decl): Remove variable.
8572         (get_offload_symbol_decl): Remove function.
8573         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
8574         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
8575         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
8576         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
8577         BUILT_IN_GOACC_UPDATE don't pass it at all.
8578
8579 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
8580
8581         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
8582         callers.
8583
8584 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
8585
8586         * ipa-chkp.c (chkp_produce_thunks): Add early param
8587         to split thunks production into two passes.  Keep
8588         'always_inline' function bodies after the first pass.
8589         (pass_data_ipa_chkp_early_produce_thunks): New.
8590         (pass_ipa_chkp_early_produce_thunks): New.
8591         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
8592         chkp_produce_thunks signature.
8593         (make_pass_ipa_chkp_early_produce_thunks): New.
8594         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
8595         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
8596         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
8597
8598 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8599
8600         * cgraph.c (cgraph_node::dump): Dump profile flags.
8601
8602 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
8603
8604         PR target/64652
8605         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
8606         reg appear first in the parallel.
8607
8608 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8609
8610         * ipa-reference.c (set_reference_optimization_summary,
8611         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
8612         disabled.
8613         (ignore_module_statics): New static var.
8614         (propagate_bits): If ipa-reference is disabled, do not look into local
8615         properties.
8616         (analyze_function): Disable analysis when ipa_reference is disabled.
8617         (generate_summary): Do not dump when reference is disabled;
8618         collect vars accessed from functions with ipa-reference disabled.
8619         (get_read_write_all_from_node): When ipa-reference is disabled, use the
8620         node flags.
8621         (gate): Enable for LTO.
8622         (ignore_edge_p): New function.
8623         (propagate): Skip functions w/o ipa-reference analysis.
8624         * optc-save-gen.awk: Handle optimize_debug correctly.
8625         * opth-gen.awk: Likewise.
8626         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
8627         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
8628         fira-share-save-slots, fira-share-spill-slots,
8629         fmodulo-sched-allow-regmoves, fpartial-inlining,
8630         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
8631         ftracer, ftree-parallelize-loops, fassociative-math,
8632         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
8633         Optimization
8634         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
8635         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
8636         Optimization.
8637         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
8638         Fix for IPA.
8639
8640 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8641
8642         PR ipa/64378
8643         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
8644         flag correctly.
8645         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
8646
8647 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
8648
8649         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
8650         Remove duplicate option listings.
8651
8652 2015-01-18  Felix Yang  <felix.yang@huawei.com>
8653
8654         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
8655         (autofdo_source_profile::get_callsite_total_count,
8656         function_instance::get_function_instance_by_decl,
8657         string_table::get_index, string_table::get_index_by_decl,
8658         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
8659         Fix comment typos. Reformatting and minor code rearrangement.
8660
8661 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8662
8663         * config/rs6000/rs6000.md (probe_stack): Delete.
8664         (probe_stack_address): New.
8665
8666 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8667
8668         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
8669         to test for 32-bit ABIs, not !TARGET_POWERPC64.
8670
8671 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8672
8673         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
8674         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
8675         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
8676         snafu.
8677         (rs6000_libcall_value): Use the new function.
8678
8679 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
8680
8681         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
8682
8683 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8684
8685         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
8686         implement a more precise life analysis for it during backward scan.
8687
8688 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
8689
8690         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
8691
8692 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
8693
8694         PR rtl-optimization/52773
8695         * calls.c (emit_library_call_value): When pushing arguments use
8696         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
8697         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
8698         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
8699
8700 2015-01-17  Jeff Law  <law@redhat.com>
8701
8702         PR rtl-optimization/32790
8703         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
8704         not ZERO_EXTEND in SET_DESTs.
8705
8706 2015-01-17  Alan Modra  <amodra@gmail.com>
8707
8708         * cprop.c (do_local_cprop): Revert last change.
8709
8710 2015-01-16  DJ Delorie  <dj@redhat.com>
8711             Nick Clifton  <nickc@redhat.com>
8712
8713         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
8714         (addhi3_real): Likewise.  Fix [HL+0] syntax.
8715         (subqi3_real): Likewise.
8716         (subhi3_real): Likewise.
8717         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
8718         (cbranchhi4_real): Likewise.
8719         (cbranchhi4_real_inverted): Likewise.
8720         (cbranchsi4_real_lt): Likewise.
8721         (cbranchsi4_real_ge): Likewise.
8722         (cbranchsi4_real_ge): Likewise.
8723         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
8724         (sub<mode>3_virt): Likewise.
8725         (cbranchqi4_virt): Likewise.
8726         (cbranchhi4_virt): Likewise.
8727         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
8728         always use '[reg+imm]' even when imm is zero.
8729         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
8730         (rl78_general_operand): New.
8731         (rl78_nonimmediate_operand): New.
8732         (rl78_nonfar_operand): Use them.
8733         (rl78_nonfar_nonimm_operand): Likewise.
8734         (rl78_stack_based_mem): Fix.
8735         * config/rl78/constraints.md (Ibqi): New.
8736         (IBqi): New.
8737         (Wsa): New.
8738         (Wsf): New.
8739         (Cs1): Fix.
8740         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
8741         (iorqi3): Likewise.
8742         (xorqi3): Likewise.
8743         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
8744
8745         * config/rl78/constrains (Qs8): New constraint.
8746         * config/rl78/rl78.c (rl78_flags_already_set): New function.
8747         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
8748         * config/rl78/rl78-real.md (update_Z): New attribute.
8749         Update patterns to set it.
8750         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
8751         shorter compare and branch sequence can be used.
8752         (cbranchhi4_real): Likewise.
8753         (cbranchhi4_real_inverted): Likewise.
8754
8755         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
8756         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
8757         address space.
8758         * config/rl78/rl78.c (rl78_get_name_encoding): New.
8759         (rl78_option_override): Allow -mes0 only if C.
8760         (characterize_address): Support subregs of symbol_refs.
8761         (rl78_addr_space_address_mode): Move.  Add __near.
8762         (rl78_far_p): Likewise.
8763         (rl78_addr_space_pointer_mode): Likewise.
8764         (rl78_as_legitimate_address): Likewise.
8765         (rl78_addr_space_subset_p): Likewise.
8766         (rl78_addr_space_convert): Likewise.
8767         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
8768         symbols with -mes0.
8769         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
8770         addressing.
8771         (rl78_alloc_physical_registers_op1): Change logic to prefer
8772         symbol[BC] addressing.
8773         (frodata_section): New.
8774         (rl78_asm_init_sections): Initialize it.
8775         (rl78_select_section): Put __far readonly symbols in .frodata.
8776         (rl78_make_type_far): New.
8777         (rl78_insert_attributes): Force all readonly symbols to be
8778         __far when -mes0.
8779         (rl78_asm_out_integer): New.
8780         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
8781         * config/rl78/rl78.opt (-mes0): New.
8782
8783         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
8784         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8785         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
8786         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
8787         (rl78_saddr_p): New.
8788         (rl78_output_aligned_common): New.
8789         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
8790         (rl78_handle_saddr_attribute): New.
8791         (rl78_handle_naked_attribute): New.
8792         (rl78_attribute_table): Add saddr.
8793         (rl78_print_operand_1): Don't print '!' on saddr operands.
8794         (rl78_print_operand_1): Strip encodings.
8795         (rl78_sfr_p): New.
8796         (rl78_strip_name_encoding): New.
8797         (rl78_attrlist_to_encoding): New.
8798         (rl78_encode_section_info): New.
8799         (rl78_asm_init_sections): New.
8800         (rl78_select_section): New.
8801         (rl78_output_labelref): New.
8802         (rl78_output_aligned_common): New.
8803         (rl78_asm_out_integer): New.
8804         (rl78_asm_ctor_dtor): New.
8805         (rl78_asm_constructor): New.
8806         (rl78_asm_destructor): New.
8807
8808         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
8809         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
8810         (transcode_memory_rtx): Update.
8811         (rl78_expand_epilogue): Use A_REG instead of 0.
8812
8813 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8814
8815         * config/arm/arm-protos.h (struct tune_params): New field
8816         sched_autopref_queue_depth.
8817         * config/arm/arm.c (sched-int.h): Include header.
8818         (arm_first_cycle_multipass_dfa_lookahead_guard,)
8819         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
8820         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
8821         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
8822         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
8823         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
8824         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
8825         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
8826         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
8827         * config/arm/t-arm (arm.o): Update.
8828         * haifa-sched.c (update_insn_after_change): Update.
8829         (rank_for_schedule): Use auto-prefetcher model, if requested.
8830         (autopref_multipass_init): New static function.
8831         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
8832         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
8833         variable for debug dumps.
8834         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
8835         (autopref_multipass_dfa_lookahead_guard): New global function that
8836         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
8837         (init_h_i_d): Update.
8838         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
8839         * sched-int.h (enum autopref_multipass_data_status): New const enum.
8840         (autopref_multipass_data_): Structure for auto-prefetcher data.
8841         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
8842         (struct _haifa_insn_data:autopref_multipass_data): New field.
8843         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
8844         (autopref_multipass_dfa_lookahead_guard): Declare.
8845
8846 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8847
8848         * rtlanal.c (get_base_term): Handle SCRATCH.
8849
8850 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8851
8852         * config/aarch64/aarch64.c
8853         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
8854         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8855         * config/arm/arm.c
8856         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
8857         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8858
8859 2015-01-17  Alan Modra  <amodra@gmail.com>
8860
8861         * cprop.c (do_local_cprop): Disallow replacement of fixed
8862         hard registers.
8863
8864 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8865
8866         PR target/62066
8867         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
8868         early return 0.
8869
8870 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8871
8872         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
8873         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
8874
8875 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8876
8877         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
8878         * config/arm/thumb1.md: ... Here.
8879
8880 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8881
8882         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
8883         TImode for TARGET_32BIT.
8884
8885 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8886
8887         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
8888         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
8889         as ...
8890         (rs6000_abi_word_mode): New function.
8891
8892 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8893
8894         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
8895         instead of UNITS_PER_WORD to describe the size of stack slots.
8896
8897 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8898
8899         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
8900         as rs6000_promote_function_mode.  Move comment to there.
8901         (rs6000_promote_function_mode): New function.
8902
8903 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8904
8905         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
8906         -mpowerpc64 is active.
8907
8908 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8909
8910         PR middle-end/64353
8911         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
8912         virtuals on start.
8913
8914 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8915
8916         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
8917         introduced in revision 219724.
8918
8919 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8920             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8921
8922         PR target/64263
8923         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
8924         destination is not a GP reg.
8925         (*movdi_aarch64): Likewise.
8926
8927 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
8928
8929         PR target/64623
8930         * config/rs6000/default64.h: Revert ISA change.
8931
8932 2015-01-16  Richard Biener  <rguenther@suse.de>
8933
8934         PR middle-end/64614
8935         * tree-ssa-uninit.c: Include tree-cfg.h.
8936         (MAX_SWITCH_CASES): New define.
8937         (convert_control_dep_chain_into_preds): Handle switch statements.
8938         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
8939         (normalize_one_pred_1): Do not split bit-manipulations.
8940         Record (x & CST).
8941
8942 2015-01-16  Richard Biener  <rguenther@suse.de>
8943
8944         PR tree-optimization/64568
8945         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
8946         complex load rewriting for TARGET_MEM_REFs.
8947
8948 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
8949
8950         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
8951
8952 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
8953
8954         PR target/64149
8955         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
8956         variable.
8957         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
8958         (aarch64_lra_p): Remove.
8959
8960 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8961
8962         PR target/64363
8963         * ipa-chkp.h (chkp_instrumentable_p): New.
8964         * ipa-chkp.c: Include tree-inline.h.
8965         (chkp_instrumentable_p): New.
8966         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
8967         Fix processing of not instrumentable functions.
8968         (chkp_versioning): Use chkp_instrumentable_p. Warn about
8969         not instrumentable functions.
8970         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
8971         chkp_instrumentable_p.
8972         * tree-inline.h (copy_forbidden): New.
8973         * tree-inline.c (copy_forbidden): Not static anymore.
8974
8975 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8976
8977         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
8978         ptr1, ptr2 unused.
8979
8980 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8981
8982         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
8983         type OP_OUT to OP_INOUT.
8984
8985 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8986
8987         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
8988         (high x) y) to y if x and y have the same base.
8989
8990 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8991
8992         * config/arm/cortex-a57.md: New.
8993         * config/aarch64/aarch64.md: Include it.
8994         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
8995         * config/aarch64/aarch64-tune.md: Regenerate.
8996
8997 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8998
8999         PR target/64015
9000         * ccmp.c (expand_ccmp_next): New function.
9001         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
9002         and compare insn sequence.
9003         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
9004         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
9005         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
9006         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
9007         (*ccmp_ior): Changed to ccmp_ior<mode>.
9008         (cmp<mode>): New pattern.
9009         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
9010         parameters.
9011         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
9012
9013 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
9014
9015         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
9016         _mm256_bsrli_epi128): New.
9017         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
9018
9019 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
9020
9021         * expmed.c (store_bit_field_using_insv): Improve warning message.
9022         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
9023
9024 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
9025
9026         PR rtl-optimization/64011
9027         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
9028         there is partial overflow.
9029
9030 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9031
9032         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
9033         prototype.
9034         (nds32_expand_epilogue_v3pop): Likewise.
9035         * config/nds32/nds32.md (sibcall): Define this for sibling call
9036         optimization.
9037         (sibcall_register): Likewise.
9038         (sibcall_immediate): Likewise.
9039         (sibcall_value): Likewise.
9040         (sibcall_value_register): Likewise.
9041         (sibcall_value_immediate): Likewise.
9042         (sibcall_epilogue): Likewise.
9043         (epilogue): Pass false to indicate this is not a sibcall epilogue.
9044         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
9045         (nds32_expand_epilogue_v3pop): Likewise.
9046
9047 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9048
9049         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
9050         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
9051         (return_internal): New.
9052         (return): Define this named pattern.
9053         (simple_return): Define this named pattern.
9054         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
9055         pattern instead of unspec_volatile_func_return.
9056         (nds32_expand_epilogue_v3pop): Likewise.
9057         (nds32_can_use_return_insn): New function.
9058
9059 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9060
9061         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
9062         * config/nds32/nds32.md (pop25return): New.
9063         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
9064         pop25return pattern.
9065
9066 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9067
9068         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
9069         -mforbid-fp-as-gp, and -mex9 options.
9070
9071 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
9072
9073         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
9074         remove -mgp-direct option.
9075
9076 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9077
9078         * doc/invoke.texi (--param early-inlining-insns): Update default value.
9079         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
9080
9081 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9082
9083         * ipa-inline.c (inline_small_functions): Work around hints
9084         cache issue.
9085
9086 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
9087
9088         PR target/59710
9089         * doc/invoke.texi (Option Summary): Document new Nios II
9090         -mgpopt= syntax.
9091         (Nios II Options): Likewise.
9092         * config/nios2/nios2.opt: Add -mgpopt= option support.
9093         Modify existing -mgpopt and -mno-gpopt options to be aliases.
9094         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
9095         * config/nios2/nios2.c (nios2_option_override): Adjust
9096         -mgpopt defaulting.
9097         (nios2_in_small_data_p): Return true for explicit small data
9098         sections even with -G0.
9099         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
9100         option choices.
9101
9102 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9103
9104         PR ipa/64612
9105         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
9106         of comdat locals.
9107         (inline_call): Fix removal of aliases.
9108
9109 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
9110
9111         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
9112         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
9113         * opts.c (common_handle_option): Add -fsanitize=vptr.
9114         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
9115         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
9116         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
9117         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
9118         (ubsan_expand_vptr_ifn): New prototype.
9119         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
9120         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
9121         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
9122         expand_LOOP_VECTORIZED): Make argument nameless, remove
9123         ATTRIBUTE_UNUSED.
9124         (expand_UBSAN_VPTR): New function.
9125         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
9126         in fn spec.
9127         (UBSAN_VPTR): New internal function.
9128         * sanopt.c (tree_map_traits): Renamed to ...
9129         (sanopt_tree_map_traits): ... this.
9130         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
9131         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
9132         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
9133         (maybe_optimize_ubsan_vptr_ifn): New function.
9134         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
9135         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
9136         -fsanitize=vptr.
9137         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
9138         internal calls like pure functions for aliasing, even when they
9139         have other side-effects that prevent making them ECF_PURE.
9140         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
9141         (ubsan_expand_vptr_ifn): New function.
9142
9143 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
9144
9145         PR rtl-optimization/64110
9146         * stmt.c (parse_output_constraint): Process '^' and '$'.
9147         (parse_input_constraint): Ditto.
9148         * lra-constraints.c (process_alt_operands): Process the new
9149         constraints.
9150         * ira-costs.c (record_reg_classes): Process the new constraint
9151         '^'.
9152         * genoutput.c (indep_constraints): Add '^' and '$'.
9153         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
9154         * doc/md.texi: Add description of the new constraints.
9155
9156 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
9157             Bernd Schmidt  <bernds@codesourcery.com>
9158             Cesar Philippidis  <cesar@codesourcery.com>
9159             James Norris  <jnorris@codesourcery.com>
9160             Tom de Vries  <tom@codesourcery.com>
9161             Ilmir Usmanov  <i.usmanov@samsung.com>
9162             Dmitry Bocharnikov  <dmitry.b@samsung.com>
9163             Evgeny Gavrin  <e.gavrin@samsung.com>
9164             Jakub Jelinek  <jakub@redhat.com>
9165
9166         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
9167         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
9168         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
9169         New function types.
9170         * builtins.c: Include "gomp-constants.h".
9171         (expand_builtin_acc_on_device): New function.
9172         (expand_builtin, is_inexpensive_builtin): Handle
9173         BUILT_IN_ACC_ON_DEVICE.
9174         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
9175         New macros.
9176         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
9177         flag_openmp.
9178         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
9179         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
9180         i386/intelmic-offload.h.
9181         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
9182         to libgomp and its dependencies.
9183         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
9184         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9185         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9186         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9187         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9188         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9189         * doc/generic.texi: Update for OpenACC changes.
9190         * doc/gimple.texi: Likewise.
9191         * doc/invoke.texi: Likewise.
9192         * doc/sourcebuild.texi: Likewise.
9193         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
9194         GF_OMP_FOR_KIND_OACC_LOOP.
9195         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
9196         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
9197         GF_OMP_TARGET_KIND_OACC_UPDATE,
9198         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
9199         Dump more data.
9200         * gimple.c: Update comments for OpenACC changes.
9201         * gimple.def: Likewise.
9202         * gimple.h: Likewise.
9203         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
9204         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
9205         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
9206         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
9207         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
9208         appropriate place.
9209         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
9210         * gimplify.c: Include "gomp-constants.h".
9211         Update comments for OpenACC changes.
9212         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
9213         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
9214         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
9215         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
9216         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
9217         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
9218         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
9219         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
9220         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
9221         OMP_CLAUSE_SEQ.
9222         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
9223         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
9224         OMP_CLAUSE_SET_MAP_KIND.
9225         (gimplify_oacc_cache): New function.
9226         (gimplify_omp_for): Handle OACC_LOOP.
9227         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
9228         OACC_DATA.
9229         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
9230         OACC_EXIT_DATA, OACC_UPDATE.
9231         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
9232         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
9233         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
9234         (gimplify_body): Consider flag_openacc next to flag_openmp.
9235         * lto-streamer-out.c: Include "gomp-constants.h".
9236         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
9237         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
9238         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
9239         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
9240         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
9241         (BUILT_IN_ACC_ON_DEVICE): New builtins.
9242         * omp-low.c: Include "gomp-constants.h".
9243         Update comments for OpenACC changes.
9244         (struct omp_context): Add reduction_map, gwv_below, gwv_this
9245         members.
9246         (extract_omp_for_data, use_pointer_for_field, install_var_field)
9247         (new_omp_context, delete_omp_context, scan_sharing_clauses)
9248         (create_omp_child_function, scan_omp_for, scan_omp_target)
9249         (check_omp_nesting_restrictions, lower_reduction_clauses)
9250         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
9251         Update for OpenACC changes.
9252         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
9253         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
9254         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
9255         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
9256         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
9257         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
9258         OMP_CLAUSE_MAP_*.
9259         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
9260         Handle GF_OMP_FOR_KIND_OACC_LOOP.
9261         (expand_omp_target, lower_omp_target): Handle
9262         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
9263         GF_OMP_TARGET_KIND_OACC_UPDATE,
9264         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
9265         GF_OMP_TARGET_KIND_OACC_DATA.
9266         (pass_expand_omp::execute, execute_lower_omp)
9267         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
9268         flag_openmp.
9269         (offload_symbol_decl): New variable.
9270         (oacc_get_reduction_array_id, oacc_max_threads)
9271         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
9272         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
9273         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
9274         (oacc_gimple_assign, oacc_initialize_reduction_data)
9275         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
9276         functions.
9277         (is_targetreg_ctx): Remove function.
9278         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
9279         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
9280         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
9281         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
9282         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
9283         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
9284         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
9285         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
9286         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
9287         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
9288         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
9289         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
9290         * tree-core.h: Update comments for OpenACC changes.
9291         (enum omp_clause_map_kind): Remove.
9292         (struct tree_omp_clause): Change type of map_kind member from enum
9293         omp_clause_map_kind to unsigned char.
9294         * tree-inline.c: Update comments for OpenACC changes.
9295         * tree-nested.c: Likewise.  Include "gomp-constants.h".
9296         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
9297         (convert_tramp_reference_stmt, convert_gimple_call): Update for
9298         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
9299         OMP_CLAUSE_SET_MAP_KIND.
9300         * tree-pretty-print.c: Include "gomp-constants.h".
9301         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
9302         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
9303         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
9304         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
9305         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
9306         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
9307         instead of OMP_CLAUSE_MAP_*.
9308         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
9309         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
9310         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
9311         * tree-streamer-in.c: Include "gomp-constants.h".
9312         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
9313         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
9314         * tree-streamer-out.c: Include "gomp-constants.h".
9315         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
9316         OMP_CLAUSE_MAP_*.
9317         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
9318         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
9319         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
9320         * tree.c (omp_clause_num_ops): Update accordingly.
9321         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
9322         Likewise.
9323         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
9324         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
9325         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
9326         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
9327         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
9328         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
9329         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
9330         (OMP_CLAUSE_SET_MAP_KIND): New macro.
9331         * varpool.c (varpool_node::get_create): Consider flag_openacc next
9332         to flag_openmp.
9333         * config/i386/intelmic-offload.h: New file.
9334         * config/nvptx/offload.h: Likewise.
9335
9336 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9337
9338         * explow.h: Remove duplicate contents.
9339         * dojump.h: Likewise.
9340
9341 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
9342
9343         * arm.c (arm_xgene_tune): Add default initializer for instruction
9344         fusion.
9345
9346 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
9347
9348         PR ipa/64068
9349         PR ipa/64559
9350         * ipa.c (symbol_table::remove_unreachable_nodes):
9351         Do not put abstract origins into boundary.
9352
9353 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
9354
9355         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
9356         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
9357
9358 2015-01-15  Steve Ellcey  <sellcey@mips.com>
9359
9360         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
9361         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
9362         builtins.def, and chkp-builtins.def.
9363
9364 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
9365
9366         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
9367         ISA 2.7 (POWER8).
9368
9369 2015-01-15  Richard Biener  <rguenther@suse.de>
9370
9371         PR tree-optimization/61743
9372         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
9373         information on PHIs for some simple cases.
9374
9375 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9376
9377         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
9378         Include xgene1.md.
9379         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
9380         * config/arm/arm-cores.def (xgene1): New entry.
9381         * config/arm/arm-tables.opt: Regenerate.
9382         * config/arm/arm-tune.md: Regenerate.
9383         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
9384
9385 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
9386
9387         * tree-if-conv.c: Include hash-map.h.
9388         (aggressive_if_conv): New variable.
9389         (fold_build_cond_expr): Add simplification of non-zero condition.
9390         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
9391         destination block is not always executed.
9392         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
9393         than two predecessors if AGGRESSIVE_IF_CONV is true.
9394         (if_convertible_stmt_p): Fix commentary.
9395         (all_preds_critical_p): New function.
9396         (has_pred_critical_p): New function.
9397         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
9398         BB can have more than two predecessors and all incoming edges can be
9399         critical.
9400         (predicate_bbs): Skip predication for loop exit block, use build2_loc
9401         to compute predicate for true edge.
9402         (find_phi_replacement_condition): Delete this function.
9403         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
9404         Allow interchange PHI arguments if EXTENDED is false.
9405         Change check that block containing reduction statement candidate
9406         is predecessor of phi-block since phi may have more than two arguments.
9407         (phi_args_hash_traits): New helper structure.
9408         (struct phi_args_hash_traits): New type.
9409         (phi_args_hash_traits::hash): New function.
9410         (phi_args_hash_traits::equal_keys): New function.
9411         (gen_phi_arg_condition): New function.
9412         (predicate_scalar_phi): Add handling of phi nodes with more than two
9413         arguments, delete COND and TRUE_BB arguments, insert body of
9414         find_phi_replacement_condition to predicate ordinary phi nodes.
9415         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
9416         delete call of find_phi_replacement_condition and invoke
9417         predicate_scalar_phi with two arguments.
9418         (insert_gimplified_predicates): Add assert that non-predicated block
9419         don't have statements to insert.
9420         (ifcvt_split_critical_edges): New function.
9421         (ifcvt_split_def_stmt): Likewise.
9422         (ifcvt_walk_pattern_tree): Likewise.
9423         (stmt_is_root_of_bool_pattern): Likewise.
9424         (ifcvt_repair_bool_pattern): Likewise.
9425         (ifcvt_local_dce): Likewise.
9426         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
9427         is copy of inner or outer loop force_vectorize field, invoke
9428         ifcvt_split_critical_edges, ifcvt_local_dce and
9429         ifcvt_repair_bool_pattern for aggressive if-conversion.
9430
9431 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
9432
9433         * config/aarch64/aarch64.md: Include xgene1.md.
9434         * config/aarch64/xgene1.md: New file.
9435
9436 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9437
9438         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
9439         xgene1 (APM XGene-1) core definition.
9440         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
9441         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
9442         * doc/invoke.texi: Document -mcpu=xgene1.
9443
9444 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9445
9446         * dojump.h: New header file.
9447         * explow.h: Likewise.
9448         * expr.h: Remove includes.
9449         Move expmed.c prototypes to expmed.h.
9450         Move dojump.c prototypes to dojump.h.
9451         Move alias.c prototypes to alias.h.
9452         Move explow.c prototypes to explow.h.
9453         Move calls.c prototypes to calls.h.
9454         Move emit-rtl.c prototypes to emit-rtl.h.
9455         Move varasm.c prototypes to varasm.h.
9456         Move stmt.c prototypes to stmt.h.
9457         (saved_pending_stack_adjust): Move to dojump.h.
9458         (adjust_address): Move to explow.h.
9459         (adjust_address_nv): Move to emit-rtl.h.
9460         (adjust_bitfield_address): Likewise.
9461         (adjust_bitfield_address_size): Likewise.
9462         (adjust_bitfield_address_nv): Likewise.
9463         (adjust_automodify_address_nv): Likewise.
9464         * explow.c (expr_size): Move to expr.c.
9465         (int_expr_size): Likewise.
9466         (tree_expr_size): Likewise.
9467         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9468         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
9469         * genemit.c (main): Generate includes statistics.h, real.h,
9470         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
9471         stmt.h.
9472         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
9473         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
9474         explow.h, emit-rtl.h, stmt.h.
9475         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
9476         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
9477         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
9478         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
9479         emit-rtl.h, varasm.h, stmt.h.
9480         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
9481         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
9482         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
9483         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
9484         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
9485         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
9486         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
9487         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
9488         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
9489         tm.h tree.h varasm.h vec.h wide-int.h.
9490         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9491         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
9492         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
9493         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
9494         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
9495         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
9496         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
9497         * loop-iv.c: Likewise.
9498         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
9499         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
9500         statistics.h stmt.h tree.h varasm.h wide-int.h.
9501         * lra-constraints.c: Likewise.
9502         * lra-eliminations.c: Likewise.
9503         * lra-lives.c: Likewise.
9504         * lra-remat.c: Likewise.
9505         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9506         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
9507         statistics.h stmt.h tree.h varasm.h wide-int.h.
9508         * hw-doloop.c: Likewise.
9509         * ira-color.c: Likewise.
9510         * ira-emit.c: Likewise.
9511         * loop-doloop.c: Likewise.
9512         * loop-invariant.c: Likewise.
9513         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9514         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
9515         statistics.h stmt.h tree.h varasm.h wide-int.h.
9516         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
9517         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
9518         statistics.h stmt.h tree.h varasm.h wide-int.h.
9519         * combine-stack-adj.c: Likewise.
9520         * cse.c: Likewise.
9521         * ddg.c: Likewise.
9522         * ifcvt.c: Likewise.
9523         * ira-costs.c: Likewise.
9524         * jump.c: Likewise.
9525         * lra-coalesce.c: Likewise.
9526         * lra-spills.c: Likewise.
9527         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9528         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
9529         stmt.h varasm.h wide-int.h.
9530         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
9531         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
9532         varasm.h.
9533         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
9534         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
9535         statistics.h stmt.h varasm.h wide-int.h.
9536         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
9537         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
9538         varasm.h wide-int.h.
9539         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
9540         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9541         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
9542         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
9543         statistics.h stmt.h.
9544         * config/tilepro/tilepro.c: Likewise.
9545         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
9546         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
9547         * config/pdp11/pdp11.c: Likewise.
9548         * config/xtensa/xtensa.c: Likewise.
9549         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
9550         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
9551         varasm.h.
9552         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9553         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
9554         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
9555         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9556         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
9557         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
9558         * rtl-chkp.c: Likewise.
9559         * tree-chkp-opt.c: Likewise.
9560         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
9561         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
9562         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
9563         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9564         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
9565         statistics.h stmt.h.
9566         * tree-vect-data-refs.c: Likewise.
9567         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
9568         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9569         rtl.h statistics.h stmt.h varasm.h.
9570         * internal-fn.c: Likewise.
9571         * ipa-icf-gimple.c: Likewise.
9572         * lto-section-out.c: Likewise.
9573         * tree-data-ref.c: Likewise.
9574         * tree-nested.c: Likewise.
9575         * tree-outof-ssa.c: Likewise.
9576         * tree-predcom.c: Likewise.
9577         * tree-pretty-print.c: Likewise.
9578         * tree-scalar-evolution.c: Likewise.
9579         * tree-ssa-strlen.c: Likewise.
9580         * tree-vect-loop.c: Likewise.
9581         * tree-vect-patterns.c: Likewise.
9582         * tree-vect-slp.c: Likewise.
9583         * tree-vect-stmts.c: Likewise.
9584         * tsan.c: Likewise.
9585         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9586         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
9587         stmt.h.
9588         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
9589         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9590         statistics.h stmt.h varasm.h.
9591         * loop-unroll.c: Likewise.
9592         * ubsan.c: Likewise.
9593         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
9594         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
9595         stmt.h varasm.h.
9596         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9597         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
9598         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
9599         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9600         statistics.h stmt.h.
9601         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
9602         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9603         statistics.h stmt.h varasm.h.
9604         * gimple-match-head.c: Likewise.
9605         * lto-cgraph.c: Likewise.
9606         * lto-section-in.c: Likewise.
9607         * lto-streamer-in.c: Likewise.
9608         * lto-streamer-out.c: Likewise.
9609         * tree-affine.c: Likewise.
9610         * tree-cfg.c: Likewise.
9611         * tree-cfgcleanup.c: Likewise.
9612         * tree-if-conv.c: Likewise.
9613         * tree-into-ssa.c: Likewise.
9614         * tree-ssa-alias.c: Likewise.
9615         * tree-ssa-copyrename.c: Likewise.
9616         * tree-ssa-dse.c: Likewise.
9617         * tree-ssa-forwprop.c: Likewise.
9618         * tree-ssa-live.c: Likewise.
9619         * tree-ssa-math-opts.c: Likewise.
9620         * tree-ssa-pre.c: Likewise.
9621         * tree-ssa-sccvn.c: Likewise.
9622         * tree-tailcall.c: Likewise.
9623         * tree-vect-generic.c: Likewise.
9624         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9625         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
9626         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9627         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
9628         * varasm.c: Likewise.
9629         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9630         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
9631         varasm.h.
9632         * init-regs.c: Likewise.
9633         * ira.c: Likewise.
9634         * omp-low.c: Likewise.
9635         * stack-ptr-mod.c: Likewise.
9636         * tree-ssa-reassoc.c: Likewise.
9637         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9638         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
9639         varasm.h.
9640         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9641         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
9642         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9643         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
9644         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9645         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
9646         * tree-ssa-phiopt.c: Likewise.
9647         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9648         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9649         * config/fr30/fr30.c: Likewise.
9650         * config/frv/frv.c: Likewise.
9651         * expr.c: Likewise.
9652         * final.c: Likewise.
9653         * optabs.c: Likewise.
9654         * passes.c: Likewise.
9655         * simplify-rtx.c: Likewise.
9656         * stmt.c: Likewise.
9657         * toplev.c: Likewise.
9658         * var-tracking.c: Likewise.
9659         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9660         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9661         * lower-subreg.c: Likewise.
9662         * postreload-gcse.c: Likewise.
9663         * ree.c: Likewise.
9664         * reginfo.c: Likewise.
9665         * store-motion.c: Likewise.
9666         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9667         fixed-value.h hashtab.h real.h stmt.h varasm.h.
9668         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9669         fixed-value.h hashtab.h statistics.h stmt.h.
9670         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9671         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
9672         * except.c: Likewise.
9673         * explow.c: Likewise.
9674         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9675         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
9676         varasm.h.
9677         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9678         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
9679         * tree-ssa-structalias.c: Likewise.
9680         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9681         fixed-value.h insn-config.h real.h statistics.h.
9682         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9683         fixed-value.h insn-config.h real.h statistics.h stmt.h.
9684         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9685         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9686         * cfgbuild.c: Likewise.
9687         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9688         fixed-value.h real.h rtl.h statistics.h stmt.h.
9689         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9690         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9691         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9692         fixed-value.h real.h statistics.h stmt.h.
9693         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9694         fixed-value.h real.h statistics.h stmt.h varasm.h.
9695         * cprop.c: Likewise.
9696         * modulo-sched.c: Likewise.
9697         * postreload.c: Likewise.
9698         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9699         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
9700         statistics.h stmt.h varasm.h.
9701         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
9702         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9703         rtl.h statistics.h stmt.h varasm.h.
9704         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
9705         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
9706         varasm.h.
9707         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9708         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
9709         varasm.h.
9710         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
9711         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
9712         varasm.h.
9713         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
9714         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9715         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9716         function.h real.h statistics.h stmt.h varasm.h.
9717         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9718         insn-config.h real.h statistics.h stmt.h.
9719         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9720         statistics.h stmt.h.
9721         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
9722         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
9723         statistics.h stmt.h varasm.h.
9724         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
9725         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
9726         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9727         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
9728         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
9729         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
9730         statistics.h stmt.h varasm.h.
9731         * ipa-polymorphic-call.c: Likewise.
9732         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
9733         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9734         statistics.h stmt.h.
9735         * config/c6x/c6x.c: Likewise.
9736         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
9737         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9738         statistics.h stmt.h varasm.h.
9739         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
9740         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
9741         stmt.h varasm.h.
9742         * ipa-split.c: Likewise.
9743         * tree-eh.c: Likewise.
9744         * tree-ssa-dce.c: Likewise.
9745         * tree-ssa-loop-niter.c: Likewise.
9746         * tree-vrp.c: Likewise.
9747         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
9748         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
9749         stmt.h.
9750         * config/nds32/nds32-fp-as-gp.c: Likewise.
9751         * config/nds32/nds32-intrinsic.c: Likewise.
9752         * config/nds32/nds32-isr.c: Likewise.
9753         * config/nds32/nds32-md-auxiliary.c: Likewise.
9754         * config/nds32/nds32-memory-manipulation.c: Likewise.
9755         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
9756         * config/nds32/nds32-predicates.c: Likewise.
9757         * config/nds32/nds32.c: Likewise.
9758         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
9759         fixed-value.h hashtab.h real.h statistics.h.
9760         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
9761         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9762         * config/arm/arm.c: Likewise.
9763         * config/avr/avr.c: Likewise.
9764         * config/bfin/bfin.c: Likewise.
9765         * config/h8300/h8300.c: Likewise.
9766         * config/i386/i386.c: Likewise.
9767         * config/ia64/ia64.c: Likewise.
9768         * config/iq2000/iq2000.c: Likewise.
9769         * config/m32c/m32c.c: Likewise.
9770         * config/m32r/m32r.c: Likewise.
9771         * config/m68k/m68k.c: Likewise.
9772         * config/mcore/mcore.c: Likewise.
9773         * config/mep/mep.c: Likewise.
9774         * config/mips/mips.c: Likewise.
9775         * config/mn10300/mn10300.c: Likewise.
9776         * config/moxie/moxie.c: Likewise.
9777         * config/pa/pa.c: Likewise.
9778         * config/rl78/rl78.c: Likewise.
9779         * config/rx/rx.c: Likewise.
9780         * config/s390/s390.c: Likewise.
9781         * config/sh/sh.c: Likewise.
9782         * config/sparc/sparc.c: Likewise.
9783         * config/spu/spu.c: Likewise.
9784         * config/stormy16/stormy16.c: Likewise.
9785         * config/v850/v850.c: Likewise.
9786         * config/vax/vax.c: Likewise.
9787         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
9788         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9789         * config/msp430/msp430.c: Likewise.
9790         * predict.c: Likewise.
9791         * value-prof.c: Likewise.
9792         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
9793         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
9794         * config/microblaze/microblaze.c: Likewise.
9795         * config/nios2/nios2.c: Likewise.
9796         * config/rs6000/rs6000.c: Likewise.
9797         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9798         insn-config.h real.h rtl.h statistics.h stmt.h.
9799         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9800         insn-config.h real.h statistics.h stmt.h.
9801         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
9802         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9803         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
9804         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9805         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
9806         fixed-value.h real.h statistics.h stmt.h.
9807         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
9808         fixed-value.h statistics.h stmt.h.
9809         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
9810         stmt.h.
9811
9812 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
9813
9814         * gengtype.c (create_user_defined_type): Workaround
9815         -Wmaybe-uninitialized false positives.
9816         * cse.c (fold_rtx): Likewise.
9817         * loop-invariant.c (gain_for_invariant): Likewise.
9818
9819 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9820
9821         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
9822         set the memory attributes in all cases but clear MEM_EXPR if need be.
9823
9824 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
9825
9826         PR tree-optimization/64434
9827         * cfgexpand.c (reorder_operands): New function.
9828         (expand_gimple_basic_block): Insert call of reorder_operands if
9829         optimized is true.
9830
9831 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
9832
9833         * config/mips/micromips.md (*swp): Remove explicit parallel.
9834         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
9835         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
9836         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
9837         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
9838         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
9839         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
9840         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
9841         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
9842         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
9843         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
9844         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
9845         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
9846         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
9847         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
9848         (mips_wrdsp): Likewise.
9849         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
9850         parallel.
9851         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
9852         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
9853         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
9854         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
9855         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
9856         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
9857         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
9858         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
9859         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
9860
9861 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9862
9863         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
9864         (mips_print_operand): Support 'y' to print exact log2 in decimal
9865         of a const_int.
9866         * config/mips/mips.h (ISA_HAS_LSA): New define.
9867         (ISA_HAS_DLSA): Likewise.
9868         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
9869         * config/mips/predicates.md (const_immlsa_operand): New predicate.
9870
9871 2015-01-15  Martin Liska  <mliska@suse.cz>
9872
9873         PR target/64377
9874         * optc-save-gen.awk: Add support for array types.
9875
9876 2015-01-15  Richard Biener  <rguenther@suse.de>
9877
9878         PR middle-end/64365
9879         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
9880         for MEM_REF access functions with the same base can never partially
9881         overlap.
9882
9883 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
9884
9885         * common.opt: New option -fstack-protector-explicit.
9886         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
9887         (stack_protect_decl_phase): Handle stack_protect attribute for
9888         explicit stack protection requests.
9889         (expand_used_vars): Similarly.
9890         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
9891         * doc/extend.texi: Add documentation for "stack_protect" attribute.
9892         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
9893
9894 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
9895
9896         PR target/53988
9897         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
9898         reg-reg copies.
9899         (sh_extending_set_of_reg): New struct.
9900         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
9901         sh_remove_reg_dead_or_unused_notes): New Declarations.
9902         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
9903         sh_find_extending_set_of_reg, sh_split_tst_subregs,
9904         sh_extending_set_of_reg::use_as_extended_reg): New functions.
9905         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
9906         convert to insn_and_split and use new function sh_split_tst_subregs.
9907
9908 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
9909
9910         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
9911         option.
9912         (Optimization Options): Move -fuse-ld documentation to...
9913         (Link Options): ...here.
9914
9915 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9916
9917         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
9918         offsets.
9919         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
9920         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
9921         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
9922         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
9923         instead of ZR for the memory operand of LL/SC.
9924         (compare_and_swap_12, sync_add<mode>): Likewise.
9925         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
9926         (sync_new_<optab>_12, sync_nand_12): Likewise.
9927         (sync_old_nand_12, sync_new_nand_12): Likewise.
9928         (sync_sub<mode>, sync_old_add<mode>): Likewise.
9929         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
9930         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
9931         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
9932         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
9933         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
9934         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
9935         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
9936         * doc/md.texi (ZC): Update description.
9937
9938 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9939
9940         * builtins.c (expand_builtin_atomic_exchange): Remove error when
9941         memory model is CONSUME.
9942         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
9943         expand_builtin_atomic_store): Change invalid memory model errors to
9944         warnings.
9945         (expand_builtin_atomic_clear): Change invalid model errors to warnings
9946         and issue warning for CONSUME.
9947
9948 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
9949
9950         * lto-cgraph: Update function comments for
9951         lto_symtab_encoder_encode_*.
9952
9953 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9954
9955         * Makefile.in (site.exp): Do not set ENABLE_LTO.
9956
9957 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9958
9959         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
9960         * lto-cgraph.c (select_what_to_stream): Remove argument, use
9961         lto_stream_offload_p instead.
9962         * lto-streamer.h (select_what_to_stream): Remove argument.
9963         * passes.c (ipa_write_summaries): Likewise.
9964         * tree-pass.h (ipa_write_summaries): Likewise.
9965
9966 2015-01-14  Richard Biener  <rguenther@suse.de>
9967
9968         PR tree-optimization/59354
9969         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
9970         groups larger than the slp group size as having gaps.
9971
9972 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9973
9974         PR middle-end/59448
9975         * builtins.c (get_memmodel): Promote consume to acquire always.
9976
9977 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9978
9979         PR target/64386
9980         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
9981         V32HImode.
9982
9983 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9984
9985         PR target/64393
9986         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
9987         Enable AVX512BW.
9988         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
9989         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
9990         AVX512VBMI, as it implies AVX512BW.
9991
9992 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9993
9994         PR target/64387
9995         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
9996         (vec_unpacks_hi_v16sf): Ditto.
9997
9998 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9999
10000         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
10001         is not available.
10002
10003 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10004
10005         * doc/invoke.texi (mapcs): Mention deprecation.
10006         (mapcs-frame): Likewise.
10007
10008 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10009
10010         PR target/64453
10011         * config/arm/arm.c (callee_saved_reg_p): Define.
10012         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
10013         register is callee saved instead of !call_used_regs[reg].
10014         (thumb1_compute_save_reg_mask): Likewise.
10015
10016 2015-01-14  Hale Wang  <hale.wang@arm.com>
10017
10018         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
10019         Cortex-M7.
10020
10021 2015-01-14  Richard Biener  <rguenther@suse.de>
10022
10023         PR lto/64415
10024         * tree-inline.c (insert_debug_decl_map): Check destination
10025         function MAY_HAVE_DEBUG_STMTS.
10026         (insert_init_debug_bind): Likewise.
10027         (insert_init_stmt): Remove redundant check.
10028         (remap_gimple_stmt): Drop debug stmts if the destination
10029         function has var-tracking assignments disabled.
10030
10031 2015-01-14  Martin Liska  <mliska@suse.cz>
10032
10033         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
10034         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
10035
10036 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10037
10038         PR target/64460
10039         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
10040         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
10041
10042 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
10043
10044         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
10045         level from an ARCH; do not inject the default.
10046         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
10047         MIPS_ISA_LEVEL_SPEC.
10048         (MIPS_ISA_NAN2008_SPEC): Update comment.
10049         (BASE_DRIVER_SELF_SPECS): Likewise.
10050         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
10051         MIPS_DEFAULT_ISA_LEVEL_SPEC.
10052         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
10053         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
10054         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
10055
10056 2015-01-14  Richard Biener  <rguenther@suse.de>
10057
10058         PR tree-optimization/64493
10059         PR tree-optimization/64495
10060         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
10061         assign the proper vectorized PHI to the inner loop exit PHIs.
10062
10063 2015-01-14  Joey Ye  <joey.ye@arm.com>
10064
10065         * config/arm/arm.c (arm_compute_save_reg_mask):
10066         Do not save lr in case of tail call.
10067         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
10068
10069 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
10070
10071         * tree-vrp.c (check_array_ref): Emit more warnings
10072         for warn_array_bounds >= 2.
10073         * common.opt: New option -Warray-bounds=.
10074         * doc/invoke.texi: Document -Warray-bounds=.
10075
10076 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
10077
10078         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
10079         (mforbid-fp-as-gp): Remove.
10080         (mex9): Remove.
10081         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
10082         (nds32_symbol_load_store_p): Remove.
10083         (nds32_fp_as_gp_check_available): Clean up implementation.
10084         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
10085         cases.
10086         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
10087         fp-as-gp and ex9 cases.
10088
10089 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10090
10091         * tree-profile.c (init_ic_make_global_vars): Drop workaround
10092         for bintuils bug 14342.
10093         (init_ic_make_global_vars): Likewise.
10094         (gimple_init_edge_profiler): Likewise.
10095         (gimple_gen_ic_func_profiler): Likewise.
10096
10097 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10098
10099         * ipa-inline.c (inline_small_functions): Swap the operands in
10100         enum.
10101
10102 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10103
10104         PR ipa/64481
10105         * ipa-inline-analysis.c (node_growth_cache): Remove.
10106         (initialize_growth_caches): Do not initialize it.
10107         (free_growth_caches): Do not free it.
10108         (do_estimate_growth): Rename to ...
10109         (estimate_growth): ... this one; drop growth cache code.
10110         (growth_likely_positive): Always go the heuristics way.
10111         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
10112         (reset_edge_caches): Do not reset node growth.
10113         (heap_edge_removal_hook): Do not maintain cache.
10114         (inline_small_functions): Likewise; strenghten sanity check.
10115         (ipa_inline): Do not maintain caches.
10116         * ipa-inline.h (node_growth_cache): Remove.
10117         (do_estimate_growth): Remove to ...
10118         (estimate_growth): this one; remove inline version.
10119         (reset_node_growth_cache): Remove.
10120
10121 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
10122
10123         PR ipa/64565
10124         * ipa-inline.c (inline_small_functions): Update callee keys after
10125         resolving speculation
10126         (inline_small_functions): Always check monotonicity of the queue.
10127
10128 2015-01-13  Marek Polacek  <polacek@redhat.com>
10129
10130         PR middle-end/64391
10131         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
10132
10133 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
10134
10135         PR rtl-optimization/64286
10136         * ree.c (combine_reaching_defs): Move part of comment earlier,
10137         remove !SCALAR_INT_MODE_P check.
10138         (add_removable_extension): Don't add vector mode
10139         extensions if all uses of the source register aren't the same
10140         vector extensions.
10141
10142 2015-01-13  Renlin Li  <renlin.li@arm.com>
10143
10144         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
10145         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
10146
10147 2015-01-13  Martin Liska  <mliska@suse.cz>
10148
10149         * ipa-icf.c (sem_function::equals_private): Call new functions
10150         cl_target_option_print_diff and cl_optimization_print_diff.
10151         * optc-save-gen.awk (cl_target_option_print_diff): New function.
10152         (cl_optimization_print_diff): Likewise.
10153         * opth-gen.awk: Likewise.
10154
10155 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
10156
10157         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
10158         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
10159         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
10160         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
10161         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
10162         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
10163
10164 2015-01-13  Andrew Pinski  <apinski@cavium.com>
10165
10166         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
10167         instead of src mode.
10168
10169 2015-01-13  Richard Biener  <rguenther@suse.de>
10170
10171         PR lto/64373
10172         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
10173         DECL_CONTEXT.
10174
10175 2015-01-13  Andrew Pinski  <apinski@cavium.com>
10176
10177         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
10178         volatile mems.
10179         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
10180
10181 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
10182
10183         PR middle-end/63974
10184         * cfgexpand.c (expand_computed_goto): Don't call
10185         convert_memory_address here.
10186
10187 2015-01-13  Richard Biener  <rguenther@suse.de>
10188
10189         PR tree-optimization/64406
10190         * tree-loop-distibution.c (pass_loop_distribution::execute):
10191         Reset the SCEV hashtable if we distributed anything.
10192
10193 2015-01-13  Richard Biener  <rguenther@suse.de>
10194
10195         PR tree-optimization/64404
10196         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
10197         SLP types for CSEd loads.
10198
10199 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10200
10201         PR tree-optimization/64436
10202         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
10203         merge of two symbolic numbers for a bitwise OR to ...
10204         (perform_symbolic_merge): This. Also fix computation of the range and
10205         end of the symbolic number corresponding to the result of a bitwise OR.
10206
10207 2015-01-13  Richard Biener  <rguenther@suse.de>
10208
10209         PR tree-optimization/64568
10210         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
10211         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
10212
10213 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10214
10215         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
10216         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
10217
10218 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10219
10220         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
10221         target-specific symbol_ref flag.
10222         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
10223         resides in rodata section.
10224         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
10225         (nds32_encode_section_info): New function.
10226
10227 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10228
10229         * config/nds32/nds32.md (call): Use pseudo instruction bal which
10230         clobbers TA_REGNUM if large code model is specified.
10231         (call_register): Likewise.
10232         (call_immediate): Likewise.
10233         (call_value): Likewise.
10234         (call_value_register): Likewise.
10235         (call_value_immediate): Likewise.
10236
10237 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10238
10239         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
10240         (TARGET_CMODEL_MEDIUM): New macro.
10241         (TARGET_CMODEL_LARGE): New macro.
10242         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
10243         code model setting in assembly code.
10244
10245 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10246
10247         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
10248         Remove MASK_GP_DIRECT flag.
10249         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
10250         one of the multilib default options.
10251         * config/nds32/nds32.opt (mgp-direct): Remove.
10252         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
10253         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
10254
10255 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
10256
10257         * config/nds32/nds32.opt (mcmodel): Add new option.
10258         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
10259         to describe code model.
10260
10261 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
10262
10263         PR target/64479
10264         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
10265
10266 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
10267
10268         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
10269         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
10270         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
10271         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
10272         __builtin_sh_set_fpscr.
10273
10274 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
10275
10276         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
10277         after a funtion name just to indicate it is a function.
10278         ([-fsanitize-undefined-trap-on-error]): Likewise.
10279         ([-fdbg-cnt=]): Likewise.
10280         ([-mmemcpy]): Likewise.
10281         ([-mflush-func]): Likewise.
10282         ([-msynci]): Likewise.
10283
10284 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
10285
10286         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
10287         example.
10288
10289 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
10290
10291         PR tree-optimization/64563
10292         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
10293         instead of != VR_VARYING.
10294
10295         PR target/64513
10296         * config/i386/i386.c (ix86_expand_prologue): Add
10297         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
10298
10299         PR tree-optimization/64454
10300         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
10301         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
10302         for signed or [0, op1 - 1] for unsigned modulo.
10303         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
10304         even if op1 does not satisfy integer_pow2p.
10305
10306         PR other/64370
10307         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
10308
10309 2015-01-12  Jeff Law  <law@redhat.com>
10310
10311         PR target/64461
10312         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
10313         (trunchiqi2, truncsihi2): Similarly.
10314
10315         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
10316         rather than calling F.
10317
10318 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10319
10320         * tsan.c (instrument_expr): Use force_gimple_operand.
10321         Use may_be_nonaddressable_p instead of is_gimple_addressable.
10322
10323 2015-01-12  Richard Biener  <rguenther@suse.de>
10324
10325         PR tree-optimization/64530
10326         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
10327         back dr1.
10328
10329 2015-01-12  Richard Biener  <rguenther@suse.de>
10330
10331         PR middle-end/64357
10332         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
10333         latches properly.
10334
10335 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10336
10337         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
10338         Cortex-A17 tuning parameters.
10339         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
10340
10341 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10342
10343         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
10344         * config/arm/arm.c (arm_macro_fusion_p): New function.
10345         (arm_macro_fusion_pair_p): Likewise.
10346         (TARGET_SCHED_MACRO_FUSION_P): Define.
10347         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
10348         (ARM_FUSE_NOTHING): Likewise.
10349         (ARM_FUSE_MOVW_MOVT): Likewise.
10350         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
10351         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
10352         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
10353         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
10354         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
10355         arm_cortex_a5_tune): Specify fuseable_ops value.
10356
10357 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
10358
10359         PR bootstrap/64561
10360         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
10361         test for PIE with copy reloc.
10362         * configure: Regenerated.
10363
10364 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10365
10366         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
10367         in gen_rtx_REG.
10368         (arm_tls_descseq_addr): Likewise.
10369         (arm_gen_movmemqi): Likewise.
10370         (arm_expand_epilogue_apcs_frame): Likewise.
10371         (arm_expand_epilogue): Likewise.
10372         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
10373         in gen_rtx_REG.
10374
10375 2015-01-12  Martin Liska  <mliska@suse.cz>
10376
10377         PR ipa/64550
10378         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
10379         volatility for correct operands.
10380
10381 2015-01-12  Martin Liska  <mliska@suse.cz>
10382
10383         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
10384         that a function is not leaf.
10385         (sem_function::compare_polymorphic_p): Likewise.
10386
10387 2015-01-12  Martin Liska  <mliska@suse.cz>
10388
10389         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
10390         that a function is not leaf.
10391         (sem_function::compare_polymorphic_p): Likewise.
10392
10393 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10394
10395         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
10396         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
10397         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
10398         fold-const.h, tree-check.h.
10399
10400 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
10401
10402         PR ipa/63967
10403         PR ipa/64425
10404         * ipa-inline.c (compute_uninlined_call_time,
10405         compute_inlined_call_time): Use counts for extra precision when
10406         needed possible.
10407         (big_speedup_p): Fix formating.
10408         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
10409         (relative_time_benefit): Remove.
10410         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
10411         merge guessed and read profile paths.
10412         (inline_small_functions): Count only !optimize_size functions into
10413         initial size; be more lax about sanity check when profile is used;
10414         be sure to update inlined function profile when profile is read.
10415
10416 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
10417
10418         PR ipa/63470
10419         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
10420         cost when edge becomes direct.
10421         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
10422         is resolved or when introducing new speculation.
10423
10424 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
10425
10426         PR ipa/64551
10427         PR ipa/64552
10428         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
10429         '||' to fix typo issue.
10430
10431         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
10432         accept and return NULL.
10433
10434 2015-01-12  Martin Liska  <mliska@suse.cz>
10435
10436         * cgraph.c (cgraph_edge::remove_callee): Move function to header
10437         file for being inlined.
10438         (cgraph_set_edge_callee): Delete.
10439         (cgraph_edge::redirect_callee): Move function to header file
10440         for being inlined.
10441         (cgraph_edge::make_direct): Use new function.
10442         (cgraph_edge::dump_edge_flags): New function created from
10443         static dump_edge_flags function.
10444         (cgraph_node::dump): Use new function.
10445         (cgraph_edge::verify_count_and_frequency): New function created
10446         from verify_edge_count_and_frequency.
10447         (cgraph_edge::verify_corresponds_to_fndecl): New function created
10448         from verify_edge_corresponds_to_fndecl.
10449         (verify_edge_corresponds_to_fndecl): Delete.
10450         (cgraph_node::verify_node): Use new function.
10451         * cgraph.h (cgraph_edge::set_callee): New function.
10452         (cgraph_edge::dump_edge_flags): Likewise.
10453         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
10454
10455 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
10456
10457         * ipa-utils.c (estimate_function_body_sizes): Do not
10458         free node params when called late with early=true.
10459
10460 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
10461
10462         * doc/md.texi (Instruction Patterns): Rewrite text for
10463         clarity.
10464         (Example): Likewise.
10465
10466 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
10467
10468         * doc/invoke.texi (Option Summary): Break long lines.
10469         [(-fdiagnostics-color)]: Put long literal in @smallexample
10470         instead of inline.
10471         [(-fsanitize-recover)]: Likewise.
10472         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
10473         [(-ffast-math)]: Likewise.
10474         [(--param max-inline-insns-recursive)]: Likewise.
10475         [(--param max-inline-recursive-depth)]: Likewise.
10476         [(-mno-text-section-literals)]: Likewise.
10477
10478 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
10479
10480         * doc/install.texi: Update for libgomp being renamed from "GNU
10481         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
10482         Runtime Library".
10483         * doc/sourcebuild.texi: Likewise.
10484
10485 2015-01-10  Anthony Green  <green@moxielogic.com>
10486
10487         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
10488         mul.x availability for moxiebox configuration.
10489
10490 2015-01-09  Anthony Green  <green@moxielogic.com>
10491
10492         * config/moxie/moxie.md: Tabify assembly output.
10493
10494 2015-01-09  Anthony Green  <green@moxielogic.com>
10495
10496         * config/moxie/moxie.md (CC_REG): Correct register definition.
10497
10498 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
10499
10500         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
10501         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
10502         of log files.
10503
10504 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10505
10506         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
10507
10508 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
10509             Jakub Jelinek  <jakub@redhat.com>
10510
10511         PR middle-end/64412
10512         * lto-streamer.h (lto_stream_offload_p): New declaration.
10513         * lto-streamer.c (lto_stream_offload_p): New variable.
10514         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
10515         at the same time as section_name_prefix.
10516         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
10517         if lto_stream_offload_p.
10518         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
10519         stream TREE_TARGET_OPTION if lto_stream_offload_p.
10520         (write_ts_function_decl_tree_pointers): Don't
10521         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
10522         * tree-streamer-in.c (unpack_value_fields): Don't stream
10523         TREE_TARGET_OPTION in if ACCEL_COMPILER.
10524         (lto_input_ts_function_decl_tree_pointers): Don't stream
10525         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
10526         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
10527         instead of section_name_prefix string comparisons.
10528
10529 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
10530
10531         PR rtl-optimization/64536
10532         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
10533         tablejumps.
10534
10535 2015-01-09  Michael Collison  <michael.collison@linaro.org>
10536
10537         PR tree-optimization/64322
10538         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
10539         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
10540
10541 2015-01-09  Tom de Vries  <tom@codesourcery.com>
10542
10543         PR rtl-optimization/64539
10544         * regcprop.c (kill_clobbered_values): Factor out of ...
10545         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
10546         instead of note_stores with kill_clobbered_value.
10547
10548 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10549
10550          * ginclude/unwind-arm-common.h: Revert previous commit.
10551
10552 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
10553
10554         * config.gcc (arm*-*-freebsd*): New configuration.
10555         * config/arm/freebsd.h: New file.
10556         * config.host: Add extra components for arm*-*-freebsd*.
10557         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
10558         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
10559
10560 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10561
10562         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
10563         for -mcpu=e6500.
10564         * config/rs6000/t-rtems: Add e6500 multilibs.
10565
10566 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10567
10568         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
10569         MPC8540.
10570
10571 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10572
10573         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
10574         MULTILIB_EXCEPTIONS.
10575
10576 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10577
10578         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
10579         MULTILIB_EXCEPTIONS.
10580
10581 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10582
10583         * config/arm/t-rtems-eabi: Rename to...
10584         * config/arm/t-rtems: ...this.
10585         * config/arm/rtems-eabi.h: Rename to...
10586         * config/arm/rtems.h: ...this.
10587         * config.gcc (arm*-*-rtems*): Reflect changes above.
10588
10589 2015-01-09  Richard Biener  <rguenther@suse.de>
10590
10591         PR tree-optimization/64410
10592         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
10593         on the LHS.
10594         (execute_update_addresses_taken): Deal with that.
10595         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
10596         loads/stores for complex variables.
10597
10598 2015-01-09  Martin Liska  <mliska@suse.cz>
10599
10600         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
10601         name comparison.
10602         (func_checker::compare_memory_operand): New function.
10603         (func_checker::compare_operand): Split case to newly
10604         added functions.
10605         (func_checker::compare_cst_or_decl): New function.
10606         (func_checker::compare_gimple_call): Identify
10607         memory operands.
10608         (func_checker::compare_gimple_assign): Likewise.
10609         * ipa-icf-gimple.h: New function.
10610
10611 2015-01-09  Martin Liska  <mliska@suse.cz>
10612
10613         PR ipa/64503
10614         * sreal.c (sreal::dump): Change unsigned format to signed for
10615         m_exp value.
10616         (sreal::to_double): Replace exp2 with scalbln.
10617
10618 2015-01-09  Martin Liska  <mliska@suse.cz>
10619
10620         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
10621         * ipa-icf.c (sem_function::equals_private): Add support for target and
10622         (sem_item_optimizer::merge_classes): Remove redundant function
10623         optimization flags comparison.
10624         * tree.h (target_opts_for_fn): New function.
10625
10626 2015-01-09  Tom de Vries  <tom@codesourcery.com>
10627
10628         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
10629
10630 2015-01-09  Kito Cheng  <kito@0xlab.org>
10631
10632         PR rtl-optimization/64348
10633         * lra-constraints.c (split_reg): Fix caller-save store/restore
10634         instruction generation.
10635
10636 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
10637
10638         PR gcov-profile/61790
10639         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
10640         long long.  Fallback to int64_t if host doesn't have long long and
10641         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
10642
10643 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10644
10645         PR tree-optimization/63989
10646         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
10647         from 1000 to 10000.
10648         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
10649         (get_stridx): If we don't have a record for certain SSA_NAME,
10650         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
10651         constant offset, call get_stridx_plus_constant.
10652         (get_stridx_plus_constant): New function.
10653         (zero_length_string): Don't use get_stridx here.
10654
10655         PR target/55023
10656         PR middle-end/64388
10657         * dse.c (struct insn_info): Mention frame_read set also
10658         before reload for tail calls on some targets.
10659         (scan_insn): Revert 2014-12-22 change.  Set frame_read
10660         also before reload for tail calls if
10661         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
10662         instead of add_non_frame_wild_read for non-const/memset
10663         tail calls after reload.
10664
10665 2015-01-08  Jason Merrill  <jason@redhat.com>
10666
10667         * ubsan.c (do_ubsan_in_current_function): New.
10668         (pass_ubsan::gate): Use it.
10669         * ubsan.h: Declare it.
10670         * convert.c (convert_to_integer): Use it.
10671
10672 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10673
10674         PR target/64338
10675         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
10676         compare_code when it is unconditionally overwritten afterwards.
10677         Use ix86_reverse_condition instead of reverse_condition.  Don't
10678         change code if *reverse_condition* returned UNKNOWN and don't
10679         swap ct/cf and negate diff in that case.
10680
10681 2015-01-08  Mike Stump  <mikestump@comcast.net>
10682
10683         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
10684         (pass_tsan_O0::gate): Likewise.
10685         * extend.texi (Function Attributes): Add no_sanitize_thread
10686         documentation.
10687
10688 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
10689
10690         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
10691         for registering builtins.
10692         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
10693         add -fopenmp to the argv_obstack used when invoking
10694         compile_for_target.
10695
10696         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
10697         add "-m32" or "-m64" to argv_obstack.
10698         (generate_host_descr_file): Likewise, when invoking host_compiler.
10699         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
10700         ld.
10701
10702 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10703
10704         * config/sh/sh-mem.cc: Use constant as second operand when emitting
10705         tstsi_t insns.
10706
10707 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10708
10709         PR target/55212
10710         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
10711         constant load if constant operand fits into I08.
10712
10713 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10714
10715         PR sanitizer/64336
10716         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
10717         and TREE_THIS_VOLATILE for MEM_REFs.
10718         (build5_stat): Fix up initialization of TREE_READONLY and
10719         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
10720
10721 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10722
10723         PR target/64533
10724         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
10725         of r for the second alternative of the destination operand.
10726
10727 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
10728
10729         PR target/36557
10730         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
10731
10732 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10733
10734         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
10735         keywords.
10736         ([-fivar-visibility], [-fvisibility]): Likewise.
10737
10738 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10739
10740         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
10741         the file where @code, @command, etc is more appropriate.
10742
10743 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
10744
10745         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
10746         of -mrecip= documentation.
10747
10748 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10749
10750         PR target/64505
10751         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
10752         correct reload handler if -m32 -mpowerpc64 is used.
10753
10754 2015-01-06  Tom de Vries  <tom@codesourcery.com>
10755
10756         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
10757
10758 2015-01-08  Christian Bruel  <christian.bruel@st.com>
10759
10760         PR target/64507
10761         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
10762
10763 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10764
10765         PR tree-optimization/63259
10766         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
10767         if optab exists for 16bit byteswap.
10768
10769 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
10770
10771         * opts.c (common_handle_option): Add support for
10772         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
10773         * doc/invoke.texi: Document -fno-sanitize=all,
10774         -f{,no-}sanitize-recover=all.  Document that
10775         -fsanitize=float-cast-overflow is not enabled
10776         by -fsanitize=undefined.  Fix up documentation
10777         of -f{,no-}sanitize-recover.
10778
10779 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10780
10781         * config.gcc: Add Visium support.
10782         * configure.ac: Likewise.
10783         * configure: Regenerate.
10784         * doc/extend.texi (interrupt attribute): Add Visium.
10785         * doc/invoke.texi: Document Visium options.
10786         * doc/install.texi: Document Visium target.
10787         * doc/md.texi: Document Visium constraints.
10788         * common/config/visium: New directory.
10789         * config/visium: Likewise.
10790
10791 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10792
10793         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
10794         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
10795
10796 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10797
10798         * combine.c (combine_validate_cost): Do not count the cost of a
10799         split I2 twice.  Do not display it twice in the dump, either.
10800
10801 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10802
10803         Revert parts of r219199.
10804         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
10805         <inttypes.h>.
10806         ([-Wtraditional]): Restore markup on <limits.h>.
10807
10808 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
10809
10810         PR c++/31397
10811         * doc/invoke.texi: Document -Wsuggest-override.
10812
10813 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
10814
10815         PR rtl-optimization/64287
10816         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
10817         (process_options): Disable flag_ipa_ra if profiling.
10818
10819 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10820
10821         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
10822
10823 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
10824
10825         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
10826         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
10827         put under #if TARGET_LOOPS guard.
10828
10829 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
10830
10831         * config/i386/i386.c (output_387_binary_op): Use std::swap.
10832
10833 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
10834
10835         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
10836         * rtl.h (refers_to_regno_p): Add overload.
10837         * cse.c: Use it.
10838         * bt-load.c: Likewise.
10839         * combine.c: Likewise.
10840         * df-scan.c: Likewise.
10841         * sched-deps.c: Likewise.
10842         * config/s390/s390.c: Likewise.
10843         * config/m32r/m32r.c: Likewise.
10844         * config/rs6000/spe.md: Likewise.
10845         * config/rs6000/rs6000.c: Likewise.
10846         * config/pa/pa.c: Likewise.
10847         * config/stormy16/stormy16.c: Likewise.
10848         * config/cris/cris.c: Likewise.
10849         * config/arc/arc.md: Likewise.
10850         * config/arc/arc.c: Likewise.
10851         * config/sh/sh.md: Likewise.
10852         * config/sh/sh.c: Likewise.
10853         * config/frv/frv.c: Likewise.
10854
10855 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10856
10857         PR sanitizer/64265
10858         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
10859         call as cleanup of the whole body.
10860         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
10861         * tsan.c (replace_func_exit): New function.
10862         (instrument_func_exit): Moved earlier.
10863         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
10864         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
10865         been found.
10866         (tsan_pass): Don't call instrument_func_exit.
10867         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
10868         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
10869         inlining.
10870
10871         PR sanitizer/64344
10872         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
10873         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
10874         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
10875         if the result is integer_zerop, return NULL_TREE.
10876         * convert.c (convert_to_integer): Pass expr as ARG.
10877
10878         PR tree-optimization/64465
10879         * tree-inline.c (redirect_all_calls): During inlining
10880         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
10881         changed the stmt to a non-throwing call.
10882
10883 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10884
10885         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
10886         etc markup throughout the file.
10887
10888 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10889
10890         Enable experimental TSAN support for Ada.
10891         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
10892
10893 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10894
10895         PR tree-optimization/64494
10896         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
10897         clear SSA_NAME_ANTI_RANGE_P flag.
10898
10899 2015-01-05  Marek Polacek  <polacek@redhat.com>
10900
10901         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
10902
10903 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10904
10905         Update copyright years.
10906
10907         * gcc.c (process_command): Update copyright notice dates.
10908         * gcov-dump.c: Ditto.
10909         * gcov.c: Ditto.
10910         * doc/cpp.texi: Bump @copying's copyright year.
10911         * doc/cppinternals.texi: Ditto.
10912         * doc/gcc.texi: Ditto.
10913         * doc/gccint.texi: Ditto.
10914         * doc/gcov.texi: Ditto.
10915         * doc/install.texi: Ditto.
10916         * doc/invoke.texi: Ditto.
10917
10918         * auto-profile.c, auto-profile.h: Fix up Copyright line.
10919
10920 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
10921
10922         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
10923         verb tense, etc.
10924         ([-fvtable-verify], [-fvtv-debug]): Likewise.
10925         ([-Wabi]): Likewise.
10926         ([-fmessage-length]): Likewise.
10927         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
10928         ([-Wno-discarded-qualifiers]): Likewise.
10929         ([-Wnodiscarded-array-qualifiers]): Likewise.
10930         ([-Wno-virtual-move-assign]): Likewise.
10931         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
10932         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
10933         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
10934         ([-fsanitize-undefined-trap-on-error]): Likewise.
10935         ([-floop-interchange]): Likewise.
10936         ([-ftree-coalesce-inlined-vars]): Likewise.
10937         ([-fvect-cost-model]): Likewise.
10938         ([-flto]): Likewise.
10939         ([--param]): Likewise.
10940         (Spec Files): Likewise.
10941         ([-mstrict-align]): Likewise.
10942         ([-mfix-cortex-a53-835769]): Likewise.
10943         ([-march], [-mtune]): Likewise.
10944         ([-mpic-register]): Likewise.
10945         ([-munaligned-access]): Likewise.
10946         ([-msp8]): Likewise.
10947         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
10948         (AVR Built-in Macros): Likewise.
10949         ([-mpreferred-stack-boundary]): Likewise.
10950         ([-mtune-crtl]): Likewise.
10951         ([-mashf]): Likewise.
10952         ([-mmcu=]): Likewise.
10953         ([-minrt]): Likewise.
10954         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
10955         ([-mupper-regs]): Likewise.
10956         ([-matomic-model]): Likewise.
10957         ([-mdiv]): Likewise.
10958         ([-mzdcbranch]): Likewise.
10959         ([-mdisable-callt]): Likewise.
10960         ([-msoft-float]): Likewise.
10961         ([-m8byte-align]): Likewise.
10962         ([-fstack-reuse]): Likewise.
10963
10964 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10965
10966         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
10967         Fix markup, light copy-editing.
10968         ([-fauto-profile]): Rewrite to fix formatting and content
10969         problems.
10970
10971 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10972
10973         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
10974         Copy-edit description.
10975         ([-fisolate-erroneous-paths-attribute]): Likewise.
10976         * common.opt (fisolate-erroneous-paths-dereference):
10977         Copy-edit description.
10978         (fisolate-erroneous-paths-attribute): Likewise.
10979
10980 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10981
10982         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
10983         tidy grammar.
10984
10985 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10986
10987         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
10988         ([-fvtv-debug]): Likewise.
10989         ([-Wc++-compat]): Likewise.
10990         ([-Wc++11-compat]): Likewise.
10991         ([-Wc++14-compat]): Likewise.
10992         ([-Wno-sized-deallocation]): Likewise.
10993         ([-femit-class-debug-always]): Likewise.
10994         ([-femit-struct-debug-detailed]): Likewise.
10995         ([-fno-keep-inline-dllexport]): Likewise.
10996         ([-fira-algorithm]): Likewise.
10997         ([-fira-region]): Likewise.
10998         ([-flra-remat]): Likewise.
10999         ([-fipa-ra]): Likewise.
11000         ([-fhoist-adjacent-loads]): Likewise.
11001         ([-fisolate-erroneous-paths-dereference]): Likewise.
11002         ([-fisolate-erroneous-paths-attribute]): Likewise.
11003         ([-ftree-switch-conversion]): Likewise.
11004         ([-ftree-tail-merge]): Likewise.
11005         ([-ftree-loop-if-convert]): Likewise.
11006         ([-ftree-loop-if-convert-stores]): Likewise.
11007         ([-ftree-loop-distribution]): Likewise.
11008         ([-ftree-loop-distribute-patterns]): Likewise.
11009         ([-flto-compression-level]): Likewise.
11010         ([-flto-report]): Likewise.
11011         ([-flto-report-wpa]): Likewise.
11012         ([-fuse-linker-plugin]): Likewise.
11013         ([-mfix-cortex-a53-835769]): Likewise.
11014         ([-mno-fix-cortex-a53-835769]): Likewise.
11015         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
11016         explicit listing; add a note to the discussion indicating they
11017         exist.  Reorder table to group similar options.  Add missing
11018         @opindex entries.  Add @need commands throughout the table to
11019         allow it to be split across multiple pages.
11020         ([-m8bit-idiv]): Fix @opindex.
11021         ([-mavx256-split-unaligned-load]): Likewise.
11022         ([-mavx256-split-unaligned-store]): Likewise.
11023         ([-mstack-protector-guard]): Likewise.
11024         ([-mcpu=]): Likewise.
11025         ([-mcpu]): Likewise.
11026         ([-mpointer-size=]): Likewise.
11027
11028 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
11029
11030         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
11031         instead of `m' constraint.  Likewise for unnamed movb comparison
11032         patterns using reg_before_reload_operand predicate.
11033         * config/pa/predicates.md (reg_before_reload_operand): Tighten
11034         predicate to reject register index and LO_SUM DLT memory forms
11035         after reload.
11036
11037 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
11038
11039         * doc/invoke.texi (Option Summary): Fix spelling of
11040         -fdevirtualize-at-ltrans.
11041         ([-fdevirtualize]): Fix markup.
11042         ([-fdevirtualize-speculatively]): Fix typo.
11043         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
11044         implementor-speaky.
11045         * common.opt (fdevirtualize-at-ltrans): Likewise.
11046         * ipa-devirt.c: Fix typos in comments throughout the file.
11047         (ipa_devirt): Fix typos in format strings for dump output.
11048
11049 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
11050
11051         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
11052         discussion of defaults, light copy-editing.
11053
11054 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11055
11056         * tsan.c (instrument_expr): corrected previous checkin.
11057
11058 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11059
11060         Instrument bit field and unaligned accesses for TSAN.
11061         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
11062         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
11063         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
11064         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
11065         unaligned memory regions.
11066
11067 2015-01-01  Anthony Green  <green@moxielogic.com>
11068
11069         * config/moxie/predicates.md (moxie_general_movsrc_operand):
11070         Restrict move source register offsets to 16 bits.
11071 \f
11072 Copyright (C) 2015 Free Software Foundation, Inc.
11073
11074 Copying and distribution of this file, with or without modification,
11075 are permitted in any medium without royalty provided the copyright
11076 notice and this notice are preserved.