1 2015-02-24 Richard Biener <rguenther@suse.de>
4 2015-02-11 Richard Biener <rguenther@suse.de>
7 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
10 2015-02-13 Richard Biener <rguenther@suse.de>
13 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
16 2015-02-16 Richard Biener <rguenther@suse.de>
19 * varasm.c (default_file_start): For LTO produced units
20 emit <artificial> as file directive.
22 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
24 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
26 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
28 Backport from mainline
29 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
32 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
33 instead of const_int 4294901760.
35 2015-02-23 Richard Biener <rguenther@suse.de>
37 Backport from mainline
38 2014-11-19 Richard Biener <rguenther@suse.de>
40 PR tree-optimization/63844
41 * omp-low.c (fixup_child_record_type): Use a restrict qualified
42 referece type for the receiver parameter.
44 2014-11-27 Richard Biener <rguenther@suse.de>
46 PR tree-optimization/61634
47 * tree-vect-slp.c: Include gimple-walk.h.
48 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
49 down the SLP tree for one scalar statement.
50 (vect_detect_hybrid_slp_1): New walker function.
51 (vect_detect_hybrid_slp_2): Likewise.
52 (vect_detect_hybrid_slp): Properly handle pattern statements
53 in a pre-scan over all loop stmts.
55 2015-01-14 Richard Biener <rguenther@suse.de>
57 PR tree-optimization/59354
58 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
59 groups larger than the slp group size as having gaps.
61 2015-02-10 Richard Biener <rguenther@suse.de>
63 PR tree-optimization/64909
64 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
65 pass a scalar-stmt count estimate to the cost model.
66 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
68 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
70 Backport from mainline
71 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
73 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
74 Mark operand 0 as earlyclobber in 2nd alternative.
75 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
76 Write negated shift amount into QI lowpart operand 0 and use it
78 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
80 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
82 Backport from 2015-02-20 trunk r220847.
85 * config/avr/avr.md (pushhi_insn): New insn.
86 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
88 2015-02-20 Richard Biener <rguenther@suse.de>
90 Backport from mainline
91 2015-01-12 Richard Biener <rguenther@suse.de>
93 PR tree-optimization/64530
94 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
97 2015-02-13 Richard Biener <rguenther@suse.de>
100 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
103 2015-02-16 Richard Biener <rguenther@suse.de>
105 PR tree-optimization/63593
106 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
107 stmts and releasing SSA names until...
108 (execute_pred_commoning): ... after processing all chains.
110 2015-02-18 Richard Biener <rguenther@suse.de>
112 PR tree-optimization/65063
113 * tree-predcom.c (determine_unroll_factor): Return 1 if we
114 have replaced looparound PHIs.
116 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
118 * config/pa/pa.c (pa_reloc_rw_mask): New function.
119 (TARGET_ASM_RELOC_RW_MASK): Define.
120 (pa_cannot_force_const_mem): Revert previous change.
122 2015-02-19 Richard Biener <rguenther@suse.de>
124 Backport from mainline
125 2014-12-09 Richard Biener <rguenther@suse.de>
128 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
130 2015-01-14 Richard Biener <rguenther@suse.de>
132 PR tree-optimization/64493
133 PR tree-optimization/64495
134 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
135 assign the proper vectorized PHI to the inner loop exit PHIs.
137 2015-01-27 Richard Biener <rguenther@suse.de>
139 PR tree-optimization/56273
140 PR tree-optimization/59124
141 PR tree-optimization/64277
142 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
143 from the first VRP pass.
145 2015-02-19 Richard Biener <rguenther@suse.de>
147 Backport from mainline
148 2015-01-15 Richard Biener <rguenther@suse.de>
151 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
152 for MEM_REF access functions with the same base can never partially
155 2015-02-17 Ilya Tocar <ilya.tocar@intel.com>
157 Backported from mainline
158 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
161 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
162 (vec_unpacks_hi_v16sf): Ditto.
164 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
166 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
167 for all floading point loads and stores except those using a register
169 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
172 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
174 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
176 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
177 symbolic references to data to be forced to constant memory on the
180 2015-02-11 Jakub Jelinek <jakub@redhat.com>
182 Backported from mainline
183 2015-02-09 Jakub Jelinek <jakub@redhat.com>
186 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
189 2015-02-11 Uros Bizjak <ubizjak@gmail.com>
191 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
192 and 3 earlyclobber operands.
194 2015-02-09 Dominik Vogt <vogt@linux.vnet.ibm.com>
196 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
197 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
199 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
200 -mno-hotpatch options. Change syntax of -mhotpatch= option.
201 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
203 (s390_hotpatch_trampoline_halfwords_max): Renamed.
204 (s390_hotpatch_hw_max): New name.
205 (s390_hotpatch_trampoline_halfwords): Renamed.
206 (s390_hotpatch_hw_before_label): New name.
207 (get_hotpatch_attribute): Removed.
208 (s390_hotpatch_hw_after_label): New name.
209 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
211 (s390_attribute_table): Ditto.
212 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
213 (s390_function_num_hotpatch_hw): New name.
214 Remove special handling of inline functions and hotpatching.
215 Return number of nops before and after the function label.
216 (s390_can_inline_p): Removed.
217 (s390_asm_output_function_label): Emit a configurable number of nops
218 after the function label.
219 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
220 (TARGET_CAN_INLINE_P) Removed.
221 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
223 2015-02-05 Segher Boessenkool <segher@kernel.crashing.org>
226 Backport from mainline
227 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
228 (rs6000_stack_info): Add assert.
229 (rs6000_output_savres_externs): New function, split off from...
230 (rs6000_output_function_prologue): ... here. Do not call it for
233 2015-02-04 Matthias Klose <doko@ubuntu.com>
236 Backport from mainline
237 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
241 * ipa.c (symbol_table::remove_unreachable_nodes):
242 Do not put abstract origins into boundary.
244 2015-02-04 Uros Bizjak <ubizjak@gmail.com>
246 Backport from mainline
247 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
250 * config/i386/predicates.md (address_no_seg_operand): Reject
251 non-CONST_INT_P operands in invalid mode.
253 Backport from mainline
254 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
256 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
257 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
258 * config/i386/predicates.md (address_no_seg_operand): Call
259 address_operand with VOIDmode.
260 (vsib_address_operand): Ditto.
262 2015-02-01 H.J. Lu <hongjiu.lu@intel.com>
264 Backported from mainline
265 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
267 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
268 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
269 * config/i386/i386.c (processor_model): Add
270 M_INTEL_COREI7_BROADWELL.
271 (arch_names_table): Add "broadwell".
273 2015-02-01 Jakub Jelinek <jakub@redhat.com>
275 Backported from mainline
276 2015-01-27 Jakub Jelinek <jakub@redhat.com>
278 PR rtl-optimization/61058
279 * jump.c (cleanup_barriers): Update basic block boundaries
280 if BLOCK_FOR_INSN is non-NULL on PREV.
282 2015-01-26 Jakub Jelinek <jakub@redhat.com>
285 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
286 with asterisk, skip the first character.
288 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
289 OPTION_MASK_QUAD_MEMORY_ATOMIC.
291 2015-01-23 Jakub Jelinek <jakub@redhat.com>
293 PR rtl-optimization/63637
294 PR rtl-optimization/60663
295 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
296 if elt->cost is MAX_COST for ASM_OPERANDS.
297 (find_sets_in_insn): Fix up comment typo.
298 (cse_insn): Don't set src_volatile for all non-volatile
299 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
300 or with "memory" clobber. Set elt->cost to MAX_COST
301 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
302 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
305 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
308 2015-01-20 Jakub Jelinek <jakub@redhat.com>
311 * dwarf2out.c (decl_piece_node): Don't put bitsize into
312 mode if bitsize <= 0.
313 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
314 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
317 2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
319 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
320 _mm256_bsrli_epi128): New.
321 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
323 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
325 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
328 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
330 * config/s390/s390.c (s390_register_move_cost): Increase costs for
333 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
335 Backport from mainline
336 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
339 * config/i386/i386.md (*movdi_internal): Also check operand 0
340 to determine TYPE_LEA operand.
341 (*movsi_internal): Ditto.
343 Backport from mainline
344 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
346 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
349 2015-01-23 Jakub Jelinek <jakub@redhat.com>
352 * omp-low.c (scan_sharing_clauses): Don't ignore
353 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
354 on target data/update constructs.
356 2015-01-23 Wei Mi <wmi@google.com>
358 Backported from trunk.
359 2015-01-22 Wei Mi <wmi@google.com>
361 PR rtl-optimization/64557
362 * dse.c (record_store): Call get_addr for mem_addr.
363 (check_mem_read_rtx): Likewise.
365 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
367 * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
370 2015-01-21 Wei Mi <wmi@google.com>
372 Backported from trunk.
373 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
376 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
377 as having abstract origin used.
378 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
379 (clone_inlined_nodes): Copy abstract originflag.
380 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.
382 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
384 Backport from mainline
385 * config/nios2/nios2.c (nios2_asm_file_end): Implement
386 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
388 (TARGET_ASM_FILE_END): Define.
390 2015-01-15 Martin Liska <mliska@suse.cz>
392 Backport from mainline
393 2014-11-27 Richard Biener <rguenther@suse.de>
396 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
397 and instead return false when !fstrict-aliasing.
399 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
401 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
402 set the memory attributes in all cases but clear MEM_EXPR if need be.
404 2015-01-14 Jakub Jelinek <jakub@redhat.com>
406 Backported from mainline
407 2015-01-12 Jakub Jelinek <jakub@redhat.com>
410 * config/i386/i386.c (ix86_expand_prologue): Add
411 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
413 2015-01-13 Jakub Jelinek <jakub@redhat.com>
415 PR rtl-optimization/64286
416 * ree.c (combine_reaching_defs): Move part of comment earlier,
417 remove !SCALAR_INT_MODE_P check.
418 (add_removable_extension): Don't add vector mode
419 extensions if all uses of the source register aren't the same
422 2015-01-12 Jakub Jelinek <jakub@redhat.com>
424 PR tree-optimization/64563
425 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
426 instead of != VR_VARYING.
428 2015-01-14 Marek Polacek <polacek@redhat.com>
430 Backport from mainline
431 2015-01-13 Marek Polacek <polacek@redhat.com>
434 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
436 2015-01-13 Marc Glisse <marc.glisse@inria.fr>
439 * tree.c (build_qualified_type): Use a canonical type for
442 2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
444 Backport from mainline
445 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
448 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
449 input operands if only the second is inverted.
450 * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
451 Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
452 rs6000_split_logical.
453 (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
455 2015-01-13 Renlin Li <renlin.li@arm.com>
457 Backport from mainline:
458 2014-11-19 Renlin Li <renlin.li@arm.com>
461 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
463 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
465 Backport form mainline
466 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
469 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
471 2015-01-09 Jakub Jelinek <jakub@redhat.com>
473 PR rtl-optimization/64536
474 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
477 2015-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
479 Backport from mainline:
480 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
483 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
484 correct reload handler if -m32 -mpowerpc64 is used.
486 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
488 Backport from mainline:
489 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
491 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
493 * config/rs6000/t-rtems: Add e6500 multilibs.
495 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
497 Backport from mainline:
498 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
500 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
503 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
505 Backport from mainline:
506 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
508 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
511 2015-01-09 Renlin Li <renlin.li@arm.com>
513 Backport from mainline:
514 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
517 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
518 of __ARM_SIZEOF_WCHAR_T.
520 2015-01-08 Christian Bruel <christian.bruel@st.com>
523 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
525 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
527 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
528 instead of `m' constraint. Likewise for unnamed movb comparison
529 patterns using reg_before_reload_operand predicate.
530 * config/pa/predicates.md (reg_before_reload_operand): Tighten
531 predicate to reject register index and LO_SUM DLT memory forms
534 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
536 Backport from mainline:
537 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
540 * config/i386/i386.c (ix86_function_type_abi): Issue an error
541 when ms_abi attribute is used with x32.
543 2014-12-27 Uros Bizjak <ubizjak@gmail.com>
545 * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
546 Emit movshdup for SSE3 and shufps otherwise.
547 (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
548 Emit pshufd for SSE2 and shufps otherwise.
550 2014-12-24 Nick Clifton <nickc@redhat.com>
552 Backport from mainline:
553 2014-06-13 Nick Clifton <nickc@redhat.com>
555 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
556 requested alignment is active.
557 (LABEL_ALIGN): Likewise.
558 (LOOP_ALIGN): Likewise.
560 2014-03-25 Nick Clifton <nickc@redhat.com>
562 * config/rx/rx.c (rx_print_operand): Allow R operator to accept
565 2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
567 Backport from mainline
568 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
570 PR rtl-optimization/64010
571 * reload.c (push_reload): Before reusing a register contained
572 in an operand as input reload register, ensure that it is not
573 used in CALL_INSN_FUNCTION_USAGE.
575 2014-12-15 Jakub Jelinek <jakub@redhat.com>
578 * tsan.c (instrument_func_entry): Insert __tsan_func_entry
579 call on edge from entry block to single succ instead
580 of after labels of single succ of entry block.
582 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
584 Backported from mainline
585 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
587 PR rtl-optimization/64037
588 * combine.c (setup_incoming_promotions): Pass the argument
589 before any promotions happen to promote_function_mode.
591 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
593 Backported from mainline
594 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
597 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
598 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
600 2014-12-13 Jakub Jelinek <jakub@redhat.com>
602 Backported from mainline
603 2014-12-12 Jakub Jelinek <jakub@redhat.com>
605 PR tree-optimization/64269
606 * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
607 len2 or diff are too large.
609 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
611 * doc/md.texi (Insn Lengths): Fix description of (pc).
613 2014-12-11 Renlin Li <renlin.li@arm.com>
615 Backport from mainline
616 2014-12-11 Renlin Li <renlin.li@arm.com>
618 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
620 (aarch64_override_options): Use selected_cpu's tuning.
622 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
624 Backport from mainline
625 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
627 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
629 (XVCVUXDDP_SCALE): Likewise.
630 (XVCVDPSXDS_SCALE): Likewise.
631 (XVCVDPUXDS_SCALE): Likewise.
632 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
633 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
634 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
635 VSX_BUILTIN_XVCVDPUXDS_SCALE.
636 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
638 * config/rs6000/rs6000.c (real.h): New include.
639 (rs6000_scale_v2df): New function.
640 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
641 (UNSPEC_VSX_XVCVUXDDP): Likewise.
642 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
643 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
644 (vsx_xvcvsxddp_scale): New define_expand.
645 (vsx_xvcvsxddp): New define_insn.
646 (vsx_xvcvuxddp_scale): New define_expand.
647 (vsx_xvcvuxddp): New define_insn.
648 (vsx_xvcvdpsxds_scale): New define_expand.
649 (vsx_xvcvdpsxds): New define_insn.
650 (vsx_xvcvdpuxds_scale): New define_expand.
651 (vsx_xvcvdpuxds): New define_insn.
652 * doc/extend.texi (vec_ctf): Add new prototypes.
655 (vec_splat): Likewise.
659 Backport from mainline
660 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
662 * config/rs6000/altivec.h (vec_xl): New #define.
664 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
665 (XXSPLTD_V2DI): Likewise.
666 (DIV_V2DI): Likewise.
667 (UDIV_V2DI): Likewise.
668 (MUL_V2DI): Likewise.
669 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
670 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
671 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
672 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
673 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
674 (UNSPEC_VSX_DIVSD): Likewise.
675 (UNSPEC_VSX_DIVUD): Likewise.
676 (UNSPEC_VSX_MULSD): Likewise.
677 (vsx_mul_v2di): New insn-and-split.
678 (vsx_div_v2di): Likewise.
679 (vsx_udiv_v2di): Likewise.
680 (vsx_xxspltd_<mode>): New insn.
682 Backport from mainline
683 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
685 * config/rs6000/altivec.h (vec_cpsgn): New #define.
686 (vec_mergee): Likewise.
687 (vec_mergeo): Likewise.
688 (vec_cntlz): Likewise.
689 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
690 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
691 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
693 * doc/extend.texi: Document various forms of vec_cpsgn,
694 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
695 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
696 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
697 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
698 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
700 Backport from mainline
701 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
703 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
704 (altivec_vsldoi_<mode>): Likewise.
707 2014-12-10 Jakub Jelinek <jakub@redhat.com>
709 PR tree-optimization/62021
710 * omp-low.c (simd_clone_adjust_return_type): Use
711 vector of pointer_sized_int_node types instead vector of pointer
713 (simd_clone_adjust_argument_types): Likewise.
715 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
717 Backport from mainline:
718 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
721 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
722 for BUILT_IN_POW when flag_errno_math is present.
724 2014-12-10 Marek Polacek <polacek@redhat.com>
726 Backport from mainline
727 2014-12-10 Marek Polacek <polacek@redhat.com>
729 PR tree-optimization/61686
730 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
733 2014-12-09 David Edelsohn <dje.gcc@gmail.com>
735 Backport from mainline
736 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
738 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
739 alignment to section name. Increase default alignment to
742 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
746 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
748 PR rtl-optimization/64037
749 * combine.c (setup_incoming_promotions): Pass the argument
750 before any promotions happen to promote_function_mode.
752 2014-12-09 Richard Biener <rguenther@suse.de>
754 PR tree-optimization/64191
755 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
756 not relevant (nor are their uses).
758 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
760 Backport from mainline
761 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
764 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
766 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
768 Backport from mainline
769 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
772 * config/i386/i386.c (decide_alg): Stop only if there aren't
773 any usable algorithms.
775 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
777 Backport from mainline
778 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
780 PR rtl-optimization/64037
781 * combine.c (setup_incoming_promotions): Pass the argument
782 before any promotions happen to promote_function_mode.
784 2014-12-04 Tobias Burnus <burnus@net-b.de>
787 (ac_has_isl_schedule_constraints_compute_schedule):
789 * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
790 * graphite-interchange.c: Ditto.
791 * graphite-poly.c: Ditto.
792 * graphite-sese-to-poly.c: Ditto.
793 * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
794 Conditionally use ISL 0.13+ functions.
795 * config.in: Regenerate.
796 * configure: Regenerate.
798 2014-12-04 Jakub Jelinek <jakub@redhat.com>
801 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
802 Handle COMPOUND_EXPR.
804 2014-12-03 Jakub Jelinek <jakub@redhat.com>
807 * expmed.c (expand_widening_mult): Return const0_rtx if
810 2014-12-03 Martin Jambor <mjambor@suse.cz>
813 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
814 type sizes before view_converting.
816 2014-12-03 Shanyao Chen <chenshanyao@huawei.com>
818 Backport from mainline
819 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
822 * config/arm/arm.md (*movhi_insn): Use right formatting
825 2014-11-19 Felix Yang <felix.yang@huawei.com>
826 Shanyao Chen <chenshanyao@huawei.com>
829 * config/arm/arm.md (define_attr "arch"): Add v6t2.
830 (define_attr "arch_enabled"): Add test for the above.
831 (*movhi_insn_arch4): Add new alternative.
833 2014-12-03 Renlin Li <Renlin.Li@arm.com>
835 Backported from mainline
836 2014-12-03 Renlin Li <Renlin.Li@arm.com>
840 * ira.c (ira): Update preferred class.
842 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
845 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
846 using post-reload splitter. Use peephole2 pass instead.
847 (call_value_osf_tlsldm): Ditto.
848 (TLS_CALL): New int iterator.
849 (tls): New int attribute.
850 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
851 and call_value_tlsldm using TLS_CALL int iterator.
853 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
856 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
857 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
859 2014-12-01 Richard Biener <rguenther@suse.de>
862 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
863 htab_hash_pointer to not break PCH.
865 2014-12-01 Martin Jambor <mjambor@suse.cz>
868 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
869 value of the argument to the type of the value in the condition.
871 2014-11-28 Jakub Jelinek <jakub@redhat.com>
873 Backported from mainline
874 2014-11-27 Jakub Jelinek <jakub@redhat.com>
877 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
878 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
879 not only if modifier is EXPAND_INITIALIZER, but whenever
880 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
882 2014-11-19 Jakub Jelinek <jakub@redhat.com>
884 PR tree-optimization/63915
885 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
886 true instead of false as last argument to gsi_replace.
889 * ubsan.c: Include tree-eh.h.
890 (instrument_bool_enum_load): Handle loads that can throw.
892 2014-10-31 Jakub Jelinek <jakub@redhat.com>
894 PR rtl-optimization/63659
895 * ree.c (update_reg_equal_equiv_notes): New function.
896 (combine_set_extension, transform_ifelse): Use it.
898 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
900 Backport from mainline.
901 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
902 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
905 2014-11-26 Richard Biener <rguenther@suse.de>
908 * tree-data-ref.c (split_constant_offset_1): Do not follow
909 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
911 2014-11-26 Richard Biener <rguenther@suse.de>
913 Backport from mainline
914 2014-11-26 Richard Biener <rguenther@suse.de>
916 PR tree-optimization/62238
917 * tree-predcom.c (ref_at_iteration): Unshare the expression
918 before gimplifying it.
920 2014-11-25 Richard Biener <rguenther@suse.de>
922 PR tree-optimization/61927
923 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
924 of group and pattern analysis to the one in GCC 4.8.
926 2014-11-07 Richard Biener <rguenther@suse.de>
928 PR tree-optimization/63605
929 * fold-const.c (fold_binary_loc): Properly use element_precision
930 for types that may not be scalar.
932 2014-10-28 Richard Biener <rguenther@suse.de>
935 * fold-const.c (fold_comparison): Properly guard simplifying
936 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
938 2014-11-25 Rohit <rohitarulraj@freescale.com>
941 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
942 added GCC hard register numbers for SPE high registers.
944 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
946 Backport from mainline
947 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
950 * config/sh/sh_optimize_sett_clrt.cc
951 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
952 of void. Abort at complex edges.
953 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
956 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
958 Backport from mainline
959 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
963 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
964 Do not emit bitwise not insn. Emit logical not insn sequence instead.
965 Adjust related comments throughout the file.
967 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
969 Backport from mainline
970 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
973 * config/sh/sh.c: Use signed char for signed field.
975 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
978 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
979 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
982 2014-11-21 Richard Biener <rguenther@suse.de>
984 PR tree-optimization/61750
985 * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
986 match for the resulting VIEW_CONVERT_EXPR.
988 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
991 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
992 Output "b" and "nb" suffix for FP mode.
994 2014-11-19 Tom de Vries <tom@codesourcery.com>
996 Backport from mainline
997 PR tree-optimization/62167
998 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
1000 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
1003 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
1005 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
1006 * doc/tm.texi: Regenerate.
1008 2014-11-14 Felix Yang <felix.yang@huawei.com>
1010 Backport from mainline
1011 2014-11-14 Felix Yang <felix.yang@huawei.com>
1012 Jiji Jiang <jiangjiji@huawei.com>
1014 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
1015 VALL mode iterator instead of VALLDI.
1017 2014-11-13 Teresa Johnson <tejohnson@google.com>
1019 PR tree-optimization/63841
1020 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
1022 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org>
1024 Backport from mainline
1025 2014-11-02 Michael Collison <michael.collison@linaro.org>
1027 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
1028 to support vector modes.
1029 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1031 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
1033 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
1034 (REVERSIBLE_CC_MODE): Fix example.
1035 (REVERSE_CONDITION): Fix typo.
1036 * doc/tm.texi: Regenerate.
1038 2014-11-12 Jakub Jelinek <jakub@redhat.com>
1041 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
1042 chain instead of node->indirect_calls.
1044 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
1047 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
1048 smaller than 8 bytes.
1049 (sparc_function_arg_1): Tweak.
1050 (sparc_function_value_1): Tweak.
1052 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
1054 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
1056 (thumb_set_return_address): Likewise.
1058 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
1060 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
1061 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
1063 2014-11-07 Marek Polacek <polacek@redhat.com>
1065 Backported from mainline
1066 2014-10-23 Marek Polacek <polacek@redhat.com>
1068 * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
1071 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
1073 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
1074 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
1077 2014-11-06 Daniel Hellstrom <daniel@gaisler.com>
1079 * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
1080 * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
1081 * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
1083 * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
1084 * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
1085 * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
1086 * config/sparc/sparc.md (cpu): Add leon3v7.
1087 * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
1089 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
1092 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
1093 (ix86_encode_section_info): Do not check for non-automatic varibles
1094 when setting SYMBOL_FLAG_FAR_ADDR flag.
1095 (x86_64_elf_select_section): Do not check ix86_cmodel here.
1096 (x86_64_elf_unique_section): Ditto.
1097 (x86_elf_aligned_common): Emit tab before .largecomm.
1099 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
1101 Backport from mainline:
1102 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
1104 * varasm.c (const_alias_set): Remove.
1105 (init_varasm_once): Remove initialization of const_alias_set.
1106 (build_constant_desc): Do not set alias set to const_alias_set.
1108 Backport from mainline:
1109 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
1111 PR rtl-optimization/63475
1112 * alias.c (true_dependence_1): Always use get_addr to extract
1113 true address operands from x_addr and mem_addr. Use extracted
1114 address operands to check for references with alignment ANDs.
1115 Use extracted address operands with find_base_term and
1116 base_alias_check. For noncanonicalized operands call canon_rtx with
1117 extracted address operand.
1118 (write_dependence_1): Ditto.
1119 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
1121 Backport from mainline:
1122 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
1124 PR rtl-optimization/63483
1125 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
1126 references when alignment ANDs are involved.
1127 (write_dependence_p): Ditto.
1128 (may_alias_p): Ditto.
1130 2014-10-31 DJ Delorie <dj@redhat.com>
1132 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
1134 2014-10-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1136 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
1137 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1138 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
1139 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1141 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1144 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
1145 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
1146 instead of vr0.min - vr1.min and vr0.max - vr1.max.
1148 2014-10-30 Georg-Johann Lay <avr@gjlay.de>
1151 * config/avr/avr-protos.h (regmask): New inline function.
1152 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
1153 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
1154 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
1155 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
1156 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
1157 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
1158 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
1159 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
1160 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
1161 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
1162 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
1163 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
1164 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
1167 2014-10-30 Jakub Jelinek <jakub@redhat.com>
1169 * BASE-VER: Set to 4.9.3.
1170 * DEV-PHASE: Set to prerelease.
1172 2014-10-30 Release Manager
1174 * GCC 4.9.2 released.
1176 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1178 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
1179 recog state after aarch64_prev_real_insn call.
1181 2014-10-27 Guozhi Wei <carrot@google.com>
1183 PR tree-optimization/63530
1184 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
1185 pointer alignment according to DR_MISALIGNMENT.
1187 2014-10-25 Yury Gribov <y.gribov@samsung.com>
1190 * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
1192 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
1195 * collect2.c (main): Filter out -fno-lto.
1197 2014-10-22 Richard Biener <rguenther@suse.de>
1198 Tobias Burnus <burnus@net-b.de>
1201 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
1203 2014-10-21 Jakub Jelinek <jakub@redhat.com>
1205 PR tree-optimization/63563
1206 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1207 if either dra or drb stmts are not normal loads/stores.
1209 2014-10-17 Jakub Jelinek <jakub@redhat.com>
1211 * asan.c (instrument_derefs): Allow instrumentation of odd-sized
1212 accesses even for -fsanitize=address.
1213 (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
1215 PR tree-optimization/63302
1216 * tree-ssa-reassoc.c (optimize_range_tests_xor,
1217 optimize_range_tests_diff): Use !integer_pow2p () instead of
1220 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1222 * asan.c (instrument_derefs): Enable unaligned path for KASan.
1224 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1226 Backport from mainline
1227 2014-10-03 Yury Gribov <y.gribov@samsung.com>
1229 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
1230 don't emit empty ctors.
1232 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1234 Backport from mainline
1235 2014-09-01 Yury Gribov <y.gribov@samsung.com>
1240 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
1241 (build_check_stmt): Likewise.
1242 (instrument_strlen_call): Likewise.
1243 (asan_expand_check_ifn): Likewise and fix types.
1244 (maybe_cast_to_ptrmode): New function.
1246 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1248 Backport from mainline
1249 2014-08-18 Yury Gribov <y.gribov@samsung.com>
1253 * asan.c (instrument_derefs): Fix bitfield check.
1255 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1257 Backport from mainline
1258 2014-08-11 Yury Gribov <y.gribov@samsung.com>
1260 * asan.c (asan_check_flags): New enum.
1261 (build_check_stmt_with_calls): Removed function.
1262 (build_check_stmt): Split inlining logic to
1263 asan_expand_check_ifn.
1264 (instrument_derefs): Rename parameter.
1265 (instrument_mem_region_access): Rename parameter.
1266 (instrument_strlen_call): Likewise.
1267 (asan_expand_check_ifn): New function.
1268 (asan_instrument): Remove old code.
1269 (pass_sanopt::execute): Change handling of
1270 asan-instrumentation-with-call-threshold.
1271 (asan_clear_shadow): Fix formatting.
1272 (asan_function_start): Likewise.
1273 (asan_emit_stack_protection): Likewise.
1274 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
1276 * internal-fn.c (expand_ASAN_CHECK): New function.
1277 * internal-fn.def (ASAN_CHECK): New internal function.
1278 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
1280 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
1281 * tree.c: Small comment fix.
1283 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1285 Backport from mainline
1286 2014-08-11 Yury Gribov <y.gribov@samsung.com>
1288 * gimple.c (gimple_call_fnspec): Support internal functions.
1289 (gimple_call_return_flags): Use const.
1290 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
1291 * internal-fn.def: Add fnspec information.
1292 * internal-fn.h (internal_fn_fnspec): New function.
1293 (init_internal_fns): Declare new function.
1294 * internal-fn.c (internal_fn_fnspec_array): New global variable.
1295 (init_internal_fns): New function.
1296 * tree-core.h: Update macro call.
1297 * tree.c (build_common_builtin_nodes): Initialize internal fns.
1299 Backport from mainline
1300 2014-08-12 Yury Gribov <y.gribov@samsung.com>
1302 * internal-fn.c (init_internal_fns): Fix off-by-one.
1304 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1306 Backport from mainline
1307 2014-07-31 Yury Gribov <y.gribov@samsung.com>
1309 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
1310 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
1311 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
1313 * gcc.c (sanitize_spec_function): Support new option.
1314 (SANITIZER_SPEC): Remove now redundant check.
1315 * opts.c (common_handle_option): Support new option.
1316 (finish_options): Check for incompatibilities.
1317 * toplev.c (process_options): Split userspace-specific checks.
1319 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1321 Backport from mainline
1322 2014-06-24 Max Ostapenko <m.ostapenko@partner.samsung.com>
1324 * asan.c (instrument_strlen_call): Do not instrument first byte in
1325 strlen if already instrumented.
1327 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1329 Backport from mainline
1330 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1332 * asan.c (check_func): New function.
1333 (maybe_create_ssa_name): Likewise.
1334 (build_check_stmt_with_calls): Likewise.
1335 (use_calls_p): Likewise.
1336 (report_error_func): Change interface.
1337 (build_check_stmt): Allow non-integer lengths; add support
1339 (asan_instrument): Likewise.
1340 (instrument_mem_region_access): Moved code to
1342 (instrument_derefs): Likewise.
1343 (instrument_strlen_call): Likewise.
1344 * cfgcleanup.c (old_insns_match_p): Add support for new
1346 * doc/invoke.texi: Describe new parameter.
1347 * params.def: Define new parameter.
1348 * params.h: Likewise.
1349 * sanitizer.def: Describe new builtins.
1351 Backport from mainline
1352 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1354 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
1356 Backport from mainline
1357 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1361 * asan.c (build_check_stmt): Add condition.
1363 Backport from mainline
1364 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1368 * asan.c (instrument_strlen_call): Fixed instrumentation of
1371 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1373 Backport from mainline
1374 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1376 * asan.c (report_error_func): Add SLOW_P argument, use
1377 BUILT_IN_ASAN_*_N if set.
1378 (build_check_stmt): Likewise.
1379 (instrument_derefs): If T has insufficient alignment,
1380 force same handling as for odd sizes.
1382 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1384 Backport from mainline
1385 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1387 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
1388 BUILT_IN_ASAN_REPORT_STORE_N): New.
1389 * asan.c (struct asan_mem_ref): Change access_size type to
1391 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
1392 update_mem_ref_hash_table): Likewise.
1393 (asan_mem_ref_hasher::hash): Hash in a HWI.
1394 (report_error_func): Change size_in_bytes argument to HWI.
1395 Use *_N builtins if size_in_bytes is larger than 16 or not power of
1397 (build_shadow_mem_access): New function.
1398 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
1399 Handle size_in_bytes not power of two or larger than 16.
1400 (instrument_derefs): Don't give up if size_in_bytes is not
1401 power of two or is larger than 16.
1403 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
1405 PR rtl-optimization/63448
1406 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1407 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1408 (LRA_MAX_INHERITANCE_PASSES): Use it.
1409 (lra_constraint_iter_after_spill): Remove.
1410 (lra_assignment_iter): New.
1411 (lra_assignment_iter_after_spill): New.
1412 * lra-assigns.c (lra_assignment_iter): New.
1413 (lra_assignment_iter_after_spill): New.
1414 (former_reload_pseudo_spill_p): New.
1415 (spill_for): Set up former_reload_pseudo_spill_p.
1416 (setup_live_pseudos_and_spill_after_risky): Ditto.
1417 (assign_by_spills): Ditto.
1418 (lra_assign): Increment lra_assignment_iter. Print the iteration
1419 number. Reset former_reload_pseudo_spill_p. Check
1420 lra_assignment_iter_after_spill.
1421 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
1422 lra_assignment_iter and lra_assignment_iter_after_spill.
1423 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1424 (lra_constraints): Remove code with
1425 lra_assignment_iter_after_spill.
1427 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
1429 * stor-layout.c (self_referential_size): Do not promote arguments.
1431 2014-10-15 Richard Biener <rguenther@suse.de>
1433 Backport from mainline
1434 2014-08-15 Richard Biener <rguenther@suse.de>
1436 PR tree-optimization/62031
1437 * tree-data-ref.c (dr_analyze_indices): Do not set
1438 DR_UNCONSTRAINED_BASE.
1439 (dr_may_alias_p): All indirect accesses have to go the
1440 formerly DR_UNCONSTRAINED_BASE path.
1441 * tree-data-ref.h (struct indices): Remove
1442 unconstrained_base member.
1443 (DR_UNCONSTRAINED_BASE): Remove.
1445 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1447 Backport from mainline r215880
1448 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1450 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1451 Issue a warning message when vec_lvsl or vec_lvsr is used with a
1452 little endian target.
1454 Backport from mainline r215882
1455 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1457 * altivec.md (altivec_lvsl): New define_expand.
1458 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
1459 (altivec_lvsr): New define_expand.
1460 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
1461 * rs6000.c (rs6000_expand_builtin): Change to use
1462 altivec_lvs[lr]_direct; remove commented-out code.
1464 2014-10-10 Richard Biener <rguenther@suse.de>
1466 PR tree-optimization/63379
1467 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
1468 a neutral operand for min/max when it is not a reduction chain.
1470 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1472 Backport from mainline
1473 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1475 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
1476 * configure: Regenerate.
1477 * config/aarch64/aarch64.c (aarch64_override_options): Handle
1478 TARGET_FIX_ERR_A53_835769_DEFAULT.
1479 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
1481 * doc/install.texi (aarch64*-*-*): Document new
1482 --enable-fix-cortex-a53-835769 option.
1484 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1486 Backport from mainline
1487 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1488 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1490 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
1491 (ADJUST_INSN_LENGTH): Define.
1492 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
1493 * config/aarch64/aarch64.c (is_mem_p): New function.
1494 (is_memory_op): Likewise.
1495 (aarch64_prev_real_insn): Likewise.
1496 (is_madd_op): Likewise.
1497 (dep_between_memop_and_curr): Likewise.
1498 (aarch64_madd_needs_nop): Likewise.
1499 (aarch64_final_prescan_insn): Likewise.
1500 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
1501 and -mno-fix-cortex-a53-835769 options.
1503 2014-10-10 Richard Biener <rguenther@suse.de>
1505 PR tree-optimization/63380
1506 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
1509 2014-10-09 Richard Biener <rguenther@suse.de>
1511 PR tree-optimization/61969
1512 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
1515 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1517 Backport from mainline
1518 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1520 PR rtl-optimization/57003
1521 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1522 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
1523 killing regs_invalidated_by_call.
1525 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1527 Backport from mainline
1528 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1531 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
1532 atomic_fetch_<fetchop_name>si_hard,
1533 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
1534 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
1535 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
1536 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
1538 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1541 * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
1543 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1546 * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
1549 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1552 * lto-streamer-out.c (lto_output): Handle thunks correctly.
1553 * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
1555 2014-10-03 Jakub Jelinek <jakub@redhat.com>
1558 * omp-low.c (taskreg_contexts): New variable.
1559 (scan_omp_parallel): Push newly created context into taskreg_contexts
1560 vector and move record layout code to finish_taskreg_scan.
1561 (scan_omp_task): Likewise.
1562 (finish_taskreg_scan): New function.
1563 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
1564 vector elements and release it.
1566 2014-10-02 Martin Jambor <mjambor@suse.cz>
1568 PR tree-optimization/63375
1569 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
1572 2014-10-01 Jakub Jelinek <jakub@redhat.com>
1575 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
1579 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
1580 argument to avx2_permv2ti.
1583 Backported from mainline
1584 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
1587 * cgraphunit.c (analyze_functions): Use get_create rather than get
1588 for decls which are clones of abstract functions.
1590 2014-10-01 Jakub Jelinek <jakub@redhat.com>
1592 Backported from mainline
1593 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
1596 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
1599 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
1601 PR tree-optimization/63186
1602 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
1603 (mark_nonssa_use): Likewise.
1604 (verify_non_ssa_vars): Verify all header blocks for label
1607 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1609 Backport from mainline
1610 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1612 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
1614 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
1616 Backport from mainline
1617 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
1619 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
1620 (fmod<mode>3): Ditto.
1621 (fpremxf4_i387): Ditto.
1622 (reminderxf3): Ditto.
1623 (reminder<mode>3): Ditto.
1624 (fprem1xf4_i387): Ditto.
1626 2014-09-30 David Malcolm <dmalcolm@redhat.com>
1629 * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
1631 2014-09-30 Jakub Jelinek <jakub@redhat.com>
1634 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
1635 or invert_jump_1 if jump isn't any_condjump_p.
1637 2014-09-29 James Clarke <jrtc27@jrtc27.com>
1638 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1641 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
1643 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
1644 kernel version check to avoid incrementing it after every major OS X
1646 (darwin_default_min_version): Avoid static memory buffer.
1648 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
1650 Backport from mainline r212303
1652 * config/arm/arm-protos.h (arm_legitimate_address_p,
1653 arm_is_constant_pool_ref): Add prototypes.
1654 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
1655 (arm_is_constant_pool_ref) New function.
1656 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
1657 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
1658 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
1659 operand and remove pool_range and neg_pool_range attributes.
1660 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
1661 pool_range and neg_pool_range attributes.
1662 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
1663 constant pool references.
1665 2014-09-29 Jakub Jelinek <jakub@redhat.com>
1668 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
1669 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
1670 use the alignment of avar rather than ovar.
1672 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
1674 * config/pa/pa.c (pa_output_function_epilogue): Only update
1675 last_address when a nonnote insn is found.
1677 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1679 Backport from mainline
1680 2014-09-25 Nick Clifton <nickc@redhat.com>
1681 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1684 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
1685 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
1687 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1689 Backport from mainline r215559
1690 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1693 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
1694 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
1696 2014-09-25 Jakub Jelinek <jakub@redhat.com>
1698 PR tree-optimization/63341
1699 * tree-vectorizer.h (vect_create_data_ref_ptr,
1700 vect_create_addr_base_for_vector_ref): Add another tree argument
1701 defaulting to NULL_TREE.
1702 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
1703 argument, pass it down to vect_create_addr_base_for_vector_ref.
1704 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
1705 add that to base_offset too if non-NULL.
1706 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
1707 for dr_explicit_realign_optimized set it to vector byte size
1708 - 1 instead of setting offset, pass byte_offset down to
1709 vect_create_data_ref_ptr.
1711 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1713 Backport from mainline
1714 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1716 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
1717 refine the constraints used on 32/64-bit floating point moves.
1719 (f64_vsx): Likewise.
1722 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
1723 (BOOL_REGS_OP1): Likewise.
1724 (BOOL_REGS_OP2): Likewise.
1725 (BOOL_REGS_UNARY): Likewise.
1726 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
1727 32/64-bit floating point moves. Do not use wa, instead use ww/ws
1728 for moves involving VSX registers. Do not use constraints that
1729 target VSX registers for decimal types.
1730 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
1731 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
1733 2014-09-22 Marek Polacek <polacek@redhat.com>
1735 Backport from mainline
1736 2014-05-21 Marek Polacek <polacek@redhat.com>
1739 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
1741 2014-09-22 Jakub Jelinek <jakub@redhat.com>
1744 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
1745 insert a debug source bind stmt setting DEBUG_EXPR_DECL
1746 instead of a normal gimple assignment stmt.
1748 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1750 Back port from trunk:
1751 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1753 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
1754 for base_reg_operand to be common between LO_SUM and PLUS.
1755 (fusion_gpr_mem_combo): New predicate to match a fused address
1756 that combines the addis and memory offset address.
1758 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
1760 (emit_fusion_gpr_load): Likewise.
1762 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
1763 signature to pass each argument separately, rather than
1764 using an operands array. Rewrite the insns found by peephole2 to
1765 be a single insn, rather than hoping the insns will still be
1766 together when the peephole pass is done. Drop being called via a
1768 (emit_fusion_gpr_load): Change calling signature to be called from
1769 the fusion_gpr_load_<mode> insns with a combined memory address
1770 instead of the peephole pass passing the addis and offset
1773 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
1775 (power8 fusion peephole): Drop support for doing power8 via a
1776 normal peephole that was created by the peephole2 pass.
1777 (power8 fusion peephole2): Create a new insn with the fused
1778 address, so that the fused operation is kept together after
1779 register allocation is done.
1780 (fusion_gpr_load_<mode>): Likewise.
1782 2014-09-18 Jakub Jelinek <jakub@redhat.com>
1785 * asan.c (transform_statements): Don't instrument clobber statements.
1787 2014-09-17 Jakub Jelinek <jakub@redhat.com>
1790 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
1791 if there are only debug stmts after the noreturn call, instead
1792 remove the debug stmts.
1794 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
1796 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
1797 Enable selection of 'posix' or no thread model.
1799 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
1802 * config/pa/pa.c (pa_function_value): Directly handle aggregates
1803 that fit exactly in a word or double word.
1805 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
1807 * doc/install.texi (Options specification): add
1808 --disable-libsanitizer item.
1810 2014-09-12 DJ Delorie <dj@redhat.com>
1812 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
1813 (extend_and_shift1_hipsi2): Likewise.
1814 (extend_and_shift2_hipsi2): Likewise.
1816 2014-09-12 Martin Jambor <mjambor@suse.cz>
1819 * cgraph.h (cgraph_analyze_function): Declare.
1820 * cgraphunit.c: (analyze_function): Remove forward declaration,
1821 rename to cgraph_analyze_function, made external.
1822 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
1823 new decl properly. Analyze the new thunk if it is expanded.
1825 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
1827 Backport from mainline
1828 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
1831 * config/i386/i386.c (ix86_option_override_internal): Also turn
1832 off OPTION_MASK_ABI_X32 for -m16.
1834 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
1836 Backport from mainline.
1837 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
1839 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
1841 (vmull_high_lane_s32): Likewise.
1842 (vmull_high_lane_u16): Likewise.
1843 (vmull_high_lane_u32): Likewise.
1845 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
1847 Backport r214946 from mainline
1848 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1850 * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
1852 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
1854 Backport r214953 from mainline
1855 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1857 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
1858 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
1860 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
1861 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
1862 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
1863 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
1864 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
1865 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
1866 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
1867 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
1868 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
1869 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
1870 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
1871 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
1872 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
1873 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
1874 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
1875 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
1876 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
1877 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
1878 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
1879 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
1880 with int{32,16,8}_t.
1882 2014-09-11 Jason Merrill <jason@redhat.com>
1885 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
1887 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
1889 Backport from 2014-09-11 trunk r215152.
1892 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
1893 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
1894 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
1896 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1898 Backport from mainline
1899 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1901 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
1902 V2DF, V4SF, DF, and DI modes.
1903 (vsx_fmav2df2): Likewise.
1904 (vsx_float_fix_<mode>2): Likewise.
1905 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
1907 2014-09-10 Xinliang David Li <davidxl@google.com>
1909 Backport from mainline
1911 * config/arm/arm.md (movcond_addsi): Handle case where source
1912 and target operands are the same.
1914 2014-09-10 Alan Modra <amodra@gmail.com>
1917 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
1920 2014-09-09 Bill Schmidt <wschmidt@us.ibm.com>
1922 Backported from mainline
1923 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1925 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
1926 selection of 0th memory doubleword, regardless of endianness.
1928 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1930 Backport from mainline
1931 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1933 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1937 2014-09-09 Jason Merrill <jason@redhat.com>
1941 * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
1942 reference to a DECL_EXTERNAL COMDAT.
1944 2014-09-09 Richard Biener <rguenther@suse.de>
1946 Backport from mainline
1947 2014-08-05 Richard Biener <rguenther@suse.de>
1949 PR rtl-optimization/61672
1950 * emit-rtl.h (mem_attrs_eq_p): Declare.
1951 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
1952 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
1953 * cfgcleanup.c (merge_memattrs): Likewise.
1956 2014-08-11 Richard Biener <rguenther@suse.de>
1958 PR tree-optimization/62075
1959 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
1960 handle uses in patterns.
1962 2014-08-14 Richard Biener <rguenther@suse.de>
1964 PR rtl-optimization/62079
1965 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
1968 2014-08-26 Richard Biener <rguenther@suse.de>
1970 PR tree-optimization/62175
1971 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1972 expand possibly trapping operations.
1974 2014-09-08 DJ Delorie <dj@redhat.com>
1976 * doc/invoke.texi (MSP430 Options): Add -minrt.
1978 2014-09-05 Easwaran Raman <eraman@google.com>
1980 Backport from mainline
1981 PR rtl-optimization/62146
1982 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
1983 hoisted instruction unconditional.
1985 2014-09-04 Guozhi Wei <carrot@google.com>
1988 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
1989 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
1990 it into two patterns.
1991 (move_lo_quad_internal_be_<mode>): Likewise.
1993 2014-09-03 Martin Jambor <mjambor@suse.cz>
1996 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
1997 pass-trough jump functions correctly.
1999 2014-09-03 Martin Jambor <mjambor@suse.cz>
2002 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2003 created replacements in ascending order of offsets.
2004 (known_aggs_to_agg_replacement_list): Likewise.
2006 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
2008 Backport from mainline
2009 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
2012 * config/sh/sh.md (ashlsi3): Handle negative shift count for
2014 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
2016 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
2018 Backport from mainline
2019 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
2022 * config/sh/predicates.md (general_extend_operand): Disable
2023 TRUNCATE before reload completes.
2025 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
2027 Backport from mainline
2028 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
2031 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2033 2014-09-01 Jakub Jelinek <jakub@redhat.com>
2036 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2037 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2038 (find_inc): Revert 2014-08-12 change.
2040 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
2041 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
2042 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
2044 2014-09-01 Marek Polacek <polacek@redhat.com>
2046 Backport from mainline
2047 2014-08-21 Marek Polacek <polacek@redhat.com>
2050 * expr.c (is_aligning_offset): Remove logical not.
2052 2014-09-01 Marek Polacek <polacek@redhat.com>
2054 Backport from mainline
2055 2014-08-19 Marek Polacek <polacek@redhat.com>
2058 * cgraphunit.c (handle_alias_pairs): Fix condition.
2060 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
2062 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
2063 prefix to function labels when generating fast indirect calls.
2065 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
2067 Backport from mainline
2068 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
2071 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
2073 2014-08-27 Guozhi Wei <carrot@google.com>
2076 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
2077 amount before using it.
2079 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
2081 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
2083 2014-08-26 Marek Polacek <polacek@redhat.com>
2085 Backport from mainline
2086 2014-08-26 Marek Polacek <polacek@redhat.com>
2089 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
2090 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
2092 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
2094 Backport from mainline
2095 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
2098 * config/sh/sh.opt (musermode): Allow negative form.
2099 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
2100 targets that don't support it.
2101 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
2102 Document -mno-usermode option.
2104 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
2107 * config/pa/pa.c (pa_output_function_epilogue): Don't set
2108 last_address when the current function is a thunk.
2109 (pa_asm_output_mi_thunk): When we don't have named sections or they
2110 are not being used, check that thunk can reach the stub table with a
2113 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2115 Backport from mainline
2116 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2119 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
2120 documentation to state it is only for VSX operations.
2122 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
2123 constraint only active if VSX.
2125 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
2126 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
2129 2014-08-21 Uros Bizjak <ubizjak@gmail.com>
2131 Backport from mainline
2132 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
2134 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
2135 destination if it is used in source.
2136 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
2137 (*popcount<mode>2_falsedep_1): Likewise.
2139 Backport from mainline
2140 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
2143 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
2145 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
2146 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
2147 (ffs<mode>2): Do not expand with tzcnt for
2148 TARGET_AVOID_FALSE_DEP_FOR_BMI.
2149 (ffssi2_no_cmove): Ditto.
2150 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
2151 (ctz<mode>2): New expander.
2152 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
2153 (*ctz<mode>2_falsedep): New insn.
2154 (*ctz<mode>2): Rename from ctz<mode>2.
2155 (clz<mode>2_lzcnt): New expander.
2156 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
2157 (*clz<mode>2_lzcnt_falsedep): New insn.
2158 (*clz<mode>2): Rename from ctz<mode>2.
2159 (popcount<mode>2): New expander.
2160 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
2161 (*popcount<mode>2_falsedep): New insn.
2162 (*popcount<mode>2): Rename from ctz<mode>2.
2163 (*popcount<mode>2_cmp): Remove.
2164 (*popcountsi2_cmp_zext): Ditto.
2166 2014-08-20 Martin Jambor <mjambor@suse.cz>
2167 Wei Mi <wmi@google.com>
2171 * tree-ssa-operands.c (update_stmt_operands): Remove
2172 MODIFIED_NORETURN_CALLS.
2173 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
2174 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
2175 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
2176 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
2177 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
2178 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
2179 (gimple_call_set_ctrl_altering): New func.
2180 (gimple_call_ctrl_altering_p): Ditto.
2181 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
2182 (make_blocks): Use gimple_call_initialize_ctrl_altering.
2183 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
2184 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
2185 remove MODIFIED_NORETURN_CALLS.
2187 2014-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2189 Backport from mainline.
2190 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2192 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
2193 Remove unnecessary attributes.
2195 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
2198 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
2200 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
2201 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
2202 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
2204 * config/pa/pa.md (begin_brtab): Delete insn.
2205 (end_brtab): Likewise.
2207 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
2209 Backport from mainline:
2210 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
2212 * doc/invoke.texi (SH options): Document missing processor variant
2213 options. Remove references to Hitachi. Undocument deprecated mspace
2216 2014-08-15 Tom de Vries <tom@codesourcery.com>
2218 Backport from mainline:
2219 2014-08-14 Tom de Vries <tom@codesourcery.com>
2221 PR rtl-optimization/62004
2222 PR rtl-optimization/62030
2223 * ifcvt.c (rtx_interchangeable_p): New function.
2224 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
2226 2014-08-05 Richard Biener <rguenther@suse.de>
2228 * emit-rtl.h (mem_attrs_eq_p): Declare.
2229 * emit-rtl.c (mem_attrs_eq_p): Export.
2231 2014-08-15 Jakub Jelinek <jakub@redhat.com>
2234 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
2235 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
2236 in OMP_CLAUSE_MAP in some outer target region.
2238 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2240 Backport from mainline
2241 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2244 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
2245 move to subtarget in serial version if result is ignored.
2247 2014-08-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
2249 Backport from mainline
2250 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
2253 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
2254 bitfields, that is when size doesn't match the size of type or the
2255 size of the constructor.
2257 2014-08-12 Felix Yang <fei.yang0953@gmail.com>
2259 PR tree-optimization/62073
2260 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
2263 2014-08-12 Jakub Jelinek <jakub@redhat.com>
2266 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
2267 any registers that are used in mem_insn.
2269 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2271 Backport patch from mainline
2272 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2274 * config/rs6000/constraints.md (wh constraint): New constraint,
2275 for FP registers if direct move is available.
2276 (wi constraint): New constraint, for VSX/FP registers that can
2277 handle 64-bit integers.
2278 (wj constraint): New constraint for VSX/FP registers that can
2279 handle 64-bit integers for direct moves.
2280 (wk constraint): New constraint for VSX/FP registers that can
2281 handle 64-bit doubles for direct moves.
2282 (wy constraint): Make documentation match implementation.
2284 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
2285 scalar_in_vmx_p field to simplify tests of whether SFmode or
2286 DFmode can go in the Altivec registers.
2287 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
2288 (rs6000_setup_reg_addr_masks): Likewise.
2289 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
2290 field, and wh/wi/wj/wk constraints.
2291 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
2292 the wh/wi/wj/wk constraints.
2293 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
2294 upper registers, prefer VSX registers unless the operation is a
2295 memory operation with REG+OFFSET addressing.
2297 * config/rs6000/vsx.md (VSr mode attribute): Add support for
2298 DImode. Change SFmode to use ww constraint instead of d to allow
2299 SF registers in the upper registers.
2302 (VSr5): Fix thinko in comment.
2303 (VSa): New mode attribute that is an alternative to wa, that
2304 returns the VSX register class that a mode can go in, but may not
2305 be the preferred register class.
2306 (VS_64dm): New mode attribute for appropriate register classes for
2307 referencing 64-bit elements of vectors for direct moves and normal
2309 (VS_64reg): Likewise.
2310 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
2311 register allocator to only registers the data type can handle.
2312 (vsx_le_perm_load_<mode>): Likewise.
2313 (vsx_le_perm_store_<mode>): Likewise.
2314 (vsx_xxpermdi2_le_<mode>): Likewise.
2315 (vsx_xxpermdi4_le_<mode>): Likewise.
2316 (vsx_lxvd2x2_le_<mode>): Likewise.
2317 (vsx_lxvd2x4_le_<mode>): Likewise.
2318 (vsx_stxvd2x2_le_<mode>): Likewise.
2319 (vsx_add<mode>3): Likewise.
2320 (vsx_sub<mode>3): Likewise.
2321 (vsx_mul<mode>3): Likewise.
2322 (vsx_div<mode>3): Likewise.
2323 (vsx_tdiv<mode>3_internal): Likewise.
2324 (vsx_fre<mode>2): Likewise.
2325 (vsx_neg<mode>2): Likewise.
2326 (vsx_abs<mode>2): Likewise.
2327 (vsx_nabs<mode>2): Likewise.
2328 (vsx_smax<mode>3): Likewise.
2329 (vsx_smin<mode>3): Likewise.
2330 (vsx_sqrt<mode>2): Likewise.
2331 (vsx_rsqrte<mode>2): Likewise.
2332 (vsx_tsqrt<mode>2_internal): Likewise.
2333 (vsx_fms<mode>4): Likewise.
2334 (vsx_nfma<mode>4): Likewise.
2335 (vsx_eq<mode>): Likewise.
2336 (vsx_gt<mode>): Likewise.
2337 (vsx_ge<mode>): Likewise.
2338 (vsx_eq<mode>_p): Likewise.
2339 (vsx_gt<mode>_p): Likewise.
2340 (vsx_ge<mode>_p): Likewise.
2341 (vsx_xxsel<mode>): Likewise.
2342 (vsx_xxsel<mode>_uns): Likewise.
2343 (vsx_copysign<mode>3): Likewise.
2344 (vsx_float<VSi><mode>2): Likewise.
2345 (vsx_floatuns<VSi><mode>2): Likewise.
2346 (vsx_fix_trunc<mode><VSi>2): Likewise.
2347 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
2348 (vsx_x<VSv>r<VSs>i): Likewise.
2349 (vsx_x<VSv>r<VSs>ic): Likewise.
2350 (vsx_btrunc<mode>2): Likewise.
2351 (vsx_b2trunc<mode>2): Likewise.
2352 (vsx_floor<mode>2): Likewise.
2353 (vsx_ceil<mode>2): Likewise.
2354 (vsx_<VS_spdp_insn>): Likewise.
2355 (vsx_xscvspdp): Likewise.
2356 (vsx_xvcvspuxds): Likewise.
2357 (vsx_float_fix_<mode>2): Likewise.
2358 (vsx_set_<mode>): Likewise.
2359 (vsx_extract_<mode>_internal1): Likewise.
2360 (vsx_extract_<mode>_internal2): Likewise.
2361 (vsx_extract_<mode>_load): Likewise.
2362 (vsx_extract_<mode>_store): Likewise.
2363 (vsx_splat_<mode>): Likewise.
2364 (vsx_xxspltw_<mode>): Likewise.
2365 (vsx_xxspltw_<mode>_direct): Likewise.
2366 (vsx_xxmrghw_<mode>): Likewise.
2367 (vsx_xxmrglw_<mode>): Likewise.
2368 (vsx_xxsldwi_<mode>): Likewise.
2369 (vsx_xscvdpspn): Tighten constraints to only use register classes
2371 (vsx_xscvspdpn): Likewise.
2372 (vsx_xscvdpspn_scalar): Likewise.
2374 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
2375 wj, and wk constraints.
2376 (GPR_REG_CLASS_P): New helper macro for register classes targeting
2377 general purpose registers.
2379 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
2381 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
2382 DImode instead of wm. Use wk constraint for direct move of DFmode
2384 (extendsidi2_lfiwax): Likewise.
2387 (movdi_internal64): Likewise.
2389 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
2390 wk constraints. Make the wy constraint documentation match them
2393 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2395 Backport from mainline
2396 2014-08-04 Ganesh Gopalasubramanian
2397 <Ganesh.Gopalasubramanian@amd.com>
2399 * config/i386/i386.c (ix86_option_override_internal): Add
2400 PTA_RDRND and PTA_MOVBE for bdver4.
2402 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2404 Backport from mainline
2405 2014-08-04 Ganesh Gopalasubramanian
2406 <Ganesh.Gopalasubramanian@amd.com>
2408 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
2409 family information. Handle BTVER2 cpu with cpuid family value.
2411 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2413 Backport from mainline
2414 2014-06-16 Ganesh Gopalasubramanian
2415 <Ganesh.Gopalasubramanian@amd.com>
2417 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2418 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2419 handling 32-bit multiplication.
2421 2014-08-08 Guozhi Wei <carrot@google.com>
2423 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
2425 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
2427 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
2430 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
2433 * haifa-sched.c (advance_one_cycle): Fix dump.
2434 (schedule_block): Don't advance cycle if we are already at the
2435 beginning of the cycle.
2437 2014-08-06 Richard Biener <rguenther@suse.de>
2439 PR tree-optimization/61320
2440 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
2441 handle misaligned loads.
2443 2014-08-04 Rohit <rohitarulraj@freescale.com>
2446 * config/rs6000/rs6000.c
2447 (rs6000_reg_names): Add SPE high register names.
2448 (alt_reg_names): Likewise.
2449 (rs6000_dwarf_register_span): For SPE high registers, replace
2450 dwarf register numbers with GCC hard register numbers.
2451 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
2452 (rs6000_dbx_register_number): For SPE high registers, return dwarf
2453 register number for the corresponding GCC hard register number.
2454 * config/rs6000/rs6000.h
2455 (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
2456 register numbers for SPE high registers.
2457 (DWARF_FRAME_REGISTERS): Likewise.
2458 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
2459 (DWARF_FRAME_REGNUM): Likewise.
2460 (FIXED_REGISTERS): Likewise.
2461 (CALL_USED_REGISTERS): Likewise.
2462 (CALL_REALLY_USED_REGISTERS): Likewise.
2463 (REG_ALLOC_ORDER): Likewise.
2464 (enum reg_class): Likewise.
2465 (REG_CLASS_NAMES): Likewise.
2466 (REG_CLASS_CONTENTS): Likewise.
2467 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
2469 2014-08-01 Vladimir Makarov <vmakarov@redhat.com>
2471 * lra-constraints.c (remove_inheritance_pseudos): Process
2472 destination pseudo too.
2474 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
2476 Backport from mainline
2477 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
2479 PR tree-optimization/61375
2480 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
2481 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
2482 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
2484 2014-08-01 Richard Biener <rguenther@suse.de>
2486 PR tree-optimization/61964
2487 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
2488 by structural equality.
2490 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2492 Backport from mainline
2493 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2496 * config/sh/sh.c (sh_legitimate_address_p,
2497 sh_legitimize_reload_address): Handle reg+reg address modes when
2498 ALLOW_INDEXED_ADDRESS is false.
2499 * config/sh/predicates.md (general_movsrc_operand,
2500 general_movdst_operand): Likewise.
2502 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2504 Backport from mainline
2505 2014-07-14 Jakub Jelinek <jakub@redhat.com>
2508 * config/i386/i386.c (classify_argument): Don't merge classes above
2511 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2513 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
2515 2014-07-24 Kyle McMartin <kyle@redhat.com>
2517 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
2519 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2521 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
2523 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
2524 function. Issue -Wpsabi warning if future GCC releases will use
2525 different field alignment rules for this type.
2526 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
2527 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2528 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2530 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2532 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
2533 -Wpsabi note when encountering a type where future GCC releases
2534 will apply different alignment requirements.
2536 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2538 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
2539 does not fit fully into floating-point registers, and there is still
2540 space in the register parameter area, issue -Wpsabi note that the ABI
2541 will change in a future GCC release.
2543 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2545 * config/arm/t-rtems-eabi: Add
2546 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
2547 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
2548 mbig-endian/mthumb/march=armv7-r, and
2549 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
2552 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2553 Chris Johns <chrisj@rtems.org>
2554 Joel Sherrill <joel.sherrill@oarcorp.com>
2556 * config.gcc: Add nios2-*-rtems*.
2557 * config/nios2/rtems.h: New file.
2558 * gcc/config/nios2/t-rtems: New file.
2560 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
2562 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
2563 (LIBTSAN_EARLY_SPEC): Likewise.
2565 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
2567 Backport from mainline
2568 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
2571 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
2572 out of #ifdef __OPTIMIZE__.
2574 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
2576 * expr.c (store_field): Handle VOIDmode for calls that return values
2577 in multiple locations.
2579 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
2581 * toplev.c (output_stack_usage): Adjust the location of the warning.
2583 2014-07-19 Daniel Cederman <cederman@gaisler.com>
2585 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
2586 (*membar_storeload): Disable for LEON3.
2588 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2590 Backport from mainline
2591 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
2594 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
2596 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2598 Backport from mainline
2599 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2602 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
2603 Fix instruction constraint.
2604 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
2606 2014-07-17 Richard Biener <rguenther@suse.de>
2608 Backport from mainline
2609 2014-07-14 Richard Biener <rguenther@suse.de>
2611 PR tree-optimization/61779
2612 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
2613 simplifying a condition.
2615 2014-07-17 Richard Biener <rguenther@suse.de>
2617 PR rtl-optimization/61801
2618 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
2619 don't set reg_pending_barrier if it appears in a debug-insn.
2621 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
2623 Backport from trunk.
2625 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
2626 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
2627 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
2629 (cris_print_index, cris_print_operand, cris_constant_index_p)
2630 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
2631 (cris_address_cost): Ditto last CONSTANT_P.
2632 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
2633 callers changed. Yield cris_offsettable_symbol for non-PIC
2634 constant symbolic expressions including labels. Yield cris_unspec
2636 (cris_expand_pic_call_address): New parameter MARKERP. Set its
2637 target to pic_offset_table_rtx for calls that will likely go
2638 through PLT, const0_rtx when they can't. All callers changed.
2639 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
2640 symbolic expressions to be PICified. Remove second, redundant,
2641 assert on can_create_pseudo_p returning non-zero. Use
2642 replace_equiv_address_nv, not replace_equiv_address, for final
2644 * config/cris/cris.md ("movsi"): Move variable t to pattern
2645 toplevel. Adjust assert for new cris_symbol_type member. Use
2646 CONSTANT_P instead of CONSTANT_ADDRESS_P.
2647 ("*movsi_internal") <case 9>: Make check for valid unspec operands
2649 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
2650 ("call", "call_value"): Use second incoming operand as a marker
2651 for pic-offset-table-register being used.
2652 ("*expanded_call_non_v32", "*expanded_call_v32")
2653 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
2654 second incoming operand to CALL, match cris_call_type_marker.
2655 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
2656 ("*expanded_call_side"): Ditto. Fix typo in comment.
2657 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
2659 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
2660 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
2661 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
2662 users changed. Add members cris_offsettable_symbol and cris_unspec.
2663 (cris_symbol_type): Rename from cris_pic_symbol_type.
2664 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
2666 * config/cris/cris-protos.h (cris_symbol_type_of,
2667 cris_expand_pic_call_address): Adjust prototypes.
2668 (cris_legitimate_constant_p): New prototype.
2670 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
2671 an existing tmake_file. Don't add t-slibgcc and t-linux.
2673 2014-07-16 Jakub Jelinek <jakub@redhat.com>
2675 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
2676 on the FUNCTION_DECL.
2678 * BASE-VER: Set to 4.9.2.
2679 * DEV-PHASE: Set to prerelease.
2681 2014-07-16 Release Manager
2683 * GCC 4.9.1 released.
2685 2014-07-10 Cary Coutant <ccoutant@google.com>
2687 Backport from trunk at r212211.
2689 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
2691 (resolve_addr_in_expr): When replacing the rtx in a location list
2692 entry, get a new address table entry.
2693 (dwarf2out_finish): Call index_location_lists even if there are no
2694 addr_index_table entries yet.
2696 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
2698 * doc/install.texi: Remove links to defunct package providers for
2701 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
2704 * function.c (allocate_struct_function): Revert r188667 change.
2706 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
2708 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
2710 Backport r211369 from trunk.
2711 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
2714 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
2715 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
2716 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
2717 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
2718 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
2719 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
2720 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
2721 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
2722 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
2725 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
2727 Backport r210219 from trunk.
2728 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2730 * config/arm/arm_neon.h: Update comment.
2731 * config/arm/neon-docgen.ml: Delete.
2732 * config/arm/neon-gen.ml: Delete.
2733 * doc/arm-neon-intrinsics.texi: Update comment.
2735 2014-07-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2737 Backport r211775 from trunk.
2738 2014-06-18 Terry Guo <terry.guo@arm.com>
2741 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
2744 2014-07-08 Jakub Jelinek <jakub@redhat.com>
2746 PR rtl-optimization/61673
2747 * combine.c (simplify_comparison): Test just mode's sign bit
2748 in tmode rather than the sign bit and any bits above it.
2750 2014-07-08 James Greenhalgh <james.greenhalgh@arm.com>
2752 Backport r212298 from trunk.
2753 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
2755 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
2756 (move_lo_quad_internal_be_<mode>): Likewise.
2757 (move_lo_quad_<mode>): Convert to define_expand.
2758 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
2759 (aarch64_simd_move_hi_quad_be_<mode>): New.
2760 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
2761 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
2762 (aarch64_combinez_be<mode>): New.
2763 (aarch64_combine<mode>): Convert to define_expand.
2764 (aarch64_combine_internal<mode>): New.
2765 (aarch64_simd_combine<mode>): Remove bogus RTL description.
2767 2014-07-08 Richard Biener <rguenther@suse.de>
2769 PR tree-optimization/61680
2770 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2771 Handle properly all read-write dependences with group accesses.
2773 PR tree-optimization/61681
2774 * tree-ssa-structalias.c (find_what_var_points_to): Expand
2775 NONLOCAL inside ESCAPED.
2777 2014-07-08 Alan Lawrence <alan.lawrence@arm.com>
2779 Backport r211502 from mainline.
2780 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
2783 * config/aarch64/aarch64-modes.def: Add V1DFmode.
2784 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
2787 2014-07-08 Jakub Jelinek <jakub@redhat.com>
2789 PR tree-optimization/61725
2790 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
2791 range, use range_includes_zerop_p instead of integer_zerop on
2792 vr0->min, only use log2 of max if min is not negative.
2794 2014-07-06 Gerald Pfeifer <gerald@pfeifer.com>
2796 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
2798 2014-07-04 Jakub Jelinek <jakub@redhat.com>
2801 * cgraphunit.c (expand_thunk): Call free_dominance_info.
2803 PR tree-optimization/61684
2804 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
2805 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
2807 2014-06-30 Jakub Jelinek <jakub@redhat.com>
2809 Backported from mainline
2810 2014-06-27 Jakub Jelinek <jakub@redhat.com>
2812 PR tree-optimization/57233
2813 PR tree-optimization/61299
2814 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
2816 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
2817 would be lowered to scalar shifts, check if corresponding
2818 shifts and vector BIT_IOR_EXPR are supported and don't lower
2819 or lower just to narrower vector type in that case.
2820 * expmed.c (expand_shift_1): Fix up handling of vector
2823 2014-06-25 Jakub Jelinek <jakub@redhat.com>
2825 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
2826 (LANG_HOOKS_DECLS): Add it.
2827 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
2829 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
2830 * langhooks.h (struct lang_hooks_for_decls): Add
2831 omp_clause_linear_ctor hook.
2832 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
2833 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
2834 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
2835 combined simd loop use omp_clause_linear_ctor hook.
2837 2014-06-24 Jakub Jelinek <jakub@redhat.com>
2839 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
2840 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
2841 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
2842 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
2843 (gimplify_adjust_omp_clauses): Likewise.
2844 * omp-low.c (lower_rec_simd_input_clauses,
2845 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
2846 safelen the same as safelen(1).
2847 * tree-nested.c (convert_nonlocal_omp_clauses,
2848 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
2849 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
2850 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
2851 Fixup handling of GIMPLE_OMP_TARGET.
2852 (convert_tramp_reference_stmt, convert_gimple_call): Handle
2855 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2857 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
2858 change in ORT_TARGET region, don't jump to do_outer.
2859 (struct gimplify_adjust_omp_clauses_data): New type.
2860 (gimplify_adjust_omp_clauses_1): Adjust for data being
2861 a struct gimplify_adjust_omp_clauses_data pointer instead
2862 of tree *. Pass pre_p as a new argument to
2863 lang_hooks.decls.omp_finish_clause hook.
2864 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
2865 splay_tree_foreach to pass both list_p and pre_p.
2866 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
2867 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
2868 gimplify_adjust_omp_clauses callers.
2869 * langhooks.c (lhd_omp_finish_clause): New function.
2870 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
2871 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
2872 * langhooks.h (struct lang_hooks_for_decls): Add a new
2873 gimple_seq * argument to omp_finish_clause hook.
2874 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
2875 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
2876 (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
2877 add it to outer ctx's decl_map as identity.
2878 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
2879 * tree-nested.c (convert_nonlocal_omp_clauses,
2880 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
2881 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
2883 2014-06-10 Jakub Jelinek <jakub@redhat.com>
2886 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
2887 Set lastprivate_firstprivate even if omp_private_outer_ref
2888 langhook returns true.
2889 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
2890 langhook, call unshare_expr on new_var and call
2891 build_outer_var_ref to get the last argument.
2893 2014-05-11 Jakub Jelinek <jakub@redhat.com>
2895 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
2896 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
2897 number of operands to 3.
2898 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
2899 * tree-nested.c (convert_nonlocal_omp_clauses,
2900 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
2901 * gimplify.c (gimplify_scan_omp_clauses): Handle
2902 OMP_CLAUSE_LINEAR_STMT.
2903 * omp-low.c (lower_rec_input_clauses): Fix typo.
2904 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
2905 cast between Fortran boolean_type_node and C _Bool if needed.
2907 2014-06-30 Jason Merrill <jason@redhat.com>
2911 * gimplify.c (gimplify_arg): Non-static.
2912 * gimplify.h: Declare it.
2914 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
2916 Backport from Mainline
2917 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
2920 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
2921 Add alternative; make early clobber. Adjust both split patterns
2922 to use operand 0 as the working register.
2924 2014-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2926 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
2928 (VCONQ): Make comment more helpful.
2930 * config/aarch64/aarch64-simd.md
2931 (aarch64_sqdmulh_lane<mode>):
2932 Use VCOND for operands 2. Update lane checking and flipping logic.
2933 (aarch64_sqrdmulh_lane<mode>): Likewise.
2934 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
2935 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
2936 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
2937 attribute of operand 3 to VCOND.
2938 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
2939 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
2940 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
2941 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
2942 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
2943 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
2945 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
2946 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
2947 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
2948 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
2949 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
2950 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
2951 operand to VCOND. Update lane flipping and bounds checking logic.
2952 (aarch64_sqdmlal2_lane<mode>): Likewise.
2953 (aarch64_sqdmlsl_lane<mode>): Likewise.
2954 (aarch64_sqdmull_lane<mode>): Likewise.
2955 (aarch64_sqdmull2_lane<mode>): Likewise.
2956 (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
2957 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
2958 (aarch64_sqdmlal2_laneq<mode>): Emit
2959 aarch64_sqdmlal2_laneq<mode>_internal insn.
2960 Replace VCON with VCONQ.
2961 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
2962 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2963 (aarch64_sqdmull_laneq<mode>): Emit
2964 aarch64_sqdmull_laneq<mode>_internal insn.
2965 Replace VCON with VCONQ.
2966 (aarch64_sqdmull2_laneq<mode>): Emit
2967 aarch64_sqdmull2_laneq<mode>_internal insn.
2968 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
2969 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
2970 of 3rd argument to int16x4_t.
2971 (vqdmlalh_lane_s16): Likewise.
2972 (vqdmlslh_lane_s16): Likewise.
2973 (vqdmull_high_lane_s16): Likewise.
2974 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
2975 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
2976 (vqdmlsl_lane_s16): Likewise.
2977 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
2978 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
2979 (vqdmlals_lane_s32): Likewise.
2980 (vqdmlsls_lane_s32): Likewise.
2981 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
2982 (vqdmulls_lane_s32): Likewise.
2983 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
2984 (vqdmlsl_lane_s32): Likewise.
2985 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
2986 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
2987 (vqrdmulhh_lane_s16): Likewise.
2988 (vqdmlsl_high_lane_s16): Likewise.
2989 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
2990 (vqdmlsl_high_lane_s32): Likewise.
2991 (vqrdmulhs_lane_s32): Likewise.
2993 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2995 Backport from Mainline
2996 2014-06-20 Jakub Jelinek <jakub@redhat.com>
2997 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
2999 PR tree-optimization/61306
3000 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
3001 expression instead of its size.
3002 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
3003 false to prevent optimization when the result is unpredictable due to
3004 arithmetic right shift of signed type with highest byte is set.
3005 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
3006 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
3007 result is unpredictable due to sign extension.
3008 (find_bswap): Adapt to change in struct symbolic_number.
3010 2014-06-27 Martin Jambor <mjambor@suse.cz>
3013 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
3014 args_to_skip, use those from node instead. Copy args_to_skip and
3015 combined_args_to_skip from node to the new thunk.
3016 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
3017 (cgraph_create_virtual_clone): Moved computation of
3018 combined_args_to_skip...
3019 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
3021 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
3023 Backport from mainline
3024 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
3027 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
3029 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3032 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
3033 extraction other than index 3.
3035 2014-06-26 Marc Glisse <marc.glisse@inria.fr>
3038 * config/i386/i386.md (x86_64_shrd, x86_shrd,
3039 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
3041 2014-06-26 Martin Jambor <mjambor@suse.cz>
3043 Backport from mainline
3044 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
3045 renamed to ipa_impossible_devirt_target. Fix typo.
3046 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
3047 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
3048 ipa_impossible_devirt_target.
3050 2014-06-24 Jakub Jelinek <jakub@redhat.com>
3053 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
3054 model family 6 CPU with has_longmode never use a CPU without
3057 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
3058 not mentioned in clauses use private clause if the iterator is
3059 declared in #pragma omp for simd, and when adding lastprivate
3060 instead, add it to the outer #pragma omp for too. Diagnose
3061 if the variable is private in outer context. For simd collapse > 1
3062 loops, replace all iterators with temporaries.
3063 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
3064 same even in collapse > 1 loops.
3066 2014-06-23 Alan Modra <amodra@gmail.com>
3069 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
3070 to zero on debug statements.
3072 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3074 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
3076 (aarch64_sqrdmulh_lane<mode>): Likewise.
3077 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3078 (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
3079 (aarch64_sqdmulh_laneq<mode>): New expander.
3080 (aarch64_sqrdmulh_laneq<mode>): Likewise.
3081 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
3082 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
3083 (aarch64_sqdmulh_lane<mode>): New expander.
3084 (aarch64_sqrdmulh_lane<mode>): Likewise.
3085 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3086 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3087 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
3088 (aarch64_sqdmlal_laneq<mode>): Likewise.
3089 (aarch64_sqdmlsl_lane<mode>): Likewise.
3090 (aarch64_sqdmlsl_laneq<mode>): Likewise.
3091 (aarch64_sqdmlal2_lane<mode>): Likewise.
3092 (aarch64_sqdmlal2_laneq<mode>): Likewise.
3093 (aarch64_sqdmlsl2_lane<mode>): Likewise.
3094 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3095 (aarch64_sqdmull_lane<mode>): Likewise.
3096 (aarch64_sqdmull_laneq<mode>): Likewise.
3097 (aarch64_sqdmull2_lane<mode>): Likewise.
3098 (aarch64_sqdmull2_laneq<mode>): Likewise.
3100 2014-06-20 Martin Jambor <mjambor@suse.cz>
3103 * ipa-prop.c (impossible_devirt_target): New function.
3104 (try_make_edge_direct_virtual_call): Use it, also instead of
3107 2014-06-20 Martin Jambor <mjambor@suse.cz>
3110 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
3113 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
3115 Backport from mainline
3117 2014-06-20 Julian Brown <julian@codesourcery.com>
3118 Chung-Lin Tang <cltang@codesourcery.com>
3120 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
3121 TARGET_THUMB1_ONLY. Add comments.
3123 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
3125 Backport from mainline
3126 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
3128 * config/i386/i386.c (decide_alg): Correctly handle
3129 maximum size of stringop algorithm.
3131 2014-06-18 Richard Henderson <rth@redhat.com>
3134 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
3136 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
3139 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
3140 variable 'size'; calculate 'size' right in the front; use
3141 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
3142 pcum->aapcs_stack_words.
3144 2014-06-17 Nick Clifton <nickc@redhat.com>
3146 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
3147 (umulhi3, mulsidi3, umulsidi3): Likewise.
3149 2014-06-17 Uros Bizjak <ubizjak@gmail.com>
3151 Backport from mainline
3152 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
3155 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
3156 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
3157 and corresponding splitters. Zero extend general register
3158 or memory input operand to XMM temporary. Enable for
3159 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
3160 (floatunssi<mode>2): Update expander predicate.
3162 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
3164 PR rtl-optimization/61325
3165 * lra-constraints.c (valid_address_p): Add forward declaration.
3166 (simplify_operand_subreg): Check address validity before and after
3167 alter_reg of memory subreg.
3169 2014-06-18 Jakub Jelinek <jakub@redhat.com>
3172 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
3174 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
3176 Backport from mainline
3178 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
3180 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
3181 (BU_MISC_2): Rename to ...
3182 (BU_LDBL128_2): ... this.
3183 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
3184 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
3185 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3187 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
3188 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
3189 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
3190 (unpacktf_1): Likewise.
3191 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
3192 (__builtin_longdouble_dw1): Likewise.
3193 * doc/sourcebuild.texi (longdouble128): Document.
3195 2014-06-13 Jeff Law <law@redhat.com>
3197 Backports from mainline:
3198 2014-06-13 Jeff Law <law@redhat.com>
3200 PR rtl-optimization/61094
3201 PR rtl-optimization/61446
3202 * ree.c (combine_reaching_defs): Get the mode for the copy from
3203 the extension insn rather than the defining insn.
3205 2014-06-02 Jeff Law <law@redhat.com>
3207 PR rtl-optimization/61094
3208 * ree.c (combine_reaching_defs): Do not reextend an insn if it
3209 was marked as do_no_reextend. If a copy is needed to eliminate
3210 an extension, then mark it as do_not_reextend.
3212 2014-06-13 Martin Jambor <mjambor@suse.cz>
3215 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
3216 cache_token if returning early.
3218 2014-06-12 Jakub Jelinek <jakub@redhat.com>
3221 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
3222 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
3223 if outer combined construct is distribute.
3224 (gimplify_omp_for): For OMP_DISTRIBUTE set
3225 gimplify_omp_ctxp->distribute.
3226 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3227 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3228 mapping into decl map.
3230 2014-06-12 Jeff Law <law@redhat.com>
3232 Backports from mainline:
3234 2014-06-12 Jeff Law <law@redhat.com>
3236 PR tree-optimization/61009
3237 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3238 value when we stop processing a block due to problematic PHIs.
3240 2014-06-05 Jeff Law <law@redhat.com>
3242 PR tree-optimization/61289
3243 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
3244 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
3245 looking for those which match LHS. All callers changed.
3246 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
3247 parameters and code which manipulated them. All callers changed.
3248 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
3249 and DST_MAP parameters. Simplify invalidation code by just calling
3250 invalidate_equivalences. All callers changed.
3251 (thread_across_edge): Simplify now that we don't need to maintain
3252 the map of equivalences to invalidate.
3254 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
3256 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3258 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3260 Backport from 2014-05-14 trunk r210418
3261 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
3262 shifted values to avoid build warning.
3264 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3266 Backport from 2014-05-09 trunk r210272
3268 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
3269 unsigned int initializers for regno_in, regno_out.
3271 Backport from 2014-06-12 trunk r211491
3274 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3275 loading from address spaces.
3277 2014-06-12 Alan Modra <amodra@gmail.com>
3280 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
3281 * doc/tm.texi: Regenerate.
3282 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
3283 Use throughout in place of REG_PARM_STACK_SPACE.
3284 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
3285 "incoming" param. Pass to rs6000_function_parms_need_stack.
3286 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
3287 prototype_p when incoming. Use function decl when incoming
3288 to handle K&R style functions.
3289 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
3290 (INCOMING_REG_PARM_STACK_SPACE): Define.
3292 2014-06-11 Richard Biener <rguenther@suse.de>
3294 PR tree-optimization/61452
3295 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
3296 expr and has_constants in case we found a leader.
3297 (simplify_binary_expression): Always valueize operands first.
3298 (simplify_unary_expression): Likewise.
3300 2014-06-11 Richard Biener <rguenther@suse.de>
3303 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3304 Do not use the main variant for the type comparison.
3306 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3308 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3310 Simplify description of __crc32d and __crc32cd intrinsics.
3311 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3314 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
3316 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3317 call statement, if any.
3318 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3319 statements, if any. Tidy up.
3321 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3323 Back port from trunk
3324 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3327 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3328 iterators, VSX_D that handles 64-bit types, and VSX_LE that
3329 handles swapping the two 64-bit double words on little endian
3330 systems. Include V1TImode and optionally TImode in VSX_LE so that
3331 these types are properly swapped. Change all of the insns and
3332 splits that do the 64-bit swaps to use VSX_LE.
3333 (vsx_le_perm_load_<mode>): Likewise.
3334 (vsx_le_perm_store_<mode>): Likewise.
3335 (splitters for little endian memory operations): Likewise.
3336 (vsx_xxpermdi2_le_<mode>): Likewise.
3337 (vsx_lxvd2x2_le_<mode>): Likewise.
3338 (vsx_stxvd2x2_le_<mode>): Likewise.
3340 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
3342 PR rtl-optimization/61325
3343 * lra-constraints.c (process_address_1): Check scale equal to one
3344 to prevent transformation: base + scale * index => base + new_reg.
3346 2014-06-05 Martin Jambor <mjambor@suse.cz>
3349 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
3352 2014-06-04 Richard Biener <rguenther@suse.de>
3354 PR tree-optimization/61383
3355 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
3358 2014-06-02 Jason Merrill <jason@redhat.com>
3361 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
3363 2014-06-03 Martin Jambor <mjambor@suse.cz>
3366 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
3369 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3371 Backport from mainline
3372 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3374 PR rtl-optimization/60866
3375 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
3376 Default it to -1. Pass it down to init_simplejump_data.
3377 (init_simplejump_data): New parameter old_seqno. Pass it down
3378 to get_seqno_for_a_jump.
3379 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
3380 initializing new jump seqno as a last resort. Add comment.
3381 (sel_redirect_edge_and_branch): Save old seqno of the conditional
3382 jump and pass it down to sel_init_new_insn.
3383 (sel_redirect_edge_and_branch_force): Likewise.
3385 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3387 Backport from mainline
3388 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3390 PR rtl-optimization/60901
3391 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
3392 bb predecessor belongs to the same scheduling region. Adjust comment.
3394 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
3396 Backport from mainline
3397 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
3400 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
3401 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
3403 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
3405 PR rtl-optimization/61325
3406 * lra-constraints.c (process_address): Rename to
3408 (process_address): New function.
3410 2014-05-29 Uros Bizjak <ubizjak@gmail.com>
3412 Backport from mainline
3413 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
3416 * config/i386/i386.c (ix86_rtx_costs)
3417 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
3420 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
3422 Backport from mainline
3423 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
3425 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
3426 predicate to detect a negative quotient.
3428 2014-05-28 Richard Biener <rguenther@suse.de>
3430 Backport from mainline
3431 2014-05-28 Richard Biener <rguenther@suse.de>
3434 * fold-const.c (fold_comparison): When folding
3435 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
3436 the sign of the remaining constant operand stays the same.
3438 2014-05-05 Richard Biener <rguenther@suse.de>
3441 * fold-const.c (fold_binary_loc): Consistently avoid
3442 canonicalizing X & CST away from a CST that is the mask
3445 2014-04-28 Richard Biener <rguenther@suse.de>
3447 PR tree-optimization/60979
3448 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
3449 SCOPs that end in a block with a successor with abnormal
3452 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3454 * configure.ac ($gcc_cv_ld_clearcap): New test.
3455 * configure: Regenerate.
3456 * config.in: Regenerate.
3457 * config/sol2.opt (mclear-hwcap): New option.
3458 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
3459 * config/sol2-clearcap.map: Moved here from
3460 testsuite/gcc.target/i386/clearcap.map.
3461 * config/sol2-clearcapv2.map: Move here from
3462 gcc.target/i386/clearcapv2.map.
3463 * config/t-sol2 (install): Depend on install-clearcap-map.
3464 (install-clearcap-map): New target.
3465 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
3468 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3471 * config/dbx.h (License): Add Runtime Library Exception.
3472 * config/newlib-stdint.h (License): Same.
3473 * config/rtems.h (License): Same
3474 * config/initfini-array.h (License): Same
3475 * config/v850/v850.h (License): Same.
3476 * config/v850/v850-opts.h (License): Same
3477 * config/v850/rtems.h (License): Same.
3479 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3482 * doc/extend.texi (Local Labels): Note that label differences are
3483 not supported for AVR.
3485 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
3487 Backport from 2014-05-12 mainline r210322.
3488 Backport from 2014-05-27 mainline r210959, r210969.
3491 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
3492 * config/arm/arm-cores.def (License): Same.
3493 * config/arm/arm-opts.h (License): Same.
3494 * config/arm/aout.h (License): Same.
3495 * config/arm/bpabi.h (License): Same.
3496 * config/arm/elf.h (License): Same.
3497 * config/arm/linux-elf.h (License): Same.
3498 * config/arm/linux-gas.h (License): Same.
3499 * config/arm/netbsd-elf.h (License): Same.
3500 * config/arm/uclinux-eabi.h (License): Same.
3501 * config/arm/uclinux-elf.h (License): Same.
3502 * config/arm/vxworks.h (License): Same.
3504 2014-05-26 Michael Tautschnig <mt@debian.org>
3507 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3508 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
3510 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3512 PR rtl-optimization/61215
3513 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3514 simplify_gen_subreg until final substitution.
3516 2014-05-23 Alan Modra <amodra@gmail.com>
3519 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3520 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3521 Use "Y" constraint rather than "m".
3523 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3525 PR rtl-optimization/60969
3526 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3527 constraints. Set up mem cost for NO_REGS case.
3529 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
3531 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3533 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
3536 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3538 2014-05-22 Nick Clifton <nickc@redhat.com>
3540 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3542 2014-05-22 Jakub Jelinek <jakub@redhat.com>
3544 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3545 all padding bits in REAL_VALUE_TYPE are cleared.
3547 2014-05-21 Guozhi Wei <carrot@google.com>
3550 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3552 (vqdmulhq_n_s16): Likewise.
3554 2014-05-21 Martin Jambor <mjambor@suse.cz>
3556 * doc/invoke.texi (Optimize Options): Document parameters
3557 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3558 ipa-cp-array-index-hint-bonus.
3560 2014-05-21 Jakub Jelinek <jakub@redhat.com>
3563 * omp-low.c (handle_simd_reference): New function.
3564 (lower_rec_input_clauses): Use it. Defer adding reference
3565 initialization even for reduction without placeholder if in simd,
3566 handle it properly later on.
3568 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3571 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
3573 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
3574 (ipa_inline): Loop inline_to_all_callers until no more aliases
3577 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3580 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
3582 2014-05-20 DJ Delorie <dj@redhat.com>
3584 * config/msp430/msp430.md (split): Don't allow subregs when
3585 splitting SImode adds.
3586 (andneghi): Fix subtraction logic.
3587 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
3589 2014-05-20 Nick Clifton <nickc@redhat.com>
3591 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3592 (msp430_gimplify_va_arg_expr): New function.
3593 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
3595 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
3596 operand 0 in order to prevent confusion about the number of
3599 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3601 * config/arm/arm.md (arith_shiftsi): Do not predicate for
3604 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
3606 * arm.c (thumb1_reorg): When scanning backwards skip anything
3607 that's not a proper insn.
3609 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3611 * ipa.c (symtab_remove_unreachable_nodes): Remove
3612 symbol from comdat group if its body was eliminated.
3613 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
3614 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
3615 (symtab_unregister_node): ... this one.
3616 (verify_symtab_base): More strict checking of comdats.
3617 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
3619 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3621 * opts.c (common_handle_option): Disable -fipa-reference coorectly
3624 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3627 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
3628 external aliases alive, too.
3630 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
3632 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
3634 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
3636 Backport from mainline
3637 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
3640 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
3643 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
3645 PR rtl-optimization/60969
3646 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
3647 Calculate costs for this case.
3649 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
3652 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
3653 (__TM_simple_begin): Use it.
3654 (__TM_begin): Likewise.
3656 2014-05-15 Martin Jambor <mjambor@suse.cz>
3659 * ipa-prop.c (update_indirect_edges_after_inlining): Check
3660 type_preserved flag when the indirect edge is polymorphic.
3662 2014-05-15 Martin Jambor <mjambor@suse.cz>
3665 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
3667 2014-05-15 Jakub Jelinek <jakub@redhat.com>
3669 PR tree-optimization/61158
3670 * fold-const.c (fold_binary_loc): If X is zero-extended and
3671 shiftc >= prec, make sure zerobits is all ones instead of
3672 invoking undefined behavior.
3674 2014-05-14 Cary Coutant <ccoutant@google.com>
3677 * opts.c (common_handle_option): Don't special-case "-g".
3678 (set_debug_level): Default to at least level 2 with "-g".
3680 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
3682 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
3684 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
3685 * config/sparc/sparc.md (fptype_ut699): New attribute.
3686 (in_branch_delay): Return false if -mfix-ut699 is specified and
3687 fptype_ut699 is set to single.
3688 (truncdfsf2): Add fptype_ut699 attribute.
3689 (fix_truncdfsi2): Likewise.
3690 (floatsisf2): Change fptype attribute.
3691 (fix_truncsfsi2): Likewise.
3692 (negtf2_notv9): Delete.
3693 (negtf2_v9): Likewise.
3694 (negtf2_hq): New instruction.
3695 (negtf2): New instruction and splitter.
3696 (negdf2_notv9): Rewrite.
3697 (abstf2_notv9): Delete.
3698 (abstf2_hq_v9): Likewise.
3699 (abstf2_v9): Likewise.
3700 (abstf2_hq): New instruction.
3701 (abstf2): New instruction and splitter.
3702 (absdf2_notv9): Rewrite.
3704 2014-05-14 Matthias Klose <doko@ubuntu.com>
3707 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
3708 Matthias Klose <doko@ubuntu.com>
3711 * optc-gen.awk: Fix option handling for -Wunused-parameter.
3713 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
3715 * doc/sourcebuild.texi: (dfp_hw): Document.
3716 (p8vector_hw): Likewise.
3717 (powerpc_eabi_ok): Likewise.
3718 (powerpc_elfv2): Likewise.
3719 (powerpc_htm_ok): Likewise.
3720 (ppc_recip_hw): Likewise.
3723 2014-05-13 Jeff Law <law@redhat.com>
3725 Backports fromm mainline:
3727 2014-05-08 Jeff Law <law@redhat.com>
3729 PR tree-optimization/61009
3730 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
3731 tri-state rather than a boolean. When a block is too big to
3732 thread through, inform caller via negative return value.
3733 (thread_across_edge): If a block was too big for normal threading,
3734 then it's too big for a joiner too, so remove temporary equivalences
3735 and return immediately.
3737 2014-04-28 Jeff Law <law@redhat.com>
3739 PR tree-optimization/60902
3740 * tree-ssa-threadedge.c
3741 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
3742 over real defs when invalidating outputs from statements that do not
3743 produce useful outputs for threading.
3745 2014-04-23 Jeff Law <law@redhat.com>
3747 PR tree-optimization/60902
3748 * tree-ssa-threadedge.c
3749 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
3750 invalidate outputs from statements that do not produce useful
3751 outputs for threading.
3753 2014-05-13 Richard Biener <rguenther@suse.de>
3756 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
3757 it needs revisiting whether the call still may be tail-called.
3759 2014-05-13 Jakub Jelinek <jakub@redhat.com>
3762 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
3763 is const0_rtx, return immediately. Don't test count == 0 when
3766 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3768 Backport from mainline
3769 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3772 * config/avr/avr.c (avr_out_store_psi): Use correct constant
3775 2014-05-09 Uros Bizjak <ubizjak@gmail.com>
3777 Backport from mainline
3778 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
3781 * config/alpha/alpha.c: Include gimple-iterator.h.
3782 (alpha_gimple_fold_builtin): New function. Move
3783 ALPHA_BUILTIN_UMULH folding from ...
3784 (alpha_fold_builtin): ... here.
3785 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
3787 2014-05-09 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
3789 Backport from 2014-04-16 trunk r209446
3790 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
3792 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
3794 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
3796 Backport from 2014-05-09 trunk r210267
3799 * config/avr/avr.md (cc): Add new attribute set_vzn.
3800 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
3801 Set cc insn attribute to set_vzn instead of set_zn for alternatives
3802 with INC, DEC or NEG.
3803 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
3804 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
3805 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
3807 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
3808 Matthias Klose <doko@ubuntu.com>
3811 * optc-gen.awk: Fix option handling for -Wunused-parameter.
3813 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
3816 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
3818 2014-05-05 Marek Polacek <polacek@redhat.com>
3820 Back port from mainline
3821 2014-05-05 Marek Polacek <polacek@redhat.com>
3824 * opts.c (common_handle_option): Call error_at instead of warning_at.
3826 2014-05-04 Jan Hubicka <hubicka@ucw.cz>
3829 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
3831 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
3833 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
3834 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
3835 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
3836 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
3837 Use RS6000_BTM_HARD_FLOAT.
3838 (BU_MISC_2): Likewise.
3839 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3840 RS6000_BTM_HARD_FLOAT.
3841 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
3843 (rs6000_invalid_builtin): Add hard floating builtin support.
3844 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
3845 hard float builtins.
3846 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
3848 2014-05-03 Joey Ye <joey.ye@arm.com>
3850 Backport from mainline r209463
3851 2014-04-17 Joey Ye <joey.ye@arm.com>
3853 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
3855 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3857 Back port from mainline
3859 * config/sh/sh.c: Include stdlib headers before everything else.
3861 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3863 PR tree-optimization/60930
3864 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
3865 creating a multiply candidate by folding two constant
3866 multiplicands when the result overflows.
3868 2014-05-02 Jakub Jelinek <jakub@redhat.com>
3870 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
3871 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
3872 (gimplify_adjust_omp_clauses): Simd region is never
3873 directly nested in combined parallel. Instead, for linear
3874 with copyin/copyout, if in combined for simd loop, make decl
3875 firstprivate/lastprivate on OMP_FOR.
3876 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
3877 expand_omp_for_static_chunk): When setting endvar, also set
3878 fd->loop.v to the same value.
3880 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3882 Back port from mainline
3883 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3885 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
3886 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
3887 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
3888 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
3889 (TARGET_CRYPTO): Take TARGET_SIMD into account.
3891 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
3893 Back port from mainline
3894 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
3896 * doc/extend.texi (PowerPC Built-in Functions): Document new
3897 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
3899 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
3901 * config/rs6000/predicates.md (const_0_to_3_operand): New
3902 predicate to match 0..3 integer constants.
3904 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
3905 to support adding miscellaneous builtin functions.
3906 (BU_DFP_MISC_2): Likewise.
3907 (BU_P7_MISC_1): Likewise.
3908 (BU_P7_MISC_2): Likewise.
3909 (BU_P8V_MISC_3): Likewise.
3910 (BU_MISC_1): Likewise.
3911 (BU_MISC_2): Likewise.
3912 (DIVWE): Add extended divide builtin functions.
3915 (DIVWEUO): Likewise.
3919 (DIVDEUO): Likewise.
3920 (DXEX): Add decimal floating-point builtin functions.
3923 (DDEDPDQ): Likewise.
3925 (DENBCDQ): Likewise.
3932 (CDTBCD): Add new BCD builtin functions.
3936 (BCDADD_LT): Likewise.
3937 (BCDADD_EQ): Likewise.
3938 (BCDADD_GT): Likewise.
3939 (BCDADD_OV): Likewise.
3941 (BCDSUB_LT): Likewise.
3942 (BCDSUB_EQ): Likewise.
3943 (BCDSUB_GT): Likewise.
3944 (BCDSUB_OV): Likewise.
3945 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
3946 (UNPACK_TD): Likewise.
3947 (PACK_TF): Likewise.
3948 (UNPACK_TF): Likewise.
3949 (UNPACK_TF_0): Likewise.
3950 (UNPACK_TF_1): Likewise.
3951 (PACK_V1TI): Likewise.
3952 (UNPACK_V1TI): Likewise.
3954 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
3955 support for decimal floating point builtin functions.
3956 (rs6000_expand_ternop_builtin): Add checks for the new builtin
3957 functions that take constant arguments.
3958 (rs6000_invalid_builtin): Add decimal floating point builtin
3960 (rs6000_init_builtins): Setup long double, _Decimal64, and
3961 _Decimal128 types for new builtin functions.
3962 (builtin_function_type): Set the unsigned flags appropriately for
3963 the new builtin functions.
3964 (rs6000_opt_masks): Add support for decimal floating point builtin
3967 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
3968 floating point builtin functions.
3969 (RS6000_BTM_COMMON): Likewise.
3970 (RS6000_BTI_long_double): Likewise.
3971 (RS6000_BTI_dfloat64): Likewise.
3972 (RS6000_BTI_dfloat128): Likewise.
3973 (long_double_type_internal_node): Likewise.
3974 (dfloat64_type_internal_node): Likewise.
3975 (dfloat128_type_internal_node): Likewise.
3977 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
3978 2.07 bcd arithmetic instructions.
3979 (UNSPEC_BCDSUB): Likewise.
3980 (UNSPEC_BCD_OVERFLOW): Likewise.
3981 (UNSPEC_BCD_ADD_SUB): Likewise.
3982 (bcd_add_sub): Likewise.
3983 (BCD_TEST): Likewise.
3984 (bcd<bcd_add_sub>): Likewise.
3985 (bcd<bcd_add_sub>_test): Likewise.
3986 (bcd<bcd_add_sub>_test2): Likewise.
3987 (bcd<bcd_add_sub>_<code>): Likewise.
3988 (peephole2 for combined bcd ops): Likewise.
3990 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
3991 decimal floating point builtin functions.
3992 (UNSPEC_DENBCD): Likewise.
3993 (UNSPEC_DXEX): Likewise.
3994 (UNSPEC_DIEX): Likewise.
3995 (UNSPEC_DSCLI): Likewise.
3996 (UNSPEC_DSCRI): Likewise.
3997 (D64_D128): Likewise.
3998 (dfp_suffix): Likewise.
3999 (dfp_ddedpd_<mode>): Likewise.
4000 (dfp_denbcd_<mode>): Likewise.
4001 (dfp_dxex_<mode>): Likewise.
4002 (dfp_diex_<mode>): Likewise.
4003 (dfp_dscli_<mode>): Likewise.
4004 (dfp_dscri_<mode>): Likewise.
4006 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
4008 (UNSPEC_CDTBCD): Likewise.
4009 (UNSPEC_CBCDTD): Likewise.
4010 (UNSPEC_DIVE): Add support for new extended divide builtin
4012 (UNSPEC_DIVEO): Likewise.
4013 (UNSPEC_DIVEU): Likewise.
4014 (UNSPEC_DIVEUO): Likewise.
4015 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
4016 pack/unpack 128-bit types.
4017 (UNSPEC_PACK_128BIT): Likewise.
4018 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
4019 (udiv<mode>3): Use idiv_ldiv mode attribute.
4020 (div<mode>3): Likewise.
4021 (addg6s): Add new BCD builtin functions.
4024 (UNSPEC_DIV_EXTEND): Add support for new extended divide
4026 (div_extend): Likewise.
4027 (div<div_extend>_<mode>"): Likewise.
4028 (FP128_64): Add support for new builtin functions to pack/unpack
4030 (unpack<mode>): Likewise.
4031 (unpacktf_0): Likewise.
4032 (unpacktf_1): Likewise.
4033 (unpack<mode>_dm): Likewise.
4034 (unpack<mode>_nodm): Likewise.
4035 (pack<mode>): Likewise.
4036 (unpackv1ti): Likewise.
4037 (packv1ti): Likewise.
4039 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
4041 Backport from mainline
4042 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
4044 * config/rs6000/rs6000.md (addti3, subti3): New.
4046 2014-04-29 Jakub Jelinek <jakub@redhat.com>
4048 PR tree-optimization/60971
4049 * tree-tailcall.c (process_assignment): Reject conversions which
4052 2014-04-29 Nick Clifton <nickc@redhat.com>
4054 * config/msp430/msp430.md (umulsidi): Fix typo.
4055 (mulhisi3): Enable even inside interrupt handlers.
4056 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
4057 bigger return address pushed in large mode.
4059 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
4061 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4062 (loadsync_<mode>): Change mode.
4063 (load_quadpti, store_quadpti): New.
4064 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4065 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4067 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
4069 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
4070 * configure: Regenerate.
4071 * config/sparc/sparc.opt (muser-mode): New option.
4072 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
4074 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
4075 * doc/invoke.texi (SPARC options): Document -muser-mode.
4077 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
4079 * doc/install.texi (Building with profile feedback): Remove
4082 2014-04-26 Tom de Vries <tom@codesourcery.com>
4084 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
4087 2014-04-25 Jakub Jelinek <jakub@redhat.com>
4089 PR tree-optimization/60960
4090 * tree-vect-generic.c (expand_vector_operation): Only call
4091 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
4093 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
4096 * config/sparc/sparc.md (ashlsi3_extend): Delete.
4098 2014-04-25 Richard Biener <rguenther@suse.de>
4101 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
4102 call stmt use/clobber sets during stmt walk instead of
4103 walking the possibly incomplete set of caller edges.
4105 2014-04-25 Richard Biener <rguenther@suse.de>
4108 * passes.c (apply_ipa_transforms): Inline into only caller ...
4109 (execute_one_pass): ... here. Properly bring in function
4110 bodies for nodes we want to apply IPA transforms to.
4112 2014-04-24 Jakub Jelinek <jakub@redhat.com>
4114 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
4115 * gimplify.c (omp_is_private): Change last argument's type to int.
4116 Only diagnose lastprivate if the simd argument is 1, only diagnose
4117 linear if the simd argument is 2.
4118 (gimplify_omp_for): Adjust omp_is_private callers. When adding
4119 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
4120 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
4121 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
4122 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
4123 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4124 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
4125 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4126 * tree-nested.c (convert_nonlocal_omp_clauses,
4127 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
4129 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
4131 Backport from mainline
4132 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
4135 * config/i386/i386.c (ix86_expand_builtin)
4136 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
4137 register for target RTX.
4138 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
4140 2014-04-23 Richard Biener <rguenther@suse.de>
4142 PR tree-optimization/60903
4143 * tree-ssa-loop-im.c (analyze_memory_references): Remove
4144 commented code block.
4145 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
4146 loop flags to newly created BBs and edges.
4148 2014-04-23 Nick Clifton <nickc@redhat.com>
4150 * config/msp430/msp430.c (msp430_handle_option): Move function
4152 (msp430_option_override): Simplify mcu and mcpu option handling.
4153 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
4154 support for -mhwmult command line option.
4155 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
4156 -mhwmult command line option.
4157 (msp430_hwmult_enabled): Delete.
4158 (msp43o_output_labelref): Add support for -mhwmult command line
4160 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
4161 (umulsidi3): Likewise.
4162 * config/msp430/msp430.opt (mmcu): Add Report attribute.
4163 (mcpu, mlarge, msmall): Likewise.
4164 (mhwmult): New option.
4165 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
4167 (msp430_is_f5_mcu): Remove prototype.
4168 (msp430_use_f5_series_hwmult): Add prototype.
4169 * config/msp430/msp430-opts.h: New file.
4170 * common/config/msp430: New directory.
4171 * common/config/msp430/msp430-common.c: New file.
4172 * config.gcc (msp430): Remove target_has_targetm_common.
4173 * doc/invoke.texi: Document -mhwmult command line option.
4175 2014-04-23 Nick Clifton <nickc@redhat.com>
4177 * config/i386/cygwin.h (ENDFILE_SPEC): Include
4178 default-manifest.o if it can be found in the search path.
4179 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
4181 2014-04-23 Richard Biener <rguenther@suse.de>
4183 Backport from mainline
4184 2014-04-14 Richard Biener <rguenther@suse.de>
4187 * lto-streamer-out.c (wrap_refs): New function.
4188 (lto_output): Wrap symbol references in global initializes in
4189 type-preserving MEM_REFs.
4191 2014-04-23 Richard Biener <rguenther@suse.de>
4194 * tree-inline.c (declare_return_variable): Use mark_addressable.
4196 2014-04-23 Richard Biener <rguenther@suse.de>
4199 * loop-init.c (loop_optimizer_init): Make sure to apply
4200 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
4202 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4204 Backport from mainline
4205 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4208 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
4209 If mode is DDmode and TARGET_E500_DOUBLE allow move.
4211 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
4212 more debug information for E500 if -mdebug=reg.
4214 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
4216 Backport from mainline
4217 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
4220 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
4221 on count_exp to get mode.
4223 2014-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4225 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
4227 (vsx_xxmrglw_<mode>): Likewise.
4229 2014-04-22 Richard Biener <rguenther@suse.de>
4231 Backport from mainline
4232 2014-04-14 Richard Biener <rguenther@suse.de>
4235 * fold-const.c (negate_expr_p): Don't negate directional rounding
4237 (fold_negate_expr): Likewise.
4239 2014-04-22 Richard Biener <rguenther@suse.de>
4241 Backport from mainline
4242 2014-04-17 Richard Biener <rguenther@suse.de>
4245 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
4246 boolean results for comparisons.
4248 2014-04-22 Richard Biener <rguenther@suse.de>
4250 Backport from mainline
4251 2014-04-17 Richard Biener <rguenther@suse.de>
4253 PR tree-optimization/60841
4254 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
4255 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
4256 of stmts to SLP build.
4257 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
4258 (vect_analyze_slp): Likewise.
4259 (vect_analyze_slp_instance): Likewise.
4260 (vect_build_slp_tree): Limit overall SLP tree growth.
4261 * tree-vectorizer.h (vect_analyze_data_refs,
4262 vect_analyze_slp): Adjust prototypes.
4264 2014-04-22 Richard Biener <rguenther@suse.de>
4266 Backport from mainline
4267 2014-04-17 Richard Biener <rguenther@suse.de>
4269 PR tree-optimization/60836
4270 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
4271 initial PHI args to be gimple values.
4273 2014-04-22 Richard Biener <rguenther@suse.de>
4275 Backport from mainline
4276 2014-04-14 Richard Biener <rguenther@suse.de>
4278 PR tree-optimization/59817
4279 PR tree-optimization/60453
4280 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4281 recursion to catch all CHRECs in the scalar evolution and restrict
4282 the predicate for the remains appropriately.
4284 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4286 PR tree-optimization/60823
4287 * omp-low.c (ipa_simd_modify_function_body): Go through
4288 all SSA_NAMEs and for those refering to vector arguments
4289 which are going to be replaced adjust SSA_NAME_VAR and,
4290 if it is a default definition, change it into a non-default
4291 definition assigned at the beginning of function from new_decl.
4292 (ipa_simd_modify_stmt_ops): Rewritten.
4293 * tree-dfa.c (set_ssa_default_def): When removing default def,
4294 check for NULL loc instead of NULL *loc.
4296 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
4299 * asan.c (asan_emit_stack_protection): Force the base to align to
4300 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
4301 appropriate bits if STRICT_ALIGNMENT.
4302 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
4304 (expand_used_vars): Leave a space in the stack frame for alignment
4305 if STRICT_ALIGNMENT.
4307 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4309 Backported from mainline
4310 2014-04-16 Jakub Jelinek <jakub@redhat.com>
4312 PR tree-optimization/60844
4313 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
4314 (propagate_op_to_single_use, remove_visited_stmt_chain,
4315 linearize_expr, repropagate_negates, reassociate_bb): Use it
4316 instead of gsi_remove.
4318 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4320 * BASE-VER: Set to 4.9.1.
4321 * DEV-PHASE: Set to prerelease.
4323 2014-04-22 Release Manager
4325 * GCC 4.9.0 released.
4327 2014-04-18 Richard Henderson <rth@redhat.com>
4329 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
4330 to GET_MODE_SIZE, not a reg_class_t.
4332 2014-04-17 Jakub Jelinek <jakub@redhat.com>
4335 Forward port from 4.8 branch
4336 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
4338 * config/i386/bmiintrin.h (_blsi_u32): New.
4342 (_blsmsk_u32): Ditto.
4343 (_blsmsk_u64): Ditto.
4344 (_tzcnt_u32): Ditto.
4345 (_tzcnt_u64): Ditto.
4347 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4350 Revert the following patch
4352 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4355 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4356 software floating point or no floating point registers, do not
4357 allow any type in the FPRs. Eliminate a test for SPE SIMD types
4358 in GPRs that occurs after we tested for GPRs that would never be
4361 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4362 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4363 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
4364 specifically allow DDmode, since that does not use the SPE SIMD
4367 2014-04-15 Jakub Jelinek <jakub@redhat.com>
4370 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
4373 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
4375 * doc/invoke.texi (free): Document AArch64.
4377 2013-04-11 Jakub Jelinek <jakub@redhat.com>
4379 * DEV-PHASE: Set to prerelease.
4381 2014-04-11 Tobias Burnus <burnus@net-b.de>
4384 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4385 * doc/gcc.texi (Service): Update description in the @menu
4386 * doc/invoke.texi (Option Summary): Remove misplaced and
4389 2014-04-11 Steve Ellcey <sellcey@mips.com>
4390 Jakub Jelinek <jakub@redhat.com>
4393 * expr.c (convert_move): Use emit_store_flag_force instead of
4394 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
4397 2014-04-11 Richard Biener <rguenther@suse.de>
4400 * varasm.c (assemble_alias): Avoid endless error reporting
4401 recursion by setting TREE_ASM_WRITTEN.
4403 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4405 * config/s390/s390.md: Add a splitter for NOT rtx.
4407 2014-04-11 Jakub Jelinek <jakub@redhat.com>
4409 PR rtl-optimization/60663
4410 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4412 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
4413 Jakub Jelinek <jakub@redhat.com>
4416 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4417 flag from decl_node to node.
4419 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4422 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4423 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4424 ameliorating the cases where it can be.
4426 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
4429 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4431 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4432 (loadsync_<mode>): Change mode.
4433 (load_quadpti, store_quadpti): New.
4434 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4435 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4436 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4438 2014-04-09 Cong Hou <congh@google.com>
4441 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4444 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4446 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4447 instead of vnor to exploit possible fusion opportunity in the
4449 (altivec_expand_vec_perm_const_le): Likewise.
4451 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4453 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4454 (loadsync_<mode>): Change mode.
4455 (load_quadpti, store_quadpti): New.
4456 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4457 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4459 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
4462 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4463 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4464 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4466 2014-04-08 Richard Biener <rguenther@suse.de>
4469 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4470 a 64bit widest int print double-int similar to on HWI64 hosts.
4472 2014-04-08 Richard Biener <rguenther@suse.de>
4474 PR tree-optimization/60785
4475 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4476 default defs properly.
4478 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
4480 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4481 (Weffc++): Likewise.
4483 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
4485 * ipa-devirt.c (maybe_record_node): When node is not recorded,
4486 set completep to false rather than true.
4488 2014-04-07 Douglas B Rupp <rupp@adacore.com>
4491 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4492 ARM_TARGET2_DWARF_FORMAT.
4494 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
4497 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
4498 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
4501 2014-04-07 Richard Biener <rguenther@suse.de>
4503 PR tree-optimization/60766
4504 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
4505 (may_eliminate_iv): Convert cand_value_at result to desired type.
4507 2014-04-07 Jason Merrill <jason@redhat.com>
4510 * common.opt (-fno-gnu-unique): Add.
4511 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
4513 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4515 * haifa-sched.c: Fix outdated function reference and minor
4516 grammar errors in introductory comment.
4518 2014-04-07 Richard Biener <rguenther@suse.de>
4521 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
4523 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
4525 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
4528 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
4529 size accounting for thunks.
4530 (pa_asm_output_mi_thunk): Use final_start_function() and
4531 final_end_function() to output function start and end directives.
4533 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4535 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
4536 device specific ISA/ feature information. Remove short_sp and
4537 errata_skip ds. Add avr_device_specific_features enum to have device
4539 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
4540 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
4541 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
4542 updated device specific info.
4543 * config/avr/avr-mcus.def: Merge device specific details to
4544 dev_attribute field.
4545 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
4547 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
4548 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
4549 assembler if RMW isa supported by current device.
4550 * config/avr/genmultilib.awk: Update as device info structure changed.
4551 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
4553 2014-04-04 Cong Hou <congh@google.com>
4555 PR tree-optimization/60656
4556 * tree-vect-stmts.c (supportable_widening_operation):
4557 Fix a bug that elements in a vector with vect_used_by_reduction
4558 property are incorrectly reordered when the operation on it is not
4559 consistant with the one in reduction operation.
4561 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
4563 PR rtl-optimization/60155
4564 * gcse.c (record_set_data): New function.
4565 (single_set_gcse): New function.
4566 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
4567 (hoist_code): Likewise.
4568 (get_pressure_class_and_nregs): Likewise.
4570 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
4572 * explow.c (probe_stack_range): Emit a final optimization blockage.
4574 2014-04-04 Anthony Green <green@moxielogic.com>
4576 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
4579 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
4582 * lto-cgraph.c (input_overwrite_node): Check that partitioning
4583 flags are set only during streaming.
4584 * ipa.c (process_references, walk_polymorphic_call_targets,
4585 symtab_remove_unreachable_nodes): Drop bodies of always inline
4586 after early inlining.
4587 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
4589 2014-04-04 Jakub Jelinek <jakub@redhat.com>
4590 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4593 * dwarf2out.c (const_ok_for_output_1): Reject expressions
4596 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4599 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
4601 (cortex_a53_fdivd): Likewise.
4603 2014-04-04 Martin Jambor <mjambor@suse.cz>
4606 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
4608 * cgraph.c (clone_of_p): Also return true if thunks match.
4609 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
4610 cgraph_function_or_thunk_node and an obsolete comment.
4611 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
4613 (build_function_decl_skip_args): Likewise.
4614 (set_new_clone_decl_and_node_flags): New function.
4615 (duplicate_thunk_for_node): Likewise.
4616 (redirect_edge_duplicating_thunks): Likewise.
4617 (cgraph_clone_node): New parameter args_to_skip, pass it to
4618 redirect_edge_duplicating_thunks which is called instead of
4619 cgraph_redirect_edge_callee.
4620 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
4621 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
4623 2014-04-04 Jeff Law <law@redhat.com>
4626 * config/arm/predicates.md (const_int_I_operand): New predicate.
4627 (const_int_M_operand): Similarly.
4628 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
4630 (insv_t2, extv_reg, extzv_t2): Likewise.
4631 (load_multiple_with_writeback): Similarly for const_int_I_operand.
4632 (pop_multiple_with_writeback_and_return): Likewise.
4633 (vfp_pop_multiple_with_writeback): Likewise
4635 2014-04-04 Richard Biener <rguenther@suse.de>
4638 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
4639 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
4641 * gimplify.h (gimple_add_tmp_var_fn): Declare.
4642 * gimplify.c (gimple_add_tmp_var_fn): New function.
4643 * gimple-expr.h (create_tmp_reg_fn): Declare.
4644 * gimple-expr.c (create_tmp_reg_fn): New function.
4645 * gimple-low.c (record_vars_into): Don't change cfun.
4646 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
4647 code generation without cfun.
4649 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
4652 * Makefile.in (install-driver): Fix shell scripting.
4654 2014-04-03 Cong Hou <congh@google.com>
4656 PR tree-optimization/60505
4657 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
4658 threshold of number of iterations below which no vectorization
4660 * tree-vect-loop.c (new_loop_vec_info):
4661 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
4662 * tree-vect-loop.c (vect_analyze_loop_operations):
4663 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
4664 * tree-vect-loop.c (vect_transform_loop):
4665 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
4666 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
4667 of iterations of the loop and see if we should build the epilogue.
4669 2014-04-03 Richard Biener <rguenther@suse.de>
4671 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
4672 (streamer_tree_cache_create): Adjust.
4673 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
4674 to allow optional nodes array.
4675 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
4676 (streamer_tree_cache_append): Likewise.
4677 (streamer_tree_cache_create): Create nodes array optionally
4678 as specified by parameter.
4679 * lto-streamer-out.c (create_output_block): Avoid maintaining
4680 the node array in the writer cache.
4681 (DFS_write_tree): Remove assertion.
4682 (produce_asm_for_decls): Free the out decl state hash table early.
4683 * lto-streamer-in.c (lto_data_in_create): Adjust for
4684 streamer_tree_cache_create prototype change.
4686 2014-04-03 Richard Biener <rguenther@suse.de>
4688 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
4689 set TREE_CHAIN to NULL_TREE.
4691 2014-04-03 Richard Biener <rguenther@suse.de>
4693 PR tree-optimization/60740
4694 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
4695 over all GIMPLE_COND operands.
4697 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
4699 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
4700 (Weffc++): Remove Scott's numbering, merge lists and reference
4703 2014-04-03 Nick Clifton <nickc@redhat.com>
4705 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
4708 2014-04-03 Martin Jambor <mjambor@suse.cz>
4710 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
4711 mention gcc_unreachable before failing.
4712 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
4715 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
4718 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
4719 inconsistent code and instead mark the context inconsistent.
4720 (possible_polymorphic_call_targets): For inconsistent contexts
4721 return empty complete list.
4723 2014-04-02 Anthony Green <green@moxielogic.com>
4725 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
4726 (extendqisi2, extendhisi2): Define.
4727 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
4728 (WCHAR_TYPE): Change to unsigned int.
4730 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4732 PR tree-optimization/60733
4733 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
4734 insertion point for PHI candidates to be the end of the feeding
4735 block for the PHI argument.
4737 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
4739 PR rtl-optimization/60650
4740 * lra-constraints.c (process_alt_operands): Decrease reject for
4741 earlyclobber matching.
4743 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4745 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
4747 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4749 * config/spu/spu.c (pad_bb): Do not crash when the last
4750 insn is CODE_FOR_blockage.
4752 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4754 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
4755 lies outside the target mode.
4757 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4760 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4761 software floating point or no floating point registers, do not
4762 allow any type in the FPRs. Eliminate a test for SPE SIMD types
4763 in GPRs that occurs after we tested for GPRs that would never be
4766 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4767 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4768 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
4769 specifically allow DDmode, since that does not use the SPE SIMD
4772 2014-04-02 Richard Biener <rguenther@suse.de>
4775 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
4776 MODE_INTs. Properly use negv_optab.
4777 (expand_abs): Likewise.
4779 2014-04-02 Richard Biener <rguenther@suse.de>
4782 * Makefile.in (install-driver): Guard extra installs with special
4785 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
4787 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4790 2014-04-01 Richard Henderson <rth@redhat.com>
4793 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
4794 alternative enabled before register allocation.
4796 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
4798 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
4799 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
4801 (nios2_large_got_address): Remove unneeded 'sym' parameter.
4802 (nios2_got_address): Update nios2_large_got_address call site.
4803 (nios2_delegitimize_address): New function.
4804 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
4805 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4806 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
4808 2014-04-01 Martin Husemann <martin@duskware.de>
4810 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
4813 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
4815 PR rtl-optimization/60604
4816 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
4817 check from register_operand.
4818 (register_operand): Redefine in terms of general_operand.
4819 (nonmemory_operand): Use register_operand for the non-constant cases.
4821 2014-04-01 Richard Biener <rguenther@suse.de>
4823 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
4825 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
4827 * doc/invoke.texi (mapp-regs): Clarify.
4829 2014-03-31 Ulrich Drepper <drepper@gmail.com>
4831 * config/i386/avx512fintrin.h (__v32hi): Define type.
4832 (__v64qi): Likewise.
4833 (_mm512_set1_epi8): Define.
4834 (_mm512_set1_epi16): Define.
4835 (_mm512_set4_epi32): Define.
4836 (_mm512_set4_epi64): Define.
4837 (_mm512_set4_pd): Define.
4838 (_mm512_set4_ps): Define.
4839 (_mm512_setr4_epi64): Define.
4840 (_mm512_setr4_epi32): Define.
4841 (_mm512_setr4_pd): Define.
4842 (_mm512_setr4_ps): Define.
4843 (_mm512_setzero_epi32): Define.
4845 2014-03-31 Martin Jambor <mjambor@suse.cz>
4848 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
4849 callsite_arguments_match_p. Updated all callers. Also check types of
4850 corresponding formal parameters and actual arguments.
4851 (not_all_callers_have_enough_arguments_p) Renamed to
4852 some_callers_have_mismatched_arguments_p.
4854 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
4856 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
4858 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
4861 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
4864 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
4866 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
4867 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
4869 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
4870 Use FMAMODE_NOVF512 mode iterator.
4871 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
4872 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
4873 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
4874 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
4876 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
4877 Use VF_128_256 mode iterator.
4878 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
4881 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4883 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
4884 static chain if needed.
4886 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
4889 * lra-constraints.c (index_part_to_reg): New.
4890 (process_address): Use it.
4892 2014-03-27 Jeff Law <law@redhat.com>
4893 Jakub Jelinek <jakub@redhat.com>
4896 * expr.c (do_tablejump): Use simplify_gen_binary rather than
4897 gen_rtx_{PLUS,MULT} to build up the address expression.
4899 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
4900 creating non-canonical RTL.
4902 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4905 * ipa-inline.c (want_inline_small_function_p): Short circuit large
4906 functions; reorganize to make cheap checks first.
4907 (inline_small_functions): Do not estimate growth when dumping;
4909 * ipa-inline.h (inline_summary): Add min_size.
4910 (growth_likely_positive): New function.
4911 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
4912 (set_cond_stmt_execution_predicate): Cleanup.
4913 (estimate_edge_size_and_time): Compute min_size.
4914 (estimate_calls_size_and_time): Likewise.
4915 (estimate_node_size_and_time): Likewise.
4916 (inline_update_overall_summary): Update min_size.
4917 (do_estimate_edge_time): Likewise.
4918 (do_estimate_edge_size): Update.
4919 (do_estimate_edge_hints): Update.
4920 (growth_likely_positive): New function.
4922 2014-03-28 Jakub Jelinek <jakub@redhat.com>
4925 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
4926 also if addr has VOIDmode.
4928 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4930 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
4931 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
4933 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
4934 instructions as well as AdvancedSIMD loads.
4936 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4938 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
4939 Use crypto_aese type.
4940 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
4941 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
4942 crypto_aese, crypto_aesmc. Move to types.md.
4943 * config/arm/types.md (crypto_aes): Split into crypto_aese,
4945 * config/arm/iterators.md (crypto_type): Likewise.
4947 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4949 * cgraph.c: Include expr.h and tree-dfa.h.
4950 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
4953 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
4956 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
4957 regs from checking multi-reg pseudos.
4959 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4961 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
4963 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4965 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
4966 if it would clobber the stack pointer, even temporarily.
4968 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
4970 * mode-switching.c: Make small adjustments to the top comment.
4972 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
4974 * config/rs6000/constraints.md (wD constraint): New constraint to
4975 match the constant integer to get the top DImode/DFmode out of a
4976 vector in a VSX register.
4978 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
4979 match the constant integer to get the top DImode/DFmode out of a
4980 vector in a VSX register.
4982 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
4985 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4988 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4989 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
4991 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
4992 Optimize vec_extract of 64-bit values, where the value being
4993 extracted is in the top word, where we can use scalar
4994 instructions. Add direct move and store support. Combine the big
4995 endian/little endian vector select load support into a single insn.
4996 (vsx_extract_<mode>_internal1): Likewise.
4997 (vsx_extract_<mode>_internal2): Likewise.
4998 (vsx_extract_<mode>_load): Likewise.
4999 (vsx_extract_<mode>_store): Likewise.
5000 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
5001 combined into vsx_extract_<mode>_load.
5002 (vsx_extract_<mode>_one_le): Likewise.
5004 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
5005 define the top 64-bit vector element.
5007 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
5010 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5011 Document vec_vbpermq builtin.
5014 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
5015 enable use of xxsldwi and xxpermdi builtin functions.
5016 (vec_xxpermdi): Likewise.
5018 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5019 Document use of vec_xxsldwi and vec_xxpermdi builtins.
5021 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
5023 PR rtl-optimization/60650
5024 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
5026 (find_spills_for): New.
5027 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
5028 Spill all pseudos on the second iteration.
5030 2014-03-27 Marek Polacek <polacek@redhat.com>
5033 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
5036 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5038 * config/s390/s390.c (s390_can_use_return_insn): Check for
5039 call-saved FPRs on 31 bit.
5041 2014-03-27 Jakub Jelinek <jakub@redhat.com>
5044 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
5045 if they need regimplification, just drop them instead of
5046 calling gimple_regimplify_operands on them.
5048 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
5051 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
5052 (aarch64_frame_pointer_required): Adjust logic.
5053 (aarch64_can_eliminate): Adjust logic.
5054 (aarch64_override_options_after_change): Adjust logic.
5056 2014-03-27 Dehao Chen <dehao@google.com>
5058 * ipa-inline.c (early_inliner): Update node's inline info.
5060 2014-03-26 Dehao Chen <dehao@google.com>
5062 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
5063 compiler inserted conditional jumps for NAN float check.
5065 2014-03-26 Jakub Jelinek <jakub@redhat.com>
5067 * ubsan.h (ubsan_create_data): Change second argument's type
5068 to const location_t *.
5069 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
5071 (ubsan_create_data): Change second argument to const location_t *PLOC.
5072 Create Loc field whenever PLOC is non-NULL.
5073 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
5074 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
5078 * real.c (real_to_integer2): Change type of low to UHWI.
5080 2014-03-26 Tobias Burnus <burnus@net-b.de>
5082 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
5083 (CILK_SELF_SPECS): New define.
5084 (driver_self_specs): Use it.
5086 2014-03-26 Richard Biener <rguenther@suse.de>
5088 * tree-pretty-print.c (percent_K_format): Implement special
5089 case for LTO and its stripped down BLOCK tree.
5091 2014-03-26 Jakub Jelinek <jakub@redhat.com>
5094 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
5096 * tree-vrp.c (simplify_internal_call_using_ranges): If only
5097 one range is range_int_cst_p, but not both, at least optimize
5098 addition/subtraction of 0 and multiplication by 0 or 1.
5099 * gimple-fold.c (gimple_fold_call): Fold
5100 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
5101 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
5102 INTEGER_CSTs, try to fold at least x * 0 and y - y.
5104 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
5106 PR rtl-optimization/60452
5107 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
5108 <case REG>: Return 1 for invalid offsets from the frame pointer.
5110 2014-03-26 Marek Polacek <polacek@redhat.com>
5113 * doc/extend.texi (C Extensions): Mention variable-length arrays in
5116 2014-03-26 Marek Polacek <polacek@redhat.com>
5119 * doc/extend.texi (Designated Inits): Describe what happens to omitted
5122 2014-03-26 Marek Polacek <polacek@redhat.com>
5125 * ira-color.c (update_conflict_hard_regno_costs): Perform the
5126 multiplication in unsigned type.
5128 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
5130 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
5132 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
5134 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
5136 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
5139 * cif-code.def (UNREACHABLE) New code.
5140 * ipa-inline.c (inline_small_functions): Skip edges to
5141 __builtlin_unreachable.
5142 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
5143 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
5144 predicate to __bulitin_unreachable.
5145 (set_cond_stmt_execution_predicate): Fix issue when
5146 invert_tree_comparison returns ERROR_MARK.
5147 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
5148 propagate to inline clones.
5149 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
5151 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
5152 * cgraphclones.c (cgraph_clone_node): If call destination is already
5153 ureachable, do not redirect it back.
5154 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
5157 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
5159 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
5160 Do not modify inline clones.
5162 2014-03-25 Jakub Jelinek <jakub@redhat.com>
5164 * config/i386/i386.md (general_sext_operand): New mode attr.
5165 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
5166 don't generate (sign_extend (const_int)).
5167 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
5168 operands[2]. Use We constraint instead of <i> and
5169 <general_sext_operand> predicate instead of <general_operand>.
5170 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
5171 * config/i386/constraints.md (We): New constraint.
5172 * config/i386/predicates.md (x86_64_sext_operand,
5173 sext_operand): New predicates.
5175 2014-03-25 Martin Jambor <mjambor@suse.cz>
5178 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
5179 inconsistent devirtualizations to __builtin_unreachable.
5181 2014-03-25 Marek Polacek <polacek@redhat.com>
5184 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
5186 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
5188 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
5189 order of elements for big-endian.
5191 2014-03-25 Richard Biener <rguenther@suse.de>
5194 * gimplify-me.c (gimple_regimplify_operands): Update the
5197 2014-03-25 Martin Jambor <mjambor@suse.cz>
5200 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
5201 (lto_output_varpool_node): Likewise.
5202 (input_overwrite_node): Likewise.
5203 (input_varpool_node): Likewise.
5205 2014-03-25 Richard Biener <rguenther@suse.de>
5207 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
5208 (run_gcc): Likewise.
5210 2014-03-25 Jakub Jelinek <jakub@redhat.com>
5212 * combine.c (simplify_compare_const): Add MODE argument.
5213 Handle mode_width 0 as very large mode_width.
5214 (try_combine, simplify_comparison): Adjust callers.
5216 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
5217 type to avoid signed integer overflow.
5218 * explow.c (plus_constant): Likewise.
5220 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
5222 * doc/generic.texi: Correct typos.
5224 2014-03-24 Tobias Burnus <burnus@net-b.de>
5226 * doc/invoke.texi (-flto): Expand section about
5227 using static libraries with LTO.
5229 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5231 PR rtl-optimization/60501
5232 * optabs.def (addptr3_optab): New optab.
5233 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5234 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5235 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5237 * lra.c (emit_add3_insn): Use the addptr pattern if available.
5239 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5241 2014-03-24 Ulrich Drepper <drepper@gmail.com>
5243 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5246 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5247 (_mm256_undefined_ps): Define.
5248 (_mm256_undefined_pd): Define.
5249 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5250 (_mm_undefined_pd): Define.
5251 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5252 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5253 (_mm512_undefined_ps): Define.
5254 (_mm512_undefined_pd): Define.
5255 Use _mm*_undefined_*.
5256 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5258 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
5260 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5261 (lshr_simd): DI mode added.
5262 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5263 (aarch64_ushr_simddi): Likewise.
5264 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5265 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5266 (vshrd_n_u64): Likewise.
5268 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5270 * Makefile.in (s-macro_list): Depend on cc1.
5272 2014-03-23 Teresa Johnson <tejohnson@google.com>
5274 * ipa-utils.c (ipa_print_order): Use specified dump file.
5276 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
5278 PR rtl-optimization/60601
5279 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5281 * gcc.c (eval_spec_function): Initialize save_growing_value.
5283 2014-03-22 Jakub Jelinek <jakub@redhat.com>
5286 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5287 code == MINUS_EXPR, never swap op0 with op1.
5289 * toplev.c (init_local_tick): Avoid signed integer multiplication
5291 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5292 shift by first operand's bitsize.
5294 2014-03-21 Jakub Jelinek <jakub@redhat.com>
5297 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5299 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5300 TARGET_ISA_64BIT_P(x).
5302 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5304 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5305 pattern for vector nor instead of subtract from splat(-1).
5306 (altivec_expand_vec_perm_const_le): Likewise.
5308 2014-03-21 Richard Henderson <rth@twiddle.net>
5311 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5312 related insns after epilogue_completed.
5314 2014-03-21 Martin Jambor <mjambor@suse.cz>
5317 * cgraph.h (symtab_node): New flag body_removed.
5318 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5319 when removing bodies.
5320 * symtab.c (dump_symtab_base): Dump body_removed flag.
5321 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5322 had their bodies removed.
5324 2014-03-21 Martin Jambor <mjambor@suse.cz>
5327 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5330 2014-03-21 Richard Biener <rguenther@suse.de>
5332 PR tree-optimization/60577
5333 * tree-core.h (struct tree_base): Document nothrow_flag use
5335 * tree.h (DECL_NONALIASED): New.
5336 (may_be_aliased): Adjust.
5337 * coverage.c (build_var): Set DECL_NONALIASED.
5339 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5341 * expr.c (expand_expr_real_1): Remove outdated comment.
5343 2014-03-20 Jakub Jelinek <jakub@redhat.com>
5346 * ira.c (adjust_cleared_regs): Call copy_rtx on
5347 *reg_equiv[REGNO (loc)].src_p before passing it to
5348 simplify_replace_fn_rtx.
5351 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5352 into CONST, put pic register as first operand of PLUS. Use
5353 gen_const_mem for both 32-bit and 64-bit PIC got loads.
5355 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5357 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5359 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5361 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5362 around for store forwarding issue in the FPU on the UT699.
5363 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5364 loads and operations if -mfix-ut699 is specified.
5365 (divtf3_hq): Tweak attribute.
5366 (sqrttf2_hq): Likewise.
5368 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5370 * calls.c (store_one_arg): Remove incorrect const qualification on the
5371 type of the temporary.
5372 * cfgexpand.c (expand_return): Likewise.
5373 * expr.c (expand_constructor): Likewise.
5374 (expand_expr_real_1): Likewise.
5376 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5378 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5381 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
5384 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5386 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
5388 * config/arm/aarch-common-protos.h
5389 (alu_cost_table): Fix spelling of "extend".
5390 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5392 2014-03-19 Richard Biener <rguenther@suse.de>
5395 * tree-core.h (tree_type_common): Re-order pointer members
5396 to reduce recursion depth during GC walks.
5398 2014-03-19 Marek Polacek <polacek@redhat.com>
5401 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5402 before accessing it.
5404 2014-03-19 Richard Biener <rguenther@suse.de>
5407 * lto-streamer-in.c (input_function): In WPA stage do not drop
5410 2014-03-19 Jakub Jelinek <jakub@redhat.com>
5412 PR tree-optimization/60559
5413 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5414 with build_zero_cst assignment.
5416 2014-03-18 Kai Tietz <ktietz@redhat.com>
5418 PR rtl-optimization/56356
5419 * sdbout.c (sdbout_parms): Verify that parms'
5420 incoming argument is valid.
5421 (sdbout_reg_parms): Likewise.
5423 2014-03-18 Richard Henderson <rth@redhat.com>
5426 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5427 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
5428 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5430 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
5432 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5433 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5434 Italicize plugin event names in description. Explain that
5435 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
5436 Remind that no GCC functions should be called after PLUGIN_FINISH.
5437 Explain what pragmas with expansion are.
5439 2014-03-18 Martin Liska <mliska@suse.cz>
5441 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5442 gimple call statement is update.
5443 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5444 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5446 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5449 * ubsan.c (ubsan_instrument_unreachable): Call
5450 initialize_sanitizer_builtins.
5451 (ubsan_pass): Likewise.
5454 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5455 varpool_finalize_decl instead of rest_of_decl_compilation.
5457 2014-03-18 Richard Biener <rguenther@suse.de>
5459 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5460 by using bitmap_and_compl instead of bitmap_and_compl_into.
5461 (df_rd_transfer_function): Likewise.
5463 2014-03-18 Richard Biener <rguenther@suse.de>
5465 * doc/lto.texi (fresolution): Fix typo.
5467 2014-03-18 Richard Biener <rguenther@suse.de>
5469 * doc/invoke.texi (flto): Update for changes in 4.9.
5471 2014-03-18 Richard Biener <rguenther@suse.de>
5473 * doc/loop.texi: Remove section on the removed lambda framework.
5474 Update loop docs with recent changes in preserving loop structure.
5476 2014-03-18 Richard Biener <rguenther@suse.de>
5478 * doc/lto.texi (-fresolution): Document.
5480 2014-03-18 Richard Biener <rguenther@suse.de>
5482 * doc/contrib.texi: Adjust my name.
5484 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5487 * internal-fn.c: Include diagnostic-core.h.
5488 (expand_BUILTIN_EXPECT): New function.
5489 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5490 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5491 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5492 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5494 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5495 Revert 3 argument __builtin_expect code.
5496 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
5497 * gimple-fold.c (gimple_fold_call): Likewise.
5498 * tree.h (fold_builtin_expect): New prototype.
5499 * builtins.c (build_builtin_expect_predicate): Add predictor
5500 argument, if non-NULL, create 3 argument __builtin_expect.
5501 (fold_builtin_expect): No longer static. Add ARG2 argument,
5502 pass it through to build_builtin_expect_predicate.
5503 (fold_builtin_2): Adjust caller.
5504 (fold_builtin_3): Handle BUILT_IN_EXPECT.
5505 * internal-fn.def (BUILTIN_EXPECT): New.
5507 2014-03-18 Tobias Burnus <burnus@net-b.de>
5510 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
5511 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
5512 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
5514 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
5517 * predict.c (combine_predictions_for_bb): Fix up formatting.
5518 (expr_expected_value_1, expr_expected_value): Add predictor argument,
5519 fill what it points to if non-NULL.
5520 (tree_predict_by_opcode): Adjust caller, use the predictor.
5521 * predict.def (PRED_COMPARE_AND_SWAP): Add.
5523 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
5525 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5526 proper constant for the store mode.
5528 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
5530 * symtab.c (change_decl_assembler_name): Fix transparent alias
5533 2014-03-16 Renlin Li <Renlin.Li@arm.com>
5535 * config/aarch64/aarch64.c: Correct the comments about the
5536 aarch64 stack layout.
5538 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
5540 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
5541 check for GF_OMP_FOR_KIND_FOR.
5543 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
5545 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
5546 ymm and zmm register names.
5548 2014-03-17 Jakub Jelinek <jakub@redhat.com>
5551 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
5552 note creation for the 2010-08-31 changes.
5554 2014-03-17 Marek Polacek <polacek@redhat.com>
5557 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
5558 as -fno-tree-loop-vectorize.
5559 (expand_omp_simd): Likewise.
5561 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
5563 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5564 (eligible_for_call_delay): New prototype.
5565 * config/sparc/sparc.c (tls_call_delay): Rename into...
5566 (eligible_for_call_delay): ...this. Return false if the instruction
5567 cannot be put in the delay slot of a branch.
5568 (eligible_for_restore_insn): Simplify.
5569 (eligible_for_return_delay): Return false if the instruction cannot be
5570 put in the delay slot of a branch and simplify.
5571 (eligible_for_sibcall_delay): Return false if the instruction cannot be
5572 put in the delay slot of a branch.
5573 * config/sparc/sparc.md (fix_ut699): New attribute.
5574 (tls_call_delay): Delete.
5575 (in_call_delay): Reimplement.
5576 (eligible_for_sibcall_delay): Rename into...
5577 (in_sibcall_delay): ...this.
5578 (eligible_for_return_delay): Rename into...
5579 (in_return_delay): ...this.
5580 (in_branch_delay): Reimplement.
5581 (in_uncond_branch_delay): Delete.
5582 (in_annul_branch_delay): Delete.
5584 2014-03-14 Richard Henderson <rth@redhat.com>
5587 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
5588 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
5589 (*floathi<X87MODEF>2_i387_with_temp): Remove.
5590 (floathi splitters): Remove.
5591 (float<SWI48x>xf2): New pattern.
5592 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
5593 code that tried to handle DImode for 32-bit, but which was excluded
5594 by the pattern's condition. Drop allocation of stack temporary.
5595 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
5596 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
5597 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
5598 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
5599 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
5600 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
5601 (*float<SWI48><MODEF>2_sse_interunit): Remove.
5602 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
5603 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
5604 (*float<SWI48x><X87MODEF>2_i387): Remove.
5605 (all float _with_temp splitters): Remove.
5606 (*float<SWI48x><MODEF>2_i387): New pattern.
5607 (*float<SWI48><MODEF>2_sse): New pattern.
5608 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
5609 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
5611 2014-03-14 Jakub Jelinek <jakub@redhat.com>
5612 Marek Polacek <polacek@redhat.com>
5615 * common.opt (dump_base_name_prefixed): New Variable.
5616 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
5617 if x_dump_base_name_prefixed is already set, set it at the end.
5619 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
5621 PR rtl-optimization/60508
5622 * lra-constraints.c (get_reload_reg): Add new parameter
5624 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
5625 Pass the new parameter values.
5627 2014-03-14 Richard Biener <rguenther@suse.de>
5629 * common.opt: Revert unintented changes from r205065.
5632 2014-03-14 Richard Biener <rguenther@suse.de>
5635 * cfghooks.c (split_block): Properly adjust all loops the
5636 block was a latch of.
5638 2014-03-14 Martin Jambor <mjambor@suse.cz>
5641 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
5644 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
5647 * config/avr/avr.c (avr_set_current_function): Pass function name
5648 through default_strip_name_encoding before sanity checking instead
5649 of skipping the first char of the assembler name.
5651 2014-03-13 Richard Henderson <rth@redhat.com>
5654 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
5655 (ix86_force_to_memory, ix86_free_from_memory): Remove.
5656 * config/i386/i386-protos.h: Likewise.
5657 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
5658 in the expander instead of a splitter.
5659 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
5660 any possibility of requiring a memory.
5661 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
5662 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
5663 (fp branch splitters): Update for ix86_split_fp_branch.
5664 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
5665 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
5666 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
5667 (*fop_<MODEF>_2_i387): Remove f/r alternative.
5668 (*fop_<MODEF>_3_i387): Likewise.
5669 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
5670 (splitters for the fop_* register patterns): Remove.
5671 (fscalexf4_i387): Rename from *fscalexf4_i387.
5672 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
5674 2014-03-13 Jakub Jelinek <jakub@redhat.com>
5676 PR tree-optimization/59779
5677 * tree-dfa.c (get_ref_base_and_extent): Use double_int
5678 type for bitsize and maxsize instead of HOST_WIDE_INT.
5680 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
5682 PR rtl-optimization/57320
5683 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
5684 the CFG after thread_prologue_and_epilogue_insns.
5686 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
5688 PR rtl-optimization/57189
5689 * lra-constraints.c (process_alt_operands): Disfavor spilling
5692 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
5694 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
5696 2014-03-13 Jakub Jelinek <jakub@redhat.com>
5698 PR tree-optimization/59025
5700 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
5701 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
5703 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
5706 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
5707 calls of avr_out_plus_1.
5709 2014-03-13 Bin Cheng <bin.cheng@arm.com>
5711 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
5712 BB's single pred and update the father loop's latch info later.
5714 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5716 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
5720 (VEC_base): Likewise.
5721 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
5722 registers, we need to swap double words in little endian mode.
5724 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
5725 to be a container mode for 128-bit integer operations added in ISA
5726 2.07. Unlike TImode and PTImode, the preferred register set is
5727 the Altivec/VMX registers for the 128-bit operations.
5729 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
5731 (rs6000_split_128bit_ok_p): Likewise.
5733 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
5734 macros for creating ISA 2.07 normal and overloaded builtin
5735 functions with 3 arguments.
5736 (BU_P8V_OVERLOAD_3): Likewise.
5737 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
5738 for use as overloaded functions.
5739 (VPERM_1TI_UNS): Likewise.
5740 (VSEL_1TI): Likewise.
5741 (VSEL_1TI_UNS): Likewise.
5742 (ST_INTERNAL_1ti): Likewise.
5743 (LD_INTERNAL_1ti): Likewise.
5744 (XXSEL_1TI): Likewise.
5745 (XXSEL_1TI_UNS): Likewise.
5746 (VPERM_1TI): Likewise.
5747 (VPERM_1TI_UNS): Likewise.
5748 (XXPERMDI_1TI): Likewise.
5749 (SET_1TI): Likewise.
5750 (LXVD2X_V1TI): Likewise.
5751 (STXVD2X_V1TI): Likewise.
5752 (VEC_INIT_V1TI): Likewise.
5753 (VEC_SET_V1TI): Likewise.
5754 (VEC_EXT_V1TI): Likewise.
5755 (EQV_V1TI): Likewise.
5756 (NAND_V1TI): Likewise.
5757 (ORC_V1TI): Likewise.
5758 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
5759 added in ISA 2.07. Add both normal 'altivec' builtins, and the
5761 (VADDUQM): Likewise.
5762 (VSUBCUQ): Likewise.
5763 (VADDEUQM): Likewise.
5764 (VADDECUQ): Likewise.
5765 (VSUBEUQM): Likewise.
5766 (VSUBECUQ): Likewise.
5768 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
5769 __int128_t and __uint128_t types.
5770 (__uint128_type): Likewise.
5771 (altivec_categorize_keyword): Add support for vector __int128_t,
5772 vector __uint128_t, vector __int128, and vector unsigned __int128
5773 as a container type for TImode operations that need to be done in
5774 VSX/Altivec registers.
5775 (rs6000_macro_to_expand): Likewise.
5776 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
5777 to support 128-bit integer instructions vaddcuq, vadduqm,
5778 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
5779 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
5781 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
5782 for V1TImode, and set up preferences to use VSX/Altivec registers.
5783 Setup VSX reload handlers.
5784 (rs6000_debug_reg_global): Likewise.
5785 (rs6000_init_hard_regno_mode_ok): Likewise.
5786 (rs6000_preferred_simd_mode): Likewise.
5787 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
5788 (easy_altivec_constant): Likewise.
5789 (output_vec_const_move): Likewise.
5790 (rs6000_expand_vector_set): Convert V1TImode set and extract to
5792 (rs6000_expand_vector_extract): Likewise.
5793 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
5795 (rs6000_const_vec): Add support for V1TImode.
5796 (rs6000_emit_le_vsx_load): Swap double words when loading or
5797 storing TImode/V1TImode.
5798 (rs6000_emit_le_vsx_store): Likewise.
5799 (rs6000_emit_le_vsx_move): Likewise.
5800 (rs6000_emit_move): Add support for V1TImode.
5801 (altivec_expand_ld_builtin): Likewise.
5802 (altivec_expand_st_builtin): Likewise.
5803 (altivec_expand_vec_init_builtin): Likewise.
5804 (altivec_expand_builtin): Likewise.
5805 (rs6000_init_builtins): Add support for V1TImode type. Add
5806 support for ISA 2.07 128-bit integer builtins. Define type names
5807 for the VSX/Altivec vector types.
5808 (altivec_init_builtins): Add support for overloaded vector
5809 functions with V1TImode type.
5810 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
5811 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
5813 (rs6000_split_128bit_ok_p): Likewise.
5814 (rs6000_handle_altivec_attribute): Create V1TImode from vector
5815 __int128_t and vector __uint128_t.
5817 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
5818 and mode attributes.
5825 (VS_scalar): Likewise.
5826 (VS_double): Likewise.
5827 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
5829 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
5830 we support the ISA 2.07 128-bit integer arithmetic instructions.
5831 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
5832 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
5833 and TImode types for use with the builtin functions.
5834 (V1TI_type_node): Likewise.
5835 (unsigned_V1TI_type_node): Likewise.
5836 (intTI_type_internal_node): Likewise.
5837 (uintTI_type_internal_node): Likewise.
5839 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
5840 128-bit builtin functions.
5841 (UNSPEC_VADDEUQM): Likewise.
5842 (UNSPEC_VADDECUQ): Likewise.
5843 (UNSPEC_VSUBCUQ): Likewise.
5844 (UNSPEC_VSUBEUQM): Likewise.
5845 (UNSPEC_VSUBECUQ): Likewise.
5846 (VM): Add V1TImode to vector mode iterators.
5848 (VI_unit): Likewise.
5849 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
5850 (altivec_vaddcuq): Likewise.
5851 (altivec_vsubuqm): Likewise.
5852 (altivec_vsubcuq): Likewise.
5853 (altivec_vaddeuqm): Likewise.
5854 (altivec_vaddecuq): Likewise.
5855 (altivec_vsubeuqm): Likewise.
5856 (altivec_vsubecuq): Likewise.
5858 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
5860 (BOOL_128): Likewise.
5861 (BOOL_REGS_OUTPUT): Likewise.
5862 (BOOL_REGS_OP1): Likewise.
5863 (BOOL_REGS_OP2): Likewise.
5864 (BOOL_REGS_UNARY): Likewise.
5865 (BOOL_REGS_AND_CR0): Likewise.
5867 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
5868 128-bit integer builtin support.
5869 (vec_vadduqm): Likewise.
5870 (vec_vaddecuq): Likewise.
5871 (vec_vaddeuqm): Likewise.
5872 (vec_vsubecuq): Likewise.
5873 (vec_vsubeuqm): Likewise.
5874 (vec_vsubcuq): Likewise.
5875 (vec_vsubuqm): Likewise.
5877 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5878 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
5879 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
5880 128-bit integer add/subtract to ISA 2.07.
5882 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
5884 * config/arc/arc.c (arc_predicate_delay_insns):
5885 Fix third argument passed to conditionalize_nonjump.
5887 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
5889 * config/aarch64/aarch64-builtins.c
5890 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
5891 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
5892 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
5893 instead of __builtin_lfloor.
5894 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
5896 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5898 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
5899 (tree_ssa_ifcombine_bb_1): New function.
5900 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
5901 is an empty forwarder block to then_bb or vice versa and then_bb
5902 and else_bb are effectively swapped.
5904 2014-03-12 Christian Bruel <christian.bruel@st.com>
5907 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
5908 REG_CFA_DEF_CFA note.
5909 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
5910 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
5912 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
5914 PR tree-optimization/60454
5915 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
5917 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5919 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
5920 Do not define target_cpu_default2 to generic.
5921 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
5922 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
5923 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
5925 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5926 Marc Glisse <marc.glisse@inria.fr>
5928 PR tree-optimization/60502
5929 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
5930 instead of build_low_bits_mask.
5932 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5935 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
5936 if there are multiple uses, but op doesn't live on E edge.
5937 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
5938 clobber stmts before __builtin_unreachable.
5940 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
5942 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
5943 hard_frame_pointer_rtx.
5944 * cse.c (cse_insn): Remove volatile check.
5945 * cselib.c (cselib_process_insn): Likewise.
5946 * dse.c (scan_insn): Likewise.
5948 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
5950 * config/arc/arc.c (conditionalize_nonjump): New function,
5952 (arc_ifcvt): ... this.
5953 (arc_predicate_delay_insns): Use it.
5955 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
5957 * config/arc/predicates.md (extend_operand): During/after reload,
5958 allow const_int_operand.
5959 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
5960 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
5961 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
5963 (umulsi3_highpart_i): Likewise.
5965 2014-03-11 Richard Biener <rguenther@suse.de>
5967 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
5968 Add asserts to guard possible wrong-code bugs.
5970 2014-03-11 Richard Biener <rguenther@suse.de>
5972 PR tree-optimization/60429
5973 PR tree-optimization/60485
5974 * tree-ssa-structalias.c (set_union_with_increment): Properly
5975 take into account all fields that overlap the shifted vars.
5976 (do_sd_constraint): Likewise.
5977 (do_ds_constraint): Likewise.
5978 (get_constraint_for_ptr_offset): Likewise.
5980 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
5982 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
5983 (nios2_compute_frame_layout):
5984 Add calculation of cfun->machine->fp_save_offset.
5985 (nios2_expand_prologue): Correct setting of frame pointer register
5987 (nios2_expand_epilogue): Update recovery of stack pointer from
5988 frame pointer accordingly.
5989 (nios2_initial_elimination_offset): Update calculation of offset
5990 for eliminating to HARD_FRAME_POINTER_REGNUM.
5992 2014-03-10 Jakub Jelinek <jakub@redhat.com>
5995 * ipa.c (symtab_remove_unreachable_nodes): Don't call
5996 cgraph_get_create_node on VAR_DECLs.
5998 2014-03-10 Richard Biener <rguenther@suse.de>
6001 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
6003 2014-03-08 Douglas B Rupp <rupp@gnat.com>
6005 * config/vms/vms.opt (vms_float_format): New variable.
6007 2014-03-08 Tobias Burnus <burnus@net-b.de>
6009 * doc/invoke.texi (-fcilkplus): Update implementation status.
6011 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
6012 Richard Biener <rguenther@suse.de>
6014 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
6015 consistently accross all TUs.
6016 (run_gcc): Enable -fshort-double automatically at link at link-time
6017 and disallow override.
6019 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
6022 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
6023 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
6024 if they can't be used.
6026 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6028 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
6029 for Solaris 11/x86 ld.
6030 * configure: Regenerate.
6032 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6034 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
6035 (LIB_TLS_SPEC): Save as ld_tls_libs.
6036 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
6037 (HAVE_AS_IX86_TLSLDM): New test.
6038 * configure, config.in: Regenerate.
6039 * config/i386/i386.c (legitimize_tls_address): Fall back to
6040 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
6041 cannot support TLS_MODEL_LOCAL_DYNAMIC.
6042 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
6043 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
6045 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
6047 * common.opt (fira-loop-pressure): Mark as optimization.
6049 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
6051 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
6052 an OpenMP mappable type.
6054 2014-03-06 Matthias Klose <doko@ubuntu.com>
6056 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
6057 MULTILIB_OSDIRNAMES is not defined.
6059 2014-03-06 Jakub Jelinek <jakub@redhat.com>
6060 Meador Inge <meadori@codesourcery.com>
6063 * config/arm/arm.c (arm_tls_symbol_p): Remove.
6064 (arm_legitimize_address): Call legitimize_tls_address for any
6065 arm_tls_referenced_p expression, handle constant addend. Call it
6066 before testing for !TARGET_ARM.
6067 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
6069 2014-03-06 Richard Biener <rguenther@suse.de>
6075 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
6077 * tree-streamer.c (record_common_node): Assert we don't record
6078 nodes with type double.
6079 (preload_common_node): Skip type double, complex double and double
6080 pointer since it is now frontend dependent due to fshort-double option.
6082 2014-03-06 Richard Biener <rguenther@suse.de>
6084 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
6085 or -fno-lto is specified and the linker has full plugin support.
6086 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
6087 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
6088 * lto-wrapper.c (merge_and_complain): Merge compile-time
6089 optimization levels.
6090 (run_gcc): And pass it through to the link options.
6092 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
6096 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6098 * cselib.c (remove_useless_values): Skip to avoid quadratic
6099 behavior if the condition moved from...
6100 (cselib_process_insn): ... here holds.
6102 2014-03-05 Jakub Jelinek <jakub@redhat.com>
6105 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
6106 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
6109 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
6110 (TM_H): Add x86-tune.def.
6112 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6114 * config/aarch64/aarch64.c (generic_tunings):
6115 Use cortexa57_extra_costs.
6117 2014-03-05 Jakub Jelinek <jakub@redhat.com>
6120 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
6121 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
6122 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
6125 2014-03-04 Heiher <r@hev.cc>
6127 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
6128 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
6130 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
6132 * config/i386/predicates.md (const2356_operand): Change to ...
6133 (const2367_operand): ... this.
6134 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
6136 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6137 (*avx512pf_scatterpf<mode>sf): Ditto.
6138 (avx512pf_scatterpf<mode>df): Ditto.
6139 (*avx512pf_scatterpf<mode>df_mask): Ditto.
6140 (*avx512pf_scatterpf<mode>df): Ditto.
6141 * config/i386/i386.c (ix86_expand_builtin): Update
6142 incorrect hint operand error message.
6144 2014-03-04 Richard Biener <rguenther@suse.de>
6146 * lto-section-in.c (lto_get_section_data): Fix const cast.
6148 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
6150 * tree-streamer.c (record_common_node): Assert we don't record
6151 nodes with type double.
6152 (preload_common_node): Skip type double, complex double and double
6153 pointer since it is now frontend dependent due to fshort-double option.
6155 2014-03-04 Richard Biener <rguenther@suse.de>
6158 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
6159 (lto_input_toplevel_asms): Likewise.
6160 * lto-section-in.c (lto_get_section_data): Instead do it here
6163 2014-03-04 Richard Biener <rguenther@suse.de>
6165 PR tree-optimization/60382
6166 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
6167 dead PHIs a reduction.
6169 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
6171 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
6173 (_mm_prefetch): Move out of GCC target("sse") pragma.
6174 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
6175 GCC target("prfchw") pragma.
6176 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
6178 * config/i386/i386.c (ix86_option_override_internal): Enable
6179 -mprfchw with -mprefetchwt1.
6181 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
6183 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
6186 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
6188 * opts.h (CL_PCH_IGNORE): Define.
6189 * targhooks.c (option_affects_pch_p):
6190 Return false for options that have CL_PCH_IGNORE set.
6191 * opt-functions.awk: Process PchIgnore.
6192 * doc/options.texi: Document PchIgnore.
6194 * config/arc/arc.opt (misize): Add PchIgnore property.
6196 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6198 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
6199 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
6200 constraint on constants to permit them being loaded into
6201 GENERAL_REGS or BASE_REGS.
6203 2014-03-03 Nick Clifton <nickc@redhat.com>
6205 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
6206 anti-cacnonical alternatives.
6207 (negandhi3_real): New pattern.
6208 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
6210 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6212 * config/avr/avr-mcus.def: Remove atxmega16x1.
6213 * config/avr/avr-tables.opt: Regenerate.
6214 * config/avr/t-multilib: Regenerate.
6215 * doc/avr-mmcu.texi: Regenerate.
6217 2014-03-03 Tobias Grosser <tobias@grosser.es>
6218 Mircea Namolaru <mircea.namolaru@inria.fr>
6220 PR tree-optimization/58028
6221 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6224 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6226 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6227 not handled by recognizers.
6229 2014-03-03 Jakub Jelinek <jakub@redhat.com>
6232 * function.c (expand_function_end): Don't emit
6233 clobber_return_register sequence if clobber_after is a BARRIER.
6234 * cfgexpand.c (construct_exit_block): Append instructions before
6235 return_label to prev_bb.
6237 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6239 * config/rs6000/constraints.md: Document reserved use of "wc".
6241 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6244 * ipa.c (function_and_variable_visibility): When dissolving comdat
6245 group, also set all symbols to local.
6247 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6252 2013-12-14 Jan Hubicka <jh@suse.cz>
6254 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6256 2014-03-02 Jon Beniston <jon@beniston.com>
6262 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6263 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6264 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6265 (simple_return, *simple_return): New patterns
6266 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6267 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6269 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
6271 * dwarf2out.c (gen_subprogram_die): Tidy.
6273 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
6276 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6277 (*mov_t_msb_neg_negc): ... this new insn.
6279 2014-02-28 Jason Merrill <jason@redhat.com>
6282 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6285 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
6288 * dwarf2out.c (decltype_auto_die): New static.
6289 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6290 (gen_type_die_with_usage): Handle 'decltype(auto)'.
6291 (is_cxx_auto): Likewise.
6293 2014-02-28 Ian Bolton <ian.bolton@arm.com>
6295 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6296 we are not using general regs only.
6298 2014-02-28 Richard Biener <rguenther@suse.de>
6301 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6302 previous fix and only allow to remove trivial pre-headers
6303 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6304 (remove_forwarder_block): Properly update the latch of a loop.
6306 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6309 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6310 (cselib_preserved_hash_table): New.
6311 (preserve_constants_and_equivs): Move preserved vals to it.
6312 (cselib_find_slot): Look it up first.
6313 (cselib_init): Initialize it.
6314 (cselib_finish): Release it.
6315 (dump_cselib_table): Dump it.
6317 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6320 * cselib.c (remove_useless_values): Skip to avoid quadratic
6321 behavior if the condition moved from...
6322 (cselib_process_insn): ... here holds.
6324 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6327 * var-tracking.c (vt_initialize): Apply the same condition to
6328 preserve the CFA base value.
6330 2014-02-28 Joey Ye <joey.ye@arm.com>
6333 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6334 if reload in progress or completed.
6336 2014-02-28 Tobias Burnus <burnus@net-b.de>
6339 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6342 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
6344 * doc/tm.texi.in (Condition Code Status): Update documention for
6345 relative locations of cc0-setter and cc0-user.
6347 2014-02-27 Jeff Law <law@redhat.com>
6349 PR rtl-optimization/52714
6350 * combine.c (try_combine): When splitting an unrecognized PARALLEL
6351 into two independent simple sets, if I3 is a jump, ensure the
6352 pattern we place into I3 is a (set (pc) ...).
6354 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
6355 Jeff Law <law@redhat.com>
6357 PR rtl-optimization/49847
6358 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6359 are in different blocks.
6360 * doc/tm.texi (Condition Code Status): Update documention for
6361 relative locations of cc0-setter and cc0-user.
6363 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
6366 * lra.c (lra_emit_add): Check SUBREG too.
6368 2014-02-27 Andreas Schwab <schwab@suse.de>
6370 * config/m68k/m68k.c (m68k_option_override): Disable
6371 -flive-range-shrinkage for classic m68k.
6372 (m68k_override_options_after_change): Likewise.
6374 2014-02-27 Marek Polacek <polacek@redhat.com>
6377 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6378 -Wmaybe-uninitialized.
6380 2014-02-27 Alan Modra <amodra@gmail.com>
6383 * reload1.c (emit_input_reload_insns): When reload_override_in,
6384 set old to rl->in_reg when rl->in_reg is a subreg.
6386 2014-02-26 Richard Biener <rguenther@suse.de>
6389 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6391 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6393 * common/config/i386/predicates.md (const1256_operand): Remove.
6394 (const2356_operand): New.
6395 (const_1_to_2_operand): Remove.
6396 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6397 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6398 (*avx512pf_gatherpf<mode>sf): Ditto.
6399 (avx512pf_gatherpf<mode>df): Ditto.
6400 (*avx512pf_gatherpf<mode>df_mask): Ditto.
6401 (*avx512pf_gatherpf<mode>df): Ditto.
6402 (avx512pf_scatterpf<mode>sf): Ditto.
6403 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6404 (*avx512pf_scatterpf<mode>sf): Ditto.
6405 (avx512pf_scatterpf<mode>df): Ditto.
6406 (*avx512pf_scatterpf<mode>df_mask): Ditto.
6407 (*avx512pf_scatterpf<mode>df): Ditto.
6408 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6410 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
6412 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6413 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6414 (_mm512_mask_testn_epi64_mask): Move to ...
6415 * config/i386/avx512cdintrin.h: Here.
6416 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6417 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6418 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6419 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6420 TARGET_AVX512F from TARGET_AVX512CD.
6422 2014-02-26 Richard Biener <rguenther@suse.de>
6425 * ipa.c (walk_polymorphic_call_targets): Properly guard
6426 call to inline_update_overall_summary.
6428 2014-02-26 Bin Cheng <bin.cheng@arm.com>
6431 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6432 and latches only if requested. Fix latch if it is removed.
6433 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6434 LOOPS_HAVE_PREHEADERS.
6436 2014-02-25 Andrew Pinski <apinski@cavium.com>
6438 * builtins.c (expand_builtin_thread_pointer): Create a new target
6439 when the target is NULL.
6441 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
6443 PR rtl-optimization/60317
6444 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6445 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6446 * lra-assigns.c: Include params.h.
6447 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6448 other reload pseudos considerations.
6450 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6452 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6453 to use canonical form for nor<mode>3.
6455 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6458 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6461 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6463 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6464 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6465 (ix86_handle_option): Handle OPT_mprefetchwt1.
6466 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6467 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6469 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6470 OPTION_MASK_ISA_PREFETCHWT1.
6471 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6472 (PTA_PREFETCHWT1): New.
6473 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6474 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6475 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6476 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6477 (*prefetch_avx512pf_<mode>_: Change into ...
6478 (*prefetch_prefetchwt1_<mode>: This.
6479 * config/i386/i386.opt (mprefetchwt1): New.
6480 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6481 (_mm_prefetch): Handle intent to write.
6482 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6484 2014-02-25 Richard Biener <rguenther@suse.de>
6487 * emit-rtl.c (mem_attrs_htab): Remove.
6488 (mem_attrs_htab_hash): Likewise.
6489 (mem_attrs_htab_eq): Likewise.
6490 (set_mem_attrs): Always allocate new mem-attrs when something changed.
6491 (init_emit_once): Do not allocate mem_attrs_htab.
6493 2014-02-25 Richard Biener <rguenther@suse.de>
6496 * lto-opts.c (lto_write_options): Output non-explicit conservative
6497 -fwrapv, -fno-trapv and -fno-strict-overflow.
6498 * lto-wrapper.c (merge_and_complain): Handle merging those options.
6499 (run_gcc): And pass them through.
6501 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6503 * sel-sched.c (calculate_new_fences): New parameter ptime.
6504 Calculate it as a maximum over all fence cycles.
6505 (sel_sched_region_2): Adjust the call to calculate_new_fences.
6506 Print the final schedule timing when sched_verbose.
6508 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6510 PR rtl-optimization/60292
6511 * sel-sched.c (fill_vec_av_set): Do not reset target availability
6512 bit fot the fence instruction.
6514 2014-02-24 Alangi Derick <alangiderick@gmail.com>
6516 * calls.h: Fix typo in comment.
6518 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
6520 * config/pa/pa.c (pa_output_move_double): Don't valididate when
6521 adjusting offsetable addresses.
6523 2014-02-24 Guozhi Wei <carrot@google.com>
6525 * sparseset.h (sparseset_pop): Fix the wrong index.
6527 2014-02-24 Walter Lee <walt@tilera.com>
6529 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
6530 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
6532 * common/config/tilegx/tilegx-common.c
6533 (TARGET_DEFAULT_TARGET_FLAGS): Define.
6534 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
6536 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
6537 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
6538 (tilegx_gimplify_va_arg_expr): Handle big endian.
6539 (tilegx_expand_unaligned_load): Ditto.
6540 (tilegx_expand_unaligned_store): Ditto.
6541 (TARGET_RETURN_IN_MSB): New.
6542 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
6543 (TARGET_ENDIAN_DEFAULT): New.
6544 (TARGET_BIG_ENDIAN): Handle big endian.
6545 (BYTES_BIG_ENDIAN): Ditto.
6546 (WORDS_BIG_ENDIAN): Ditto.
6547 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
6550 * config/tilegx/tilegx.md (extv): Handle big endian.
6552 (insn_st<n>): Ditto.
6553 (insn_st<n>_add<bitsuffix>): Ditto.
6554 (insn_stnt<n>): Ditto.
6555 (insn_stnt<n>_add<bitsuffix>):Ditto.
6556 (vec_interleave_highv8qi): Handle big endian.
6557 (vec_interleave_highv8qi_be): New.
6558 (vec_interleave_highv8qi_le): New.
6559 (insn_v1int_h): Handle big endian.
6560 (vec_interleave_lowv8qi): Handle big endian.
6561 (vec_interleave_lowv8qi_be): New.
6562 (vec_interleave_lowv8qi_le): New.
6563 (insn_v1int_l): Handle big endian.
6564 (vec_interleave_highv4hi): Handle big endian.
6565 (vec_interleave_highv4hi_be): New.
6566 (vec_interleave_highv4hi_le): New.
6567 (insn_v2int_h): Handle big endian.
6568 (vec_interleave_lowv4hi): Handle big endian.
6569 (vec_interleave_lowv4hi_be): New.
6570 (vec_interleave_lowv4hi_le): New.
6571 (insn_v2int_l): Handle big endian.
6572 (vec_interleave_highv2si): Handle big endian.
6573 (vec_interleave_highv2si_be): New.
6574 (vec_interleave_highv2si_le): New.
6575 (insn_v4int_h): Handle big endian.
6576 (vec_interleave_lowv2si): Handle big endian.
6577 (vec_interleave_lowv2si_be): New.
6578 (vec_interleave_lowv2si_le): New.
6579 (insn_v4int_l): Handle big endian.
6580 * config/tilegx/tilegx.opt (mbig-endian): New option.
6581 (mlittle-endian): New option.
6582 * doc/install.texi: Document tilegxbe-linux.
6583 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
6585 2014-02-24 Martin Jambor <mjambor@suse.cz>
6588 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
6589 there are no parameter descriptors.
6591 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
6593 PR rtl-optimization/60268
6594 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
6595 initialization to ...
6596 (sched_rgn_init): ... here.
6597 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
6599 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6601 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
6604 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
6606 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
6609 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6611 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
6612 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
6614 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6616 * config/microblaze/predicates.md: Add cmp_op predicate.
6617 * config/microblaze/microblaze.md: Add branch_compare instruction
6618 which uses cmp_op predicate and emits cmp insn before branch.
6619 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
6620 to microblaze_expand_conditional_branch and consolidate logic.
6621 (microblaze_expand_conditional_branch): emit branch_compare
6622 insn instead of handling cmp op separate from branch insn.
6624 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6626 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
6629 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6631 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
6632 define_insn with define_expand and new define_insn
6633 *altivec_lve<VI_char>x_internal.
6634 (altivec_stve<VI_char>x): Replace define_insn with define_expand
6635 and new define_insn *altivec_stve<VI_char>x_internal.
6636 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
6638 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
6640 (altivec_expand_stvex_be): New function.
6642 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
6644 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
6645 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
6646 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
6647 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
6649 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
6652 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
6653 instead of emit_move_insn.
6655 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6657 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
6659 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
6660 gen_altivec_vsumsws.
6662 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6664 * config/rs6000/altivec.md (altivec_lvxl): Rename as
6665 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
6666 (altivec_lvxl_<mode>): New define_expand incorporating
6667 -maltivec=be semantics where needed.
6668 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
6669 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
6670 semantics where needed.
6671 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
6672 (altivec_stvx_<mode>): New define_expand incorporating
6673 -maltivec=be semantics where needed.
6674 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
6675 VM2 iterator instead of V4SI.
6676 (altivec_stvxl_<mode>): New define_expand incorporating
6677 -maltivec=be semantics where needed.
6678 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
6679 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
6680 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
6681 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
6682 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
6683 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
6684 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
6685 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
6686 ALTIVEC_BUILTIN_STVXL.
6687 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
6688 (altivec_expand_stvx_be): Likewise.
6689 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
6690 (altivec_expand_lvx_be): Likewise.
6691 (altivec_expand_stvx_be): Likewise.
6692 (altivec_expand_builtin): Add cases for
6693 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
6694 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
6695 (altivec_init_builtins): Add definitions for
6696 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
6697 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
6699 2014-02-21 Catherine Moore <clm@codesourcery.com>
6701 * doc/invoke.texi (mvirt, mno-virt): Document.
6702 * config/mips/mips.opt (mvirt): New option.
6703 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
6705 2014-02-21 Richard Biener <rguenther@suse.de>
6707 PR tree-optimization/60276
6708 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
6709 (STMT_VINFO_MIN_NEG_DIST): New macro.
6710 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
6711 STMT_VINFO_MIN_NEG_DIST.
6712 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
6713 made for negative dependence distances still hold.
6715 2014-02-21 Richard Biener <rguenther@suse.de>
6718 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
6719 DECL_INITIAL for globals not in the current function context.
6721 2014-02-21 Jakub Jelinek <jakub@redhat.com>
6723 PR tree-optimization/56490
6724 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
6725 * tree-ssa-uninit.c: Include params.h.
6726 (compute_control_dep_chain): Add num_calls argument, return false
6727 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
6728 num_calls to recursive call.
6729 (find_predicates): Change dep_chain into normal array,
6730 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
6731 variable and adjust compute_control_dep_chain caller.
6732 (find_def_preds): Likewise.
6734 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
6736 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
6737 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
6739 2014-02-21 Nick Clifton <nickc@redhat.com>
6741 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
6742 (pushhi1): Likewise.
6743 (popqi1): Add mode to pre_dec.
6746 2014-02-21 Jakub Jelinek <jakub@redhat.com>
6748 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
6749 mode for mask of V8SFmode permutation.
6751 2014-02-20 Richard Henderson <rth@redhat.com>
6754 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
6755 a new pseudo for OLDVAL.
6757 2014-02-20 Jakub Jelinek <jakub@redhat.com>
6760 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
6761 gen_reg_rtx if d->testing_p.
6762 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
6763 if d->testing_p and we will certainly return true.
6764 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
6767 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
6769 * emit-rtl.c (gen_reg_rtx): Assert that
6770 crtl->emit.regno_pointer_align_length is non-zero.
6772 2014-02-20 Richard Henderson <rth@redhat.com>
6775 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
6776 on failure the store back into EXPECT.
6778 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
6779 Sandra Loosemore <sandra@codesourcery.com>
6781 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
6782 * config/nios2/nios2.c (nios2_function_profiler): Add
6783 -fPIC (flag_pic == 2) support.
6784 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
6785 (nios2_large_offset_p): New function.
6786 (nios2_unspec_reloc_p): Move up position, update to use
6787 nios2_large_offset_p.
6788 (nios2_unspec_address): Remove function.
6789 (nios2_unspec_offset): New function.
6790 (nios2_large_got_address): New function.
6791 (nios2_got_address): Add large offset support.
6792 (nios2_legitimize_tls_address): Update usage of removed and new
6794 (nios2_symbol_binds_local_p): New function.
6795 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
6796 (nios2_legitimize_address): Update to use nios2_large_offset_p.
6797 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
6798 (nios2_print_operand): Merge H/L processing, add hiadj/lo
6799 processing for (const (unspec ...)).
6800 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
6802 2014-02-20 Richard Biener <rguenther@suse.de>
6804 * tree-cfg.c (replace_uses_by): Mark altered BBs before
6805 doing the substitution.
6806 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
6808 2014-02-20 Martin Jambor <mjambor@suse.cz>
6811 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
6812 info when checking whether lattices are bottom.
6814 2014-02-20 Richard Biener <rguenther@suse.de>
6817 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
6820 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
6823 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
6824 parameter specifying the scaling.
6825 (inline_call): Update.
6826 (want_inline_recursively): Guard division by zero.
6827 (recursive_inlining): Update.
6828 * ipa-inline.h (clone_inlined_nodes): Update.
6830 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
6833 * config/i386/i386.c (classify_argument): Pass structures of size
6834 64 bytes or less in register.
6836 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
6837 Kirill Yukhin <kirill.yukhin@intel.com>
6839 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
6840 (_mm_rcp28_round_ss): Ditto.
6841 (_mm_rsqrt28_round_sd): Ditto.
6842 (_mm_rsqrt28_round_ss): Ditto.
6843 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
6844 (_mm_rcp14_round_ss): Ditto.
6845 (_mm_rsqrt14_round_sd): Ditto.
6846 (_mm_rsqrt14_round_ss): Ditto.
6847 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
6848 the first input operand, get rid of match_dup.
6849 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
6851 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
6853 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
6854 operand as the first input operand, set type attribute.
6855 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
6857 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
6858 operand as the first input operand, set type attribute.
6860 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6862 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
6865 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
6868 * config/i386/i386.c (construct_container): Remove TFmode check
6869 for X86_64_INTEGER_CLASS.
6871 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
6874 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
6875 only when -Wpsabi is enabled.
6877 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
6880 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
6881 passing arrays in registers are the same as for structs, so remove the
6882 special case for them.
6884 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
6886 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
6887 destination type, extract only the valid bits if the source type is not
6888 integral and has a different mode.
6890 2014-02-19 Richard Biener <rguenther@suse.de>
6893 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
6896 2014-02-19 Richard Biener <rguenther@suse.de>
6899 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
6900 (ipa_modify_call_arguments): Emit an argument load explicitely and
6901 preserve virtual SSA form there and for the replacement call.
6902 Do not update SSA form nor free dominance info.
6904 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6906 * ipa.c (function_and_variable_visibility): Also clear WEAK
6907 flag when disolving COMDAT_GROUP.
6909 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6911 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
6912 * ipa-prop.c (ipa_set_jf_known_type): Return early when
6914 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
6915 do more sanity checks.
6916 (detect_type_change): Return true when giving up early.
6917 (compute_complex_assign_jump_func): Fix type parameter of
6918 ipa_set_ancestor_jf.
6919 (compute_complex_ancestor_jump_func): Likewise.
6920 (update_jump_functions_after_inlining): Fix updating of
6922 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
6924 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6926 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
6927 inline clones when edge disappears.
6929 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6932 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
6933 Split 64-bit moves into 2 patterns. Do not allow the use of
6934 direct move for TDmode in little endian, since the decimal value
6935 has little endian bytes within a word, but the 64-bit pieces are
6936 ordered in a big endian fashion, and normal subreg's of TDmode are
6938 (mov<mode>_64bit_dm): Likewise.
6939 (movtd_64bit_nodm): Likewise.
6941 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
6943 PR tree-optimization/60174
6944 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
6945 statement of an SSA_NAME that occurs in an abnormal PHI node.
6947 2014-02-18 Jakub Jelinek <jakub@redhat.com>
6950 * final.c (SEEN_BB): Remove.
6951 (SEEN_NOTE, SEEN_EMITTED): Renumber.
6952 (final_scan_insn): Don't force_source_line on second
6953 NOTE_INSN_BASIC_BLOCK.
6955 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
6958 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
6959 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
6960 (type_natural_mode): Warn ABI change when %zmm register is not
6961 available for AVX512F vector value passing.
6963 2014-02-18 Kai Tietz <ktietz@redhat.com>
6966 * config/i386/i386.c (ix86_expand_prologue): Use value in
6967 rax register as displacement when restoring %r10 or %rax.
6968 Fix wrong offset when restoring both registers.
6970 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
6972 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
6973 assertion with conditional return.
6975 2014-02-18 Jakub Jelinek <jakub@redhat.com>
6976 Uros Bizjak <ubizjak@gmail.com>
6979 * config/i386/driver-i386.c (host_detect_local_cpu): If
6980 YMM state is not saved by the OS, also clear has_f16c. Move
6981 CPUID 0x80000001 handling before YMM state saving checking.
6983 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
6985 PR rtl-optimization/58960
6986 * haifa-sched.c (alloc_global_sched_pressure_data): New,
6987 factored out from ...
6988 (sched_init): ... here.
6989 (free_global_sched_pressure_data): New, factored out from ...
6990 (sched_finish): ... here.
6991 * sched-int.h (free_global_sched_pressure_data): Declare.
6992 * sched-rgn.c (nr_regions_initial): New static global.
6993 (haifa_find_rgns): Initialize it.
6994 (schedule_region): Disable sched-pressure for the newly
6997 2014-02-17 Richard Biener <rguenther@suse.de>
6999 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
7000 release SSA defs of pattern stmts.
7002 2014-02-17 Richard Biener <rguenther@suse.de>
7004 * tree-inline.c (expand_call_inline): Release the virtual
7005 operand defined by the call we are about to inline.
7007 2014-02-17 Richard Biener <rguenther@suse.de>
7009 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
7011 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
7012 Ilya Tocar <ilya.tocar@intel.com>
7014 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
7015 arguments order in builtin.
7016 (_mm512_permutexvar_epi64): Ditto.
7017 (_mm512_mask_permutexvar_epi64): Ditto
7018 (_mm512_maskz_permutexvar_epi32): Ditto
7019 (_mm512_permutexvar_epi32): Ditto
7020 (_mm512_mask_permutexvar_epi32): Ditto
7022 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7024 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7025 (p8_vmrgow): Likewise.
7027 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7029 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
7032 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
7035 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
7036 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
7037 into 64-bit and 32-bit moves. On 64-bit moves, add support for
7038 using direct move instructions on ISA 2.07. Also adjust
7039 instruction length for 64-bit.
7040 (mov<mode>_64bit, TFmode/TDmode): Likewise.
7041 (mov<mode>_32bit, TFmode/TDmode): Likewise.
7043 2014-02-15 Alan Modra <amodra@gmail.com>
7047 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
7048 find_replacement on parts of insn rtl that might be reloaded.
7050 2014-02-15 Richard Biener <rguenther@suse.de>
7052 PR tree-optimization/60183
7053 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
7054 (tree_ssa_phiprop): Calculate and free post-dominators.
7056 2014-02-14 Jeff Law <law@redhat.com>
7058 PR rtl-optimization/60131
7059 * ree.c (get_extended_src_reg): New function.
7060 (combine_reaching_defs): Use it rather than assuming location of REG.
7061 (find_and_remove_re): Verify first operand of extension is
7062 a REG before adding the insns to the copy list.
7064 2014-02-14 Roland McGrath <mcgrathr@google.com>
7066 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
7067 * configure: Regenerated.
7068 * config.in: Regenerated.
7069 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
7070 instead of ASM_SHORT.
7072 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
7073 Richard Earnshaw <rearnsha@arm.com>
7075 PR rtl-optimization/59535
7076 * lra-constraints.c (process_alt_operands): Encourage alternative
7077 when unassigned pseudo class is superset of the alternative class.
7078 (inherit_reload_reg): Don't inherit when optimizing for code size.
7079 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
7080 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
7081 modes not less than 4 for Thumb1.
7083 2014-02-14 Kyle McMartin <kyle@redhat.com>
7086 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
7088 2014-02-14 Richard Biener <rguenther@suse.de>
7090 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
7091 (get_frame_arg): Drop the assert with langhook types_compatible_p.
7092 Do not strip INDIRECT_REFs.
7094 2014-02-14 Richard Biener <rguenther@suse.de>
7097 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
7098 DECL_FUNCTION_SPECIFIC_TARGET.
7099 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
7100 * tree-streamer-out.c (pack_ts_target_option): Remove.
7101 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
7102 (write_ts_function_decl_tree_pointers): Do not stream
7103 DECL_FUNCTION_SPECIFIC_TARGET.
7104 * tree-streamer-in.c (unpack_ts_target_option): Remove.
7105 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
7106 (lto_input_ts_function_decl_tree_pointers): Do not stream
7107 DECL_FUNCTION_SPECIFIC_TARGET.
7109 2014-02-14 Jakub Jelinek <jakub@redhat.com>
7111 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
7112 (get_initial_def_for_induction, vectorizable_induction): Ignore
7113 debug stmts when looking for exit_phi.
7114 (vectorizable_live_operation): Fix up condition.
7116 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7118 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
7119 nreverse() because it changes the content of original tree list.
7121 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7123 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
7124 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
7126 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7128 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
7129 GNU coding standards.
7131 2014-02-13 Jakub Jelinek <jakub@redhat.com>
7134 * dwarf2out.c (gen_subprogram_die): Don't call
7135 add_calling_convention_attribute if subr_die is old_die.
7137 2014-02-13 Sharad Singhai <singhai@google.com>
7139 * doc/optinfo.texi: Fix order of nodes.
7141 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
7143 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
7144 operands[2], not operands[3].
7146 2014-02-13 Richard Biener <rguenther@suse.de>
7149 * doc/install.texi (ISL): Update recommended version to 0.12.2,
7150 mention the possibility of an in-tree build.
7151 (CLooG): Update recommended version to 0.18.1, mention the
7152 possibility of an in-tree build and clarify that the ISL
7153 bundled with CLooG does not work.
7155 2014-02-13 Jakub Jelinek <jakub@redhat.com>
7158 * expr.c (compress_float_constant): If x is a hard register,
7159 extend into a pseudo and then move to x.
7161 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
7163 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
7164 caused by bad second argument to warning_at() with -mhotpatch and
7165 nested functions (e.g. with gfortran).
7167 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
7169 * opts.c (option_name): Remove "enabled by default" rider.
7171 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
7173 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
7175 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
7176 Uros Bizjak <ubizjak@gmail.com>
7179 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
7180 * configure: Regenerated.
7182 2014-02-12 Richard Biener <rguenther@suse.de>
7184 * vec.c (vec_prefix::calculate_allocation): Move as
7185 inline variant to vec.h.
7186 (vec_prefix::calculate_allocation_1): New out-of-line version.
7187 * vec.h (vec_prefix::calculate_allocation_1): Declare.
7188 (vec_prefix::m_has_auto_buf): Rename to ...
7189 (vec_prefix::m_using_auto_storage): ... this.
7190 (vec_prefix::calculate_allocation): Inline the easy cases
7191 and dispatch to calculate_allocation_1 which doesn't need the
7193 (va_heap::reserve): Use gcc_checking_assert.
7194 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
7195 m_using_auto_storage.
7196 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
7198 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
7199 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
7200 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
7202 2014-02-12 Richard Biener <rguenther@suse.de>
7204 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
7205 when we found a dependence.
7207 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
7209 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
7211 (maybe_fold_stmt): ... into this new function.
7212 * omp-low.c (lower_omp): Update comment.
7214 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
7217 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
7220 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
7222 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
7223 identifiers in comments.
7224 (cortexa53_extra_costs): Likewise.
7225 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7226 (cortexa7_extra_costs): Likewise.
7227 (cortexa12_extra_costs): Likewise.
7228 (cortexa15_extra_costs): Likewise.
7229 (v7m_extra_costs): Likewise.
7231 2014-02-12 Richard Biener <rguenther@suse.de>
7234 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7235 of posix_memalign being successful.
7236 (lower_stmt): Restrict lowering of posix_memalign to when
7237 -ftree-bit-ccp is enabled.
7239 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7241 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7243 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7245 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
7247 PR rtl-optimization/60116
7248 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7249 other_insn once the combination has been validated.
7251 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
7254 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7256 * ipa-devirt.c: Include demangle.h
7257 (odr_violation_reported): New static variable.
7258 (add_type_duplicate): Update odr_violations.
7259 (maybe_record_node): Add completep parameter; update it.
7260 (record_target_from_binfo): Add COMPLETEP parameter;
7261 update it as needed.
7262 (possible_polymorphic_call_targets_1): Likewise.
7263 (struct polymorphic_call_target_d): Add nonconstruction_targets;
7264 rename FINAL to COMPLETE.
7265 (record_targets_from_bases): Sanity check we found the binfo;
7266 fix COMPLETEP updating.
7267 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7268 parameter, fix computing of COMPLETEP.
7269 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7270 at LTO time do demangling.
7271 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7272 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7274 (gimple_get_virt_method_for_binfo): Likewise.
7275 * gimple-fold.h (gimple_get_virt_method_for_binfo,
7276 gimple_get_virt_method_for_vtable): Update prototypes.
7278 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
7281 * genautomata.c (add_presence_absence): Fix typo with
7282 {final_}presence_list.
7284 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7287 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7288 for VSX/Altivec vectors that land in GPR registers.
7290 2014-02-11 Richard Henderson <rth@redhat.com>
7291 Jakub Jelinek <jakub@redhat.com>
7294 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7295 around drhs if type conversion to lacc->type is not useless.
7297 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7299 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7301 (cortex-a57.cortex-a53): Likewise.
7302 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7304 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7306 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7309 2014-02-11 Renlin Li <Renlin.Li@arm.com>
7311 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7312 add_options_for_arm_vfp3.
7314 2014-02-11 Jeff Law <law@redhat.com>
7317 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7318 object with an undesirable mode.
7320 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7323 * config/i386/sol2-9.h: New file.
7324 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7325 *-*-solaris2.9*): Use it.
7327 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7329 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7330 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7332 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7334 * config/microblaze/microblaze.c: Extend mcpu version format
7336 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
7338 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7340 2014-02-10 Richard Henderson <rth@redhat.com>
7343 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7344 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7345 ms-abi vs -mno-accumulate-outgoing-args.
7346 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7347 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7350 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7353 * cfgexpand.c (expand_asm_operands): Attach source location to
7354 ASM_INPUT rtx objects.
7355 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7357 2014-02-10 Nick Clifton <nickc@redhat.com>
7359 * config/mn10300/mn10300.c (popcount): New function.
7360 (mn10300_expand_prologue): Include saved registers in stack usage
7363 2014-02-10 Jeff Law <law@redhat.com>
7366 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7367 when changing the SET_DEST of a prior insn to avoid an input reload.
7369 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7371 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7372 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7373 -mcall-openbsd, or -mcall-linux.
7374 (CC1_ENDIAN_BIG_SPEC): Remove.
7375 (CC1_ENDIAN_LITTLE_SPEC): Remove.
7376 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7377 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7378 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7379 and %cc1_endian_default.
7380 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7382 2014-02-10 Richard Biener <rguenther@suse.de>
7384 PR tree-optimization/60115
7385 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7386 MEM_REF handling. Properly verify that the accesses are not
7387 out of the objects bound.
7389 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7391 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7394 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
7396 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7397 proper constants and fix formatting.
7398 (possible_polymorphic_call_targets): Fix formatting.
7400 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
7401 Ilya Tocar <ilya.tocar@intel.com>
7403 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7404 (_mm512_loadu_epi32): Renamed into...
7405 (_mm512_loadu_si512): This.
7406 (_mm512_storeu_epi32): Renamed into...
7407 (_mm512_storeu_si512): This.
7408 (_mm512_maskz_ceil_ps): Removed.
7409 (_mm512_maskz_ceil_pd): Ditto.
7410 (_mm512_maskz_floor_ps): Ditto.
7411 (_mm512_maskz_floor_pd): Ditto.
7412 (_mm512_floor_round_ps): Ditto.
7413 (_mm512_floor_round_pd): Ditto.
7414 (_mm512_ceil_round_ps): Ditto.
7415 (_mm512_ceil_round_pd): Ditto.
7416 (_mm512_mask_floor_round_ps): Ditto.
7417 (_mm512_mask_floor_round_pd): Ditto.
7418 (_mm512_mask_ceil_round_ps): Ditto.
7419 (_mm512_mask_ceil_round_pd): Ditto.
7420 (_mm512_maskz_floor_round_ps): Ditto.
7421 (_mm512_maskz_floor_round_pd): Ditto.
7422 (_mm512_maskz_ceil_round_ps): Ditto.
7423 (_mm512_maskz_ceil_round_pd): Ditto.
7424 (_mm512_expand_pd): Ditto.
7425 (_mm512_expand_ps): Ditto.
7426 * config/i386/i386.c (ix86_builtins): Remove
7427 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7428 (bdesc_args): Ditto.
7429 * config/i386/predicates.md (const1256_operand): New.
7430 (const_1_to_2_operand): Ditto.
7431 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7432 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7433 (*avx512pf_gatherpf<mode>sf): Ditto.
7434 (avx512pf_gatherpf<mode>df): Ditto.
7435 (*avx512pf_gatherpf<mode>df_mask): Ditto.
7436 (*avx512pf_gatherpf<mode>df): Ditto.
7437 (avx512pf_scatterpf<mode>sf): Ditto.
7438 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7439 (*avx512pf_scatterpf<mode>sf): Ditto.
7440 (avx512pf_scatterpf<mode>df): Ditto.
7441 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7442 (*avx512pf_scatterpf<mode>df): Ditto.
7443 (avx512f_expand<mode>): Removed.
7444 (<shift_insn><mode>3<mask_name>): Change predicate type.
7446 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7448 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7449 not at the end of datarefs vector use ordered_remove to avoid
7450 reordering datarefs vector.
7453 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7454 mark local addressable non-static vars as GOVD_PRIVATE
7455 instead of GOVD_LOCAL.
7456 * omp-low.c (lower_omp_for): Move gimple_bind_vars
7457 and BLOCK_VARS of gimple_bind_block to new_stmt rather
7461 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7462 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7463 assume_aligned or alloc_align attributes.
7464 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7465 arguments. Handle also assume_aligned and alloc_align attributes.
7466 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
7467 calls to functions with assume_aligned or alloc_align attributes.
7468 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7470 2014-02-08 Terry Guo <terry.guo@arm.com>
7472 * doc/invoke.texi: Document ARM -march=armv7e-m.
7474 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7476 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7477 flag on __cilkrts_rethrow builtin.
7480 * ipa-cp.c (determine_versionability): Fail at -O0
7481 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7482 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7485 2014-02-04 Jakub Jelinek <jakub@redhat.com>
7488 * tree-inline.c (copy_forbidden): Fail for
7489 __attribute__((optimize (0))) functions.
7491 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7493 * varpool.c: Include pointer-set.h.
7494 (varpool_remove_unreferenced_decls): Variables in other partitions
7495 will not be output; be however careful to not lose information
7498 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7500 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
7501 lookup in the vtable constructor.
7503 2014-02-07 Jeff Law <law@redhat.com>
7506 * config/m68k/m68k.md (ashldi_extsi): Turn into a
7507 define_insn_and_split.
7509 * ipa-inline.c (inline_small_functions): Fix typos.
7511 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7513 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
7514 (s390_can_use_return_insn): Declare.
7515 * config/s390/s390.h (EPILOGUE_USES): Define.
7516 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
7518 (s390_chunkify_start): Handle return JUMP_LABELs.
7519 (s390_early_mach): Emit a main_pool instruction on the entry edge.
7520 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
7521 (s390_can_use_return_insn): New functions.
7522 (s390_fix_long_loop_prediction): Handle conditional returns.
7523 (TARGET_SET_UP_BY_PROLOGUE): Define.
7524 * config/s390/s390.md (ANY_RETURN): New code iterator.
7525 (*creturn, *csimple_return, return, simple_return): New patterns.
7527 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7529 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
7530 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
7531 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
7532 REG_CFA_RESTORE list when deciding not to restore a register.
7534 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7536 * config/s390/s390.c: Include tree-pass.h and context.h.
7537 (s390_early_mach): New function, split out from...
7538 (s390_emit_prologue): ...here.
7539 (pass_data_s390_early_mach): New pass structure.
7540 (pass_s390_early_mach): New class.
7541 (s390_option_override): Create and register early_mach pass.
7542 Move to end of file.
7544 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7546 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
7547 to match for the exit block.
7549 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7551 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
7552 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
7553 Reject misaligned operands.
7555 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7557 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
7559 2014-02-07 Richard Biener <rguenther@suse.de>
7562 * gimple-low.c (lower_builtin_posix_memalign): New function.
7563 (lower_stmt): Call it to lower posix_memalign in a way
7564 to make alignment info accessible.
7566 2014-02-07 Jakub Jelinek <jakub@redhat.com>
7569 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
7570 __builtin_setjmp_receiver.
7572 2014-02-07 Richard Biener <rguenther@suse.de>
7575 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
7576 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
7577 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7578 Handle BUILT_IN_POSIX_MEMALIGN.
7579 (find_func_clobbers): Likewise.
7580 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7581 (call_may_clobber_ref_p_1): Likewise.
7583 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7586 * ipa-devirt.c (record_target_from_binfo): Remove overactive
7589 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7592 * lto-cgraph.c (lto_output_node): Use
7593 symtab_get_symbol_partitioning_class.
7594 (lto_output_varpool_node): likewise.
7595 (symtab_get_symbol_partitioning_class): Move here from
7597 * cgraph.h (symbol_partitioning_class): Likewise.
7598 (symtab_get_symbol_partitioning_class): Declare.
7600 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7602 * ggc.h (ggc_internal_cleared_alloc): New macro.
7603 * vec.h (vec_safe_copy): Handle memory stats.
7604 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
7605 * target-globals.c (save_target_globals): Likewise.
7607 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7610 * expr.c (emit_move_resolve_push): Export; be bit more selective
7611 on when to clear alias set.
7612 * expr.h (emit_move_resolve_push): Declare.
7613 * function.h (struct function): Add tail_call_marked.
7614 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
7615 * config/i386/i386-protos.h (ix86_expand_push): Remove.
7616 * config/i386/i386.md (TImode move expander): De not call
7618 (FP push expanders): Preserve memory attributes.
7619 * config/i386/sse.md (push<mode>1): Remove.
7620 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
7621 (ix86_expand_push): Remove.
7622 * config/i386/mmx.md (push<mode>1): Remove.
7624 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7626 PR rtl-optimization/60030
7627 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
7628 lopart with paradoxical subreg before shifting it up by hprec.
7630 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7632 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
7633 Remove extra newline at end of file.
7634 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
7635 (arm_issue_rate): Handle cortexa57.
7636 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
7637 (cortex-a57.cortex-a53): Likewise.
7639 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7642 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
7643 don't record in REG_FRAME_RELATED_EXPR registers not set in that
7645 (arm_expand_prologue): Adjust all callers.
7646 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
7647 info, registers also at the lowest numbered registers side. Use
7648 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
7652 * var-tracking.c (adjust_mems): Before adding a SET to
7653 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
7655 2014-02-06 Alan Modra <amodra@gmail.com>
7658 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
7659 change SDmode to DDmode when lra_in_progress.
7661 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7664 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
7665 free_data_ref on the dr first, and before goto again also set dr
7666 to the next dr. For simd_lane_access, free old datarefs[i] before
7667 overwriting it. For get_vectype_for_scalar_type failure, don't
7668 free_data_ref if simd_lane_access.
7670 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
7673 * tree.h (opts_for_fn): New inline function.
7674 (opt_for_fn): Define.
7675 * config/i386/i386.c (ix86_function_regparm): Use
7676 opt_for_fn (decl, optimize) instead of optimize.
7678 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
7680 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
7681 for SYMBOL_REF in large memory model.
7683 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7685 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
7687 (cortex-a57): Likewise.
7688 (cortex-a57.cortex-a53): Likewise.
7690 2014-02-06 Yury Gribov <y.gribov@samsung.com>
7691 Kugan Vivekanandarajah <kuganv@linaro.org>
7693 * config/arm/arm.c (arm_vector_alignment_reachable): Check
7695 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
7697 2014-02-06 Richard Biener <rguenther@suse.de>
7699 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
7700 set_loop_copy and initialize_original_copy_tables.
7702 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
7704 * config/aarch64/aarch64-simd.md
7705 (aarch64_ashr_simddi): Change QI to SI.
7707 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
7708 Jakub Jelinek <jakub@redhat.com>
7711 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
7714 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7716 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
7717 CODE_FOR_altivec_vpku[hw]um to
7718 CODE_FOR_altivec_vpku[hw]um_direct.
7719 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
7720 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
7721 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
7722 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
7724 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7726 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
7727 generation for -maltivec=be.
7728 (altivec_vsumsws): Simplify redundant test.
7730 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7732 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
7733 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
7734 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
7735 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
7736 gen_altivec_vpkuwum.
7737 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
7739 (altivec_vpks<VI_char>ss): Likewise.
7740 (altivec_vpks<VI_char>us): Likewise.
7741 (altivec_vpku<VI_char>us): Likewise.
7742 (altivec_vpku<VI_char>um): Likewise.
7743 (altivec_vpku<VI_char>um_direct): New (copy of
7744 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
7746 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
7747 target is little endian and -maltivec=be is not specified.
7748 (*altivec_vupkhs<VU_char>_direct): New (copy of
7749 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
7750 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
7751 target is little endian and -maltivec=be is not specified.
7752 (*altivec_vupkls<VU_char>_direct): New (copy of
7753 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
7754 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
7755 little endian and -maltivec=be is not specified.
7756 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
7757 little endian and -maltivec=be is not specified.
7759 2014-02-05 Richard Henderson <rth@redhat.com>
7762 * combine-stack-adj.c: Revert r206943.
7763 * sched-int.h (struct deps_desc): Add last_args_size.
7764 * sched-deps.c (init_deps): Initialize it.
7765 (sched_analyze_insn): Add OUTPUT dependencies between insns that
7766 contain REG_ARGS_SIZE notes.
7768 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
7770 * lto-cgraph.c (asm_nodes_output): Make global.
7771 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
7772 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
7773 (driver_handle_option): Handle OPT_fwpa.
7775 2014-02-05 Jakub Jelinek <jakub@redhat.com>
7778 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
7779 a comment typo and formatting issue. If odr_hash hasn't been
7780 created, return vNULL and set *completep to false.
7783 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
7784 bb with no successors.
7786 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
7789 * doc/invoke.texi (-march): Clarify documentation for ARM.
7793 2014-02-05 Richard Biener <rguenther@suse.de>
7795 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
7796 when not vectorizing because of too many alias checks.
7797 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7798 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
7800 2014-02-05 Nick Clifton <nickc@redhat.com>
7802 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
7803 accept extended registers in any mode when compiling for the MN10300.
7805 2014-02-05 Yury Gribov <y.gribov@samsung.com>
7807 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
7808 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
7809 sanitization attributes.
7810 (can_inline_edge_p): Likewise.
7811 (sanitize_attrs_match_for_inline_p): New function.
7813 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7815 * ipa-prop.c (detect_type_change): Shor circuit testing of
7816 type changes on THIS pointer.
7818 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
7821 * config/pa/pa.c (legitimize_tls_address): Return original address
7822 if not passed a SYMBOL_REF rtx.
7823 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
7825 (pa_emit_move_sequence): Simplify TLS source operands.
7826 (pa_legitimate_constant_p): Reject all TLS constants.
7827 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
7828 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
7830 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7832 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
7833 groups when we know they are controlled by LTO.
7834 * varasm.c (default_binds_local_p_1): If object is in other partition,
7835 it will be resolved locally.
7837 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7839 * config/host-linux.c (linux_gt_pch_use_address): Don't
7840 use SSIZE_MAX because it is not always defined.
7842 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
7845 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
7846 threshold for pseudo splitting.
7847 (update_ebb_live_info): Process call argument hard registers and
7848 hard registers from insn definition too.
7849 (max_small_class_regs_num): New constant.
7850 (inherit_in_ebb): Update live hard regs through EBBs. Update
7851 reloads_num only for small register classes. Don't split for
7854 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
7857 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
7860 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7862 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
7865 2014-02-04 Marek Polacek <polacek@redhat.com>
7867 * gdbinit.in (pel): Define.
7869 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7871 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
7874 2014-02-04 Richard Biener <rguenther@suse.de>
7877 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
7878 in function context local.
7879 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
7880 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
7881 similar to LTO_imported_decl_ref.
7883 2014-02-04 Jakub Jelinek <jakub@redhat.com>
7885 PR tree-optimization/60002
7886 * cgraphclones.c (build_function_decl_skip_args): Clear
7889 PR tree-optimization/60023
7890 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
7891 false to gsi_replace.
7892 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
7893 has been in some EH region and vec_stmt could throw, add
7894 vec_stmt into the same EH region.
7895 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
7896 has no lhs, ignore it.
7897 * internal-fn.c (expand_MASK_LOAD): Likewise.
7900 * tree-inline.c (copy_forbidden): Fail for
7901 __attribute__((optimize (0))) functions.
7904 * omp-low.c (simd_clone_struct_copy): If from->inbranch
7905 is set, copy one less argument.
7906 (expand_simd_clones): Don't subtract clone_info->inbranch
7907 from simd_clone_struct_alloc argument.
7909 PR rtl-optimization/57915
7910 * recog.c (simplify_while_replacing): If all unary/binary/relational
7911 operation arguments are constant, attempt to simplify those.
7914 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
7915 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
7917 2014-02-04 Richard Biener <rguenther@suse.de>
7919 PR tree-optimization/60012
7920 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
7921 TBAA disambiguation to all DDRs.
7923 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7926 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
7927 (LINK_SPEC): Use it for -shared, -shared-libgcc.
7929 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7932 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
7934 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7936 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
7937 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
7939 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7942 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
7943 to figure out targets of polymorphic calls with known decl.
7944 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7945 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
7946 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
7947 (get_polymorphic_call_info): ... here.
7948 (get_polymorphic_call_info_from_invariant): New function.
7950 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7952 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
7953 lookup via vtable pointer; check for type consistency
7954 and turn inconsitent facts into UNREACHABLE.
7955 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7956 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
7957 type inconsistent querries; return UNREACHABLE instead.
7959 2014-02-03 Richard Henderson <rth@twiddle.net>
7962 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
7963 already processed this node.
7964 (normalize_one_pred_1): Pass along mark_set.
7965 (normalize_one_pred): Create and destroy a pointer_set_t.
7966 (normalize_one_pred_chain): Likewise.
7968 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
7970 PR gcov-profile/58602
7971 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
7973 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7976 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
7977 -fno-devirtualize; try to devirtualize by the knowledge of
7978 virtual table pointer given by aggregate propagation.
7979 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7980 (ipa_print_node_jump_functions): Dump also offset that
7981 is relevant for polymorphic calls.
7982 (determine_known_aggregate_parts): Add arg_type parameter; use it
7983 instead of determining the type from pointer type.
7984 (ipa_compute_jump_functions_for_edge): Update call of
7985 determine_known_aggregate_parts.
7986 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
7987 (gimple_get_virt_method_for_binfo): ... here; simplify using
7988 vtable_pointer_value_to_vtable.
7989 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
7990 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
7991 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
7992 (vtable_pointer_value_to_vtable): Break out from ...; handle also
7994 (vtable_pointer_value_to_binfo): ... here.
7995 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
7997 2014-02-03 Teresa Johnson <tejohnson@google.com>
7999 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
8000 redef of outer loop index variable.
8002 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
8006 * doc/extend.texi (Function Attributes): Typo.
8008 2014-02-03 Cong Hou <congh@google.com>
8010 PR tree-optimization/60000
8011 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
8012 if the vectorized statement is a store. A store statement can only
8013 appear at the end of pattern statements.
8015 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
8017 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
8018 (ix86_option_override_internal): Default long double to 64-bit for
8019 32-bit Bionic and to 128-bit for 64-bit Bionic.
8021 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
8022 TARGET_LONG_DOUBLE_128 is true.
8023 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
8025 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
8026 (mlong-double-64): Negate -mlong-double-128.
8027 (mlong-double-128): New option.
8029 * config/i386/i386-c.c (ix86_target_macros): Define
8030 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
8032 * doc/invoke.texi: Document -mlong-double-128.
8034 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
8036 PR rtl-optimization/60024
8037 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
8039 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
8041 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
8043 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
8045 PR rtl-optimization/57662
8046 * sel-sched.c (code_motion_path_driver): Do not mark already not
8047 existing blocks in the visiting bitmap.
8049 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
8051 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
8052 on the insn being emitted.
8054 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
8055 Will Deacon <will.deacon@arm.com>
8057 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
8059 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8061 * config/arm/arm-tables.opt: Regenerate.
8063 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8065 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
8066 for vector types other than V16QImode.
8067 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
8068 define_expand, and call altivec_expand_vec_perm_le when producing
8069 code with little endian element order.
8070 (*altivec_vperm_<mode>_internal): New insn having previous
8071 behavior of altivec_vperm_<mode>.
8072 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
8073 altivec_expand_vec_perm_le when producing code with little endian
8075 (*altivec_vperm_<mode>_uns_internal): New insn having previous
8076 behavior of altivec_vperm_<mode>_uns.
8078 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8080 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
8081 (altivec_vsumsws): Add handling for -maltivec=be with a little
8083 (altivec_vsumsws_direct): New.
8084 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
8085 gen_altivec_vsumsws.
8087 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
8089 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
8090 vtable_pointer_value_to_binfo): New functions.
8091 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
8092 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
8094 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
8096 * config/nios2/nios2.md (load_got_register): Initialize GOT
8097 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
8098 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
8100 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
8102 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
8103 preserverd by passthrough, do not propagate the type.
8105 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8107 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
8108 (mips_atomic_assign_expand_fenv): New function.
8109 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
8111 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8113 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
8114 (__builtin_mips_set_fcsr): Likewise.
8115 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
8116 MIPS_USI_FTYPE_VOID.
8117 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
8118 (mips16_expand_set_fcsr): Likewise.
8119 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
8120 (mips16_set_fcsr_stub): Likewise.
8121 (mips16_get_fcsr_one_only_stub): New class.
8122 (mips16_set_fcsr_one_only_stub): Likewise.
8123 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
8124 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
8125 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
8126 (hard_float): New availability predicate.
8127 (mips_builtins): Add get_fcsr and set_fcsr.
8128 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
8129 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
8130 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
8131 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
8132 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
8135 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8137 * config/mips/mips.c (mips_one_only_stub): New class.
8138 (mips_need_mips16_rdhwr_p): Replace with...
8139 (mips16_rdhwr_stub): ...this new variable.
8140 (mips16_stub_call_address): New function.
8141 (mips16_rdhwr_one_only_stub): New class.
8142 (mips_expand_thread_pointer): Use mips16_stub_call_address.
8143 (mips_output_mips16_rdhwr): Delete.
8144 (mips_finish_stub): New function.
8145 (mips_code_end): Use it to handle rdhwr stubs.
8147 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
8150 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
8151 when calculating size of integer atomic types.
8153 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
8155 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
8157 2014-02-01 Jakub Jelinek <jakub@redhat.com>
8159 PR tree-optimization/60003
8160 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
8161 * profile.c (branch_prob): Use gimple_call_builtin_p
8162 to check for BUILT_IN_SETJMP_RECEIVER.
8163 * tree-inline.c (copy_bb): Call notice_special_calls.
8165 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
8168 * lra-constraints.c (process_alt_operands): Update reload_sum only
8171 2014-01-31 Richard Henderson <rth@redhat.com>
8174 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
8175 until after else_eh is processed.
8177 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
8179 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
8180 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
8181 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
8182 in smmintrin.h, remove them.
8183 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
8184 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
8185 * config/i386/i386.md (ROUND_SAE): Fix value.
8186 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
8187 (const48_operand): New.
8188 * config/i386/subst.md (round), (round_expand): Use
8189 const_4_or_8_to_11_operand.
8190 (round_saeonly), (round_saeonly_expand): Use const48_operand.
8192 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
8194 * config/i386/constraints.md (Yk): Swap meaning with k.
8195 * config/i386/i386.md (movhi_internal): Change Yk to k.
8196 (movqi_internal): Ditto.
8197 (*k<logic><mode>): Ditto.
8200 (kandn<mode>): Ditto.
8201 (*<code>hi_1): Ditto.
8202 (*<code>qi_1): Ditto.
8203 (kxnor<mode>): Ditto.
8204 (kortestzhi): Ditto.
8205 (kortestchi): Ditto.
8207 (*one_cmplhi2_1): Ditto.
8208 (*one_cmplqi2_1): Ditto.
8209 * config/i386/sse.md (): Change k to Yk.
8210 (avx512f_load<mode>_mask): Ditto.
8211 (avx512f_blendm<mode>): Ditto.
8212 (avx512f_store<mode>_mask): Ditto.
8213 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8214 (avx512f_storedqu<mode>_mask): Ditto.
8215 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
8217 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
8218 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
8219 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
8220 (avx512f_maskcmp<mode>3): Ditto.
8221 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
8222 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
8223 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8224 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8225 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8226 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8227 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8228 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8229 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8230 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8231 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8232 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8233 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8234 (vec_extract_lo_<mode>_maskm): Ditto.
8235 (vec_extract_hi_<mode>_maskm): Ditto.
8236 (avx512f_vternlog<mode>_mask): Ditto.
8237 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8238 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8239 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8240 (avx512f_<code>v8div16qi2_mask): Ditto.
8241 (avx512f_<code>v8div16qi2_mask_store): Ditto.
8242 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8243 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8244 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8245 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8246 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8247 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8248 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8249 (*avx512pf_scatterpf<mode>df_mask): Ditto.
8250 (avx512cd_maskb_vec_dupv8di): Ditto.
8251 (avx512cd_maskw_vec_dupv16si): Ditto.
8252 (avx512f_vpermi2var<mode>3_maskz): Ditto.
8253 (avx512f_vpermi2var<mode>3_mask): Ditto.
8254 (avx512f_vpermi2var<mode>3_mask): Ditto.
8255 (avx512f_vpermt2var<mode>3_maskz): Ditto.
8256 (*avx512f_gathersi<mode>): Ditto.
8257 (*avx512f_gathersi<mode>_2): Ditto.
8258 (*avx512f_gatherdi<mode>): Ditto.
8259 (*avx512f_gatherdi<mode>_2): Ditto.
8260 (*avx512f_scattersi<mode>): Ditto.
8261 (*avx512f_scatterdi<mode>): Ditto.
8262 (avx512f_compress<mode>_mask): Ditto.
8263 (avx512f_compressstore<mode>_mask): Ditto.
8264 (avx512f_expand<mode>_mask): Ditto.
8265 * config/i386/subst.md (mask): Change k to Yk.
8266 (mask_scalar_merge): Ditto.
8269 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
8271 * doc/extend.texi (Vector Extensions): Document ?: in C++.
8273 2014-01-31 Richard Biener <rguenther@suse.de>
8276 * builtins.c (fold_builtin_memory_op): Make sure to not
8277 use a floating-point mode or a boolean or enumeral type for
8280 2014-01-30 DJ Delorie <dj@redhat.com>
8282 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8283 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8284 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8285 whenever main() has an epilogue.
8287 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8289 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8290 unused variable "field".
8291 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8292 (vsx_mergeh_<mode>): Likewise.
8293 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8294 (altivec_vmrghh): Likewise.
8295 (altivec_vmrghw): Likewise.
8296 (altivec_vmrglb): Likewise.
8297 (altivec_vmrglh): Likewise.
8298 (altivec_vmrglw): Likewise.
8299 (altivec_vspltb): Add missing uses.
8300 (altivec_vsplth): Likewise.
8301 (altivec_vspltw): Likewise.
8302 (altivec_vspltsf): Likewise.
8304 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8307 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8308 frame related instructions.
8310 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
8312 PR rtl-optimization/59959
8313 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8314 any reload of register whose subreg is invalid.
8316 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8318 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8319 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8320 Add missing return type - void.
8322 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8324 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8325 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8326 remove element index adjustment for endian (now handled in vsx.md
8328 (altivec_expand_vec_perm_const): Use
8329 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8330 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8331 (vsx_xxspltw_<mode>): Adjust element index for little endian.
8332 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8333 define_expand and a new define_insn *altivec_vspltb_internal;
8334 adjust for -maltivec=be on a little endian target.
8335 (altivec_vspltb_direct): New.
8336 (altivec_vsplth): Divide into a define_expand and a new
8337 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8338 little endian target.
8339 (altivec_vsplth_direct): New.
8340 (altivec_vspltw): Divide into a define_expand and a new
8341 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8342 little endian target.
8343 (altivec_vspltw_direct): New.
8344 (altivec_vspltsf): Divide into a define_expand and a new
8345 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8346 a little endian target.
8348 2014-01-30 Richard Biener <rguenther@suse.de>
8350 PR tree-optimization/59993
8351 * tree-ssa-forwprop.c (associate_pointerplus): Check we
8352 can propagate form the earlier stmt and avoid the transform
8353 when the intermediate result is needed.
8355 2014-01-30 Alangi Derick <alangiderick@gmail.com>
8357 * README.Portability: Fix typo.
8359 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
8361 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8362 comparison_operator with ordered_comparison_operator.
8364 2014-01-30 Nick Clifton <nickc@redhat.com>
8366 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8367 Rename to mn10300_store_multiple_regs.
8368 * config/mn10300/mn10300.c: Likewise.
8369 * config/mn10300/mn10300.md (store_movm): Fix typo: call
8370 store_multiple_regs.
8371 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8372 Call mn10300_store_multiple_regs.
8374 2014-01-30 Nick Clifton <nickc@redhat.com>
8375 DJ Delorie <dj@redhat.com>
8377 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8378 %fp 2 to keep registers after it properly word-aligned.
8379 (rl78_alloc_physical_registers_umul): Handle the case where both
8380 input operands are the same.
8382 2014-01-30 Richard Biener <rguenther@suse.de>
8384 PR tree-optimization/59903
8385 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8388 2014-01-30 Jason Merrill <jason@redhat.com>
8391 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8394 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8396 2014-01-30 Richard Biener <rguenther@suse.de>
8398 PR tree-optimization/59951
8399 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8401 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
8404 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8405 SFmode to DFmode case.
8407 2014-01-29 DJ Delorie <dj@redhat.com>
8409 * config/msp430/msp430.opt (-minrt): New.
8410 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8412 (ENDFILE_SPEC): Likewise.
8414 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
8416 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8417 (estimate_function_body_sizes): Use it.
8419 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
8422 * dwarf2out.c (is_cxx_auto): New.
8423 (is_base_type): Use it.
8424 (gen_type_die_with_usage): Likewise.
8426 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8428 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
8429 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8430 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8431 -maltivec=be with LE targets.
8432 (vsx_mergeh_<mode>): Likewise.
8433 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8434 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8435 (altivec_vmrghb): Replace with define_expand and new
8436 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8437 (altivec_vmrghb_direct): New define_insn.
8438 (altivec_vmrghh): Replace with define_expand and new
8439 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8440 (altivec_vmrghh_direct): New define_insn.
8441 (altivec_vmrghw): Replace with define_expand and new
8442 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8443 (altivec_vmrghw_direct): New define_insn.
8444 (*altivec_vmrghsf): Adjust for endianness.
8445 (altivec_vmrglb): Replace with define_expand and new
8446 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8447 (altivec_vmrglb_direct): New define_insn.
8448 (altivec_vmrglh): Replace with define_expand and new
8449 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8450 (altivec_vmrglh_direct): New define_insn.
8451 (altivec_vmrglw): Replace with define_expand and new
8452 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8453 (altivec_vmrglw_direct): New define_insn.
8454 (*altivec_vmrglsf): Adjust for endianness.
8455 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8456 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8457 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8458 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8459 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8460 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8461 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8462 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8464 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
8466 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8467 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8470 2014-01-29 Richard Biener <rguenther@suse.de>
8472 PR tree-optimization/58742
8473 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8474 associate_pointerplus_align.
8475 (associate_pointerplus_diff): New function.
8476 (associate_pointerplus): Likewise. Call associate_pointerplus_align
8477 and associate_pointerplus_diff.
8479 2014-01-29 Richard Biener <rguenther@suse.de>
8481 * lto-streamer.h (LTO_major_version): Bump to 3.
8482 (LTO_minor_version): Reset to 0.
8484 2014-01-29 Renlin Li <Renlin.Li@arm.com>
8486 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8487 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8488 (arm_file_start): Generate correct asm header for armv7ve.
8489 * config/arm/bpabi.h: Add multilib support for armv7ve.
8490 * config/arm/driver-arm.c: Change the architectures of cortex-a7
8491 and cortex-a15 to armv7ve.
8492 * config/arm/t-aprofile: Add multilib support for armv7ve.
8493 * doc/invoke.texi: Document -march=armv7ve.
8495 2014-01-29 Richard Biener <rguenther@suse.de>
8497 PR tree-optimization/58742
8498 * tree-ssa-forwprop.c (associate_plusminus): Return true
8499 if we changed sth, defer EH cleanup to ...
8500 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
8501 (simplify_mult): New function.
8503 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8506 PR tree-optimization/59920
8507 * tree.c (build_common_builtin_nodes): Remove
8508 __builtin_setjmp_dispatcher initialization.
8509 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
8510 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
8511 instead of gsi_after_labels + manually skipping debug stmts.
8512 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
8513 ignore bbs with IFN_ABNORMAL_DISPATCHER.
8514 * tree-inline.c (copy_edges_for_bb): Remove
8515 can_make_abnormal_goto argument, instead add abnormal_goto_dest
8516 argument. Ignore computed_goto_p stmts. Don't call
8517 make_abnormal_goto_edges. If a call might need abnormal edges
8518 for non-local gotos, see if it already has an edge to
8519 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
8520 with true argument, don't do anything then, otherwise add
8521 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
8522 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
8524 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
8525 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
8526 (lower_stmt): Don't set data->calls_builtin_setjmp.
8527 (lower_builtin_setjmp): Adjust comment.
8528 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
8529 * tree-cfg.c (found_computed_goto): Remove.
8530 (factor_computed_gotos): Remove.
8531 (make_goto_expr_edges): Return bool, true for computed gotos.
8532 Don't call make_abnormal_goto_edges.
8533 (build_gimple_cfg): Don't set found_computed_goto, don't call
8534 factor_computed_gotos.
8535 (computed_goto_p): No longer static.
8536 (make_blocks): Don't set found_computed_goto.
8537 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
8538 (make_edges): If make_goto_expr_edges returns true, push bb
8539 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
8540 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
8541 vector. Record mapping between bbs and OpenMP regions if there
8542 are any, adjust make_gimple_omp_edges caller. Call
8543 handle_abnormal_edges.
8544 (make_abnormal_goto_edges): Remove.
8545 * tree-cfg.h (make_abnormal_goto_edges): Remove.
8546 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
8547 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
8548 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
8549 * internal-fn.def (ABNORMAL_DISPATCHER): New.
8550 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
8551 filling *region also set *region_idx to (*region)->entry->index.
8554 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
8555 For REGs set ORIGINAL_REGNO.
8557 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
8559 * doc/md.texi: Mention that a target shouldn't implement
8560 vec_widen_(s|u)mul_even/odd pair if it is less efficient
8563 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8565 PR tree-optimization/59594
8566 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
8567 a copy of the datarefs vector rather than the vector itself.
8569 2014-01-28 Jason Merrill <jason@redhat.com>
8572 * dwarf2out.c (auto_die): New static.
8573 (gen_type_die_with_usage): Handle C++1y 'auto'.
8574 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
8577 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
8580 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
8581 (SPEC_X32): Likewise.
8582 (SPEC_64): Likewise.
8583 * config/i386/i386.c (ix86_option_override_internal): Turn off
8584 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
8586 (x86_file_start): Output .code16gcc for TARGET_16BIT.
8587 * config/i386/i386.h (TARGET_16BIT): New macro.
8588 (TARGET_16BIT_P): Likewise.
8589 * config/i386/i386.opt: Add m16.
8590 * doc/invoke.texi: Document -m16.
8592 2014-01-28 Jakub Jelinek <jakub@redhat.com>
8594 PR preprocessor/59935
8595 * input.c (location_get_source_line): Bail out on when line number
8596 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
8598 2014-01-28 Richard Biener <rguenther@suse.de>
8600 PR tree-optimization/58742
8601 * tree-ssa-forwprop.c (associate_plusminus): Handle
8602 pointer subtraction of the form (T)(P + A) - (T)P.
8604 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8606 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
8609 2014-01-28 Richard Biener <rguenther@suse.de>
8612 2014-01-28 Richard Biener <rguenther@suse.de>
8614 PR rtl-optimization/45364
8615 PR rtl-optimization/59890
8616 * var-tracking.c (local_get_addr_clear_given_value): Handle
8617 already cleared slot.
8618 (val_reset): Handle not allocated local_get_addr_cache.
8619 (vt_find_locations): Use post-order on the inverted CFG.
8621 2014-01-28 Richard Biener <rguenther@suse.de>
8623 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
8625 2014-01-28 Richard Biener <rguenther@suse.de>
8627 PR rtl-optimization/45364
8628 PR rtl-optimization/59890
8629 * var-tracking.c (local_get_addr_clear_given_value): Handle
8630 already cleared slot.
8631 (val_reset): Handle not allocated local_get_addr_cache.
8632 (vt_find_locations): Use post-order on the inverted CFG.
8634 2014-01-28 Alan Modra <amodra@gmail.com>
8636 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
8637 * configure.ac <recursive call for build != host>: Define
8638 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
8639 and LD_FOR_BUILD too.
8640 * configure: Regenerate.
8642 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
8644 * config/i386/i386.c (get_builtin_code_for_version): Separate
8645 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
8646 Broadwell from Haswell.
8648 2014-01-27 Steve Ellcey <sellcey@mips.com>
8650 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
8651 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
8652 * config/mips/mips.c (mips_option_override): Change setting
8654 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
8655 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
8656 Change from Mask to Var.
8658 2014-01-27 Jeff Law <law@redhat.com>
8660 * ipa-inline.c (inline_small_functions): Fix typo.
8662 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
8664 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
8665 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
8666 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
8667 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
8668 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
8669 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
8670 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
8671 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
8672 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
8673 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
8674 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
8675 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
8676 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
8677 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
8678 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
8679 (_mm512_storeu_epi64): Ditto.
8680 (_mm512_cmpge_epi32_mask): Ditto.
8681 (_mm512_cmpge_epu32_mask): Ditto.
8682 (_mm512_cmpge_epi64_mask): Ditto.
8683 (_mm512_cmpge_epu64_mask): Ditto.
8684 (_mm512_cmple_epi32_mask): Ditto.
8685 (_mm512_cmple_epu32_mask): Ditto.
8686 (_mm512_cmple_epi64_mask): Ditto.
8687 (_mm512_cmple_epu64_mask): Ditto.
8688 (_mm512_cmplt_epi32_mask): Ditto.
8689 (_mm512_cmplt_epu32_mask): Ditto.
8690 (_mm512_cmplt_epi64_mask): Ditto.
8691 (_mm512_cmplt_epu64_mask): Ditto.
8692 (_mm512_cmpneq_epi32_mask): Ditto.
8693 (_mm512_cmpneq_epu32_mask): Ditto.
8694 (_mm512_cmpneq_epi64_mask): Ditto.
8695 (_mm512_cmpneq_epu64_mask): Ditto.
8696 (_mm512_expand_pd): Ditto.
8697 (_mm512_expand_ps): Ditto.
8698 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
8699 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
8700 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
8701 * config/i386/i386.c (ix86_builtins): Add
8702 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
8703 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
8704 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
8705 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
8706 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
8707 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
8708 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
8709 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
8710 IX86_BUILTIN_PMOVUSQW512_MEM.
8711 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
8712 __builtin_ia32_pmovsqd512mem_mask,
8713 __builtin_ia32_pmovqd512mem_mask,
8714 __builtin_ia32_pmovusqw512mem_mask,
8715 __builtin_ia32_pmovsqw512mem_mask,
8716 __builtin_ia32_pmovqw512mem_mask,
8717 __builtin_ia32_pmovusdw512mem_mask,
8718 __builtin_ia32_pmovsdw512mem_mask,
8719 __builtin_ia32_pmovdw512mem_mask,
8720 __builtin_ia32_pmovqb512mem_mask,
8721 __builtin_ia32_pmovusqb512mem_mask,
8722 __builtin_ia32_pmovsqb512mem_mask,
8723 __builtin_ia32_pmovusdb512mem_mask,
8724 __builtin_ia32_pmovsdb512mem_mask,
8725 __builtin_ia32_pmovdb512mem_mask.
8726 (bdesc_args): Add __builtin_ia32_expanddf512,
8727 __builtin_ia32_expandsf512.
8728 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
8729 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
8730 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
8731 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
8732 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
8733 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
8734 (avx512f_<code>v8div16qi2_mask_store): This.
8735 (avx512f_expand<mode>): New.
8737 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
8739 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
8741 (_mm512_mask_prefetch_i64gather_pd): Ditto.
8742 (_mm512_prefetch_i32scatter_pd): Ditto.
8743 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
8744 (_mm512_prefetch_i64scatter_pd): Ditto.
8745 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
8746 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
8747 (_mm512_mask_prefetch_i64gather_ps): Ditto.
8748 (_mm512_prefetch_i32scatter_ps): Ditto.
8749 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
8750 (_mm512_prefetch_i64scatter_ps): Ditto.
8751 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
8752 * config/i386/i386-builtin-types.def: Define
8753 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
8754 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
8755 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
8756 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
8757 IX86_BUILTIN_SCATTERPFQPD.
8758 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
8759 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
8760 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
8761 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
8762 __builtin_ia32_scatterpfqps.
8763 (ix86_expand_builtin): Expand new built-ins.
8764 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
8765 fix memory access data type.
8766 (*avx512pf_gatherpf<mode>_mask): Ditto.
8767 (*avx512pf_gatherpf<mode>): Ditto.
8768 (avx512pf_scatterpf<mode>): Ditto.
8769 (*avx512pf_scatterpf<mode>_mask): Ditto.
8770 (*avx512pf_scatterpf<mode>): Ditto.
8771 (GATHER_SCATTER_SF_MEM_MODE): New.
8772 (avx512pf_gatherpf<mode>df): Ditto.
8773 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8774 (*avx512pf_scatterpf<mode>df): Ditto.
8776 2014-01-27 Jakub Jelinek <jakub@redhat.com>
8779 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
8780 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
8783 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
8785 * common/config/arm/arm-common.c
8786 (arm_rewrite_mcpu): Handle multiple names.
8788 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8790 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
8792 * gimple-builder.h (create_gimple_tmp): Delete.
8794 2014-01-27 Christian Bruel <christian.bruel@st.com>
8796 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
8799 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
8801 * config/pa/pa.md (call): Generate indirect long calls to non-local
8802 functions when outputing 32-bit code.
8803 (call_value): Likewise except for special call to buggy powf function.
8805 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
8806 portable runtime and PIC indirect calls.
8807 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
8808 and PIC call sequences. Use ldo instead of blr to set return register
8809 in PIC call sequence.
8811 2014-01-25 Walter Lee <walt@tilera.com>
8813 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
8814 avoid clobbering a live register.
8816 2014-01-25 Walter Lee <walt@tilera.com>
8818 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
8819 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
8820 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
8821 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
8823 2014-01-25 Walter Lee <walt@tilera.com>
8825 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
8826 arguments on even registers.
8827 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
8829 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
8830 (BIGGEST_ALIGNMENT): Ditto.
8831 (BIGGEST_FIELD_ALIGNMENT): Ditto.
8833 2014-01-25 Walter Lee <walt@tilera.com>
8835 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
8836 insns before bundling.
8837 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
8839 2014-01-25 Walter Lee <walt@tilera.com>
8841 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
8842 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
8843 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
8845 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
8847 * config/mips/constraints.md (kl): Delete.
8848 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
8849 define expands, using...
8850 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
8851 instructions for MIPS16.
8852 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
8853 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
8855 2014-01-25 Walter Lee <walt@tilera.com>
8857 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
8861 2014-01-25 Walter Lee <walt@tilera.com>
8863 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
8864 (TARGET_EXPAND_TO_RTL_HOOK): Define.
8866 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
8868 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
8871 2014-01-25 Jakub Jelinek <jakub@redhat.com>
8873 * print-rtl.c (in_call_function_usage): New var.
8874 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
8875 EXPR_LIST mode as mode and not as reg note name.
8878 * cfgloopmanip.c (copy_loop_info): If
8879 loop->warned_aggressive_loop_optimizations, make sure
8880 the flag is set in target loop too.
8882 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
8884 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
8886 * builtins.def: Likewise.
8887 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
8888 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
8889 * ira.c (ira_setup_eliminable_regset): Likewise.
8890 * omp-low.c (gate_expand_omp): Likewise.
8891 (execute_lower_omp): Likewise.
8892 (diagnose_sb_0): Likewise.
8893 (gate_diagnose_omp_blocks): Likewise.
8894 (simd_clone_clauses_extract): Likewise.
8897 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8899 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
8900 correction for little endian...
8901 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
8904 2014-01-24 Jeff Law <law@redhat.com>
8906 PR tree-optimization/59919
8907 * tree-vrp.c (find_assert_locations_1): Do not register asserts
8908 for non-returning calls.
8910 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
8912 * common/config/aarch64/aarch64-common.c
8913 (aarch64_rewrite_mcpu): Handle multiple names.
8914 * config/aarch64/aarch64.h
8915 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8917 2014-01-24 Dodji Seketeli <dodji@redhat.com>
8919 * input.c (add_file_to_cache_tab): Handle the case where fopen
8922 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
8925 * config/i386/i386.md (pushsf splitter): Get stack adjustment
8926 from push operand if code of push isn't PRE_DEC.
8928 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8931 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8932 -mquad-memory-atomic. Update -mquad-memory documentation to say
8933 it is only used for non-atomic loads/stores.
8935 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
8936 -mquad-memory or -mquad-memory-atomic switches.
8938 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
8939 -mquad-memory-atomic to ISA 2.07 support.
8941 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
8942 to separate support of normal quad word memory operations (ldq, stq)
8943 from the atomic quad word memory operations.
8945 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8946 support to separate non-atomic quad word operations from atomic
8947 quad word operations. Disable non-atomic quad word operations in
8948 little endian mode so that we don't have to swap words after the
8949 load and before the store.
8950 (quad_load_store_p): Add comment about atomic quad word support.
8951 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
8952 options printed with -mdebug=reg.
8954 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
8955 -mquad-memory-atomic as the test for whether we have quad word
8956 atomic instructions.
8957 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
8958 or -mp8-vector are used, allow byte/half-word atomic operations.
8960 * config/rs6000/sync.md (load_lockedti): Insure that the address
8961 is a proper indexed or indirect address for the lqarx instruction.
8962 On little endian systems, swap the hi/lo registers after the lqarx
8964 (load_lockedpti): Use indexed_or_indirect_operand predicate to
8965 insure the address is valid for the lqarx instruction.
8966 (store_conditionalti): Insure that the address is a proper indexed
8967 or indirect address for the stqcrx. instruction. On little endian
8968 systems, swap the hi/lo registers before doing the stqcrx.
8970 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
8971 insure the address is valid for the stqcrx. instruction.
8973 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
8974 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
8975 type of quad memory support is available.
8977 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
8980 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
8981 there is a danger of looping.
8983 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
8985 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8986 force flag_ira_loop_pressure if set via command line.
8988 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
8990 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
8991 (ashr_simd): New builtin handling DI mode.
8992 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
8993 (aarch64_sshr_simddi): New match pattern.
8994 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
8995 (vshrd_n_s64): Likewise.
8996 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
8998 2014-01-23 Nick Clifton <nickc@redhat.com>
9000 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
9001 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
9002 favour of mcu specific scripts.
9003 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
9006 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
9007 Alex Velenko <Alex.Velenko@arm.com>
9009 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
9010 (vaddv_s16): Likewise.
9011 (vaddv_s32): Likewise.
9012 (vaddv_u8): Likewise.
9013 (vaddv_u16): Likewise.
9014 (vaddv_u32): Likewise.
9015 (vaddvq_s8): Likewise.
9016 (vaddvq_s16): Likewise.
9017 (vaddvq_s32): Likewise.
9018 (vaddvq_s64): Likewise.
9019 (vaddvq_u8): Likewise.
9020 (vaddvq_u16): Likewise.
9021 (vaddvq_u32): Likewise.
9022 (vaddvq_u64): Likewise.
9023 (vaddv_f32): Likewise.
9024 (vaddvq_f32): Likewise.
9025 (vaddvq_f64): Likewise.
9026 (vmaxv_f32): Likewise.
9027 (vmaxv_s8): Likewise.
9028 (vmaxv_s16): Likewise.
9029 (vmaxv_s32): Likewise.
9030 (vmaxv_u8): Likewise.
9031 (vmaxv_u16): Likewise.
9032 (vmaxv_u32): Likewise.
9033 (vmaxvq_f32): Likewise.
9034 (vmaxvq_f64): Likewise.
9035 (vmaxvq_s8): Likewise.
9036 (vmaxvq_s16): Likewise.
9037 (vmaxvq_s32): Likewise.
9038 (vmaxvq_u8): Likewise.
9039 (vmaxvq_u16): Likewise.
9040 (vmaxvq_u32): Likewise.
9041 (vmaxnmv_f32): Likewise.
9042 (vmaxnmvq_f32): Likewise.
9043 (vmaxnmvq_f64): Likewise.
9044 (vminv_f32): Likewise.
9045 (vminv_s8): Likewise.
9046 (vminv_s16): Likewise.
9047 (vminv_s32): Likewise.
9048 (vminv_u8): Likewise.
9049 (vminv_u16): Likewise.
9050 (vminv_u32): Likewise.
9051 (vminvq_f32): Likewise.
9052 (vminvq_f64): Likewise.
9053 (vminvq_s8): Likewise.
9054 (vminvq_s16): Likewise.
9055 (vminvq_s32): Likewise.
9056 (vminvq_u8): Likewise.
9057 (vminvq_u16): Likewise.
9058 (vminvq_u32): Likewise.
9059 (vminnmv_f32): Likewise.
9060 (vminnmvq_f32): Likewise.
9061 (vminnmvq_f64): Likewise.
9063 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
9065 * config/aarch64/aarch64-simd.md
9066 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
9067 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
9068 (*aarch64_mul3_elt<mode>): Likewise.
9069 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
9070 (*aarch64_mul3_elt_to_64v2df): Likewise.
9071 (*aarch64_mla_elt<mode>): Likewise.
9072 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
9073 (*aarch64_mls_elt<mode>): Likewise.
9074 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
9075 (*aarch64_fma4_elt<mode>): Likewise.
9076 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
9077 (*aarch64_fma4_elt_to_64v2df): Likewise.
9078 (*aarch64_fnma4_elt<mode>): Likewise.
9079 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
9080 (*aarch64_fnma4_elt_to_64v2df): Likewise.
9081 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9082 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
9083 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9084 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9085 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
9086 (aarch64_sqdmull_lane<mode>_internal): Likewise.
9087 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
9089 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
9091 * config/aarch64/aarch64-simd.md
9092 (aarch64_be_checked_get_lane<mode>): New define_expand.
9093 * config/aarch64/aarch64-simd-builtins.def
9094 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
9095 New builtin definition.
9096 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
9097 Use new safe be builtin.
9099 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
9101 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
9103 (aarch64_be_st1<mode>): Likewise.
9104 (aarch_ld1<VALL:mode>): Define_expand modified.
9105 (aarch_st1<VALL:mode>): Likewise.
9106 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
9107 (UNSPEC_ST1): Likewise.
9109 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
9111 * config/microblaze/microblaze.md: Add trap insn and attribute
9113 2014-01-23 Dodji Seketeli <dodji@redhat.com>
9115 PR preprocessor/58580
9116 * input.h (location_get_source_line): Take an additional line_size
9118 (void diagnostics_file_cache_fini): Declare new function.
9119 * input.c (struct fcache): New type.
9120 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
9121 New static constants.
9122 (diagnostic_file_cache_init, total_lines_num)
9123 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
9124 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
9125 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
9126 (get_next_line, read_next_line, goto_next_line, read_line_num):
9127 New static function definitions.
9128 (diagnostic_file_cache_fini): New function.
9129 (location_get_source_line): Take an additional output line_len
9130 parameter. Re-write using lookup_or_add_file_to_cache_tab and
9132 * diagnostic.c (diagnostic_finish): Call
9133 diagnostic_file_cache_fini.
9134 (adjust_line): Take an additional input parameter for the length
9135 of the line, rather than calculating it with strlen.
9136 (diagnostic_show_locus): Adjust the use of
9137 location_get_source_line and adjust_line with respect to their new
9138 signature. While displaying a line now, do not stop at the first
9139 null byte. Rather, display the zero byte as a space and keep
9140 going until we reach the size of the line.
9141 * Makefile.in: Add vec.o to OBJS-libcommon
9143 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
9144 Ilya Tocar <ilya.tocar@intel.com>
9146 * config/i386/avx512fintrin.h (_mm512_kmov): New.
9147 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
9148 (__builtin_ia32_kmov16): Ditto.
9149 * config/i386/i386.md (UNSPEC_KMOV): New.
9152 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
9154 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
9155 (_mm512_storeu_si512): Ditto.
9157 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
9160 * rtl.h (get_referenced_operands): Declare.
9161 * recog.c (get_referenced_operands): New function.
9162 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
9163 operands have been referenced when recording LO_SUM references.
9165 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
9167 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
9169 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
9171 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
9172 Enable for generic and recent AMD targets.
9174 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
9176 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
9177 ARG_SIZE note when adjustment was eliminated.
9179 2014-01-22 Jeff Law <law@redhat.com>
9181 PR tree-optimization/59597
9182 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
9183 in file. Accept new argument REGISTERING and use it to modify
9184 dump output appropriately.
9185 (register_jump_thread): Corresponding changes.
9186 (mark_threaded_blocks): Reinstate code to cancel unprofitable
9187 thread paths involving joiner blocks. Add code to dump cancelled
9188 jump threading paths.
9190 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
9192 PR rtl-optimization/59477
9193 * lra-constraints.c (inherit_in_ebb): Process call for living hard
9194 regs. Update reloads_num and potential_reload_hard_regs for all insns.
9196 2014-01-22 Tom Tromey <tromey@redhat.com>
9198 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
9200 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
9202 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
9204 PR rtl-optimization/59896
9205 * lra-constraints.c (process_alt_operands): Check unused note for
9206 matched operands of insn with no output reloads.
9208 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
9210 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
9211 (mips_move_from_gpr_cost): Likewise.
9213 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
9215 PR rtl-optimization/59858
9216 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
9217 ira_class_hard_regs_num.
9218 (process_alt_operands): Increase reject for dying matched operand.
9220 2014-01-21 Jakub Jelinek <jakub@redhat.com>
9223 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9224 smaller than size, perform several stores or loads and stores
9225 at dst + count - size to store or copy all of size bytes, rather
9226 than just last modesize bytes.
9228 2014-01-20 DJ Delorie <dj@redhat.com>
9230 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9231 that CLOBBERs are REGs before propogating their values.
9233 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
9236 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9237 (cgraph_inline_failed_type): New function.
9238 * cgraph.h (DEFCIFCODE): Add type.
9239 (cgraph_inline_failed_type_t): New enum.
9240 (cgraph_inline_failed_type): New prototype.
9241 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9242 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9243 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9244 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9245 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9246 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9247 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9248 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9249 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9250 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9251 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9252 OPTIMIZATION_MISMATCH.
9253 * tree-inline.c (expand_call_inline): Emit errors during
9254 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9256 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9259 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9260 mode attribute in insn output.
9262 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
9264 * output.h (output_constant): Delete.
9265 * varasm.c (output_constant): Make private.
9267 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
9269 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9271 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9274 * tree.h (fold_builtin_strcat): New prototype.
9275 * builtins.c (fold_builtin_strcat): No longer static. Add len
9276 argument, if non-NULL, don't call c_strlen. Optimize
9277 directly into __builtin_memcpy instead of __builtin_strcpy.
9278 (fold_builtin_2): Adjust fold_builtin_strcat caller.
9279 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9281 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9283 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9284 for SImode_address_operand operands, having only a REG argument.
9286 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
9288 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9289 loader name using mbig-endian.
9290 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9292 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9294 * doc/invoke.texi (-march): Clarify documentation for AArch64.
9298 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
9300 * config/aarch64/aarch64-protos.h
9301 (aarch64_cannot_change_mode_class_ptr): Declare.
9302 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9303 aarch64_cannot_change_mode_class_ptr): New.
9304 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9305 backend hook aarch64_cannot_change_mode_class.
9307 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9309 * common/config/aarch64/aarch64-common.c
9310 (aarch64_handle_option): Don't handle any option order logic here.
9311 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9312 selected_cpu, warn on architecture version mismatch.
9313 (aarch64_override_options): Fix parsing order for option strings.
9315 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9316 Iain Sandoe <iain@codesourcery.com>
9319 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9320 warning. Amend comment to reflect current functionality.
9322 2014-01-20 Richard Biener <rguenther@suse.de>
9325 * builtins.c (fold_builtin_strcat): Remove case better handled
9326 by tree-ssa-strlen.c.
9328 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
9330 * config/aarch64/aarch64.opt
9331 (mcpu, march, mtune): Make case-insensitive.
9333 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9336 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9337 if operands[1] is a REG or ZERO_EXTEND of a REG.
9339 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
9341 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9343 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
9345 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9346 long non-pic millicode calls.
9348 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9350 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9352 2014-01-19 Kito Cheng <kito@0xlab.org>
9354 * builtins.c (expand_movstr): Check movstr expand done or fail.
9356 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9357 H.J. Lu <hongjiu.lu@intel.com>
9360 * config/i386/i386.md (*lea<mode>): Zero-extend return register
9361 to DImode for zero-extended addresses.
9363 2014-01-19 Jakub Jelinek <jakub@redhat.com>
9365 PR rtl-optimization/57763
9366 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9367 on the new indirect jump_insn and increment LABEL_NUSES (label).
9369 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
9373 * config.gcc (x86_archs): New variable.
9374 (x86_64_archs): Likewise.
9375 (x86_cpus): Likewise.
9376 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9377 --with-arch/--with-cpu= options.
9378 Support --with-arch=/--with-cpu={nehalem,westmere,
9379 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9381 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9383 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9384 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
9386 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9388 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9390 2014-01-18 Jakub Jelinek <jakub@redhat.com>
9393 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9394 clear cpp_get_options (parse_in)->warn_unused_macros for
9395 ix86_target_macros_internal with cpp_define.
9397 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
9399 * jump.c (delete_related_insns): Keep (use (insn))s.
9400 * reorg.c (redundant_insn): Check for barriers too.
9402 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9404 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9406 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
9408 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9409 call to $$dyncall when TARGET_LONG_CALLS is true.
9411 2014-01-17 Jeff Law <law@redhat.com>
9413 * ree.c (combine_set_extension): Temporarily disable test for
9414 changing number of hard registers.
9416 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9419 * ipa-inline-analysis.c (inline_free_summary):
9420 Do not free summary of aliases.
9422 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9425 * gimplify.c (gimplify_expr): Use create_tmp_var
9426 instead of create_tmp_var_raw. If cond doesn't have
9427 integral type, don't add the IFN_ANNOTATE builtin at all.
9429 2014-01-17 Martin Jambor <mjambor@suse.cz>
9432 * ipa-cp.c (prev_edge_clone): New variable.
9433 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9434 Also resize prev_edge_clone vector.
9435 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9436 (ipcp_edge_removal_hook): New function.
9437 (ipcp_driver): Register ipcp_edge_removal_hook.
9439 2014-01-17 Andrew Pinski <apinski@cavium.com>
9440 Steve Ellcey <sellcey@mips.com>
9443 * config/mips/mips.c (mips_print_operand): Check operand mode instead
9446 2014-01-17 Jeff Law <law@redhat.com>
9449 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9450 so that pass_ccp runs first.
9452 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9454 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9455 (ix86_adjust_cost): Use !TARGET_XXX.
9456 (do_reorder_for_imul): Likewise.
9457 (swap_top_of_ready_list): Likewise.
9458 (ix86_sched_reorder): Likewise.
9460 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9462 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9463 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
9464 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
9465 (intel_memset): New. Duplicate slm_memset.
9466 (intel_cost): New. Duplicate slm_cost.
9467 (m_INTEL): New macro.
9468 (processor_target_table): Add "intel".
9469 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9470 with PROCESSOR_INTEL for "intel".
9471 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
9472 PROCESSOR_SILVERMONT.
9473 (ix86_issue_rate): Likewise.
9474 (ix86_adjust_cost): Likewise.
9475 (ia32_multipass_dfa_lookahead): Likewise.
9476 (swap_top_of_ready_list): Likewise.
9477 (ix86_sched_reorder): Likewise.
9478 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9479 instead of TARGET_OPT_AGU.
9480 * config/i386/i386.h (TARGET_INTEL): New.
9481 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9482 (processor_type): Add PROCESSOR_INTEL.
9483 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9484 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9486 2014-01-17 Marek Polacek <polacek@redhat.com>
9489 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9492 2014-01-17 Richard Biener <rguenther@suse.de>
9494 PR tree-optimization/46590
9495 * opts.c (default_options_table): Add entries for
9496 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
9497 all enabled at -O1 but not for -Og.
9498 * common.opt (fbranch-count-reg): Remove Init(1).
9499 (fmove-loop-invariants): Likewise.
9500 (ftree-pta): Likewise.
9502 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9504 * config/i386/i386.c (ix86_data_alignment): For compatibility with
9505 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
9506 decls to at least the GCC 4.8 used alignments.
9509 * tree-nested.c (convert_nonlocal_reference_stmt,
9510 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
9511 of GIMPLE_BIND stmts, adjust associated decls.
9513 2014-01-17 Richard Biener <rguenther@suse.de>
9515 PR tree-optimization/46590
9516 * vec.h (vec<>::bseach): New member function implementing
9517 binary search according to C89 bsearch.
9518 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
9519 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
9520 bitmap pointer again. Make accesses_in_loop a flat array.
9521 (mem_ref_obstack): New global.
9522 (outermost_indep_loop): Adjust for mem_ref->stored changes.
9523 (mark_ref_stored): Likewise.
9524 (ref_indep_loop_p_2): Likewise.
9525 (set_ref_stored_in_loop): New helper function.
9526 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
9527 (memref_free): Adjust.
9528 (record_mem_ref_loc): Simplify.
9529 (gather_mem_refs_stmt): Adjust.
9530 (sort_locs_in_loop_postorder_cmp): New function.
9531 (analyze_memory_references): Sort accesses_in_loop after
9532 loop postorder number.
9533 (find_ref_loc_in_loop_cmp): New function.
9534 (for_all_locs_in_loop): Find relevant cluster of locs in
9535 accesses_in_loop and iterate without recursion.
9536 (execute_sm): Avoid uninit warning.
9537 (struct ref_always_accessed): Simplify.
9538 (ref_always_accessed::operator ()): Likewise.
9539 (ref_always_accessed_p): Likewise.
9540 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
9541 loop postorder numbers here.
9542 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
9545 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9548 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
9549 on decls for which assemble_alias has been called.
9551 2014-01-17 Nick Clifton <nickc@redhat.com>
9553 * config/msp430/msp430.opt: (mcpu): New option.
9554 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
9555 (msp430_option_override): Parse target_cpu. If the MCU name
9556 matches a generic string, clear target_mcu.
9557 (msp430_attr): Allow numeric interrupt values up to 63.
9558 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
9559 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
9561 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
9563 * config/msp430/msp430.md (popm): Use %J rather than %I.
9564 (addsi3): Use msp430_nonimmediate_operand for operand 2.
9565 (addhi_cy_i): Use immediate_operand for operand 2.
9566 * doc/invoke.texi: Document -mcpu option.
9568 2014-01-17 Richard Biener <rguenther@suse.de>
9570 PR rtl-optimization/38518
9571 * df.h (df_analyze_loop): Declare.
9572 * df-core.c: Include cfgloop.h.
9573 (df_analyze_1): Split out main part of df_analyze.
9574 (df_analyze): Adjust.
9575 (loop_inverted_post_order_compute): New function.
9576 (loop_post_order_compute): Likewise.
9577 (df_analyze_loop): New function avoiding whole-function
9579 * loop-invariant.c (find_defs): Use df_analyze_loop.
9580 (find_invariants): Adjust.
9581 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
9583 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
9585 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
9586 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
9588 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
9590 * ipa-ref.c (ipa_remove_stmt_references): Fix references
9591 traversal when removing references.
9593 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
9596 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
9598 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
9601 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
9602 pushing a reload for an autoinc when we had previously reloaded an
9603 inner part of the address.
9605 2014-01-16 Jakub Jelinek <jakub@redhat.com>
9607 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
9609 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
9610 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
9611 when not giving up or versioning for alias only because of
9613 (vect_analyze_data_ref_dependences): Set to true.
9614 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
9616 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
9617 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
9621 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
9624 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
9625 operand 0 predicate for gathers, use a new pseudo as subtarget.
9627 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
9630 * lra-constraints.c (process_alt_operands): Add printing debug info.
9631 Check absence of input/output reloads for matched operands too.
9633 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
9635 PR rtl-optimization/59835
9636 * ira.c (ira_init_register_move_cost): Increase cost for
9639 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
9641 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
9643 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
9646 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
9647 non-register objects. Use gen_(high/low)part more consistently.
9650 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
9653 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
9654 endian support, remove tests for WORDS_BIG_ENDIAN.
9655 (p8_mfvsrd_3_<mode>): Likewise.
9656 (reload_gpr_from_vsx<mode>): Likewise.
9657 (reload_gpr_from_vsxsf): Likewise.
9658 (p8_mfvsrd_4_disf): Likewise.
9660 2014-01-16 Richard Biener <rguenther@suse.de>
9662 PR rtl-optimization/46590
9663 * lcm.c (compute_antinout_edge): Use postorder iteration.
9664 (compute_laterin): Use inverted postorder iteration.
9666 2014-01-16 Nick Clifton <nickc@redhat.com>
9669 * varasm.c (output_constant): Return the number of bytes actually
9671 (output_constructor_array_range): Update the field size with the
9672 number of bytes emitted by output_constant.
9673 (output_constructor_regular_field): Likewise. Also do not
9674 complain if the total number of bytes emitted is now greater
9675 than the expected fieldpos.
9676 * output.h (output_constant): Update prototype and descriptive comment.
9678 2014-01-16 Marek Polacek <polacek@redhat.com>
9681 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
9682 it is error_mark_node.
9684 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
9686 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
9687 VALID_AVX256_REG_OR_OI_MODE.
9689 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
9691 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
9692 current procedure should be profiled.
9694 2014-01-15 Andrew Pinski <apinski@cavium.com>
9696 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
9697 of moving from/to the STACK_REG register class.
9699 2014-01-15 Richard Henderson <rth@redhat.com>
9702 * reginfo.c (global_regs_decl): Globalize.
9703 * rtl.h (global_regs_decl): Declare.
9704 * ira.c (do_reload): Diagnose frame_pointer_needed and it
9705 reserved via global_regs.
9707 2014-01-15 Teresa Johnson <tejohnson@google.com>
9709 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
9711 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9713 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
9714 and vmulosh rather than call gen_vec_widen_smult_*.
9715 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
9716 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
9717 (vec_widen_smult_even_v16qi): Likewise.
9718 (vec_widen_umult_even_v8hi): Likewise.
9719 (vec_widen_smult_even_v8hi): Likewise.
9720 (vec_widen_umult_odd_v16qi): Likewise.
9721 (vec_widen_smult_odd_v16qi): Likewise.
9722 (vec_widen_umult_odd_v8hi): Likewise.
9723 (vec_widen_smult_odd_v8hi): Likewise.
9724 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
9725 vmuloub rather than call gen_vec_widen_umult_*.
9726 (vec_widen_umult_lo_v16qi): Likewise.
9727 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
9728 vmulosb rather than call gen_vec_widen_smult_*.
9729 (vec_widen_smult_lo_v16qi): Likewise.
9730 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
9731 rather than call gen_vec_widen_umult_*.
9732 (vec_widen_umult_lo_v8hi): Likewise.
9733 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
9734 rather than call gen_vec_widen_smult_*.
9735 (vec_widen_smult_lo_v8hi): Likewise.
9737 2014-01-15 Jeff Law <law@redhat.com>
9739 PR tree-optimization/59747
9740 * ree.c (find_and_remove_re): Properly handle case where a second
9741 eliminated extension requires widening a copy created for elimination
9742 of a prior extension.
9743 (combine_set_extension): Ensure that the number of hard regs needed
9744 for a destination register does not change when we widen it.
9746 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
9748 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
9749 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
9750 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
9751 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
9752 (avr-*-rtems*): Likewise.
9753 (bfin*-rtems*): Likewise.
9754 (moxie-*-rtems*): Likewise.
9755 (h8300-*-rtems*): Likewise.
9756 (i[34567]86-*-rtems*): Likewise.
9757 (lm32-*-rtems*): Likewise.
9758 (m32r-*-rtems*): Likewise.
9759 (m68k-*-rtems*): Likewise.
9760 (microblaze*-*-rtems*): Likewise.
9761 (mips*-*-rtems*): Likewise.
9762 (powerpc-*-rtems*): Likewise.
9763 (sh-*-rtems*): Likewise.
9764 (sparc-*-rtems*): Likewise.
9765 (sparc64-*-rtems*): Likewise.
9766 (v850-*-rtems*): Likewise.
9767 (m32c-*-rtems*): Likewise.
9769 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
9771 PR rtl-optimization/59511
9772 * ira.c (ira_init_register_move_cost): Use memory costs for some
9773 cases of register move cost calculations.
9774 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
9775 instead of BB frequency.
9776 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
9777 * lra-assigns.c (find_hard_regno_for): Ditto.
9779 2014-01-15 Richard Biener <rguenther@suse.de>
9781 PR tree-optimization/59822
9782 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
9783 (vectorizable_load): Use it to hoist defs of uses of invariant
9784 loads out of the loop.
9786 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
9787 Kugan Vivekanandarajah <kuganv@linaro.org>
9790 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
9793 2014-01-15 Richard Biener <rguenther@suse.de>
9795 PR rtl-optimization/59802
9796 * lcm.c (compute_available): Use inverted postorder to seed
9797 the initial worklist.
9799 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9802 * config/s390/s390.c (s390_preferred_reload_class): Don't return
9803 ADDR_REGS for invalid symrefs in non-PIC code.
9805 2014-01-15 Jakub Jelinek <jakub@redhat.com>
9808 * builtins.c (determine_block_size): Initialize *probable_max_size
9809 even if len_rtx is CONST_INT.
9811 2014-01-14 Andrew Pinski <apinski@cavium.com>
9813 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
9814 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
9815 (cortexa53_tunings): Likewise.
9816 (aarch64_sched_issue_rate): New function.
9817 (TARGET_SCHED_ISSUE_RATE): Define.
9819 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
9821 * ira-costs.c (find_costs_and_classes): Add missed
9822 ira_init_register_move_cost_if_necessary.
9824 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
9827 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
9829 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
9832 * config/i386/i386.c (type_natural_mode): Add a bool parameter
9833 to indicate if type is used for function return value. Warn ABI
9834 change if the vector mode isn't available for function return value.
9835 (ix86_function_arg_advance): Pass false to type_natural_mode.
9836 (ix86_function_arg): Likewise.
9837 (ix86_gimplify_va_arg): Likewise.
9838 (function_arg_32): Don't warn ABI change.
9839 (ix86_function_value): Pass true to type_natural_mode.
9840 (ix86_return_in_memory): Likewise.
9841 (ix86_struct_value_rtx): Removed.
9842 (TARGET_STRUCT_VALUE_RTX): Likewise.
9844 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
9846 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
9847 converting a conditional jump into a conditional return.
9849 2014-01-14 Richard Biener <rguenther@suse.de>
9851 PR tree-optimization/58921
9852 PR tree-optimization/59006
9853 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
9854 hoisting invariant stmts.
9855 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
9856 invariant loads on the preheader edge if possible.
9858 2014-01-14 Joey Ye <joey.ye@arm.com>
9860 * doc/plugin.texi (Building GCC plugins): Update to C++.
9862 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
9864 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
9865 (_mm_rcp28_round_ss): Ditto.
9866 (_mm_rsqrt28_round_sd): Ditto.
9867 (_mm_rsqrt28_round_ss): Ditto.
9868 (_mm_rcp28_sd): Ditto.
9869 (_mm_rcp28_ss): Ditto.
9870 (_mm_rsqrt28_sd): Ditto.
9871 (_mm_rsqrt28_ss): Ditto.
9872 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
9873 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
9874 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
9875 (IX86_BUILTIN_RCP28SD): Ditto.
9876 (IX86_BUILTIN_RCP28SS): Ditto.
9877 (IX86_BUILTIN_RSQRT28SD): Ditto.
9878 (IX86_BUILTIN_RSQRT28SS): Ditto.
9879 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
9880 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
9881 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
9882 (ix86_expand_special_args_builtin): Expand new FTYPE.
9883 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
9884 (srcp14<mode>): Make insn unary.
9885 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
9886 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
9887 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
9888 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
9889 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
9890 Fix rounding: make it SAE only.
9891 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
9893 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
9895 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
9896 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
9897 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
9898 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
9899 (round_saeonly_mask_scalar_operand4): Ditto.
9900 (round_saeonly_mask_scalar_op3): Ditto.
9901 (round_saeonly_mask_scalar_op4): Ditto.
9903 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9905 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9906 Implement -maltivec=be for vec_insert and vec_extract.
9908 2014-01-10 DJ Delorie <dj@redhat.com>
9910 * config/msp430/msp430.md (call_internal): Don't allow memory
9911 references with SP as the base register.
9912 (call_value_internal): Likewise.
9913 * config/msp430/constraints.md (Yc): New. For memory references
9914 that don't use SP as a base register.
9916 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
9917 "an integer without a # prefix"
9918 * config/msp430/msp430.md (epilogue_helper): Use it.
9920 2014-01-13 Jakub Jelinek <jakub@redhat.com>
9923 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
9924 AVX512F gather builtins.
9925 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
9926 on gather decls with INTEGER_TYPE masktype.
9927 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
9928 directly into the builtin rather than hoisting it before loop.
9930 PR tree-optimization/59387
9931 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
9932 (scev_const_prop): If folded_casts and type has undefined overflow,
9933 use force_gimple_operand instead of force_gimple_operand_gsi and
9934 for each added stmt if it is assign with
9935 arith_code_with_undefined_signed_overflow, call
9936 rewrite_to_defined_overflow.
9937 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
9938 gimple-fold.h instead.
9939 (arith_code_with_undefined_signed_overflow,
9940 rewrite_to_defined_overflow): Moved to ...
9941 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
9942 rewrite_to_defined_overflow): ... here. No longer static.
9943 Include gimplify-me.h.
9944 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
9945 rewrite_to_defined_overflow): New prototypes.
9947 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9949 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
9951 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
9953 * builtins.c (get_object_alignment_2): Minor tweak.
9954 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
9956 2014-01-13 Christian Bruel <christian.bruel@st.com>
9958 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
9959 optimized non constant lengths.
9961 2014-01-13 Jakub Jelinek <jakub@redhat.com>
9964 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
9965 load as __atomic_load_N if possible.
9967 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
9969 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
9971 (rs6000_expand_builtin): Adjust call.
9973 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
9976 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
9977 * config/rs6000/rs6000.c: Include target-globals.h.
9978 (rs6000_set_current_function): Instead of doing target_reinit
9979 unconditionally, use save_target_globals_default_opts and
9980 restore_target_globals.
9982 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
9984 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
9985 (rs6000_expand_builtin): Handle mffs and mtfsf.
9986 (rs6000_init_builtins): Define mffs and mtfsf.
9987 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
9988 (rs6000_mffs): New pattern.
9989 (rs6000_mtfsf): New pattern.
9991 2014-01-11 Bin Cheng <bin.cheng@arm.com>
9993 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
9994 Start narrowing with START. Apply candidate-use pair
9995 and check overall cost in narrowing.
9996 (iv_ca_prune): Pass new argument.
9998 2014-01-10 Jeff Law <law@redhat.com>
10000 PR middle-end/59743
10001 * ree.c (combine_reaching_defs): Ensure the defining statement
10002 occurs before the extension when optimizing extensions with
10003 different source and destination hard registers.
10005 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
10008 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
10009 vtables into the type inheritance graph.
10011 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10013 PR rtl-optimization/59754
10014 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
10015 modes in the REGNO != REGNO case.
10017 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10019 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
10021 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10023 PR tree-optimization/59745
10024 * tree-predcom.c (tree_predictive_commoning_loop): Call
10025 free_affine_expand_cache if giving up because components is NULL.
10027 * target-globals.c (save_target_globals): Allocate < 4KB structs using
10028 GC in payload of target_globals struct instead of allocating them on
10029 the heap and the larger structs separately using GC.
10030 * target-globals.h (struct target_globals): Make regs, hard_regs,
10031 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
10032 of GTY((skip)) and change type to void *.
10033 (reset_target_globals): Cast loads from those fields to corresponding
10036 2014-01-10 Steve Ellcey <sellcey@mips.com>
10039 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
10040 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
10041 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
10043 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
10046 * aarch64-modes.def (CC_Zmode): New flags mode.
10047 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
10048 represents an equality.
10049 (aarch64_get_condition_code): Handle CC_Zmode.
10050 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
10052 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10054 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
10055 extraction in good case.
10057 2014-01-10 Richard Biener <rguenther@suse.de>
10059 PR tree-optimization/59374
10060 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
10061 checking after SLP discovery. Mark stmts not participating
10062 in any SLP instance properly.
10064 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10066 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
10067 when handling a SET rtx.
10069 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10071 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
10072 (cortex-a57): Likewise.
10073 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
10075 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10077 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
10078 non-iwmmxt builtins.
10080 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
10084 * ipa-devirt.c record_target_from_binfo): Take as argument
10085 stack of binfos and lookup matching one for virtual inheritance.
10086 (possible_polymorphic_call_targets_1): Update.
10088 2014-01-10 Huacai Chen <chenhc@lemote.com>
10090 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
10091 kernel strings for Loongson-2E/2F/3A.
10093 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10095 PR middle-end/59670
10096 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
10097 is_gimple_call before calling gimple_call_internal_p.
10099 2014-01-09 Steve Ellcey <sellcey@mips.com>
10101 * Makefile.in (TREE_FLOW_H): Remove.
10102 (TREE_SSA_H): Add file names from tree-flow.h.
10103 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
10104 * tree.h: Remove tree-flow.h reference.
10105 * hash-table.h: Remove tree-flow.h reference.
10106 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
10107 reference with tree-ssa-loop.h.
10109 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10111 * doc/invoke.texi: Add -maltivec={be,le} options, and document
10112 default element-order behavior for -maltivec.
10113 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
10114 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
10115 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
10116 when targeting big endian, at least for now.
10117 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
10119 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10121 PR middle-end/47735
10122 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
10123 var satisfies use_register_for_decl, just take into account type
10124 alignment, rather than decl alignment.
10126 PR tree-optimization/59622
10127 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
10128 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
10129 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
10130 Don't devirtualize for inplace at all. For targets.length () == 1,
10131 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
10133 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
10135 * config/i386/i386.md (cpu): Remove the unused btver1.
10137 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
10139 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
10141 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10144 * tree-core.h (struct target_globals): New forward declaration.
10145 (struct tree_target_option): Add globals field.
10146 * tree.h (TREE_TARGET_GLOBALS): Define.
10147 (prepare_target_option_nodes_for_pch): New prototype.
10148 * target-globals.h (struct target_globals): Define even if
10149 !SWITCHABLE_TARGET.
10150 * tree.c (prepare_target_option_node_for_pch,
10151 prepare_target_option_nodes_for_pch): New functions.
10152 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
10153 * config/i386/i386.c: Include target-globals.h.
10154 (ix86_set_current_function): Instead of doing target_reinit
10155 unconditionally, use save_target_globals_default_opts and
10156 restore_target_globals.
10158 2014-01-09 Richard Biener <rguenther@suse.de>
10160 PR tree-optimization/59715
10161 * tree-cfg.h (split_critical_edges): Declare.
10162 * tree-cfg.c (split_critical_edges): Export.
10163 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
10165 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
10167 * cfgexpand.c (expand_stack_vars): Optionally disable
10168 asan stack protection.
10169 (expand_used_vars): Likewise.
10170 (partition_stack_vars): Likewise.
10171 * asan.c (asan_emit_stack_protection): Optionally disable
10172 after return stack usage.
10173 (instrument_derefs): Optionally disable memory access instrumentation.
10174 (instrument_builtin_call): Likewise.
10175 (instrument_strlen_call): Likewise.
10176 (asan_protect_global): Optionally disable global variables protection.
10177 * doc/invoke.texi: Added doc for new options.
10178 * params.def: Added new options.
10179 * params.h: Likewise.
10181 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10183 PR rtl-optimization/59724
10184 * ifcvt.c (cond_exec_process_if_block): Don't call
10185 flow_find_head_matching_sequence with 0 longest_match.
10186 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
10187 non-active insns if !stop_after.
10188 (try_head_merge_bb): Revert 2014-01-07 changes.
10190 2014-01-08 Jeff Law <law@redhat.com>
10192 * ree.c (get_sub_rtx): New function, extracted from...
10193 (merge_def_and_ext): Here.
10194 (combine_reaching_defs): Use get_sub_rtx.
10196 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
10198 * cgraph.h (varpool_variable_node): Do not choke on null node.
10200 2014-01-08 Catherine Moore <clm@codesourcery.com>
10202 * config/mips/mips.md (simple_return): Attempt to use JRC
10204 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
10206 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
10208 PR rtl-optimization/59137
10209 * reorg.c (steal_delay_list_from_target): Call update_block for
10211 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
10213 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10215 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10216 two duplicate entries.
10218 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
10221 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
10223 * config/mips/mips.c (mips_truncated_op_cost): New function.
10224 (mips_rtx_costs): Adjust test for BADDU.
10225 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10227 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
10229 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10230 (*baddu_si): ...this new pattern.
10232 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10235 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10237 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
10239 PR middle-end/57748
10240 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10242 (expand_expr, expand_normal): Adjust.
10243 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10244 inner_reference_p. Use inner_reference_p to expand inner references.
10245 (store_expr): Adjust.
10246 * cfgexpand.c (expand_call_stmt): Adjust.
10248 2014-01-08 Rong Xu <xur@google.com>
10250 * gcov-io.c (gcov_var): Move from gcov-io.h.
10251 (gcov_position): Ditto.
10252 (gcov_is_error): Ditto.
10253 (gcov_rewrite): Ditto.
10254 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10255 only part to libgcc/libgcov.h.
10257 2014-01-08 Marek Polacek <polacek@redhat.com>
10259 PR middle-end/59669
10260 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10262 2014-01-08 Marek Polacek <polacek@redhat.com>
10265 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10267 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10269 PR rtl-optimization/59649
10270 * stor-layout.c (get_mode_bounds): For BImode return
10271 0 and STORE_FLAG_VALUE.
10273 2014-01-08 Richard Biener <rguenther@suse.de>
10275 PR middle-end/59630
10276 * gimple.h (is_gimple_builtin_call): Remove.
10277 (gimple_builtin_call_types_compatible_p): New.
10278 (gimple_call_builtin_p): New overload.
10279 * gimple.c (is_gimple_builtin_call): Remove.
10280 (validate_call): Rename to ...
10281 (gimple_builtin_call_types_compatible_p): ... this and export. Also
10282 check return types.
10283 (validate_type): New static function.
10284 (gimple_call_builtin_p): New overload and adjust.
10285 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10286 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
10287 (gimple_fold_stmt_to_constant_1): Likewise.
10288 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10290 2014-01-08 Richard Biener <rguenther@suse.de>
10292 PR middle-end/59471
10293 * gimplify.c (gimplify_expr): Gimplify register-register type
10294 VIEW_CONVERT_EXPRs to separate stmts.
10296 2014-01-07 Jeff Law <law@redhat.com>
10298 PR middle-end/53623
10299 * ree.c (combine_set_extension): Handle case where source
10300 and destination registers in an extension insn are different.
10301 (combine_reaching_defs): Allow source and destination registers
10302 in extension to be different under limited circumstances.
10303 (add_removable_extension): Remove restriction that the
10304 source and destination registers in the extension are the same.
10305 (find_and_remove_re): Emit a copy from the extension's
10306 destination to its source after the defining insn if
10307 the source and destination registers are different.
10309 PR middle-end/59285
10310 * ifcvt.c (merge_if_block): If we are merging a block with more than
10311 one successor with a block with no successors, remove any BARRIER
10312 after the second block.
10314 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
10316 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10318 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
10321 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10322 for 14-bit register offsets when INT14_OK_STRICT is false.
10324 2014-01-07 Roland Stigge <stigge@antcom.de>
10325 Michael Meissner <meissner@linux.vnet.ibm.com>
10328 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10329 Only check TFmode for SPE constants. Don't check TImode or TDmode.
10331 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
10333 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10336 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
10338 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10339 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10340 rtx is const0_rtx or not.
10342 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
10345 * target-globals.c (save_target_globals): Remove this_fn_optab
10347 * toplev.c: Include optabs.h.
10348 (target_reinit): Temporarily restore the global options if another
10349 set of options are in force.
10351 2014-01-07 Jakub Jelinek <jakub@redhat.com>
10353 PR rtl-optimization/58668
10354 * cfgcleanup.c (flow_find_cross_jump): Don't count
10355 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
10356 to determine what is counted.
10357 (flow_find_head_matching_sequence): Use active_insn_p to determine
10359 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10361 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10362 determine what is counted.
10364 PR tree-optimization/59643
10365 * tree-predcom.c (split_data_refs_to_components): If one dr is
10366 read and one write, determine_offset fails and the write isn't
10367 in the bad component, just put the read into the bad component.
10369 2014-01-07 Mike Stump <mikestump@comcast.net>
10370 Jakub Jelinek <jakub@redhat.com>
10373 * tree-core.h (struct tree_optimization_option): Change optabs
10374 type from unsigned char * to void *.
10375 * optabs.c (init_tree_optimization_optabs): Adjust
10376 TREE_OPTIMIZATION_OPTABS initialization.
10378 2014-01-06 Jakub Jelinek <jakub@redhat.com>
10381 * config/i386/i386.h (struct machine_function): Add
10382 no_drap_save_restore field.
10383 * config/i386/i386.c (ix86_save_reg): Use
10384 !cfun->machine->no_drap_save_restore instead of
10385 crtl->stack_realign_needed.
10386 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10387 this function clears frame_pointer_needed. Set
10388 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10389 and DRAP reg is needed.
10391 2014-01-06 Marek Polacek <polacek@redhat.com>
10394 * doc/implement-c.texi: Mention that other integer types are
10395 permitted as bit-field types in strictly conforming mode.
10397 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
10399 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10400 is newly allocated.
10402 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
10404 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10406 2014-01-06 Martin Jambor <mjambor@suse.cz>
10409 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10411 * ipa-prop.c (ipa_print_node_params): Fix indentation.
10413 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
10417 * var-tracking.c (add_stores): Preserve the value of the source even if
10418 we don't record the store.
10420 2014-01-06 Terry Guo <terry.guo@arm.com>
10422 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10424 2014-01-05 Iain Sandoe <iain@codesourcery.com>
10427 * config/darwin.c (darwin_function_section): Adjust return values to
10428 correspond to optimisation changes made in r206070.
10430 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
10432 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10433 from prefetch_block tune setting.
10434 (nocona_cost): Correct size of prefetch block to 64.
10436 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
10438 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10439 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10440 used to save the static chain register in the computation of the offset
10441 from which the FP registers need to be restored.
10443 2014-01-04 Jakub Jelinek <jakub@redhat.com>
10445 PR tree-optimization/59519
10446 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10447 ICE if get_current_def (current_new_name) is already non-NULL, as long
10448 as it is a phi result of some other phi in *new_exit_bb that has
10451 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10452 or vmovdqu* for misaligned_operand.
10453 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10454 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10455 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10456 aligned_mem for AVX512F masked aligned load and store builtins and for
10457 non-temporal moves.
10459 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
10461 PR tree-optimization/59651
10462 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10463 Address range for negative step should be added by TYPE_SIZE_UNIT.
10465 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
10467 * config/m68k/m68k.c (handle_move_double): Handle pushes with
10468 overlapping registers also for registers other than the stack pointer.
10470 2014-01-03 Marek Polacek <polacek@redhat.com>
10473 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10476 2014-01-03 Jakub Jelinek <jakub@redhat.com>
10479 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10482 * config/i386/i386.md (MODE_SIZE): New mode attribute.
10483 (push splitter): Use <P:MODE_SIZE> instead of
10484 GET_MODE_SIZE (<P:MODE>mode).
10485 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10486 (mov -1, reg peephole2): Likewise.
10487 * config/i386/sse.md (*mov<mode>_internal,
10488 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10489 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10490 *<code><mode>3, *andnot<mode>3<mask_name>,
10491 <mask_codefor><code><mode>3<mask_name>): Likewise.
10492 * config/i386/subst.md (mask_mode512bit_condition,
10493 sd_mask_mode512bit_condition): Likewise.
10495 2014-01-02 Xinliang David Li <davidxl@google.com>
10497 PR tree-optimization/59303
10498 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
10499 (dump_predicates): Better output format.
10500 (pred_equal_p): New function.
10501 (is_neq_relop_p): Ditto.
10502 (is_neq_zero_form_p): Ditto.
10503 (pred_expr_equal_p): Ditto.
10504 (pred_neg_p): Ditto.
10505 (simplify_pred): Ditto.
10506 (simplify_preds_2): Ditto.
10507 (simplify_preds_3): Ditto.
10508 (simplify_preds_4): Ditto.
10509 (simplify_preds): Ditto.
10510 (push_pred): Ditto.
10511 (push_to_worklist): Ditto.
10512 (get_pred_info_from_cmp): Ditto.
10513 (is_degenerated_phi): Ditto.
10514 (normalize_one_pred_1): Ditto.
10515 (normalize_one_pred): Ditto.
10516 (normalize_one_pred_chain): Ditto.
10517 (normalize_preds): Ditto.
10518 (normalize_cond_1): Remove function.
10519 (normalize_cond): Ditto.
10520 (is_gcond_subset_of): Ditto.
10521 (is_subset_of_any): Ditto.
10522 (is_or_set_subset_of): Ditto.
10523 (is_and_set_subset_of): Ditto.
10524 (is_norm_cond_subset_of): Ditto.
10525 (pred_chain_length_cmp): Ditto.
10526 (convert_control_dep_chain_into_preds): Type change.
10527 (find_predicates): Ditto.
10528 (find_def_preds): Ditto.
10529 (destroy_predicates_vecs): Ditto.
10530 (find_matching_predicates_in_rest_chains): Ditto.
10531 (use_pred_not_overlap_with_undef_path_pred): Ditto.
10532 (is_pred_expr_subset): Ditto.
10533 (is_pred_chain_subset_of): Ditto.
10534 (is_included_in): Ditto.
10535 (is_superset_of): Ditto.
10537 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10539 Update copyright years.
10541 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10543 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
10544 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10545 config/arc/arc.md, config/arc/arc.opt,
10546 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
10547 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
10548 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
10549 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
10550 config/linux-protos.h, config/linux.c, config/winnt-c.c,
10551 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
10552 vtable-verify.c, vtable-verify.h: Use the standard form for the
10555 2014-01-02 Tobias Burnus <burnus@net-b.de>
10557 * gcc.c (process_command): Update copyright notice dates.
10558 * gcov-dump.c: Ditto.
10560 * doc/cpp.texi: Bump @copying's copyright year.
10561 * doc/cppinternals.texi: Ditto.
10562 * doc/gcc.texi: Ditto.
10563 * doc/gccint.texi: Ditto.
10564 * doc/gcov.texi: Ditto.
10565 * doc/install.texi: Ditto.
10566 * doc/invoke.texi: Ditto.
10568 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10570 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
10572 2014-01-01 Jakub Jelinek <jakub@redhat.com>
10574 * config/i386/sse.md (*mov<mode>_internal): Guard
10575 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
10577 PR rtl-optimization/59647
10578 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
10579 new_rtx into UNSIGNED_FLOAT rtxes.
10581 Copyright (C) 2014 Free Software Foundation, Inc.
10583 Copying and distribution of this file, with or without modification,
10584 are permitted in any medium without royalty provided the copyright
10585 notice and this notice are preserved.