PR c/65228
[official-gcc.git] / gcc / ChangeLog
blob39d6d3e827a1989854ab4550af02e9d87bb06d66
1 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
4         function.
5         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
7 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9         * config/s390/s390.c (enum s390_builtin):
10         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
11         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
12         (s390_init_builtins): Generate new builtin functions.
13         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
14         (s390_sfpc, s390_efpc): New pattern definitions.
16 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
19         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
20         (s390_builtin_decls): New array.
21         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
22         (s390_builtin_decl): New function.
23         (TARGET_BUILTIN_DECL): Define macro.
25 2015-02-27  Richard Biener  <rguenther@suse.de>
27         PR middle-end/63175
28         * builtins.c (get_object_alignment_2): Make sure to re-apply
29         the ANDed mask after recursing to its operand gets us a new
30         misalignment bit position.
32 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
33             Martin Liska  <mliska@suse.cz>
35         PR bootstrap/65150
36         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
37         Use address_matters_p.
38         (redirect_all_callers, set_addressable): New functions.
39         (sem_function::merge): Reorganize and fix merging issues.
40         (sem_variable::merge): Likewise.
41         (sem_variable::compare_sections): Remove.
42         * common.opt (fmerge-all-constants, fmerge-constants): Remove
43         Optimization flag.
44         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
45         redirect them.
46         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
47         decl is used.
48         (address_matters_1): New function.
49         (symtab_node::address_matters_p): New function.
50         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
51         check for merged flag.
52         * cgraph.h (address_matters_p): Declare.
53         (symtab_node::address_taken_from_non_vtable_p): Remove.
54         (symtab_node::address_can_be_compared_p): New method.
55         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
56         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
57         Remove.
58         (comdat_can_be_unshared_p_1) Use address_matters_p.
59         (update_vtable_references): Fix formating.
60         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
61         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
62         * cgraphclones.c: Preserve merged and icf_merged flags.
64 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
66         * doc/extend.texi (Function Attributes): Fix spelling and typos.
67         (Label Attributes): Likewise.
68         (Cilk Plus Builtins): Likewise.
69         (ARC SIMD Built-in Functions): Likewise.
70         (ARM C Language Extensions (ACLE)): Likewise.
71         (PowerPC Built-in Functions): Likewise.
72         (PowerPC Hardware Transactional Memory Built-in Functions):
73         Likewise.
75 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
77         PR tree-optimization/65216
78         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
79         new stmt and new SSA_NAME for lhs whenever the arguments have
80         changed and weren't just swapped.  Fix comment typo.
82         PR tree-optimization/65215
83         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
84         for PDP endian targets.
85         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
86         Fix up formatting issues.
87         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
88         size is smaller than the original, adjust MEM_REF offset by the
89         difference of sizes.  Use is_gimple_mem_ref_addr instead of
90         is_gimple_min_invariant test to avoid adding address temporaries.
92 2015-02-26  Martin Liska  <mliska@suse.cz>
93             Jan Hubicka  <hubicka@ucw.cz>
95         PR ipa/64693
96         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
97         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
98         (sem_item_optimizer::process_cong_reduction): Include division by
99         sensitive references.
100         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
101         * ipa-ref.c (ipa_ref::address_matters_p): New function.
102         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
104 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
106         PR target/65192
107         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
108         Remove.
109         * config/avr/avr.c: Same.
110         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
111         Refuse any constant address not in 0..0xbf.
112         * config/avr/avr.md (*mov<mode>, *movsf): Remove
113         tiny_valid_direct_memory_access_range from insn conditions.
114         (mov<mode>): Don't special-case expansion of avrtiny addresses.
116 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
118         PR target/61142
119         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
120         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
121         * config/sh/predicates.md (const_logical_operand): New predicate.
122         * config/sh/sh.md: Add new peephole2 patterns.
124 2015-02-26  Marek Polacek  <polacek@redhat.com>
126         PR ipa/65008
127         * ipa-inline.c (early_inliner): Recompute inline parameters.
129 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
131         PR target/65171
132         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
133         instructions with TImode operands are included in the analysis.
135 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
137         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
138         of an EDGE_FSM_THREAD.
140 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
142         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
144 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
146         PR debug/46102
147         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
149 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
151         PR tree-optimization/65048
152         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
153         (thread_through_all_blocks): Call valid_jump_thread_path.
154         Remove invalid FSM jump-thread paths.
156 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
158         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
159         (ipa_write_optimization_summaries): Likewise.
160         * tree-streamer.h: Include data-streamer.h.
161         (streamer_mode_table): Declare extern variable.
162         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
163         * lto-streamer-out.c (lto_output_init_mode_table,
164         lto_write_mode_table): New functions.
165         (produce_asm_for_decls): Call lto_write_mode_table when streaming
166         offloading LTO.
167         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
168         (lto_create_simple_input_block): Add mode_table argument to the
169         lto_input_block constructors.
170         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
171         Likewise.
172         * data-streamer-in.c (string_for_index): Likewise.
173         * ipa-inline-analysis.c (inline_read_section): Likewise.
174         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
175         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
176         * lto-streamer-in.c (lto_read_body_or_constructor,
177         lto_input_toplevel_asms): Likewise.
178         (lto_input_mode_table): New function.
179         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
180         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
181         Use bp_pack_machine_mode.
182         * real.h (struct real_format): Add name field.
183         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
184         (class lto_input_block): Add mode_table member.
185         (lto_input_block::lto_input_block): Add mode_table_ argument,
186         initialize mode_table.
187         (struct lto_file_decl_data): Add mode_table field.
188         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
189         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
190         unpack_ts_decl_common_value_fields,
191         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
192         * tree-streamer.c (streamer_mode_table): New variable.
193         * real.c (ieee_single_format, mips_single_format,
194         motorola_single_format, spu_single_format, ieee_double_format,
195         mips_double_format, motorola_double_format,
196         ieee_extended_motorola_format, ieee_extended_intel_96_format,
197         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
198         ibm_extended_format, mips_extended_format, ieee_quad_format,
199         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
200         decimal_single_format, decimal_double_format, decimal_quad_format,
201         ieee_half_format, arm_half_format, real_internal_format): Add name
202         field.
203         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
205 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
207         PR target/65161
208         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
209         reordering for selective scheduling.
211 2015-02-26  Terry Guo  <terry.guo@arm.com>
213         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
214         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
215         (arm_arch_no_volatile_ce): Declare new global variable.
216         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
217         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
218         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
219         (TARGET_NO_VOLATILE_CE): New macro.
220         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
221         volatile memory access in IT block
223 2015-02-25  Uros Bizjak  <ubizjak@gmail.com>
225         PR target/47230
226         * doc/install.texi (Specific, alpha*-*-*): Document that binutils 2.25
227         or newer are required.
229 2015-02-25  Kai Tietz  <ktietz@redhat.com>
231         PR tree-optimization/61917
232         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
233         that reduc_def_stmt is null.
235 2015-02-25  Martin Liska  <mliska@suse.cz>
237         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
238         hard register variables.
240 2015-02-25  Kai Tietz  <ktietz@redhat.com>
242         PR target/64212
243         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
244         (symtab::noninterposable_alias): Likewise.
246 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
248         PR target/65167
249         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
250         bounds registers.
251         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
253 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
255         PR target/64997
256         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
257         as split condition; force split via '#' in output pattern.
259 2015-02-25  Richard Biener  <rguenther@suse.de>
260         Kai Tietz  <ktietz@redhat.com>
262         PR tree-optimization/61917
263         * tree-vect-loop.c (vectorizable_reduction): Allow
264         vect_internal_def without reduction to exit graceful.
266 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
268         PR target/65196
269         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
270         only with NONDEBUG_INSN_P.
272 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
274         Use variadic macros with avr-log.c.
276         * config/avr/avr-protos.h (avr_vdump): New prototype.
277         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
278         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
279         * config/avr/avr-log.c: Adjust comments.
280         (avr_vdump): New function.
281         (avr_vadump): Pass caller as 2nd argument instead of format string.
282         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
283         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
285 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
287         PR lto/64374
288         * target.def (target_option_stream_in): New target hook.
289         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
290         targetm.target_option.post_stream_in if non-NULL.
291         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
292         * doc/tm.texi: Updated.
293         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
294         function.
295         (TARGET_OPTION_POST_STREAM_IN): Redefine.
297 2015-02-24  Jeff Law  <law@redhat.com>
299         PR target/65117
300         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
301         of operand 0 and operand 2.
302         (zero_cost_loop_end, loop_end): Similarly.
304 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
306         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
307         CXX_MEM_STAT_INFO.
309 2015-02-24  DJ Delorie  <dj@redhat.com>
311         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as
312         well.
313         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
314         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
315         instead of hardcoding SImode.
317 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
319         * omp-low.c (create_omp_child_function): Tag entrypoint
320         functions with a special attribute.
322 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
324         PR target/65058
325         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
327 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
329         PR rtl-optimization/65123
330         * lra-remat.c (operand_to_remat): Check hard regs in insn
331         definition too.
333 2015-02-24  Nick Clifton  <nickc@redhat.com>
335         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
336         to the assembler.
338 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
340         PR libgomp/64625
341         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
342         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
343         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
344         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
345         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
346         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
347         (BUILT_IN_GOACC_PARALLEL): Specify as
348         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
349         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
350         * builtin-types.def
351         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
352         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
353         Remove function types.
354         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
355         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
356         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
357         New function types.
359 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
361         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
363 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
365         PR tree-optimization/65170
366         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
367         if val[1] < 0, clear also val[2] and return 3.
369 2015-02-24  Alan Modra  <amodra@gmail.com>
371         PR target/65172
372         * config/rs6000/rs6000.c (get_memref_parts): Only return true
373         when *base is a reg.  Handle nested plus addresses.  Simplify
374         pre_modify test.
376 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
378         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
379         use natural alignment when optimizing for size.
381 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
383         PR target/65153
384         * config/sh/sh.md (movsicc_true+3): Remove peephole.
385         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
386         * config/sh/sh.c (replace_n_hard_rtx): Remove.
388 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
390         PR fortran/63427
391         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
392         too big for a wide_int.  Implement missing wrapping operation.
394 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
396         PR target/65163
397         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
398         instead of const_int 4294901760.
400 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
402         * config/avr/t-avr: Fix typo in comment.
404 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
406         * doc/rtl.texi (fma): Clarify documentation.
408 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
410         PR debug/58123
411         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
412         over input_location.
414 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
416         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
417         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
418         restrict alignments to absolute_biggest_alignment.
419         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
420         Define.
421         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
422         * doc/tm.texi: Regenerate.
423         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
425 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
427         PR target/64172
428         * ira-color.c (color_pass): Prevent splitting multi-register
429         pseudos.
431 2015-02-20  Richard Biener  <rguenther@suse.de>
433         PR tree-optimization/65136
434         * tree-ssa-propagate.c: Include cfgloop.h.
435         (replace_phi_args_in): Avoid replacing loop latch edge PHI
436         arguments with constants.
438 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
439             Martin Liska  <mliska@suse.cz>
441         PR target/63892
442         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
443         don't try to create_thunk if stdarg_p.  If
444         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
445         redirect_callers if possible.
446         (sem_item_optimizer::execute): Call unregister_hooks here...
447         (ipa_icf_driver): ... instead of here.
449 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
451         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
452         Mark operand 0 as earlyclobber in 2nd alternative.
453         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
454         Write negated shift amount into QI lowpart operand 0 and use it
455         in the shift step.
456         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
458 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
460         * cgraph.h (clone_function_name_1): Declare.
461         * cgraphclones.c (clone_function_name_1): New function.
462         (clone_function_name): Use it.
463         * lto-partition.c: Include "stringpool.h".
464         (must_not_rename, maybe_rewrite_identifier,
465         validize_symbol_for_target): New static functions.
466         (privatize_symbol_name): Use must_not_rename.
467         (promote_symbol): Call validize_symbol_for_target.
468         (lto_promote_cross_file_statics): Likewise.
469         (lto_promote_statics_nonwpa): Likewise.
471 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
473         PR target/64452
474         * config/avr/avr.md (pushhi_insn): New insn.
475         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
477 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
478             Jakub Jelinek  <jakub@redhat.com>
480         * tree-streamer.c (preload_common_nodes): Don't preload
481         TI_VA_LIST* for offloading.
482         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
483         in_lto_p.
485 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
487         * config/pa/pa.c (pa_emit_move_sequence): Always force
488         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
489         note on insn.
491         * config/pa/pa.c (pa_reloc_rw_mask): New function.
492         (TARGET_ASM_RELOC_RW_MASK): Define.
493         (pa_cannot_force_const_mem): Revert previous change.
495 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
496             Jan Hubicka  <hubicka@ucw.cz>
498         PR ipa/65028
499         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
500         across jump functions.
502 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
504         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
506 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
508         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
510 2015-02-19  Richard Henderson  <rth@redhat.com>
512         PR middle-end/65074
513         * varasm.c (default_binds_local_p_2): Don't test node->definition;
514         test DECL_EXTERNAL independent of symtab_node.
516 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
518         PR lto/65012
519         * varpool.c (varpool_node::get_constructor): Return early
520         if this->lto_file_data is NULL.
522 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
524         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
525         (rank_for_schedule_debug): Update.
526         (ready_sort): Make static.  Move sorting logic to ...
527         (ready_sort_debug, ready_sort_real): New static functions.
528         (schedule_block): Sort both debug insns and real insns in preparation
529         for ready list trimming.  Improve debug output.
530         * sched-int.h (ready_sort): Remove global declaration.
532 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
534         * ipa-icf.c (sem_function::equals_private): Adjust.
535         (sem_function::bb_dict_test): Take a vec<int> * instead of
536         auto_vec<int>.
537         * ipa-icf.h (bb_dict_test): Likewise.
539 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
541         PR gcov-profile/64634
542         * tree-eh.c (frob_into_branch_around): Fix up typos
543         in function comment.
544         (lower_catch): Put eh_seq resulting from EH lowering of
545         the cleanup sequence after the cleanup rather than before it.
547 2015-02-18  Tom de Vries  <tom@codesourcery.com>
549         * common.opt (fstdarg-opt): New option.
550         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
551         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
552         (@item -fstdarg-opt): New item.
554 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
556         PR target/65064
557         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
558         for common symbols.
560 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
562         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
563         insn-modes.h.
564         (ALL_HOST_OBJS): Add mkoffload.o.
565         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
567 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
569         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
570         (compare_virtual_tables): Be smarter about skipping typeinfos;
571         do sane output on virtual table table mismatch.
572         (warn_odr): Be ready for forward declarations of enums;
573         output sane info on base mismatch and virtual table mismatch.
574         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
575         when only one type is polymorphic.
576         (get_odr_type): Fix hashtable corruption.
577         (dump_odr_type): Dump mangled names.
579 2015-02-18  Richard Biener  <rguenther@suse.de>
581         PR tree-optimization/65063
582         * tree-predcom.c (determine_unroll_factor): Return 1 if we
583         have replaced looparound PHIs.
585 2015-02-18  Martin Liska  <mliska@suse.cz>
587         * lto-streamer.c (lto_streamer_init): Encapsulate
588         streamer_check_handled_ts_structures with checking macro.
590 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
592         PR ipa/65087
593         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
594         section if !implicit_section.
595         (cgraph_node::create_version_clone_with_body): Likewise.
596         * trans-mem.c (ipa_tm_create_version): Likewise.
598 2015-02-18  Richard Biener  <rguenther@suse.de>
600         PR tree-optimization/62217
601         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
602         into BIVs.
604 2015-02-18  Marek Polacek  <polacek@redhat.com>
606         PR sanitizer/65081
607         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
608         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
609         is in range [-16K, -1].  Don't issue run-time error if
610         (ptr > ptr + offset).
612 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
614         * doc/install.texi (nvptx-*-none): New section.
615         * doc/invoke.texi (Nvidia PTX Options): Likewise.
616         * config/nvptx/nvptx.opt: Update.
618         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
619         (access_check): New functions, copied from
620         config/i386/intelmic-mkoffload.c.
621         (main): For non-installed testing, look in all COMPILER_PATHs for
622         GCC_INSTALL_NAME.
624         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
626 2015-02-18  Andrew Pinski  <apinski@cavium.com>
627             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
629         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
630         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
632 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
634         * ipa-visibility.c (function_and_variable_visibility): Only
635         check locality if node is not already local.
636         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
637         call_for_symbol_and_aliases instead of
638         call_for_symbol_thunks_and_aliases.
639         (ipa_inline): Likewise.
640         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
641         first walk aliases.
642         * ipa.c (symbol_table::remove_unreachable_nodes): Use
643         call_for_symbol_and_aliases.
644         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
645         (ipa_propagate_frequency_1): Use it; use opt_for_fn
646         (ipa_propagate_frequency): Update.
647         (ipa_profile): Add opt_for_fn gueards.
649 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
651         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
652         * doc/invoke.texi (SH options): Document it.
653         * config/sh/sh.c (sh_insn_length_adjustment): Check
654         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
656 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
658         * common.opt (fipa-cp-alignment): New.
659         * ipa-cp.c (ipcp_store_alignment_results): Check
660         flag_ipa_cp_alignment.
661         * opts.c (default_options_table): Enable -fipa-cp-alignment for
662         -O2.
663         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
664         * doc/invoke.texi: Document -fipa-cp-alignment.
666 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
668         PR target/64793
669         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
670         to nil.  Adjust comments.
672 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
674         * ipa-visibility.c (function_and_variable_visibility): Only
675         check locality if node is not already local.
676         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
677         call_for_symbol_and_aliases instead of
678         call_for_symbol_thunks_and_aliases.
679         (ipa_inline): Likewise.
680         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
681         first walk aliases.
682         * ipa.c (symbol_table::remove_unreachable_nodes): Use
683         call_for_symbol_and_aliases.
684         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
685         (ipa_propagate_frequency_1): Use it; use opt_for_fn
686         (ipa_propagate_frequency): Update.
687         (ipa_profile): Add opt_for_fn guards.
689 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
691         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
692         skipping of "strange" tokens.
694 2015-02-17  Jeff Law  <law@redhat.com>
696         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
697         obsolete comment.
699 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
701         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
702         as forcing a HARD_DEP between instructions, thereby
703         disallowing rewriting to break dependencies.
705 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
707         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
708         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
709         variables in boundary that have no inlitalizer encoded and are
710         not aliases.
711         * varasm.c (default_binds_local_p_2): External definitions do not
712         count as definitions here.
714 2015-02-16  Jeff Law  <law@redhat.com>
716         PR tree-optimization/64823
717         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
718         statements.
719         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
720         threading through blocks with PHIs, but no statements.
721         (thread_through_normal_block): Distinguish between blocks where
722         we did not process all the statements and blocks with no statements.
724 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
725             James Greenhalgh  <james.greenhalgh@arm.com>
727         PR ipa/64963
728         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
729         section if not linkonce.  Fix up formatting.
730         (cgraph_node::create_version_clone_with_body): Copy section.
731         * trans-mem.c (ipa_tm_create_version): Likewise.
733 2015-02-16  Richard Biener  <rguenther@suse.de>
735         PR tree-optimization/65077
736         * tree-ssa-structalias.c (get_constraint_for_1): Handle
737         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
738         (find_func_aliases): Allow float values to carry pointers again.
740 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
742         * doc/install.texi (Specific): Reorder targets list to put
743         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
744         from the top menu.
746 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
747             David Edelsohn  <dje.gcc@gmail.com>
749         PR target/65058
750         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
751         mapping class to external variable or function reference.
752         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
753         mapping class.
755 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
757         PR target/53348
758         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
759         ASM_WEAKEN_DECL if defined.
761 2015-02-16  Richard Biener  <rguenther@suse.de>
763         PR lto/65015
764         * varasm.c (default_file_start): For LTO produced units
765         emit <artificial> as file directive.
767 2015-02-16  Richard Biener  <rguenther@suse.de>
769         PR tree-optimization/63593
770         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
771         stmts and releasing SSA names until...
772         (execute_pred_commoning): ... after processing all chains.
774 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
776         PR ipa/65059
777         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
778         external functions.
780 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
782         * doc/bugreport.texi: Adjust section titles throughout the file
783         to use "Title Case".
784         * doc/extend.texi: Likewise.
785         * doc/gcov.texi: Likewise.
786         * doc/implement-c.texi: Likewise.
787         * doc/implement-cxx.texi: Likewise.
788         * doc/invoke.texi: Likewise.
789         * doc/objc.texi: Likewise.
790         * doc/standards.texi: Likewise.
791         * doc/trouble.texi: Likewise.
793 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
795         * cgraph.h (symtab_node::has_aliases_p): Simplify.
796         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
797         * tree.c (lookup_binfo_at_offset): Make static.
798         (get_binfo_at_offset): Do not shadow offset; add explanatory
799         comment.
801 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
803         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
804         for all floading point loads and stores except those using a register
805         index address.
806         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
807         to a register.
809 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
811         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
812         (do_estimate_growth_1): Record if any uninlinable edge was seen.
813         (estimate_growth): Handle uninlinable edges correctly.
814         (check_callers): New.
815         (growth_likely_positive): Handle aliases correctly.
817 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
819         * ipa-chkp.c: Use iterate_direct_aliases.
820         * symtab.c (resolution_used_from_other_file_p): Move inline.
821         (symtab_node::create_reference): Fix formating.
822         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
823         (symtab_node::iterate_reference): Move inline.
824         (symtab_node::iterate_referring): Move inline.
825         (symtab_node::iterate_direct_aliases): Move inline.
826         (symtab_node::used_from_object_file_p_worker): Inline into ...
827         (symtab_node::used_from_object_file_p): ... this one; move inline.
828         (symtab_node::call_for_symbol_and_aliases): Move inline;
829         use iterate_direct_aliases.
830         (symtab_node::call_for_symbol_and_aliases_1): New method.
831         (cgraph_node::call_for_symbol_and_aliases): Move inline;
832         use iterate_direct_aliases.
833         (cgraph_node::call_for_symbol_and_aliases_1): New method.
834         (varpool_node::call_for_node_and_aliases): Rename to ...
835         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
836         use iterate_direct_aliases.
837         (varpool_node::call_for_symbol_and_aliases_1): New method.
838         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
839         (ipa_discover_readonly_nonaddressable_var): Update.
840         * ipa-devirt.c: Fix formating.
841         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
842         Move inline.
843         (cgraph_node::call_for_symbol_and_aliases): Move inline.
844         (cgraph_node::call_for_symbol_and_aliases_1): New function..
845         * cgraph.h (used_from_object_file_p_worker): Remove.
846         (resolution_used_from_other_file_p): Move inline.
847         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
848         (symtab_node::iterate_reference): Move inline.
849         (symtab_node::iterate_referring): Move inline.
850         (symtab_node::iterate_direct_aliases): Move inline.
851         (symtab_node::used_from_object_file_p_worker): Inline into ...
852         (symtab_node::used_from_object_file_p): Move inline.
853         * tree-emutls.c (ipa_lower_emutls): Update.
854         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
855         (varpool_node::call_for_node_and_aliases): Remove.
857 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
859         PR tree-optimization/62209
860         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
861         op == range->exp, insert seq and gimplified code after labels
862         instead of after the phi.
864 2015-02-13  Jeff Law  <law@redhat.com>
866         PR bootstrap/65060
867         Revert my change for tree-optimization/64823.
869 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
871         PR tree-optimization/65053
872         * tree-ssa-phiopt.c (value_replacement): When moving assign before
873         cond, either reset VR on lhs or set it to phi result VR.
875 2015-02-13  Jeff Law  <law@redhat.com>
877         PR tree-optimization/64823
878         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
879         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
880         threading through blocks with PHIs, but no statements.
881         (thread_through_normal_block): Distinguish between blocks where
882         we did not process all the statements and blocks with no statements.
884         PR rtl-optimization/47477
885         * match.pd (convert (plus/minus (convert @0) (convert @1): New
886         simplifier to narrow arithmetic.
888 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
890         PR ipa/65028
891         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
892         polymorphic call info when type is not known to be preserved.
894 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
896         PR ipa/65028
897         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
898         (inline_call): Use it.
900 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
902         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
903         GOMP_DEVICE_NVIDIA_PTX.
905 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
907         PR ipa/65034
908         * stmt.c (emit_case_nodes): Use void_type_node instead of
909         NULL_TREE as LABEL_DECL type.
911 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
913         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
914         constraints.
915         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
916         symbolic references to data to be forced to constant memory on the
917         SOM target.
919 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
921         PR tree-optimization/65002
922         * tree-cfg.c (pass_data_fixup_cfg): Don't update
923         SSA on start.
924         * tree-sra.c (some_callers_have_no_vuse_p): New.
925         (ipa_early_sra): Reject functions whose callers
926         assume function is read only.
928 2015-02-13  Richard Biener  <rguenther@suse.de>
930         PR lto/65015
931         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
932         for LTO produced CUs.
934 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
936         PR tree-optimization/64705
937         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
938         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
939         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
940         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
941         expand_simple_operations.
943 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
944             Richard Henderson  <rth@redhat.com>
946         PR rtl/32219
947         * cgraphunit.c (cgraph_node::finalize_function): Set definition
948         before notice_global_symbol.
949         (varpool_node::finalize_decl): Likewise.
950         * varasm.c (default_binds_local_p_2): Rename from
951         default_binds_local_p_1, add weak_dominate argument.  Use direct
952         returns instead of assigning to local variable.  Unify varpool and
953         cgraph paths via symtab_node.  Reject undef weak variables before
954         testing visibility.  Reorder tests for simplicity.
955         (default_binds_local_p): Use default_binds_local_p_2.
956         (default_binds_local_p_1): Likewise.
957         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
958         via symtab_node.
959         (default_elf_asm_output_external): Emit visibility when specified.
961 2015-02-13  Alan Modra  <amodra@gmail.com>
963         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
964         code setting up r11 for out-of-line fp restore.
966 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
968         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
969         (muser-mode): Likewise.
971 2015-02-13  Alan Modra  <amodra@gmail.com>
973         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
974         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
976 2015-02-12  David Howells  <dhowells@redhat.com>
978         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
979         warning.
980         * tree-ssa-uninit.c (dump_predicates): Likewise.
981         * opts.c (print_filtered_help): Likewise.
983 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
985         * dwarf2out.c (output_die): Use "%s", name instead of name to
986         avoid -Wformat-security warning.
988         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
989         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
990         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
991         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
993 2015-02-12  Jason Merrill  <jason@redhat.com>
995         * common.opt (-flifetime-dse): New.
997 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
999         PR sanitizer/65019
1000         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
1002         PR tree-optimization/65014
1003         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
1004         use original second operand of arg0 or arg1 instead of
1005         that adjusted by STRIP_NOPS.
1007 2015-02-11  Jeff Law  <law@redhat.com>
1009         PR target/63347
1010         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
1011         that needs to be queued, just queue it for a single cycle.
1013 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
1015         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
1016         bodies of thunks; comment on why.
1017         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
1018         symbols are extern.
1020 2015-02-11  Richard Henderson  <rth@redhat.com>
1022         PR sanitize/65000
1023         * tree-eh.c (mark_reachable_handlers): Mark source and destination
1024         regions of __builtin_eh_copy_values.
1026 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1028         PR middle-end/65003
1029         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
1030         ultimate alias is MEM with SYMBOL_REF satisfying
1031         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
1032         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
1034 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
1036         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
1037         "diagnostic-core.h".
1038         (main): Initialize progname, and call diagnostic_initialize.
1040         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
1041         instead of __OPENMP_TARGET__.
1043         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
1044         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
1045         hard-coding PTX_ID.
1047 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
1049         * doc/sourcebuild.texi (pie_enabled): Document.
1051 2015-02-11  Martin Liska  <mliska@suse.cz>
1053         PR ipa/64813
1054         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
1055         a return value for call to a function that is noreturn.
1057 2015-02-11  Richard Biener  <rguenther@suse.de>
1059         PR lto/65015
1060         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
1061         and -fresolution.
1063 2015-02-11  Andrew Pinski  <apinski@cavium.com>
1065         PR target/64893
1066         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
1067         Change the first argument type to size_type_node and add another
1068         size_type_node.
1069         (aarch64_simd_expand_builtin): Handle the new argument to
1070         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
1071         print an out when the first two arguments are not
1072         nonzero integer constants.
1073         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
1074         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
1076 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1078         PR target/61925
1079         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
1080         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
1081         (ix86_set_current_function): Rewritten.
1082         (ix86_add_new_builtins): Temporarily clear current_target_pragma
1083         when creating builtin fndecls.
1085 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
1087         PR ipa/65005
1088         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
1089         function.
1090         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
1091         have no comdat group.
1092         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
1093         (lto_output_varpool_node): Always output alias info.
1094         (output_refs): Output refs of boundary aliases, too.
1095         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
1096         (output_symtab): Output call eges in thunks in boundary.
1097         (get_alias_symbol): Remove.
1098         (input_node, input_varpool_node): Do not special case weakrefs.
1099         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
1100         alias and thunks targets in the boundary; do not take removed symbols
1101         from their comdat groups.
1102         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
1103         (cgraph_node::global_info): Remove.
1104         (cgraph_node::rtl_info): Look through aliases and thunks.
1105         * cgrpah.h (global_info): Remove.
1106         (non_local_p): Remove.
1108 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
1109             Sandra Loosemore  <sandra@codesourcery.com>
1111         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
1112         to inline asm.  List dialects in proper order.
1114 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
1115             Sandra Loosemore  <sandra@codesourcery.com>
1117         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
1119 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
1121         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
1122         modified) reference to Solaris.
1124 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
1126         * doc/extend.texi (Extended Asm): Fix typos.
1128 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
1130         PR sanitizer/65004
1131         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
1133 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
1135         PR target/64661
1136         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
1137         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
1138         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
1139         * config/sh/constraints.md (Ara, Add): New constraints.
1140         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
1141         predicates.
1142         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
1143         atomic_mem_operand_0.  Don't use force_reg on the memory address.
1144         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
1145         Sra constraint.  Convert to insn_and_split.  Add workaround for
1146         PR 64974.
1147         (atomic_compare_and_swap<mode>_hard): Copy to
1148         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
1149         Use atomic_mem_operand_0 predicate.
1150         (atomic_compare_and_swap<mode>_soft_gusa,
1151         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
1152         AraAdd constraints.
1153         (atomic_compare_and_swap<mode>_soft_tcb,
1154         atomic_compare_and_swap<mode>_soft_imask,
1155         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
1156         atomic_mem_operand_0 predicate and SraSdd constraints.
1157         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
1158         constraint.
1159         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
1160         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
1161         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
1162         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
1163         force_reg on the memory address.
1164         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
1165         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
1166         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
1167         atomic_mem_operand_1 predicate and Sra constraint.
1168         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
1169         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
1170         Use atomic_mem_operand_1 predicate.
1171         (atomic_<fetchop_name><mode>_hard): Copy to
1172         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
1173         Use atomic_mem_operand_1 predicate.
1174         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
1175         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
1176         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
1177         insn_and_split.  Use atomic_mem_operand_1 predicate.
1178         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
1179         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
1180         Use atomic_mem_operand_1 predicate.
1181         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
1182         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
1183         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
1184         in generated insn with original mem operand before emitting the insn.
1185         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
1186         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
1187         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
1188         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
1189         Use atomic_mem_operand_1 predicate and AraAdd constraints.
1190         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
1191         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
1192         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
1193         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
1194         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
1195         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
1196         atomic_not_fetch<mode>_soft_tcb,
1197         atomic_<fetchop_name>_fetch<mode>_soft_imask,
1198         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
1199         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
1200         Use atomic_mem_operand_1 predicate and SraSdd constraints.
1202 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
1204         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
1205         and 3 earlyclobber operands.
1207 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
1209         * common.opt (fstack-reuse): Mark as optimization.
1211 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
1213         PR ipa/64982
1214         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
1216 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
1218         PR tree-optimization/64326
1219         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
1221 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
1223         PR gcov-profile/61889
1224         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
1226 2015-02-10  Richard Biener  <rguenther@suse.de>
1228         PR tree-optimization/64995
1229         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
1230         value we use is final.
1231         (visit_reference_op_store): Always valueize op.
1232         (visit_use): Properly valueize vuses.
1234 2015-02-10  Richard Biener  <rguenther@suse.de>
1236         PR tree-optimization/64909
1237         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
1238         pass a scalar-stmt count estimate to the cost model.
1239         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
1241 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
1243         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
1244         enabled by default together with var-tracking.
1246 2015-02-10  Nick Clifton  <nickc@redhat.com>
1248         * config/rl78/rl78.c: Remove DIV attribute code accidentally
1249         included in previous rl78 commit.
1251 2015-02-10  Richard Biener  <rguenther@suse.de>
1253         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
1254         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
1255         return the bitpack.
1257 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
1259         PR gcov-profile/61889
1260         * config.in: regenerate.
1261         * configure.in: Likewise.
1262         * configure.ac: Check for ftw.h.
1263         * gcov-tool.c: Check for ftw.h before using nftw.
1265 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
1267         PR lto/64076
1268         * ipa-visibility.c (update_visibility_by_resolution_info): Only
1269         assert when not in lto mode.
1271 2015-02-09  Zhouyi Zhou   <yizhouzhou@ict.ac.cn>
1273         * ira-color.c (setup_left_conflict_sizes_p): Simplify
1274         initialization/assignment of conflict_size.
1276 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
1278         PR ipa/64978
1279         * ipa-cp.c (gather_caller_stats): Skip thunks.
1280         (propagate_constants_topo): Skip aliases.
1282 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1284         PR target/64761
1285         * config/sh/sh.c (sh_option_override): Don't change
1286         -freorder-blocks-and-partition to -freorder-blocks even when
1287         unwinding is enabled.
1288         (sh_can_follow_jump): Return false if the followee jump is
1289         a crossing jump when -freorder-blocks-and-partition is specified.
1290         * config/sh/sh.md (*jump_compact_crossing): New insn.
1292 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1293             Kaz Kojima  <kkojima@gcc.gnu.org>
1295         PR target/64761
1296         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
1297         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
1298         (sh_can_redirect_branch): Rename to ...
1299         (sh_can_follow_jump): ... this.  Constify argument types.
1300         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
1301         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
1302         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
1303         * doc/tm.texi: Regenerate.
1305 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
1307         PR sanitizer/64981
1308         * builtins.c (expand_builtin): Call targetm.expand_builtin
1309         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
1311 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1313         PR ipa/61548
1314         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
1316 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1318         PR ipa/63566
1319         * ipa-icf.c (set_local): New function.
1320         (sem_function::merge): Use it.
1322 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1324         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
1325         (add_type_duplicate): Fix comparison of BINFOs.
1327 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1329         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
1330         on getting VOID pointer.
1332 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
1334         PR target/64979
1335         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
1336         va_list escapes.
1338 2015-02-09  Richard Biener  <rguenther@suse.de>
1340         * genmatch.c (replace_id): Copy expr_type.
1342 2015-02-09  Richard Biener  <rguenther@suse.de>
1344         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
1345         (streamer_write_tree_bitfields): Declare.
1346         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
1347         properly unpack padding.
1348         (unpack_value_fields): Inline ...
1349         (streamer_read_tree_bitfields): ... here.
1350         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
1351         and properly add padding bits.
1352         (streamer_pack_tree_bitfields): Fold into ...
1353         (streamer_write_tree_bitfields): ... this new function,
1354         exposing the bitpack object.
1355         * lto-streamer-out.c (lto_write_tree_1): Call
1356         streamer_write_tree_bitfields.
1358 2015-02-09  Richard Biener  <rguenther@suse.de>
1360         PR tree-optimization/54000
1361         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
1362         (struct ivopts_data): Add loop_loc member.
1363         (tree_ssa_iv_optimize_loop): Dump loop location.
1364         (create_new_ivs): Likewise, also dump number of IVs generated.
1366 2015-02-09  Martin Liska  <mliska@suse.cz>
1368         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
1369         just if not yet registered.
1370         (ipa_icf_generate_summary): Register callgraph hooks.
1372 2015-02-08  Andrew Pinski  <apinski@cavium.com>
1374         * config/aarch64/aarch64.c (gty_dummy): Delete.
1376 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1378         PR ipa/63566
1379         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
1380         (cgraph_node::local_p): Remove thunk related FIXME.
1382 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1384         PR ipa/63566
1385         * i386.c (ix86_function_regparm): Look through aliases to see if callee
1386         is local and optimized.
1387         (ix86_function_sseregparm): Likewise; also use target's SSE math
1388         settings; error out instead of silently generating wrong code
1389         on mismatches.
1390         (init_cumulative_args): Look through aliases.
1392 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1394         PR ipa/63566
1395         * ipa-split.c (execute_split_functions): Split if function has aliases.
1397 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
1399         PR ipa/63566
1400         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
1401         aliases before trying to expand it.
1402         (cgraph_node::expand_thunk): Fix formating.
1404 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
1406         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
1407         (Using Assembly Language with C): Expand introduction.
1408         (Basic Asm): Copy-edit.  Add more information about uses of
1409         basic asm.
1410         (Extended Asm): Copy-edit.  Document new escape syntax and
1411         %l[label] syntax.
1412         (Global Reg Vars): Copy-edit.
1413         (Local Reg Vars): Likewise.
1415 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
1417         PR debug/2714
1418         PR bootstrap/64256
1419         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
1420         (DBX_CONTIN_CHAR): Define.
1422 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
1423             Brian Rzycki  <b.rzycki@samsung.com>
1425         PR tree-optimization/64878
1426         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
1427         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
1428         Stop recursion at loop phi nodes after having visited a loop phi node.
1430 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
1432         * toplev.c (process_options): Change flag_ipa_ra before creating
1433         optimization_{default,current}_node.
1435         PR ipa/64896
1436         * cgraphunit.c (cgraph_node::expand_thunk): If
1437         restype is not is_gimple_reg_type nor the thunk_fndecl
1438         returns aggregate_value_p, set restmp to a temporary variable
1439         instead of resdecl.
1441 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
1443         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
1445 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1447         PR target/64205
1448         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1449         add a general secondary reload handler for SDmode, unless we have
1450         both read/write support for SDmode.
1452 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
1454         PR middle-end/64937
1455         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
1456         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
1457         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
1458         1 before, push it to abstract_vec.
1459         (dwarf2out_abstract_function): Adjust caller.  Don't call
1460         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
1461         DECL_ABSTRACT_P flags for all abstract_vec elts.
1463 2015-02-06  Renlin Li  <renlin.li@arm.com>
1465         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
1466         complex gimple.
1467         * tree-ssa.c (execute_update_addresses_taken): Likewise.
1469 2015-02-06  Jeff Law  <law@redhat.com>
1471         PR target/64889
1472         * config/h8300/h8300.c (push): New argument "in_prologue".
1473         Pass "in_prologue" along to "F".
1474         (h8300_push_pop): Corresponding changes.
1475         (h8300_expand_prologue): Likewise.
1476         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
1478 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
1480         PR rtl-optimization/64957
1481         PR debug/64817
1482         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
1483         IOR rather than for AND.
1485 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
1487         PR target/62631
1488         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
1489         of shift-add and (add + shift) operations.  Rename local variable.
1491 2015-02-05  Jeff Law  <law@redhat.com>
1493         PR target/17306
1494         * config/h8300/constraints.md (U): Correctly dectect
1495         "eightbit_data" memory addresses.
1496         * config/h8300/h8300.c (eightbit_constant_address_p): Also
1497         handle (const (plus (symbol_ref (x)))) where x is declared
1498         as an 8-bit data memory address.
1499         * config/h8300/h8300.md (call, call_value): Correctly detect
1500         "funcvec" functions.
1502         PR target/43264
1503         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
1504         24 to 28 bits for the H8/300.
1506 2015-02-06  Alan Modra  <amodra@gmail.com>
1508         PR target/64876
1509         * config/rs6000/rs6000.c (chain_already_loaded): New function.
1510         (rs6000_call_aix): Use it.
1512 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
1514         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
1515         check.
1517 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
1519         * config/h8300/constraints.md ("U" constraint): Use strict
1520         variant of REG_OK_FOR_BASE_P after reload has started.
1522 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
1524         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
1525         define to zero if !TARGET_NEON.
1526         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
1528 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1529             Trevor Saunders  <tsaunders@mozilla.com>
1531         PR ipa/61548
1532         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
1534 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1536         PR ipa/61548
1537         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
1538         when removing varpool nodes.
1540 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1542         PR ipa/61548
1543         * varpool.c (varpool_node::remove): Fix order of variables.
1545 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1547         PR ipa/64686
1548         * ipa-inline.c (inline_small_functions): Fix ordering issue between
1549         speculation resolution and key updates.
1551 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1553         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
1554         about not letting any speculative edges unupdated.
1556 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1558         PR gcov/64123
1559         * gcov-io.c (gcov_var): Export.
1561 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1563         PR middle-end/64922
1564         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
1565         edges that become speculative.
1567 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1569         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
1570         or DW_LANG_Fortran08.
1571         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
1572         DW_LANG_Fortran08.
1573         (gen_compile_unit_die): Handle "GNU Fortran2003" and
1574         "GNU Fortran2008" language strings.
1575         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
1576         * langhooks.h (lang_GNU_Fortran): New prototype.
1577         * langhooks.c (lang_GNU_Fortran): New function.
1578         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
1579         lang_GNU_Fortran.
1581 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
1583         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
1584         (RTX_OK_FOR_OLO10_P): Likewise.
1586 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
1588         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
1590 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
1592         PR middle-end/64922
1593         * gimple.c: Include gimple-ssa.h.
1594         (maybe_remove_unused_call_args): New function.
1595         * gimple.h (maybe_remove_unused_call_args): Declare.
1596         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
1597         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
1598         * gimple-fold.c (gimple_fold_call): Likewise.
1600 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
1602         PR rtl-optimization/64905
1603         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
1604         pointer alignment if it isn't needed.
1606 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
1608         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
1609         cortex-a72.cortex-a53.
1610         * config/aarch64/aarch64-tune.md: Regenerate.
1611         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
1613 2015-02-04  Nick Clifton  <nickc@redhat.com>
1615         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
1616         inside a MEM.
1618 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1620         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
1621         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
1622         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
1623         of DEF_BUILTIN.
1624         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
1625         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
1626         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
1627         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
1628         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
1629         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
1630         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
1631         * tree-core.h (enum built_in_function): In between
1632         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
1633         for builtins that use DEF_BUILTIN_CHKP macro.
1635 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
1637         PR debug/64817
1638         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
1639         operands for tcc_comparison exprs.  Fix typos.
1641         PR debug/64817
1642         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
1643         of two XORs that have an intervening AND or IOR.
1645         PR debug/64817
1646         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
1647         simplification of XOR of AND to not allocate new rtx before
1648         committing to a simplification.
1650 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1652         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
1653         manual swaps in all peepholes.
1655 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1657         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
1658         of manual swapping implementation.
1659         (aarch64_expand_vec_perm_const_1): Likewise.
1661 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
1663         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
1664         (generic_addrcost_table): Remove NAMED_PARAM.
1665         (cortexa57_addrcost_table): Likewise.
1666         (xgene1_addrcost_table): Likewise.
1667         (generic_regmove_table): Likewise.
1668         (cortexa53_regmove_table): Likewise.
1669         (xgene1_regmove_table): Likewise.
1670         (generic_vector_table): Likewise.
1671         (cortexa57_vector_table): Likewise.
1672         (xgene1_vector_table): Likewise.
1673         (generic_tunings): Likewise.
1674         (cortexa53_tunings): Likewise.
1675         (cortexa57_tunings): Likewise.
1676         (xgene1_tunings): Likewise.
1678 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
1680         * config/arm/arm-cores.def: Add cortex-a72 and
1681         cortex-a72.cortex-a53.
1682         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
1683         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
1684         * config/arm/arm-tune.md: Regenerate.
1685         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
1686         "cortex-a72.cortex-a53".
1687         * doc/invoke.texi (ARM Options/-mtune): Likewise.
1689 2015-02-04  Nick Clifton  <nickc@redhat.com>
1691         PR target/64408
1692         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
1693         of accepted codes.
1694         (nonimmediate_di_operand): Likewise.
1696         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
1697         prefixes of known F5 using MSP430 MCUs.
1699 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1701         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
1702         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
1703         instead of __builtin_sqrt.
1705 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
1707         * varasm.c (do_assemble_alias): Follow transparent alias
1708         chain for target.
1709         (default_assemble_visibility): Follow transparent alias
1710         chain for decl name.
1712 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1714         PR middle-end/62103
1715         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
1716         to compute size of referenced value in the constant case.
1718 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
1720         PR rtl-optimization/64756
1721         * cse.c (invalidate_dest): New function.
1722         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
1723         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
1724         invalidate and do not record it.
1726 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
1728         PR target/64660
1729         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
1730         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
1731         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
1732         atomic_nand<mode>_soft_tcb): New insns.
1733         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
1734         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
1735         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
1736         Split into atomic_not_fetchsi_hard if operands[0] is unused.
1737         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
1738         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
1739         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
1740         atomic_not<mode>_hard if operands[0] is unused.
1741         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
1742         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
1743         if operands[0] is unused.
1744         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
1745         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
1746         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
1747         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
1748         unused.
1749         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
1750         into atomic_not<mode>_soft_tcb if operands[0] is unused.
1751         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
1752         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
1753         if operands[0] is unused.
1754         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
1755         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
1756         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
1757         atomic_nand_fetchsi_hard if operands[0] is unused.
1758         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
1759         atomic_nand<mode>_hard if operands[0] is unused.
1760         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
1761         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
1762         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
1763         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
1764         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
1765         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
1766         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
1767         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
1768         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
1769         atomic_not<mode>_hard if operands[0] is unused.
1770         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
1771         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
1772         unused.
1773         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
1774         into atomic_not<mode>_soft_tcb if operands[0] is unused.
1775         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
1776         atomic_nand<mode>_hard if operands[0] is unused.
1777         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
1778         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
1780 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
1782         PR jit/64810
1783         * Makefile.in (GCC_OBJS): Add gcc-main.o.
1784         * gcc-main.c: New file, containing "main" taken from gcc.c.
1785         * gcc.c (do_self_spec): Free decoded_options.
1786         (class driver): Move declaration to gcc.h.
1787         (main): Move declaration and implementation to new file
1788         gcc-main.c.
1789         (driver_get_configure_time_options): New function.
1790         * gcc.h (class driver): Move this declaration here, from
1791         gcc.c.
1792         (driver_get_configure_time_options): New declaration.
1794 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
1796         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
1797         cross-module inlining.
1798         * cgraph.h (cgraph_node): Add flag merged.
1799         * ipa-icf.c (sem_function::merge): Maintain it.
1801 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
1803         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
1804         instead of OBJECT_P.
1806 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
1808         PR target/62631
1809         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
1810         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
1811         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
1812         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
1814 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
1816         PR other/63504
1817         * combine.c (reg_n_sets_max): New variable.
1818         (can_change_dest_mode, reg_nonzero_bits_for_combine,
1819         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
1820         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
1821         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
1822         (rest_of_handle_combine): Initialize reg_n_sets_max.
1824 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
1826         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
1827         if some always_inline was inlined, apply changes before inlining
1828         heuristically.
1830 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
1832         PR jit/64810
1833         * config/arm/arm.c (arm_option_override): Set
1834         arm_selected_arch/cpu/tune to NULL on entry.
1836 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
1837             Andrew Pinski  <pinskia@gcc.gnu.org>
1838             Jakub Jelinek  <jakub@gcc.gnu.org>
1840         PR target/64231
1841         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
1842         integer typing for small model. Use IN_RANGE.
1844 2015-02-02  Richard Biener  <rguenther@suse.de>
1846         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
1847         * tree-vrp.c (vrp_valueize_1): Likewise.
1849 2015-02-02  Alan Modra  <amodra@gmail.com>
1851         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
1852         than mem for toc_restore.
1853         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
1854         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
1855         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
1857 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
1859         PR target/64047
1860         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
1861         explicit default options.
1863 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
1865         PR ipa/64872
1866         * ipa-utils.c (ipa_merge_profiles): Add release argument.
1867         * ipa-icf.c (sem_function::merge): Do not release body when merging.
1868         * ipa-utils.h (ipa_merge_profiles): Update prototype.
1870 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
1872         PR debug/64817
1873         * cfgexpand.c (deep_ter_debug_map): New variable.
1874         (avoid_deep_ter_for_debug): New function.
1875         (expand_debug_expr): If TERed SSA_NAME is in
1876         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
1877         instead of trying to expand SSA_NAME's def stmt.
1878         (expand_debug_locations): When expanding debug bind
1879         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
1880         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
1881         value.
1882         (pass_expand::execute): Call avoid_deep_ter_for_debug on
1883         all debug bind stmts.  Delete deep_ter_debug_map after
1884         expand_debug_location if non-NULL and clear it.
1886 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
1888         PR target/64851
1889         * config/sh/sync.md (atomic_fetch_notsi_hard,
1890         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
1891         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
1892         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
1893         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
1894         atomic_not_fetch<mode>_soft_imask): New insns.
1896 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1898         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
1899         (rank_for_schedule_debug): Split from ...
1900         (rank_for_schedule): ... this.
1901         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
1902         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
1904 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
1906         * doc/md.texi (Machine Constraints): Alphabetize table by target.
1907         * doc/extend.texi (x86 Variable Attributes): Move section to
1908         correct alphabetization after renaming.
1909         (x86 Type Attributes): Likewise.
1910         (Target Builtins): Re-alphabetize menu.
1911         (x86 Built-in Functions): Move section to correct alphabetization
1912         after renaming.
1913         (x86 transactional memory intrinsics): Likewise.
1914         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
1915         and x86 Windows Options in table and menu.
1916         (x86 Options): Move section to correct alphabetization after
1917         renaming.
1918         (x86 Windows Options): Likewise.
1920 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
1922         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
1923         preferred names of the architecture and its 32- and 64-bit
1924         variants.
1925         * doc/invoke.texi: Likewise.
1926         * doc/md.texi: Likewise.
1928 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
1930         PR target/64882
1931         * config/i386/predicates.md (address_no_seg_operand): Reject
1932         non-CONST_INT_P operands in invalid mode.
1934 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
1936         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
1937         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
1938         * config/i386/predicates.md (address_no_seg_operand): Call
1939         address_operand with VOIDmode.
1940         (vsib_address_operand): Ditto.
1941         (address_mpx_no_base_operand): Ditto.
1942         (address_mpx_no_index_operand): Ditto.
1944 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
1946         PR target/64688
1947         * lra-constraints.c (original_subreg_reg_mode): New.
1948         (simplify_operand_subreg): Try to simplify subreg of const.  Use
1949         original_subreg_reg_mode for it.
1950         (swap_operands): Update original_subreg_reg_mode.
1951         (curr_insn_transform): Set up original_subreg_reg_mode.
1953 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
1955         PR target/64617
1956         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
1957         function.
1958         (process_alt_operands): Use it.
1959         (curr_insn_transform): Check the optional reload pseudo class is
1960         ok for the mode.
1962 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
1964         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
1965         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
1966         prototype.
1967         * toplev.h (init_asm_output): Update comment on use of
1968         UNKNOWN_LOCATION with fatal_error.
1969         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
1970         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
1971         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
1972         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
1973         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
1974         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
1975         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
1976         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
1977         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
1978         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
1979         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
1980         fatal_error changed to pass input_location as first argument.
1982 2015-01-30  Martin Liska  <mliska@suse.cz>
1984         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
1985         in #pragma GCC diagnostic guards.
1987 2015-01-30  Richard Biener  <rguenther@suse.de>
1989         PR tree-optimization/64829
1990         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
1991         not add a widening conversion pattern but hand off extra
1992         widenings to callers.
1993         (vect_recog_widen_mult_pattern): Handle extra widening produced
1994         by vect_handle_widen_op_by_const.
1995         (vect_recog_widen_shift_pattern): Likewise.
1996         (vect_pattern_recog_1): Remove excess vertical space in dumping.
1997         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
1998         (vect_init_vector_1): Likewise.
1999         (vect_get_vec_def_for_operand): Likewise.
2000         (vect_finish_stmt_generation): Likewise.
2001         (vectorizable_load): Likewise.
2002         (vect_analyze_stmt): Likewise.
2003         (vect_is_simple_use): Likewise.
2005 2015-01-29  Jeff Law  <law@redhat.com>
2007         * combine.c (try_combine): Fix typo in comment.
2009 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
2011         PR target/64580
2012         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
2013         (rs6000_stack_info): Add assert.
2014         (rs6000_output_savres_externs): New function, split off from...
2015         (rs6000_output_function_prologue): ... here.  Do not call it for
2016         thunks.
2018 2015-01-29  Jeff Law  <law@redhat.com>
2020         PR target/15184
2021         * combine.c (try_combine): If I0 is a memory load and I3 a store
2022         to a related address, increase the "goodness" of doing a 4-insn
2023         combination with I0-I3.
2024         (make_field_assignment): Handle SUBREGs in the ior+and case.
2026 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
2028         PR tree-optimization/64746
2029         * tree-if-conv.c (mask_exists): New function.
2030         (predicate_mem_writes): Save created mask with given size for further
2031         use.
2032         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
2033         (ifcvt_repair_bool_pattern): Collect all statements that are root
2034         of bool pattern and use iterative algorithm to remove multiple uses
2035         of predicates, display number of required iterations.
2037 2015-01-29  Richard Biener  <rguenther@suse.de>
2039         PR tree-optimization/64853
2040         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
2041         stmt will get simulated again.
2042         * tree-ssa-ccp.c (valueize_op_1): Likewise.
2044 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2046         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
2047         return_in_pc.  Remove redundant assignments.
2048         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
2049         (arm_expand_epilogue): Don't compare boolean with true in if condition.
2051 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
2053         * config/i386/i386.c (ix86_mode_after): Make static.
2055 2015-01-29  Richard Biener  <rguenther@suse.de>
2057         PR tree-optimization/64844
2058         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
2059         dump cost model analysis.
2060         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2061         Do not register adjusted load/store costs here.
2063 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2064             Uros Bizjak  <ubizjak@gmail.com>
2066         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
2067         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
2068         using x86_use_pseudo_pic_reg.
2069         * config/i386/i386.c (ix86_conditional_register_usage): Remove
2070         support for fixed PIC register.
2071         (ix86_use_pseudo_pic_reg): Not static any more.
2073 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2075         PR middle-end/64805
2076         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
2077         to avoid error in cgraph node verification.
2079 2015-01-29  Marek Polacek  <polacek@redhat.com>
2081         * doc/standards.texi: Reflect that the default for C is gnu11.
2083 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2085         PR target/64761
2086         * reorg.c (switch_text_sections_between_p): New function.
2087         (relax_delay_slots): Call it when testing if the jump insn
2088         is removable.  Use targetm.can_follow_jump when testing if
2089         the conditional branch can follow an unconditional jump.
2091 2015-01-27  Caroline Tice  <cmtice@google.com>
2093         Committing VTV Cywin/Ming patch for Patrick Wollgast
2094         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
2095         if -fvtable-verify=preinit/std is used.
2096         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
2097         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
2098         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
2099         if -fvtable-verify=preinit/std is used.
2100         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
2101         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
2102         if -fvtable-verify=preinit/std is used.
2103         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
2104         * config/i386/mingw32.h (LIB_SPEC): Likewise.
2105         * varasm.c (assemble_variable): Add code to properly set the comdat
2106         section and name for the .vtable_map_vars section in case the
2107         target is PE or COFF.
2109 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
2111         PR ipa/64801
2112         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
2113         make sane BB profile.
2114         (cgraph_node::expand_thunk): Make sane BB profile.
2115         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
2116         * cgraph.h (init_lowered_empty_function): Update prototype.
2117         * config/i386/i386.c (make_resolver_func): Update call.
2118         * predict.c (gate): Disable branch prediction pass if
2119         profile is already there.
2121 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
2123         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
2124         * opth-gen.awk: Likewise.
2125         * common.opt: Mark flag_fp_contract_mode as Optimization.
2127 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2129         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
2130         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
2132 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
2134         PR target/64659
2135         * config/sh/predicates.md (atomic_arith_operand,
2136         atomic_logical_operand): Remove.
2137         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
2138         (atomic_arith_operand_0): New predicate.
2139         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
2140         Use atomic_arith_operand_0 for input values.
2141         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
2142         atomic_compare_and_swap<mode>_soft_gusa,
2143         atomic_compare_and_swap<mode>_soft_tcb,
2144         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
2145         arith_reg_operand instead of register_operand.
2146         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
2147         atomic_arith_operand_0 for newval input.
2148         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2149         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
2150         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
2151         arith_reg_operand instead of register_operand.
2152         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
2153         fetchop_predicate_1, fetchop_constraint_1_llcs,
2154         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
2155         fetchop_constraint_1_imask): New code iterator attributes.
2156         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
2157         register_operand.  Use fetchop_predicate_1.
2158         (atomic_fetch_<fetchop_name>si_hard,
2159         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
2160         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
2161         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
2162         and arith_reg_operand instead of register_operand.  Use
2163         fetchop_predicate_1, fetchop_constraint_1_gusa.
2164         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
2165         and arith_reg_operand instead of register_operand.  Use
2166         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
2167         to allow R0 usage.
2168         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
2169         and arith_reg_operand instead of register_operand.  Use
2170         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
2171         to allow R0 usage.
2172         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
2173         register_operand.  Use atomic_logical_operand_1.
2174         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
2175         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
2176         arith_reg_operand instead of register_operand.
2177         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
2178         Use arith_reg_dest and arith_reg_operand instead of register_operand.
2179         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
2180         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
2181         register_operand.  Use fetchop_predicate_1.
2182         (atomic_<fetchop_name>_fetchsi_hard,
2183         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
2184         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
2185         fetchop_constraint_1_llcs.
2186         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
2187         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
2188         fetchop_constraint_1_gusa.
2189         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
2190         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
2191         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
2192         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
2193         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
2194         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
2195         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
2196         register_operand.  Use atomic_logical_operand_1.
2197         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
2198         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
2199         arith_reg_operand instead of register_operand.
2200         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
2201         arith_reg_operand instead of register_operand.  Use logical_operand
2202         and K08.  Adjust asm sequence to allow R0 usage.
2203         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
2204         arith_reg_operand instead of register_operand.  Use logical_operand
2205         and K08.
2207 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
2209         PR other/63504
2210         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
2211         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
2212         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
2213         only get_full_len HOST_WIDE_INTs from get_val () array rather than
2214         all bits in *val_wide.
2216 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
2218         * varpool.c (tls_model_names): Fix names.
2219         (varpool_node::dump): Dump tls- prefix for tls models.
2221 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
2222             Bernd Schmidt  <bernds@codesourcery.com>
2223             Nathan Sidwell  <nathan@codesourcery.com>
2225         * config/nvptx/mkoffload.c: New file.
2226         * config/nvptx/t-nvptx: Add build rules for it.
2227         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
2228         (extra_programs): Add mkoffload.
2229         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
2230         function.
2231         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
2233 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
2235         PR middle-end/64809
2236         * cfgexpand.c (reorder_operands): Skip debug gimples.
2238 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
2240         PR tree-optimization/64277
2241         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
2242         range info when possible to refine estimation.
2244 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2246         PR tree-optimization/64718
2247         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
2248         be a 16bit unsigned integer when n->range is 16.
2249         (bswap_replace): Convert src to that type if necessary for all bswap
2250         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
2251         set in pass_optimize_bswap::execute ().
2253 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
2255         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
2256         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
2257         integer and floating point variants.
2258         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
2260 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
2262         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
2263         for all vector modes.
2265 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
2267         PR bootstrap/64612
2268         * doc/sourcebuild.texi (comdat_group): Document.
2270 2015-01-28  Terry Guo  <terry.guo@arm.com>
2272         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
2274 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
2276         * toplev.c (print_version): Add param "show_global_state", and
2277         only print GGC and plugin information if it is true.
2278         (init_asm_output): Pass in "true" for the new param when calling
2279         print_version.
2280         (process_options): Likewise.
2281         (toplev::main): Likewise.
2282         * toplev.h (print_version): Add new param to decl.
2284 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
2286         PR ipa/60871
2287         PR ipa/64139
2288         * tree.c (lookup_binfo_at_offset): New function.
2289         (get_binfo_at_offset): Use it.
2291 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
2293         PR ipa/64282
2294         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
2295         on vtable being vtable.
2297 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2299         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
2300         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
2301         -mhotpatch= option.
2302         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
2303         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
2304         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
2305         Renamed.
2306         (s390_hotpatch_trampoline_halfwords_max): Renamed.
2307         (s390_hotpatch_hw_max): New name.
2308         (s390_hotpatch_trampoline_halfwords): Renamed.
2309         (s390_hotpatch_hw_before_label): New name.
2310         (get_hotpatch_attribute): Removed.
2311         (s390_hotpatch_hw_after_label): New name.
2312         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
2313         attribute.
2314         (s390_attribute_table): Ditto.
2315         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
2316         (s390_function_num_hotpatch_hw): New name.
2317         Remove special handling of inline functions and hotpatching.
2318         Return number of nops before and after the function label.
2319         (s390_can_inline_p): Removed.
2320         (s390_asm_output_function_label): Emit a configurable number of nops
2321         after the function label.
2322         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
2323         (TARGET_CAN_INLINE_P) Removed.
2324         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
2326 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2327             Jiong Wang  <jiong.wang@arm.com>
2329         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
2330         of scratch reg.
2331         (cb<optab><mode>1): Likewise.
2332         * config/aarch64/iterators.md (bcond): New define_code_attr.
2334 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2336         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
2337         memory accesses.
2339 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2341         * config/s390/s390.c (s390_register_move_cost): Increase costs for
2342         FPR->GPR moves.
2344 2015-01-27  Richard Biener  <rguenther@suse.de>
2346         * tree-vrp.c (update_value_range): Intersect the range with
2347         old recorded SSA name range information.
2349 2015-01-27  Nick Clifton  <nickc@redhat.com>
2351         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
2352         BC, DE and HL registers directly, not via AX.
2353         When decrementing the stack pointer by a large amount, transfer SP
2354         into AX and perform the subtraction there.
2355         (rl78_expand_epilogue): Perform the inverse of the above
2356         enhancements.
2358 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2360         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
2362 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
2363             Yury Gribov  <y.gribov@samsung.com>
2365         PR ubsan/64741
2366         * ubsan.c (ubsan_source_location): Refactor code.
2367         (ubsan_type_descriptor): Update type size. Refactor code.
2369 2015-01-27  Richard Biener  <rguenther@suse.de>
2371         PR tree-optimization/56273
2372         PR tree-optimization/59124
2373         PR tree-optimization/64277
2374         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
2375         from the first VRP pass.
2377 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
2379         PR ipa/64776
2380         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
2381         handle the first argument in the same loop as all the other arguments.
2383         PR rtl-optimization/61058
2384         * jump.c (cleanup_barriers): Update basic block boundaries
2385         if BLOCK_FOR_INSN is non-NULL on PREV.
2387 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
2389         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
2390         bounds narrowing, already instrumented calls and calls to
2391         not instrumentable functions.
2393 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
2395         PR tree-optimization/64807
2396         * wide-int.cc (wi::divmod_internal): Clear
2397         b_dividend[dividend_blocks_needed].
2399 2015-01-26  DJ Delorie  <dj@redhat.com>
2401         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
2402         volatile memory references.
2404 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
2406         PR target/49263
2407         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
2408         remove_insn.
2409         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
2410         shifts if it already fits into K08.
2412 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
2414         PR ipa/64730
2415         * ipa-inline.c (inline_small_functions): Print "unknown" even
2416         if edge->call_stmt is non-NULL, but has builtins or unknown
2417         location.
2419         PR middle-end/64421
2420         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
2421         with asterisk, skip the first character.
2423 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
2425         PR target/64806
2426         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
2427         order change.
2429 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
2431         PR target/64795
2432         * config/i386/i386.md (*movdi_internal): Also check operand 0
2433         to determine TYPE_LEA operand.
2434         (*movsi_internal): Ditto.
2436 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
2438         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
2439         OPTION_MASK_QUAD_MEMORY_ATOMIC.
2441 2015-01-26  Renlin Li  <renlin.li@arm.com>
2443         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
2444         the comment.
2445         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
2446         for higher part.
2448 2015-01-26  Richard Biener  <rguenther@suse.de>
2450         PR middle-end/64764
2451         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
2452         combining two BIT_AND_EXPR predicates.
2454 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
2456         PR bootstrap/64754
2457         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
2459 2015-01-26  Terry Guo  <terry.guo@arm.com>
2461         * config/arm/arm.c (arm_file_start): Update the assignment of
2462         Tag_ABI_HardFP_use.
2464 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
2466         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
2467         pipeline model.
2468         config/arm/arm.md: Include the new Cortex-A57 model.
2469         (generic_sched): Don't use generic_sched when tuning for
2470         Cortex-A57.
2472 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
2473             Uros Bizjak  <ubizjak@gmail.com>
2475         * config/i386/i386.c (get_builtin_code_for_version): Add
2476         support for BMI and BMI2 multiversion functions.
2478 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2480         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
2481         (extract_bit_field): Likewise.
2482         (extract_low_bits): Likewise.
2483         (expand_mult): Likewise.
2484         (expand_mult_highpart_adjust): Likewise.
2486 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
2488         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
2489         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
2490         * config/i386/i386.c (processor_model): Add
2491         M_INTEL_COREI7_BROADWELL.
2492         (arch_names_table): Add "broadwell".
2494 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
2496         PR target/49263
2497         PR target/53987
2498         PR target/64345
2499         PR target/59533
2500         PR target/52933
2501         PR target/54236
2502         PR target/51244
2503         * config/sh/sh-protos.h
2504         (sh_extending_set_of_reg::can_use_as_unextended_reg,
2505         sh_extending_set_of_reg::use_as_unextended_reg,
2506         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
2507         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
2508         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
2509         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
2510         (sh_treg_insns): New class.
2511         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
2512         (scope_counter): New class.
2513         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
2514         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
2515         sh_extending_set_of_reg::can_use_as_unextended_reg,
2516         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
2517         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
2518         sh_split_treg_set_expr): New functions.
2519         (addsubcosts): Handle treg_set_expr.
2520         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
2521         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
2522         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
2523         (sh_insn_operands_modified_between_p): Make non-static.
2524         * config/sh/predicates.md (zero_extend_movu_operand): Allow
2525         simple_mem_operand in addition to displacement_mem_operand.
2526         (zero_extend_operand): Don't allow zero_extend_movu_operand.
2527         (treg_set_expr, treg_set_expr_not_const01,
2528         arith_reg_or_treg_set_expr): New predicates.
2529         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
2530         arith_or_int_operand instead of logical_operand.  Convert to
2531         insn_and_split.  Try to optimize constant operand in splitter.
2532         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
2533         (*tstqi_t_zero): Delete.
2534         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
2535         (tstsi_t_and_not): Delete.
2536         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
2537         Convert to insn_and_split.
2538         (unnamed split, tstsi_t_zero_extract_xor,
2539         tstsi_t_zero_extract_subreg_xor_little,
2540         tstsi_t_zero_extract_subreg_xor_big): Delete.
2541         (*tstsi_t_shift_mask): New insn_and_split.
2542         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
2543         to recombine with surrounding insns when splitting.
2544         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
2545         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
2546         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
2547         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
2548         (*cbranch_div0s: Delete.
2549         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
2550         Try to recombine with surrounding insns when splitting.  Add operand
2551         order variants.
2552         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
2553         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
2554         *addc_r_r_msb, *addc_2r_msb): Delete.
2555         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
2556         order variant.
2557         (*addc_negreg_t): New insn_and_split.
2558         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
2559         Try to recombine with surrounding insns when splitting.
2560         Add operand order variants.
2561         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
2562         insn_and_split patterns.
2563         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
2564         surrounding insns when splitting.
2565         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
2566         (*rotcl): Likewise.  Add zero_extract variant.
2567         (*ashrsi2_31): New insn_and_split.
2568         (*negc): Convert to insn_and_split.  Use treg_set_expr.
2569         (*zero_extend<mode>si2_disp_mem): Update comment.
2570         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
2571         condition.
2572         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
2573         with surrounding insns when splitting.
2574         (any_treg_expr_to_reg): New insn_and_split.
2575         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
2576         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
2577         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
2578         *zero_extract_2): New single bit zero extract patterns.
2579         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
2580         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
2581         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
2582         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
2583         set destination.
2584         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
2585         register_operand for set source.
2587 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
2589         * i386.opt (prefetch_sse): New targetsave.
2590         * i386.c (ix86_function_specific_save): Save prefetch_sse.
2591         (ix86_function_specific_restore): Restore prefetch_sse and initialize
2592         ix86_cost/ix86_tune_cost.
2594 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
2596         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2597         Support the JIT by using 0 as the language type.
2599 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
2601         PR target/64317
2602         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
2603         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
2604         (mark_regno_live, process_bb_lives): Pass new parameter value to
2605         make_hard_regno_born.
2607 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
2609         PR rtl-optimization/63637
2610         PR rtl-optimization/60663
2611         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
2612         if elt->cost is MAX_COST for ASM_OPERANDS.
2613         (find_sets_in_insn): Fix up comment typo.
2614         (cse_insn): Don't set src_volatile for all non-volatile
2615         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
2616         or with "memory" clobber.  Set elt->cost to MAX_COST
2617         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
2618         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
2620 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
2622         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
2623         alternative 1.
2625 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
2627         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
2628         libgcc/config/i386/elf-lib.h.
2630 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
2632         PR driver/64737
2633         * gcc.c (print_configuration): Don't print a blank line at the end
2634         here...
2635         (run_attempt): ... but here unstead.
2637         PR middle-end/64734
2638         * omp-low.c (scan_sharing_clauses): Don't ignore
2639         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
2640         on target data/update constructs.
2642 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2644         PR target/50928
2645         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
2646         (DEBUG_RELOAD): Removed define.
2647         (m32c_limit_reload_class): Enable traces with if DEBUG0.
2648         (m32c_function_arg): Added a type cast.
2649         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
2650         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
2651         * config/m32c/bitops.md (andqi3_16): Likewise.
2652         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
2653         (push_a01_l): Likewise.
2655 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
2657         PR jit/64721
2658         * main.c (main): Construct toplev instances with init_signals=true.
2659         * toplev.c (general_init): Add param "init_signals", and use it to
2660         conditionalize the calls to signal and host_hooks.extra_signals.
2661         (toplev::toplev): Add param "init_signals".
2662         (toplev::main): When invoking general_init, pass m_init_signals
2663         to control whether signal-handlers are installed.
2664         * toplev.h (toplev::toplev): Add param "init_signals".
2665         (toplev::m_init_signals): New field.
2667 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
2669         PR jit/64722
2670         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
2671         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
2672         latter may be affected by the former (e.g. on i686).
2674 2015-01-23  Martin Liska  <mliska@suse.cz>
2676         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
2677         false positive during profiledbootstrap.
2679 2015-01-23  Tom de Vries  <tom@codesourcery.com>
2681         PR libgomp/64672
2682         * lto-opts.c (lto_write_options): Output non-explicit conservative
2683         -fno-openacc.
2684         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
2685         (append_compiler_options): Pass -fopenacc through.
2687 2015-01-23  Tom de Vries  <tom@codesourcery.com>
2689         PR libgomp/64707
2690         * lto-opts.c (lto_write_options): Output non-explicit conservative
2691         -fno-openmp.
2692         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
2693         (append_compiler_options): Pass -fopenmp through.
2695 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
2697         PR debug/64511
2698         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
2699         GTY markup.
2701         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
2702         * diagnostic.def (DK_ICE_NOBT): New kind.
2703         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
2704         like DK_ICE, but never print backtrace.
2705         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
2706         (internal_error_no_backtrace): New function.
2707         * gcc.c (execute): Use internal_error_no_backtrace instead of
2708         internal_error.
2710 2015-01-22  Jeff Law  <law@redhat.com>
2712         PR target/52076
2713         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
2714         improve code density for small immediate to memory case.
2715         (insv): Better handle bitfield assignments when the field is
2716         being set to all ones.
2717         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
2718         operand predicate.
2720 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2721             Jakub Jelinek  <jakub@redhat.com>
2723         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
2724         for !TARGET_LIBC_PROVIDES_SSP version and
2725         -fstack-protector-{all,strong,explicit} otherwise.
2726         * config/freebsd.h (LINK_SSP_SPEC): Handle
2727         -fstack-protector-{strong,explicit}.
2729 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
2730             H.J. Lu  <hongjiu.lu@intel.com>
2732         PR ipa/64694
2733         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
2734         heap.
2736 2015-01-22  Wei Mi  <wmi@google.com>
2738         PR rtl-optimization/64557
2739         * dse.c (record_store): Call get_addr for mem_addr.
2740         (check_mem_read_rtx): Likewise.
2742 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
2744         * fold-const.c (const_binop): Add early return for non-tcc_binary.
2746 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
2748         * toplev.c (init_local_tick): Process the failure when read
2749         fails for random_seed.
2751         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
2752         'pretty_name' to avoid memory overflow.
2754 2015-01-22  Richard Biener  <rguenther@suse.de>
2756         PR middle-end/64728
2757         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
2758         abnormal coalescing on undefined SSA names.
2760 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
2762         PR target/64688
2763         PR target/64477
2764         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
2765         for alternative 3.
2766         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
2768 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
2770         PR middle-end/63325
2771         * fold-const.c (fold_checksum_tree): Don't include value of
2772         expr->decl_with_vis.symtab_node in the checksum.
2774 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2776         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
2778 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
2780         PR driver/64690
2781         * gcc.c (insert_comments): New function.
2782         (try_generate_repro): Call it.
2783         (append_text): Removed.
2785 2015-01-22  Richard Biener  <rguenther@suse.de>
2787         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
2788         with IL incompatible options.  Properly honor user optimize
2789         attributes.
2791 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
2793         PR rtl-optimization/64682
2794         * combine.c (distribute_notes): When moving a death note for
2795         a register that is set in the new I2, make sure to put it
2796         before that new I2.
2798 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
2800         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
2801         not TARGET_DEFAULT.
2803 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
2805         PR debug/64511
2806         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
2807         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
2808         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
2810         PR sanitizer/64706
2811         * doc/invoke.texi (-fsanitize=vptr): Document.
2813         PR rtl-optimization/62078
2814         * dse.c: Include cfgcleanup.h.
2815         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
2816         anything call purge_all_dead_edges and cleanup_cfg at the end
2817         of the pass.
2819 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
2821         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
2822         edges.
2824 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2826         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
2827         decl attribute.
2829 2015-01-21  David Sherwood  <david.sherwood@arm.com>
2830             Tejas Belagod <Tejas.Belagod@arm.com>
2832         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
2833         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
2834         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
2835         Removed.
2837 2015-01-21  David Sherwood  <david.sherwood@arm.com>
2838             Tejas Belagod <Tejas.Belagod@arm.com>
2840         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
2841         (aarch64_reverse_mask): New decls.
2842         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
2843         (insn_count): New mode_attr.
2844         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
2845         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
2846         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
2847         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
2848         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
2849         (aarch64_simd_st4): New patterns.
2850         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
2851         (aarch64_reverse_mask): New functions.
2853 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
2855         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
2856         Declare.
2857         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
2858         addressing modes for BE.
2859         (aarch64_print_operand): Add 'R' specifier.
2860         (aarch64_simd_disambiguate_copy): Delete.
2861         (aarch64_simd_emit_reg_reg_move): New function.
2862         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
2863         in define_splits for structural moves.
2864         (mov<mode>): Use less restrictive predicates.
2865         (*aarch64_mov<mode>): Simplify and only allow for LE.
2866         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
2868 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
2870         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
2872 2015-01-21  Richard Henderson  <rth@redhat.com>
2874         PR target/64669
2875         * ccmp.c (used_in_cond_stmt_p): Remove.
2876         (expand_ccmp_expr): Don't use it.
2878 2015-01-21  Nick Clifton  <nickc@redhat.com>
2880         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
2881         PARALLELs.
2883 2015-01-21  Richard Biener  <rguenther@suse.de>
2885         PR middle-end/64313
2886         * tree-core.h (builtin_info, builtin_info_type): Turn from
2887         an object with two arrays into an array of an object with
2888         decl and two flags, implicit_p and declared_p.
2889         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
2890         set_builtin_decl, set_builtin_decl_implicit_p,
2891         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
2892         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
2893         * builtins.c (builtin_info): Adjust.
2894         * gimplify.c (gimplify_addr_expr): References to builtins
2895         that have been declared by the user makes them eligible for
2896         use by the compiler.  Call set_builtin_decl_implicit_p on them.
2898 2015-01-20  Jeff Law  <law@redhat.com>
2900         PR target/59946
2901         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
2902         allow pc-relative addresses in operand predicates or constraints.
2904 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
2906         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
2907         neon on aarch32 processors for stringops.
2909 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
2911         PR ipa/63576
2912         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
2914 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
2916         PR lto/45375
2917         * ipa-inline.c: Include lto-streamer.h
2918         (report_inline_failed_reason): Output source file differences and
2919         flags on optimization/target node mismatch.
2920         (can_inline_edge_p): Consider caller to be the outer inline function;
2921         be less restrictive about matching opimize and optimize_size attributes.
2922         (inline_account_function_p): Break out from ...
2923         (inline_small_functions): ... here.
2924         * ipa-inline-transform.c (clone_inlined_nodes): Use
2925         inline_account_function_p.
2926         (inline_call): Use optimize attribution; use inline_account_function_p.
2927         (inline_transform): Use opt_for_fn.
2928         * ipa-inline.h (inline_account_function_p): Declare.
2930 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
2932         PR debug/64663
2933         * dwarf2out.c (decl_piece_node): Don't put bitsize into
2934         mode if bitsize <= 0.
2935         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
2936         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
2937         sizes and positions.
2939 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
2941         * config/nios2/nios2.c (nios2_asm_file_end): Implement
2942         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
2943         needed.
2944         (TARGET_ASM_FILE_END): Define.
2946 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
2948         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
2949         (struct tune_params): Use the enum.
2950         * arm.c (arm_*_tune): Update.
2951         (arm_option_override): Update.
2953 2015-01-20  Richard Biener  <rguenther@suse.de>
2955         PR ipa/64684
2956         * ipa-reference.c (add_static_var): Inline ...
2957         (analyze_function): ... here after splitting out from ...
2958         (is_proper_for_analysis): ... this.
2960 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
2962         PR target/64149
2963         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
2964         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
2965         replace the conditional with it's true branch.
2966         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
2967         (arm_lra_p): Remove.
2969 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
2971         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
2973 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2975         * config/tilegx/mul-tables.c: Move symtab.h include after
2976         coretypes.h include.
2977         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
2978         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
2979         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
2980         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
2981         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
2983 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
2985         PR bootstrap/64676
2986         Revert:
2987         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
2989         PR rtl-optimization/64081
2990         * loop-iv.c (def_pred_latch_p): New function.
2991         (latch_dominating_def): Allow specific cases with non-single
2992         definitions.
2993         (iv_get_reaching_def): Likewise.
2994         (check_complex_exit_p): New function.
2995         (check_simple_exit): Use check_complex_exit_p to allow certain cases
2996         with exits not executing on any iteration.
2998 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
3000         PR lto/45375
3001         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
3002         to set branch cost.
3004 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
3006         PR lto/45375
3007         * i386.c (gate): Check flag_expensive_optimizations and
3008         optimize_size.
3009         (ix86_option_override_internal): Drop optimize_size condition
3010         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
3011         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
3012         MASK_PREFER_AVX128.
3013         (ix86_avx256_split_vector_move_misalign,
3014         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
3015         * sse.md (all uses of TARGET_PREFER_AVX128): Add
3016         optimize_insn_for_speed_p check.
3018 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
3020         * config/mips/mips.h (FP_ASM_SPEC): New define.
3021         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
3022         instead.
3024 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
3026         PR target/53988
3027         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
3028         nullptr for insn when reaching the first insn.
3029         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
3030         (sh_insn_operands_modified_between_p): Add nullptr check.
3031         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
3032         sign extending mem load if the insn contains any UNSPEC or
3033         UNSPEC_VOLATILE.
3035 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
3037         * params.def (inline-unit-growth): Drop to 15%.
3038         * invoke.texi (inline-unit-growth): Document change.
3040 2015-01-19  Martin Liska  <mliska@suse.cz>
3042         PR ipa/64668
3043         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
3044         function for second argument of OBJ_TYPE_REF.
3046 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
3048         PR ipa/64218
3049         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
3050         whether function is an alias.
3052 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
3054         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
3055         cases.
3057 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
3059         PR rtl-optimization/64671
3060         * lra-remat.c (operand_to_remat): Don't consider jump and call
3061         insns.
3063 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
3065         * config/rs6000/default64.h: Include rs6000-cpus.def.
3066         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
3067         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
3068         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
3069         and POWER8.
3070         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
3071         POWER8.
3072         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
3073         pseudo-op to specify assembler dialect.
3075 2015-01-19  Martin Liska  <mliska@suse.cz>
3077         PR ipa/64664
3078         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
3079         Handle safe potentially removed nodes during filtering.
3081 2015-01-19  Martin Liska  <mliska@suse.cz>
3083         * doc/extend.texi (no_icf): Add new attribute description.
3084         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
3085         where the pass attempts to merge a function with no_icf attribute.
3087 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3089         PR target/64532
3090         * doc/md.texi (ARM Options): Document register constraints.
3092 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
3093             Andrew Pinski  <apinski@cavium.com>
3095         PR target/64304
3096         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
3097         (ashl<mode>3): Don't expand if operands[2] is not constant.
3099 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3101         PR target/64448
3102         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
3103         Match xor-and-xor RTL pattern.
3105 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
3107         PR rtl-optimization/64081
3108         * loop-iv.c (def_pred_latch_p): New function.
3109         (latch_dominating_def): Allow specific cases with non-single
3110         definitions.
3111         (iv_get_reaching_def): Likewise.
3112         (check_complex_exit_p): New function.
3113         (check_simple_exit): Use check_complex_exit_p to allow certain cases
3114         with exits not executing on any iteration.
3116 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
3118         * common.opt (fgraphite): Fix a typo.
3120 2015-01-19  Felix Yang  <felix.yang@huawei.com>
3122         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
3123         pattern.
3124         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
3125         uminp, smax_nanp, smin_nanp): New builtins.
3126         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
3127         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
3128         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
3129         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
3130         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
3131         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
3132         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
3133         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
3134         vpminnms_f32): Rewrite using builtin functions.
3136 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
3138         PR libgomp/64625
3139         * omp-low.c (offload_symbol_decl): Remove variable.
3140         (get_offload_symbol_decl): Remove function.
3141         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
3142         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
3143         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
3144         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
3145         BUILT_IN_GOACC_UPDATE don't pass it at all.
3147 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
3149         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
3150         callers.
3152 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
3154         * ipa-chkp.c (chkp_produce_thunks): Add early param
3155         to split thunks production into two passes.  Keep
3156         'always_inline' function bodies after the first pass.
3157         (pass_data_ipa_chkp_early_produce_thunks): New.
3158         (pass_ipa_chkp_early_produce_thunks): New.
3159         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
3160         chkp_produce_thunks signature.
3161         (make_pass_ipa_chkp_early_produce_thunks): New.
3162         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
3163         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
3164         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
3166 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
3168         * cgraph.c (cgraph_node::dump): Dump profile flags.
3170 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
3172         PR target/64652
3173         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
3174         reg appear first in the parallel.
3176 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
3178         * ipa-reference.c (set_reference_optimization_summary,
3179         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
3180         disabled.
3181         (ignore_module_statics): New static var.
3182         (propagate_bits): If ipa-reference is disabled, do not look into local
3183         properties.
3184         (analyze_function): Disable analysis when ipa_reference is disabled.
3185         (generate_summary): Do not dump when reference is disabled;
3186         collect vars accessed from functions with ipa-reference disabled.
3187         (get_read_write_all_from_node): When ipa-reference is disabled, use the
3188         node flags.
3189         (gate): Enable for LTO.
3190         (ignore_edge_p): New function.
3191         (propagate): Skip functions w/o ipa-reference analysis.
3192         * optc-save-gen.awk: Handle optimize_debug correctly.
3193         * opth-gen.awk: Likewise.
3194         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
3195         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
3196         fira-share-save-slots, fira-share-spill-slots,
3197         fmodulo-sched-allow-regmoves, fpartial-inlining,
3198         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
3199         ftracer, ftree-parallelize-loops, fassociative-math,
3200         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
3201         Optimization
3202         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
3203         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
3204         Optimization.
3205         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
3206         Fix for IPA.
3208 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
3210         PR ipa/64378
3211         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
3212         flag correctly.
3213         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
3215 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
3217         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
3218         Remove duplicate option listings.
3220 2015-01-18  Felix Yang  <felix.yang@huawei.com>
3222         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
3223         (autofdo_source_profile::get_callsite_total_count,
3224         function_instance::get_function_instance_by_decl,
3225         string_table::get_index, string_table::get_index_by_decl,
3226         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
3227         Fix comment typos. Reformatting and minor code rearrangement.
3229 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
3231         * config/rs6000/rs6000.md (probe_stack): Delete.
3232         (probe_stack_address): New.
3234 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
3236         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
3237         to test for 32-bit ABIs, not !TARGET_POWERPC64.
3239 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
3241         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
3242         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
3243         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
3244         snafu.
3245         (rs6000_libcall_value): Use the new function.
3247 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
3249         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
3251 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
3253         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
3254         implement a more precise life analysis for it during backward scan.
3256 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
3258         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
3260 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
3262         PR rtl-optimization/52773
3263         * calls.c (emit_library_call_value): When pushing arguments use
3264         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
3265         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
3266         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
3268 2015-01-17  Jeff Law  <law@redhat.com>
3270         PR rtl-optimization/32790
3271         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
3272         not ZERO_EXTEND in SET_DESTs.
3274 2015-01-17  Alan Modra  <amodra@gmail.com>
3276         * cprop.c (do_local_cprop): Revert last change.
3278 2015-01-16  DJ Delorie  <dj@redhat.com>
3279             Nick Clifton  <nickc@redhat.com>
3281         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
3282         (addhi3_real): Likewise.  Fix [HL+0] syntax.
3283         (subqi3_real): Likewise.
3284         (subhi3_real): Likewise.
3285         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
3286         (cbranchhi4_real): Likewise.
3287         (cbranchhi4_real_inverted): Likewise.
3288         (cbranchsi4_real_lt): Likewise.
3289         (cbranchsi4_real_ge): Likewise.
3290         (cbranchsi4_real_ge): Likewise.
3291         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
3292         (sub<mode>3_virt): Likewise.
3293         (cbranchqi4_virt): Likewise.
3294         (cbranchhi4_virt): Likewise.
3295         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
3296         always use '[reg+imm]' even when imm is zero.
3297         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
3298         (rl78_general_operand): New.
3299         (rl78_nonimmediate_operand): New.
3300         (rl78_nonfar_operand): Use them.
3301         (rl78_nonfar_nonimm_operand): Likewise.
3302         (rl78_stack_based_mem): Fix.
3303         * config/rl78/constraints.md (Ibqi): New.
3304         (IBqi): New.
3305         (Wsa): New.
3306         (Wsf): New.
3307         (Cs1): Fix.
3308         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
3309         (iorqi3): Likewise.
3310         (xorqi3): Likewise.
3311         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
3313         * config/rl78/constrains (Qs8): New constraint.
3314         * config/rl78/rl78.c (rl78_flags_already_set): New function.
3315         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
3316         * config/rl78/rl78-real.md (update_Z): New attribute.
3317         Update patterns to set it.
3318         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
3319         shorter compare and branch sequence can be used.
3320         (cbranchhi4_real): Likewise.
3321         (cbranchhi4_real_inverted): Likewise.
3323         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
3324         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
3325         address space.
3326         * config/rl78/rl78.c (rl78_get_name_encoding): New.
3327         (rl78_option_override): Allow -mes0 only if C.
3328         (characterize_address): Support subregs of symbol_refs.
3329         (rl78_addr_space_address_mode): Move.  Add __near.
3330         (rl78_far_p): Likewise.
3331         (rl78_addr_space_pointer_mode): Likewise.
3332         (rl78_as_legitimate_address): Likewise.
3333         (rl78_addr_space_subset_p): Likewise.
3334         (rl78_addr_space_convert): Likewise.
3335         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
3336         symbols with -mes0.
3337         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
3338         addressing.
3339         (rl78_alloc_physical_registers_op1): Change logic to prefer
3340         symbol[BC] addressing.
3341         (frodata_section): New.
3342         (rl78_asm_init_sections): Initialize it.
3343         (rl78_select_section): Put __far readonly symbols in .frodata.
3344         (rl78_make_type_far): New.
3345         (rl78_insert_attributes): Force all readonly symbols to be
3346         __far when -mes0.
3347         (rl78_asm_out_integer): New.
3348         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
3349         * config/rl78/rl78.opt (-mes0): New.
3351         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
3352         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
3353         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
3354         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
3355         (rl78_saddr_p): New.
3356         (rl78_output_aligned_common): New.
3357         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
3358         (rl78_handle_saddr_attribute): New.
3359         (rl78_handle_naked_attribute): New.
3360         (rl78_attribute_table): Add saddr.
3361         (rl78_print_operand_1): Don't print '!' on saddr operands.
3362         (rl78_print_operand_1): Strip encodings.
3363         (rl78_sfr_p): New.
3364         (rl78_strip_name_encoding): New.
3365         (rl78_attrlist_to_encoding): New.
3366         (rl78_encode_section_info): New.
3367         (rl78_asm_init_sections): New.
3368         (rl78_select_section): New.
3369         (rl78_output_labelref): New.
3370         (rl78_output_aligned_common): New.
3371         (rl78_asm_out_integer): New.
3372         (rl78_asm_ctor_dtor): New.
3373         (rl78_asm_constructor): New.
3374         (rl78_asm_destructor): New.
3376         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
3377         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
3378         (transcode_memory_rtx): Update.
3379         (rl78_expand_epilogue): Use A_REG instead of 0.
3381 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
3383         * config/arm/arm-protos.h (struct tune_params): New field
3384         sched_autopref_queue_depth.
3385         * config/arm/arm.c (sched-int.h): Include header.
3386         (arm_first_cycle_multipass_dfa_lookahead_guard,)
3387         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
3388         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
3389         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
3390         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
3391         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
3392         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
3393         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
3394         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
3395         * config/arm/t-arm (arm.o): Update.
3396         * haifa-sched.c (update_insn_after_change): Update.
3397         (rank_for_schedule): Use auto-prefetcher model, if requested.
3398         (autopref_multipass_init): New static function.
3399         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
3400         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
3401         variable for debug dumps.
3402         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
3403         (autopref_multipass_dfa_lookahead_guard): New global function that
3404         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
3405         (init_h_i_d): Update.
3406         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
3407         * sched-int.h (enum autopref_multipass_data_status): New const enum.
3408         (autopref_multipass_data_): Structure for auto-prefetcher data.
3409         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
3410         (struct _haifa_insn_data:autopref_multipass_data): New field.
3411         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
3412         (autopref_multipass_dfa_lookahead_guard): Declare.
3414 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
3416         * rtlanal.c (get_base_term): Handle SCRATCH.
3418 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
3420         * config/aarch64/aarch64.c
3421         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
3422         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
3423         * config/arm/arm.c
3424         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
3425         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
3427 2015-01-17  Alan Modra  <amodra@gmail.com>
3429         * cprop.c (do_local_cprop): Disallow replacement of fixed
3430         hard registers.
3432 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3434         PR target/62066
3435         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
3436         early return 0.
3438 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3440         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
3441         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
3443 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3445         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
3446         * config/arm/thumb1.md: ... Here.
3448 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
3450         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
3451         TImode for TARGET_32BIT.
3453 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
3455         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
3456         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
3457         as ...
3458         (rs6000_abi_word_mode): New function.
3460 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
3462         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
3463         instead of UNITS_PER_WORD to describe the size of stack slots.
3465 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
3467         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
3468         as rs6000_promote_function_mode.  Move comment to there.
3469         (rs6000_promote_function_mode): New function.
3471 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
3473         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
3474         -mpowerpc64 is active.
3476 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
3478         PR middle-end/64353
3479         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
3480         virtuals on start.
3482 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
3484         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
3485         introduced in revision 219724.
3487 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3488             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3490         PR target/64263
3491         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
3492         destination is not a GP reg.
3493         (*movdi_aarch64): Likewise.
3495 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
3497         PR target/64623
3498         * config/rs6000/default64.h: Revert ISA change.
3500 2015-01-16  Richard Biener  <rguenther@suse.de>
3502         PR middle-end/64614
3503         * tree-ssa-uninit.c: Include tree-cfg.h.
3504         (MAX_SWITCH_CASES): New define.
3505         (convert_control_dep_chain_into_preds): Handle switch statements.
3506         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
3507         (normalize_one_pred_1): Do not split bit-manipulations.
3508         Record (x & CST).
3510 2015-01-16  Richard Biener  <rguenther@suse.de>
3512         PR tree-optimization/64568
3513         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
3514         complex load rewriting for TARGET_MEM_REFs.
3516 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
3518         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
3520 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
3522         PR target/64149
3523         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
3524         variable.
3525         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
3526         (aarch64_lra_p): Remove.
3528 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
3530         PR target/64363
3531         * ipa-chkp.h (chkp_instrumentable_p): New.
3532         * ipa-chkp.c: Include tree-inline.h.
3533         (chkp_instrumentable_p): New.
3534         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
3535         Fix processing of not instrumentable functions.
3536         (chkp_versioning): Use chkp_instrumentable_p. Warn about
3537         not instrumentable functions.
3538         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
3539         chkp_instrumentable_p.
3540         * tree-inline.h (copy_forbidden): New.
3541         * tree-inline.c (copy_forbidden): Not static anymore.
3543 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3545         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
3546         ptr1, ptr2 unused.
3548 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
3550         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
3551         type OP_OUT to OP_INOUT.
3553 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
3555         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
3556         (high x) y) to y if x and y have the same base.
3558 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
3560         * config/arm/cortex-a57.md: New.
3561         * config/aarch64/aarch64.md: Include it.
3562         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
3563         * config/aarch64/aarch64-tune.md: Regenerate.
3565 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3567         PR target/64015
3568         * ccmp.c (expand_ccmp_next): New function.
3569         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
3570         and compare insn sequence.
3571         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
3572         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
3573         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
3574         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
3575         (*ccmp_ior): Changed to ccmp_ior<mode>.
3576         (cmp<mode>): New pattern.
3577         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
3578         parameters.
3579         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
3581 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
3583         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
3584         _mm256_bsrli_epi128): New.
3585         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
3587 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
3589         * expmed.c (store_bit_field_using_insv): Improve warning message.
3590         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
3592 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
3594         PR rtl-optimization/64011
3595         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
3596         there is partial overflow.
3598 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3600         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
3601         prototype.
3602         (nds32_expand_epilogue_v3pop): Likewise.
3603         * config/nds32/nds32.md (sibcall): Define this for sibling call
3604         optimization.
3605         (sibcall_register): Likewise.
3606         (sibcall_immediate): Likewise.
3607         (sibcall_value): Likewise.
3608         (sibcall_value_register): Likewise.
3609         (sibcall_value_immediate): Likewise.
3610         (sibcall_epilogue): Likewise.
3611         (epilogue): Pass false to indicate this is not a sibcall epilogue.
3612         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
3613         (nds32_expand_epilogue_v3pop): Likewise.
3615 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3617         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
3618         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
3619         (return_internal): New.
3620         (return): Define this named pattern.
3621         (simple_return): Define this named pattern.
3622         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
3623         pattern instead of unspec_volatile_func_return.
3624         (nds32_expand_epilogue_v3pop): Likewise.
3625         (nds32_can_use_return_insn): New function.
3627 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3629         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
3630         * config/nds32/nds32.md (pop25return): New.
3631         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
3632         pop25return pattern.
3634 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3636         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
3637         -mforbid-fp-as-gp, and -mex9 options.
3639 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3641         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
3642         remove -mgp-direct option.
3644 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
3646         * doc/invoke.texi (--param early-inlining-insns): Update default value.
3647         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
3649 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
3651         * ipa-inline.c (inline_small_functions): Work around hints
3652         cache issue.
3654 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
3656         PR target/59710
3657         * doc/invoke.texi (Option Summary): Document new Nios II
3658         -mgpopt= syntax.
3659         (Nios II Options): Likewise.
3660         * config/nios2/nios2.opt: Add -mgpopt= option support.
3661         Modify existing -mgpopt and -mno-gpopt options to be aliases.
3662         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
3663         * config/nios2/nios2.c (nios2_option_override): Adjust
3664         -mgpopt defaulting.
3665         (nios2_in_small_data_p): Return true for explicit small data
3666         sections even with -G0.
3667         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
3668         option choices.
3670 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
3672         PR ipa/64612
3673         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
3674         of comdat locals.
3675         (inline_call): Fix removal of aliases.
3677 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
3679         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
3680         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
3681         * opts.c (common_handle_option): Add -fsanitize=vptr.
3682         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
3683         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
3684         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
3685         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
3686         (ubsan_expand_vptr_ifn): New prototype.
3687         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
3688         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
3689         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
3690         expand_LOOP_VECTORIZED): Make argument nameless, remove
3691         ATTRIBUTE_UNUSED.
3692         (expand_UBSAN_VPTR): New function.
3693         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
3694         in fn spec.
3695         (UBSAN_VPTR): New internal function.
3696         * sanopt.c (tree_map_traits): Renamed to ...
3697         (sanopt_tree_map_traits): ... this.
3698         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
3699         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
3700         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
3701         (maybe_optimize_ubsan_vptr_ifn): New function.
3702         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
3703         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
3704         -fsanitize=vptr.
3705         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
3706         internal calls like pure functions for aliasing, even when they
3707         have other side-effects that prevent making them ECF_PURE.
3708         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
3709         (ubsan_expand_vptr_ifn): New function.
3711 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
3713         PR rtl-optimization/64110
3714         * stmt.c (parse_output_constraint): Process '^' and '$'.
3715         (parse_input_constraint): Ditto.
3716         * lra-constraints.c (process_alt_operands): Process the new
3717         constraints.
3718         * ira-costs.c (record_reg_classes): Process the new constraint
3719         '^'.
3720         * genoutput.c (indep_constraints): Add '^' and '$'.
3721         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
3722         * doc/md.texi: Add description of the new constraints.
3724 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
3725             Bernd Schmidt  <bernds@codesourcery.com>
3726             Cesar Philippidis  <cesar@codesourcery.com>
3727             James Norris  <jnorris@codesourcery.com>
3728             Tom de Vries  <tom@codesourcery.com>
3729             Ilmir Usmanov  <i.usmanov@samsung.com>
3730             Dmitry Bocharnikov  <dmitry.b@samsung.com>
3731             Evgeny Gavrin  <e.gavrin@samsung.com>
3732             Jakub Jelinek  <jakub@redhat.com>
3734         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
3735         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
3736         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
3737         New function types.
3738         * builtins.c: Include "gomp-constants.h".
3739         (expand_builtin_acc_on_device): New function.
3740         (expand_builtin, is_inexpensive_builtin): Handle
3741         BUILT_IN_ACC_ON_DEVICE.
3742         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
3743         New macros.
3744         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
3745         flag_openmp.
3746         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
3747         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
3748         i386/intelmic-offload.h.
3749         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
3750         to libgomp and its dependencies.
3751         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
3752         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
3753         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
3754         * config/ia64/hpux.h (LIB_SPEC): Likewise.
3755         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3756         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
3757         * doc/generic.texi: Update for OpenACC changes.
3758         * doc/gimple.texi: Likewise.
3759         * doc/invoke.texi: Likewise.
3760         * doc/sourcebuild.texi: Likewise.
3761         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
3762         GF_OMP_FOR_KIND_OACC_LOOP.
3763         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
3764         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
3765         GF_OMP_TARGET_KIND_OACC_UPDATE,
3766         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
3767         Dump more data.
3768         * gimple.c: Update comments for OpenACC changes.
3769         * gimple.def: Likewise.
3770         * gimple.h: Likewise.
3771         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
3772         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
3773         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
3774         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
3775         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
3776         appropriate place.
3777         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
3778         * gimplify.c: Include "gomp-constants.h".
3779         Update comments for OpenACC changes.
3780         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
3781         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
3782         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
3783         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
3784         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
3785         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
3786         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
3787         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
3788         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
3789         OMP_CLAUSE_SEQ.
3790         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
3791         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
3792         OMP_CLAUSE_SET_MAP_KIND.
3793         (gimplify_oacc_cache): New function.
3794         (gimplify_omp_for): Handle OACC_LOOP.
3795         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
3796         OACC_DATA.
3797         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
3798         OACC_EXIT_DATA, OACC_UPDATE.
3799         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
3800         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
3801         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
3802         (gimplify_body): Consider flag_openacc next to flag_openmp.
3803         * lto-streamer-out.c: Include "gomp-constants.h".
3804         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
3805         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
3806         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
3807         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
3808         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
3809         (BUILT_IN_ACC_ON_DEVICE): New builtins.
3810         * omp-low.c: Include "gomp-constants.h".
3811         Update comments for OpenACC changes.
3812         (struct omp_context): Add reduction_map, gwv_below, gwv_this
3813         members.
3814         (extract_omp_for_data, use_pointer_for_field, install_var_field)
3815         (new_omp_context, delete_omp_context, scan_sharing_clauses)
3816         (create_omp_child_function, scan_omp_for, scan_omp_target)
3817         (check_omp_nesting_restrictions, lower_reduction_clauses)
3818         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
3819         Update for OpenACC changes.
3820         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
3821         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
3822         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
3823         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
3824         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
3825         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
3826         OMP_CLAUSE_MAP_*.
3827         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
3828         Handle GF_OMP_FOR_KIND_OACC_LOOP.
3829         (expand_omp_target, lower_omp_target): Handle
3830         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
3831         GF_OMP_TARGET_KIND_OACC_UPDATE,
3832         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
3833         GF_OMP_TARGET_KIND_OACC_DATA.
3834         (pass_expand_omp::execute, execute_lower_omp)
3835         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
3836         flag_openmp.
3837         (offload_symbol_decl): New variable.
3838         (oacc_get_reduction_array_id, oacc_max_threads)
3839         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
3840         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
3841         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
3842         (oacc_gimple_assign, oacc_initialize_reduction_data)
3843         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
3844         functions.
3845         (is_targetreg_ctx): Remove function.
3846         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
3847         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
3848         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
3849         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
3850         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
3851         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
3852         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
3853         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
3854         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
3855         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
3856         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
3857         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
3858         * tree-core.h: Update comments for OpenACC changes.
3859         (enum omp_clause_map_kind): Remove.
3860         (struct tree_omp_clause): Change type of map_kind member from enum
3861         omp_clause_map_kind to unsigned char.
3862         * tree-inline.c: Update comments for OpenACC changes.
3863         * tree-nested.c: Likewise.  Include "gomp-constants.h".
3864         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
3865         (convert_tramp_reference_stmt, convert_gimple_call): Update for
3866         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
3867         OMP_CLAUSE_SET_MAP_KIND.
3868         * tree-pretty-print.c: Include "gomp-constants.h".
3869         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
3870         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
3871         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
3872         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
3873         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
3874         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
3875         instead of OMP_CLAUSE_MAP_*.
3876         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
3877         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
3878         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
3879         * tree-streamer-in.c: Include "gomp-constants.h".
3880         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
3881         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
3882         * tree-streamer-out.c: Include "gomp-constants.h".
3883         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
3884         OMP_CLAUSE_MAP_*.
3885         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
3886         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
3887         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
3888         * tree.c (omp_clause_num_ops): Update accordingly.
3889         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
3890         Likewise.
3891         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
3892         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
3893         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
3894         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
3895         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
3896         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
3897         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
3898         (OMP_CLAUSE_SET_MAP_KIND): New macro.
3899         * varpool.c (varpool_node::get_create): Consider flag_openacc next
3900         to flag_openmp.
3901         * config/i386/intelmic-offload.h: New file.
3902         * config/nvptx/offload.h: Likewise.
3904 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3906         * explow.h: Remove duplicate contents.
3907         * dojump.h: Likewise.
3909 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
3911         * arm.c (arm_xgene_tune): Add default initializer for instruction
3912         fusion.
3914 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
3916         PR ipa/64068
3917         PR ipa/64559
3918         * ipa.c (symbol_table::remove_unreachable_nodes):
3919         Do not put abstract origins into boundary.
3921 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
3923         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
3924         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
3926 2015-01-15  Steve Ellcey  <sellcey@mips.com>
3928         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
3929         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
3930         builtins.def, and chkp-builtins.def.
3932 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
3934         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
3935         ISA 2.7 (POWER8).
3937 2015-01-15  Richard Biener  <rguenther@suse.de>
3939         PR tree-optimization/61743
3940         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
3941         information on PHIs for some simple cases.
3943 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
3945         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
3946         Include xgene1.md.
3947         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
3948         * config/arm/arm-cores.def (xgene1): New entry.
3949         * config/arm/arm-tables.opt: Regenerate.
3950         * config/arm/arm-tune.md: Regenerate.
3951         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
3953 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
3955         * tree-if-conv.c: Include hash-map.h.
3956         (aggressive_if_conv): New variable.
3957         (fold_build_cond_expr): Add simplification of non-zero condition.
3958         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
3959         destination block is not always executed.
3960         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
3961         than two predecessors if AGGRESSIVE_IF_CONV is true.
3962         (if_convertible_stmt_p): Fix commentary.
3963         (all_preds_critical_p): New function.
3964         (has_pred_critical_p): New function.
3965         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
3966         BB can have more than two predecessors and all incoming edges can be
3967         critical.
3968         (predicate_bbs): Skip predication for loop exit block, use build2_loc
3969         to compute predicate for true edge.
3970         (find_phi_replacement_condition): Delete this function.
3971         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
3972         Allow interchange PHI arguments if EXTENDED is false.
3973         Change check that block containing reduction statement candidate
3974         is predecessor of phi-block since phi may have more than two arguments.
3975         (phi_args_hash_traits): New helper structure.
3976         (struct phi_args_hash_traits): New type.
3977         (phi_args_hash_traits::hash): New function.
3978         (phi_args_hash_traits::equal_keys): New function.
3979         (gen_phi_arg_condition): New function.
3980         (predicate_scalar_phi): Add handling of phi nodes with more than two
3981         arguments, delete COND and TRUE_BB arguments, insert body of
3982         find_phi_replacement_condition to predicate ordinary phi nodes.
3983         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
3984         delete call of find_phi_replacement_condition and invoke
3985         predicate_scalar_phi with two arguments.
3986         (insert_gimplified_predicates): Add assert that non-predicated block
3987         don't have statements to insert.
3988         (ifcvt_split_critical_edges): New function.
3989         (ifcvt_split_def_stmt): Likewise.
3990         (ifcvt_walk_pattern_tree): Likewise.
3991         (stmt_is_root_of_bool_pattern): Likewise.
3992         (ifcvt_repair_bool_pattern): Likewise.
3993         (ifcvt_local_dce): Likewise.
3994         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
3995         is copy of inner or outer loop force_vectorize field, invoke
3996         ifcvt_split_critical_edges, ifcvt_local_dce and
3997         ifcvt_repair_bool_pattern for aggressive if-conversion.
3999 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
4001         * config/aarch64/aarch64.md: Include xgene1.md.
4002         * config/aarch64/xgene1.md: New file.
4004 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
4006         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
4007         xgene1 (APM XGene-1) core definition.
4008         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
4009         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
4010         * doc/invoke.texi: Document -mcpu=xgene1.
4012 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4014         * dojump.h: New header file.
4015         * explow.h: Likewise.
4016         * expr.h: Remove includes.
4017         Move expmed.c prototypes to expmed.h.
4018         Move dojump.c prototypes to dojump.h.
4019         Move alias.c prototypes to alias.h.
4020         Move explow.c prototypes to explow.h.
4021         Move calls.c prototypes to calls.h.
4022         Move emit-rtl.c prototypes to emit-rtl.h.
4023         Move varasm.c prototypes to varasm.h.
4024         Move stmt.c prototypes to stmt.h.
4025         (saved_pending_stack_adjust): Move to dojump.h.
4026         (adjust_address): Move to explow.h.
4027         (adjust_address_nv): Move to emit-rtl.h.
4028         (adjust_bitfield_address): Likewise.
4029         (adjust_bitfield_address_size): Likewise.
4030         (adjust_bitfield_address_nv): Likewise.
4031         (adjust_automodify_address_nv): Likewise.
4032         * explow.c (expr_size): Move to expr.c.
4033         (int_expr_size): Likewise.
4034         (tree_expr_size): Likewise.
4035         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4036         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
4037         * genemit.c (main): Generate includes statistics.h, real.h,
4038         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
4039         stmt.h.
4040         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
4041         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
4042         explow.h, emit-rtl.h, stmt.h.
4043         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
4044         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
4045         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
4046         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
4047         emit-rtl.h, varasm.h, stmt.h.
4048         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
4049         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
4050         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
4051         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
4052         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
4053         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
4054         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
4055         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
4056         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
4057         tm.h tree.h varasm.h vec.h wide-int.h.
4058         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
4059         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
4060         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
4061         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
4062         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
4063         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
4064         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
4065         * loop-iv.c: Likewise.
4066         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
4067         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
4068         statistics.h stmt.h tree.h varasm.h wide-int.h.
4069         * lra-constraints.c: Likewise.
4070         * lra-eliminations.c: Likewise.
4071         * lra-lives.c: Likewise.
4072         * lra-remat.c: Likewise.
4073         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
4074         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
4075         statistics.h stmt.h tree.h varasm.h wide-int.h.
4076         * hw-doloop.c: Likewise.
4077         * ira-color.c: Likewise.
4078         * ira-emit.c: Likewise.
4079         * loop-doloop.c: Likewise.
4080         * loop-invariant.c: Likewise.
4081         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
4082         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
4083         statistics.h stmt.h tree.h varasm.h wide-int.h.
4084         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
4085         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
4086         statistics.h stmt.h tree.h varasm.h wide-int.h.
4087         * combine-stack-adj.c: Likewise.
4088         * cse.c: Likewise.
4089         * ddg.c: Likewise.
4090         * ifcvt.c: Likewise.
4091         * ira-costs.c: Likewise.
4092         * jump.c: Likewise.
4093         * lra-coalesce.c: Likewise.
4094         * lra-spills.c: Likewise.
4095         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
4096         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
4097         stmt.h varasm.h wide-int.h.
4098         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
4099         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
4100         varasm.h.
4101         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
4102         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
4103         statistics.h stmt.h varasm.h wide-int.h.
4104         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
4105         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
4106         varasm.h wide-int.h.
4107         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
4108         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
4109         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
4110         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
4111         statistics.h stmt.h.
4112         * config/tilepro/tilepro.c: Likewise.
4113         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
4114         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
4115         * config/pdp11/pdp11.c: Likewise.
4116         * config/xtensa/xtensa.c: Likewise.
4117         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
4118         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
4119         varasm.h.
4120         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4121         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
4122         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
4123         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4124         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
4125         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
4126         * rtl-chkp.c: Likewise.
4127         * tree-chkp-opt.c: Likewise.
4128         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
4129         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
4130         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
4131         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4132         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
4133         statistics.h stmt.h.
4134         * tree-vect-data-refs.c: Likewise.
4135         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
4136         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
4137         rtl.h statistics.h stmt.h varasm.h.
4138         * internal-fn.c: Likewise.
4139         * ipa-icf-gimple.c: Likewise.
4140         * lto-section-out.c: Likewise.
4141         * tree-data-ref.c: Likewise.
4142         * tree-nested.c: Likewise.
4143         * tree-outof-ssa.c: Likewise.
4144         * tree-predcom.c: Likewise.
4145         * tree-pretty-print.c: Likewise.
4146         * tree-scalar-evolution.c: Likewise.
4147         * tree-ssa-strlen.c: Likewise.
4148         * tree-vect-loop.c: Likewise.
4149         * tree-vect-patterns.c: Likewise.
4150         * tree-vect-slp.c: Likewise.
4151         * tree-vect-stmts.c: Likewise.
4152         * tsan.c: Likewise.
4153         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4154         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
4155         stmt.h.
4156         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
4157         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
4158         statistics.h stmt.h varasm.h.
4159         * loop-unroll.c: Likewise.
4160         * ubsan.c: Likewise.
4161         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
4162         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
4163         stmt.h varasm.h.
4164         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4165         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
4166         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
4167         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
4168         statistics.h stmt.h.
4169         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
4170         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
4171         statistics.h stmt.h varasm.h.
4172         * gimple-match-head.c: Likewise.
4173         * lto-cgraph.c: Likewise.
4174         * lto-section-in.c: Likewise.
4175         * lto-streamer-in.c: Likewise.
4176         * lto-streamer-out.c: Likewise.
4177         * tree-affine.c: Likewise.
4178         * tree-cfg.c: Likewise.
4179         * tree-cfgcleanup.c: Likewise.
4180         * tree-if-conv.c: Likewise.
4181         * tree-into-ssa.c: Likewise.
4182         * tree-ssa-alias.c: Likewise.
4183         * tree-ssa-copyrename.c: Likewise.
4184         * tree-ssa-dse.c: Likewise.
4185         * tree-ssa-forwprop.c: Likewise.
4186         * tree-ssa-live.c: Likewise.
4187         * tree-ssa-math-opts.c: Likewise.
4188         * tree-ssa-pre.c: Likewise.
4189         * tree-ssa-sccvn.c: Likewise.
4190         * tree-tailcall.c: Likewise.
4191         * tree-vect-generic.c: Likewise.
4192         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4193         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
4194         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4195         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
4196         * varasm.c: Likewise.
4197         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4198         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
4199         varasm.h.
4200         * init-regs.c: Likewise.
4201         * ira.c: Likewise.
4202         * omp-low.c: Likewise.
4203         * stack-ptr-mod.c: Likewise.
4204         * tree-ssa-reassoc.c: Likewise.
4205         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4206         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
4207         varasm.h.
4208         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4209         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
4210         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4211         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
4212         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4213         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
4214         * tree-ssa-phiopt.c: Likewise.
4215         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4216         fixed-value.h hashtab.h real.h statistics.h stmt.h.
4217         * config/fr30/fr30.c: Likewise.
4218         * config/frv/frv.c: Likewise.
4219         * expr.c: Likewise.
4220         * final.c: Likewise.
4221         * optabs.c: Likewise.
4222         * passes.c: Likewise.
4223         * simplify-rtx.c: Likewise.
4224         * stmt.c: Likewise.
4225         * toplev.c: Likewise.
4226         * var-tracking.c: Likewise.
4227         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4228         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
4229         * lower-subreg.c: Likewise.
4230         * postreload-gcse.c: Likewise.
4231         * ree.c: Likewise.
4232         * reginfo.c: Likewise.
4233         * store-motion.c: Likewise.
4234         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4235         fixed-value.h hashtab.h real.h stmt.h varasm.h.
4236         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4237         fixed-value.h hashtab.h statistics.h stmt.h.
4238         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4239         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
4240         * except.c: Likewise.
4241         * explow.c: Likewise.
4242         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4243         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
4244         varasm.h.
4245         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4246         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
4247         * tree-ssa-structalias.c: Likewise.
4248         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4249         fixed-value.h insn-config.h real.h statistics.h.
4250         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4251         fixed-value.h insn-config.h real.h statistics.h stmt.h.
4252         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4253         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
4254         * cfgbuild.c: Likewise.
4255         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4256         fixed-value.h real.h rtl.h statistics.h stmt.h.
4257         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4258         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
4259         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4260         fixed-value.h real.h statistics.h stmt.h.
4261         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
4262         fixed-value.h real.h statistics.h stmt.h varasm.h.
4263         * cprop.c: Likewise.
4264         * modulo-sched.c: Likewise.
4265         * postreload.c: Likewise.
4266         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
4267         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
4268         statistics.h stmt.h varasm.h.
4269         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
4270         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
4271         rtl.h statistics.h stmt.h varasm.h.
4272         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
4273         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
4274         varasm.h.
4275         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
4276         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
4277         varasm.h.
4278         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
4279         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
4280         varasm.h.
4281         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
4282         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
4283         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
4284         function.h real.h statistics.h stmt.h varasm.h.
4285         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
4286         insn-config.h real.h statistics.h stmt.h.
4287         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
4288         statistics.h stmt.h.
4289         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
4290         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
4291         statistics.h stmt.h varasm.h.
4292         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
4293         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
4294         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
4295         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
4296         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
4297         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
4298         statistics.h stmt.h varasm.h.
4299         * ipa-polymorphic-call.c: Likewise.
4300         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
4301         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
4302         statistics.h stmt.h.
4303         * config/c6x/c6x.c: Likewise.
4304         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
4305         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
4306         statistics.h stmt.h varasm.h.
4307         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
4308         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
4309         stmt.h varasm.h.
4310         * ipa-split.c: Likewise.
4311         * tree-eh.c: Likewise.
4312         * tree-ssa-dce.c: Likewise.
4313         * tree-ssa-loop-niter.c: Likewise.
4314         * tree-vrp.c: Likewise.
4315         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
4316         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
4317         stmt.h.
4318         * config/nds32/nds32-fp-as-gp.c: Likewise.
4319         * config/nds32/nds32-intrinsic.c: Likewise.
4320         * config/nds32/nds32-isr.c: Likewise.
4321         * config/nds32/nds32-md-auxiliary.c: Likewise.
4322         * config/nds32/nds32-memory-manipulation.c: Likewise.
4323         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4324         * config/nds32/nds32-predicates.c: Likewise.
4325         * config/nds32/nds32.c: Likewise.
4326         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
4327         fixed-value.h hashtab.h real.h statistics.h.
4328         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
4329         fixed-value.h hashtab.h real.h statistics.h stmt.h.
4330         * config/arm/arm.c: Likewise.
4331         * config/avr/avr.c: Likewise.
4332         * config/bfin/bfin.c: Likewise.
4333         * config/h8300/h8300.c: Likewise.
4334         * config/i386/i386.c: Likewise.
4335         * config/ia64/ia64.c: Likewise.
4336         * config/iq2000/iq2000.c: Likewise.
4337         * config/m32c/m32c.c: Likewise.
4338         * config/m32r/m32r.c: Likewise.
4339         * config/m68k/m68k.c: Likewise.
4340         * config/mcore/mcore.c: Likewise.
4341         * config/mep/mep.c: Likewise.
4342         * config/mips/mips.c: Likewise.
4343         * config/mn10300/mn10300.c: Likewise.
4344         * config/moxie/moxie.c: Likewise.
4345         * config/pa/pa.c: Likewise.
4346         * config/rl78/rl78.c: Likewise.
4347         * config/rx/rx.c: Likewise.
4348         * config/s390/s390.c: Likewise.
4349         * config/sh/sh.c: Likewise.
4350         * config/sparc/sparc.c: Likewise.
4351         * config/spu/spu.c: Likewise.
4352         * config/stormy16/stormy16.c: Likewise.
4353         * config/v850/v850.c: Likewise.
4354         * config/vax/vax.c: Likewise.
4355         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
4356         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
4357         * config/msp430/msp430.c: Likewise.
4358         * predict.c: Likewise.
4359         * value-prof.c: Likewise.
4360         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
4361         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
4362         * config/microblaze/microblaze.c: Likewise.
4363         * config/nios2/nios2.c: Likewise.
4364         * config/rs6000/rs6000.c: Likewise.
4365         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
4366         insn-config.h real.h rtl.h statistics.h stmt.h.
4367         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
4368         insn-config.h real.h statistics.h stmt.h.
4369         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
4370         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
4371         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
4372         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
4373         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
4374         fixed-value.h real.h statistics.h stmt.h.
4375         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
4376         fixed-value.h statistics.h stmt.h.
4377         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
4378         stmt.h.
4380 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
4382         * gengtype.c (create_user_defined_type): Workaround
4383         -Wmaybe-uninitialized false positives.
4384         * cse.c (fold_rtx): Likewise.
4385         * loop-invariant.c (gain_for_invariant): Likewise.
4387 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
4389         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
4390         set the memory attributes in all cases but clear MEM_EXPR if need be.
4392 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
4394         PR tree-optimization/64434
4395         * cfgexpand.c (reorder_operands): New function.
4396         (expand_gimple_basic_block): Insert call of reorder_operands if
4397         optimized is true.
4399 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
4401         * config/mips/micromips.md (*swp): Remove explicit parallel.
4402         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
4403         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
4404         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
4405         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
4406         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
4407         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
4408         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
4409         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
4410         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
4411         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
4412         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
4413         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
4414         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
4415         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
4416         (mips_wrdsp): Likewise.
4417         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
4418         parallel.
4419         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
4420         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
4421         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
4422         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
4423         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
4424         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
4425         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
4426         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
4427         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
4429 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
4431         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
4432         (mips_print_operand): Support 'y' to print exact log2 in decimal
4433         of a const_int.
4434         * config/mips/mips.h (ISA_HAS_LSA): New define.
4435         (ISA_HAS_DLSA): Likewise.
4436         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
4437         * config/mips/predicates.md (const_immlsa_operand): New predicate.
4439 2015-01-15  Martin Liska  <mliska@suse.cz>
4441         PR target/64377
4442         * optc-save-gen.awk: Add support for array types.
4444 2015-01-15  Richard Biener  <rguenther@suse.de>
4446         PR middle-end/64365
4447         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
4448         for MEM_REF access functions with the same base can never partially
4449         overlap.
4451 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
4453         * common.opt: New option -fstack-protector-explicit.
4454         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
4455         (stack_protect_decl_phase): Handle stack_protect attribute for
4456         explicit stack protection requests.
4457         (expand_used_vars): Similarly.
4458         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
4459         * doc/extend.texi: Add documentation for "stack_protect" attribute.
4460         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
4462 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
4464         PR target/53988
4465         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
4466         reg-reg copies.
4467         (sh_extending_set_of_reg): New struct.
4468         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
4469         sh_remove_reg_dead_or_unused_notes): New Declarations.
4470         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
4471         sh_find_extending_set_of_reg, sh_split_tst_subregs,
4472         sh_extending_set_of_reg::use_as_extended_reg): New functions.
4473         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
4474         convert to insn_and_split and use new function sh_split_tst_subregs.
4476 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
4478         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
4479         option.
4480         (Optimization Options): Move -fuse-ld documentation to...
4481         (Link Options): ...here.
4483 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
4485         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
4486         offsets.
4487         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
4488         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
4489         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
4490         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
4491         instead of ZR for the memory operand of LL/SC.
4492         (compare_and_swap_12, sync_add<mode>): Likewise.
4493         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
4494         (sync_new_<optab>_12, sync_nand_12): Likewise.
4495         (sync_old_nand_12, sync_new_nand_12): Likewise.
4496         (sync_sub<mode>, sync_old_add<mode>): Likewise.
4497         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
4498         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
4499         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
4500         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
4501         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
4502         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
4503         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
4504         * doc/md.texi (ZC): Update description.
4506 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
4508         * builtins.c (expand_builtin_atomic_exchange): Remove error when
4509         memory model is CONSUME.
4510         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
4511         expand_builtin_atomic_store): Change invalid memory model errors to
4512         warnings.
4513         (expand_builtin_atomic_clear): Change invalid model errors to warnings
4514         and issue warning for CONSUME.
4516 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
4518         * lto-cgraph: Update function comments for
4519         lto_symtab_encoder_encode_*.
4521 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
4523         * Makefile.in (site.exp): Do not set ENABLE_LTO.
4525 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
4527         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
4528         * lto-cgraph.c (select_what_to_stream): Remove argument, use
4529         lto_stream_offload_p instead.
4530         * lto-streamer.h (select_what_to_stream): Remove argument.
4531         * passes.c (ipa_write_summaries): Likewise.
4532         * tree-pass.h (ipa_write_summaries): Likewise.
4534 2015-01-14  Richard Biener  <rguenther@suse.de>
4536         PR tree-optimization/59354
4537         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
4538         groups larger than the slp group size as having gaps.
4540 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
4542         PR middle-end/59448
4543         * builtins.c (get_memmodel): Promote consume to acquire always.
4545 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
4547         PR target/64386
4548         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
4549         V32HImode.
4551 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
4553         PR target/64393
4554         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
4555         Enable AVX512BW.
4556         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
4557         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
4558         AVX512VBMI, as it implies AVX512BW.
4560 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
4562         PR target/64387
4563         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
4564         (vec_unpacks_hi_v16sf): Ditto.
4566 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4568         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
4569         is not available.
4571 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4573         * doc/invoke.texi (mapcs): Mention deprecation.
4574         (mapcs-frame): Likewise.
4576 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4578         PR target/64453
4579         * config/arm/arm.c (callee_saved_reg_p): Define.
4580         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
4581         register is callee saved instead of !call_used_regs[reg].
4582         (thumb1_compute_save_reg_mask): Likewise.
4584 2015-01-14  Hale Wang  <hale.wang@arm.com>
4586         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
4587         Cortex-M7.
4589 2015-01-14  Richard Biener  <rguenther@suse.de>
4591         PR lto/64415
4592         * tree-inline.c (insert_debug_decl_map): Check destination
4593         function MAY_HAVE_DEBUG_STMTS.
4594         (insert_init_debug_bind): Likewise.
4595         (insert_init_stmt): Remove redundant check.
4596         (remap_gimple_stmt): Drop debug stmts if the destination
4597         function has var-tracking assignments disabled.
4599 2015-01-14  Martin Liska  <mliska@suse.cz>
4601         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
4602         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
4604 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4606         PR target/64460
4607         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
4608         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
4610 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
4612         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
4613         level from an ARCH; do not inject the default.
4614         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
4615         MIPS_ISA_LEVEL_SPEC.
4616         (MIPS_ISA_NAN2008_SPEC): Update comment.
4617         (BASE_DRIVER_SELF_SPECS): Likewise.
4618         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
4619         MIPS_DEFAULT_ISA_LEVEL_SPEC.
4620         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
4621         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
4622         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
4624 2015-01-14  Richard Biener  <rguenther@suse.de>
4626         PR tree-optimization/64493
4627         PR tree-optimization/64495
4628         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
4629         assign the proper vectorized PHI to the inner loop exit PHIs.
4631 2015-01-14  Joey Ye  <joey.ye@arm.com>
4633         * config/arm/arm.c (arm_compute_save_reg_mask):
4634         Do not save lr in case of tail call.
4635         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
4637 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
4639         * tree-vrp.c (check_array_ref): Emit more warnings
4640         for warn_array_bounds >= 2.
4641         * common.opt: New option -Warray-bounds=.
4642         * doc/invoke.texi: Document -Warray-bounds=.
4644 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
4646         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
4647         (mforbid-fp-as-gp): Remove.
4648         (mex9): Remove.
4649         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
4650         (nds32_symbol_load_store_p): Remove.
4651         (nds32_fp_as_gp_check_available): Clean up implementation.
4652         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
4653         cases.
4654         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
4655         fp-as-gp and ex9 cases.
4657 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
4659         * tree-profile.c (init_ic_make_global_vars): Drop workaround
4660         for bintuils bug 14342.
4661         (init_ic_make_global_vars): Likewise.
4662         (gimple_init_edge_profiler): Likewise.
4663         (gimple_gen_ic_func_profiler): Likewise.
4665 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4667         * ipa-inline.c (inline_small_functions): Swap the operands in
4668         enum.
4670 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
4672         PR ipa/64481
4673         * ipa-inline-analysis.c (node_growth_cache): Remove.
4674         (initialize_growth_caches): Do not initialize it.
4675         (free_growth_caches): Do not free it.
4676         (do_estimate_growth): Rename to ...
4677         (estimate_growth): ... this one; drop growth cache code.
4678         (growth_likely_positive): Always go the heuristics way.
4679         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
4680         (reset_edge_caches): Do not reset node growth.
4681         (heap_edge_removal_hook): Do not maintain cache.
4682         (inline_small_functions): Likewise; strenghten sanity check.
4683         (ipa_inline): Do not maintain caches.
4684         * ipa-inline.h (node_growth_cache): Remove.
4685         (do_estimate_growth): Remove to ...
4686         (estimate_growth): this one; remove inline version.
4687         (reset_node_growth_cache): Remove.
4689 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
4691         PR ipa/64565
4692         * ipa-inline.c (inline_small_functions): Update callee keys after
4693         resolving speculation
4694         (inline_small_functions): Always check monotonicity of the queue.
4696 2015-01-13  Marek Polacek  <polacek@redhat.com>
4698         PR middle-end/64391
4699         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
4701 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
4703         PR rtl-optimization/64286
4704         * ree.c (combine_reaching_defs): Move part of comment earlier,
4705         remove !SCALAR_INT_MODE_P check.
4706         (add_removable_extension): Don't add vector mode
4707         extensions if all uses of the source register aren't the same
4708         vector extensions.
4710 2015-01-13  Renlin Li  <renlin.li@arm.com>
4712         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
4713         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
4715 2015-01-13  Martin Liska  <mliska@suse.cz>
4717         * ipa-icf.c (sem_function::equals_private): Call new functions
4718         cl_target_option_print_diff and cl_optimization_print_diff.
4719         * optc-save-gen.awk (cl_target_option_print_diff): New function.
4720         (cl_optimization_print_diff): Likewise.
4721         * opth-gen.awk: Likewise.
4723 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4725         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
4726         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
4727         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
4728         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
4729         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
4730         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
4732 2015-01-13  Andrew Pinski   <apinski@cavium.com>
4734         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
4735         instead of src mode.
4737 2015-01-13  Richard Biener  <rguenther@suse.de>
4739         PR lto/64373
4740         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
4741         DECL_CONTEXT.
4743 2015-01-13  Andrew Pinski   <apinski@cavium.com>
4745         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
4746         volatile mems.
4747         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4749 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
4751         PR middle-end/63974
4752         * cfgexpand.c (expand_computed_goto): Don't call
4753         convert_memory_address here.
4755 2015-01-13  Richard Biener  <rguenther@suse.de>
4757         PR tree-optimization/64406
4758         * tree-loop-distibution.c (pass_loop_distribution::execute):
4759         Reset the SCEV hashtable if we distributed anything.
4761 2015-01-13  Richard Biener  <rguenther@suse.de>
4763         PR tree-optimization/64404
4764         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
4765         SLP types for CSEd loads.
4767 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4769         PR tree-optimization/64436
4770         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
4771         merge of two symbolic numbers for a bitwise OR to ...
4772         (perform_symbolic_merge): This. Also fix computation of the range and
4773         end of the symbolic number corresponding to the result of a bitwise OR.
4775 2015-01-13  Richard Biener  <rguenther@suse.de>
4777         PR tree-optimization/64568
4778         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
4779         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
4781 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4783         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
4784         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
4786 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4788         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
4789         target-specific symbol_ref flag.
4790         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
4791         resides in rodata section.
4792         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
4793         (nds32_encode_section_info): New function.
4795 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4797         * config/nds32/nds32.md (call): Use pseudo instruction bal which
4798         clobbers TA_REGNUM if large code model is specified.
4799         (call_register): Likewise.
4800         (call_immediate): Likewise.
4801         (call_value): Likewise.
4802         (call_value_register): Likewise.
4803         (call_value_immediate): Likewise.
4805 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4807         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
4808         (TARGET_CMODEL_MEDIUM): New macro.
4809         (TARGET_CMODEL_LARGE): New macro.
4810         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
4811         code model setting in assembly code.
4813 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4815         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
4816         Remove MASK_GP_DIRECT flag.
4817         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
4818         one of the multilib default options.
4819         * config/nds32/nds32.opt (mgp-direct): Remove.
4820         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
4821         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
4823 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
4825         * config/nds32/nds32.opt (mcmodel): Add new option.
4826         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
4827         to describe code model.
4829 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
4831         PR target/64479
4832         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
4834 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4836         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
4837         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
4838         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
4839         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
4840         __builtin_sh_set_fpscr.
4842 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
4844         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
4845         after a funtion name just to indicate it is a function.
4846         ([-fsanitize-undefined-trap-on-error]): Likewise.
4847         ([-fdbg-cnt=]): Likewise.
4848         ([-mmemcpy]): Likewise.
4849         ([-mflush-func]): Likewise.
4850         ([-msynci]): Likewise.
4852 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
4854         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
4855         example.
4857 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
4859         PR tree-optimization/64563
4860         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
4861         instead of != VR_VARYING.
4863         PR target/64513
4864         * config/i386/i386.c (ix86_expand_prologue): Add
4865         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
4867         PR tree-optimization/64454
4868         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
4869         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
4870         for signed or [0, op1 - 1] for unsigned modulo.
4871         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
4872         even if op1 does not satisfy integer_pow2p.
4874         PR other/64370
4875         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
4877 2015-01-12  Jeff Law  <law@redhat.com>
4879         PR target/64461
4880         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
4881         (trunchiqi2, truncsihi2): Similarly.
4883         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
4884         rather than calling F.
4886 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4888         * tsan.c (instrument_expr): Use force_gimple_operand.
4889         Use may_be_nonaddressable_p instead of is_gimple_addressable.
4891 2015-01-12  Richard Biener  <rguenther@suse.de>
4893         PR tree-optimization/64530
4894         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
4895         back dr1.
4897 2015-01-12  Richard Biener  <rguenther@suse.de>
4899         PR middle-end/64357
4900         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
4901         latches properly.
4903 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4905         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
4906         Cortex-A17 tuning parameters.
4907         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
4909 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4911         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
4912         * config/arm/arm.c (arm_macro_fusion_p): New function.
4913         (arm_macro_fusion_pair_p): Likewise.
4914         (TARGET_SCHED_MACRO_FUSION_P): Define.
4915         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
4916         (ARM_FUSE_NOTHING): Likewise.
4917         (ARM_FUSE_MOVW_MOVT): Likewise.
4918         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
4919         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
4920         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
4921         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
4922         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
4923         arm_cortex_a5_tune): Specify fuseable_ops value.
4925 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
4927         PR bootstrap/64561
4928         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
4929         test for PIE with copy reloc.
4930         * configure: Regenerated.
4932 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4934         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
4935         in gen_rtx_REG.
4936         (arm_tls_descseq_addr): Likewise.
4937         (arm_gen_movmemqi): Likewise.
4938         (arm_expand_epilogue_apcs_frame): Likewise.
4939         (arm_expand_epilogue): Likewise.
4940         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
4941         in gen_rtx_REG.
4943 2015-01-12  Martin Liska  <mliska@suse.cz>
4945         PR ipa/64550
4946         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
4947         volatility for correct operands.
4949 2015-01-12  Martin Liska  <mliska@suse.cz>
4951         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
4952         that a function is not leaf.
4953         (sem_function::compare_polymorphic_p): Likewise.
4955 2015-01-12  Martin Liska  <mliska@suse.cz>
4957         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
4958         that a function is not leaf.
4959         (sem_function::compare_polymorphic_p): Likewise.
4961 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4963         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
4964         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
4965         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
4966         fold-const.h, tree-check.h.
4968 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
4970         PR ipa/63967
4971         PR ipa/64425
4972         * ipa-inline.c (compute_uninlined_call_time,
4973         compute_inlined_call_time): Use counts for extra precision when
4974         needed possible.
4975         (big_speedup_p): Fix formating.
4976         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
4977         (relative_time_benefit): Remove.
4978         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
4979         merge guessed and read profile paths.
4980         (inline_small_functions): Count only !optimize_size functions into
4981         initial size; be more lax about sanity check when profile is used;
4982         be sure to update inlined function profile when profile is read.
4984 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
4986         PR ipa/63470
4987         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
4988         cost when edge becomes direct.
4989         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
4990         is resolved or when introducing new speculation.
4992 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
4994         PR ipa/64551
4995         PR ipa/64552
4996         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
4997         '||' to fix typo issue.
4999         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
5000         accept and return NULL.
5002 2015-01-12  Martin Liska  <mliska@suse.cz>
5004         * cgraph.c (cgraph_edge::remove_callee): Move function to header
5005         file for being inlined.
5006         (cgraph_set_edge_callee): Delete.
5007         (cgraph_edge::redirect_callee): Move function to header file
5008         for being inlined.
5009         (cgraph_edge::make_direct): Use new function.
5010         (cgraph_edge::dump_edge_flags): New function created from
5011         static dump_edge_flags function.
5012         (cgraph_node::dump): Use new function.
5013         (cgraph_edge::verify_count_and_frequency): New function created
5014         from verify_edge_count_and_frequency.
5015         (cgraph_edge::verify_corresponds_to_fndecl): New function created
5016         from verify_edge_corresponds_to_fndecl.
5017         (verify_edge_corresponds_to_fndecl): Delete.
5018         (cgraph_node::verify_node): Use new function.
5019         * cgraph.h (cgraph_edge::set_callee): New function.
5020         (cgraph_edge::dump_edge_flags): Likewise.
5021         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
5023 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
5025         * ipa-utils.c (estimate_function_body_sizes): Do not
5026         free node params when called late with early=true.
5028 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
5030         * doc/md.texi (Instruction Patterns): Rewrite text for
5031         clarity.
5032         (Example): Likewise.
5034 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
5036         * doc/invoke.texi (Option Summary): Break long lines.
5037         [(-fdiagnostics-color)]: Put long literal in @smallexample
5038         instead of inline.
5039         [(-fsanitize-recover)]: Likewise.
5040         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
5041         [(-ffast-math)]: Likewise.
5042         [(--param max-inline-insns-recursive)]: Likewise.
5043         [(--param max-inline-recursive-depth)]: Likewise.
5044         [(-mno-text-section-literals)]: Likewise.
5046 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
5048         * doc/install.texi: Update for libgomp being renamed from "GNU
5049         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
5050         Runtime Library".
5051         * doc/sourcebuild.texi: Likewise.
5053 2015-01-10  Anthony Green  <green@moxielogic.com>
5055         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
5056         mul.x availability for moxiebox configuration.
5058 2015-01-09  Anthony Green  <green@moxielogic.com>
5060         * config/moxie/moxie.md: Tabify assembly output.
5062 2015-01-09  Anthony Green  <green@moxielogic.com>
5064         * config/moxie/moxie.md (CC_REG): Correct register definition.
5066 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
5068         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
5069         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
5070         of log files.
5072 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
5074         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
5076 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
5077             Jakub Jelinek  <jakub@redhat.com>
5079         PR middle-end/64412
5080         * lto-streamer.h (lto_stream_offload_p): New declaration.
5081         * lto-streamer.c (lto_stream_offload_p): New variable.
5082         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
5083         at the same time as section_name_prefix.
5084         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
5085         if lto_stream_offload_p.
5086         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
5087         stream TREE_TARGET_OPTION if lto_stream_offload_p.
5088         (write_ts_function_decl_tree_pointers): Don't
5089         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
5090         * tree-streamer-in.c (unpack_value_fields): Don't stream
5091         TREE_TARGET_OPTION in if ACCEL_COMPILER.
5092         (lto_input_ts_function_decl_tree_pointers): Don't stream
5093         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
5094         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
5095         instead of section_name_prefix string comparisons.
5097 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
5099         PR rtl-optimization/64536
5100         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
5101         tablejumps.
5103 2015-01-09  Michael Collison  <michael.collison@linaro.org>
5105         PR tree-optimization/64322
5106         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
5107         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
5109 2015-01-09  Tom de Vries  <tom@codesourcery.com>
5111         PR rtl-optimization/64539
5112         * regcprop.c (kill_clobbered_values): Factor out of ...
5113         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
5114         instead of note_stores with kill_clobbered_value.
5116 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
5118          * ginclude/unwind-arm-common.h: Revert previous commit.
5120 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
5122         * config.gcc (arm*-*-freebsd*): New configuration.
5123         * config/arm/freebsd.h: New file.
5124         * config.host: Add extra components for arm*-*-freebsd*.
5125         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
5126         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
5128 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5130         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
5131         for -mcpu=e6500.
5132         * config/rs6000/t-rtems: Add e6500 multilibs.
5134 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5136         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
5137         MPC8540.
5139 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5141         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
5142         MULTILIB_EXCEPTIONS.
5144 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5146         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
5147         MULTILIB_EXCEPTIONS.
5149 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5151         * config/arm/t-rtems-eabi: Rename to...
5152         * config/arm/t-rtems: ...this.
5153         * config/arm/rtems-eabi.h: Rename to...
5154         * config/arm/rtems.h: ...this.
5155         * config.gcc (arm*-*-rtems*): Reflect changes above.
5157 2015-01-09  Richard Biener  <rguenther@suse.de>
5159         PR tree-optimization/64410
5160         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
5161         on the LHS.
5162         (execute_update_addresses_taken): Deal with that.
5163         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
5164         loads/stores for complex variables.
5166 2015-01-09  Martin Liska  <mliska@suse.cz>
5168         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
5169         name comparison.
5170         (func_checker::compare_memory_operand): New function.
5171         (func_checker::compare_operand): Split case to newly
5172         added functions.
5173         (func_checker::compare_cst_or_decl): New function.
5174         (func_checker::compare_gimple_call): Identify
5175         memory operands.
5176         (func_checker::compare_gimple_assign): Likewise.
5177         * ipa-icf-gimple.h: New function.
5179 2015-01-09  Martin Liska  <mliska@suse.cz>
5181         PR ipa/64503
5182         * sreal.c (sreal::dump): Change unsigned format to signed for
5183         m_exp value.
5184         (sreal::to_double): Replace exp2 with scalbln.
5186 2015-01-09  Martin Liska  <mliska@suse.cz>
5188         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
5189         * ipa-icf.c (sem_function::equals_private): Add support for target and
5190         (sem_item_optimizer::merge_classes): Remove redundant function
5191         optimization flags comparison.
5192         * tree.h (target_opts_for_fn): New function.
5194 2015-01-09  Tom de Vries  <tom@codesourcery.com>
5196         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
5198 2015-01-09  Kito Cheng  <kito@0xlab.org>
5200         PR rtl-optimization/64348
5201         * lra-constraints.c (split_reg): Fix caller-save store/restore
5202         instruction generation.
5204 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
5206         PR gcov-profile/61790
5207         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
5208         long long.  Fallback to int64_t if host doesn't have long long and
5209         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
5211 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
5213         PR tree-optimization/63989
5214         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
5215         from 1000 to 10000.
5216         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
5217         (get_stridx): If we don't have a record for certain SSA_NAME,
5218         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
5219         constant offset, call get_stridx_plus_constant.
5220         (get_stridx_plus_constant): New function.
5221         (zero_length_string): Don't use get_stridx here.
5223         PR target/55023
5224         PR middle-end/64388
5225         * dse.c (struct insn_info): Mention frame_read set also
5226         before reload for tail calls on some targets.
5227         (scan_insn): Revert 2014-12-22 change.  Set frame_read
5228         also before reload for tail calls if
5229         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
5230         instead of add_non_frame_wild_read for non-const/memset
5231         tail calls after reload.
5233 2015-01-08  Jason Merrill  <jason@redhat.com>
5235         * ubsan.c (do_ubsan_in_current_function): New.
5236         (pass_ubsan::gate): Use it.
5237         * ubsan.h: Declare it.
5238         * convert.c (convert_to_integer): Use it.
5240 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
5242         PR target/64338
5243         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
5244         compare_code when it is unconditionally overwritten afterwards.
5245         Use ix86_reverse_condition instead of reverse_condition.  Don't
5246         change code if *reverse_condition* returned UNKNOWN and don't
5247         swap ct/cf and negate diff in that case.
5249 2015-01-08  Mike Stump  <mikestump@comcast.net>
5251         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
5252         (pass_tsan_O0::gate): Likewise.
5253         * extend.texi (Function Attributes): Add no_sanitize_thread
5254         documentation.
5256 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
5258         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
5259         for registering builtins.
5260         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
5261         add -fopenmp to the argv_obstack used when invoking
5262         compile_for_target.
5264         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
5265         add "-m32" or "-m64" to argv_obstack.
5266         (generate_host_descr_file): Likewise, when invoking host_compiler.
5267         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
5268         ld.
5270 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
5272         * config/sh/sh-mem.cc: Use constant as second operand when emitting
5273         tstsi_t insns.
5275 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
5277         PR target/55212
5278         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
5279         constant load if constant operand fits into I08.
5281 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
5283         PR sanitizer/64336
5284         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
5285         and TREE_THIS_VOLATILE for MEM_REFs.
5286         (build5_stat): Fix up initialization of TREE_READONLY and
5287         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
5289 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5291         PR target/64533
5292         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
5293         of r for the second alternative of the destination operand.
5295 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
5297         PR target/36557
5298         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
5300 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
5302         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
5303         keywords.
5304         ([-fivar-visibility], [-fvisibility]): Likewise.
5306 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
5308         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
5309         the file where @code, @command, etc is more appropriate.
5311 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
5313         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
5314         of -mrecip= documentation.
5316 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5318         PR target/64505
5319         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
5320         correct reload handler if -m32 -mpowerpc64 is used.
5322 2015-01-06  Tom de Vries  <tom@codesourcery.com>
5324         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
5326 2015-01-08  Christian Bruel  <christian.bruel@st.com>
5328         PR target/64507
5329         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
5331 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5333         PR tree-optimization/63259
5334         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
5335         if optab exists for 16bit byteswap.
5337 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
5339         * opts.c (common_handle_option): Add support for
5340         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
5341         * doc/invoke.texi: Document -fno-sanitize=all,
5342         -f{,no-}sanitize-recover=all.  Document that
5343         -fsanitize=float-cast-overflow is not enabled
5344         by -fsanitize=undefined.  Fix up documentation
5345         of -f{,no-}sanitize-recover.
5347 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
5349         * config.gcc: Add Visium support.
5350         * configure.ac: Likewise.
5351         * configure: Regenerate.
5352         * doc/extend.texi (interrupt attribute): Add Visium.
5353         * doc/invoke.texi: Document Visium options.
5354         * doc/install.texi: Document Visium target.
5355         * doc/md.texi: Document Visium constraints.
5356         * common/config/visium: New directory.
5357         * config/visium: Likewise.
5359 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
5361         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
5362         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
5364 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
5366         * combine.c (combine_validate_cost): Do not count the cost of a
5367         split I2 twice.  Do not display it twice in the dump, either.
5369 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
5371         Revert parts of r219199.
5372         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
5373         <inttypes.h>.
5374         ([-Wtraditional]): Restore markup on <limits.h>.
5376 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
5378         PR c++/31397
5379         * doc/invoke.texi: Document -Wsuggest-override.
5381 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
5383         PR rtl-optimization/64287
5384         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
5385         (process_options): Disable flag_ipa_ra if profiling.
5387 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5389         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
5391 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
5393         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
5394         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
5395         put under #if TARGET_LOOPS guard.
5397 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
5399         * config/i386/i386.c (output_387_binary_op): Use std::swap.
5401 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
5403         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
5404         * rtl.h (refers_to_regno_p): Add overload.
5405         * cse.c: Use it.
5406         * bt-load.c: Likewise.
5407         * combine.c: Likewise.
5408         * df-scan.c: Likewise.
5409         * sched-deps.c: Likewise.
5410         * config/s390/s390.c: Likewise.
5411         * config/m32r/m32r.c: Likewise.
5412         * config/rs6000/spe.md: Likewise.
5413         * config/rs6000/rs6000.c: Likewise.
5414         * config/pa/pa.c: Likewise.
5415         * config/stormy16/stormy16.c: Likewise.
5416         * config/cris/cris.c: Likewise.
5417         * config/arc/arc.md: Likewise.
5418         * config/arc/arc.c: Likewise.
5419         * config/sh/sh.md: Likewise.
5420         * config/sh/sh.c: Likewise.
5421         * config/frv/frv.c: Likewise.
5423 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
5425         PR sanitizer/64265
5426         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
5427         call as cleanup of the whole body.
5428         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
5429         * tsan.c (replace_func_exit): New function.
5430         (instrument_func_exit): Moved earlier.
5431         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
5432         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
5433         been found.
5434         (tsan_pass): Don't call instrument_func_exit.
5435         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
5436         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
5437         inlining.
5439         PR sanitizer/64344
5440         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
5441         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
5442         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
5443         if the result is integer_zerop, return NULL_TREE.
5444         * convert.c (convert_to_integer): Pass expr as ARG.
5446         PR tree-optimization/64465
5447         * tree-inline.c (redirect_all_calls): During inlining
5448         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
5449         changed the stmt to a non-throwing call.
5451 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
5453         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
5454         etc markup throughout the file.
5456 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5458         Enable experimental TSAN support for Ada.
5459         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
5461 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
5463         PR tree-optimization/64494
5464         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
5465         clear SSA_NAME_ANTI_RANGE_P flag.
5467 2015-01-05  Marek Polacek  <polacek@redhat.com>
5469         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
5471 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
5473         Update copyright years.
5475         * gcc.c (process_command): Update copyright notice dates.
5476         * gcov-dump.c: Ditto.
5477         * gcov.c: Ditto.
5478         * doc/cpp.texi: Bump @copying's copyright year.
5479         * doc/cppinternals.texi: Ditto.
5480         * doc/gcc.texi: Ditto.
5481         * doc/gccint.texi: Ditto.
5482         * doc/gcov.texi: Ditto.
5483         * doc/install.texi: Ditto.
5484         * doc/invoke.texi: Ditto.
5486         * auto-profile.c, auto-profile.h: Fix up Copyright line.
5488 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
5490         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
5491         verb tense, etc.
5492         ([-fvtable-verify], [-fvtv-debug]): Likewise.
5493         ([-Wabi]): Likewise.
5494         ([-fmessage-length]): Likewise.
5495         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
5496         ([-Wno-discarded-qualifiers]): Likewise.
5497         ([-Wnodiscarded-array-qualifiers]): Likewise.
5498         ([-Wno-virtual-move-assign]): Likewise.
5499         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
5500         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
5501         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
5502         ([-fsanitize-undefined-trap-on-error]): Likewise.
5503         ([-floop-interchange]): Likewise.
5504         ([-ftree-coalesce-inlined-vars]): Likewise.
5505         ([-fvect-cost-model]): Likewise.
5506         ([-flto]): Likewise.
5507         ([--param]): Likewise.
5508         (Spec Files): Likewise.
5509         ([-mstrict-align]): Likewise.
5510         ([-mfix-cortex-a53-835769]): Likewise.
5511         ([-march], [-mtune]): Likewise.
5512         ([-mpic-register]): Likewise.
5513         ([-munaligned-access]): Likewise.
5514         ([-msp8]): Likewise.
5515         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
5516         (AVR Built-in Macros): Likewise.
5517         ([-mpreferred-stack-boundary]): Likewise.
5518         ([-mtune-crtl]): Likewise.
5519         ([-mashf]): Likewise.
5520         ([-mmcu=]): Likewise.
5521         ([-minrt]): Likewise.
5522         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
5523         ([-mupper-regs]): Likewise.
5524         ([-matomic-model]): Likewise.
5525         ([-mdiv]): Likewise.
5526         ([-mzdcbranch]): Likewise.
5527         ([-mdisable-callt]): Likewise.
5528         ([-msoft-float]): Likewise.
5529         ([-m8byte-align]): Likewise.
5530         ([-fstack-reuse]): Likewise.
5532 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
5534         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
5535         Fix markup, light copy-editing.
5536         ([-fauto-profile]): Rewrite to fix formatting and content
5537         problems.
5539 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
5541         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
5542         Copy-edit description.
5543         ([-fisolate-erroneous-paths-attribute]): Likewise.
5544         * common.opt (fisolate-erroneous-paths-dereference):
5545         Copy-edit description.
5546         (fisolate-erroneous-paths-attribute): Likewise.
5548 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
5550         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
5551         tidy grammar.
5553 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
5555         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
5556         ([-fvtv-debug]): Likewise.
5557         ([-Wc++-compat]): Likewise.
5558         ([-Wc++11-compat]): Likewise.
5559         ([-Wc++14-compat]): Likewise.
5560         ([-Wno-sized-deallocation]): Likewise.
5561         ([-femit-class-debug-always]): Likewise.
5562         ([-femit-struct-debug-detailed]): Likewise.
5563         ([-fno-keep-inline-dllexport]): Likewise.
5564         ([-fira-algorithm]): Likewise.
5565         ([-fira-region]): Likewise.
5566         ([-flra-remat]): Likewise.
5567         ([-fipa-ra]): Likewise.
5568         ([-fhoist-adjacent-loads]): Likewise.
5569         ([-fisolate-erroneous-paths-dereference]): Likewise.
5570         ([-fisolate-erroneous-paths-attribute]): Likewise.
5571         ([-ftree-switch-conversion]): Likewise.
5572         ([-ftree-tail-merge]): Likewise.
5573         ([-ftree-loop-if-convert]): Likewise.
5574         ([-ftree-loop-if-convert-stores]): Likewise.
5575         ([-ftree-loop-distribution]): Likewise.
5576         ([-ftree-loop-distribute-patterns]): Likewise.
5577         ([-flto-compression-level]): Likewise.
5578         ([-flto-report]): Likewise.
5579         ([-flto-report-wpa]): Likewise.
5580         ([-fuse-linker-plugin]): Likewise.
5581         ([-mfix-cortex-a53-835769]): Likewise.
5582         ([-mno-fix-cortex-a53-835769]): Likewise.
5583         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
5584         explicit listing; add a note to the discussion indicating they
5585         exist.  Reorder table to group similar options.  Add missing
5586         @opindex entries.  Add @need commands throughout the table to
5587         allow it to be split across multiple pages.
5588         ([-m8bit-idiv]): Fix @opindex.
5589         ([-mavx256-split-unaligned-load]): Likewise.
5590         ([-mavx256-split-unaligned-store]): Likewise.
5591         ([-mstack-protector-guard]): Likewise.
5592         ([-mcpu=]): Likewise.
5593         ([-mcpu]): Likewise.
5594         ([-mpointer-size=]): Likewise.
5596 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
5598         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
5599         instead of `m' constraint.  Likewise for unnamed movb comparison
5600         patterns using reg_before_reload_operand predicate.
5601         * config/pa/predicates.md (reg_before_reload_operand): Tighten
5602         predicate to reject register index and LO_SUM DLT memory forms
5603         after reload.
5605 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
5607         * doc/invoke.texi (Option Summary): Fix spelling of
5608         -fdevirtualize-at-ltrans.
5609         ([-fdevirtualize]): Fix markup.
5610         ([-fdevirtualize-speculatively]): Fix typo.
5611         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
5612         implementor-speaky.
5613         * common.opt (fdevirtualize-at-ltrans): Likewise.
5614         * ipa-devirt.c: Fix typos in comments throughout the file.
5615         (ipa_devirt): Fix typos in format strings for dump output.
5617 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
5619         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
5620         discussion of defaults, light copy-editing.
5622 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5624         * tsan.c (instrument_expr): corrected previous checkin.
5626 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5628         Instrument bit field and unaligned accesses for TSAN.
5629         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
5630         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
5631         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
5632         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
5633         unaligned memory regions.
5635 2015-01-01  Anthony Green  <green@moxielogic.com>
5637         * config/moxie/predicates.md (moxie_general_movsrc_operand):
5638         Restrict move source register offsets to 16 bits.
5640 Copyright (C) 2015 Free Software Foundation, Inc.
5642 Copying and distribution of this file, with or without modification,
5643 are permitted in any medium without royalty provided the copyright
5644 notice and this notice are preserved.