1 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
3 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
6 2015-01-21 Jakub Jelinek <jakub@redhat.com>
9 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
10 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
11 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
14 * doc/invoke.texi (-fsanitize=vptr): Document.
16 PR rtl-optimization/62078
17 * dse.c: Include cfgcleanup.h.
18 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19 anything call purge_all_dead_edges and cleanup_cfg at the end
22 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
24 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
27 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
29 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
32 2015-01-21 David Sherwood <david.sherwood@arm.com>
33 Tejas Belagod <Tejas.Belagod@arm.com>
35 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
36 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
37 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
40 2015-01-21 David Sherwood <david.sherwood@arm.com>
41 Tejas Belagod <Tejas.Belagod@arm.com>
43 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
44 (aarch64_reverse_mask): New decls.
45 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
46 (insn_count): New mode_attr.
47 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
48 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
49 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
50 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
51 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
52 (aarch64_simd_st4): New patterns.
53 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
54 (aarch64_reverse_mask): New functions.
56 2015-01-21 Richard Sandiford <richard.sandiford@arm.com>
58 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
60 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
61 addressing modes for BE.
62 (aarch64_print_operand): Add 'R' specifier.
63 (aarch64_simd_disambiguate_copy): Delete.
64 (aarch64_simd_emit_reg_reg_move): New function.
65 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
66 in define_splits for structural moves.
67 (mov<mode>): Use less restrictive predicates.
68 (*aarch64_mov<mode>): Simplify and only allow for LE.
69 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
71 2015-01-21 Alan Hayward <alan.hayward@arm.com>
73 * rtlanal.c (subreg_get_info): Exit early for simple and common
76 2015-01-21 Richard Henderson <rth@redhat.com>
79 * ccmp.c (used_in_cond_stmt_p): Remove.
80 (expand_ccmp_expr): Don't use it.
82 2015-01-21 Nick Clifton <nickc@redhat.com>
84 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
87 2015-01-21 Richard Biener <rguenther@suse.de>
90 * tree-core.h (builtin_info, builtin_info_type): Turn from
91 an object with two arrays into an array of an object with
92 decl and two flags, implicit_p and declared_p.
93 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
94 set_builtin_decl, set_builtin_decl_implicit_p,
95 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
96 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
97 * builtins.c (builtin_info): Adjust.
98 * gimplify.c (gimplify_addr_expr): References to builtins
99 that have been declared by the user makes them eligible for
100 use by the compiler. Call set_builtin_decl_implicit_p on them.
102 2015-01-20 Jeff Law <law@redhat.com>
105 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
106 allow pc-relative addresses in operand predicates or constraints.
108 2015-01-21 Bin Cheng <bin.cheng@arm.com>
110 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
111 neon on aarch32 processors for stringops.
113 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
116 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
118 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
121 * ipa-inline.c: Include lto-streamer.h
122 (report_inline_failed_reason): Output source file differences and
123 flags on optimization/target node mismatch.
124 (can_inline_edge_p): Consider caller to be the outer inline function;
125 be less restrictive about matching opimize and optimize_size attributes.
126 (inline_account_function_p): Break out from ...
127 (inline_small_functions): ... here.
128 * ipa-inline-transform.c (clone_inlined_nodes): Use
129 inline_account_function_p.
130 (inline_call): Use optimize attribution; use inline_account_function_p.
131 (inline_transform): Use opt_for_fn.
132 * ipa-inline.h (inline_account_function_p): Declare.
134 2015-01-20 Jakub Jelinek <jakub@redhat.com>
137 * dwarf2out.c (decl_piece_node): Don't put bitsize into
138 mode if bitsize <= 0.
139 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
140 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
143 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
145 * config/nios2/nios2.c (nios2_asm_file_end): Implement
146 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
148 (TARGET_ASM_FILE_END): Define.
150 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
152 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
153 (struct tune_params): Use the enum.
154 * arm.c (arm_*_tune): Update.
155 (arm_option_override): Update.
157 2015-01-20 Richard Biener <rguenther@suse.de>
160 * ipa-reference.c (add_static_var): Inline ...
161 (analyze_function): ... here after splitting out from ...
162 (is_proper_for_analysis): ... this.
164 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
167 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
168 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
169 replace the conditional with it's true branch.
170 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
173 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
175 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
177 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
179 * config/tilegx/mul-tables.c: Move symtab.h include after coretypes.h include.
180 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h, vec.h,
181 machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
182 double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
183 insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
185 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
189 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
191 PR rtl-optimization/64081
192 * loop-iv.c (def_pred_latch_p): New function.
193 (latch_dominating_def): Allow specific cases with non-single
195 (iv_get_reaching_def): Likewise.
196 (check_complex_exit_p): New function.
197 (check_simple_exit): Use check_complex_exit_p to allow certain cases
198 with exits not executing on any iteration.
200 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
203 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
206 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
209 * i386.c (gate): Check flag_expensive_optimizations and
211 (ix86_option_override_internal): Drop optimize_size condition
212 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
213 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
215 (ix86_avx256_split_vector_move_misalign,
216 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
217 * sse.md (all uses of TARGET_PREFER_AVX128): Add
218 optimize_insn_for_speed_p check.
220 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
222 * config/mips/mips.h (FP_ASM_SPEC): New define.
223 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
226 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
229 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
230 nullptr for insn when reaching the first insn.
231 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
232 (sh_insn_operands_modified_between_p): Add nullptr check.
233 (sh_find_extending_set_of_reg): Fix log message. Don't accept
234 sign extending mem load if the insn contains any UNSPEC or
237 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
239 * params.def (inline-unit-growth): Drop to 15%.
240 * invoke.texi (inline-unit-growth): Document change.
242 2015-01-19 Martin Liska <mliska@suse.cz>
245 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
246 function for second argument of OBJ_TYPE_REF.
248 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
251 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
252 whether function is an alias.
254 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
256 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
259 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
261 PR rtl-optimization/64671
262 * lra-remat.c (operand_to_remat): Don't consider jump and call
265 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
267 * config/rs6000/default64.h: Include rs6000-cpus.def.
268 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
269 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
270 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
272 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
274 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
275 pseudo-op to specify assembler dialect.
277 2015-01-19 Martin Liska <mliska@suse.cz>
280 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
281 Handle safe potentially removed nodes during filtering.
283 2015-01-19 Martin Liska <mliska@suse.cz>
285 * doc/extend.texi (no_icf): Add new attribute description.
286 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
287 where the pass attempts to merge a function with no_icf attribute.
289 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
292 * doc/md.texi (ARM Options): Document register constraints.
294 2015-01-19 Jiong Wang <jiong.wang@arm.com>
295 Andrew Pinski <apinski@cavium.com>
298 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
299 (ashl<mode>3): Don't expand if operands[2] is not constant.
301 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
304 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
305 Match xor-and-xor RTL pattern.
307 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
309 PR rtl-optimization/64081
310 * loop-iv.c (def_pred_latch_p): New function.
311 (latch_dominating_def): Allow specific cases with non-single
313 (iv_get_reaching_def): Likewise.
314 (check_complex_exit_p): New function.
315 (check_simple_exit): Use check_complex_exit_p to allow certain cases
316 with exits not executing on any iteration.
318 2015-01-19 Jakub Jelinek <jakub@redhat.com>
320 * common.opt (fgraphite): Fix a typo.
322 2015-01-19 Felix Yang <felix.yang@huawei.com>
324 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
326 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
327 uminp, smax_nanp, smin_nanp): New builtins.
328 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
329 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
330 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
331 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
332 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
333 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
334 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
335 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
336 vpminnms_f32): Rewrite using builtin functions.
338 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
341 * omp-low.c (offload_symbol_decl): Remove variable.
342 (get_offload_symbol_decl): Remove function.
343 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
344 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
345 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
346 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
347 BUILT_IN_GOACC_UPDATE don't pass it at all.
349 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
351 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
354 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
356 * ipa-chkp.c (chkp_produce_thunks): Add early param
357 to split thunks production into two passes. Keep
358 'always_inline' function bodies after the first pass.
359 (pass_data_ipa_chkp_early_produce_thunks): New.
360 (pass_ipa_chkp_early_produce_thunks): New.
361 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
362 chkp_produce_thunks signature.
363 (make_pass_ipa_chkp_early_produce_thunks): New.
364 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
365 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
366 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
368 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
370 * cgraph.c (cgraph_node::dump): Dump profile flags.
372 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
375 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
376 reg appear first in the parallel.
378 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
380 * ipa-reference.c (set_reference_optimization_summary,
381 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
383 (ignore_module_statics): New static var.
384 (propagate_bits): If ipa-reference is disabled, do not look into local
386 (analyze_function): Disable analysis when ipa_reference is disabled.
387 (generate_summary): Do not dump when reference is disabled;
388 collect vars accessed from functions with ipa-reference disabled.
389 (get_read_write_all_from_node): When ipa-reference is disabled, use the
391 (gate): Enable for LTO.
392 (ignore_edge_p): New function.
393 (propagate): Skip functions w/o ipa-reference analysis.
394 * optc-save-gen.awk: Handle optimize_debug correctly.
395 * opth-gen.awk: Likewise.
396 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
397 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
398 fira-share-save-slots, fira-share-spill-slots,
399 fmodulo-sched-allow-regmoves, fpartial-inlining,
400 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
401 ftracer, ftree-parallelize-loops, fassociative-math,
402 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
404 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
405 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
407 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
410 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
413 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
415 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
417 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
419 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
420 Remove duplicate option listings.
422 2015-01-18 Felix Yang <felix.yang@huawei.com>
424 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
425 (autofdo_source_profile::get_callsite_total_count,
426 function_instance::get_function_instance_by_decl,
427 string_table::get_index, string_table::get_index_by_decl,
428 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
429 Fix comment typos. Reformatting and minor code rearrangement.
431 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
433 * config/rs6000/rs6000.md (probe_stack): Delete.
434 (probe_stack_address): New.
436 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
438 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
439 to test for 32-bit ABIs, not !TARGET_POWERPC64.
441 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
443 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
444 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
445 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
447 (rs6000_libcall_value): Use the new function.
449 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
451 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
453 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
455 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
456 implement a more precise life analysis for it during backward scan.
458 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
460 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
462 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
464 PR rtl-optimization/52773
465 * calls.c (emit_library_call_value): When pushing arguments use
466 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
467 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
468 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
470 2015-01-17 Jeff Law <law@redhat.com>
472 PR rtl-optimization/32790
473 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
474 not ZERO_EXTEND in SET_DESTs.
476 2015-01-17 Alan Modra <amodra@gmail.com>
478 * cprop.c (do_local_cprop): Revert last change.
480 2015-01-16 DJ Delorie <dj@redhat.com>
481 Nick Clifton <nickc@redhat.com>
483 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
484 (addhi3_real): Likewise. Fix [HL+0] syntax.
485 (subqi3_real): Likewise.
486 (subhi3_real): Likewise.
487 (cbranchqi4_real): Likewise. Allow saddr,#imm.
488 (cbranchhi4_real): Likewise.
489 (cbranchhi4_real_inverted): Likewise.
490 (cbranchsi4_real_lt): Likewise.
491 (cbranchsi4_real_ge): Likewise.
492 (cbranchsi4_real_ge): Likewise.
493 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
494 (sub<mode>3_virt): Likewise.
495 (cbranchqi4_virt): Likewise.
496 (cbranchhi4_virt): Likewise.
497 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
498 always use '[reg+imm]' even when imm is zero.
499 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
500 (rl78_general_operand): New.
501 (rl78_nonimmediate_operand): New.
502 (rl78_nonfar_operand): Use them.
503 (rl78_nonfar_nonimm_operand): Likewise.
504 (rl78_stack_based_mem): Fix.
505 * config/rl78/constraints.md (Ibqi): New.
510 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
513 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
515 * config/rl78/constrains (Qs8): New constraint.
516 * config/rl78/rl78.c (rl78_flags_already_set): New function.
517 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
518 * config/rl78/rl78-real.md (update_Z): New attribute.
519 Update patterns to set it.
520 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
521 shorter compare and branch sequence can be used.
522 (cbranchhi4_real): Likewise.
523 (cbranchhi4_real_inverted): Likewise.
525 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
526 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
528 * config/rl78/rl78.c (rl78_get_name_encoding): New.
529 (rl78_option_override): Allow -mes0 only if C.
530 (characterize_address): Support subregs of symbol_refs.
531 (rl78_addr_space_address_mode): Move. Add __near.
532 (rl78_far_p): Likewise.
533 (rl78_addr_space_pointer_mode): Likewise.
534 (rl78_as_legitimate_address): Likewise.
535 (rl78_addr_space_subset_p): Likewise.
536 (rl78_addr_space_convert): Likewise.
537 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
539 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
541 (rl78_alloc_physical_registers_op1): Change logic to prefer
542 symbol[BC] addressing.
543 (frodata_section): New.
544 (rl78_asm_init_sections): Initialize it.
545 (rl78_select_section): Put __far readonly symbols in .frodata.
546 (rl78_make_type_far): New.
547 (rl78_insert_attributes): Force all readonly symbols to be __far when -mes0.
548 (rl78_asm_out_integer): New.
549 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
550 * config/rl78/rl78.opt (-mes0): New.
552 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
553 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
554 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
555 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
557 (rl78_output_aligned_common): New.
558 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
559 (rl78_handle_saddr_attribute): New.
560 (rl78_handle_naked_attribute): New.
561 (rl78_attribute_table): Add saddr.
562 (rl78_print_operand_1): Don't print '!' on saddr operands.
563 (rl78_print_operand_1): Strip encodings.
565 (rl78_strip_name_encoding): New.
566 (rl78_attrlist_to_encoding): New.
567 (rl78_encode_section_info): New.
568 (rl78_asm_init_sections): New.
569 (rl78_select_section): New.
570 (rl78_output_labelref): New.
571 (rl78_output_aligned_common): New.
572 (rl78_asm_out_integer): New.
573 (rl78_asm_ctor_dtor): New.
574 (rl78_asm_constructor): New.
575 (rl78_asm_destructor): New.
577 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
578 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
579 (transcode_memory_rtx): Update.
580 (rl78_expand_epilogue): Use A_REG instead of 0.
582 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
584 * config/arm/arm-protos.h (struct tune_params): New field
585 sched_autopref_queue_depth.
586 * config/arm/arm.c (sched-int.h): Include header.
587 (arm_first_cycle_multipass_dfa_lookahead_guard,)
588 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
589 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
590 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
591 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
592 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
593 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
594 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
595 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
596 * config/arm/t-arm (arm.o): Update.
597 * haifa-sched.c (update_insn_after_change): Update.
598 (rank_for_schedule): Use auto-prefetcher model, if requested.
599 (autopref_multipass_init): New static function.
600 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
601 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
602 variable for debug dumps.
603 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
604 (autopref_multipass_dfa_lookahead_guard): New global function that
605 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
606 (init_h_i_d): Update.
607 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
608 * sched-int.h (enum autopref_multipass_data_status): New const enum.
609 (autopref_multipass_data_): Structure for auto-prefetcher data.
610 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
611 (struct _haifa_insn_data:autopref_multipass_data): New field.
612 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
613 (autopref_multipass_dfa_lookahead_guard): Declare.
615 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
617 * rtlanal.c (get_base_term): Handle SCRATCH.
619 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
621 * config/aarch64/aarch64.c
622 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
623 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
625 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
626 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
628 2015-01-17 Alan Modra <amodra@gmail.com>
630 * cprop.c (do_local_cprop): Disallow replacement of fixed
633 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
636 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
639 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
641 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
642 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
644 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
646 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
647 * config/arm/thumb1.md: ... Here.
649 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
651 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
652 TImode for TARGET_32BIT.
654 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
656 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
657 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
659 (rs6000_abi_word_mode): New function.
661 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
663 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
664 instead of UNITS_PER_WORD to describe the size of stack slots.
666 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
668 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
669 as rs6000_promote_function_mode. Move comment to there.
670 (rs6000_promote_function_mode): New function.
672 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
674 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
675 -mpowerpc64 is active.
677 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
680 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
683 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
685 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
686 introduced in revision 219724.
688 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
689 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
692 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
693 destination is not a GP reg.
694 (*movdi_aarch64): Likewise.
696 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
699 * config/rs6000/default64.h: Revert ISA change.
701 2015-01-16 Richard Biener <rguenther@suse.de>
704 * tree-ssa-uninit.c: Include tree-cfg.h.
705 (MAX_SWITCH_CASES): New define.
706 (convert_control_dep_chain_into_preds): Handle switch statements.
707 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
708 (normalize_one_pred_1): Do not split bit-manipulations.
711 2015-01-16 Richard Biener <rguenther@suse.de>
713 PR tree-optimization/64568
714 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
715 complex load rewriting for TARGET_MEM_REFs.
717 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
719 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
721 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
724 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
726 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
727 (aarch64_lra_p): Remove.
729 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
732 * ipa-chkp.h (chkp_instrumentable_p): New.
733 * ipa-chkp.c: Include tree-inline.h.
734 (chkp_instrumentable_p): New.
735 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
736 Fix processing of not instrumentable functions.
737 (chkp_versioning): Use chkp_instrumentable_p. Warn about
738 not instrumentable functions.
739 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
740 chkp_instrumentable_p.
741 * tree-inline.h (copy_forbidden): New.
742 * tree-inline.c (copy_forbidden): Not static anymore.
744 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
746 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
749 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
751 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
752 type OP_OUT to OP_INOUT.
754 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
756 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
757 (high x) y) to y if x and y have the same base.
759 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
761 * config/arm/cortex-a57.md: New.
762 * config/aarch64/aarch64.md: Include it.
763 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
764 * config/aarch64/aarch64-tune.md: Regenerate.
766 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
769 * ccmp.c (expand_ccmp_next): New function.
770 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
771 and compare insn sequence.
772 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
773 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
774 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
775 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
776 (*ccmp_ior): Changed to ccmp_ior<mode>.
777 (cmp<mode>): New pattern.
778 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
780 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
782 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
784 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
785 _mm256_bsrli_epi128): New.
786 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
788 2015-01-15 Jiong Wang <jiong.wang@arm.com>
790 * expmed.c (store_bit_field_using_insv): Improve warning message.
791 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
793 2015-01-15 Jiong Wang <jiong.wang@arm.com>
795 PR rtl-optimization/64011
796 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
797 there is partial overflow.
799 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
801 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
803 (nds32_expand_epilogue_v3pop): Likewise.
804 * config/nds32/nds32.md (sibcall): Define this for sibling call
806 (sibcall_register): Likewise.
807 (sibcall_immediate): Likewise.
808 (sibcall_value): Likewise.
809 (sibcall_value_register): Likewise.
810 (sibcall_value_immediate): Likewise.
811 (sibcall_epilogue): Likewise.
812 (epilogue): Pass false to indicate this is not a sibcall epilogue.
813 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
814 (nds32_expand_epilogue_v3pop): Likewise.
816 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
818 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
819 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
820 (return_internal): New.
821 (return): Define this named pattern.
822 (simple_return): Define this named pattern.
823 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
824 pattern instead of unspec_volatile_func_return.
825 (nds32_expand_epilogue_v3pop): Likewise.
826 (nds32_can_use_return_insn): New function.
828 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
830 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
831 * config/nds32/nds32.md (pop25return): New.
832 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
835 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
837 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
838 -mforbid-fp-as-gp, and -mex9 options.
840 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
842 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
843 remove -mgp-direct option.
845 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
847 * doc/invoke.texi (--param early-inlining-insns): Update default value.
848 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
850 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
852 * ipa-inline.c (inline_small_functions): Work around hints
855 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
858 * doc/invoke.texi (Option Summary): Document new Nios II
860 (Nios II Options): Likewise.
861 * config/nios2/nios2.opt: Add -mgpopt= option support.
862 Modify existing -mgpopt and -mno-gpopt options to be aliases.
863 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
864 * config/nios2/nios2.c (nios2_option_override): Adjust
866 (nios2_in_small_data_p): Return true for explicit small data
867 sections even with -G0.
868 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
871 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
874 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
876 (inline_call): Fix removal of aliases.
878 2015-01-15 Jakub Jelinek <jakub@redhat.com>
880 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
881 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
882 * opts.c (common_handle_option): Add -fsanitize=vptr.
883 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
884 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
885 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
886 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
887 (ubsan_expand_vptr_ifn): New prototype.
888 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
889 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
890 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
891 expand_LOOP_VECTORIZED): Make argument nameless, remove
893 (expand_UBSAN_VPTR): New function.
894 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
896 (UBSAN_VPTR): New internal function.
897 * sanopt.c (tree_map_traits): Renamed to ...
898 (sanopt_tree_map_traits): ... this.
899 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
900 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
901 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
902 (maybe_optimize_ubsan_vptr_ifn): New function.
903 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
904 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
906 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
907 internal calls like pure functions for aliasing, even when they
908 have other side-effects that prevent making them ECF_PURE.
909 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
910 (ubsan_expand_vptr_ifn): New function.
912 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
914 PR rtl-optimization/64110
915 * stmt.c (parse_output_constraint): Process '^' and '$'.
916 (parse_input_constraint): Ditto.
917 * lra-constraints.c (process_alt_operands): Process the new
919 * ira-costs.c (record_reg_classes): Process the new constraint
921 * genoutput.c (indep_constraints): Add '^' and '$'.
922 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
923 * doc/md.texi: Add description of the new constraints.
925 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
926 Bernd Schmidt <bernds@codesourcery.com>
927 Cesar Philippidis <cesar@codesourcery.com>
928 James Norris <jnorris@codesourcery.com>
929 Tom de Vries <tom@codesourcery.com>
930 Ilmir Usmanov <i.usmanov@samsung.com>
931 Dmitry Bocharnikov <dmitry.b@samsung.com>
932 Evgeny Gavrin <e.gavrin@samsung.com>
933 Jakub Jelinek <jakub@redhat.com>
935 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
936 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
937 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
939 * builtins.c: Include "gomp-constants.h".
940 (expand_builtin_acc_on_device): New function.
941 (expand_builtin, is_inexpensive_builtin): Handle
942 BUILT_IN_ACC_ON_DEVICE.
943 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
945 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
947 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
948 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
949 i386/intelmic-offload.h.
950 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
951 to libgomp and its dependencies.
952 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
953 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
954 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
955 * config/ia64/hpux.h (LIB_SPEC): Likewise.
956 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
957 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
958 * doc/generic.texi: Update for OpenACC changes.
959 * doc/gimple.texi: Likewise.
960 * doc/invoke.texi: Likewise.
961 * doc/sourcebuild.texi: Likewise.
962 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
963 GF_OMP_FOR_KIND_OACC_LOOP.
964 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
965 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
966 GF_OMP_TARGET_KIND_OACC_UPDATE,
967 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
969 * gimple.c: Update comments for OpenACC changes.
970 * gimple.def: Likewise.
971 * gimple.h: Likewise.
972 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
973 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
974 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
975 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
976 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
978 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
979 * gimplify.c: Include "gomp-constants.h".
980 Update comments for OpenACC changes.
981 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
982 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
983 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
984 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
985 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
986 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
987 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
988 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
989 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
991 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
992 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
993 OMP_CLAUSE_SET_MAP_KIND.
994 (gimplify_oacc_cache): New function.
995 (gimplify_omp_for): Handle OACC_LOOP.
996 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
998 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
999 OACC_EXIT_DATA, OACC_UPDATE.
1000 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
1001 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
1002 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
1003 (gimplify_body): Consider flag_openacc next to flag_openmp.
1004 * lto-streamer-out.c: Include "gomp-constants.h".
1005 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
1006 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
1007 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
1008 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
1009 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
1010 (BUILT_IN_ACC_ON_DEVICE): New builtins.
1011 * omp-low.c: Include "gomp-constants.h".
1012 Update comments for OpenACC changes.
1013 (struct omp_context): Add reduction_map, gwv_below, gwv_this
1015 (extract_omp_for_data, use_pointer_for_field, install_var_field)
1016 (new_omp_context, delete_omp_context, scan_sharing_clauses)
1017 (create_omp_child_function, scan_omp_for, scan_omp_target)
1018 (check_omp_nesting_restrictions, lower_reduction_clauses)
1019 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
1020 Update for OpenACC changes.
1021 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
1022 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
1023 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
1024 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
1025 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
1026 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
1028 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1029 Handle GF_OMP_FOR_KIND_OACC_LOOP.
1030 (expand_omp_target, lower_omp_target): Handle
1031 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
1032 GF_OMP_TARGET_KIND_OACC_UPDATE,
1033 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
1034 GF_OMP_TARGET_KIND_OACC_DATA.
1035 (pass_expand_omp::execute, execute_lower_omp)
1036 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
1038 (offload_symbol_decl): New variable.
1039 (oacc_get_reduction_array_id, oacc_max_threads)
1040 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
1041 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
1042 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
1043 (oacc_gimple_assign, oacc_initialize_reduction_data)
1044 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
1046 (is_targetreg_ctx): Remove function.
1047 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
1048 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
1049 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
1050 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
1051 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
1052 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
1053 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
1054 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
1055 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
1056 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
1057 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
1058 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
1059 * tree-core.h: Update comments for OpenACC changes.
1060 (enum omp_clause_map_kind): Remove.
1061 (struct tree_omp_clause): Change type of map_kind member from enum
1062 omp_clause_map_kind to unsigned char.
1063 * tree-inline.c: Update comments for OpenACC changes.
1064 * tree-nested.c: Likewise. Include "gomp-constants.h".
1065 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
1066 (convert_tramp_reference_stmt, convert_gimple_call): Update for
1067 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
1068 OMP_CLAUSE_SET_MAP_KIND.
1069 * tree-pretty-print.c: Include "gomp-constants.h".
1070 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
1071 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
1072 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
1073 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
1074 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
1075 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
1076 instead of OMP_CLAUSE_MAP_*.
1077 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
1078 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
1079 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
1080 * tree-streamer-in.c: Include "gomp-constants.h".
1081 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
1082 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
1083 * tree-streamer-out.c: Include "gomp-constants.h".
1084 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
1086 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
1087 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
1088 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
1089 * tree.c (omp_clause_num_ops): Update accordingly.
1090 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
1092 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
1093 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
1094 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
1095 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
1096 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
1097 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
1098 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
1099 (OMP_CLAUSE_SET_MAP_KIND): New macro.
1100 * varpool.c (varpool_node::get_create): Consider flag_openacc next
1102 * config/i386/intelmic-offload.h: New file.
1103 * config/nvptx/offload.h: Likewise.
1105 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1107 * explow.h: Remove duplicate contents.
1108 * dojump.h: Likewise.
1110 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
1112 * arm.c (arm_xgene_tune): Add default initializer for instruction
1115 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
1119 * ipa.c (symbol_table::remove_unreachable_nodes):
1120 Do not put abstract origins into boundary.
1122 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
1124 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
1125 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
1127 2015-01-15 Steve Ellcey <sellcey@mips.com>
1129 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
1130 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
1131 builtins.def, and chkp-builtins.def.
1133 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
1135 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
1138 2015-01-15 Richard Biener <rguenther@suse.de>
1140 PR tree-optimization/61743
1141 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
1142 information on PHIs for some simple cases.
1144 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
1146 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
1148 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
1149 * config/arm/arm-cores.def (xgene1): New entry.
1150 * config/arm/arm-tables.opt: Regenerate.
1151 * config/arm/arm-tune.md: Regenerate.
1152 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
1154 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
1156 * tree-if-conv.c: Include hash-map.h.
1157 (aggressive_if_conv): New variable.
1158 (fold_build_cond_expr): Add simplification of non-zero condition.
1159 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
1160 destination block is not always executed.
1161 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
1162 than two predecessors if AGGRESSIVE_IF_CONV is true.
1163 (if_convertible_stmt_p): Fix commentary.
1164 (all_preds_critical_p): New function.
1165 (has_pred_critical_p): New function.
1166 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
1167 BB can have more than two predecessors and all incoming edges can be
1169 (predicate_bbs): Skip predication for loop exit block, use build2_loc
1170 to compute predicate for true edge.
1171 (find_phi_replacement_condition): Delete this function.
1172 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
1173 Allow interchange PHI arguments if EXTENDED is false.
1174 Change check that block containing reduction statement candidate
1175 is predecessor of phi-block since phi may have more than two arguments.
1176 (phi_args_hash_traits): New helper structure.
1177 (struct phi_args_hash_traits): New type.
1178 (phi_args_hash_traits::hash): New function.
1179 (phi_args_hash_traits::equal_keys): New function.
1180 (gen_phi_arg_condition): New function.
1181 (predicate_scalar_phi): Add handling of phi nodes with more than two
1182 arguments, delete COND and TRUE_BB arguments, insert body of
1183 find_phi_replacement_condition to predicate ordinary phi nodes.
1184 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
1185 delete call of find_phi_replacement_condition and invoke
1186 predicate_scalar_phi with two arguments.
1187 (insert_gimplified_predicates): Add assert that non-predicated block
1188 don't have statements to insert.
1189 (ifcvt_split_critical_edges): New function.
1190 (ifcvt_split_def_stmt): Likewise.
1191 (ifcvt_walk_pattern_tree): Likewise.
1192 (stmt_is_root_of_bool_pattern): Likewise.
1193 (ifcvt_repair_bool_pattern): Likewise.
1194 (ifcvt_local_dce): Likewise.
1195 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
1196 is copy of inner or outer loop force_vectorize field, invoke
1197 ifcvt_split_critical_edges, ifcvt_local_dce and
1198 ifcvt_repair_bool_pattern for aggressive if-conversion.
1200 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
1202 * config/aarch64/aarch64.md: Include xgene1.md.
1203 * config/aarch64/xgene1.md: New file.
1205 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
1207 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
1208 xgene1 (APM XGene-1) core definition.
1209 * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
1210 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
1211 * doc/invoke.texi: Document -mcpu=xgene1.
1213 2015-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1215 * dojump.h: New header file.
1216 * explow.h: Likewise.
1217 * expr.h: Remove includes.
1218 Move expmed.c prototypes to expmed.h.
1219 Move dojump.c prototypes to dojump.h.
1220 Move alias.c prototypes to alias.h.
1221 Move explow.c prototypes to explow.h.
1222 Move calls.c prototypes to calls.h.
1223 Move emit-rtl.c prototypes to emit-rtl.h.
1224 Move varasm.c prototypes to varasm.h.
1225 Move stmt.c prototypes to stmt.h.
1226 (saved_pending_stack_adjust): Move to dojump.h.
1227 (adjust_address): Move to explow.h.
1228 (adjust_address_nv): Move to emit-rtl.h.
1229 (adjust_bitfield_address): Likewise.
1230 (adjust_bitfield_address_size): Likewise.
1231 (adjust_bitfield_address_nv): Likewise.
1232 (adjust_automodify_address_nv): Likewise.
1233 * explow.c (expr_size): Move to expr.c.
1234 (int_expr_size): Likewise.
1235 (tree_expr_size): Likewise.
1236 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1237 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
1238 * genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
1239 insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
1240 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
1241 statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
1243 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
1244 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
1245 * genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
1246 fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
1248 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
1249 machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
1250 double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
1251 insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
1252 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
1253 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
1254 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
1255 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
1256 tm.h tree.h varasm.h vec.h wide-int.h.
1257 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1258 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
1259 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
1260 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
1261 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1262 explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
1263 real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
1264 * loop-iv.c: Likewise.
1265 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1266 explow.h expmed.h fixed-value.h flags.h inchash.h real.h
1267 statistics.h stmt.h tree.h varasm.h wide-int.h.
1268 * lra-constraints.c: Likewise.
1269 * lra-eliminations.c: Likewise.
1270 * lra-lives.c: Likewise.
1271 * lra-remat.c: Likewise.
1272 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1273 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
1274 statistics.h stmt.h tree.h varasm.h wide-int.h.
1275 * hw-doloop.c: Likewise.
1276 * ira-color.c: Likewise.
1277 * ira-emit.c: Likewise.
1278 * loop-doloop.c: Likewise.
1279 * loop-invariant.c: Likewise.
1280 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1281 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
1282 statistics.h stmt.h tree.h varasm.h wide-int.h.
1283 * caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1284 explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
1285 stmt.h tree.h varasm.h wide-int.h.
1286 * combine-stack-adj.c: Likewise.
1289 * ifcvt.c: Likewise.
1290 * ira-costs.c: Likewise.
1292 * lra-coalesce.c: Likewise.
1293 * lra-spills.c: Likewise.
1294 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1295 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
1296 stmt.h varasm.h wide-int.h.
1297 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
1298 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1300 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
1301 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
1302 statistics.h stmt.h varasm.h wide-int.h.
1303 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
1304 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
1305 varasm.h wide-int.h.
1306 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
1307 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1308 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
1309 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
1310 statistics.h stmt.h.
1311 * config/tilepro/tilepro.c: Likewise.
1312 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
1313 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
1314 * config/pdp11/pdp11.c: Likewise.
1315 * config/xtensa/xtensa.c: Likewise.
1316 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
1317 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
1319 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1320 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1321 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
1322 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1323 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1324 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
1325 * rtl-chkp.c: Likewise.
1326 * tree-chkp-opt.c: Likewise.
1327 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
1328 expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
1329 insn-config.h real.h statistics.h stmt.h varasm.h.
1330 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1331 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1332 statistics.h stmt.h.
1333 * tree-vect-data-refs.c: Likewise.
1334 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
1335 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1336 rtl.h statistics.h stmt.h varasm.h.
1337 * internal-fn.c: Likewise.
1338 * ipa-icf-gimple.c: Likewise.
1339 * lto-section-out.c: Likewise.
1340 * tree-data-ref.c: Likewise.
1341 * tree-nested.c: Likewise.
1342 * tree-outof-ssa.c: Likewise.
1343 * tree-predcom.c: Likewise.
1344 * tree-pretty-print.c: Likewise.
1345 * tree-scalar-evolution.c: Likewise.
1346 * tree-ssa-strlen.c: Likewise.
1347 * tree-vect-loop.c: Likewise.
1348 * tree-vect-patterns.c: Likewise.
1349 * tree-vect-slp.c: Likewise.
1350 * tree-vect-stmts.c: Likewise.
1352 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1353 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1355 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
1356 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1357 statistics.h stmt.h varasm.h.
1358 * loop-unroll.c: Likewise.
1359 * ubsan.c: Likewise.
1360 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
1361 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
1363 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1364 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
1365 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
1366 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1367 statistics.h stmt.h.
1368 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
1369 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
1370 statistics.h stmt.h varasm.h.
1371 * gimple-match-head.c: Likewise.
1372 * lto-cgraph.c: Likewise.
1373 * lto-section-in.c: Likewise.
1374 * lto-streamer-in.c: Likewise.
1375 * lto-streamer-out.c: Likewise.
1376 * tree-affine.c: Likewise.
1377 * tree-cfg.c: Likewise.
1378 * tree-cfgcleanup.c: Likewise.
1379 * tree-if-conv.c: Likewise.
1380 * tree-into-ssa.c: Likewise.
1381 * tree-ssa-alias.c: Likewise.
1382 * tree-ssa-copyrename.c: Likewise.
1383 * tree-ssa-dse.c: Likewise.
1384 * tree-ssa-forwprop.c: Likewise.
1385 * tree-ssa-live.c: Likewise.
1386 * tree-ssa-math-opts.c: Likewise.
1387 * tree-ssa-pre.c: Likewise.
1388 * tree-ssa-sccvn.c: Likewise.
1389 * tree-tailcall.c: Likewise.
1390 * tree-vect-generic.c: Likewise.
1391 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1392 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
1393 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1394 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
1395 * varasm.c: Likewise.
1396 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1397 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
1399 * init-regs.c: Likewise.
1401 * omp-low.c: Likewise.
1402 * stack-ptr-mod.c: Likewise.
1403 * tree-ssa-reassoc.c: Likewise.
1404 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1405 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
1407 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1408 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
1409 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1410 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
1411 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1412 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
1413 * tree-ssa-phiopt.c: Likewise.
1414 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1415 fixed-value.h hashtab.h real.h statistics.h stmt.h.
1416 * config/fr30/fr30.c: Likewise.
1417 * config/frv/frv.c: Likewise.
1419 * final.c: Likewise.
1420 * optabs.c: Likewise.
1421 * passes.c: Likewise.
1422 * simplify-rtx.c: Likewise.
1424 * toplev.c: Likewise.
1425 * var-tracking.c: Likewise.
1426 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1427 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1428 * lower-subreg.c: Likewise.
1429 * postreload-gcse.c: Likewise.
1431 * reginfo.c: Likewise.
1432 * store-motion.c: Likewise.
1433 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1434 fixed-value.h hashtab.h real.h stmt.h varasm.h.
1435 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1436 fixed-value.h hashtab.h statistics.h stmt.h.
1437 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1438 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
1439 * except.c: Likewise.
1440 * explow.c: Likewise.
1441 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1442 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
1444 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1445 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
1446 * tree-ssa-structalias.c: Likewise.
1447 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1448 fixed-value.h insn-config.h real.h statistics.h.
1449 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1450 fixed-value.h insn-config.h real.h statistics.h stmt.h.
1451 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1452 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1453 * cfgbuild.c: Likewise.
1454 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1455 fixed-value.h real.h rtl.h statistics.h stmt.h.
1456 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1457 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1458 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1459 fixed-value.h real.h statistics.h stmt.h.
1460 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
1461 fixed-value.h real.h statistics.h stmt.h varasm.h.
1462 * cprop.c: Likewise.
1463 * modulo-sched.c: Likewise.
1464 * postreload.c: Likewise.
1465 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1466 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
1467 statistics.h stmt.h varasm.h.
1468 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
1469 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1470 rtl.h statistics.h stmt.h varasm.h.
1471 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
1472 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
1474 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
1475 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
1477 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
1478 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
1480 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
1481 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1482 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1483 function.h real.h statistics.h stmt.h varasm.h.
1484 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1485 insn-config.h real.h statistics.h stmt.h.
1486 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
1487 statistics.h stmt.h.
1488 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
1489 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
1490 statistics.h stmt.h varasm.h.
1491 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1492 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
1493 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1494 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
1495 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
1496 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
1497 statistics.h stmt.h varasm.h.
1498 * ipa-polymorphic-call.c: Likewise.
1499 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
1500 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
1502 * config/c6x/c6x.c: Likewise.
1503 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
1504 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
1505 statistics.h stmt.h varasm.h.
1506 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1507 hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
1508 * ipa-split.c: Likewise.
1509 * tree-eh.c: Likewise.
1510 * tree-ssa-dce.c: Likewise.
1511 * tree-ssa-loop-niter.c: Likewise.
1512 * tree-vrp.c: Likewise.
1513 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
1514 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
1516 * config/nds32/nds32-fp-as-gp.c: Likewise.
1517 * config/nds32/nds32-intrinsic.c: Likewise.
1518 * config/nds32/nds32-isr.c: Likewise.
1519 * config/nds32/nds32-md-auxiliary.c: Likewise.
1520 * config/nds32/nds32-memory-manipulation.c: Likewise.
1521 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1522 * config/nds32/nds32-predicates.c: Likewise.
1523 * config/nds32/nds32.c: Likewise.
1524 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
1525 fixed-value.h hashtab.h real.h statistics.h.
1526 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
1527 fixed-value.h hashtab.h real.h statistics.h stmt.h.
1528 * config/arm/arm.c: Likewise.
1529 * config/avr/avr.c: Likewise.
1530 * config/bfin/bfin.c: Likewise.
1531 * config/h8300/h8300.c: Likewise.
1532 * config/i386/i386.c: Likewise.
1533 * config/ia64/ia64.c: Likewise.
1534 * config/iq2000/iq2000.c: Likewise.
1535 * config/m32c/m32c.c: Likewise.
1536 * config/m32r/m32r.c: Likewise.
1537 * config/m68k/m68k.c: Likewise.
1538 * config/mcore/mcore.c: Likewise.
1539 * config/mep/mep.c: Likewise.
1540 * config/mips/mips.c: Likewise.
1541 * config/mn10300/mn10300.c: Likewise.
1542 * config/moxie/moxie.c: Likewise.
1543 * config/pa/pa.c: Likewise.
1544 * config/rl78/rl78.c: Likewise.
1545 * config/rx/rx.c: Likewise.
1546 * config/s390/s390.c: Likewise.
1547 * config/sh/sh.c: Likewise.
1548 * config/sparc/sparc.c: Likewise.
1549 * config/spu/spu.c: Likewise.
1550 * config/stormy16/stormy16.c: Likewise.
1551 * config/v850/v850.c: Likewise.
1552 * config/vax/vax.c: Likewise.
1553 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
1554 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
1555 * config/msp430/msp430.c: Likewise.
1556 * predict.c: Likewise.
1557 * value-prof.c: Likewise.
1558 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
1559 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
1560 * config/microblaze/microblaze.c: Likewise.
1561 * config/nios2/nios2.c: Likewise.
1562 * config/rs6000/rs6000.c: Likewise.
1563 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1564 insn-config.h real.h rtl.h statistics.h stmt.h.
1565 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1566 insn-config.h real.h statistics.h stmt.h.
1567 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
1568 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
1569 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
1570 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
1571 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
1572 real.h statistics.h stmt.h.
1573 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
1574 fixed-value.h statistics.h stmt.h.
1575 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
1578 2015-01-15 Jakub Jelinek <jakub@redhat.com>
1580 * gengtype.c (create_user_defined_type): Workaround
1581 -Wmaybe-uninitialized false positives.
1582 * cse.c (fold_rtx): Likewise.
1583 * loop-invariant.c (gain_for_invariant): Likewise.
1585 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
1587 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1588 set the memory attributes in all cases but clear MEM_EXPR if need be.
1590 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
1592 PR tree-optimization/64434
1593 * cfgexpand.c (reorder_operands): New function.
1594 (expand_gimple_basic_block): Insert call of reorder_operands if
1597 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
1599 * config/mips/micromips.md (*swp): Remove explicit parallel.
1600 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
1601 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
1602 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
1603 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
1604 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
1605 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
1606 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
1607 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
1608 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
1609 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
1610 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
1611 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
1612 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
1613 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
1614 (mips_wrdsp): Likewise.
1615 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
1617 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
1618 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
1619 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
1620 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
1621 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
1622 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
1623 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
1624 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
1625 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
1627 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
1629 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
1630 (mips_print_operand): Support 'y' to print exact log2 in decimal
1632 * config/mips/mips.h (ISA_HAS_LSA): New define.
1633 (ISA_HAS_DLSA): Likewise.
1634 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
1635 * config/mips/predicates.md (const_immlsa_operand): New predicate.
1637 2015-01-15 Martin Liska <mliska@suse.cz>
1640 * optc-save-gen.awk: Add support for array types.
1642 2015-01-15 Richard Biener <rguenther@suse.de>
1645 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1646 for MEM_REF access functions with the same base can never partially
1649 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
1651 * common.opt: New option -fstack-protector-explicit.
1652 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
1653 (stack_protect_decl_phase): Handle stack_protect attribute for
1654 explicit stack protection requests.
1655 (expand_used_vars): Similarly.
1656 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
1657 * doc/extend.texi: Add documentation for "stack_protect" attribute.
1658 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
1660 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
1663 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
1665 (sh_extending_set_of_reg): New struct.
1666 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
1667 sh_remove_reg_dead_or_unused_notes): New Declarations.
1668 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
1669 sh_find_extending_set_of_reg, sh_split_tst_subregs,
1670 sh_extending_set_of_reg::use_as_extended_reg): New functions.
1671 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
1672 convert to insn_and_split and use new function sh_split_tst_subregs.
1674 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
1676 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
1678 (Optimization Options): Move -fuse-ld documentation to...
1679 (Link Options): ...here.
1681 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
1683 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
1685 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
1686 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
1687 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
1688 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
1689 instead of ZR for the memory operand of LL/SC.
1690 (compare_and_swap_12, sync_add<mode>): Likewise.
1691 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
1692 (sync_new_<optab>_12, sync_nand_12): Likewise.
1693 (sync_old_nand_12, sync_new_nand_12): Likewise.
1694 (sync_sub<mode>, sync_old_add<mode>): Likewise.
1695 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
1696 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
1697 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
1698 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
1699 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
1700 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
1701 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
1702 * doc/md.texi (ZC): Update description.
1704 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
1706 * builtins.c (expand_builtin_atomic_exchange): Remove error when
1707 memory model is CONSUME.
1708 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
1709 expand_builtin_atomic_store): Change invalid memory model errors to
1711 (expand_builtin_atomic_clear): Change invalid model errors to warnings
1712 and issue warning for CONSUME.
1714 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
1716 * lto-cgraph: Update function comments for
1717 lto_symtab_encoder_encode_*.
1719 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
1721 * Makefile.in (site.exp): Do not set ENABLE_LTO.
1723 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
1725 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
1726 * lto-cgraph.c (select_what_to_stream): Remove argument, use
1727 lto_stream_offload_p instead.
1728 * lto-streamer.h (select_what_to_stream): Remove argument.
1729 * passes.c (ipa_write_summaries): Likewise.
1730 * tree-pass.h (ipa_write_summaries): Likewise.
1732 2015-01-14 Richard Biener <rguenther@suse.de>
1734 PR tree-optimization/59354
1735 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
1736 groups larger than the slp group size as having gaps.
1738 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
1741 * builtins.c (get_memmodel): Promote consume to acquire always.
1743 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1746 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
1749 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1752 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
1754 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
1755 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
1756 AVX512VBMI, as it implies AVX512BW.
1758 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1761 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
1762 (vec_unpacks_hi_v16sf): Ditto.
1764 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1766 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
1769 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1771 * doc/invoke.texi (mapcs): Mention deprecation.
1772 (mapcs-frame): Likewise.
1774 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1777 * config/arm/arm.c (callee_saved_reg_p): Define.
1778 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
1779 register is callee saved instead of !call_used_regs[reg].
1780 (thumb1_compute_save_reg_mask): Likewise.
1782 2015-01-14 Hale Wang <hale.wang@arm.com>
1784 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
1787 2015-01-14 Richard Biener <rguenther@suse.de>
1790 * tree-inline.c (insert_debug_decl_map): Check destination
1791 function MAY_HAVE_DEBUG_STMTS.
1792 (insert_init_debug_bind): Likewise.
1793 (insert_init_stmt): Remove redundant check.
1794 (remap_gimple_stmt): Drop debug stmts if the destination
1795 function has var-tracking assignments disabled.
1797 2015-01-14 Martin Liska <mliska@suse.cz>
1799 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
1800 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
1802 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1805 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
1806 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
1808 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
1810 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
1811 level from an ARCH; do not inject the default.
1812 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
1813 MIPS_ISA_LEVEL_SPEC.
1814 (MIPS_ISA_NAN2008_SPEC): Update comment.
1815 (BASE_DRIVER_SELF_SPECS): Likewise.
1816 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
1817 MIPS_DEFAULT_ISA_LEVEL_SPEC.
1818 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
1819 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
1820 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
1822 2015-01-14 Richard Biener <rguenther@suse.de>
1824 PR tree-optimization/64493
1825 PR tree-optimization/64495
1826 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
1827 assign the proper vectorized PHI to the inner loop exit PHIs.
1829 2015-01-14 Joey Ye <joey.ye@arm.com>
1831 * config/arm/arm.c (arm_compute_save_reg_mask):
1832 Do not save lr in case of tail call.
1833 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
1835 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
1837 * tree-vrp.c (check_array_ref): Emit more warnings
1838 for warn_array_bounds >= 2.
1839 * common.opt: New option -Warray-bounds=.
1840 * doc/invoke.texi: Document -Warray-bounds=.
1842 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
1844 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
1845 (mforbid-fp-as-gp): Remove.
1847 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
1848 (nds32_symbol_load_store_p): Remove.
1849 (nds32_fp_as_gp_check_available): Clean up implementation.
1850 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
1852 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
1853 fp-as-gp and ex9 cases.
1855 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
1857 * tree-profile.c (init_ic_make_global_vars): Drop workaround
1858 for bintuils bug 14342.
1859 (init_ic_make_global_vars): Likewise.
1860 (gimple_init_edge_profiler): Likewise.
1861 (gimple_gen_ic_func_profiler): Likewise.
1863 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1865 * ipa-inline.c (inline_small_functions): Swap the operands in
1868 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
1871 * ipa-inline-analysis.c (node_growth_cache): Remove.
1872 (initialize_growth_caches): Do not initialize it.
1873 (free_growth_caches): Do not free it.
1874 (do_estimate_growth): Rename to ...
1875 (estimate_growth): ... this one; drop growth cache code.
1876 (growth_likely_positive): Always go the heuristics way.
1877 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
1878 (reset_edge_caches): Do not reset node growth.
1879 (heap_edge_removal_hook): Do not maintain cache.
1880 (inline_small_functions): Likewise; strenghten sanity check.
1881 (ipa_inline): Do not maintain caches.
1882 * ipa-inline.h (node_growth_cache): Remove.
1883 (do_estimate_growth): Remove to ...
1884 (estimate_growth): this one; remove inline version.
1885 (reset_node_growth_cache): Remove.
1887 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
1890 * ipa-inline.c (inline_small_functions): Update callee keys after
1891 resolving speculation
1892 (inline_small_functions): Always check monotonicity of the queue.
1894 2015-01-13 Marek Polacek <polacek@redhat.com>
1897 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
1899 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1901 PR rtl-optimization/64286
1902 * ree.c (combine_reaching_defs): Move part of comment earlier,
1903 remove !SCALAR_INT_MODE_P check.
1904 (add_removable_extension): Don't add vector mode
1905 extensions if all uses of the source register aren't the same
1908 2015-01-13 Renlin Li <renlin.li@arm.com>
1910 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
1911 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1913 2015-01-13 Martin Liska <mliska@suse.cz>
1915 * ipa-icf.c (sem_function::equals_private): Call new functions
1916 cl_target_option_print_diff and cl_optimization_print_diff.
1917 * optc-save-gen.awk (cl_target_option_print_diff): New function.
1918 (cl_optimization_print_diff): Likewise.
1919 * opth-gen.awk: Likewise.
1921 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
1923 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
1924 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
1925 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
1926 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
1927 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
1928 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
1930 2015-01-13 Andrew Pinski <apinski@cavium.com>
1932 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
1933 instead of src mode.
1935 2015-01-13 Richard Biener <rguenther@suse.de>
1938 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
1941 2015-01-13 Andrew Pinski <apinski@cavium.com>
1943 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
1945 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
1947 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1950 * cfgexpand.c (expand_computed_goto): Don't call
1951 convert_memory_address here.
1953 2015-01-13 Richard Biener <rguenther@suse.de>
1955 PR tree-optimization/64406
1956 * tree-loop-distibution.c (pass_loop_distribution::execute):
1957 Reset the SCEV hashtable if we distributed anything.
1959 2015-01-13 Richard Biener <rguenther@suse.de>
1961 PR tree-optimization/64404
1962 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
1963 SLP types for CSEd loads.
1965 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1967 PR tree-optimization/64436
1968 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
1969 merge of two symbolic numbers for a bitwise OR to ...
1970 (perform_symbolic_merge): This. Also fix computation of the range and
1971 end of the symbolic number corresponding to the result of a bitwise OR.
1973 2015-01-13 Richard Biener <rguenther@suse.de>
1975 PR tree-optimization/64568
1976 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
1977 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
1979 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
1981 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
1982 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
1984 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
1986 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
1987 target-specific symbol_ref flag.
1988 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
1989 resides in rodata section.
1990 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
1991 (nds32_encode_section_info): New function.
1993 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
1995 * config/nds32/nds32.md (call): Use pseudo instruction bal which
1996 clobbers TA_REGNUM if large code model is specified.
1997 (call_register): Likewise.
1998 (call_immediate): Likewise.
1999 (call_value): Likewise.
2000 (call_value_register): Likewise.
2001 (call_value_immediate): Likewise.
2003 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
2005 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
2006 (TARGET_CMODEL_MEDIUM): New macro.
2007 (TARGET_CMODEL_LARGE): New macro.
2008 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
2009 code model setting in assembly code.
2011 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
2013 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
2014 Remove MASK_GP_DIRECT flag.
2015 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
2016 one of the multilib default options.
2017 * config/nds32/nds32.opt (mgp-direct): Remove.
2018 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
2019 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
2021 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
2023 * config/nds32/nds32.opt (mcmodel): Add new option.
2024 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
2025 to describe code model.
2027 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
2030 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
2032 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
2034 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
2035 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
2036 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
2037 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
2038 __builtin_sh_set_fpscr.
2040 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
2042 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
2043 after a funtion name just to indicate it is a function.
2044 ([-fsanitize-undefined-trap-on-error]): Likewise.
2045 ([-fdbg-cnt=]): Likewise.
2046 ([-mmemcpy]): Likewise.
2047 ([-mflush-func]): Likewise.
2048 ([-msynci]): Likewise.
2050 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
2052 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
2055 2015-01-12 Jakub Jelinek <jakub@redhat.com>
2057 PR tree-optimization/64563
2058 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
2059 instead of != VR_VARYING.
2062 * config/i386/i386.c (ix86_expand_prologue): Add
2063 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
2065 PR tree-optimization/64454
2066 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
2067 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
2068 for signed or [0, op1 - 1] for unsigned modulo.
2069 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
2070 even if op1 does not satisfy integer_pow2p.
2073 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
2075 2015-01-12 Jeff Law <law@redhat.com>
2078 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
2079 (trunchiqi2, truncsihi2): Similarly.
2081 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
2082 rather than calling F.
2084 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
2086 * tsan.c (instrument_expr): Use force_gimple_operand.
2087 Use may_be_nonaddressable_p instead of is_gimple_addressable.
2089 2015-01-12 Richard Biener <rguenther@suse.de>
2091 PR tree-optimization/64530
2092 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
2095 2015-01-12 Richard Biener <rguenther@suse.de>
2098 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
2101 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2103 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
2104 Cortex-A17 tuning parameters.
2105 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
2107 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2109 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
2110 * config/arm/arm.c (arm_macro_fusion_p): New function.
2111 (arm_macro_fusion_pair_p): Likewise.
2112 (TARGET_SCHED_MACRO_FUSION_P): Define.
2113 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2114 (ARM_FUSE_NOTHING): Likewise.
2115 (ARM_FUSE_MOVW_MOVT): Likewise.
2116 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
2117 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
2118 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
2119 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
2120 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
2121 arm_cortex_a5_tune): Specify fuseable_ops value.
2123 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
2126 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
2127 test for PIE with copy reloc.
2128 * configure: Regenerated.
2130 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2132 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
2134 (arm_tls_descseq_addr): Likewise.
2135 (arm_gen_movmemqi): Likewise.
2136 (arm_expand_epilogue_apcs_frame): Likewise.
2137 (arm_expand_epilogue): Likewise.
2138 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
2141 2015-01-12 Martin Liska <mliska@suse.cz>
2144 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
2145 volatility for correct operands.
2147 2015-01-12 Martin Liska <mliska@suse.cz>
2149 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
2150 that a function is not leaf.
2151 (sem_function::compare_polymorphic_p): Likewise.
2153 2015-01-12 Martin Liska <mliska@suse.cz>
2155 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
2156 that a function is not leaf.
2157 (sem_function::compare_polymorphic_p): Likewise.
2159 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2161 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
2162 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
2163 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
2164 fold-const.h, tree-check.h.
2166 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
2170 * ipa-inline.c (compute_uninlined_call_time,
2171 compute_inlined_call_time): Use counts for extra precision when
2173 (big_speedup_p): Fix formating.
2174 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
2175 (relative_time_benefit): Remove.
2176 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
2177 merge guessed and read profile paths.
2178 (inline_small_functions): Count only !optimize_size functions into
2179 initial size; be more lax about sanity check when profile is used;
2180 be sure to update inlined function profile when profile is read.
2182 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
2185 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
2186 cost when edge becomes direct.
2187 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
2188 is resolved or when introducing new speculation.
2190 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
2194 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
2195 '||' to fix typo issue.
2197 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
2198 accept and return NULL.
2200 2015-01-12 Martin Liska <mliska@suse.cz>
2202 * cgraph.c (cgraph_edge::remove_callee): Move function to header
2203 file for being inlined.
2204 (cgraph_set_edge_callee): Delete.
2205 (cgraph_edge::redirect_callee): Move function to header file
2207 (cgraph_edge::make_direct): Use new function.
2208 (cgraph_edge::dump_edge_flags): New function created from
2209 static dump_edge_flags function.
2210 (cgraph_node::dump): Use new function.
2211 (cgraph_edge::verify_count_and_frequency): New function created
2212 from verify_edge_count_and_frequency.
2213 (cgraph_edge::verify_corresponds_to_fndecl): New function created
2214 from verify_edge_corresponds_to_fndecl.
2215 (verify_edge_corresponds_to_fndecl): Delete.
2216 (cgraph_node::verify_node): Use new function.
2217 * cgraph.h (cgraph_edge::set_callee): New function.
2218 (cgraph_edge::dump_edge_flags): Likewise.
2219 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
2221 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
2223 * ipa-utils.c (estimate_function_body_sizes): Do not
2224 free node params when called late with early=true.
2226 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
2228 * doc/md.texi (Instruction Patterns): Rewrite text for
2230 (Example): Likewise.
2232 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
2234 * doc/invoke.texi (Option Summary): Break long lines.
2235 [(-fdiagnostics-color)]: Put long literal in @smallexample
2237 [(-fsanitize-recover)]: Likewise.
2238 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
2239 [(-ffast-math)]: Likewise.
2240 [(--param max-inline-insns-recursive)]: Likewise.
2241 [(--param max-inline-recursive-depth)]: Likewise.
2242 [(-mno-text-section-literals)]: Likewise.
2244 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
2246 * doc/install.texi: Update for libgomp being renamed from "GNU
2247 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
2249 * doc/sourcebuild.texi: Likewise.
2251 2015-01-10 Anthony Green <green@moxielogic.com>
2253 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
2254 mul.x availability for moxiebox configuration.
2256 2015-01-09 Anthony Green <green@moxielogic.com>
2258 * config/moxie/moxie.md: Tabify assembly output.
2260 2015-01-09 Anthony Green <green@moxielogic.com>
2262 * config/moxie/moxie.md (CC_REG): Correct register definition.
2264 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
2266 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
2267 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
2270 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
2272 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
2274 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
2275 Jakub Jelinek <jakub@redhat.com>
2278 * lto-streamer.h (lto_stream_offload_p): New declaration.
2279 * lto-streamer.c (lto_stream_offload_p): New variable.
2280 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
2281 at the same time as section_name_prefix.
2282 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
2283 if lto_stream_offload_p.
2284 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
2285 stream TREE_TARGET_OPTION if lto_stream_offload_p.
2286 (write_ts_function_decl_tree_pointers): Don't
2287 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
2288 * tree-streamer-in.c (unpack_value_fields): Don't stream
2289 TREE_TARGET_OPTION in if ACCEL_COMPILER.
2290 (lto_input_ts_function_decl_tree_pointers): Don't stream
2291 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
2292 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
2293 instead of section_name_prefix string comparisons.
2295 2015-01-09 Jakub Jelinek <jakub@redhat.com>
2297 PR rtl-optimization/64536
2298 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
2301 2015-01-09 Michael Collison <michael.collison@linaro.org>
2303 PR tree-optimization/64322
2304 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
2305 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
2307 2015-01-09 Tom de Vries <tom@codesourcery.com>
2309 PR rtl-optimization/64539
2310 * regcprop.c (kill_clobbered_values): Factor out of ...
2311 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
2312 instead of note_stores with kill_clobbered_value.
2314 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
2316 * ginclude/unwind-arm-common.h: Revert previous commit.
2318 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
2320 * config.gcc (arm*-*-freebsd*): New configuration.
2321 * config/arm/freebsd.h: New file.
2322 * config.host: Add extra components for arm*-*-freebsd*.
2323 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
2324 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
2326 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2328 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
2330 * config/rs6000/t-rtems: Add e6500 multilibs.
2332 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2334 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
2337 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2339 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
2340 MULTILIB_EXCEPTIONS.
2342 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2344 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
2345 MULTILIB_EXCEPTIONS.
2347 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
2349 * config/arm/t-rtems-eabi: Rename to...
2350 * config/arm/t-rtems: ...this.
2351 * config/arm/rtems-eabi.h: Rename to...
2352 * config/arm/rtems.h: ...this.
2353 * config.gcc (arm*-*-rtems*): Reflect changes above.
2355 2015-01-09 Richard Biener <rguenther@suse.de>
2357 PR tree-optimization/64410
2358 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
2360 (execute_update_addresses_taken): Deal with that.
2361 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
2362 loads/stores for complex variables.
2364 2015-01-09 Martin Liska <mliska@suse.cz>
2366 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
2368 (func_checker::compare_memory_operand): New function.
2369 (func_checker::compare_operand): Split case to newly
2371 (func_checker::compare_cst_or_decl): New function.
2372 (func_checker::compare_gimple_call): Identify
2374 (func_checker::compare_gimple_assign): Likewise.
2375 * ipa-icf-gimple.h: New function.
2377 2015-01-09 Martin Liska <mliska@suse.cz>
2380 * sreal.c (sreal::dump): Change unsigned format to signed for
2382 (sreal::to_double): Replace exp2 with scalbln.
2384 2015-01-09 Martin Liska <mliska@suse.cz>
2386 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
2387 * ipa-icf.c (sem_function::equals_private): Add support for target and
2388 (sem_item_optimizer::merge_classes): Remove redundant function
2389 optimization flags comparison.
2390 * tree.h (target_opts_for_fn): New function.
2392 2015-01-09 Tom de Vries <tom@codesourcery.com>
2394 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
2396 2015-01-09 Kito Cheng <kito@0xlab.org>
2398 PR rtl-optimization/64348
2399 * lra-constraints.c (split_reg): Fix caller-save store/restore
2400 instruction generation.
2402 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
2404 PR gcov-profile/61790
2405 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
2406 long long. Fallback to int64_t if host doesn't have long long and
2407 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
2409 2015-01-08 Jakub Jelinek <jakub@redhat.com>
2411 PR tree-optimization/63989
2412 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
2414 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
2415 (get_stridx): If we don't have a record for certain SSA_NAME,
2416 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
2417 constant offset, call get_stridx_plus_constant.
2418 (get_stridx_plus_constant): New function.
2419 (zero_length_string): Don't use get_stridx here.
2423 * dse.c (struct insn_info): Mention frame_read set also
2424 before reload for tail calls on some targets.
2425 (scan_insn): Revert 2014-12-22 change. Set frame_read
2426 also before reload for tail calls if
2427 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
2428 instead of add_non_frame_wild_read for non-const/memset
2429 tail calls after reload.
2431 2015-01-08 Jason Merrill <jason@redhat.com>
2433 * ubsan.c (do_ubsan_in_current_function): New.
2434 (pass_ubsan::gate): Use it.
2435 * ubsan.h: Declare it.
2436 * convert.c (convert_to_integer): Use it.
2438 2015-01-08 Jakub Jelinek <jakub@redhat.com>
2441 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
2442 compare_code when it is unconditionally overwritten afterwards.
2443 Use ix86_reverse_condition instead of reverse_condition. Don't
2444 change code if *reverse_condition* returned UNKNOWN and don't
2445 swap ct/cf and negate diff in that case.
2447 2015-01-08 Mike Stump <mikestump@comcast.net>
2449 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
2450 (pass_tsan_O0::gate): Likewise.
2451 * extend.texi (Function Attributes): Add no_sanitize_thread
2454 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
2456 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
2457 for registering builtins.
2458 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
2459 add -fopenmp to the argv_obstack used when invoking
2462 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
2463 add "-m32" or "-m64" to argv_obstack.
2464 (generate_host_descr_file): Likewise, when invoking host_compiler.
2465 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
2468 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
2470 * config/sh/sh-mem.cc: Use constant as second operand when emitting
2473 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
2476 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
2477 constant load if constant operand fits into I08.
2479 2015-01-08 Jakub Jelinek <jakub@redhat.com>
2482 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
2483 and TREE_THIS_VOLATILE for MEM_REFs.
2484 (build5_stat): Fix up initialization of TREE_READONLY and
2485 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
2487 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
2490 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
2491 of r for the second alternative of the destination operand.
2493 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
2496 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
2498 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
2500 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
2502 ([-fivar-visibility], [-fvisibility]): Likewise.
2504 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
2506 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
2507 the file where @code, @command, etc is more appropriate.
2509 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
2511 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
2512 of -mrecip= documentation.
2514 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2517 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
2518 correct reload handler if -m32 -mpowerpc64 is used.
2520 2015-01-06 Tom de Vries <tom@codesourcery.com>
2522 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
2524 2015-01-08 Christian Bruel <christian.bruel@st.com>
2527 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
2529 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
2531 PR tree-optimization/63259
2532 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
2533 if optab exists for 16bit byteswap.
2535 2015-01-06 Jakub Jelinek <jakub@redhat.com>
2537 * opts.c (common_handle_option): Add support for
2538 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
2539 * doc/invoke.texi: Document -fno-sanitize=all,
2540 -f{,no-}sanitize-recover=all. Document that
2541 -fsanitize=float-cast-overflow is not enabled
2542 by -fsanitize=undefined. Fix up documentation
2543 of -f{,no-}sanitize-recover.
2545 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
2547 * config.gcc: Add Visium support.
2548 * configure.ac: Likewise.
2549 * configure: Regenerate.
2550 * doc/extend.texi (interrupt attribute): Add Visium.
2551 * doc/invoke.texi: Document Visium options.
2552 * doc/install.texi: Document Visium target.
2553 * doc/md.texi: Document Visium constraints.
2554 * common/config/visium: New directory.
2555 * config/visium: Likewise.
2557 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
2559 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
2560 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
2562 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
2564 * combine.c (combine_validate_cost): Do not count the cost of a
2565 split I2 twice. Do not display it twice in the dump, either.
2567 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
2569 Revert parts of r219199.
2570 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
2572 ([-Wtraditional]): Restore markup on <limits.h>.
2574 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
2577 * doc/invoke.texi: Document -Wsuggest-override.
2579 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
2581 PR rtl-optimization/64287
2582 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
2583 (process_options): Disable flag_ipa_ra if profiling.
2585 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
2587 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
2589 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
2591 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
2592 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
2593 put under #if TARGET_LOOPS guard.
2595 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
2597 * config/i386/i386.c (output_387_binary_op): Use std::swap.
2599 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
2601 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
2602 * rtl.h (refers_to_regno_p): Add overload.
2604 * bt-load.c: Likewise.
2605 * combine.c: Likewise.
2606 * df-scan.c: Likewise.
2607 * sched-deps.c: Likewise.
2608 * config/s390/s390.c: Likewise.
2609 * config/m32r/m32r.c: Likewise.
2610 * config/rs6000/spe.md: Likewise.
2611 * config/rs6000/rs6000.c: Likewise.
2612 * config/pa/pa.c: Likewise.
2613 * config/stormy16/stormy16.c: Likewise.
2614 * config/cris/cris.c: Likewise.
2615 * config/arc/arc.md: Likewise.
2616 * config/arc/arc.c: Likewise.
2617 * config/sh/sh.md: Likewise.
2618 * config/sh/sh.c: Likewise.
2619 * config/frv/frv.c: Likewise.
2621 2015-01-05 Jakub Jelinek <jakub@redhat.com>
2624 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
2625 call as cleanup of the whole body.
2626 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
2627 * tsan.c (replace_func_exit): New function.
2628 (instrument_func_exit): Moved earlier.
2629 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
2630 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
2632 (tsan_pass): Don't call instrument_func_exit.
2633 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
2634 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
2638 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
2639 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
2640 it to libubsan handler instead of EXPR. Fold comparisons earlier,
2641 if the result is integer_zerop, return NULL_TREE.
2642 * convert.c (convert_to_integer): Pass expr as ARG.
2644 PR tree-optimization/64465
2645 * tree-inline.c (redirect_all_calls): During inlining
2646 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
2647 changed the stmt to a non-throwing call.
2649 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
2651 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
2652 etc markup throughout the file.
2654 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
2656 Enable experimental TSAN support for Ada.
2657 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
2659 2015-01-05 Jakub Jelinek <jakub@redhat.com>
2661 PR tree-optimization/64494
2662 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
2663 clear SSA_NAME_ANTI_RANGE_P flag.
2665 2015-01-05 Marek Polacek <polacek@redhat.com>
2667 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
2669 2015-01-05 Jakub Jelinek <jakub@redhat.com>
2671 Update copyright years.
2673 * gcc.c (process_command): Update copyright notice dates.
2674 * gcov-dump.c: Ditto.
2676 * doc/cpp.texi: Bump @copying's copyright year.
2677 * doc/cppinternals.texi: Ditto.
2678 * doc/gcc.texi: Ditto.
2679 * doc/gccint.texi: Ditto.
2680 * doc/gcov.texi: Ditto.
2681 * doc/install.texi: Ditto.
2682 * doc/invoke.texi: Ditto.
2684 * auto-profile.c, auto-profile.h: Fix up Copyright line.
2686 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
2688 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
2690 ([-fvtable-verify], [-fvtv-debug]): Likewise.
2691 ([-Wabi]): Likewise.
2692 ([-fmessage-length]): Likewise.
2693 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
2694 ([-Wno-discarded-qualifiers]): Likewise.
2695 ([-Wnodiscarded-array-qualifiers]): Likewise.
2696 ([-Wno-virtual-move-assign]): Likewise.
2697 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
2698 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
2699 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
2700 ([-fsanitize-undefined-trap-on-error]): Likewise.
2701 ([-floop-interchange]): Likewise.
2702 ([-ftree-coalesce-inlined-vars]): Likewise.
2703 ([-fvect-cost-model]): Likewise.
2704 ([-flto]): Likewise.
2705 ([--param]): Likewise.
2706 (Spec Files): Likewise.
2707 ([-mstrict-align]): Likewise.
2708 ([-mfix-cortex-a53-835769]): Likewise.
2709 ([-march], [-mtune]): Likewise.
2710 ([-mpic-register]): Likewise.
2711 ([-munaligned-access]): Likewise.
2712 ([-msp8]): Likewise.
2713 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
2714 (AVR Built-in Macros): Likewise.
2715 ([-mpreferred-stack-boundary]): Likewise.
2716 ([-mtune-crtl]): Likewise.
2717 ([-mashf]): Likewise.
2718 ([-mmcu=]): Likewise.
2719 ([-minrt]): Likewise.
2720 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
2721 ([-mupper-regs]): Likewise.
2722 ([-matomic-model]): Likewise.
2723 ([-mdiv]): Likewise.
2724 ([-mzdcbranch]): Likewise.
2725 ([-mdisable-callt]): Likewise.
2726 ([-msoft-float]): Likewise.
2727 ([-m8byte-align]): Likewise.
2728 ([-fstack-reuse]): Likewise.
2730 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
2732 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
2733 Fix markup, light copy-editing.
2734 ([-fauto-profile]): Rewrite to fix formatting and content
2737 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
2739 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
2740 Copy-edit description.
2741 ([-fisolate-erroneous-paths-attribute]): Likewise.
2742 * common.opt (fisolate-erroneous-paths-dereference):
2743 Copy-edit description.
2744 (fisolate-erroneous-paths-attribute): Likewise.
2746 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
2748 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
2751 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
2753 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
2754 ([-fvtv-debug]): Likewise.
2755 ([-Wc++-compat]): Likewise.
2756 ([-Wc++11-compat]): Likewise.
2757 ([-Wc++14-compat]): Likewise.
2758 ([-Wno-sized-deallocation]): Likewise.
2759 ([-femit-class-debug-always]): Likewise.
2760 ([-femit-struct-debug-detailed]): Likewise.
2761 ([-fno-keep-inline-dllexport]): Likewise.
2762 ([-fira-algorithm]): Likewise.
2763 ([-fira-region]): Likewise.
2764 ([-flra-remat]): Likewise.
2765 ([-fipa-ra]): Likewise.
2766 ([-fhoist-adjacent-loads]): Likewise.
2767 ([-fisolate-erroneous-paths-dereference]): Likewise.
2768 ([-fisolate-erroneous-paths-attribute]): Likewise.
2769 ([-ftree-switch-conversion]): Likewise.
2770 ([-ftree-tail-merge]): Likewise.
2771 ([-ftree-loop-if-convert]): Likewise.
2772 ([-ftree-loop-if-convert-stores]): Likewise.
2773 ([-ftree-loop-distribution]): Likewise.
2774 ([-ftree-loop-distribute-patterns]): Likewise.
2775 ([-flto-compression-level]): Likewise.
2776 ([-flto-report]): Likewise.
2777 ([-flto-report-wpa]): Likewise.
2778 ([-fuse-linker-plugin]): Likewise.
2779 ([-mfix-cortex-a53-835769]): Likewise.
2780 ([-mno-fix-cortex-a53-835769]): Likewise.
2781 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
2782 explicit listing; add a note to the discussion indicating they
2783 exist. Reorder table to group similar options. Add missing
2784 @opindex entries. Add @need commands throughout the table to
2785 allow it to be split across multiple pages.
2786 ([-m8bit-idiv]): Fix @opindex.
2787 ([-mavx256-split-unaligned-load]): Likewise.
2788 ([-mavx256-split-unaligned-store]): Likewise.
2789 ([-mstack-protector-guard]): Likewise.
2790 ([-mcpu=]): Likewise.
2791 ([-mcpu]): Likewise.
2792 ([-mpointer-size=]): Likewise.
2794 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
2796 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
2797 instead of `m' constraint. Likewise for unnamed movb comparison
2798 patterns using reg_before_reload_operand predicate.
2799 * config/pa/predicates.md (reg_before_reload_operand): Tighten
2800 predicate to reject register index and LO_SUM DLT memory forms
2803 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
2805 * doc/invoke.texi (Option Summary): Fix spelling of
2806 -fdevirtualize-at-ltrans.
2807 ([-fdevirtualize]): Fix markup.
2808 ([-fdevirtualize-speculatively]): Fix typo.
2809 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
2811 * common.opt (fdevirtualize-at-ltrans): Likewise.
2812 * ipa-devirt.c: Fix typos in comments throughout the file.
2813 (ipa_devirt): Fix typos in format strings for dump output.
2815 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
2817 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
2818 discussion of defaults, light copy-editing.
2820 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
2822 * tsan.c (instrument_expr): corrected previous checkin.
2824 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
2826 Instrument bit field and unaligned accesses for TSAN.
2827 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
2828 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
2829 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
2830 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
2831 unaligned memory regions.
2833 2015-01-01 Anthony Green <green@moxielogic.com>
2835 * config/moxie/predicates.md (moxie_general_movsrc_operand):
2836 Restrict move source register offsets to 16 bits.
2838 Copyright (C) 2015 Free Software Foundation, Inc.
2840 Copying and distribution of this file, with or without modification,
2841 are permitted in any medium without royalty provided the copyright
2842 notice and this notice are preserved.