Support new Intel processor model numbers
[official-gcc.git] / gcc / ChangeLog
blob47d6ac598b0da7f149c22cdd2b66ba787c61b6c2
1 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
3         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
4         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
5         * config/i386/i386.c (processor_model): Add
6         M_INTEL_COREI7_BROADWELL.
7         (arch_names_table): Add "broadwell".
9 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
11         PR target/49263
12         PR target/53987
13         PR target/64345
14         PR target/59533
15         PR target/52933
16         PR target/54236
17         PR target/51244
18         * config/sh/sh-protos.h
19         (sh_extending_set_of_reg::can_use_as_unextended_reg,
20         sh_extending_set_of_reg::use_as_unextended_reg,
21         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
22         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
23         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
24         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
25         (sh_treg_insns): New class.
26         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
27         (scope_counter): New class.
28         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
29         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30         sh_extending_set_of_reg::can_use_as_unextended_reg,
31         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
32         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
33         sh_split_treg_set_expr): New functions.
34         (addsubcosts): Handle treg_set_expr.
35         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
36         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
37         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
38         (sh_insn_operands_modified_between_p): Make non-static.
39         * config/sh/predicates.md (zero_extend_movu_operand): Allow
40         simple_mem_operand in addition to displacement_mem_operand.
41         (zero_extend_operand): Don't allow zero_extend_movu_operand.
42         (treg_set_expr, treg_set_expr_not_const01,
43         arith_reg_or_treg_set_expr): New predicates.
44         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
45         arith_or_int_operand instead of logical_operand.  Convert to
46         insn_and_split.  Try to optimize constant operand in splitter.
47         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
48         (*tstqi_t_zero): Delete.
49         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
50         (tstsi_t_and_not): Delete.
51         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
52         Convert to insn_and_split.
53         (unnamed split, tstsi_t_zero_extract_xor,
54         tstsi_t_zero_extract_subreg_xor_little,
55         tstsi_t_zero_extract_subreg_xor_big): Delete.
56         (*tstsi_t_shift_mask): New insn_and_split.
57         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
58         to recombine with surrounding insns when splitting.
59         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
60         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
61         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
62         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
63         (*cbranch_div0s: Delete.
64         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
65         Try to recombine with surrounding insns when splitting.  Add operand
66         order variants.
67         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
68         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
69         *addc_r_r_msb, *addc_2r_msb): Delete.
70         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
71         order variant.
72         (*addc_negreg_t): New insn_and_split.
73         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
74         Try to recombine with surrounding insns when splitting.
75         Add operand order variants.  
76         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
77         insn_and_split patterns.
78         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
79         surrounding insns when splitting.
80         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
81         (*rotcl): Likewise.  Add zero_extract variant.
82         (*ashrsi2_31): New insn_and_split.
83         (*negc): Convert to insn_and_split.  Use treg_set_expr.
84         (*zero_extend<mode>si2_disp_mem): Update comment.
85         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
86         condition.
87         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
88         with surrounding insns when splitting.
89         (any_treg_expr_to_reg): New insn_and_split.
90         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
91         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
92         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
93         *zero_extract_2): New single bit zero extract patterns.
94         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
95         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
96         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
97         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
98         set destination.
99         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
100         register_operand for set source.
102 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
104         * i386.opt (prefetch_sse): New targetsave.
105         * i386.c (ix86_function_specific_save): Save prefetch_sse.
106         (ix86_function_specific_restore): Restore prefetch_sse and initialize
107         ix86_cost/ix86_tune_cost.
109 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
111         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
112         Support the JIT by using 0 as the language type.
114 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
116         PR target/64317
117         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
118         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
119         (mark_regno_live, process_bb_lives): Pass new parameter value to
120         make_hard_regno_born.
122 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
124         PR rtl-optimization/63637
125         PR rtl-optimization/60663
126         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
127         if elt->cost is MAX_COST for ASM_OPERANDS.
128         (find_sets_in_insn): Fix up comment typo.
129         (cse_insn): Don't set src_volatile for all non-volatile
130         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
131         or with "memory" clobber.  Set elt->cost to MAX_COST
132         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
133         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
135 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
137         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
138         alternative 1.
140 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
142         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
143         libgcc/config/i386/elf-lib.h.
145 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
147         PR driver/64737
148         * gcc.c (print_configuration): Don't print a blank line at the end
149         here...
150         (run_attempt): ... but here unstead.
152         PR middle-end/64734
153         * omp-low.c (scan_sharing_clauses): Don't ignore
154         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
155         on target data/update constructs.
157 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
159         PR target/50928
160         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
161         (DEBUG_RELOAD): Removed define.
162         (m32c_limit_reload_class): Enable traces with if DEBUG0.
163         (m32c_function_arg): Added a type cast.
164         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
165         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
166         * config/m32c/bitops.md (andqi3_16): Likewise.
167         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
168         (push_a01_l): Likewise.
170 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
172         PR jit/64721
173         * main.c (main): Construct toplev instances with init_signals=true.
174         * toplev.c (general_init): Add param "init_signals", and use it to
175         conditionalize the calls to signal and host_hooks.extra_signals.
176         (toplev::toplev): Add param "init_signals".
177         (toplev::main): When invoking general_init, pass m_init_signals
178         to control whether signal-handlers are installed.
179         * toplev.h (toplev::toplev): Add param "init_signals".
180         (toplev::m_init_signals): New field.
182 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
184         PR jit/64722
185         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
186         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
187         latter may be affected by the former (e.g. on i686).
189 2015-01-23  Martin Liska  <mliska@suse.cz>
191         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
192         false positive during profiledbootstrap.
194 2015-01-23  Tom de Vries  <tom@codesourcery.com>
196         PR libgomp/64672
197         * lto-opts.c (lto_write_options): Output non-explicit conservative
198         -fno-openacc.
199         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
200         (append_compiler_options): Pass -fopenacc through.
202 2015-01-23  Tom de Vries  <tom@codesourcery.com>
204         PR libgomp/64707
205         * lto-opts.c (lto_write_options): Output non-explicit conservative
206         -fno-openmp.
207         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
208         (append_compiler_options): Pass -fopenmp through.
210 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
212         PR debug/64511
213         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
214         GTY markup.
216         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
217         * diagnostic.def (DK_ICE_NOBT): New kind.
218         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
219         like DK_ICE, but never print backtrace.
220         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
221         (internal_error_no_backtrace): New function.
222         * gcc.c (execute): Use internal_error_no_backtrace instead of
223         internal_error.
225 2015-01-22  Jeff Law  <law@redhat.com>
227         PR target/52076
228         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
229         improve code density for small immediate to memory case.
230         (insv): Better handle bitfield assignments when the field is
231         being set to all ones.
232         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
233         operand predicate.
235 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
236             Jakub Jelinek  <jakub@redhat.com>
238         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
239         for !TARGET_LIBC_PROVIDES_SSP version and
240         -fstack-protector-{all,strong,explicit} otherwise.
241         * config/freebsd.h (LINK_SSP_SPEC): Handle
242         -fstack-protector-{strong,explicit}.
244 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
245             H.J. Lu  <hongjiu.lu@intel.com>
247         PR ipa/64694
248         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
249         heap.
251 2015-01-22  Wei Mi  <wmi@google.com>
253         PR rtl-optimization/64557
254         * dse.c (record_store): Call get_addr for mem_addr.
255         (check_mem_read_rtx): Likewise.
257 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
259         * fold-const.c (const_binop): Add early return for non-tcc_binary.
261 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
263         * toplev.c (init_local_tick): Process the failure when read
264         fails for random_seed.
266         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
267         'pretty_name' to avoid memory overflow.
269 2015-01-22  Richard Biener  <rguenther@suse.de>
271         PR middle-end/64728
272         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
273         abnormal coalescing on undefined SSA names.
275 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
277         PR target/64688
278         PR target/64477
279         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
280         for alternative 3.
281         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
283 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
285         PR middle-end/63325
286         * fold-const.c (fold_checksum_tree): Don't include value of
287         expr->decl_with_vis.symtab_node in the checksum.
289 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
291         * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
292         "or".
294 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
296         PR driver/64690
297         * gcc.c (insert_comments): New function.
298         (try_generate_repro): Call it.
299         (append_text): Removed.
301 2015-01-22  Richard Biener  <rguenther@suse.de>
303         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
304         with IL incompatible options.  Properly honor user optimize
305         attributes.
307 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
309         PR rtl-optimization/64682
310         * combine.c (distribute_notes): When moving a death note for
311         a register that is set in the new I2, make sure to put it
312         before that new I2.
314 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
316         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
317         not TARGET_DEFAULT.
319 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
321         PR debug/64511
322         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
323         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
324         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
326         PR sanitizer/64706
327         * doc/invoke.texi (-fsanitize=vptr): Document.
329         PR rtl-optimization/62078
330         * dse.c: Include cfgcleanup.h.
331         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
332         anything call purge_all_dead_edges and cleanup_cfg at the end
333         of the pass.
335 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
337         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
338         edges.
340 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
342         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
343         decl attribute.
345 2015-01-21  David Sherwood  <david.sherwood@arm.com>
346             Tejas Belagod <Tejas.Belagod@arm.com>
348         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
349         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
350         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
351         Removed.
353 2015-01-21  David Sherwood  <david.sherwood@arm.com>
354             Tejas Belagod <Tejas.Belagod@arm.com>
356         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
357         (aarch64_reverse_mask): New decls.
358         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
359         (insn_count): New mode_attr.
360         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
361         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
362         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
363         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
364         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
365         (aarch64_simd_st4): New patterns.
366         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
367         (aarch64_reverse_mask): New functions.
369 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
371         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
372         Declare.
373         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
374         addressing modes for BE.
375         (aarch64_print_operand): Add 'R' specifier.
376         (aarch64_simd_disambiguate_copy): Delete.
377         (aarch64_simd_emit_reg_reg_move): New function.
378         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
379         in define_splits for structural moves.
380         (mov<mode>): Use less restrictive predicates.
381         (*aarch64_mov<mode>): Simplify and only allow for LE.
382         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
384 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
386         * rtlanal.c (subreg_get_info): Exit early for simple and common
387         cases.
389 2015-01-21  Richard Henderson  <rth@redhat.com>
391         PR target/64669
392         * ccmp.c (used_in_cond_stmt_p): Remove.
393         (expand_ccmp_expr): Don't use it.
395 2015-01-21  Nick Clifton  <nickc@redhat.com>
397         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
398         PARALLELs.
400 2015-01-21  Richard Biener  <rguenther@suse.de>
402         PR middle-end/64313
403         * tree-core.h (builtin_info, builtin_info_type): Turn from
404         an object with two arrays into an array of an object with
405         decl and two flags, implicit_p and declared_p.
406         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
407         set_builtin_decl, set_builtin_decl_implicit_p,
408         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
409         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
410         * builtins.c (builtin_info): Adjust.
411         * gimplify.c (gimplify_addr_expr): References to builtins
412         that have been declared by the user makes them eligible for
413         use by the compiler.  Call set_builtin_decl_implicit_p on them.
415 2015-01-20  Jeff Law  <law@redhat.com>
417         PR target/59946
418         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
419         allow pc-relative addresses in operand predicates or constraints.
421 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
423         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
424         neon on aarch32 processors for stringops.
426 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
428         PR ipa/63576
429         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
431 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
433         PR lto/45375
434         * ipa-inline.c: Include lto-streamer.h
435         (report_inline_failed_reason): Output source file differences and
436         flags on optimization/target node mismatch.
437         (can_inline_edge_p): Consider caller to be the outer inline function;
438         be less restrictive about matching opimize and optimize_size attributes.
439         (inline_account_function_p): Break out from ...
440         (inline_small_functions): ... here.
441         * ipa-inline-transform.c (clone_inlined_nodes): Use
442         inline_account_function_p.
443         (inline_call): Use optimize attribution; use inline_account_function_p.
444         (inline_transform): Use opt_for_fn.
445         * ipa-inline.h (inline_account_function_p): Declare.
447 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
449         PR debug/64663
450         * dwarf2out.c (decl_piece_node): Don't put bitsize into
451         mode if bitsize <= 0.
452         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
453         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
454         sizes and positions.
456 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
458         * config/nios2/nios2.c (nios2_asm_file_end): Implement
459         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
460         needed.
461         (TARGET_ASM_FILE_END): Define.
463 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
465         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
466         (struct tune_params): Use the enum.
467         * arm.c (arm_*_tune): Update.
468         (arm_option_override): Update.
470 2015-01-20  Richard Biener  <rguenther@suse.de>
472         PR ipa/64684
473         * ipa-reference.c (add_static_var): Inline ...
474         (analyze_function): ... here after splitting out from ...
475         (is_proper_for_analysis): ... this.
477 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
479         PR target/64149
480         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
481         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
482         replace the conditional with it's true branch.
483         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
484         (arm_lra_p): Remove.
486 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
488         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
490 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
492         * config/tilegx/mul-tables.c: Move symtab.h include after coretypes.h include.
493         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h, vec.h,
494         machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
495         double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
496         insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
498 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
500         PR bootstrap/64676
501         Revert:
502         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
504         PR rtl-optimization/64081
505         * loop-iv.c (def_pred_latch_p): New function.
506         (latch_dominating_def): Allow specific cases with non-single
507         definitions.
508         (iv_get_reaching_def): Likewise.
509         (check_complex_exit_p): New function.
510         (check_simple_exit): Use check_complex_exit_p to allow certain cases
511         with exits not executing on any iteration.
513 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
515         PR lto/45375
516         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
517         to set branch cost.
519 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
521         PR lto/45375
522         * i386.c (gate): Check flag_expensive_optimizations and
523         optimize_size.
524         (ix86_option_override_internal): Drop optimize_size condition
525         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
526         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
527         MASK_PREFER_AVX128.
528         (ix86_avx256_split_vector_move_misalign,
529         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
530         * sse.md (all uses of TARGET_PREFER_AVX128): Add
531         optimize_insn_for_speed_p check.
533 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
535         * config/mips/mips.h (FP_ASM_SPEC): New define.
536         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
537         instead.
539 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
541         PR target/53988
542         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
543         nullptr for insn when reaching the first insn.
544         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
545         (sh_insn_operands_modified_between_p): Add nullptr check.
546         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
547         sign extending mem load if the insn contains any UNSPEC or
548         UNSPEC_VOLATILE.
550 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
552         * params.def (inline-unit-growth): Drop to 15%.
553         * invoke.texi (inline-unit-growth): Document change.
555 2015-01-19  Martin Liska  <mliska@suse.cz>
557         PR ipa/64668
558         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
559         function for second argument of OBJ_TYPE_REF.
561 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
563         PR ipa/64218
564         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
565         whether function is an alias.
567 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
569         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
570         cases.
572 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
574         PR rtl-optimization/64671
575         * lra-remat.c (operand_to_remat): Don't consider jump and call
576         insns.
578 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
580         * config/rs6000/default64.h: Include rs6000-cpus.def.
581         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
582         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
583         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
584         and POWER8.
585         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
586         POWER8.
587         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
588         pseudo-op to specify assembler dialect.
590 2015-01-19  Martin Liska  <mliska@suse.cz>
592         PR ipa/64664
593         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
594         Handle safe potentially removed nodes during filtering.
596 2015-01-19  Martin Liska  <mliska@suse.cz>
598         * doc/extend.texi (no_icf): Add new attribute description.
599         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
600         where the pass attempts to merge a function with no_icf attribute.
602 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
604         PR target/64532
605         * doc/md.texi (ARM Options): Document register constraints.
607 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
608             Andrew Pinski  <apinski@cavium.com>
610         PR target/64304
611         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
612         (ashl<mode>3): Don't expand if operands[2] is not constant.
614 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
616         PR target/64448
617         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
618         Match xor-and-xor RTL pattern.
620 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
622         PR rtl-optimization/64081
623         * loop-iv.c (def_pred_latch_p): New function.
624         (latch_dominating_def): Allow specific cases with non-single
625         definitions.
626         (iv_get_reaching_def): Likewise.
627         (check_complex_exit_p): New function.
628         (check_simple_exit): Use check_complex_exit_p to allow certain cases
629         with exits not executing on any iteration.
631 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
633         * common.opt (fgraphite): Fix a typo.
635 2015-01-19  Felix Yang  <felix.yang@huawei.com>
637         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
638         pattern.
639         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
640         uminp, smax_nanp, smin_nanp): New builtins.
641         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
642         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
643         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
644         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
645         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
646         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
647         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
648         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
649         vpminnms_f32): Rewrite using builtin functions.
651 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
653         PR libgomp/64625
654         * omp-low.c (offload_symbol_decl): Remove variable.
655         (get_offload_symbol_decl): Remove function.
656         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
657         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
658         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
659         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
660         BUILT_IN_GOACC_UPDATE don't pass it at all.
662 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
664         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
665         callers.
667 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
669         * ipa-chkp.c (chkp_produce_thunks): Add early param
670         to split thunks production into two passes.  Keep
671         'always_inline' function bodies after the first pass.
672         (pass_data_ipa_chkp_early_produce_thunks): New.
673         (pass_ipa_chkp_early_produce_thunks): New.
674         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
675         chkp_produce_thunks signature.
676         (make_pass_ipa_chkp_early_produce_thunks): New.
677         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
678         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
679         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
681 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
683         * cgraph.c (cgraph_node::dump): Dump profile flags.
685 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
687         PR target/64652
688         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
689         reg appear first in the parallel.
691 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
693         * ipa-reference.c (set_reference_optimization_summary,
694         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
695         disabled.
696         (ignore_module_statics): New static var.
697         (propagate_bits): If ipa-reference is disabled, do not look into local
698         properties.
699         (analyze_function): Disable analysis when ipa_reference is disabled.
700         (generate_summary): Do not dump when reference is disabled;
701         collect vars accessed from functions with ipa-reference disabled.
702         (get_read_write_all_from_node): When ipa-reference is disabled, use the
703         node flags.
704         (gate): Enable for LTO.
705         (ignore_edge_p): New function.
706         (propagate): Skip functions w/o ipa-reference analysis.
707         * optc-save-gen.awk: Handle optimize_debug correctly.
708         * opth-gen.awk: Likewise.
709         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
710         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
711         fira-share-save-slots, fira-share-spill-slots,
712         fmodulo-sched-allow-regmoves, fpartial-inlining,
713         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
714         ftracer, ftree-parallelize-loops, fassociative-math,
715         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
716         Optimization
717         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
718         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
719         Optimization.
720         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
721         Fix for IPA.
723 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
725         PR ipa/64378
726         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
727         flag correctly.
728         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
730 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
732         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
733         Remove duplicate option listings.
735 2015-01-18  Felix Yang  <felix.yang@huawei.com>
737         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
738         (autofdo_source_profile::get_callsite_total_count,
739         function_instance::get_function_instance_by_decl,
740         string_table::get_index, string_table::get_index_by_decl,
741         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
742         Fix comment typos. Reformatting and minor code rearrangement.
744 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
746         * config/rs6000/rs6000.md (probe_stack): Delete.
747         (probe_stack_address): New.
749 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
751         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
752         to test for 32-bit ABIs, not !TARGET_POWERPC64.
754 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
756         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
757         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
758         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
759         snafu.
760         (rs6000_libcall_value): Use the new function.
762 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
764         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
766 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
768         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
769         implement a more precise life analysis for it during backward scan.
771 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
773         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
775 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
777         PR rtl-optimization/52773
778         * calls.c (emit_library_call_value): When pushing arguments use
779         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
780         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
781         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
783 2015-01-17  Jeff Law  <law@redhat.com>
785         PR rtl-optimization/32790
786         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
787         not ZERO_EXTEND in SET_DESTs.
789 2015-01-17  Alan Modra  <amodra@gmail.com>
791         * cprop.c (do_local_cprop): Revert last change.
793 2015-01-16  DJ Delorie  <dj@redhat.com>
794             Nick Clifton  <nickc@redhat.com>
796         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
797         (addhi3_real): Likewise.  Fix [HL+0] syntax.
798         (subqi3_real): Likewise.
799         (subhi3_real): Likewise.
800         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
801         (cbranchhi4_real): Likewise.
802         (cbranchhi4_real_inverted): Likewise.
803         (cbranchsi4_real_lt): Likewise.
804         (cbranchsi4_real_ge): Likewise.
805         (cbranchsi4_real_ge): Likewise.
806         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
807         (sub<mode>3_virt): Likewise.
808         (cbranchqi4_virt): Likewise.
809         (cbranchhi4_virt): Likewise.
810         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
811         always use '[reg+imm]' even when imm is zero.
812         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
813         (rl78_general_operand): New.
814         (rl78_nonimmediate_operand): New.
815         (rl78_nonfar_operand): Use them.
816         (rl78_nonfar_nonimm_operand): Likewise.
817         (rl78_stack_based_mem): Fix.
818         * config/rl78/constraints.md (Ibqi): New.
819         (IBqi): New.
820         (Wsa): New.
821         (Wsf): New.
822         (Cs1): Fix.
823         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
824         (iorqi3): Likewise.
825         (xorqi3): Likewise.
826         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
828         * config/rl78/constrains (Qs8): New constraint.
829         * config/rl78/rl78.c (rl78_flags_already_set): New function.
830         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
831         * config/rl78/rl78-real.md (update_Z): New attribute.
832         Update patterns to set it.
833         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
834         shorter compare and branch sequence can be used.
835         (cbranchhi4_real): Likewise.
836         (cbranchhi4_real_inverted): Likewise.
838         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
839         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
840         address space.
841         * config/rl78/rl78.c (rl78_get_name_encoding): New.
842         (rl78_option_override): Allow -mes0 only if C.
843         (characterize_address): Support subregs of symbol_refs.
844         (rl78_addr_space_address_mode): Move.  Add __near.
845         (rl78_far_p): Likewise.
846         (rl78_addr_space_pointer_mode): Likewise.
847         (rl78_as_legitimate_address): Likewise.
848         (rl78_addr_space_subset_p): Likewise.
849         (rl78_addr_space_convert): Likewise.
850         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
851         symbols with -mes0.
852         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
853         addressing.
854         (rl78_alloc_physical_registers_op1): Change logic to prefer
855         symbol[BC] addressing.
856         (frodata_section): New.
857         (rl78_asm_init_sections): Initialize it.
858         (rl78_select_section): Put __far readonly symbols in .frodata.
859         (rl78_make_type_far): New.
860         (rl78_insert_attributes): Force all readonly symbols to be __far when -mes0.
861         (rl78_asm_out_integer): New.
862         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
863         * config/rl78/rl78.opt (-mes0): New.
865         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
866         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
867         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
868         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
869         (rl78_saddr_p): New.
870         (rl78_output_aligned_common): New.
871         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
872         (rl78_handle_saddr_attribute): New.
873         (rl78_handle_naked_attribute): New.
874         (rl78_attribute_table): Add saddr.
875         (rl78_print_operand_1): Don't print '!' on saddr operands.
876         (rl78_print_operand_1): Strip encodings.
877         (rl78_sfr_p): New.
878         (rl78_strip_name_encoding): New.
879         (rl78_attrlist_to_encoding): New.
880         (rl78_encode_section_info): New.
881         (rl78_asm_init_sections): New.
882         (rl78_select_section): New.
883         (rl78_output_labelref): New.
884         (rl78_output_aligned_common): New.
885         (rl78_asm_out_integer): New.
886         (rl78_asm_ctor_dtor): New.
887         (rl78_asm_constructor): New.
888         (rl78_asm_destructor): New.
890         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
891         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
892         (transcode_memory_rtx): Update.
893         (rl78_expand_epilogue): Use A_REG instead of 0.
895 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
897         * config/arm/arm-protos.h (struct tune_params): New field
898         sched_autopref_queue_depth.
899         * config/arm/arm.c (sched-int.h): Include header.
900         (arm_first_cycle_multipass_dfa_lookahead_guard,)
901         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
902         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
903         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
904         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
905         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
906         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
907         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
908         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
909         * config/arm/t-arm (arm.o): Update.
910         * haifa-sched.c (update_insn_after_change): Update.
911         (rank_for_schedule): Use auto-prefetcher model, if requested.
912         (autopref_multipass_init): New static function.
913         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
914         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
915         variable for debug dumps.
916         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
917         (autopref_multipass_dfa_lookahead_guard): New global function that
918         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
919         (init_h_i_d): Update.
920         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
921         * sched-int.h (enum autopref_multipass_data_status): New const enum.
922         (autopref_multipass_data_): Structure for auto-prefetcher data.
923         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
924         (struct _haifa_insn_data:autopref_multipass_data): New field.
925         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
926         (autopref_multipass_dfa_lookahead_guard): Declare.
928 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
930         * rtlanal.c (get_base_term): Handle SCRATCH.
932 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
934         * config/aarch64/aarch64.c
935         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
936         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
937         * config/arm/arm.c
938         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
939         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
941 2015-01-17  Alan Modra  <amodra@gmail.com>
943         * cprop.c (do_local_cprop): Disallow replacement of fixed
944         hard registers.
946 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
948         PR target/62066
949         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
950         early return 0.
952 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
954         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
955         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
957 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
959         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
960         * config/arm/thumb1.md: ... Here.
962 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
964         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
965         TImode for TARGET_32BIT.
967 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
969         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
970         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
971         as ...
972         (rs6000_abi_word_mode): New function.
974 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
976         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
977         instead of UNITS_PER_WORD to describe the size of stack slots.
979 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
981         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
982         as rs6000_promote_function_mode.  Move comment to there.
983         (rs6000_promote_function_mode): New function.
985 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
987         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
988         -mpowerpc64 is active.
990 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
992         PR middle-end/64353
993         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
994         virtuals on start.
996 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
998         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
999         introduced in revision 219724.
1001 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1002             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1004         PR target/64263
1005         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
1006         destination is not a GP reg.
1007         (*movdi_aarch64): Likewise.
1009 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
1011         PR target/64623
1012         * config/rs6000/default64.h: Revert ISA change.
1014 2015-01-16  Richard Biener  <rguenther@suse.de>
1016         PR middle-end/64614
1017         * tree-ssa-uninit.c: Include tree-cfg.h.
1018         (MAX_SWITCH_CASES): New define.
1019         (convert_control_dep_chain_into_preds): Handle switch statements.
1020         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
1021         (normalize_one_pred_1): Do not split bit-manipulations.
1022         Record (x & CST).
1024 2015-01-16  Richard Biener  <rguenther@suse.de>
1026         PR tree-optimization/64568
1027         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
1028         complex load rewriting for TARGET_MEM_REFs.
1030 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
1032         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
1034 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
1036         PR target/64149
1037         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
1038         variable.
1039         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
1040         (aarch64_lra_p): Remove.
1042 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
1044         PR target/64363
1045         * ipa-chkp.h (chkp_instrumentable_p): New.
1046         * ipa-chkp.c: Include tree-inline.h.
1047         (chkp_instrumentable_p): New.
1048         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
1049         Fix processing of not instrumentable functions.
1050         (chkp_versioning): Use chkp_instrumentable_p. Warn about
1051         not instrumentable functions.
1052         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
1053         chkp_instrumentable_p.
1054         * tree-inline.h (copy_forbidden): New.
1055         * tree-inline.c (copy_forbidden): Not static anymore.
1057 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1059         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
1060         ptr1, ptr2 unused.
1062 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
1064         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
1065         type OP_OUT to OP_INOUT.
1067 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
1069         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
1070         (high x) y) to y if x and y have the same base.
1072 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
1074         * config/arm/cortex-a57.md: New.
1075         * config/aarch64/aarch64.md: Include it.
1076         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
1077         * config/aarch64/aarch64-tune.md: Regenerate.
1079 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1081         PR target/64015
1082         * ccmp.c (expand_ccmp_next): New function.
1083         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
1084         and compare insn sequence.
1085         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
1086         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
1087         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
1088         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
1089         (*ccmp_ior): Changed to ccmp_ior<mode>.
1090         (cmp<mode>): New pattern.
1091         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
1092         parameters.
1093         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
1095 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
1097         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
1098         _mm256_bsrli_epi128): New.
1099         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
1101 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
1103         * expmed.c (store_bit_field_using_insv): Improve warning message.
1104         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
1106 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
1108         PR rtl-optimization/64011
1109         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
1110         there is partial overflow.
1112 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
1114         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
1115         prototype.
1116         (nds32_expand_epilogue_v3pop): Likewise.
1117         * config/nds32/nds32.md (sibcall): Define this for sibling call
1118         optimization.
1119         (sibcall_register): Likewise.
1120         (sibcall_immediate): Likewise.
1121         (sibcall_value): Likewise.
1122         (sibcall_value_register): Likewise.
1123         (sibcall_value_immediate): Likewise.
1124         (sibcall_epilogue): Likewise.
1125         (epilogue): Pass false to indicate this is not a sibcall epilogue.
1126         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
1127         (nds32_expand_epilogue_v3pop): Likewise.
1129 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
1131         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
1132         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
1133         (return_internal): New.
1134         (return): Define this named pattern.
1135         (simple_return): Define this named pattern.
1136         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
1137         pattern instead of unspec_volatile_func_return.
1138         (nds32_expand_epilogue_v3pop): Likewise.
1139         (nds32_can_use_return_insn): New function.
1141 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
1143         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
1144         * config/nds32/nds32.md (pop25return): New.
1145         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
1146         pop25return pattern.
1148 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
1150         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
1151         -mforbid-fp-as-gp, and -mex9 options.
1153 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
1155         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
1156         remove -mgp-direct option.
1158 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1159         
1160         * doc/invoke.texi (--param early-inlining-insns): Update default value.
1161         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
1163 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1165         * ipa-inline.c (inline_small_functions): Work around hints
1166         cache issue.
1168 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
1170         PR target/59710
1171         * doc/invoke.texi (Option Summary): Document new Nios II
1172         -mgpopt= syntax.
1173         (Nios II Options): Likewise.
1174         * config/nios2/nios2.opt: Add -mgpopt= option support.
1175         Modify existing -mgpopt and -mno-gpopt options to be aliases.
1176         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
1177         * config/nios2/nios2.c (nios2_option_override): Adjust
1178         -mgpopt defaulting.
1179         (nios2_in_small_data_p): Return true for explicit small data
1180         sections even with -G0.
1181         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
1182         option choices.
1184 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1186         PR ipa/64612
1187         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
1188         of comdat locals.
1189         (inline_call): Fix removal of aliases.
1191 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
1193         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
1194         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
1195         * opts.c (common_handle_option): Add -fsanitize=vptr.
1196         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
1197         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
1198         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
1199         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
1200         (ubsan_expand_vptr_ifn): New prototype.
1201         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
1202         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
1203         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
1204         expand_LOOP_VECTORIZED): Make argument nameless, remove
1205         ATTRIBUTE_UNUSED.
1206         (expand_UBSAN_VPTR): New function.
1207         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
1208         in fn spec.
1209         (UBSAN_VPTR): New internal function.
1210         * sanopt.c (tree_map_traits): Renamed to ...
1211         (sanopt_tree_map_traits): ... this.
1212         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
1213         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
1214         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
1215         (maybe_optimize_ubsan_vptr_ifn): New function.
1216         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
1217         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
1218         -fsanitize=vptr.
1219         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
1220         internal calls like pure functions for aliasing, even when they
1221         have other side-effects that prevent making them ECF_PURE.
1222         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
1223         (ubsan_expand_vptr_ifn): New function.
1225 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
1227         PR rtl-optimization/64110
1228         * stmt.c (parse_output_constraint): Process '^' and '$'.
1229         (parse_input_constraint): Ditto.
1230         * lra-constraints.c (process_alt_operands): Process the new
1231         constraints.
1232         * ira-costs.c (record_reg_classes): Process the new constraint
1233         '^'.
1234         * genoutput.c (indep_constraints): Add '^' and '$'.
1235         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
1236         * doc/md.texi: Add description of the new constraints.
1238 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
1239             Bernd Schmidt  <bernds@codesourcery.com>
1240             Cesar Philippidis  <cesar@codesourcery.com>
1241             James Norris  <jnorris@codesourcery.com>
1242             Tom de Vries  <tom@codesourcery.com>
1243             Ilmir Usmanov  <i.usmanov@samsung.com>
1244             Dmitry Bocharnikov  <dmitry.b@samsung.com>
1245             Evgeny Gavrin  <e.gavrin@samsung.com>
1246             Jakub Jelinek  <jakub@redhat.com>
1248         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
1249         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
1250         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
1251         New function types.
1252         * builtins.c: Include "gomp-constants.h".
1253         (expand_builtin_acc_on_device): New function.
1254         (expand_builtin, is_inexpensive_builtin): Handle
1255         BUILT_IN_ACC_ON_DEVICE.
1256         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
1257         New macros.
1258         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
1259         flag_openmp.
1260         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
1261         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
1262         i386/intelmic-offload.h.
1263         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
1264         to libgomp and its dependencies.
1265         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
1266         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1267         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
1268         * config/ia64/hpux.h (LIB_SPEC): Likewise.
1269         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
1270         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
1271         * doc/generic.texi: Update for OpenACC changes.
1272         * doc/gimple.texi: Likewise.
1273         * doc/invoke.texi: Likewise.
1274         * doc/sourcebuild.texi: Likewise.
1275         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1276         GF_OMP_FOR_KIND_OACC_LOOP.
1277         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
1278         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
1279         GF_OMP_TARGET_KIND_OACC_UPDATE,
1280         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
1281         Dump more data.
1282         * gimple.c: Update comments for OpenACC changes.
1283         * gimple.def: Likewise.
1284         * gimple.h: Likewise.
1285         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
1286         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
1287         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
1288         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
1289         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
1290         appropriate place.
1291         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
1292         * gimplify.c: Include "gomp-constants.h".
1293         Update comments for OpenACC changes.
1294         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
1295         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
1296         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
1297         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1298         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
1299         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
1300         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
1301         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
1302         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1303         OMP_CLAUSE_SEQ.
1304         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
1305         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
1306         OMP_CLAUSE_SET_MAP_KIND.
1307         (gimplify_oacc_cache): New function.
1308         (gimplify_omp_for): Handle OACC_LOOP.
1309         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
1310         OACC_DATA.
1311         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
1312         OACC_EXIT_DATA, OACC_UPDATE.
1313         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
1314         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
1315         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
1316         (gimplify_body): Consider flag_openacc next to flag_openmp.
1317         * lto-streamer-out.c: Include "gomp-constants.h".
1318         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
1319         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
1320         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
1321         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
1322         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
1323         (BUILT_IN_ACC_ON_DEVICE): New builtins.
1324         * omp-low.c: Include "gomp-constants.h".
1325         Update comments for OpenACC changes.
1326         (struct omp_context): Add reduction_map, gwv_below, gwv_this
1327         members.
1328         (extract_omp_for_data, use_pointer_for_field, install_var_field)
1329         (new_omp_context, delete_omp_context, scan_sharing_clauses)
1330         (create_omp_child_function, scan_omp_for, scan_omp_target)
1331         (check_omp_nesting_restrictions, lower_reduction_clauses)
1332         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
1333         Update for OpenACC changes.
1334         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
1335         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
1336         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
1337         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
1338         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
1339         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
1340         OMP_CLAUSE_MAP_*.
1341         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1342         Handle GF_OMP_FOR_KIND_OACC_LOOP.
1343         (expand_omp_target, lower_omp_target): Handle
1344         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
1345         GF_OMP_TARGET_KIND_OACC_UPDATE,
1346         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
1347         GF_OMP_TARGET_KIND_OACC_DATA.
1348         (pass_expand_omp::execute, execute_lower_omp)
1349         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
1350         flag_openmp.
1351         (offload_symbol_decl): New variable.
1352         (oacc_get_reduction_array_id, oacc_max_threads)
1353         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
1354         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
1355         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
1356         (oacc_gimple_assign, oacc_initialize_reduction_data)
1357         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
1358         functions.
1359         (is_targetreg_ctx): Remove function.
1360         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
1361         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
1362         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
1363         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
1364         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
1365         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
1366         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
1367         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
1368         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
1369         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
1370         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
1371         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
1372         * tree-core.h: Update comments for OpenACC changes.
1373         (enum omp_clause_map_kind): Remove.
1374         (struct tree_omp_clause): Change type of map_kind member from enum
1375         omp_clause_map_kind to unsigned char.
1376         * tree-inline.c: Update comments for OpenACC changes.
1377         * tree-nested.c: Likewise.  Include "gomp-constants.h".
1378         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
1379         (convert_tramp_reference_stmt, convert_gimple_call): Update for
1380         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
1381         OMP_CLAUSE_SET_MAP_KIND.
1382         * tree-pretty-print.c: Include "gomp-constants.h".
1383         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
1384         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
1385         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
1386         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
1387         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
1388         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
1389         instead of OMP_CLAUSE_MAP_*.
1390         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
1391         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
1392         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
1393         * tree-streamer-in.c: Include "gomp-constants.h".
1394         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
1395         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
1396         * tree-streamer-out.c: Include "gomp-constants.h".
1397         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
1398         OMP_CLAUSE_MAP_*.
1399         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
1400         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
1401         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
1402         * tree.c (omp_clause_num_ops): Update accordingly.
1403         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
1404         Likewise.
1405         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
1406         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
1407         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
1408         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
1409         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
1410         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
1411         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
1412         (OMP_CLAUSE_SET_MAP_KIND): New macro.
1413         * varpool.c (varpool_node::get_create): Consider flag_openacc next
1414         to flag_openmp.
1415         * config/i386/intelmic-offload.h: New file.
1416         * config/nvptx/offload.h: Likewise.
1418 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1420         * explow.h: Remove duplicate contents.
1421         * dojump.h: Likewise.
1423 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
1425         * arm.c (arm_xgene_tune): Add default initializer for instruction
1426         fusion.
1428 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1430         PR ipa/64068
1431         PR ipa/64559
1432         * ipa.c (symbol_table::remove_unreachable_nodes):
1433         Do not put abstract origins into boundary.
1435 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
1437         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
1438         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
1440 2015-01-15  Steve Ellcey  <sellcey@mips.com>
1442         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
1443         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
1444         builtins.def, and chkp-builtins.def.
1446 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
1448         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
1449         ISA 2.7 (POWER8).
1451 2015-01-15  Richard Biener  <rguenther@suse.de>
1453         PR tree-optimization/61743
1454         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
1455         information on PHIs for some simple cases.
1457 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1459         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
1460         Include xgene1.md.
1461         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
1462         * config/arm/arm-cores.def (xgene1): New entry.
1463         * config/arm/arm-tables.opt: Regenerate.
1464         * config/arm/arm-tune.md: Regenerate.
1465         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
1467 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
1469         * tree-if-conv.c: Include hash-map.h.
1470         (aggressive_if_conv): New variable.
1471         (fold_build_cond_expr): Add simplification of non-zero condition.
1472         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
1473         destination block is not always executed.
1474         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
1475         than two predecessors if AGGRESSIVE_IF_CONV is true.
1476         (if_convertible_stmt_p): Fix commentary.
1477         (all_preds_critical_p): New function.
1478         (has_pred_critical_p): New function.
1479         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
1480         BB can have more than two predecessors and all incoming edges can be
1481         critical.
1482         (predicate_bbs): Skip predication for loop exit block, use build2_loc
1483         to compute predicate for true edge.
1484         (find_phi_replacement_condition): Delete this function.
1485         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
1486         Allow interchange PHI arguments if EXTENDED is false.
1487         Change check that block containing reduction statement candidate
1488         is predecessor of phi-block since phi may have more than two arguments.
1489         (phi_args_hash_traits): New helper structure.
1490         (struct phi_args_hash_traits): New type.
1491         (phi_args_hash_traits::hash): New function.
1492         (phi_args_hash_traits::equal_keys): New function.
1493         (gen_phi_arg_condition): New function.
1494         (predicate_scalar_phi): Add handling of phi nodes with more than two
1495         arguments, delete COND and TRUE_BB arguments, insert body of
1496         find_phi_replacement_condition to predicate ordinary phi nodes.
1497         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
1498         delete call of find_phi_replacement_condition and invoke
1499         predicate_scalar_phi with two arguments.
1500         (insert_gimplified_predicates): Add assert that non-predicated block
1501         don't have statements to insert.
1502         (ifcvt_split_critical_edges): New function.
1503         (ifcvt_split_def_stmt): Likewise.
1504         (ifcvt_walk_pattern_tree): Likewise.
1505         (stmt_is_root_of_bool_pattern): Likewise.
1506         (ifcvt_repair_bool_pattern): Likewise.
1507         (ifcvt_local_dce): Likewise.
1508         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
1509         is copy of inner or outer loop force_vectorize field, invoke
1510         ifcvt_split_critical_edges, ifcvt_local_dce and
1511         ifcvt_repair_bool_pattern for aggressive if-conversion.
1513 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
1515         * config/aarch64/aarch64.md: Include xgene1.md.
1516         * config/aarch64/xgene1.md: New file.
1518 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1520         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
1521         xgene1 (APM XGene-1) core definition.
1522         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
1523         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
1524         * doc/invoke.texi: Document -mcpu=xgene1.
1526 2015-10-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1528         * dojump.h: New header file.
1529         * explow.h: Likewise.
1530         * expr.h: Remove includes.
1531         Move expmed.c prototypes to expmed.h.
1532         Move dojump.c prototypes to dojump.h.
1533         Move alias.c prototypes to alias.h.
1534         Move explow.c prototypes to explow.h.
1535         Move calls.c prototypes to calls.h.
1536         Move emit-rtl.c prototypes to emit-rtl.h.
1537         Move varasm.c prototypes to varasm.h.
1538         Move stmt.c prototypes to stmt.h.
1539         (saved_pending_stack_adjust): Move to dojump.h.
1540         (adjust_address): Move to explow.h.
1541         (adjust_address_nv): Move to emit-rtl.h.
1542         (adjust_bitfield_address): Likewise.
1543         (adjust_bitfield_address_size): Likewise.
1544         (adjust_bitfield_address_nv): Likewise.
1545         (adjust_automodify_address_nv): Likewise.
1546         * explow.c (expr_size): Move to expr.c.
1547         (int_expr_size): Likewise.
1548         (tree_expr_size): Likewise.
1549         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1550         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
1551         * genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
1552         insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
1553         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
1554         statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
1555         stmt.h.
1556         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
1557         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
1558         * genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
1559         fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
1560         stmt.h.
1561         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
1562         machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
1563         double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
1564         insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
1565         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
1566         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
1567         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
1568         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
1569         tm.h tree.h varasm.h vec.h wide-int.h.
1570         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1571         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
1572         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
1573         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
1574         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1575         explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
1576         real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
1577         * loop-iv.c: Likewise.
1578         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1579         explow.h expmed.h fixed-value.h flags.h inchash.h real.h
1580         statistics.h stmt.h tree.h varasm.h wide-int.h.
1581         * lra-constraints.c: Likewise.
1582         * lra-eliminations.c: Likewise.
1583         * lra-lives.c: Likewise.
1584         * lra-remat.c: Likewise.
1585         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1586         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
1587         statistics.h stmt.h tree.h varasm.h wide-int.h.
1588         * hw-doloop.c: Likewise.
1589         * ira-color.c: Likewise.
1590         * ira-emit.c: Likewise.
1591         * loop-doloop.c: Likewise.
1592         * loop-invariant.c: Likewise.
1593         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1594         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
1595         statistics.h stmt.h tree.h varasm.h wide-int.h.
1596         * caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1597         explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
1598         stmt.h tree.h varasm.h wide-int.h.
1599         * combine-stack-adj.c: Likewise.
1600         * cse.c: Likewise.
1601         * ddg.c: Likewise.
1602         * ifcvt.c: Likewise.
1603         * ira-costs.c: Likewise.
1604         * jump.c: Likewise.
1605         * lra-coalesce.c: Likewise.
1606         * lra-spills.c: Likewise.
1607         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1608         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
1609         stmt.h varasm.h wide-int.h.
1610         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1611         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1612         varasm.h.
1613         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
1614         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
1615         statistics.h stmt.h varasm.h wide-int.h.
1616         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
1617         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
1618         varasm.h wide-int.h.
1619         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
1620         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1621         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
1622         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
1623         statistics.h stmt.h.
1624         * config/tilepro/tilepro.c: Likewise.
1625         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
1626         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
1627         * config/pdp11/pdp11.c: Likewise.
1628         * config/xtensa/xtensa.c: Likewise.
1629         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
1630         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1631         varasm.h.
1632         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1633         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1634         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
1635         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1636         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1637         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
1638         * rtl-chkp.c: Likewise.
1639         * tree-chkp-opt.c: Likewise.
1640         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
1641         expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1642         insn-config.h real.h statistics.h stmt.h varasm.h.
1643         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1644         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1645         statistics.h stmt.h.
1646         * tree-vect-data-refs.c: Likewise.
1647         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
1648         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1649         rtl.h statistics.h stmt.h varasm.h.
1650         * internal-fn.c: Likewise.
1651         * ipa-icf-gimple.c: Likewise.
1652         * lto-section-out.c: Likewise.
1653         * tree-data-ref.c: Likewise.
1654         * tree-nested.c: Likewise.
1655         * tree-outof-ssa.c: Likewise.
1656         * tree-predcom.c: Likewise.
1657         * tree-pretty-print.c: Likewise.
1658         * tree-scalar-evolution.c: Likewise.
1659         * tree-ssa-strlen.c: Likewise.
1660         * tree-vect-loop.c: Likewise.
1661         * tree-vect-patterns.c: Likewise.
1662         * tree-vect-slp.c: Likewise.
1663         * tree-vect-stmts.c: Likewise.
1664         * tsan.c: Likewise.
1665         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1666         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1667         stmt.h.
1668         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
1669         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1670         statistics.h stmt.h varasm.h.
1671         * loop-unroll.c: Likewise.
1672         * ubsan.c: Likewise.
1673         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
1674         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
1675         stmt.h varasm.h.
1676         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1677         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
1678         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
1679         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1680         statistics.h stmt.h.
1681         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
1682         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1683         statistics.h stmt.h varasm.h.
1684         * gimple-match-head.c: Likewise.
1685         * lto-cgraph.c: Likewise.
1686         * lto-section-in.c: Likewise.
1687         * lto-streamer-in.c: Likewise.
1688         * lto-streamer-out.c: Likewise.
1689         * tree-affine.c: Likewise.
1690         * tree-cfg.c: Likewise.
1691         * tree-cfgcleanup.c: Likewise.
1692         * tree-if-conv.c: Likewise.
1693         * tree-into-ssa.c: Likewise.
1694         * tree-ssa-alias.c: Likewise.
1695         * tree-ssa-copyrename.c: Likewise.
1696         * tree-ssa-dse.c: Likewise.
1697         * tree-ssa-forwprop.c: Likewise.
1698         * tree-ssa-live.c: Likewise.
1699         * tree-ssa-math-opts.c: Likewise.
1700         * tree-ssa-pre.c: Likewise.
1701         * tree-ssa-sccvn.c: Likewise.
1702         * tree-tailcall.c: Likewise.
1703         * tree-vect-generic.c: Likewise.
1704         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1705         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
1706         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1707         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
1708         * varasm.c: Likewise.
1709         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1710         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
1711         varasm.h.
1712         * init-regs.c: Likewise.
1713         * ira.c: Likewise.
1714         * omp-low.c: Likewise.
1715         * stack-ptr-mod.c: Likewise.
1716         * tree-ssa-reassoc.c: Likewise.
1717         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1718         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
1719         varasm.h.
1720         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1721         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
1722         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1723         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
1724         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1725         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
1726         * tree-ssa-phiopt.c: Likewise.
1727         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1728         fixed-value.h hashtab.h real.h statistics.h stmt.h.
1729         * config/fr30/fr30.c: Likewise.
1730         * config/frv/frv.c: Likewise.
1731         * expr.c: Likewise.
1732         * final.c: Likewise.
1733         * optabs.c: Likewise.
1734         * passes.c: Likewise.
1735         * simplify-rtx.c: Likewise.
1736         * stmt.c: Likewise.
1737         * toplev.c: Likewise.
1738         * var-tracking.c: Likewise.
1739         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1740         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1741         * lower-subreg.c: Likewise.
1742         * postreload-gcse.c: Likewise.
1743         * ree.c: Likewise.
1744         * reginfo.c: Likewise.
1745         * store-motion.c: Likewise.
1746         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1747         fixed-value.h hashtab.h real.h stmt.h varasm.h.
1748         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1749         fixed-value.h hashtab.h statistics.h stmt.h.
1750         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1751         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
1752         * except.c: Likewise.
1753         * explow.c: Likewise.
1754         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1755         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
1756         varasm.h.
1757         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1758         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
1759         * tree-ssa-structalias.c: Likewise.
1760         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1761         fixed-value.h insn-config.h real.h statistics.h.
1762         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1763         fixed-value.h insn-config.h real.h statistics.h stmt.h.
1764         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1765         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1766         * cfgbuild.c: Likewise.
1767         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1768         fixed-value.h real.h rtl.h statistics.h stmt.h.
1769         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1770         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1771         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1772         fixed-value.h real.h statistics.h stmt.h.
1773         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1774         fixed-value.h real.h statistics.h stmt.h varasm.h.
1775         * cprop.c: Likewise.
1776         * modulo-sched.c: Likewise.
1777         * postreload.c: Likewise.
1778         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1779         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
1780         statistics.h stmt.h varasm.h.
1781         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
1782         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1783         rtl.h statistics.h stmt.h varasm.h.
1784         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
1785         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
1786         varasm.h.
1787         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1788         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
1789         varasm.h.
1790         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
1791         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
1792         varasm.h.
1793         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
1794         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1795         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1796         function.h real.h statistics.h stmt.h varasm.h.
1797         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1798         insn-config.h real.h statistics.h stmt.h.
1799         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1800         statistics.h stmt.h.
1801         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
1802         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
1803         statistics.h stmt.h varasm.h.
1804         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1805         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
1806         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1807         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
1808         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
1809         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1810         statistics.h stmt.h varasm.h.
1811         * ipa-polymorphic-call.c: Likewise.
1812         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
1813         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1814         stmt.h.
1815         * config/c6x/c6x.c: Likewise.
1816         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
1817         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1818         statistics.h stmt.h varasm.h.
1819         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1820         hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
1821         * ipa-split.c: Likewise.
1822         * tree-eh.c: Likewise.
1823         * tree-ssa-dce.c: Likewise.
1824         * tree-ssa-loop-niter.c: Likewise.
1825         * tree-vrp.c: Likewise.
1826         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
1827         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
1828         stmt.h.
1829         * config/nds32/nds32-fp-as-gp.c: Likewise.
1830         * config/nds32/nds32-intrinsic.c: Likewise.
1831         * config/nds32/nds32-isr.c: Likewise.
1832         * config/nds32/nds32-md-auxiliary.c: Likewise.
1833         * config/nds32/nds32-memory-manipulation.c: Likewise.
1834         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1835         * config/nds32/nds32-predicates.c: Likewise.
1836         * config/nds32/nds32.c: Likewise.
1837         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
1838         fixed-value.h hashtab.h real.h statistics.h.
1839         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
1840         fixed-value.h hashtab.h real.h statistics.h stmt.h.
1841         * config/arm/arm.c: Likewise.
1842         * config/avr/avr.c: Likewise.
1843         * config/bfin/bfin.c: Likewise.
1844         * config/h8300/h8300.c: Likewise.
1845         * config/i386/i386.c: Likewise.
1846         * config/ia64/ia64.c: Likewise.
1847         * config/iq2000/iq2000.c: Likewise.
1848         * config/m32c/m32c.c: Likewise.
1849         * config/m32r/m32r.c: Likewise.
1850         * config/m68k/m68k.c: Likewise.
1851         * config/mcore/mcore.c: Likewise.
1852         * config/mep/mep.c: Likewise.
1853         * config/mips/mips.c: Likewise.
1854         * config/mn10300/mn10300.c: Likewise.
1855         * config/moxie/moxie.c: Likewise.
1856         * config/pa/pa.c: Likewise.
1857         * config/rl78/rl78.c: Likewise.
1858         * config/rx/rx.c: Likewise.
1859         * config/s390/s390.c: Likewise.
1860         * config/sh/sh.c: Likewise.
1861         * config/sparc/sparc.c: Likewise.
1862         * config/spu/spu.c: Likewise.
1863         * config/stormy16/stormy16.c: Likewise.
1864         * config/v850/v850.c: Likewise.
1865         * config/vax/vax.c: Likewise.
1866         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
1867         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1868         * config/msp430/msp430.c: Likewise.
1869         * predict.c: Likewise.
1870         * value-prof.c: Likewise.
1871         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
1872         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
1873         * config/microblaze/microblaze.c: Likewise.
1874         * config/nios2/nios2.c: Likewise.
1875         * config/rs6000/rs6000.c: Likewise.
1876         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1877         insn-config.h real.h rtl.h statistics.h stmt.h.
1878         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1879         insn-config.h real.h statistics.h stmt.h.
1880         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
1881         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1882         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
1883         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1884         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1885         real.h statistics.h stmt.h.
1886         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
1887         fixed-value.h statistics.h stmt.h.
1888         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
1889         stmt.h.
1891 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
1893         * gengtype.c (create_user_defined_type): Workaround
1894         -Wmaybe-uninitialized false positives.
1895         * cse.c (fold_rtx): Likewise.
1896         * loop-invariant.c (gain_for_invariant): Likewise.
1898 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
1900         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1901         set the memory attributes in all cases but clear MEM_EXPR if need be.
1903 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
1905         PR tree-optimization/64434
1906         * cfgexpand.c (reorder_operands): New function.
1907         (expand_gimple_basic_block): Insert call of reorder_operands if
1908         optimized is true.
1910 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1912         * config/mips/micromips.md (*swp): Remove explicit parallel.
1913         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
1914         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
1915         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
1916         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
1917         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
1918         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
1919         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
1920         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
1921         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
1922         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
1923         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
1924         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
1925         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
1926         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
1927         (mips_wrdsp): Likewise.
1928         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
1929         parallel.
1930         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
1931         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
1932         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
1933         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
1934         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
1935         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
1936         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
1937         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
1938         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
1940 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
1942         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
1943         (mips_print_operand): Support 'y' to print exact log2 in decimal
1944         of a const_int.
1945         * config/mips/mips.h (ISA_HAS_LSA): New define.
1946         (ISA_HAS_DLSA): Likewise.
1947         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
1948         * config/mips/predicates.md (const_immlsa_operand): New predicate.
1950 2015-01-15  Martin Liska  <mliska@suse.cz>
1952         PR target/64377
1953         * optc-save-gen.awk: Add support for array types.
1955 2015-01-15  Richard Biener  <rguenther@suse.de>
1957         PR middle-end/64365
1958         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1959         for MEM_REF access functions with the same base can never partially
1960         overlap.
1962 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
1964         * common.opt: New option -fstack-protector-explicit.
1965         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
1966         (stack_protect_decl_phase): Handle stack_protect attribute for
1967         explicit stack protection requests.
1968         (expand_used_vars): Similarly.
1969         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
1970         * doc/extend.texi: Add documentation for "stack_protect" attribute.
1971         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
1973 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
1975         PR target/53988
1976         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
1977         reg-reg copies.
1978         (sh_extending_set_of_reg): New struct.
1979         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
1980         sh_remove_reg_dead_or_unused_notes): New Declarations.
1981         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
1982         sh_find_extending_set_of_reg, sh_split_tst_subregs,
1983         sh_extending_set_of_reg::use_as_extended_reg): New functions.
1984         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
1985         convert to insn_and_split and use new function sh_split_tst_subregs.
1987 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
1989         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
1990         option.
1991         (Optimization Options): Move -fuse-ld documentation to...
1992         (Link Options): ...here.
1994 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
1996         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
1997         offsets.
1998         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
1999         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
2000         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
2001         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
2002         instead of ZR for the memory operand of LL/SC.
2003         (compare_and_swap_12, sync_add<mode>): Likewise.
2004         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
2005         (sync_new_<optab>_12, sync_nand_12): Likewise.
2006         (sync_old_nand_12, sync_new_nand_12): Likewise.
2007         (sync_sub<mode>, sync_old_add<mode>): Likewise.
2008         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
2009         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
2010         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
2011         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
2012         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
2013         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
2014         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
2015         * doc/md.texi (ZC): Update description.
2017 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
2019         * builtins.c (expand_builtin_atomic_exchange): Remove error when
2020         memory model is CONSUME.
2021         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
2022         expand_builtin_atomic_store): Change invalid memory model errors to
2023         warnings.
2024         (expand_builtin_atomic_clear): Change invalid model errors to warnings
2025         and issue warning for CONSUME.
2027 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
2029         * lto-cgraph: Update function comments for
2030         lto_symtab_encoder_encode_*.
2032 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
2034         * Makefile.in (site.exp): Do not set ENABLE_LTO.
2036 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
2038         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
2039         * lto-cgraph.c (select_what_to_stream): Remove argument, use
2040         lto_stream_offload_p instead.
2041         * lto-streamer.h (select_what_to_stream): Remove argument.
2042         * passes.c (ipa_write_summaries): Likewise.
2043         * tree-pass.h (ipa_write_summaries): Likewise.
2045 2015-01-14  Richard Biener  <rguenther@suse.de>
2047         PR tree-optimization/59354
2048         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
2049         groups larger than the slp group size as having gaps.
2051 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
2053         PR middle-end/59448
2054         * builtins.c (get_memmodel): Promote consume to acquire always.
2056 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
2058         PR target/64386
2059         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
2060         V32HImode. 
2062 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
2064         PR target/64393
2065         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
2066         Enable AVX512BW.
2067         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
2068         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
2069         AVX512VBMI, as it implies AVX512BW.
2071 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
2073         PR target/64387
2074         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
2075         (vec_unpacks_hi_v16sf): Ditto.
2077 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2079         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
2080         is not available.
2082 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2084         * doc/invoke.texi (mapcs): Mention deprecation.
2085         (mapcs-frame): Likewise.
2087 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2089         PR target/64453
2090         * config/arm/arm.c (callee_saved_reg_p): Define.
2091         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
2092         register is callee saved instead of !call_used_regs[reg].
2093         (thumb1_compute_save_reg_mask): Likewise.
2095 2015-01-14  Hale Wang  <hale.wang@arm.com>
2097         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
2098         Cortex-M7.
2100 2015-01-14  Richard Biener  <rguenther@suse.de>
2102         PR lto/64415
2103         * tree-inline.c (insert_debug_decl_map): Check destination
2104         function MAY_HAVE_DEBUG_STMTS.
2105         (insert_init_debug_bind): Likewise.
2106         (insert_init_stmt): Remove redundant check.
2107         (remap_gimple_stmt): Drop debug stmts if the destination
2108         function has var-tracking assignments disabled.
2110 2015-01-14  Martin Liska  <mliska@suse.cz>
2112         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
2113         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
2115 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2117         PR target/64460
2118         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
2119         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
2121 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
2123         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
2124         level from an ARCH; do not inject the default.
2125         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
2126         MIPS_ISA_LEVEL_SPEC.
2127         (MIPS_ISA_NAN2008_SPEC): Update comment.
2128         (BASE_DRIVER_SELF_SPECS): Likewise.
2129         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
2130         MIPS_DEFAULT_ISA_LEVEL_SPEC.
2131         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
2132         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
2133         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
2135 2015-01-14  Richard Biener  <rguenther@suse.de>
2137         PR tree-optimization/64493
2138         PR tree-optimization/64495
2139         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
2140         assign the proper vectorized PHI to the inner loop exit PHIs.
2142 2015-01-14  Joey Ye  <joey.ye@arm.com>
2144         * config/arm/arm.c (arm_compute_save_reg_mask):
2145         Do not save lr in case of tail call.
2146         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
2148 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
2150         * tree-vrp.c (check_array_ref): Emit more warnings
2151         for warn_array_bounds >= 2.
2152         * common.opt: New option -Warray-bounds=.
2153         * doc/invoke.texi: Document -Warray-bounds=.
2155 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
2157         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
2158         (mforbid-fp-as-gp): Remove.
2159         (mex9): Remove.
2160         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
2161         (nds32_symbol_load_store_p): Remove.
2162         (nds32_fp_as_gp_check_available): Clean up implementation.
2163         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
2164         cases.
2165         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
2166         fp-as-gp and ex9 cases.
2168 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
2170         * tree-profile.c (init_ic_make_global_vars): Drop workaround
2171         for bintuils bug 14342.
2172         (init_ic_make_global_vars): Likewise.
2173         (gimple_init_edge_profiler): Likewise.
2174         (gimple_gen_ic_func_profiler): Likewise.
2176 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2178         * ipa-inline.c (inline_small_functions): Swap the operands in
2179         enum.
2181 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
2183         PR ipa/64481
2184         * ipa-inline-analysis.c (node_growth_cache): Remove.
2185         (initialize_growth_caches): Do not initialize it.
2186         (free_growth_caches): Do not free it.
2187         (do_estimate_growth): Rename to ...
2188         (estimate_growth): ... this one; drop growth cache code.
2189         (growth_likely_positive): Always go the heuristics way.
2190         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
2191         (reset_edge_caches): Do not reset node growth.
2192         (heap_edge_removal_hook): Do not maintain cache.
2193         (inline_small_functions): Likewise; strenghten sanity check.
2194         (ipa_inline): Do not maintain caches.
2195         * ipa-inline.h (node_growth_cache): Remove.
2196         (do_estimate_growth): Remove to ...
2197         (estimate_growth): this one; remove inline version.
2198         (reset_node_growth_cache): Remove.
2200 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
2202         PR ipa/64565
2203         * ipa-inline.c (inline_small_functions): Update callee keys after
2204         resolving speculation
2205         (inline_small_functions): Always check monotonicity of the queue.
2207 2015-01-13  Marek Polacek  <polacek@redhat.com>
2209         PR middle-end/64391
2210         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
2212 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
2214         PR rtl-optimization/64286
2215         * ree.c (combine_reaching_defs): Move part of comment earlier,
2216         remove !SCALAR_INT_MODE_P check.
2217         (add_removable_extension): Don't add vector mode
2218         extensions if all uses of the source register aren't the same
2219         vector extensions.
2221 2015-01-13  Renlin Li  <renlin.li@arm.com>
2223         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
2224         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
2226 2015-01-13  Martin Liska  <mliska@suse.cz>
2228         * ipa-icf.c (sem_function::equals_private): Call new functions
2229         cl_target_option_print_diff and cl_optimization_print_diff.
2230         * optc-save-gen.awk (cl_target_option_print_diff): New function.
2231         (cl_optimization_print_diff): Likewise.
2232         * opth-gen.awk: Likewise.
2234 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
2236         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
2237         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
2238         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
2239         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
2240         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
2241         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
2243 2015-01-13  Andrew Pinski   <apinski@cavium.com>
2245         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
2246         instead of src mode.    
2248 2015-01-13  Richard Biener  <rguenther@suse.de>
2250         PR lto/64373
2251         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
2252         DECL_CONTEXT.
2254 2015-01-13  Andrew Pinski   <apinski@cavium.com>
2256         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
2257         volatile mems.
2258         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2260 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
2262         PR middle-end/63974
2263         * cfgexpand.c (expand_computed_goto): Don't call
2264         convert_memory_address here.
2266 2015-01-13  Richard Biener  <rguenther@suse.de>
2268         PR tree-optimization/64406
2269         * tree-loop-distibution.c (pass_loop_distribution::execute):
2270         Reset the SCEV hashtable if we distributed anything.
2272 2015-01-13  Richard Biener  <rguenther@suse.de>
2274         PR tree-optimization/64404
2275         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
2276         SLP types for CSEd loads.
2278 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2280         PR tree-optimization/64436
2281         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
2282         merge of two symbolic numbers for a bitwise OR to ...
2283         (perform_symbolic_merge): This. Also fix computation of the range and
2284         end of the symbolic number corresponding to the result of a bitwise OR.
2286 2015-01-13  Richard Biener  <rguenther@suse.de>
2288         PR tree-optimization/64568
2289         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
2290         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
2292 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2294         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
2295         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
2297 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2299         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
2300         target-specific symbol_ref flag.
2301         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
2302         resides in rodata section.
2303         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
2304         (nds32_encode_section_info): New function.
2306 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2308         * config/nds32/nds32.md (call): Use pseudo instruction bal which
2309         clobbers TA_REGNUM if large code model is specified.
2310         (call_register): Likewise.
2311         (call_immediate): Likewise.
2312         (call_value): Likewise.
2313         (call_value_register): Likewise.
2314         (call_value_immediate): Likewise.
2316 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2318         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
2319         (TARGET_CMODEL_MEDIUM): New macro.
2320         (TARGET_CMODEL_LARGE): New macro.
2321         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
2322         code model setting in assembly code.
2324 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2326         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
2327         Remove MASK_GP_DIRECT flag.
2328         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
2329         one of the multilib default options.
2330         * config/nds32/nds32.opt (mgp-direct): Remove.
2331         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
2332         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
2334 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
2336         * config/nds32/nds32.opt (mcmodel): Add new option.
2337         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
2338         to describe code model.
2340 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
2342         PR target/64479
2343         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
2345 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2347         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
2348         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
2349         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
2350         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
2351         __builtin_sh_set_fpscr.
2353 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
2355         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
2356         after a funtion name just to indicate it is a function.
2357         ([-fsanitize-undefined-trap-on-error]): Likewise.
2358         ([-fdbg-cnt=]): Likewise.
2359         ([-mmemcpy]): Likewise.
2360         ([-mflush-func]): Likewise.
2361         ([-msynci]): Likewise.
2363 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
2365         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
2366         example.
2367         
2368 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
2370         PR tree-optimization/64563
2371         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
2372         instead of != VR_VARYING.
2374         PR target/64513
2375         * config/i386/i386.c (ix86_expand_prologue): Add
2376         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
2378         PR tree-optimization/64454
2379         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
2380         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
2381         for signed or [0, op1 - 1] for unsigned modulo.
2382         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
2383         even if op1 does not satisfy integer_pow2p.
2385         PR other/64370
2386         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
2388 2015-01-12  Jeff Law  <law@redhat.com>
2390         PR target/64461
2391         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
2392         (trunchiqi2, truncsihi2): Similarly.
2394         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
2395         rather than calling F.
2397 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2399         * tsan.c (instrument_expr): Use force_gimple_operand.
2400         Use may_be_nonaddressable_p instead of is_gimple_addressable.
2402 2015-01-12  Richard Biener  <rguenther@suse.de>
2404         PR tree-optimization/64530
2405         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
2406         back dr1.
2408 2015-01-12  Richard Biener  <rguenther@suse.de>
2410         PR middle-end/64357
2411         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
2412         latches properly.
2414 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2416         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
2417         Cortex-A17 tuning parameters.
2418         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
2420 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2422         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
2423         * config/arm/arm.c (arm_macro_fusion_p): New function.
2424         (arm_macro_fusion_pair_p): Likewise.
2425         (TARGET_SCHED_MACRO_FUSION_P): Define.
2426         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2427         (ARM_FUSE_NOTHING): Likewise.
2428         (ARM_FUSE_MOVW_MOVT): Likewise.
2429         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
2430         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
2431         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
2432         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
2433         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
2434         arm_cortex_a5_tune): Specify fuseable_ops value.
2436 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
2438         PR bootstrap/64561
2439         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
2440         test for PIE with copy reloc.
2441         * configure: Regenerated.
2443 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2445         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
2446         in gen_rtx_REG.
2447         (arm_tls_descseq_addr): Likewise.
2448         (arm_gen_movmemqi): Likewise.
2449         (arm_expand_epilogue_apcs_frame): Likewise.
2450         (arm_expand_epilogue): Likewise.
2451         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
2452         in gen_rtx_REG.
2454 2015-01-12  Martin Liska  <mliska@suse.cz>
2456         PR ipa/64550
2457         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
2458         volatility for correct operands.
2460 2015-01-12  Martin Liska  <mliska@suse.cz>
2462         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
2463         that a function is not leaf.
2464         (sem_function::compare_polymorphic_p): Likewise.
2466 2015-01-12  Martin Liska  <mliska@suse.cz>
2468         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
2469         that a function is not leaf.
2470         (sem_function::compare_polymorphic_p): Likewise.
2472 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2474         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
2475         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
2476         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
2477         fold-const.h, tree-check.h.
2479 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
2481         PR ipa/63967
2482         PR ipa/64425
2483         * ipa-inline.c (compute_uninlined_call_time,
2484         compute_inlined_call_time): Use counts for extra precision when
2485         needed possible.
2486         (big_speedup_p): Fix formating.
2487         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
2488         (relative_time_benefit): Remove.
2489         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
2490         merge guessed and read profile paths.
2491         (inline_small_functions): Count only !optimize_size functions into
2492         initial size; be more lax about sanity check when profile is used;
2493         be sure to update inlined function profile when profile is read.
2495 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
2497         PR ipa/63470
2498         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
2499         cost when edge becomes direct.
2500         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
2501         is resolved or when introducing new speculation.
2503 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
2505         PR ipa/64551
2506         PR ipa/64552
2507         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
2508         '||' to fix typo issue.
2510         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
2511         accept and return NULL.
2513 2015-01-12  Martin Liska  <mliska@suse.cz>
2515         * cgraph.c (cgraph_edge::remove_callee): Move function to header
2516         file for being inlined.
2517         (cgraph_set_edge_callee): Delete.
2518         (cgraph_edge::redirect_callee): Move function to header file
2519         for being inlined.
2520         (cgraph_edge::make_direct): Use new function.
2521         (cgraph_edge::dump_edge_flags): New function created from
2522         static dump_edge_flags function.
2523         (cgraph_node::dump): Use new function.
2524         (cgraph_edge::verify_count_and_frequency): New function created
2525         from verify_edge_count_and_frequency.
2526         (cgraph_edge::verify_corresponds_to_fndecl): New function created
2527         from verify_edge_corresponds_to_fndecl.
2528         (verify_edge_corresponds_to_fndecl): Delete.
2529         (cgraph_node::verify_node): Use new function.
2530         * cgraph.h (cgraph_edge::set_callee): New function.
2531         (cgraph_edge::dump_edge_flags): Likewise.
2532         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
2534 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
2536         * ipa-utils.c (estimate_function_body_sizes): Do not
2537         free node params when called late with early=true.
2539 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
2541         * doc/md.texi (Instruction Patterns): Rewrite text for
2542         clarity.
2543         (Example): Likewise.
2545 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
2547         * doc/invoke.texi (Option Summary): Break long lines.
2548         [(-fdiagnostics-color)]: Put long literal in @smallexample
2549         instead of inline.
2550         [(-fsanitize-recover)]: Likewise.
2551         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
2552         [(-ffast-math)]: Likewise.
2553         [(--param max-inline-insns-recursive)]: Likewise.
2554         [(--param max-inline-recursive-depth)]: Likewise.
2555         [(-mno-text-section-literals)]: Likewise.
2556         
2557 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
2559         * doc/install.texi: Update for libgomp being renamed from "GNU
2560         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
2561         Runtime Library".
2562         * doc/sourcebuild.texi: Likewise.
2564 2015-01-10  Anthony Green  <green@moxielogic.com>
2566         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
2567         mul.x availability for moxiebox configuration.
2569 2015-01-09  Anthony Green  <green@moxielogic.com>
2571         * config/moxie/moxie.md: Tabify assembly output.
2573 2015-01-09  Anthony Green  <green@moxielogic.com>
2575         * config/moxie/moxie.md (CC_REG): Correct register definition.
2577 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
2579         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
2580         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
2581         of log files.
2583 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2585         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
2587 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
2588             Jakub Jelinek  <jakub@redhat.com>
2590         PR middle-end/64412
2591         * lto-streamer.h (lto_stream_offload_p): New declaration.
2592         * lto-streamer.c (lto_stream_offload_p): New variable.
2593         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
2594         at the same time as section_name_prefix.
2595         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
2596         if lto_stream_offload_p.
2597         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
2598         stream TREE_TARGET_OPTION if lto_stream_offload_p.
2599         (write_ts_function_decl_tree_pointers): Don't
2600         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
2601         * tree-streamer-in.c (unpack_value_fields): Don't stream
2602         TREE_TARGET_OPTION in if ACCEL_COMPILER.
2603         (lto_input_ts_function_decl_tree_pointers): Don't stream
2604         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
2605         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
2606         instead of section_name_prefix string comparisons.
2608 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
2610         PR rtl-optimization/64536
2611         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
2612         tablejumps.
2614 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2616         PR tree-optimization/64322
2617         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
2618         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
2620 2015-01-09  Tom de Vries  <tom@codesourcery.com>
2622         PR rtl-optimization/64539
2623         * regcprop.c (kill_clobbered_values): Factor out of ...
2624         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
2625         instead of note_stores with kill_clobbered_value.
2627 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2629          * ginclude/unwind-arm-common.h: Revert previous commit.
2631 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2633         * config.gcc (arm*-*-freebsd*): New configuration.
2634         * config/arm/freebsd.h: New file.
2635         * config.host: Add extra components for arm*-*-freebsd*.
2636         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
2637         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
2639 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2641         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
2642         for -mcpu=e6500.
2643         * config/rs6000/t-rtems: Add e6500 multilibs.
2645 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2647         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
2648         MPC8540.
2650 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2652         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
2653         MULTILIB_EXCEPTIONS.
2655 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2657         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
2658         MULTILIB_EXCEPTIONS.
2660 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2662         * config/arm/t-rtems-eabi: Rename to...
2663         * config/arm/t-rtems: ...this.
2664         * config/arm/rtems-eabi.h: Rename to...
2665         * config/arm/rtems.h: ...this.
2666         * config.gcc (arm*-*-rtems*): Reflect changes above.
2668 2015-01-09  Richard Biener  <rguenther@suse.de>
2670         PR tree-optimization/64410
2671         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
2672         on the LHS.
2673         (execute_update_addresses_taken): Deal with that.
2674         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
2675         loads/stores for complex variables.
2677 2015-01-09  Martin Liska  <mliska@suse.cz>
2679         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
2680         name comparison.
2681         (func_checker::compare_memory_operand): New function.
2682         (func_checker::compare_operand): Split case to newly
2683         added functions.
2684         (func_checker::compare_cst_or_decl): New function.
2685         (func_checker::compare_gimple_call): Identify
2686         memory operands.
2687         (func_checker::compare_gimple_assign): Likewise.
2688         * ipa-icf-gimple.h: New function.
2690 2015-01-09  Martin Liska  <mliska@suse.cz>
2692         PR ipa/64503
2693         * sreal.c (sreal::dump): Change unsigned format to signed for
2694         m_exp value.
2695         (sreal::to_double): Replace exp2 with scalbln.
2697 2015-01-09  Martin Liska  <mliska@suse.cz>
2699         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
2700         * ipa-icf.c (sem_function::equals_private): Add support for target and
2701         (sem_item_optimizer::merge_classes): Remove redundant function
2702         optimization flags comparison.
2703         * tree.h (target_opts_for_fn): New function.
2705 2015-01-09  Tom de Vries  <tom@codesourcery.com>
2707         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
2709 2015-01-09  Kito Cheng  <kito@0xlab.org>
2711         PR rtl-optimization/64348
2712         * lra-constraints.c (split_reg): Fix caller-save store/restore
2713         instruction generation.
2715 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
2717         PR gcov-profile/61790
2718         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
2719         long long.  Fallback to int64_t if host doesn't have long long and
2720         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
2722 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2724         PR tree-optimization/63989
2725         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
2726         from 1000 to 10000.
2727         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
2728         (get_stridx): If we don't have a record for certain SSA_NAME,
2729         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
2730         constant offset, call get_stridx_plus_constant.
2731         (get_stridx_plus_constant): New function.
2732         (zero_length_string): Don't use get_stridx here.
2734         PR target/55023
2735         PR middle-end/64388
2736         * dse.c (struct insn_info): Mention frame_read set also
2737         before reload for tail calls on some targets.
2738         (scan_insn): Revert 2014-12-22 change.  Set frame_read
2739         also before reload for tail calls if
2740         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
2741         instead of add_non_frame_wild_read for non-const/memset
2742         tail calls after reload.
2744 2015-01-08  Jason Merrill  <jason@redhat.com>
2746         * ubsan.c (do_ubsan_in_current_function): New.
2747         (pass_ubsan::gate): Use it.
2748         * ubsan.h: Declare it.
2749         * convert.c (convert_to_integer): Use it.
2751 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2753         PR target/64338
2754         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
2755         compare_code when it is unconditionally overwritten afterwards.
2756         Use ix86_reverse_condition instead of reverse_condition.  Don't
2757         change code if *reverse_condition* returned UNKNOWN and don't
2758         swap ct/cf and negate diff in that case.
2760 2015-01-08  Mike Stump  <mikestump@comcast.net>
2762         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
2763         (pass_tsan_O0::gate): Likewise.
2764         * extend.texi (Function Attributes): Add no_sanitize_thread
2765         documentation.
2767 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
2769         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
2770         for registering builtins.
2771         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
2772         add -fopenmp to the argv_obstack used when invoking
2773         compile_for_target.
2775         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
2776         add "-m32" or "-m64" to argv_obstack.
2777         (generate_host_descr_file): Likewise, when invoking host_compiler.
2778         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
2779         ld.
2781 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
2783         * config/sh/sh-mem.cc: Use constant as second operand when emitting
2784         tstsi_t insns.
2786 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
2788         PR target/55212
2789         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
2790         constant load if constant operand fits into I08.
2792 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2794         PR sanitizer/64336
2795         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
2796         and TREE_THIS_VOLATILE for MEM_REFs.
2797         (build5_stat): Fix up initialization of TREE_READONLY and
2798         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
2800 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2802         PR target/64533
2803         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
2804         of r for the second alternative of the destination operand.
2806 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
2808         PR target/36557
2809         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
2811 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2813         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
2814         keywords.
2815         ([-fivar-visibility], [-fvisibility]): Likewise.
2817 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2819         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
2820         the file where @code, @command, etc is more appropriate.
2822 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
2824         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
2825         of -mrecip= documentation.
2827 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2829         PR target/64505
2830         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
2831         correct reload handler if -m32 -mpowerpc64 is used.
2833 2015-01-06  Tom de Vries  <tom@codesourcery.com>
2835         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
2837 2015-01-08  Christian Bruel  <christian.bruel@st.com>
2839         PR target/64507
2840         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
2842 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2844         PR tree-optimization/63259
2845         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
2846         if optab exists for 16bit byteswap.
2848 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
2850         * opts.c (common_handle_option): Add support for
2851         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
2852         * doc/invoke.texi: Document -fno-sanitize=all,
2853         -f{,no-}sanitize-recover=all.  Document that
2854         -fsanitize=float-cast-overflow is not enabled
2855         by -fsanitize=undefined.  Fix up documentation
2856         of -f{,no-}sanitize-recover.
2858 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
2860         * config.gcc: Add Visium support.
2861         * configure.ac: Likewise.
2862         * configure: Regenerate.
2863         * doc/extend.texi (interrupt attribute): Add Visium.
2864         * doc/invoke.texi: Document Visium options.
2865         * doc/install.texi: Document Visium target.
2866         * doc/md.texi: Document Visium constraints.
2867         * common/config/visium: New directory.
2868         * config/visium: Likewise.
2870 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
2872         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
2873         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
2875 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
2877         * combine.c (combine_validate_cost): Do not count the cost of a
2878         split I2 twice.  Do not display it twice in the dump, either.
2880 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
2882         Revert parts of r219199.
2883         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
2884         <inttypes.h>.
2885         ([-Wtraditional]): Restore markup on <limits.h>.
2887 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
2889         PR c++/31397
2890         * doc/invoke.texi: Document -Wsuggest-override.
2892 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
2894         PR rtl-optimization/64287
2895         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
2896         (process_options): Disable flag_ipa_ra if profiling.
2898 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
2900         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
2902 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
2904         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
2905         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
2906         put under #if TARGET_LOOPS guard.
2908 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
2910         * config/i386/i386.c (output_387_binary_op): Use std::swap.
2912 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
2914         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
2915         * rtl.h (refers_to_regno_p): Add overload.
2916         * cse.c: Use it.
2917         * bt-load.c: Likewise.
2918         * combine.c: Likewise.
2919         * df-scan.c: Likewise.
2920         * sched-deps.c: Likewise.
2921         * config/s390/s390.c: Likewise.
2922         * config/m32r/m32r.c: Likewise.
2923         * config/rs6000/spe.md: Likewise.
2924         * config/rs6000/rs6000.c: Likewise.
2925         * config/pa/pa.c: Likewise.
2926         * config/stormy16/stormy16.c: Likewise.
2927         * config/cris/cris.c: Likewise.
2928         * config/arc/arc.md: Likewise.
2929         * config/arc/arc.c: Likewise.
2930         * config/sh/sh.md: Likewise.
2931         * config/sh/sh.c: Likewise.
2932         * config/frv/frv.c: Likewise.
2934 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2936         PR sanitizer/64265
2937         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
2938         call as cleanup of the whole body.
2939         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
2940         * tsan.c (replace_func_exit): New function.
2941         (instrument_func_exit): Moved earlier.
2942         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
2943         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
2944         been found.
2945         (tsan_pass): Don't call instrument_func_exit.
2946         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
2947         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
2948         inlining.
2950         PR sanitizer/64344
2951         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
2952         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
2953         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
2954         if the result is integer_zerop, return NULL_TREE.
2955         * convert.c (convert_to_integer): Pass expr as ARG.
2957         PR tree-optimization/64465
2958         * tree-inline.c (redirect_all_calls): During inlining
2959         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
2960         changed the stmt to a non-throwing call.
2962 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
2964         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
2965         etc markup throughout the file.
2967 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2969         Enable experimental TSAN support for Ada.
2970         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
2972 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2974         PR tree-optimization/64494
2975         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
2976         clear SSA_NAME_ANTI_RANGE_P flag.
2978 2015-01-05  Marek Polacek  <polacek@redhat.com>
2980         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
2982 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2984         Update copyright years.
2986         * gcc.c (process_command): Update copyright notice dates.
2987         * gcov-dump.c: Ditto.
2988         * gcov.c: Ditto.
2989         * doc/cpp.texi: Bump @copying's copyright year.
2990         * doc/cppinternals.texi: Ditto.
2991         * doc/gcc.texi: Ditto.
2992         * doc/gccint.texi: Ditto.
2993         * doc/gcov.texi: Ditto.
2994         * doc/install.texi: Ditto.
2995         * doc/invoke.texi: Ditto.
2997         * auto-profile.c, auto-profile.h: Fix up Copyright line.
2999 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
3001         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
3002         verb tense, etc.
3003         ([-fvtable-verify], [-fvtv-debug]): Likewise.
3004         ([-Wabi]): Likewise.
3005         ([-fmessage-length]): Likewise.
3006         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
3007         ([-Wno-discarded-qualifiers]): Likewise.
3008         ([-Wnodiscarded-array-qualifiers]): Likewise.
3009         ([-Wno-virtual-move-assign]): Likewise.
3010         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
3011         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
3012         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
3013         ([-fsanitize-undefined-trap-on-error]): Likewise.
3014         ([-floop-interchange]): Likewise.
3015         ([-ftree-coalesce-inlined-vars]): Likewise.
3016         ([-fvect-cost-model]): Likewise.
3017         ([-flto]): Likewise.
3018         ([--param]): Likewise.
3019         (Spec Files): Likewise.
3020         ([-mstrict-align]): Likewise.
3021         ([-mfix-cortex-a53-835769]): Likewise.
3022         ([-march], [-mtune]): Likewise.
3023         ([-mpic-register]): Likewise.
3024         ([-munaligned-access]): Likewise.
3025         ([-msp8]): Likewise.
3026         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
3027         (AVR Built-in Macros): Likewise.
3028         ([-mpreferred-stack-boundary]): Likewise.
3029         ([-mtune-crtl]): Likewise.
3030         ([-mashf]): Likewise.
3031         ([-mmcu=]): Likewise.
3032         ([-minrt]): Likewise.
3033         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
3034         ([-mupper-regs]): Likewise.
3035         ([-matomic-model]): Likewise.
3036         ([-mdiv]): Likewise.
3037         ([-mzdcbranch]): Likewise.
3038         ([-mdisable-callt]): Likewise.
3039         ([-msoft-float]): Likewise.
3040         ([-m8byte-align]): Likewise.
3041         ([-fstack-reuse]): Likewise.
3043 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
3045         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
3046         Fix markup, light copy-editing.
3047         ([-fauto-profile]): Rewrite to fix formatting and content
3048         problems.
3050 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
3052         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
3053         Copy-edit description.
3054         ([-fisolate-erroneous-paths-attribute]): Likewise.
3055         * common.opt (fisolate-erroneous-paths-dereference):
3056         Copy-edit description.
3057         (fisolate-erroneous-paths-attribute): Likewise.
3059 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
3061         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
3062         tidy grammar.
3064 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
3066         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
3067         ([-fvtv-debug]): Likewise.
3068         ([-Wc++-compat]): Likewise.
3069         ([-Wc++11-compat]): Likewise.
3070         ([-Wc++14-compat]): Likewise.
3071         ([-Wno-sized-deallocation]): Likewise.
3072         ([-femit-class-debug-always]): Likewise.
3073         ([-femit-struct-debug-detailed]): Likewise.
3074         ([-fno-keep-inline-dllexport]): Likewise.
3075         ([-fira-algorithm]): Likewise.
3076         ([-fira-region]): Likewise.
3077         ([-flra-remat]): Likewise.
3078         ([-fipa-ra]): Likewise.
3079         ([-fhoist-adjacent-loads]): Likewise.
3080         ([-fisolate-erroneous-paths-dereference]): Likewise.
3081         ([-fisolate-erroneous-paths-attribute]): Likewise.
3082         ([-ftree-switch-conversion]): Likewise.
3083         ([-ftree-tail-merge]): Likewise.
3084         ([-ftree-loop-if-convert]): Likewise.
3085         ([-ftree-loop-if-convert-stores]): Likewise.
3086         ([-ftree-loop-distribution]): Likewise.
3087         ([-ftree-loop-distribute-patterns]): Likewise.
3088         ([-flto-compression-level]): Likewise.
3089         ([-flto-report]): Likewise.
3090         ([-flto-report-wpa]): Likewise.
3091         ([-fuse-linker-plugin]): Likewise.
3092         ([-mfix-cortex-a53-835769]): Likewise.
3093         ([-mno-fix-cortex-a53-835769]): Likewise.
3094         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
3095         explicit listing; add a note to the discussion indicating they
3096         exist.  Reorder table to group similar options.  Add missing
3097         @opindex entries.  Add @need commands throughout the table to
3098         allow it to be split across multiple pages.
3099         ([-m8bit-idiv]): Fix @opindex.
3100         ([-mavx256-split-unaligned-load]): Likewise.
3101         ([-mavx256-split-unaligned-store]): Likewise.
3102         ([-mstack-protector-guard]): Likewise.
3103         ([-mcpu=]): Likewise.
3104         ([-mcpu]): Likewise.
3105         ([-mpointer-size=]): Likewise.
3107 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
3109         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
3110         instead of `m' constraint.  Likewise for unnamed movb comparison
3111         patterns using reg_before_reload_operand predicate.
3112         * config/pa/predicates.md (reg_before_reload_operand): Tighten
3113         predicate to reject register index and LO_SUM DLT memory forms
3114         after reload.
3116 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
3118         * doc/invoke.texi (Option Summary): Fix spelling of
3119         -fdevirtualize-at-ltrans.
3120         ([-fdevirtualize]): Fix markup.
3121         ([-fdevirtualize-speculatively]): Fix typo.
3122         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
3123         implementor-speaky.
3124         * common.opt (fdevirtualize-at-ltrans): Likewise.
3125         * ipa-devirt.c: Fix typos in comments throughout the file.
3126         (ipa_devirt): Fix typos in format strings for dump output.
3128 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
3130         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
3131         discussion of defaults, light copy-editing.
3133 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3135         * tsan.c (instrument_expr): corrected previous checkin.
3137 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3139         Instrument bit field and unaligned accesses for TSAN.
3140         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
3141         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
3142         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
3143         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
3144         unaligned memory regions.
3146 2015-01-01  Anthony Green  <green@moxielogic.com>
3148         * config/moxie/predicates.md (moxie_general_movsrc_operand):
3149         Restrict move source register offsets to 16 bits.
3151 Copyright (C) 2015 Free Software Foundation, Inc.
3153 Copying and distribution of this file, with or without modification,
3154 are permitted in any medium without royalty provided the copyright
3155 notice and this notice are preserved.