* config/rs6000/default64.h: Include rs6000-cpus.def.
[official-gcc.git] / gcc / ChangeLog
blob7bcc9bc9ac3caaca9110408fac3aa602e855fe8c
1 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
3         * config/rs6000/default64.h: Include rs6000-cpus.def.
4         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
5         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
6         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
7         and POWER8.
8         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
9         POWER8.
10         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
11         pseudo-op to specify assembler dialect.
13 2015-01-19  Martin Liska  <mliska@suse.cz>
15         PR ipa/64664
16         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
17         Handle safe potentially removed nodes during filtering.
19 2015-01-19  Martin Liska  <mliska@suse.cz>
21         * doc/extend.texi (no_icf): Add new attribute description.
22         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
23         where the pass attempts to merge a function with no_icf attribute.
25 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27         PR target/64532
28         * doc/md.texi (ARM Options): Document register constraints.
30 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31             Andrew Pinski  <apinski@cavium.com>
33         PR target/64304
34         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
35         (ashl<mode>3): Don't expand if operands[2] is not constant.
37 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39         PR target/64448
40         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
41         Match xor-and-xor RTL pattern.
43 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
45         PR rtl-optimization/64081
46         * loop-iv.c (def_pred_latch_p): New function.
47         (latch_dominating_def): Allow specific cases with non-single
48         definitions.
49         (iv_get_reaching_def): Likewise.
50         (check_complex_exit_p): New function.
51         (check_simple_exit): Use check_complex_exit_p to allow certain cases
52         with exits not executing on any iteration.
54 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
56         * common.opt (fgraphite): Fix a typo.
58 2015-01-19  Felix Yang  <felix.yang@huawei.com>
60         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
61         pattern.
62         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
63         uminp, smax_nanp, smin_nanp): New builtins.
64         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
65         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
66         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
67         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
68         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
69         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
70         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
71         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
72         vpminnms_f32): Rewrite using builtin functions.
74 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
76         PR libgomp/64625
77         * omp-low.c (offload_symbol_decl): Remove variable.
78         (get_offload_symbol_decl): Remove function.
79         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
80         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
81         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
82         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
83         BUILT_IN_GOACC_UPDATE don't pass it at all.
85 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
87         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
88         callers.
90 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
92         * ipa-chkp.c (chkp_produce_thunks): Add early param
93         to split thunks production into two passes.  Keep
94         'always_inline' function bodies after the first pass.
95         (pass_data_ipa_chkp_early_produce_thunks): New.
96         (pass_ipa_chkp_early_produce_thunks): New.
97         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
98         chkp_produce_thunks signature.
99         (make_pass_ipa_chkp_early_produce_thunks): New.
100         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
101         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
102         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
104 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
106         * cgraph.c (cgraph_node::dump): Dump profile flags.
108 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
110         PR target/64652
111         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
112         reg appear first in the parallel.
114 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
116         * ipa-reference.c (set_reference_optimization_summary,
117         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
118         disabled.
119         (ignore_module_statics): New static var.
120         (propagate_bits): If ipa-reference is disabled, do not look into local
121         properties.
122         (analyze_function): Disable analysis when ipa_reference is disabled.
123         (generate_summary): Do not dump when reference is disabled;
124         collect vars accessed from functions with ipa-reference disabled.
125         (get_read_write_all_from_node): When ipa-reference is disabled, use the
126         node flags.
127         (gate): Enable for LTO.
128         (ignore_edge_p): New function.
129         (propagate): Skip functions w/o ipa-reference analysis.
130         * optc-save-gen.awk: Handle optimize_debug correctly.
131         * opth-gen.awk: Likewise.
132         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
133         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
134         fira-share-save-slots, fira-share-spill-slots,
135         fmodulo-sched-allow-regmoves, fpartial-inlining,
136         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
137         ftracer, ftree-parallelize-loops, fassociative-math,
138         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
139         Optimization
140         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
141         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
142         Optimization.
143         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
144         Fix for IPA.
146 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
148         PR ipa/64378
149         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
150         flag correctly.
151         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
153 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
155         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
156         Remove duplicate option listings.
158 2015-01-18  Felix Yang  <felix.yang@huawei.com>
160         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
161         (autofdo_source_profile::get_callsite_total_count,
162         function_instance::get_function_instance_by_decl,
163         string_table::get_index, string_table::get_index_by_decl,
164         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
165         Fix comment typos. Reformatting and minor code rearrangement.
167 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
169         * config/rs6000/rs6000.md (probe_stack): Delete.
170         (probe_stack_address): New.
172 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
174         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
175         to test for 32-bit ABIs, not !TARGET_POWERPC64.
177 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
179         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
180         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
181         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
182         snafu.
183         (rs6000_libcall_value): Use the new function.
185 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
187         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
189 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
191         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
192         implement a more precise life analysis for it during backward scan.
194 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
196         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
198 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
200         PR rtl-optimization/52773
201         * calls.c (emit_library_call_value): When pushing arguments use
202         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
203         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
204         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
206 2015-01-17  Jeff Law  <law@redhat.com>
208         PR rtl-optimization/32790
209         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
210         not ZERO_EXTEND in SET_DESTs.
212 2015-01-17  Alan Modra  <amodra@gmail.com>
214         * cprop.c (do_local_cprop): Revert last change.
216 2015-01-16  DJ Delorie  <dj@redhat.com>
217             Nick Clifton  <nickc@redhat.com>
219         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
220         (addhi3_real): Likewise.  Fix [HL+0] syntax.
221         (subqi3_real): Likewise.
222         (subhi3_real): Likewise.
223         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
224         (cbranchhi4_real): Likewise.
225         (cbranchhi4_real_inverted): Likewise.
226         (cbranchsi4_real_lt): Likewise.
227         (cbranchsi4_real_ge): Likewise.
228         (cbranchsi4_real_ge): Likewise.
229         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
230         (sub<mode>3_virt): Likewise.
231         (cbranchqi4_virt): Likewise.
232         (cbranchhi4_virt): Likewise.
233         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
234         always use '[reg+imm]' even when imm is zero.
235         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
236         (rl78_general_operand): New.
237         (rl78_nonimmediate_operand): New.
238         (rl78_nonfar_operand): Use them.
239         (rl78_nonfar_nonimm_operand): Likewise.
240         (rl78_stack_based_mem): Fix.
241         * config/rl78/constraints.md (Ibqi): New.
242         (IBqi): New.
243         (Wsa): New.
244         (Wsf): New.
245         (Cs1): Fix.
246         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
247         (iorqi3): Likewise.
248         (xorqi3): Likewise.
249         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
251         * config/rl78/constrains (Qs8): New constraint.
252         * config/rl78/rl78.c (rl78_flags_already_set): New function.
253         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
254         * config/rl78/rl78-real.md (update_Z): New attribute.
255         Update patterns to set it.
256         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
257         shorter compare and branch sequence can be used.
258         (cbranchhi4_real): Likewise.
259         (cbranchhi4_real_inverted): Likewise.
261         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
262         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
263         address space.
264         * config/rl78/rl78.c (rl78_get_name_encoding): New.
265         (rl78_option_override): Allow -mes0 only if C.
266         (characterize_address): Support subregs of symbol_refs.
267         (rl78_addr_space_address_mode): Move.  Add __near.
268         (rl78_far_p): Likewise.
269         (rl78_addr_space_pointer_mode): Likewise.
270         (rl78_as_legitimate_address): Likewise.
271         (rl78_addr_space_subset_p): Likewise.
272         (rl78_addr_space_convert): Likewise.
273         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
274         symbols with -mes0.
275         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
276         addressing.
277         (rl78_alloc_physical_registers_op1): Change logic to prefer
278         symbol[BC] addressing.
279         (frodata_section): New.
280         (rl78_asm_init_sections): Initialize it.
281         (rl78_select_section): Put __far readonly symbols in .frodata.
282         (rl78_make_type_far): New.
283         (rl78_insert_attributes): Force all readonly symbols to be __far when -mes0.
284         (rl78_asm_out_integer): New.
285         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
286         * config/rl78/rl78.opt (-mes0): New.
288         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
289         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
290         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
291         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
292         (rl78_saddr_p): New.
293         (rl78_output_aligned_common): New.
294         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
295         (rl78_handle_saddr_attribute): New.
296         (rl78_handle_naked_attribute): New.
297         (rl78_attribute_table): Add saddr.
298         (rl78_print_operand_1): Don't print '!' on saddr operands.
299         (rl78_print_operand_1): Strip encodings.
300         (rl78_sfr_p): New.
301         (rl78_strip_name_encoding): New.
302         (rl78_attrlist_to_encoding): New.
303         (rl78_encode_section_info): New.
304         (rl78_asm_init_sections): New.
305         (rl78_select_section): New.
306         (rl78_output_labelref): New.
307         (rl78_output_aligned_common): New.
308         (rl78_asm_out_integer): New.
309         (rl78_asm_ctor_dtor): New.
310         (rl78_asm_constructor): New.
311         (rl78_asm_destructor): New.
313         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
314         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
315         (transcode_memory_rtx): Update.
316         (rl78_expand_epilogue): Use A_REG instead of 0.
318 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
320         * config/arm/arm-protos.h (struct tune_params): New field
321         sched_autopref_queue_depth.
322         * config/arm/arm.c (sched-int.h): Include header.
323         (arm_first_cycle_multipass_dfa_lookahead_guard,)
324         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
325         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
326         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
327         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
328         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
329         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
330         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
331         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
332         * config/arm/t-arm (arm.o): Update.
333         * haifa-sched.c (update_insn_after_change): Update.
334         (rank_for_schedule): Use auto-prefetcher model, if requested.
335         (autopref_multipass_init): New static function.
336         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
337         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
338         variable for debug dumps.
339         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
340         (autopref_multipass_dfa_lookahead_guard): New global function that
341         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
342         (init_h_i_d): Update.
343         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
344         * sched-int.h (enum autopref_multipass_data_status): New const enum.
345         (autopref_multipass_data_): Structure for auto-prefetcher data.
346         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
347         (struct _haifa_insn_data:autopref_multipass_data): New field.
348         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
349         (autopref_multipass_dfa_lookahead_guard): Declare.
351 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
353         * rtlanal.c (get_base_term): Handle SCRATCH.
355 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
357         * config/aarch64/aarch64.c
358         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
359         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
360         * config/arm/arm.c
361         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
362         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
364 2015-01-17  Alan Modra  <amodra@gmail.com>
366         * cprop.c (do_local_cprop): Disallow replacement of fixed
367         hard registers.
369 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
371         PR target/62066
372         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
373         early return 0.
375 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
377         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
378         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
380 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
382         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
383         * config/arm/thumb1.md: ... Here.
385 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
387         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
388         TImode for TARGET_32BIT.
390 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
392         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
393         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
394         as ...
395         (rs6000_abi_word_mode): New function.
397 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
399         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
400         instead of UNITS_PER_WORD to describe the size of stack slots.
402 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
404         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
405         as rs6000_promote_function_mode.  Move comment to there.
406         (rs6000_promote_function_mode): New function.
408 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
410         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
411         -mpowerpc64 is active.
413 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
415         PR middle-end/64353
416         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
417         virtuals on start.
419 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
421         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
422         introduced in revision 219724.
424 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
425             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
427         PR target/64263
428         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
429         destination is not a GP reg.
430         (*movdi_aarch64): Likewise.
432 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
434         PR target/64623
435         * config/rs6000/default64.h: Revert ISA change.
437 2015-01-16  Richard Biener  <rguenther@suse.de>
439         PR middle-end/64614
440         * tree-ssa-uninit.c: Include tree-cfg.h.
441         (MAX_SWITCH_CASES): New define.
442         (convert_control_dep_chain_into_preds): Handle switch statements.
443         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
444         (normalize_one_pred_1): Do not split bit-manipulations.
445         Record (x & CST).
447 2015-01-16  Richard Biener  <rguenther@suse.de>
449         PR tree-optimization/64568
450         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
451         complex load rewriting for TARGET_MEM_REFs.
453 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
455         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
457 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
459         PR target/64149
460         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
461         variable.
462         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
463         (aarch64_lra_p): Remove.
465 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
467         PR target/64363
468         * ipa-chkp.h (chkp_instrumentable_p): New.
469         * ipa-chkp.c: Include tree-inline.h.
470         (chkp_instrumentable_p): New.
471         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
472         Fix processing of not instrumentable functions.
473         (chkp_versioning): Use chkp_instrumentable_p. Warn about
474         not instrumentable functions.
475         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
476         chkp_instrumentable_p.
477         * tree-inline.h (copy_forbidden): New.
478         * tree-inline.c (copy_forbidden): Not static anymore.
480 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
482         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
483         ptr1, ptr2 unused.
485 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
487         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
488         type OP_OUT to OP_INOUT.
490 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
492         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
493         (high x) y) to y if x and y have the same base.
495 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
497         * config/arm/cortex-a57.md: New.
498         * config/aarch64/aarch64.md: Include it.
499         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
500         * config/aarch64/aarch64-tune.md: Regenerate.
502 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
504         PR target/64015
505         * ccmp.c (expand_ccmp_next): New function.
506         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
507         and compare insn sequence.
508         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
509         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
510         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
511         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
512         (*ccmp_ior): Changed to ccmp_ior<mode>.
513         (cmp<mode>): New pattern.
514         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
515         parameters.
516         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
518 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
520         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
521         _mm256_bsrli_epi128): New.
522         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
524 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
526         * expmed.c (store_bit_field_using_insv): Improve warning message.
527         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
529 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
531         PR rtl-optimization/64011
532         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
533         there is partial overflow.
535 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
537         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
538         prototype.
539         (nds32_expand_epilogue_v3pop): Likewise.
540         * config/nds32/nds32.md (sibcall): Define this for sibling call
541         optimization.
542         (sibcall_register): Likewise.
543         (sibcall_immediate): Likewise.
544         (sibcall_value): Likewise.
545         (sibcall_value_register): Likewise.
546         (sibcall_value_immediate): Likewise.
547         (sibcall_epilogue): Likewise.
548         (epilogue): Pass false to indicate this is not a sibcall epilogue.
549         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
550         (nds32_expand_epilogue_v3pop): Likewise.
552 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
554         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
555         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
556         (return_internal): New.
557         (return): Define this named pattern.
558         (simple_return): Define this named pattern.
559         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
560         pattern instead of unspec_volatile_func_return.
561         (nds32_expand_epilogue_v3pop): Likewise.
562         (nds32_can_use_return_insn): New function.
564 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
566         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
567         * config/nds32/nds32.md (pop25return): New.
568         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
569         pop25return pattern.
571 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
573         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
574         -mforbid-fp-as-gp, and -mex9 options.
576 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
578         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
579         remove -mgp-direct option.
581 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
582         
583         * doc/invoke.texi (--param early-inlining-insns): Update default value.
584         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
586 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
588         * ipa-inline.c (inline_small_functions): Work around hints
589         cache issue.
591 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
593         PR target/59710
594         * doc/invoke.texi (Option Summary): Document new Nios II
595         -mgpopt= syntax.
596         (Nios II Options): Likewise.
597         * config/nios2/nios2.opt: Add -mgpopt= option support.
598         Modify existing -mgpopt and -mno-gpopt options to be aliases.
599         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
600         * config/nios2/nios2.c (nios2_option_override): Adjust
601         -mgpopt defaulting.
602         (nios2_in_small_data_p): Return true for explicit small data
603         sections even with -G0.
604         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
605         option choices.
607 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
609         PR ipa/64612
610         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
611         of comdat locals.
612         (inline_call): Fix removal of aliases.
614 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
616         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
617         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
618         * opts.c (common_handle_option): Add -fsanitize=vptr.
619         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
620         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
621         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
622         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
623         (ubsan_expand_vptr_ifn): New prototype.
624         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
625         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
626         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
627         expand_LOOP_VECTORIZED): Make argument nameless, remove
628         ATTRIBUTE_UNUSED.
629         (expand_UBSAN_VPTR): New function.
630         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
631         in fn spec.
632         (UBSAN_VPTR): New internal function.
633         * sanopt.c (tree_map_traits): Renamed to ...
634         (sanopt_tree_map_traits): ... this.
635         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
636         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
637         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
638         (maybe_optimize_ubsan_vptr_ifn): New function.
639         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
640         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
641         -fsanitize=vptr.
642         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
643         internal calls like pure functions for aliasing, even when they
644         have other side-effects that prevent making them ECF_PURE.
645         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
646         (ubsan_expand_vptr_ifn): New function.
648 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
650         PR rtl-optimization/64110
651         * stmt.c (parse_output_constraint): Process '^' and '$'.
652         (parse_input_constraint): Ditto.
653         * lra-constraints.c (process_alt_operands): Process the new
654         constraints.
655         * ira-costs.c (record_reg_classes): Process the new constraint
656         '^'.
657         * genoutput.c (indep_constraints): Add '^' and '$'.
658         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
659         * doc/md.texi: Add description of the new constraints.
661 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
662             Bernd Schmidt  <bernds@codesourcery.com>
663             Cesar Philippidis  <cesar@codesourcery.com>
664             James Norris  <jnorris@codesourcery.com>
665             Tom de Vries  <tom@codesourcery.com>
666             Ilmir Usmanov  <i.usmanov@samsung.com>
667             Dmitry Bocharnikov  <dmitry.b@samsung.com>
668             Evgeny Gavrin  <e.gavrin@samsung.com>
669             Jakub Jelinek  <jakub@redhat.com>
671         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
672         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
673         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
674         New function types.
675         * builtins.c: Include "gomp-constants.h".
676         (expand_builtin_acc_on_device): New function.
677         (expand_builtin, is_inexpensive_builtin): Handle
678         BUILT_IN_ACC_ON_DEVICE.
679         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
680         New macros.
681         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
682         flag_openmp.
683         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
684         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
685         i386/intelmic-offload.h.
686         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
687         to libgomp and its dependencies.
688         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
689         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
690         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
691         * config/ia64/hpux.h (LIB_SPEC): Likewise.
692         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
693         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
694         * doc/generic.texi: Update for OpenACC changes.
695         * doc/gimple.texi: Likewise.
696         * doc/invoke.texi: Likewise.
697         * doc/sourcebuild.texi: Likewise.
698         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
699         GF_OMP_FOR_KIND_OACC_LOOP.
700         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
701         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
702         GF_OMP_TARGET_KIND_OACC_UPDATE,
703         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
704         Dump more data.
705         * gimple.c: Update comments for OpenACC changes.
706         * gimple.def: Likewise.
707         * gimple.h: Likewise.
708         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
709         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
710         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
711         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
712         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
713         appropriate place.
714         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
715         * gimplify.c: Include "gomp-constants.h".
716         Update comments for OpenACC changes.
717         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
718         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
719         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
720         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
721         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
722         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
723         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
724         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
725         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
726         OMP_CLAUSE_SEQ.
727         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
728         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
729         OMP_CLAUSE_SET_MAP_KIND.
730         (gimplify_oacc_cache): New function.
731         (gimplify_omp_for): Handle OACC_LOOP.
732         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
733         OACC_DATA.
734         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
735         OACC_EXIT_DATA, OACC_UPDATE.
736         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
737         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
738         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
739         (gimplify_body): Consider flag_openacc next to flag_openmp.
740         * lto-streamer-out.c: Include "gomp-constants.h".
741         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
742         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
743         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
744         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
745         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
746         (BUILT_IN_ACC_ON_DEVICE): New builtins.
747         * omp-low.c: Include "gomp-constants.h".
748         Update comments for OpenACC changes.
749         (struct omp_context): Add reduction_map, gwv_below, gwv_this
750         members.
751         (extract_omp_for_data, use_pointer_for_field, install_var_field)
752         (new_omp_context, delete_omp_context, scan_sharing_clauses)
753         (create_omp_child_function, scan_omp_for, scan_omp_target)
754         (check_omp_nesting_restrictions, lower_reduction_clauses)
755         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
756         Update for OpenACC changes.
757         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
758         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
759         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
760         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
761         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
762         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
763         OMP_CLAUSE_MAP_*.
764         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
765         Handle GF_OMP_FOR_KIND_OACC_LOOP.
766         (expand_omp_target, lower_omp_target): Handle
767         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
768         GF_OMP_TARGET_KIND_OACC_UPDATE,
769         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
770         GF_OMP_TARGET_KIND_OACC_DATA.
771         (pass_expand_omp::execute, execute_lower_omp)
772         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
773         flag_openmp.
774         (offload_symbol_decl): New variable.
775         (oacc_get_reduction_array_id, oacc_max_threads)
776         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
777         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
778         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
779         (oacc_gimple_assign, oacc_initialize_reduction_data)
780         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
781         functions.
782         (is_targetreg_ctx): Remove function.
783         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
784         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
785         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
786         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
787         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
788         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
789         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
790         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
791         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
792         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
793         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
794         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
795         * tree-core.h: Update comments for OpenACC changes.
796         (enum omp_clause_map_kind): Remove.
797         (struct tree_omp_clause): Change type of map_kind member from enum
798         omp_clause_map_kind to unsigned char.
799         * tree-inline.c: Update comments for OpenACC changes.
800         * tree-nested.c: Likewise.  Include "gomp-constants.h".
801         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
802         (convert_tramp_reference_stmt, convert_gimple_call): Update for
803         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
804         OMP_CLAUSE_SET_MAP_KIND.
805         * tree-pretty-print.c: Include "gomp-constants.h".
806         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
807         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
808         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
809         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
810         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
811         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
812         instead of OMP_CLAUSE_MAP_*.
813         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
814         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
815         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
816         * tree-streamer-in.c: Include "gomp-constants.h".
817         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
818         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
819         * tree-streamer-out.c: Include "gomp-constants.h".
820         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
821         OMP_CLAUSE_MAP_*.
822         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
823         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
824         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
825         * tree.c (omp_clause_num_ops): Update accordingly.
826         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
827         Likewise.
828         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
829         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
830         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
831         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
832         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
833         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
834         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
835         (OMP_CLAUSE_SET_MAP_KIND): New macro.
836         * varpool.c (varpool_node::get_create): Consider flag_openacc next
837         to flag_openmp.
838         * config/i386/intelmic-offload.h: New file.
839         * config/nvptx/offload.h: Likewise.
841 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
843         * explow.h: Remove duplicate contents.
844         * dojump.h: Likewise.
846 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
848         * arm.c (arm_xgene_tune): Add default initializer for instruction
849         fusion.
851 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
853         PR ipa/64068
854         PR ipa/64559
855         * ipa.c (symbol_table::remove_unreachable_nodes):
856         Do not put abstract origins into boundary.
858 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
860         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
861         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
863 2015-01-15  Steve Ellcey  <sellcey@mips.com>
865         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
866         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
867         builtins.def, and chkp-builtins.def.
869 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
871         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
872         ISA 2.7 (POWER8).
874 2015-01-15  Richard Biener  <rguenther@suse.de>
876         PR tree-optimization/61743
877         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
878         information on PHIs for some simple cases.
880 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
882         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
883         Include xgene1.md.
884         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
885         * config/arm/arm-cores.def (xgene1): New entry.
886         * config/arm/arm-tables.opt: Regenerate.
887         * config/arm/arm-tune.md: Regenerate.
888         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
890 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
892         * tree-if-conv.c: Include hash-map.h.
893         (aggressive_if_conv): New variable.
894         (fold_build_cond_expr): Add simplification of non-zero condition.
895         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
896         destination block is not always executed.
897         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
898         than two predecessors if AGGRESSIVE_IF_CONV is true.
899         (if_convertible_stmt_p): Fix commentary.
900         (all_preds_critical_p): New function.
901         (has_pred_critical_p): New function.
902         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
903         BB can have more than two predecessors and all incoming edges can be
904         critical.
905         (predicate_bbs): Skip predication for loop exit block, use build2_loc
906         to compute predicate for true edge.
907         (find_phi_replacement_condition): Delete this function.
908         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
909         Allow interchange PHI arguments if EXTENDED is false.
910         Change check that block containing reduction statement candidate
911         is predecessor of phi-block since phi may have more than two arguments.
912         (phi_args_hash_traits): New helper structure.
913         (struct phi_args_hash_traits): New type.
914         (phi_args_hash_traits::hash): New function.
915         (phi_args_hash_traits::equal_keys): New function.
916         (gen_phi_arg_condition): New function.
917         (predicate_scalar_phi): Add handling of phi nodes with more than two
918         arguments, delete COND and TRUE_BB arguments, insert body of
919         find_phi_replacement_condition to predicate ordinary phi nodes.
920         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
921         delete call of find_phi_replacement_condition and invoke
922         predicate_scalar_phi with two arguments.
923         (insert_gimplified_predicates): Add assert that non-predicated block
924         don't have statements to insert.
925         (ifcvt_split_critical_edges): New function.
926         (ifcvt_split_def_stmt): Likewise.
927         (ifcvt_walk_pattern_tree): Likewise.
928         (stmt_is_root_of_bool_pattern): Likewise.
929         (ifcvt_repair_bool_pattern): Likewise.
930         (ifcvt_local_dce): Likewise.
931         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
932         is copy of inner or outer loop force_vectorize field, invoke
933         ifcvt_split_critical_edges, ifcvt_local_dce and
934         ifcvt_repair_bool_pattern for aggressive if-conversion.
936 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
938         * config/aarch64/aarch64.md: Include xgene1.md.
939         * config/aarch64/xgene1.md: New file.
941 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
943         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
944         xgene1 (APM XGene-1) core definition.
945         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
946         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
947         * doc/invoke.texi: Document -mcpu=xgene1.
949 2015-10-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
951         * dojump.h: New header file.
952         * explow.h: Likewise.
953         * expr.h: Remove includes.
954         Move expmed.c prototypes to expmed.h.
955         Move dojump.c prototypes to dojump.h.
956         Move alias.c prototypes to alias.h.
957         Move explow.c prototypes to explow.h.
958         Move calls.c prototypes to calls.h.
959         Move emit-rtl.c prototypes to emit-rtl.h.
960         Move varasm.c prototypes to varasm.h.
961         Move stmt.c prototypes to stmt.h.
962         (saved_pending_stack_adjust): Move to dojump.h.
963         (adjust_address): Move to explow.h.
964         (adjust_address_nv): Move to emit-rtl.h.
965         (adjust_bitfield_address): Likewise.
966         (adjust_bitfield_address_size): Likewise.
967         (adjust_bitfield_address_nv): Likewise.
968         (adjust_automodify_address_nv): Likewise.
969         * explow.c (expr_size): Move to expr.c.
970         (int_expr_size): Likewise.
971         (tree_expr_size): Likewise.
972         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
973         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
974         * genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
975         insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
976         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
977         statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
978         stmt.h.
979         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
980         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
981         * genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
982         fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
983         stmt.h.
984         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
985         machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
986         double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
987         insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
988         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
989         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
990         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
991         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
992         tm.h tree.h varasm.h vec.h wide-int.h.
993         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
994         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
995         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
996         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
997         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
998         explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
999         real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
1000         * loop-iv.c: Likewise.
1001         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1002         explow.h expmed.h fixed-value.h flags.h inchash.h real.h
1003         statistics.h stmt.h tree.h varasm.h wide-int.h.
1004         * lra-constraints.c: Likewise.
1005         * lra-eliminations.c: Likewise.
1006         * lra-lives.c: Likewise.
1007         * lra-remat.c: Likewise.
1008         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1009         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
1010         statistics.h stmt.h tree.h varasm.h wide-int.h.
1011         * hw-doloop.c: Likewise.
1012         * ira-color.c: Likewise.
1013         * ira-emit.c: Likewise.
1014         * loop-doloop.c: Likewise.
1015         * loop-invariant.c: Likewise.
1016         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1017         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
1018         statistics.h stmt.h tree.h varasm.h wide-int.h.
1019         * caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1020         explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
1021         stmt.h tree.h varasm.h wide-int.h.
1022         * combine-stack-adj.c: Likewise.
1023         * cse.c: Likewise.
1024         * ddg.c: Likewise.
1025         * ifcvt.c: Likewise.
1026         * ira-costs.c: Likewise.
1027         * jump.c: Likewise.
1028         * lra-coalesce.c: Likewise.
1029         * lra-spills.c: Likewise.
1030         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1031         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
1032         stmt.h varasm.h wide-int.h.
1033         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1034         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1035         varasm.h.
1036         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
1037         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
1038         statistics.h stmt.h varasm.h wide-int.h.
1039         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
1040         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
1041         varasm.h wide-int.h.
1042         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
1043         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1044         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
1045         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
1046         statistics.h stmt.h.
1047         * config/tilepro/tilepro.c: Likewise.
1048         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
1049         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
1050         * config/pdp11/pdp11.c: Likewise.
1051         * config/xtensa/xtensa.c: Likewise.
1052         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
1053         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1054         varasm.h.
1055         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1056         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1057         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
1058         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1059         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1060         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
1061         * rtl-chkp.c: Likewise.
1062         * tree-chkp-opt.c: Likewise.
1063         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
1064         expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1065         insn-config.h real.h statistics.h stmt.h varasm.h.
1066         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1067         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1068         statistics.h stmt.h.
1069         * tree-vect-data-refs.c: Likewise.
1070         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
1071         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1072         rtl.h statistics.h stmt.h varasm.h.
1073         * internal-fn.c: Likewise.
1074         * ipa-icf-gimple.c: Likewise.
1075         * lto-section-out.c: Likewise.
1076         * tree-data-ref.c: Likewise.
1077         * tree-nested.c: Likewise.
1078         * tree-outof-ssa.c: Likewise.
1079         * tree-predcom.c: Likewise.
1080         * tree-pretty-print.c: Likewise.
1081         * tree-scalar-evolution.c: Likewise.
1082         * tree-ssa-strlen.c: Likewise.
1083         * tree-vect-loop.c: Likewise.
1084         * tree-vect-patterns.c: Likewise.
1085         * tree-vect-slp.c: Likewise.
1086         * tree-vect-stmts.c: Likewise.
1087         * tsan.c: Likewise.
1088         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1089         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1090         stmt.h.
1091         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
1092         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1093         statistics.h stmt.h varasm.h.
1094         * loop-unroll.c: Likewise.
1095         * ubsan.c: Likewise.
1096         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
1097         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
1098         stmt.h varasm.h.
1099         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1100         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
1101         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
1102         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1103         statistics.h stmt.h.
1104         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
1105         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1106         statistics.h stmt.h varasm.h.
1107         * gimple-match-head.c: Likewise.
1108         * lto-cgraph.c: Likewise.
1109         * lto-section-in.c: Likewise.
1110         * lto-streamer-in.c: Likewise.
1111         * lto-streamer-out.c: Likewise.
1112         * tree-affine.c: Likewise.
1113         * tree-cfg.c: Likewise.
1114         * tree-cfgcleanup.c: Likewise.
1115         * tree-if-conv.c: Likewise.
1116         * tree-into-ssa.c: Likewise.
1117         * tree-ssa-alias.c: Likewise.
1118         * tree-ssa-copyrename.c: Likewise.
1119         * tree-ssa-dse.c: Likewise.
1120         * tree-ssa-forwprop.c: Likewise.
1121         * tree-ssa-live.c: Likewise.
1122         * tree-ssa-math-opts.c: Likewise.
1123         * tree-ssa-pre.c: Likewise.
1124         * tree-ssa-sccvn.c: Likewise.
1125         * tree-tailcall.c: Likewise.
1126         * tree-vect-generic.c: Likewise.
1127         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1128         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
1129         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1130         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
1131         * varasm.c: Likewise.
1132         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1133         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
1134         varasm.h.
1135         * init-regs.c: Likewise.
1136         * ira.c: Likewise.
1137         * omp-low.c: Likewise.
1138         * stack-ptr-mod.c: Likewise.
1139         * tree-ssa-reassoc.c: Likewise.
1140         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1141         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
1142         varasm.h.
1143         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1144         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
1145         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1146         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
1147         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1148         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
1149         * tree-ssa-phiopt.c: Likewise.
1150         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1151         fixed-value.h hashtab.h real.h statistics.h stmt.h.
1152         * config/fr30/fr30.c: Likewise.
1153         * config/frv/frv.c: Likewise.
1154         * expr.c: Likewise.
1155         * final.c: Likewise.
1156         * optabs.c: Likewise.
1157         * passes.c: Likewise.
1158         * simplify-rtx.c: Likewise.
1159         * stmt.c: Likewise.
1160         * toplev.c: Likewise.
1161         * var-tracking.c: Likewise.
1162         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1163         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1164         * lower-subreg.c: Likewise.
1165         * postreload-gcse.c: Likewise.
1166         * ree.c: Likewise.
1167         * reginfo.c: Likewise.
1168         * store-motion.c: Likewise.
1169         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1170         fixed-value.h hashtab.h real.h stmt.h varasm.h.
1171         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1172         fixed-value.h hashtab.h statistics.h stmt.h.
1173         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1174         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
1175         * except.c: Likewise.
1176         * explow.c: Likewise.
1177         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1178         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
1179         varasm.h.
1180         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1181         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
1182         * tree-ssa-structalias.c: Likewise.
1183         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1184         fixed-value.h insn-config.h real.h statistics.h.
1185         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1186         fixed-value.h insn-config.h real.h statistics.h stmt.h.
1187         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1188         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1189         * cfgbuild.c: Likewise.
1190         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1191         fixed-value.h real.h rtl.h statistics.h stmt.h.
1192         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1193         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1194         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1195         fixed-value.h real.h statistics.h stmt.h.
1196         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1197         fixed-value.h real.h statistics.h stmt.h varasm.h.
1198         * cprop.c: Likewise.
1199         * modulo-sched.c: Likewise.
1200         * postreload.c: Likewise.
1201         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1202         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
1203         statistics.h stmt.h varasm.h.
1204         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
1205         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1206         rtl.h statistics.h stmt.h varasm.h.
1207         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
1208         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
1209         varasm.h.
1210         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1211         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
1212         varasm.h.
1213         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
1214         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
1215         varasm.h.
1216         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
1217         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1218         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1219         function.h real.h statistics.h stmt.h varasm.h.
1220         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1221         insn-config.h real.h statistics.h stmt.h.
1222         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1223         statistics.h stmt.h.
1224         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
1225         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
1226         statistics.h stmt.h varasm.h.
1227         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1228         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
1229         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1230         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
1231         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
1232         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1233         statistics.h stmt.h varasm.h.
1234         * ipa-polymorphic-call.c: Likewise.
1235         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
1236         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1237         stmt.h.
1238         * config/c6x/c6x.c: Likewise.
1239         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
1240         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1241         statistics.h stmt.h varasm.h.
1242         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1243         hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
1244         * ipa-split.c: Likewise.
1245         * tree-eh.c: Likewise.
1246         * tree-ssa-dce.c: Likewise.
1247         * tree-ssa-loop-niter.c: Likewise.
1248         * tree-vrp.c: Likewise.
1249         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
1250         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
1251         stmt.h.
1252         * config/nds32/nds32-fp-as-gp.c: Likewise.
1253         * config/nds32/nds32-intrinsic.c: Likewise.
1254         * config/nds32/nds32-isr.c: Likewise.
1255         * config/nds32/nds32-md-auxiliary.c: Likewise.
1256         * config/nds32/nds32-memory-manipulation.c: Likewise.
1257         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1258         * config/nds32/nds32-predicates.c: Likewise.
1259         * config/nds32/nds32.c: Likewise.
1260         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
1261         fixed-value.h hashtab.h real.h statistics.h.
1262         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
1263         fixed-value.h hashtab.h real.h statistics.h stmt.h.
1264         * config/arm/arm.c: Likewise.
1265         * config/avr/avr.c: Likewise.
1266         * config/bfin/bfin.c: Likewise.
1267         * config/h8300/h8300.c: Likewise.
1268         * config/i386/i386.c: Likewise.
1269         * config/ia64/ia64.c: Likewise.
1270         * config/iq2000/iq2000.c: Likewise.
1271         * config/m32c/m32c.c: Likewise.
1272         * config/m32r/m32r.c: Likewise.
1273         * config/m68k/m68k.c: Likewise.
1274         * config/mcore/mcore.c: Likewise.
1275         * config/mep/mep.c: Likewise.
1276         * config/mips/mips.c: Likewise.
1277         * config/mn10300/mn10300.c: Likewise.
1278         * config/moxie/moxie.c: Likewise.
1279         * config/pa/pa.c: Likewise.
1280         * config/rl78/rl78.c: Likewise.
1281         * config/rx/rx.c: Likewise.
1282         * config/s390/s390.c: Likewise.
1283         * config/sh/sh.c: Likewise.
1284         * config/sparc/sparc.c: Likewise.
1285         * config/spu/spu.c: Likewise.
1286         * config/stormy16/stormy16.c: Likewise.
1287         * config/v850/v850.c: Likewise.
1288         * config/vax/vax.c: Likewise.
1289         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
1290         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1291         * config/msp430/msp430.c: Likewise.
1292         * predict.c: Likewise.
1293         * value-prof.c: Likewise.
1294         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
1295         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
1296         * config/microblaze/microblaze.c: Likewise.
1297         * config/nios2/nios2.c: Likewise.
1298         * config/rs6000/rs6000.c: Likewise.
1299         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1300         insn-config.h real.h rtl.h statistics.h stmt.h.
1301         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1302         insn-config.h real.h statistics.h stmt.h.
1303         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
1304         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1305         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
1306         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1307         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1308         real.h statistics.h stmt.h.
1309         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
1310         fixed-value.h statistics.h stmt.h.
1311         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
1312         stmt.h.
1314 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
1316         * gengtype.c (create_user_defined_type): Workaround
1317         -Wmaybe-uninitialized false positives.
1318         * cse.c (fold_rtx): Likewise.
1319         * loop-invariant.c (gain_for_invariant): Likewise.
1321 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
1323         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1324         set the memory attributes in all cases but clear MEM_EXPR if need be.
1326 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
1328         PR tree-optimization/64434
1329         * cfgexpand.c (reorder_operands): New function.
1330         (expand_gimple_basic_block): Insert call of reorder_operands if
1331         optimized is true.
1333 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1335         * config/mips/micromips.md (*swp): Remove explicit parallel.
1336         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
1337         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
1338         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
1339         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
1340         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
1341         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
1342         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
1343         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
1344         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
1345         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
1346         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
1347         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
1348         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
1349         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
1350         (mips_wrdsp): Likewise.
1351         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
1352         parallel.
1353         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
1354         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
1355         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
1356         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
1357         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
1358         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
1359         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
1360         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
1361         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
1363 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
1365         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
1366         (mips_print_operand): Support 'y' to print exact log2 in decimal
1367         of a const_int.
1368         * config/mips/mips.h (ISA_HAS_LSA): New define.
1369         (ISA_HAS_DLSA): Likewise.
1370         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
1371         * config/mips/predicates.md (const_immlsa_operand): New predicate.
1373 2015-01-15  Martin Liska  <mliska@suse.cz>
1375         PR target/64377
1376         * optc-save-gen.awk: Add support for array types.
1378 2015-01-15  Richard Biener  <rguenther@suse.de>
1380         PR middle-end/64365
1381         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1382         for MEM_REF access functions with the same base can never partially
1383         overlap.
1385 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
1387         * common.opt: New option -fstack-protector-explicit.
1388         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
1389         (stack_protect_decl_phase): Handle stack_protect attribute for
1390         explicit stack protection requests.
1391         (expand_used_vars): Similarly.
1392         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
1393         * doc/extend.texi: Add documentation for "stack_protect" attribute.
1394         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
1396 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
1398         PR target/53988
1399         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
1400         reg-reg copies.
1401         (sh_extending_set_of_reg): New struct.
1402         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
1403         sh_remove_reg_dead_or_unused_notes): New Declarations.
1404         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
1405         sh_find_extending_set_of_reg, sh_split_tst_subregs,
1406         sh_extending_set_of_reg::use_as_extended_reg): New functions.
1407         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
1408         convert to insn_and_split and use new function sh_split_tst_subregs.
1410 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
1412         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
1413         option.
1414         (Optimization Options): Move -fuse-ld documentation to...
1415         (Link Options): ...here.
1417 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
1419         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
1420         offsets.
1421         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
1422         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
1423         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
1424         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
1425         instead of ZR for the memory operand of LL/SC.
1426         (compare_and_swap_12, sync_add<mode>): Likewise.
1427         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
1428         (sync_new_<optab>_12, sync_nand_12): Likewise.
1429         (sync_old_nand_12, sync_new_nand_12): Likewise.
1430         (sync_sub<mode>, sync_old_add<mode>): Likewise.
1431         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
1432         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
1433         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
1434         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
1435         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
1436         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
1437         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
1438         * doc/md.texi (ZC): Update description.
1440 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
1442         * builtins.c (expand_builtin_atomic_exchange): Remove error when
1443         memory model is CONSUME.
1444         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
1445         expand_builtin_atomic_store): Change invalid memory model errors to
1446         warnings.
1447         (expand_builtin_atomic_clear): Change invalid model errors to warnings
1448         and issue warning for CONSUME.
1450 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
1452         * lto-cgraph: Update function comments for
1453         lto_symtab_encoder_encode_*.
1455 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
1457         * Makefile.in (site.exp): Do not set ENABLE_LTO.
1459 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
1461         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
1462         * lto-cgraph.c (select_what_to_stream): Remove argument, use
1463         lto_stream_offload_p instead.
1464         * lto-streamer.h (select_what_to_stream): Remove argument.
1465         * passes.c (ipa_write_summaries): Likewise.
1466         * tree-pass.h (ipa_write_summaries): Likewise.
1468 2015-01-14  Richard Biener  <rguenther@suse.de>
1470         PR tree-optimization/59354
1471         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
1472         groups larger than the slp group size as having gaps.
1474 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
1476         PR middle-end/59448
1477         * builtins.c (get_memmodel): Promote consume to acquire always.
1479 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
1481         PR target/64386
1482         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
1483         V32HImode. 
1485 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
1487         PR target/64393
1488         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
1489         Enable AVX512BW.
1490         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
1491         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
1492         AVX512VBMI, as it implies AVX512BW.
1494 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
1496         PR target/64387
1497         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
1498         (vec_unpacks_hi_v16sf): Ditto.
1500 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1502         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
1503         is not available.
1505 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1507         * doc/invoke.texi (mapcs): Mention deprecation.
1508         (mapcs-frame): Likewise.
1510 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1512         PR target/64453
1513         * config/arm/arm.c (callee_saved_reg_p): Define.
1514         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
1515         register is callee saved instead of !call_used_regs[reg].
1516         (thumb1_compute_save_reg_mask): Likewise.
1518 2015-01-14  Hale Wang  <hale.wang@arm.com>
1520         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
1521         Cortex-M7.
1523 2015-01-14  Richard Biener  <rguenther@suse.de>
1525         PR lto/64415
1526         * tree-inline.c (insert_debug_decl_map): Check destination
1527         function MAY_HAVE_DEBUG_STMTS.
1528         (insert_init_debug_bind): Likewise.
1529         (insert_init_stmt): Remove redundant check.
1530         (remap_gimple_stmt): Drop debug stmts if the destination
1531         function has var-tracking assignments disabled.
1533 2015-01-14  Martin Liska  <mliska@suse.cz>
1535         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
1536         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
1538 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1540         PR target/64460
1541         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
1542         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
1544 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
1546         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
1547         level from an ARCH; do not inject the default.
1548         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
1549         MIPS_ISA_LEVEL_SPEC.
1550         (MIPS_ISA_NAN2008_SPEC): Update comment.
1551         (BASE_DRIVER_SELF_SPECS): Likewise.
1552         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
1553         MIPS_DEFAULT_ISA_LEVEL_SPEC.
1554         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
1555         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
1556         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
1558 2015-01-14  Richard Biener  <rguenther@suse.de>
1560         PR tree-optimization/64493
1561         PR tree-optimization/64495
1562         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
1563         assign the proper vectorized PHI to the inner loop exit PHIs.
1565 2015-01-14  Joey Ye  <joey.ye@arm.com>
1567         * config/arm/arm.c (arm_compute_save_reg_mask):
1568         Do not save lr in case of tail call.
1569         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
1571 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
1573         * tree-vrp.c (check_array_ref): Emit more warnings
1574         for warn_array_bounds >= 2.
1575         * common.opt: New option -Warray-bounds=.
1576         * doc/invoke.texi: Document -Warray-bounds=.
1578 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
1580         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
1581         (mforbid-fp-as-gp): Remove.
1582         (mex9): Remove.
1583         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
1584         (nds32_symbol_load_store_p): Remove.
1585         (nds32_fp_as_gp_check_available): Clean up implementation.
1586         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
1587         cases.
1588         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
1589         fp-as-gp and ex9 cases.
1591 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
1593         * tree-profile.c (init_ic_make_global_vars): Drop workaround
1594         for bintuils bug 14342.
1595         (init_ic_make_global_vars): Likewise.
1596         (gimple_init_edge_profiler): Likewise.
1597         (gimple_gen_ic_func_profiler): Likewise.
1599 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1601         * ipa-inline.c (inline_small_functions): Swap the operands in
1602         enum.
1604 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
1606         PR ipa/64481
1607         * ipa-inline-analysis.c (node_growth_cache): Remove.
1608         (initialize_growth_caches): Do not initialize it.
1609         (free_growth_caches): Do not free it.
1610         (do_estimate_growth): Rename to ...
1611         (estimate_growth): ... this one; drop growth cache code.
1612         (growth_likely_positive): Always go the heuristics way.
1613         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
1614         (reset_edge_caches): Do not reset node growth.
1615         (heap_edge_removal_hook): Do not maintain cache.
1616         (inline_small_functions): Likewise; strenghten sanity check.
1617         (ipa_inline): Do not maintain caches.
1618         * ipa-inline.h (node_growth_cache): Remove.
1619         (do_estimate_growth): Remove to ...
1620         (estimate_growth): this one; remove inline version.
1621         (reset_node_growth_cache): Remove.
1623 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
1625         PR ipa/64565
1626         * ipa-inline.c (inline_small_functions): Update callee keys after
1627         resolving speculation
1628         (inline_small_functions): Always check monotonicity of the queue.
1630 2015-01-13  Marek Polacek  <polacek@redhat.com>
1632         PR middle-end/64391
1633         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
1635 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
1637         PR rtl-optimization/64286
1638         * ree.c (combine_reaching_defs): Move part of comment earlier,
1639         remove !SCALAR_INT_MODE_P check.
1640         (add_removable_extension): Don't add vector mode
1641         extensions if all uses of the source register aren't the same
1642         vector extensions.
1644 2015-01-13  Renlin Li  <renlin.li@arm.com>
1646         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
1647         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1649 2015-01-13  Martin Liska  <mliska@suse.cz>
1651         * ipa-icf.c (sem_function::equals_private): Call new functions
1652         cl_target_option_print_diff and cl_optimization_print_diff.
1653         * optc-save-gen.awk (cl_target_option_print_diff): New function.
1654         (cl_optimization_print_diff): Likewise.
1655         * opth-gen.awk: Likewise.
1657 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
1659         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
1660         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
1661         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
1662         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
1663         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
1664         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
1666 2015-01-13  Andrew Pinski   <apinski@cavium.com>
1668         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
1669         instead of src mode.    
1671 2015-01-13  Richard Biener  <rguenther@suse.de>
1673         PR lto/64373
1674         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
1675         DECL_CONTEXT.
1677 2015-01-13  Andrew Pinski   <apinski@cavium.com>
1679         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
1680         volatile mems.
1681         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
1683 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
1685         PR middle-end/63974
1686         * cfgexpand.c (expand_computed_goto): Don't call
1687         convert_memory_address here.
1689 2015-01-13  Richard Biener  <rguenther@suse.de>
1691         PR tree-optimization/64406
1692         * tree-loop-distibution.c (pass_loop_distribution::execute):
1693         Reset the SCEV hashtable if we distributed anything.
1695 2015-01-13  Richard Biener  <rguenther@suse.de>
1697         PR tree-optimization/64404
1698         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
1699         SLP types for CSEd loads.
1701 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1703         PR tree-optimization/64436
1704         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
1705         merge of two symbolic numbers for a bitwise OR to ...
1706         (perform_symbolic_merge): This. Also fix computation of the range and
1707         end of the symbolic number corresponding to the result of a bitwise OR.
1709 2015-01-13  Richard Biener  <rguenther@suse.de>
1711         PR tree-optimization/64568
1712         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
1713         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
1715 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1717         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
1718         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
1720 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1722         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
1723         target-specific symbol_ref flag.
1724         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
1725         resides in rodata section.
1726         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
1727         (nds32_encode_section_info): New function.
1729 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1731         * config/nds32/nds32.md (call): Use pseudo instruction bal which
1732         clobbers TA_REGNUM if large code model is specified.
1733         (call_register): Likewise.
1734         (call_immediate): Likewise.
1735         (call_value): Likewise.
1736         (call_value_register): Likewise.
1737         (call_value_immediate): Likewise.
1739 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1741         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
1742         (TARGET_CMODEL_MEDIUM): New macro.
1743         (TARGET_CMODEL_LARGE): New macro.
1744         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
1745         code model setting in assembly code.
1747 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1749         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
1750         Remove MASK_GP_DIRECT flag.
1751         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
1752         one of the multilib default options.
1753         * config/nds32/nds32.opt (mgp-direct): Remove.
1754         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
1755         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
1757 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
1759         * config/nds32/nds32.opt (mcmodel): Add new option.
1760         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
1761         to describe code model.
1763 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
1765         PR target/64479
1766         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1768 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1770         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
1771         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
1772         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
1773         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
1774         __builtin_sh_set_fpscr.
1776 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
1778         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
1779         after a funtion name just to indicate it is a function.
1780         ([-fsanitize-undefined-trap-on-error]): Likewise.
1781         ([-fdbg-cnt=]): Likewise.
1782         ([-mmemcpy]): Likewise.
1783         ([-mflush-func]): Likewise.
1784         ([-msynci]): Likewise.
1786 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
1788         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
1789         example.
1790         
1791 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
1793         PR tree-optimization/64563
1794         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
1795         instead of != VR_VARYING.
1797         PR target/64513
1798         * config/i386/i386.c (ix86_expand_prologue): Add
1799         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
1801         PR tree-optimization/64454
1802         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
1803         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
1804         for signed or [0, op1 - 1] for unsigned modulo.
1805         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
1806         even if op1 does not satisfy integer_pow2p.
1808         PR other/64370
1809         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
1811 2015-01-12  Jeff Law  <law@redhat.com>
1813         PR target/64461
1814         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
1815         (trunchiqi2, truncsihi2): Similarly.
1817         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
1818         rather than calling F.
1820 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1822         * tsan.c (instrument_expr): Use force_gimple_operand.
1823         Use may_be_nonaddressable_p instead of is_gimple_addressable.
1825 2015-01-12  Richard Biener  <rguenther@suse.de>
1827         PR tree-optimization/64530
1828         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
1829         back dr1.
1831 2015-01-12  Richard Biener  <rguenther@suse.de>
1833         PR middle-end/64357
1834         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
1835         latches properly.
1837 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1839         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
1840         Cortex-A17 tuning parameters.
1841         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
1843 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1845         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
1846         * config/arm/arm.c (arm_macro_fusion_p): New function.
1847         (arm_macro_fusion_pair_p): Likewise.
1848         (TARGET_SCHED_MACRO_FUSION_P): Define.
1849         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
1850         (ARM_FUSE_NOTHING): Likewise.
1851         (ARM_FUSE_MOVW_MOVT): Likewise.
1852         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
1853         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
1854         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
1855         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
1856         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
1857         arm_cortex_a5_tune): Specify fuseable_ops value.
1859 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
1861         PR bootstrap/64561
1862         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
1863         test for PIE with copy reloc.
1864         * configure: Regenerated.
1866 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1868         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
1869         in gen_rtx_REG.
1870         (arm_tls_descseq_addr): Likewise.
1871         (arm_gen_movmemqi): Likewise.
1872         (arm_expand_epilogue_apcs_frame): Likewise.
1873         (arm_expand_epilogue): Likewise.
1874         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
1875         in gen_rtx_REG.
1877 2015-01-12  Martin Liska  <mliska@suse.cz>
1879         PR ipa/64550
1880         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
1881         volatility for correct operands.
1883 2015-01-12  Martin Liska  <mliska@suse.cz>
1885         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
1886         that a function is not leaf.
1887         (sem_function::compare_polymorphic_p): Likewise.
1889 2015-01-12  Martin Liska  <mliska@suse.cz>
1891         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
1892         that a function is not leaf.
1893         (sem_function::compare_polymorphic_p): Likewise.
1895 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1897         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
1898         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
1899         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
1900         fold-const.h, tree-check.h.
1902 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
1904         PR ipa/63967
1905         PR ipa/64425
1906         * ipa-inline.c (compute_uninlined_call_time,
1907         compute_inlined_call_time): Use counts for extra precision when
1908         needed possible.
1909         (big_speedup_p): Fix formating.
1910         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
1911         (relative_time_benefit): Remove.
1912         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
1913         merge guessed and read profile paths.
1914         (inline_small_functions): Count only !optimize_size functions into
1915         initial size; be more lax about sanity check when profile is used;
1916         be sure to update inlined function profile when profile is read.
1918 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
1920         PR ipa/63470
1921         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
1922         cost when edge becomes direct.
1923         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
1924         is resolved or when introducing new speculation.
1926 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
1928         PR ipa/64551
1929         PR ipa/64552
1930         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
1931         '||' to fix typo issue.
1933         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
1934         accept and return NULL.
1936 2015-01-12  Martin Liska  <mliska@suse.cz>
1938         * cgraph.c (cgraph_edge::remove_callee): Move function to header
1939         file for being inlined.
1940         (cgraph_set_edge_callee): Delete.
1941         (cgraph_edge::redirect_callee): Move function to header file
1942         for being inlined.
1943         (cgraph_edge::make_direct): Use new function.
1944         (cgraph_edge::dump_edge_flags): New function created from
1945         static dump_edge_flags function.
1946         (cgraph_node::dump): Use new function.
1947         (cgraph_edge::verify_count_and_frequency): New function created
1948         from verify_edge_count_and_frequency.
1949         (cgraph_edge::verify_corresponds_to_fndecl): New function created
1950         from verify_edge_corresponds_to_fndecl.
1951         (verify_edge_corresponds_to_fndecl): Delete.
1952         (cgraph_node::verify_node): Use new function.
1953         * cgraph.h (cgraph_edge::set_callee): New function.
1954         (cgraph_edge::dump_edge_flags): Likewise.
1955         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
1957 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
1959         * ipa-utils.c (estimate_function_body_sizes): Do not
1960         free node params when called late with early=true.
1962 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
1964         * doc/md.texi (Instruction Patterns): Rewrite text for
1965         clarity.
1966         (Example): Likewise.
1968 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
1970         * doc/invoke.texi (Option Summary): Break long lines.
1971         [(-fdiagnostics-color)]: Put long literal in @smallexample
1972         instead of inline.
1973         [(-fsanitize-recover)]: Likewise.
1974         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
1975         [(-ffast-math)]: Likewise.
1976         [(--param max-inline-insns-recursive)]: Likewise.
1977         [(--param max-inline-recursive-depth)]: Likewise.
1978         [(-mno-text-section-literals)]: Likewise.
1979         
1980 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
1982         * doc/install.texi: Update for libgomp being renamed from "GNU
1983         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
1984         Runtime Library".
1985         * doc/sourcebuild.texi: Likewise.
1987 2015-01-10  Anthony Green  <green@moxielogic.com>
1989         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
1990         mul.x availability for moxiebox configuration.
1992 2015-01-09  Anthony Green  <green@moxielogic.com>
1994         * config/moxie/moxie.md: Tabify assembly output.
1996 2015-01-09  Anthony Green  <green@moxielogic.com>
1998         * config/moxie/moxie.md (CC_REG): Correct register definition.
2000 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
2002         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
2003         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
2004         of log files.
2006 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2008         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
2010 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
2011             Jakub Jelinek  <jakub@redhat.com>
2013         PR middle-end/64412
2014         * lto-streamer.h (lto_stream_offload_p): New declaration.
2015         * lto-streamer.c (lto_stream_offload_p): New variable.
2016         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
2017         at the same time as section_name_prefix.
2018         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
2019         if lto_stream_offload_p.
2020         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
2021         stream TREE_TARGET_OPTION if lto_stream_offload_p.
2022         (write_ts_function_decl_tree_pointers): Don't
2023         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
2024         * tree-streamer-in.c (unpack_value_fields): Don't stream
2025         TREE_TARGET_OPTION in if ACCEL_COMPILER.
2026         (lto_input_ts_function_decl_tree_pointers): Don't stream
2027         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
2028         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
2029         instead of section_name_prefix string comparisons.
2031 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
2033         PR rtl-optimization/64536
2034         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
2035         tablejumps.
2037 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2039         PR tree-optimization/64322
2040         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
2041         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
2043 2015-01-09  Tom de Vries  <tom@codesourcery.com>
2045         PR rtl-optimization/64539
2046         * regcprop.c (kill_clobbered_values): Factor out of ...
2047         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
2048         instead of note_stores with kill_clobbered_value.
2050 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2052          * ginclude/unwind-arm-common.h: Revert previous commit.
2054 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2056         * config.gcc (arm*-*-freebsd*): New configuration.
2057         * config/arm/freebsd.h: New file.
2058         * config.host: Add extra components for arm*-*-freebsd*.
2059         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
2060         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
2062 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2064         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
2065         for -mcpu=e6500.
2066         * config/rs6000/t-rtems: Add e6500 multilibs.
2068 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2070         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
2071         MPC8540.
2073 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2075         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
2076         MULTILIB_EXCEPTIONS.
2078 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2080         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
2081         MULTILIB_EXCEPTIONS.
2083 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2085         * config/arm/t-rtems-eabi: Rename to...
2086         * config/arm/t-rtems: ...this.
2087         * config/arm/rtems-eabi.h: Rename to...
2088         * config/arm/rtems.h: ...this.
2089         * config.gcc (arm*-*-rtems*): Reflect changes above.
2091 2015-01-09  Richard Biener  <rguenther@suse.de>
2093         PR tree-optimization/64410
2094         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
2095         on the LHS.
2096         (execute_update_addresses_taken): Deal with that.
2097         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
2098         loads/stores for complex variables.
2100 2015-01-09  Martin Liska  <mliska@suse.cz>
2102         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
2103         name comparison.
2104         (func_checker::compare_memory_operand): New function.
2105         (func_checker::compare_operand): Split case to newly
2106         added functions.
2107         (func_checker::compare_cst_or_decl): New function.
2108         (func_checker::compare_gimple_call): Identify
2109         memory operands.
2110         (func_checker::compare_gimple_assign): Likewise.
2111         * ipa-icf-gimple.h: New function.
2113 2015-01-09  Martin Liska  <mliska@suse.cz>
2115         PR ipa/64503
2116         * sreal.c (sreal::dump): Change unsigned format to signed for
2117         m_exp value.
2118         (sreal::to_double): Replace exp2 with scalbln.
2120 2015-01-09  Martin Liska  <mliska@suse.cz>
2122         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
2123         * ipa-icf.c (sem_function::equals_private): Add support for target and
2124         (sem_item_optimizer::merge_classes): Remove redundant function
2125         optimization flags comparison.
2126         * tree.h (target_opts_for_fn): New function.
2128 2015-01-09  Tom de Vries  <tom@codesourcery.com>
2130         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
2132 2015-01-09  Kito Cheng  <kito@0xlab.org>
2134         PR rtl-optimization/64348
2135         * lra-constraints.c (split_reg): Fix caller-save store/restore
2136         instruction generation.
2138 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
2140         PR gcov-profile/61790
2141         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
2142         long long.  Fallback to int64_t if host doesn't have long long and
2143         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
2145 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2147         PR tree-optimization/63989
2148         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
2149         from 1000 to 10000.
2150         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
2151         (get_stridx): If we don't have a record for certain SSA_NAME,
2152         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
2153         constant offset, call get_stridx_plus_constant.
2154         (get_stridx_plus_constant): New function.
2155         (zero_length_string): Don't use get_stridx here.
2157         PR target/55023
2158         PR middle-end/64388
2159         * dse.c (struct insn_info): Mention frame_read set also
2160         before reload for tail calls on some targets.
2161         (scan_insn): Revert 2014-12-22 change.  Set frame_read
2162         also before reload for tail calls if
2163         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
2164         instead of add_non_frame_wild_read for non-const/memset
2165         tail calls after reload.
2167 2015-01-08  Jason Merrill  <jason@redhat.com>
2169         * ubsan.c (do_ubsan_in_current_function): New.
2170         (pass_ubsan::gate): Use it.
2171         * ubsan.h: Declare it.
2172         * convert.c (convert_to_integer): Use it.
2174 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2176         PR target/64338
2177         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
2178         compare_code when it is unconditionally overwritten afterwards.
2179         Use ix86_reverse_condition instead of reverse_condition.  Don't
2180         change code if *reverse_condition* returned UNKNOWN and don't
2181         swap ct/cf and negate diff in that case.
2183 2015-01-08  Mike Stump  <mikestump@comcast.net>
2185         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
2186         (pass_tsan_O0::gate): Likewise.
2187         * extend.texi (Function Attributes): Add no_sanitize_thread
2188         documentation.
2190 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
2192         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
2193         for registering builtins.
2194         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
2195         add -fopenmp to the argv_obstack used when invoking
2196         compile_for_target.
2198         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
2199         add "-m32" or "-m64" to argv_obstack.
2200         (generate_host_descr_file): Likewise, when invoking host_compiler.
2201         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
2202         ld.
2204 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
2206         * config/sh/sh-mem.cc: Use constant as second operand when emitting
2207         tstsi_t insns.
2209 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
2211         PR target/55212
2212         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
2213         constant load if constant operand fits into I08.
2215 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
2217         PR sanitizer/64336
2218         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
2219         and TREE_THIS_VOLATILE for MEM_REFs.
2220         (build5_stat): Fix up initialization of TREE_READONLY and
2221         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
2223 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2225         PR target/64533
2226         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
2227         of r for the second alternative of the destination operand.
2229 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
2231         PR target/36557
2232         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
2234 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2236         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
2237         keywords.
2238         ([-fivar-visibility], [-fvisibility]): Likewise.
2240 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2242         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
2243         the file where @code, @command, etc is more appropriate.
2245 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
2247         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
2248         of -mrecip= documentation.
2250 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2252         PR target/64505
2253         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
2254         correct reload handler if -m32 -mpowerpc64 is used.
2256 2015-01-06  Tom de Vries  <tom@codesourcery.com>
2258         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
2260 2015-01-08  Christian Bruel  <christian.bruel@st.com>
2262         PR target/64507
2263         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
2265 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2267         PR tree-optimization/63259
2268         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
2269         if optab exists for 16bit byteswap.
2271 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
2273         * opts.c (common_handle_option): Add support for
2274         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
2275         * doc/invoke.texi: Document -fno-sanitize=all,
2276         -f{,no-}sanitize-recover=all.  Document that
2277         -fsanitize=float-cast-overflow is not enabled
2278         by -fsanitize=undefined.  Fix up documentation
2279         of -f{,no-}sanitize-recover.
2281 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
2283         * config.gcc: Add Visium support.
2284         * configure.ac: Likewise.
2285         * configure: Regenerate.
2286         * doc/extend.texi (interrupt attribute): Add Visium.
2287         * doc/invoke.texi: Document Visium options.
2288         * doc/install.texi: Document Visium target.
2289         * doc/md.texi: Document Visium constraints.
2290         * common/config/visium: New directory.
2291         * config/visium: Likewise.
2293 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
2295         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
2296         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
2298 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
2300         * combine.c (combine_validate_cost): Do not count the cost of a
2301         split I2 twice.  Do not display it twice in the dump, either.
2303 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
2305         Revert parts of r219199.
2306         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
2307         <inttypes.h>.
2308         ([-Wtraditional]): Restore markup on <limits.h>.
2310 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
2312         PR c++/31397
2313         * doc/invoke.texi: Document -Wsuggest-override.
2315 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
2317         PR rtl-optimization/64287
2318         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
2319         (process_options): Disable flag_ipa_ra if profiling.
2321 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
2323         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
2325 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
2327         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
2328         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
2329         put under #if TARGET_LOOPS guard.
2331 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
2333         * config/i386/i386.c (output_387_binary_op): Use std::swap.
2335 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
2337         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
2338         * rtl.h (refers_to_regno_p): Add overload.
2339         * cse.c: Use it.
2340         * bt-load.c: Likewise.
2341         * combine.c: Likewise.
2342         * df-scan.c: Likewise.
2343         * sched-deps.c: Likewise.
2344         * config/s390/s390.c: Likewise.
2345         * config/m32r/m32r.c: Likewise.
2346         * config/rs6000/spe.md: Likewise.
2347         * config/rs6000/rs6000.c: Likewise.
2348         * config/pa/pa.c: Likewise.
2349         * config/stormy16/stormy16.c: Likewise.
2350         * config/cris/cris.c: Likewise.
2351         * config/arc/arc.md: Likewise.
2352         * config/arc/arc.c: Likewise.
2353         * config/sh/sh.md: Likewise.
2354         * config/sh/sh.c: Likewise.
2355         * config/frv/frv.c: Likewise.
2357 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2359         PR sanitizer/64265
2360         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
2361         call as cleanup of the whole body.
2362         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
2363         * tsan.c (replace_func_exit): New function.
2364         (instrument_func_exit): Moved earlier.
2365         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
2366         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
2367         been found.
2368         (tsan_pass): Don't call instrument_func_exit.
2369         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
2370         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
2371         inlining.
2373         PR sanitizer/64344
2374         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
2375         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
2376         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
2377         if the result is integer_zerop, return NULL_TREE.
2378         * convert.c (convert_to_integer): Pass expr as ARG.
2380         PR tree-optimization/64465
2381         * tree-inline.c (redirect_all_calls): During inlining
2382         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
2383         changed the stmt to a non-throwing call.
2385 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
2387         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
2388         etc markup throughout the file.
2390 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2392         Enable experimental TSAN support for Ada.
2393         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
2395 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2397         PR tree-optimization/64494
2398         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
2399         clear SSA_NAME_ANTI_RANGE_P flag.
2401 2015-01-05  Marek Polacek  <polacek@redhat.com>
2403         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
2405 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2407         Update copyright years.
2409         * gcc.c (process_command): Update copyright notice dates.
2410         * gcov-dump.c: Ditto.
2411         * gcov.c: Ditto.
2412         * doc/cpp.texi: Bump @copying's copyright year.
2413         * doc/cppinternals.texi: Ditto.
2414         * doc/gcc.texi: Ditto.
2415         * doc/gccint.texi: Ditto.
2416         * doc/gcov.texi: Ditto.
2417         * doc/install.texi: Ditto.
2418         * doc/invoke.texi: Ditto.
2420         * auto-profile.c, auto-profile.h: Fix up Copyright line.
2422 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
2424         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
2425         verb tense, etc.
2426         ([-fvtable-verify], [-fvtv-debug]): Likewise.
2427         ([-Wabi]): Likewise.
2428         ([-fmessage-length]): Likewise.
2429         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
2430         ([-Wno-discarded-qualifiers]): Likewise.
2431         ([-Wnodiscarded-array-qualifiers]): Likewise.
2432         ([-Wno-virtual-move-assign]): Likewise.
2433         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
2434         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
2435         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
2436         ([-fsanitize-undefined-trap-on-error]): Likewise.
2437         ([-floop-interchange]): Likewise.
2438         ([-ftree-coalesce-inlined-vars]): Likewise.
2439         ([-fvect-cost-model]): Likewise.
2440         ([-flto]): Likewise.
2441         ([--param]): Likewise.
2442         (Spec Files): Likewise.
2443         ([-mstrict-align]): Likewise.
2444         ([-mfix-cortex-a53-835769]): Likewise.
2445         ([-march], [-mtune]): Likewise.
2446         ([-mpic-register]): Likewise.
2447         ([-munaligned-access]): Likewise.
2448         ([-msp8]): Likewise.
2449         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
2450         (AVR Built-in Macros): Likewise.
2451         ([-mpreferred-stack-boundary]): Likewise.
2452         ([-mtune-crtl]): Likewise.
2453         ([-mashf]): Likewise.
2454         ([-mmcu=]): Likewise.
2455         ([-minrt]): Likewise.
2456         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
2457         ([-mupper-regs]): Likewise.
2458         ([-matomic-model]): Likewise.
2459         ([-mdiv]): Likewise.
2460         ([-mzdcbranch]): Likewise.
2461         ([-mdisable-callt]): Likewise.
2462         ([-msoft-float]): Likewise.
2463         ([-m8byte-align]): Likewise.
2464         ([-fstack-reuse]): Likewise.
2466 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
2468         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
2469         Fix markup, light copy-editing.
2470         ([-fauto-profile]): Rewrite to fix formatting and content
2471         problems.
2473 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
2475         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
2476         Copy-edit description.
2477         ([-fisolate-erroneous-paths-attribute]): Likewise.
2478         * common.opt (fisolate-erroneous-paths-dereference):
2479         Copy-edit description.
2480         (fisolate-erroneous-paths-attribute): Likewise.
2482 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
2484         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
2485         tidy grammar.
2487 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
2489         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
2490         ([-fvtv-debug]): Likewise.
2491         ([-Wc++-compat]): Likewise.
2492         ([-Wc++11-compat]): Likewise.
2493         ([-Wc++14-compat]): Likewise.
2494         ([-Wno-sized-deallocation]): Likewise.
2495         ([-femit-class-debug-always]): Likewise.
2496         ([-femit-struct-debug-detailed]): Likewise.
2497         ([-fno-keep-inline-dllexport]): Likewise.
2498         ([-fira-algorithm]): Likewise.
2499         ([-fira-region]): Likewise.
2500         ([-flra-remat]): Likewise.
2501         ([-fipa-ra]): Likewise.
2502         ([-fhoist-adjacent-loads]): Likewise.
2503         ([-fisolate-erroneous-paths-dereference]): Likewise.
2504         ([-fisolate-erroneous-paths-attribute]): Likewise.
2505         ([-ftree-switch-conversion]): Likewise.
2506         ([-ftree-tail-merge]): Likewise.
2507         ([-ftree-loop-if-convert]): Likewise.
2508         ([-ftree-loop-if-convert-stores]): Likewise.
2509         ([-ftree-loop-distribution]): Likewise.
2510         ([-ftree-loop-distribute-patterns]): Likewise.
2511         ([-flto-compression-level]): Likewise.
2512         ([-flto-report]): Likewise.
2513         ([-flto-report-wpa]): Likewise.
2514         ([-fuse-linker-plugin]): Likewise.
2515         ([-mfix-cortex-a53-835769]): Likewise.
2516         ([-mno-fix-cortex-a53-835769]): Likewise.
2517         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
2518         explicit listing; add a note to the discussion indicating they
2519         exist.  Reorder table to group similar options.  Add missing
2520         @opindex entries.  Add @need commands throughout the table to
2521         allow it to be split across multiple pages.
2522         ([-m8bit-idiv]): Fix @opindex.
2523         ([-mavx256-split-unaligned-load]): Likewise.
2524         ([-mavx256-split-unaligned-store]): Likewise.
2525         ([-mstack-protector-guard]): Likewise.
2526         ([-mcpu=]): Likewise.
2527         ([-mcpu]): Likewise.
2528         ([-mpointer-size=]): Likewise.
2530 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
2532         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
2533         instead of `m' constraint.  Likewise for unnamed movb comparison
2534         patterns using reg_before_reload_operand predicate.
2535         * config/pa/predicates.md (reg_before_reload_operand): Tighten
2536         predicate to reject register index and LO_SUM DLT memory forms
2537         after reload.
2539 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
2541         * doc/invoke.texi (Option Summary): Fix spelling of
2542         -fdevirtualize-at-ltrans.
2543         ([-fdevirtualize]): Fix markup.
2544         ([-fdevirtualize-speculatively]): Fix typo.
2545         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
2546         implementor-speaky.
2547         * common.opt (fdevirtualize-at-ltrans): Likewise.
2548         * ipa-devirt.c: Fix typos in comments throughout the file.
2549         (ipa_devirt): Fix typos in format strings for dump output.
2551 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
2553         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
2554         discussion of defaults, light copy-editing.
2556 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2558         * tsan.c (instrument_expr): corrected previous checkin.
2560 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2562         Instrument bit field and unaligned accesses for TSAN.
2563         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
2564         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
2565         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
2566         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
2567         unaligned memory regions.
2569 2015-01-01  Anthony Green  <green@moxielogic.com>
2571         * config/moxie/predicates.md (moxie_general_movsrc_operand):
2572         Restrict move source register offsets to 16 bits.
2574 Copyright (C) 2015 Free Software Foundation, Inc.
2576 Copying and distribution of this file, with or without modification,
2577 are permitted in any medium without royalty provided the copyright
2578 notice and this notice are preserved.