1 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
4 * lra-int.h (lra_bad_spill_regno_start): New.
5 * lra.c (lra_bad_spill_regno_start): New.
6 (lra): Set up lra_bad_spill_regno_start. Set up
7 lra_constraint_new_regno_start unconditionally.
8 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
11 2015-04-07 Richard Biener <rguenther@suse.de>
13 Backport from mainline
14 2015-04-04 Richard Biener <rguenther@suse.de>
16 PR tree-optimization/64909
17 PR tree-optimization/65660
18 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
19 to take a cost vector for scalar iteration cost.
20 (vect_get_single_scalar_iteration_cost): Likewise.
21 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
22 Compute the scalar iteration cost into a cost vector.
23 (vect_get_known_peeling_cost): Use the scalar cost vector to
24 account for the cost of the peeled iterations.
25 (vect_estimate_min_profitable_iters): Likewise.
26 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
29 2015-04-05 Yvan Roux <yvan.roux@linaro.org>
31 Backport from trunk r221867
32 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
35 * lra.c (lra): Stop updating lra_constraint_new_regno_start after
36 switching off inheritance.
38 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
40 * config/pa/pa.c (pa_output_move_double): Directly handle register
41 indexed memory operand. Simplify handling of scaled register indexed
44 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
46 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
48 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
49 (s390_asm_output_function_label): Adapt to new signature of
50 s390_function_num_hotpatch_hw
51 Optimise the code generating assembler output.
52 Add comments to assembler file.
54 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
56 Backport from mainline
57 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
60 * lra-constraints.c (original_subreg_reg_mode): New.
61 (simplify_operand_subreg): Try to simplify subreg of const. Use
62 original_subreg_reg_mode for it.
63 (swap_operands): Update original_subreg_reg_mode.
64 (curr_insn_transform): Set up original_subreg_reg_mode.
66 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
69 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
70 Check operand 6 and operand 0 for equality.
71 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
73 (vec_extract_hi_<mode>_maskm): Ditto.
75 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
77 Backport of r214242, r214254, and bug fix patches from mainline
78 * config/rs6000/rs6000.c (context.h): New #include.
79 (tree-pass.h): Likewise.
80 (make_pass_analyze_swaps): New declaration.
81 (rs6000_option_override): Register swap-optimization pass.
82 (swap_web_entry): New class.
83 (special_handling_values): New enum.
84 (union_defs): New function.
85 (union_uses): Likewise.
86 (insn_is_load_p): Likewise.
87 (insn_is_store_p): Likewise.
88 (insn_is_swap_p): Likewise.
89 (rtx_is_swappable_p): Likewise.
90 (insn_is_swappable_p): Likewise.
91 (chain_purpose): New enum.
92 (chain_contains_only_swaps): New function.
93 (mark_swaps_for_removal): Likewise.
94 (swap_const_vector_halves): Likewise.
95 (adjust_subreg_index): Likewise.
96 (permute_load): Likewise.
97 (permute_store): Likewise.
98 (adjust_extract): Likewise.
99 (adjust_splat): Likewise.
100 (handle_special_swappables): Likewise.
101 (replace_swap_with_copy): Likewise.
102 (dump_swap_insn_table): Likewise.
103 (rs6000_analyze_swaps): Likewise.
104 (pass_data_analyze_swaps): New pass_data.
105 (pass_analyze_swaps): New class.
106 (pass_analyze_swaps::gate): New method.
107 (pass_analyze_swaps::execute): New method.
108 (make_pass_analyze_swaps): New function.
109 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
110 * df.h (web_entry_base): New class, replacing struct web_entry.
111 (web_entry_base::pred): New method.
112 (web_entry_base::set_pred): Likewise.
113 (web_entry_base::unionfind_root): Likewise.
114 (web_entry_base::unionfind_union): Likewise.
115 (unionfind_root): Delete external reference.
116 (unionfind_union): Likewise.
117 (union_defs): Likewise.
118 * web.c (web_entry_base::unionfind_root): Convert to method.
119 (web_entry_base::unionfind_union): Likewise.
120 (web_entry): New class.
121 (union_match_dups): Convert to use class structure.
122 (union_defs): Likewise.
123 (entry_register): Likewise.
124 (web_main): Likewise.
126 2015-03-26 Alan Modra <amodra@gmail.com>
129 Backport from trunk 211857 and 221445.
130 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
131 * config/rs6000/rs6000.md: Append `DONE' to preparation
132 statements of `bswap' pattern splitters.
134 2015-03-16 Alan Modra <amodra@gmail.com>
135 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
136 Modify Z->r bswapdi splitter to use dest in place of scratch.
137 In r->Z and Z->r bswapdi splitter rename word_high, word_low
138 to word1, word2 and rearrange logic to suit.
139 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
140 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
141 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
142 Add one '?' on r->r. Modify Z->r splitter to avoid need for
145 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
147 Backport from mainline
148 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
150 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
152 2015-03-24 Uros Bizjak <ubizjak@gmail.com>
154 PR rtl-optimization/60851
155 * recog.c (constrain_operands): Accept a pseudo register before reload
156 for LRA enabled targets.
158 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
160 Backport from trunk r220616.
161 2015-02-11 Martin Liska <mliska@suse.cz>
164 * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
165 value for call to a function that is noreturn.
167 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
169 Backport from trunk r216841.
170 2014-10-29 Martin Liska <mliska@suse.cz>
173 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
174 to local declarations.
175 * function.c (add_local_decl): Implementation moved from header file,
176 assert introduced for tree type.
177 * function.h: Likewise.
179 2015-03-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
181 Backport from mainline
182 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
184 PR rtl-optimization/65235
185 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
186 When first element of vec_concat is const_int, calculate its size
187 using second element.
189 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
192 * expr.c (store_field): Do not do a direct block copy if the source is
193 a PARALLEL with BLKmode.
195 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
197 Backport from mainline
198 * config/s390/s390.c (s390_reorg): Move code to output nops after label
200 (s390_asm_output_function_label): Likewise.
201 * config/s390/s390.c (s390_asm_output_function_label):
202 Fix function label alignment with -mhtopatch.
203 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
204 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
205 ("nop_2_byte"): New define_insn.
206 ("nop_4_byte"): Likewise.
207 ("nop_6_byte"): Likewise.
208 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
209 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
211 2015-03-12 Marek Polacek <polacek@redhat.com>
213 Backported from mainline
214 2015-03-11 Marek Polacek <polacek@redhat.com>
216 PR tree-optimization/65388
217 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
219 2015-03-11 Georg-Johann Lay <avr@gjlay.de>
222 * configure.ac [avr]: Check as for option -mrmw.
223 * configure: Regenerate.
224 * config.in: Regenerate.
225 * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to
226 assembler options if not HAVE_AS_AVR_MRMW_OPTION.
228 2015-03-11 Marek Polacek <polacek@redhat.com>
230 Backported from mainline
231 2014-12-04 Marek Polacek <polacek@redhat.com>
234 * fold-const.c (fold_unary_loc): Perform the negation in A's type
235 when transforming ~ (A - 1) or ~ (A + -1) to -A.
237 2015-03-10 Yvan Roux <yvan.roux@linaro.org>
239 Backport from trunk r220489.
240 2015-02-06 Jakub Jelinek <jakub@redhat.com>
243 * cgraphunit.c (cgraph_node::expand_thunk): If
244 restype is not is_gimple_reg_type nor the thunk_fndecl
245 returns aggregate_value_p, set restmp to a temporary variable
248 2015-03-10 Jakub Jelinek <jakub@redhat.com>
251 * config/rs6000/t-linux: For powerpc64* target set
252 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
254 2015-03-10 Oleg Endo <olegendo@gcc.gnu.org>
257 * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
259 2015-03-10 Alan Modra <amodra@gmail.com>
262 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
263 to be single-arch by default. Set cpu_is_64bit for powerpc64
264 given --with-cpu=native.
265 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
266 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
268 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
269 rs6000_isa_flags rather than TARGET_64BIT.
271 2015-03-05 Michael Meissner <meissner@linux.vnet.ibm.com>
274 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
277 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
278 processor type for 64-bit little endian PowerPC.
280 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
281 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
282 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
283 printing built-in mask so it does not pass NULL pointers.
285 * config/rs6000/rs6000-tables.opt: Regenerate.
287 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
291 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
293 * config/rs6000/default64.h: Include rs6000-cpus.def.
294 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
295 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
296 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
298 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
300 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
301 pseudo-op to specify assembler dialect.
303 2015-03-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
305 Backport from mainline
306 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
309 * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
311 * config/arm/arm.md (consttable_1): Make it TARGET_EITHER.
312 (consttable_2): Make it TARGET_EITHER and move HFmode handling from
314 (consttable_4): Move HFmode handling to consttable_2 pattern.
316 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
319 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
320 called for __stack_chk_guard symbol.
322 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
325 * config/avr/avr.c (context.h, tree-pass.h): Include them.
326 (avr_pass_data_recompute_notes): New static variable.
327 (avr_pass_recompute_notes): New class.
328 (avr_register_passes): New static function.
329 (avr_option_override): Call it.
331 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
333 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
334 to create a register in testing mode.
336 2015-03-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
338 Backport from mainline
339 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
342 * config/arm/arm.c (callee_saved_reg_p): Define.
343 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
344 register is callee saved instead of !call_used_regs[reg].
345 (thumb1_compute_save_reg_mask): Likewise.
347 2015-02-27 Richard Biener <rguenther@suse.de>
350 * builtins.c (get_object_alignment_2): Make sure to re-apply
351 the ANDed mask after recursing to its operand gets us a new
352 misalignment bit position.
354 2015-02-27 Andrew Pinski <apinski@cavium.com>
355 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
357 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
358 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
360 2015-02-27 Richard Biener <rguenther@suse.de>
363 Backport from mainline
364 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
366 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
369 2015-02-25 Peter Bergner <bergner@vnet.ibm.com>
371 Backport from mainline
372 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
374 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
376 2015-02-26 Matthew Fortune <matthew.fortune@imgtec.com>
379 Backported from mainline: r213872, r217446, r217939, r219867
381 * config.in [!USED_FOR_TARGET] (HAVE_AS_DOT_MODULE): Undefine.
382 * config/mips/mips.h (FP_ASM_SPEC): New macro.
383 (ASM_SPEC): Use FP_ASM_SPEC.
384 * configure.ac (HAVE_AS_DOT_MODULE): Detect support for .module
386 * configure: Regenerate.
388 2015-02-25 Jason Merrill <jason@redhat.com>
390 * common.opt (-flifetime-dse): New.
392 2015-02-25 Kai Tietz <ktietz@redhat.com>
394 PR tree-optimization/61917
395 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
396 that reduc_def_stmt is null.
400 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
401 (symtab::noninterposable_alias): Likewise.
403 2015-02-25 Richard Biener <rguenther@suse.de>
404 Kai Tietz <ktietz@redhat.com>
406 Backported from mainline
407 PR tree-optimization/61917
408 * tree-vect-loop.c (vectorizable_reduction): Allow
409 vect_internal_def without reduction to exit graceful.
411 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
414 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
415 only with NONDEBUG_INSN_P.
417 2015-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
419 Backport from mainline
420 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
423 * config/sh/sh.md (movsicc_true+3): Remove peephole.
424 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
425 * config/sh/sh.c (replace_n_hard_rtx): Remove.
427 2015-02-24 Richard Biener <rguenther@suse.de>
429 Backport from mainline
430 2015-02-11 Richard Biener <rguenther@suse.de>
433 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
436 2015-02-13 Richard Biener <rguenther@suse.de>
439 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
440 for LTO produced CUs.
442 2015-02-16 Richard Biener <rguenther@suse.de>
445 * varasm.c (default_file_start): For LTO produced units
446 emit <artificial> as file directive.
448 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
450 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
452 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
454 Backport from mainline
455 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
458 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
459 instead of const_int 4294901760.
461 2015-02-23 Richard Biener <rguenther@suse.de>
463 Backport from mainline
464 2014-11-19 Richard Biener <rguenther@suse.de>
466 PR tree-optimization/63844
467 * omp-low.c (fixup_child_record_type): Use a restrict qualified
468 referece type for the receiver parameter.
470 2014-11-27 Richard Biener <rguenther@suse.de>
472 PR tree-optimization/61634
473 * tree-vect-slp.c: Include gimple-walk.h.
474 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
475 down the SLP tree for one scalar statement.
476 (vect_detect_hybrid_slp_1): New walker function.
477 (vect_detect_hybrid_slp_2): Likewise.
478 (vect_detect_hybrid_slp): Properly handle pattern statements
479 in a pre-scan over all loop stmts.
481 2015-01-14 Richard Biener <rguenther@suse.de>
483 PR tree-optimization/59354
484 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
485 groups larger than the slp group size as having gaps.
487 2015-02-10 Richard Biener <rguenther@suse.de>
489 PR tree-optimization/64909
490 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
491 pass a scalar-stmt count estimate to the cost model.
492 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
494 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
496 Backport from mainline
497 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
499 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
500 Mark operand 0 as earlyclobber in 2nd alternative.
501 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
502 Write negated shift amount into QI lowpart operand 0 and use it
504 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
506 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
508 Backport from 2015-02-20 trunk r220847.
511 * config/avr/avr.md (pushhi_insn): New insn.
512 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
514 2015-02-20 Richard Biener <rguenther@suse.de>
516 Backport from mainline
517 2015-01-12 Richard Biener <rguenther@suse.de>
519 PR tree-optimization/64530
520 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
523 2015-02-13 Richard Biener <rguenther@suse.de>
526 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
529 2015-02-16 Richard Biener <rguenther@suse.de>
531 PR tree-optimization/63593
532 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
533 stmts and releasing SSA names until...
534 (execute_pred_commoning): ... after processing all chains.
536 2015-02-18 Richard Biener <rguenther@suse.de>
538 PR tree-optimization/65063
539 * tree-predcom.c (determine_unroll_factor): Return 1 if we
540 have replaced looparound PHIs.
542 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
544 * config/pa/pa.c (pa_reloc_rw_mask): New function.
545 (TARGET_ASM_RELOC_RW_MASK): Define.
546 (pa_cannot_force_const_mem): Revert previous change.
548 2015-02-19 Richard Biener <rguenther@suse.de>
550 Backport from mainline
551 2014-12-09 Richard Biener <rguenther@suse.de>
554 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
556 2015-01-14 Richard Biener <rguenther@suse.de>
558 PR tree-optimization/64493
559 PR tree-optimization/64495
560 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
561 assign the proper vectorized PHI to the inner loop exit PHIs.
563 2015-01-27 Richard Biener <rguenther@suse.de>
565 PR tree-optimization/56273
566 PR tree-optimization/59124
567 PR tree-optimization/64277
568 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
569 from the first VRP pass.
571 2015-02-19 Richard Biener <rguenther@suse.de>
573 Backport from mainline
574 2015-01-15 Richard Biener <rguenther@suse.de>
577 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
578 for MEM_REF access functions with the same base can never partially
581 2015-02-17 Ilya Tocar <ilya.tocar@intel.com>
583 Backported from mainline
584 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
587 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
588 (vec_unpacks_hi_v16sf): Ditto.
590 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
592 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
593 for all floading point loads and stores except those using a register
595 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
598 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
600 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
602 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
603 symbolic references to data to be forced to constant memory on the
606 2015-02-11 Jakub Jelinek <jakub@redhat.com>
608 Backported from mainline
609 2015-02-09 Jakub Jelinek <jakub@redhat.com>
612 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
615 2015-02-11 Uros Bizjak <ubizjak@gmail.com>
617 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
618 and 3 earlyclobber operands.
620 2015-02-09 Dominik Vogt <vogt@linux.vnet.ibm.com>
622 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
623 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
625 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
626 -mno-hotpatch options. Change syntax of -mhotpatch= option.
627 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
629 (s390_hotpatch_trampoline_halfwords_max): Renamed.
630 (s390_hotpatch_hw_max): New name.
631 (s390_hotpatch_trampoline_halfwords): Renamed.
632 (s390_hotpatch_hw_before_label): New name.
633 (get_hotpatch_attribute): Removed.
634 (s390_hotpatch_hw_after_label): New name.
635 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
637 (s390_attribute_table): Ditto.
638 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
639 (s390_function_num_hotpatch_hw): New name.
640 Remove special handling of inline functions and hotpatching.
641 Return number of nops before and after the function label.
642 (s390_can_inline_p): Removed.
643 (s390_asm_output_function_label): Emit a configurable number of nops
644 after the function label.
645 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
646 (TARGET_CAN_INLINE_P) Removed.
647 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
649 2015-02-05 Segher Boessenkool <segher@kernel.crashing.org>
652 Backport from mainline
653 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
654 (rs6000_stack_info): Add assert.
655 (rs6000_output_savres_externs): New function, split off from...
656 (rs6000_output_function_prologue): ... here. Do not call it for
659 2015-02-04 Matthias Klose <doko@ubuntu.com>
662 Backport from mainline
663 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
667 * ipa.c (symbol_table::remove_unreachable_nodes):
668 Do not put abstract origins into boundary.
670 2015-02-04 Uros Bizjak <ubizjak@gmail.com>
672 Backport from mainline
673 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
676 * config/i386/predicates.md (address_no_seg_operand): Reject
677 non-CONST_INT_P operands in invalid mode.
679 Backport from mainline
680 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
682 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
683 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
684 * config/i386/predicates.md (address_no_seg_operand): Call
685 address_operand with VOIDmode.
686 (vsib_address_operand): Ditto.
688 2015-02-01 H.J. Lu <hongjiu.lu@intel.com>
690 Backported from mainline
691 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
693 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
694 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
695 * config/i386/i386.c (processor_model): Add
696 M_INTEL_COREI7_BROADWELL.
697 (arch_names_table): Add "broadwell".
699 2015-02-01 Jakub Jelinek <jakub@redhat.com>
701 Backported from mainline
702 2015-01-27 Jakub Jelinek <jakub@redhat.com>
704 PR rtl-optimization/61058
705 * jump.c (cleanup_barriers): Update basic block boundaries
706 if BLOCK_FOR_INSN is non-NULL on PREV.
708 2015-01-26 Jakub Jelinek <jakub@redhat.com>
711 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
712 with asterisk, skip the first character.
714 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
715 OPTION_MASK_QUAD_MEMORY_ATOMIC.
717 2015-01-23 Jakub Jelinek <jakub@redhat.com>
719 PR rtl-optimization/63637
720 PR rtl-optimization/60663
721 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
722 if elt->cost is MAX_COST for ASM_OPERANDS.
723 (find_sets_in_insn): Fix up comment typo.
724 (cse_insn): Don't set src_volatile for all non-volatile
725 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
726 or with "memory" clobber. Set elt->cost to MAX_COST
727 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
728 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
731 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
734 2015-01-20 Jakub Jelinek <jakub@redhat.com>
737 * dwarf2out.c (decl_piece_node): Don't put bitsize into
738 mode if bitsize <= 0.
739 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
740 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
743 2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
745 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
746 _mm256_bsrli_epi128): New.
747 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
749 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
751 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
754 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
756 * config/s390/s390.c (s390_register_move_cost): Increase costs for
759 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
761 Backport from mainline
762 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
765 * config/i386/i386.md (*movdi_internal): Also check operand 0
766 to determine TYPE_LEA operand.
767 (*movsi_internal): Ditto.
769 Backport from mainline
770 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
772 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
775 2015-01-23 Jakub Jelinek <jakub@redhat.com>
778 * omp-low.c (scan_sharing_clauses): Don't ignore
779 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
780 on target data/update constructs.
782 2015-01-23 Wei Mi <wmi@google.com>
784 Backported from trunk.
785 2015-01-22 Wei Mi <wmi@google.com>
787 PR rtl-optimization/64557
788 * dse.c (record_store): Call get_addr for mem_addr.
789 (check_mem_read_rtx): Likewise.
791 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
793 * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
796 2015-01-21 Wei Mi <wmi@google.com>
798 Backported from trunk.
799 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
802 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
803 as having abstract origin used.
804 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
806 (clone_inlined_nodes): Copy abstract originflag.
807 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
808 abstract origin node.
810 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
812 Backport from mainline
813 * config/nios2/nios2.c (nios2_asm_file_end): Implement
814 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
816 (TARGET_ASM_FILE_END): Define.
818 2015-01-15 Martin Liska <mliska@suse.cz>
820 Backport from mainline
821 2014-11-27 Richard Biener <rguenther@suse.de>
824 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
825 and instead return false when !fstrict-aliasing.
827 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
829 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
830 set the memory attributes in all cases but clear MEM_EXPR if need be.
832 2015-01-14 Jakub Jelinek <jakub@redhat.com>
834 Backported from mainline
835 2015-01-12 Jakub Jelinek <jakub@redhat.com>
838 * config/i386/i386.c (ix86_expand_prologue): Add
839 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
841 2015-01-13 Jakub Jelinek <jakub@redhat.com>
843 PR rtl-optimization/64286
844 * ree.c (combine_reaching_defs): Move part of comment earlier,
845 remove !SCALAR_INT_MODE_P check.
846 (add_removable_extension): Don't add vector mode
847 extensions if all uses of the source register aren't the same
850 2015-01-12 Jakub Jelinek <jakub@redhat.com>
852 PR tree-optimization/64563
853 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
854 instead of != VR_VARYING.
856 2015-01-14 Marek Polacek <polacek@redhat.com>
858 Backport from mainline
859 2015-01-13 Marek Polacek <polacek@redhat.com>
862 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
864 2015-01-13 Marc Glisse <marc.glisse@inria.fr>
867 * tree.c (build_qualified_type): Use a canonical type for
870 2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
872 Backport from mainline
873 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
876 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
877 input operands if only the second is inverted.
878 * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
879 Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
880 rs6000_split_logical.
881 (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
883 2015-01-13 Renlin Li <renlin.li@arm.com>
885 Backport from mainline:
886 2014-11-19 Renlin Li <renlin.li@arm.com>
889 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
891 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
893 Backport form mainline
894 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
897 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
899 2015-01-09 Jakub Jelinek <jakub@redhat.com>
901 PR rtl-optimization/64536
902 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
905 2015-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
907 Backport from mainline:
908 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
911 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
912 correct reload handler if -m32 -mpowerpc64 is used.
914 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
916 Backport from mainline:
917 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
919 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
921 * config/rs6000/t-rtems: Add e6500 multilibs.
923 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
925 Backport from mainline:
926 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
928 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
931 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
933 Backport from mainline:
934 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
936 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
939 2015-01-09 Renlin Li <renlin.li@arm.com>
941 Backport from mainline:
942 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
945 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
946 of __ARM_SIZEOF_WCHAR_T.
948 2015-01-08 Christian Bruel <christian.bruel@st.com>
951 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
953 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
955 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
956 instead of `m' constraint. Likewise for unnamed movb comparison
957 patterns using reg_before_reload_operand predicate.
958 * config/pa/predicates.md (reg_before_reload_operand): Tighten
959 predicate to reject register index and LO_SUM DLT memory forms
962 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
964 Backport from mainline:
965 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
968 * config/i386/i386.c (ix86_function_type_abi): Issue an error
969 when ms_abi attribute is used with x32.
971 2014-12-27 Uros Bizjak <ubizjak@gmail.com>
973 * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
974 Emit movshdup for SSE3 and shufps otherwise.
975 (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
976 Emit pshufd for SSE2 and shufps otherwise.
978 2014-12-24 Nick Clifton <nickc@redhat.com>
980 Backport from mainline:
981 2014-06-13 Nick Clifton <nickc@redhat.com>
983 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
984 requested alignment is active.
985 (LABEL_ALIGN): Likewise.
986 (LOOP_ALIGN): Likewise.
988 2014-03-25 Nick Clifton <nickc@redhat.com>
990 * config/rx/rx.c (rx_print_operand): Allow R operator to accept
993 2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
995 Backport from mainline
996 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
998 PR rtl-optimization/64010
999 * reload.c (push_reload): Before reusing a register contained
1000 in an operand as input reload register, ensure that it is not
1001 used in CALL_INSN_FUNCTION_USAGE.
1003 2014-12-15 Jakub Jelinek <jakub@redhat.com>
1006 * tsan.c (instrument_func_entry): Insert __tsan_func_entry
1007 call on edge from entry block to single succ instead
1008 of after labels of single succ of entry block.
1010 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1012 Backported from mainline
1013 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1015 PR rtl-optimization/64037
1016 * combine.c (setup_incoming_promotions): Pass the argument
1017 before any promotions happen to promote_function_mode.
1019 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1021 Backported from mainline
1022 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
1025 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1026 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1028 2014-12-13 Jakub Jelinek <jakub@redhat.com>
1030 Backported from mainline
1031 2014-12-12 Jakub Jelinek <jakub@redhat.com>
1033 PR tree-optimization/64269
1034 * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1035 len2 or diff are too large.
1037 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
1039 * doc/md.texi (Insn Lengths): Fix description of (pc).
1041 2014-12-11 Renlin Li <renlin.li@arm.com>
1043 Backport from mainline
1044 2014-12-11 Renlin Li <renlin.li@arm.com>
1046 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1048 (aarch64_override_options): Use selected_cpu's tuning.
1050 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1052 Backport from mainline
1053 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1055 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
1056 built-in definition.
1057 (XVCVUXDDP_SCALE): Likewise.
1058 (XVCVDPSXDS_SCALE): Likewise.
1059 (XVCVDPUXDS_SCALE): Likewise.
1060 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1061 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1062 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1063 VSX_BUILTIN_XVCVDPUXDS_SCALE.
1064 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1066 * config/rs6000/rs6000.c (real.h): New include.
1067 (rs6000_scale_v2df): New function.
1068 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1069 (UNSPEC_VSX_XVCVUXDDP): Likewise.
1070 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1071 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1072 (vsx_xvcvsxddp_scale): New define_expand.
1073 (vsx_xvcvsxddp): New define_insn.
1074 (vsx_xvcvuxddp_scale): New define_expand.
1075 (vsx_xvcvuxddp): New define_insn.
1076 (vsx_xvcvdpsxds_scale): New define_expand.
1077 (vsx_xvcvdpsxds): New define_insn.
1078 (vsx_xvcvdpuxds_scale): New define_expand.
1079 (vsx_xvcvdpuxds): New define_insn.
1080 * doc/extend.texi (vec_ctf): Add new prototypes.
1081 (vec_cts): Likewise.
1082 (vec_ctu): Likewise.
1083 (vec_splat): Likewise.
1084 (vec_div): Likewise.
1085 (vec_mul): Likewise.
1087 Backport from mainline
1088 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1090 * config/rs6000/altivec.h (vec_xl): New #define.
1091 (vec_xst): Likewise.
1092 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
1093 (XXSPLTD_V2DI): Likewise.
1094 (DIV_V2DI): Likewise.
1095 (UDIV_V2DI): Likewise.
1096 (MUL_V2DI): Likewise.
1097 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1098 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
1099 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
1100 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
1101 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
1102 (UNSPEC_VSX_DIVSD): Likewise.
1103 (UNSPEC_VSX_DIVUD): Likewise.
1104 (UNSPEC_VSX_MULSD): Likewise.
1105 (vsx_mul_v2di): New insn-and-split.
1106 (vsx_div_v2di): Likewise.
1107 (vsx_udiv_v2di): Likewise.
1108 (vsx_xxspltd_<mode>): New insn.
1110 Backport from mainline
1111 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1113 * config/rs6000/altivec.h (vec_cpsgn): New #define.
1114 (vec_mergee): Likewise.
1115 (vec_mergeo): Likewise.
1116 (vec_cntlz): Likewise.
1117 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
1118 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
1119 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
1121 * doc/extend.texi: Document various forms of vec_cpsgn,
1122 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
1123 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
1124 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
1125 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
1126 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
1128 Backport from mainline
1129 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1131 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
1132 (altivec_vsldoi_<mode>): Likewise.
1135 2014-12-10 Jakub Jelinek <jakub@redhat.com>
1137 PR tree-optimization/62021
1138 * omp-low.c (simd_clone_adjust_return_type): Use
1139 vector of pointer_sized_int_node types instead vector of pointer
1141 (simd_clone_adjust_argument_types): Likewise.
1143 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1145 Backport from mainline:
1146 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1149 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1150 for BUILT_IN_POW when flag_errno_math is present.
1152 2014-12-10 Marek Polacek <polacek@redhat.com>
1154 Backport from mainline
1155 2014-12-10 Marek Polacek <polacek@redhat.com>
1157 PR tree-optimization/61686
1158 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1161 2014-12-09 David Edelsohn <dje.gcc@gmail.com>
1163 Backport from mainline
1164 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
1166 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1167 alignment to section name. Increase default alignment to
1170 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
1174 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1176 PR rtl-optimization/64037
1177 * combine.c (setup_incoming_promotions): Pass the argument
1178 before any promotions happen to promote_function_mode.
1180 2014-12-09 Richard Biener <rguenther@suse.de>
1182 PR tree-optimization/64191
1183 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1184 not relevant (nor are their uses).
1186 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1188 Backport from mainline
1189 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1192 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1194 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1196 Backport from mainline
1197 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
1200 * config/i386/i386.c (decide_alg): Stop only if there aren't
1201 any usable algorithms.
1203 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1205 Backport from mainline
1206 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1208 PR rtl-optimization/64037
1209 * combine.c (setup_incoming_promotions): Pass the argument
1210 before any promotions happen to promote_function_mode.
1212 2014-12-04 Tobias Burnus <burnus@net-b.de>
1215 (ac_has_isl_schedule_constraints_compute_schedule):
1217 * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
1218 * graphite-interchange.c: Ditto.
1219 * graphite-poly.c: Ditto.
1220 * graphite-sese-to-poly.c: Ditto.
1221 * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
1222 Conditionally use ISL 0.13+ functions.
1223 * config.in: Regenerate.
1224 * configure: Regenerate.
1226 2014-12-04 Jakub Jelinek <jakub@redhat.com>
1229 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1230 Handle COMPOUND_EXPR.
1232 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1235 * expmed.c (expand_widening_mult): Return const0_rtx if
1238 2014-12-03 Martin Jambor <mjambor@suse.cz>
1241 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1242 type sizes before view_converting.
1244 2014-12-03 Shanyao Chen <chenshanyao@huawei.com>
1246 Backport from mainline
1247 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1250 * config/arm/arm.md (*movhi_insn): Use right formatting
1253 2014-11-19 Felix Yang <felix.yang@huawei.com>
1254 Shanyao Chen <chenshanyao@huawei.com>
1257 * config/arm/arm.md (define_attr "arch"): Add v6t2.
1258 (define_attr "arch_enabled"): Add test for the above.
1259 (*movhi_insn_arch4): Add new alternative.
1261 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1263 Backported from mainline
1264 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1268 * ira.c (ira): Update preferred class.
1270 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
1273 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1274 using post-reload splitter. Use peephole2 pass instead.
1275 (call_value_osf_tlsldm): Ditto.
1276 (TLS_CALL): New int iterator.
1277 (tls): New int attribute.
1278 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1279 and call_value_tlsldm using TLS_CALL int iterator.
1281 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1284 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1285 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1287 2014-12-01 Richard Biener <rguenther@suse.de>
1290 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
1291 htab_hash_pointer to not break PCH.
1293 2014-12-01 Martin Jambor <mjambor@suse.cz>
1296 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1297 value of the argument to the type of the value in the condition.
1299 2014-11-28 Jakub Jelinek <jakub@redhat.com>
1301 Backported from mainline
1302 2014-11-27 Jakub Jelinek <jakub@redhat.com>
1305 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1306 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1307 not only if modifier is EXPAND_INITIALIZER, but whenever
1308 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1310 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1312 PR tree-optimization/63915
1313 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1314 true instead of false as last argument to gsi_replace.
1317 * ubsan.c: Include tree-eh.h.
1318 (instrument_bool_enum_load): Handle loads that can throw.
1320 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1322 PR rtl-optimization/63659
1323 * ree.c (update_reg_equal_equiv_notes): New function.
1324 (combine_set_extension, transform_ifelse): Use it.
1326 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1328 Backport from mainline.
1329 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1331 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
1334 2014-11-26 Richard Biener <rguenther@suse.de>
1337 * tree-data-ref.c (split_constant_offset_1): Do not follow
1338 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1340 2014-11-26 Richard Biener <rguenther@suse.de>
1342 Backport from mainline
1343 2014-11-26 Richard Biener <rguenther@suse.de>
1345 PR tree-optimization/62238
1346 * tree-predcom.c (ref_at_iteration): Unshare the expression
1347 before gimplifying it.
1349 2014-11-25 Richard Biener <rguenther@suse.de>
1351 PR tree-optimization/61927
1352 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
1353 of group and pattern analysis to the one in GCC 4.8.
1355 2014-11-07 Richard Biener <rguenther@suse.de>
1357 PR tree-optimization/63605
1358 * fold-const.c (fold_binary_loc): Properly use element_precision
1359 for types that may not be scalar.
1361 2014-10-28 Richard Biener <rguenther@suse.de>
1364 * fold-const.c (fold_comparison): Properly guard simplifying
1365 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
1367 2014-11-25 Rohit <rohitarulraj@freescale.com>
1370 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
1371 added GCC hard register numbers for SPE high registers.
1373 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
1375 Backport from mainline
1376 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
1379 * config/sh/sh_optimize_sett_clrt.cc
1380 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
1381 of void. Abort at complex edges.
1382 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
1385 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
1387 Backport from mainline
1388 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
1392 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
1393 Do not emit bitwise not insn. Emit logical not insn sequence instead.
1394 Adjust related comments throughout the file.
1396 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
1398 Backport from mainline
1399 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
1402 * config/sh/sh.c: Use signed char for signed field.
1404 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1407 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
1408 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
1411 2014-11-21 Richard Biener <rguenther@suse.de>
1413 PR tree-optimization/61750
1414 * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
1415 match for the resulting VIEW_CONVERT_EXPR.
1417 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
1420 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
1421 Output "b" and "nb" suffix for FP mode.
1423 2014-11-19 Tom de Vries <tom@codesourcery.com>
1425 Backport from mainline
1426 PR tree-optimization/62167
1427 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
1429 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
1432 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
1434 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
1435 * doc/tm.texi: Regenerate.
1437 2014-11-14 Felix Yang <felix.yang@huawei.com>
1439 Backport from mainline
1440 2014-11-14 Felix Yang <felix.yang@huawei.com>
1441 Jiji Jiang <jiangjiji@huawei.com>
1443 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
1444 VALL mode iterator instead of VALLDI.
1446 2014-11-13 Teresa Johnson <tejohnson@google.com>
1448 PR tree-optimization/63841
1449 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
1451 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org>
1453 Backport from mainline
1454 2014-11-02 Michael Collison <michael.collison@linaro.org>
1456 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
1457 to support vector modes.
1458 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1460 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
1462 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
1463 (REVERSIBLE_CC_MODE): Fix example.
1464 (REVERSE_CONDITION): Fix typo.
1465 * doc/tm.texi: Regenerate.
1467 2014-11-12 Jakub Jelinek <jakub@redhat.com>
1470 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
1471 chain instead of node->indirect_calls.
1473 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
1476 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
1477 smaller than 8 bytes.
1478 (sparc_function_arg_1): Tweak.
1479 (sparc_function_value_1): Tweak.
1481 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
1483 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
1485 (thumb_set_return_address): Likewise.
1487 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
1489 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
1490 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
1492 2014-11-07 Marek Polacek <polacek@redhat.com>
1494 Backported from mainline
1495 2014-10-23 Marek Polacek <polacek@redhat.com>
1497 * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
1500 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
1502 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
1503 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
1506 2014-11-06 Daniel Hellstrom <daniel@gaisler.com>
1508 * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
1509 * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
1510 * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
1512 * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
1513 * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
1514 * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
1515 * config/sparc/sparc.md (cpu): Add leon3v7.
1516 * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
1518 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
1521 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
1522 (ix86_encode_section_info): Do not check for non-automatic varibles
1523 when setting SYMBOL_FLAG_FAR_ADDR flag.
1524 (x86_64_elf_select_section): Do not check ix86_cmodel here.
1525 (x86_64_elf_unique_section): Ditto.
1526 (x86_elf_aligned_common): Emit tab before .largecomm.
1528 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
1530 Backport from mainline:
1531 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
1533 * varasm.c (const_alias_set): Remove.
1534 (init_varasm_once): Remove initialization of const_alias_set.
1535 (build_constant_desc): Do not set alias set to const_alias_set.
1537 Backport from mainline:
1538 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
1540 PR rtl-optimization/63475
1541 * alias.c (true_dependence_1): Always use get_addr to extract
1542 true address operands from x_addr and mem_addr. Use extracted
1543 address operands to check for references with alignment ANDs.
1544 Use extracted address operands with find_base_term and
1545 base_alias_check. For noncanonicalized operands call canon_rtx with
1546 extracted address operand.
1547 (write_dependence_1): Ditto.
1548 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
1550 Backport from mainline:
1551 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
1553 PR rtl-optimization/63483
1554 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
1555 references when alignment ANDs are involved.
1556 (write_dependence_p): Ditto.
1557 (may_alias_p): Ditto.
1559 2014-10-31 DJ Delorie <dj@redhat.com>
1561 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
1563 2014-10-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1565 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
1566 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1567 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
1568 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1570 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1573 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
1574 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
1575 instead of vr0.min - vr1.min and vr0.max - vr1.max.
1577 2014-10-30 Georg-Johann Lay <avr@gjlay.de>
1580 * config/avr/avr-protos.h (regmask): New inline function.
1581 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
1582 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
1583 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
1584 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
1585 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
1586 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
1587 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
1588 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
1589 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
1590 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
1591 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
1592 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
1593 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
1596 2014-10-30 Jakub Jelinek <jakub@redhat.com>
1598 * BASE-VER: Set to 4.9.3.
1599 * DEV-PHASE: Set to prerelease.
1601 2014-10-30 Release Manager
1603 * GCC 4.9.2 released.
1605 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1607 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
1608 recog state after aarch64_prev_real_insn call.
1610 2014-10-27 Guozhi Wei <carrot@google.com>
1612 PR tree-optimization/63530
1613 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
1614 pointer alignment according to DR_MISALIGNMENT.
1616 2014-10-25 Yury Gribov <y.gribov@samsung.com>
1619 * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
1621 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
1624 * collect2.c (main): Filter out -fno-lto.
1626 2014-10-22 Richard Biener <rguenther@suse.de>
1627 Tobias Burnus <burnus@net-b.de>
1630 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
1632 2014-10-21 Jakub Jelinek <jakub@redhat.com>
1634 PR tree-optimization/63563
1635 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1636 if either dra or drb stmts are not normal loads/stores.
1638 2014-10-17 Jakub Jelinek <jakub@redhat.com>
1640 * asan.c (instrument_derefs): Allow instrumentation of odd-sized
1641 accesses even for -fsanitize=address.
1642 (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
1644 PR tree-optimization/63302
1645 * tree-ssa-reassoc.c (optimize_range_tests_xor,
1646 optimize_range_tests_diff): Use !integer_pow2p () instead of
1649 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1651 * asan.c (instrument_derefs): Enable unaligned path for KASan.
1653 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1655 Backport from mainline
1656 2014-10-03 Yury Gribov <y.gribov@samsung.com>
1658 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
1659 don't emit empty ctors.
1661 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1663 Backport from mainline
1664 2014-09-01 Yury Gribov <y.gribov@samsung.com>
1669 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
1670 (build_check_stmt): Likewise.
1671 (instrument_strlen_call): Likewise.
1672 (asan_expand_check_ifn): Likewise and fix types.
1673 (maybe_cast_to_ptrmode): New function.
1675 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1677 Backport from mainline
1678 2014-08-18 Yury Gribov <y.gribov@samsung.com>
1682 * asan.c (instrument_derefs): Fix bitfield check.
1684 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1686 Backport from mainline
1687 2014-08-11 Yury Gribov <y.gribov@samsung.com>
1689 * asan.c (asan_check_flags): New enum.
1690 (build_check_stmt_with_calls): Removed function.
1691 (build_check_stmt): Split inlining logic to
1692 asan_expand_check_ifn.
1693 (instrument_derefs): Rename parameter.
1694 (instrument_mem_region_access): Rename parameter.
1695 (instrument_strlen_call): Likewise.
1696 (asan_expand_check_ifn): New function.
1697 (asan_instrument): Remove old code.
1698 (pass_sanopt::execute): Change handling of
1699 asan-instrumentation-with-call-threshold.
1700 (asan_clear_shadow): Fix formatting.
1701 (asan_function_start): Likewise.
1702 (asan_emit_stack_protection): Likewise.
1703 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
1705 * internal-fn.c (expand_ASAN_CHECK): New function.
1706 * internal-fn.def (ASAN_CHECK): New internal function.
1707 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
1709 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
1710 * tree.c: Small comment fix.
1712 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1714 Backport from mainline
1715 2014-08-11 Yury Gribov <y.gribov@samsung.com>
1717 * gimple.c (gimple_call_fnspec): Support internal functions.
1718 (gimple_call_return_flags): Use const.
1719 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
1720 * internal-fn.def: Add fnspec information.
1721 * internal-fn.h (internal_fn_fnspec): New function.
1722 (init_internal_fns): Declare new function.
1723 * internal-fn.c (internal_fn_fnspec_array): New global variable.
1724 (init_internal_fns): New function.
1725 * tree-core.h: Update macro call.
1726 * tree.c (build_common_builtin_nodes): Initialize internal fns.
1728 Backport from mainline
1729 2014-08-12 Yury Gribov <y.gribov@samsung.com>
1731 * internal-fn.c (init_internal_fns): Fix off-by-one.
1733 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1735 Backport from mainline
1736 2014-07-31 Yury Gribov <y.gribov@samsung.com>
1738 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
1739 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
1740 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
1742 * gcc.c (sanitize_spec_function): Support new option.
1743 (SANITIZER_SPEC): Remove now redundant check.
1744 * opts.c (common_handle_option): Support new option.
1745 (finish_options): Check for incompatibilities.
1746 * toplev.c (process_options): Split userspace-specific checks.
1748 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1750 Backport from mainline
1751 2014-06-24 Max Ostapenko <m.ostapenko@partner.samsung.com>
1753 * asan.c (instrument_strlen_call): Do not instrument first byte in
1754 strlen if already instrumented.
1756 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1758 Backport from mainline
1759 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1761 * asan.c (check_func): New function.
1762 (maybe_create_ssa_name): Likewise.
1763 (build_check_stmt_with_calls): Likewise.
1764 (use_calls_p): Likewise.
1765 (report_error_func): Change interface.
1766 (build_check_stmt): Allow non-integer lengths; add support
1768 (asan_instrument): Likewise.
1769 (instrument_mem_region_access): Moved code to
1771 (instrument_derefs): Likewise.
1772 (instrument_strlen_call): Likewise.
1773 * cfgcleanup.c (old_insns_match_p): Add support for new
1775 * doc/invoke.texi: Describe new parameter.
1776 * params.def: Define new parameter.
1777 * params.h: Likewise.
1778 * sanitizer.def: Describe new builtins.
1780 Backport from mainline
1781 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1783 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
1785 Backport from mainline
1786 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1790 * asan.c (build_check_stmt): Add condition.
1792 Backport from mainline
1793 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1797 * asan.c (instrument_strlen_call): Fixed instrumentation of
1800 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1802 Backport from mainline
1803 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1805 * asan.c (report_error_func): Add SLOW_P argument, use
1806 BUILT_IN_ASAN_*_N if set.
1807 (build_check_stmt): Likewise.
1808 (instrument_derefs): If T has insufficient alignment,
1809 force same handling as for odd sizes.
1811 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1813 Backport from mainline
1814 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1816 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
1817 BUILT_IN_ASAN_REPORT_STORE_N): New.
1818 * asan.c (struct asan_mem_ref): Change access_size type to
1820 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
1821 update_mem_ref_hash_table): Likewise.
1822 (asan_mem_ref_hasher::hash): Hash in a HWI.
1823 (report_error_func): Change size_in_bytes argument to HWI.
1824 Use *_N builtins if size_in_bytes is larger than 16 or not power of
1826 (build_shadow_mem_access): New function.
1827 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
1828 Handle size_in_bytes not power of two or larger than 16.
1829 (instrument_derefs): Don't give up if size_in_bytes is not
1830 power of two or is larger than 16.
1832 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
1834 PR rtl-optimization/63448
1835 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1836 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1837 (LRA_MAX_INHERITANCE_PASSES): Use it.
1838 (lra_constraint_iter_after_spill): Remove.
1839 (lra_assignment_iter): New.
1840 (lra_assignment_iter_after_spill): New.
1841 * lra-assigns.c (lra_assignment_iter): New.
1842 (lra_assignment_iter_after_spill): New.
1843 (former_reload_pseudo_spill_p): New.
1844 (spill_for): Set up former_reload_pseudo_spill_p.
1845 (setup_live_pseudos_and_spill_after_risky): Ditto.
1846 (assign_by_spills): Ditto.
1847 (lra_assign): Increment lra_assignment_iter. Print the iteration
1848 number. Reset former_reload_pseudo_spill_p. Check
1849 lra_assignment_iter_after_spill.
1850 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
1851 lra_assignment_iter and lra_assignment_iter_after_spill.
1852 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1853 (lra_constraints): Remove code with
1854 lra_assignment_iter_after_spill.
1856 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
1858 * stor-layout.c (self_referential_size): Do not promote arguments.
1860 2014-10-15 Richard Biener <rguenther@suse.de>
1862 Backport from mainline
1863 2014-08-15 Richard Biener <rguenther@suse.de>
1865 PR tree-optimization/62031
1866 * tree-data-ref.c (dr_analyze_indices): Do not set
1867 DR_UNCONSTRAINED_BASE.
1868 (dr_may_alias_p): All indirect accesses have to go the
1869 formerly DR_UNCONSTRAINED_BASE path.
1870 * tree-data-ref.h (struct indices): Remove
1871 unconstrained_base member.
1872 (DR_UNCONSTRAINED_BASE): Remove.
1874 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1876 Backport from mainline r215880
1877 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1879 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1880 Issue a warning message when vec_lvsl or vec_lvsr is used with a
1881 little endian target.
1883 Backport from mainline r215882
1884 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1886 * altivec.md (altivec_lvsl): New define_expand.
1887 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
1888 (altivec_lvsr): New define_expand.
1889 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
1890 * rs6000.c (rs6000_expand_builtin): Change to use
1891 altivec_lvs[lr]_direct; remove commented-out code.
1893 2014-10-10 Richard Biener <rguenther@suse.de>
1895 PR tree-optimization/63379
1896 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
1897 a neutral operand for min/max when it is not a reduction chain.
1899 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1901 Backport from mainline
1902 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1904 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
1905 * configure: Regenerate.
1906 * config/aarch64/aarch64.c (aarch64_override_options): Handle
1907 TARGET_FIX_ERR_A53_835769_DEFAULT.
1908 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
1910 * doc/install.texi (aarch64*-*-*): Document new
1911 --enable-fix-cortex-a53-835769 option.
1913 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1915 Backport from mainline
1916 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1917 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1919 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
1920 (ADJUST_INSN_LENGTH): Define.
1921 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
1922 * config/aarch64/aarch64.c (is_mem_p): New function.
1923 (is_memory_op): Likewise.
1924 (aarch64_prev_real_insn): Likewise.
1925 (is_madd_op): Likewise.
1926 (dep_between_memop_and_curr): Likewise.
1927 (aarch64_madd_needs_nop): Likewise.
1928 (aarch64_final_prescan_insn): Likewise.
1929 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
1930 and -mno-fix-cortex-a53-835769 options.
1932 2014-10-10 Richard Biener <rguenther@suse.de>
1934 PR tree-optimization/63380
1935 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
1938 2014-10-09 Richard Biener <rguenther@suse.de>
1940 PR tree-optimization/61969
1941 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
1944 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1946 Backport from mainline
1947 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1949 PR rtl-optimization/57003
1950 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1951 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
1952 killing regs_invalidated_by_call.
1954 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1956 Backport from mainline
1957 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1960 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
1961 atomic_fetch_<fetchop_name>si_hard,
1962 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
1963 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
1964 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
1965 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
1967 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1970 * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
1972 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1975 * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
1978 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1981 * lto-streamer-out.c (lto_output): Handle thunks correctly.
1982 * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
1984 2014-10-03 Jakub Jelinek <jakub@redhat.com>
1987 * omp-low.c (taskreg_contexts): New variable.
1988 (scan_omp_parallel): Push newly created context into taskreg_contexts
1989 vector and move record layout code to finish_taskreg_scan.
1990 (scan_omp_task): Likewise.
1991 (finish_taskreg_scan): New function.
1992 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
1993 vector elements and release it.
1995 2014-10-02 Martin Jambor <mjambor@suse.cz>
1997 PR tree-optimization/63375
1998 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2001 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2004 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
2008 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
2009 argument to avx2_permv2ti.
2012 Backported from mainline
2013 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
2016 * cgraphunit.c (analyze_functions): Use get_create rather than get
2017 for decls which are clones of abstract functions.
2019 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2021 Backported from mainline
2022 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
2025 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
2028 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2030 PR tree-optimization/63186
2031 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2032 (mark_nonssa_use): Likewise.
2033 (verify_non_ssa_vars): Verify all header blocks for label
2036 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2038 Backport from mainline
2039 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2041 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
2043 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
2045 Backport from mainline
2046 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
2048 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2049 (fmod<mode>3): Ditto.
2050 (fpremxf4_i387): Ditto.
2051 (reminderxf3): Ditto.
2052 (reminder<mode>3): Ditto.
2053 (fprem1xf4_i387): Ditto.
2055 2014-09-30 David Malcolm <dmalcolm@redhat.com>
2058 * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
2060 2014-09-30 Jakub Jelinek <jakub@redhat.com>
2063 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
2064 or invert_jump_1 if jump isn't any_condjump_p.
2066 2014-09-29 James Clarke <jrtc27@jrtc27.com>
2067 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2070 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
2072 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
2073 kernel version check to avoid incrementing it after every major OS X
2075 (darwin_default_min_version): Avoid static memory buffer.
2077 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
2079 Backport from mainline r212303
2081 * config/arm/arm-protos.h (arm_legitimate_address_p,
2082 arm_is_constant_pool_ref): Add prototypes.
2083 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2084 (arm_is_constant_pool_ref) New function.
2085 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2086 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2087 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2088 operand and remove pool_range and neg_pool_range attributes.
2089 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2090 pool_range and neg_pool_range attributes.
2091 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
2092 constant pool references.
2094 2014-09-29 Jakub Jelinek <jakub@redhat.com>
2097 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
2098 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
2099 use the alignment of avar rather than ovar.
2101 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
2103 * config/pa/pa.c (pa_output_function_epilogue): Only update
2104 last_address when a nonnote insn is found.
2106 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2108 Backport from mainline
2109 2014-09-25 Nick Clifton <nickc@redhat.com>
2110 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2113 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
2114 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
2116 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2118 Backport from mainline r215559
2119 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2122 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
2123 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2125 2014-09-25 Jakub Jelinek <jakub@redhat.com>
2127 PR tree-optimization/63341
2128 * tree-vectorizer.h (vect_create_data_ref_ptr,
2129 vect_create_addr_base_for_vector_ref): Add another tree argument
2130 defaulting to NULL_TREE.
2131 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
2132 argument, pass it down to vect_create_addr_base_for_vector_ref.
2133 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
2134 add that to base_offset too if non-NULL.
2135 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
2136 for dr_explicit_realign_optimized set it to vector byte size
2137 - 1 instead of setting offset, pass byte_offset down to
2138 vect_create_data_ref_ptr.
2140 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2142 Backport from mainline
2143 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2145 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
2146 refine the constraints used on 32/64-bit floating point moves.
2148 (f64_vsx): Likewise.
2151 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
2152 (BOOL_REGS_OP1): Likewise.
2153 (BOOL_REGS_OP2): Likewise.
2154 (BOOL_REGS_UNARY): Likewise.
2155 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
2156 32/64-bit floating point moves. Do not use wa, instead use ww/ws
2157 for moves involving VSX registers. Do not use constraints that
2158 target VSX registers for decimal types.
2159 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
2160 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
2162 2014-09-22 Marek Polacek <polacek@redhat.com>
2164 Backport from mainline
2165 2014-05-21 Marek Polacek <polacek@redhat.com>
2168 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
2170 2014-09-22 Jakub Jelinek <jakub@redhat.com>
2173 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
2174 insert a debug source bind stmt setting DEBUG_EXPR_DECL
2175 instead of a normal gimple assignment stmt.
2177 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2179 Back port from trunk:
2180 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2182 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
2183 for base_reg_operand to be common between LO_SUM and PLUS.
2184 (fusion_gpr_mem_combo): New predicate to match a fused address
2185 that combines the addis and memory offset address.
2187 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
2189 (emit_fusion_gpr_load): Likewise.
2191 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
2192 signature to pass each argument separately, rather than
2193 using an operands array. Rewrite the insns found by peephole2 to
2194 be a single insn, rather than hoping the insns will still be
2195 together when the peephole pass is done. Drop being called via a
2197 (emit_fusion_gpr_load): Change calling signature to be called from
2198 the fusion_gpr_load_<mode> insns with a combined memory address
2199 instead of the peephole pass passing the addis and offset
2202 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
2204 (power8 fusion peephole): Drop support for doing power8 via a
2205 normal peephole that was created by the peephole2 pass.
2206 (power8 fusion peephole2): Create a new insn with the fused
2207 address, so that the fused operation is kept together after
2208 register allocation is done.
2209 (fusion_gpr_load_<mode>): Likewise.
2211 2014-09-18 Jakub Jelinek <jakub@redhat.com>
2214 * asan.c (transform_statements): Don't instrument clobber statements.
2216 2014-09-17 Jakub Jelinek <jakub@redhat.com>
2219 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
2220 if there are only debug stmts after the noreturn call, instead
2221 remove the debug stmts.
2223 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2225 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
2226 Enable selection of 'posix' or no thread model.
2228 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
2231 * config/pa/pa.c (pa_function_value): Directly handle aggregates
2232 that fit exactly in a word or double word.
2234 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
2236 * doc/install.texi (Options specification): add
2237 --disable-libsanitizer item.
2239 2014-09-12 DJ Delorie <dj@redhat.com>
2241 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
2242 (extend_and_shift1_hipsi2): Likewise.
2243 (extend_and_shift2_hipsi2): Likewise.
2245 2014-09-12 Martin Jambor <mjambor@suse.cz>
2248 * cgraph.h (cgraph_analyze_function): Declare.
2249 * cgraphunit.c: (analyze_function): Remove forward declaration,
2250 rename to cgraph_analyze_function, made external.
2251 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2252 new decl properly. Analyze the new thunk if it is expanded.
2254 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2256 Backport from mainline
2257 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2260 * config/i386/i386.c (ix86_option_override_internal): Also turn
2261 off OPTION_MASK_ABI_X32 for -m16.
2263 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2265 Backport from mainline.
2266 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2268 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2270 (vmull_high_lane_s32): Likewise.
2271 (vmull_high_lane_u16): Likewise.
2272 (vmull_high_lane_u32): Likewise.
2274 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2276 Backport r214946 from mainline
2277 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2279 * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
2281 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2283 Backport r214953 from mainline
2284 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2286 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2287 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2289 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2290 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2291 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2292 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2293 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2294 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2295 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2296 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2297 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2298 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2299 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2300 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2301 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2302 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2303 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2304 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2305 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2306 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2307 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2308 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2309 with int{32,16,8}_t.
2311 2014-09-11 Jason Merrill <jason@redhat.com>
2314 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2316 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
2318 Backport from 2014-09-11 trunk r215152.
2321 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
2322 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
2323 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
2325 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2327 Backport from mainline
2328 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2330 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
2331 V2DF, V4SF, DF, and DI modes.
2332 (vsx_fmav2df2): Likewise.
2333 (vsx_float_fix_<mode>2): Likewise.
2334 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
2336 2014-09-10 Xinliang David Li <davidxl@google.com>
2338 Backport from mainline
2340 * config/arm/arm.md (movcond_addsi): Handle case where source
2341 and target operands are the same.
2343 2014-09-10 Alan Modra <amodra@gmail.com>
2346 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2349 2014-09-09 Bill Schmidt <wschmidt@us.ibm.com>
2351 Backported from mainline
2352 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2354 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2355 selection of 0th memory doubleword, regardless of endianness.
2357 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
2359 Backport from mainline
2360 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
2362 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
2366 2014-09-09 Jason Merrill <jason@redhat.com>
2370 * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
2371 reference to a DECL_EXTERNAL COMDAT.
2373 2014-09-09 Richard Biener <rguenther@suse.de>
2375 Backport from mainline
2376 2014-08-05 Richard Biener <rguenther@suse.de>
2378 PR rtl-optimization/61672
2379 * emit-rtl.h (mem_attrs_eq_p): Declare.
2380 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
2381 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
2382 * cfgcleanup.c (merge_memattrs): Likewise.
2385 2014-08-11 Richard Biener <rguenther@suse.de>
2387 PR tree-optimization/62075
2388 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
2389 handle uses in patterns.
2391 2014-08-14 Richard Biener <rguenther@suse.de>
2393 PR rtl-optimization/62079
2394 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
2397 2014-08-26 Richard Biener <rguenther@suse.de>
2399 PR tree-optimization/62175
2400 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2401 expand possibly trapping operations.
2403 2014-09-08 DJ Delorie <dj@redhat.com>
2405 * doc/invoke.texi (MSP430 Options): Add -minrt.
2407 2014-09-05 Easwaran Raman <eraman@google.com>
2409 Backport from mainline
2410 PR rtl-optimization/62146
2411 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
2412 hoisted instruction unconditional.
2414 2014-09-04 Guozhi Wei <carrot@google.com>
2417 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2418 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2419 it into two patterns.
2420 (move_lo_quad_internal_be_<mode>): Likewise.
2422 2014-09-03 Martin Jambor <mjambor@suse.cz>
2425 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2426 pass-trough jump functions correctly.
2428 2014-09-03 Martin Jambor <mjambor@suse.cz>
2431 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2432 created replacements in ascending order of offsets.
2433 (known_aggs_to_agg_replacement_list): Likewise.
2435 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
2437 Backport from mainline
2438 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
2441 * config/sh/sh.md (ashlsi3): Handle negative shift count for
2443 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
2445 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
2447 Backport from mainline
2448 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
2451 * config/sh/predicates.md (general_extend_operand): Disable
2452 TRUNCATE before reload completes.
2454 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
2456 Backport from mainline
2457 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
2460 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2462 2014-09-01 Jakub Jelinek <jakub@redhat.com>
2465 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2466 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2467 (find_inc): Revert 2014-08-12 change.
2469 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
2470 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
2471 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
2473 2014-09-01 Marek Polacek <polacek@redhat.com>
2475 Backport from mainline
2476 2014-08-21 Marek Polacek <polacek@redhat.com>
2479 * expr.c (is_aligning_offset): Remove logical not.
2481 2014-09-01 Marek Polacek <polacek@redhat.com>
2483 Backport from mainline
2484 2014-08-19 Marek Polacek <polacek@redhat.com>
2487 * cgraphunit.c (handle_alias_pairs): Fix condition.
2489 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
2491 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
2492 prefix to function labels when generating fast indirect calls.
2494 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
2496 Backport from mainline
2497 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
2500 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
2502 2014-08-27 Guozhi Wei <carrot@google.com>
2505 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
2506 amount before using it.
2508 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
2510 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
2512 2014-08-26 Marek Polacek <polacek@redhat.com>
2514 Backport from mainline
2515 2014-08-26 Marek Polacek <polacek@redhat.com>
2518 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
2519 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
2521 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
2523 Backport from mainline
2524 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
2527 * config/sh/sh.opt (musermode): Allow negative form.
2528 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
2529 targets that don't support it.
2530 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
2531 Document -mno-usermode option.
2533 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
2536 * config/pa/pa.c (pa_output_function_epilogue): Don't set
2537 last_address when the current function is a thunk.
2538 (pa_asm_output_mi_thunk): When we don't have named sections or they
2539 are not being used, check that thunk can reach the stub table with a
2542 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2544 Backport from mainline
2545 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2548 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
2549 documentation to state it is only for VSX operations.
2551 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
2552 constraint only active if VSX.
2554 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
2555 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
2558 2014-08-21 Uros Bizjak <ubizjak@gmail.com>
2560 Backport from mainline
2561 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
2563 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
2564 destination if it is used in source.
2565 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
2566 (*popcount<mode>2_falsedep_1): Likewise.
2568 Backport from mainline
2569 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
2572 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
2574 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
2575 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
2576 (ffs<mode>2): Do not expand with tzcnt for
2577 TARGET_AVOID_FALSE_DEP_FOR_BMI.
2578 (ffssi2_no_cmove): Ditto.
2579 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
2580 (ctz<mode>2): New expander.
2581 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
2582 (*ctz<mode>2_falsedep): New insn.
2583 (*ctz<mode>2): Rename from ctz<mode>2.
2584 (clz<mode>2_lzcnt): New expander.
2585 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
2586 (*clz<mode>2_lzcnt_falsedep): New insn.
2587 (*clz<mode>2): Rename from ctz<mode>2.
2588 (popcount<mode>2): New expander.
2589 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
2590 (*popcount<mode>2_falsedep): New insn.
2591 (*popcount<mode>2): Rename from ctz<mode>2.
2592 (*popcount<mode>2_cmp): Remove.
2593 (*popcountsi2_cmp_zext): Ditto.
2595 2014-08-20 Martin Jambor <mjambor@suse.cz>
2596 Wei Mi <wmi@google.com>
2600 * tree-ssa-operands.c (update_stmt_operands): Remove
2601 MODIFIED_NORETURN_CALLS.
2602 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
2603 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
2604 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
2605 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
2606 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
2607 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
2608 (gimple_call_set_ctrl_altering): New func.
2609 (gimple_call_ctrl_altering_p): Ditto.
2610 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
2611 (make_blocks): Use gimple_call_initialize_ctrl_altering.
2612 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
2613 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
2614 remove MODIFIED_NORETURN_CALLS.
2616 2014-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2618 Backport from mainline.
2619 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2621 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
2622 Remove unnecessary attributes.
2624 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
2627 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
2629 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
2630 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
2631 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
2633 * config/pa/pa.md (begin_brtab): Delete insn.
2634 (end_brtab): Likewise.
2636 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
2638 Backport from mainline:
2639 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
2641 * doc/invoke.texi (SH options): Document missing processor variant
2642 options. Remove references to Hitachi. Undocument deprecated mspace
2645 2014-08-15 Tom de Vries <tom@codesourcery.com>
2647 Backport from mainline:
2648 2014-08-14 Tom de Vries <tom@codesourcery.com>
2650 PR rtl-optimization/62004
2651 PR rtl-optimization/62030
2652 * ifcvt.c (rtx_interchangeable_p): New function.
2653 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
2655 2014-08-05 Richard Biener <rguenther@suse.de>
2657 * emit-rtl.h (mem_attrs_eq_p): Declare.
2658 * emit-rtl.c (mem_attrs_eq_p): Export.
2660 2014-08-15 Jakub Jelinek <jakub@redhat.com>
2663 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
2664 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
2665 in OMP_CLAUSE_MAP in some outer target region.
2667 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2669 Backport from mainline
2670 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2673 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
2674 move to subtarget in serial version if result is ignored.
2676 2014-08-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
2678 Backport from mainline
2679 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
2682 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
2683 bitfields, that is when size doesn't match the size of type or the
2684 size of the constructor.
2686 2014-08-12 Felix Yang <fei.yang0953@gmail.com>
2688 PR tree-optimization/62073
2689 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
2692 2014-08-12 Jakub Jelinek <jakub@redhat.com>
2695 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
2696 any registers that are used in mem_insn.
2698 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2700 Backport patch from mainline
2701 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2703 * config/rs6000/constraints.md (wh constraint): New constraint,
2704 for FP registers if direct move is available.
2705 (wi constraint): New constraint, for VSX/FP registers that can
2706 handle 64-bit integers.
2707 (wj constraint): New constraint for VSX/FP registers that can
2708 handle 64-bit integers for direct moves.
2709 (wk constraint): New constraint for VSX/FP registers that can
2710 handle 64-bit doubles for direct moves.
2711 (wy constraint): Make documentation match implementation.
2713 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
2714 scalar_in_vmx_p field to simplify tests of whether SFmode or
2715 DFmode can go in the Altivec registers.
2716 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
2717 (rs6000_setup_reg_addr_masks): Likewise.
2718 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
2719 field, and wh/wi/wj/wk constraints.
2720 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
2721 the wh/wi/wj/wk constraints.
2722 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
2723 upper registers, prefer VSX registers unless the operation is a
2724 memory operation with REG+OFFSET addressing.
2726 * config/rs6000/vsx.md (VSr mode attribute): Add support for
2727 DImode. Change SFmode to use ww constraint instead of d to allow
2728 SF registers in the upper registers.
2731 (VSr5): Fix thinko in comment.
2732 (VSa): New mode attribute that is an alternative to wa, that
2733 returns the VSX register class that a mode can go in, but may not
2734 be the preferred register class.
2735 (VS_64dm): New mode attribute for appropriate register classes for
2736 referencing 64-bit elements of vectors for direct moves and normal
2738 (VS_64reg): Likewise.
2739 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
2740 register allocator to only registers the data type can handle.
2741 (vsx_le_perm_load_<mode>): Likewise.
2742 (vsx_le_perm_store_<mode>): Likewise.
2743 (vsx_xxpermdi2_le_<mode>): Likewise.
2744 (vsx_xxpermdi4_le_<mode>): Likewise.
2745 (vsx_lxvd2x2_le_<mode>): Likewise.
2746 (vsx_lxvd2x4_le_<mode>): Likewise.
2747 (vsx_stxvd2x2_le_<mode>): Likewise.
2748 (vsx_add<mode>3): Likewise.
2749 (vsx_sub<mode>3): Likewise.
2750 (vsx_mul<mode>3): Likewise.
2751 (vsx_div<mode>3): Likewise.
2752 (vsx_tdiv<mode>3_internal): Likewise.
2753 (vsx_fre<mode>2): Likewise.
2754 (vsx_neg<mode>2): Likewise.
2755 (vsx_abs<mode>2): Likewise.
2756 (vsx_nabs<mode>2): Likewise.
2757 (vsx_smax<mode>3): Likewise.
2758 (vsx_smin<mode>3): Likewise.
2759 (vsx_sqrt<mode>2): Likewise.
2760 (vsx_rsqrte<mode>2): Likewise.
2761 (vsx_tsqrt<mode>2_internal): Likewise.
2762 (vsx_fms<mode>4): Likewise.
2763 (vsx_nfma<mode>4): Likewise.
2764 (vsx_eq<mode>): Likewise.
2765 (vsx_gt<mode>): Likewise.
2766 (vsx_ge<mode>): Likewise.
2767 (vsx_eq<mode>_p): Likewise.
2768 (vsx_gt<mode>_p): Likewise.
2769 (vsx_ge<mode>_p): Likewise.
2770 (vsx_xxsel<mode>): Likewise.
2771 (vsx_xxsel<mode>_uns): Likewise.
2772 (vsx_copysign<mode>3): Likewise.
2773 (vsx_float<VSi><mode>2): Likewise.
2774 (vsx_floatuns<VSi><mode>2): Likewise.
2775 (vsx_fix_trunc<mode><VSi>2): Likewise.
2776 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
2777 (vsx_x<VSv>r<VSs>i): Likewise.
2778 (vsx_x<VSv>r<VSs>ic): Likewise.
2779 (vsx_btrunc<mode>2): Likewise.
2780 (vsx_b2trunc<mode>2): Likewise.
2781 (vsx_floor<mode>2): Likewise.
2782 (vsx_ceil<mode>2): Likewise.
2783 (vsx_<VS_spdp_insn>): Likewise.
2784 (vsx_xscvspdp): Likewise.
2785 (vsx_xvcvspuxds): Likewise.
2786 (vsx_float_fix_<mode>2): Likewise.
2787 (vsx_set_<mode>): Likewise.
2788 (vsx_extract_<mode>_internal1): Likewise.
2789 (vsx_extract_<mode>_internal2): Likewise.
2790 (vsx_extract_<mode>_load): Likewise.
2791 (vsx_extract_<mode>_store): Likewise.
2792 (vsx_splat_<mode>): Likewise.
2793 (vsx_xxspltw_<mode>): Likewise.
2794 (vsx_xxspltw_<mode>_direct): Likewise.
2795 (vsx_xxmrghw_<mode>): Likewise.
2796 (vsx_xxmrglw_<mode>): Likewise.
2797 (vsx_xxsldwi_<mode>): Likewise.
2798 (vsx_xscvdpspn): Tighten constraints to only use register classes
2800 (vsx_xscvspdpn): Likewise.
2801 (vsx_xscvdpspn_scalar): Likewise.
2803 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
2804 wj, and wk constraints.
2805 (GPR_REG_CLASS_P): New helper macro for register classes targeting
2806 general purpose registers.
2808 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
2810 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
2811 DImode instead of wm. Use wk constraint for direct move of DFmode
2813 (extendsidi2_lfiwax): Likewise.
2816 (movdi_internal64): Likewise.
2818 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
2819 wk constraints. Make the wy constraint documentation match them
2822 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2824 Backport from mainline
2825 2014-08-04 Ganesh Gopalasubramanian
2826 <Ganesh.Gopalasubramanian@amd.com>
2828 * config/i386/i386.c (ix86_option_override_internal): Add
2829 PTA_RDRND and PTA_MOVBE for bdver4.
2831 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2833 Backport from mainline
2834 2014-08-04 Ganesh Gopalasubramanian
2835 <Ganesh.Gopalasubramanian@amd.com>
2837 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
2838 extended family information. Handle BTVER2 cpu with cpuid family value.
2840 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2842 Backport from mainline
2843 2014-06-16 Ganesh Gopalasubramanian
2844 <Ganesh.Gopalasubramanian@amd.com>
2846 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2847 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2848 handling 32-bit multiplication.
2850 2014-08-08 Guozhi Wei <carrot@google.com>
2852 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
2854 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
2856 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
2859 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
2862 * haifa-sched.c (advance_one_cycle): Fix dump.
2863 (schedule_block): Don't advance cycle if we are already at the
2864 beginning of the cycle.
2866 2014-08-06 Richard Biener <rguenther@suse.de>
2868 PR tree-optimization/61320
2869 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
2870 handle misaligned loads.
2872 2014-08-04 Rohit <rohitarulraj@freescale.com>
2875 * config/rs6000/rs6000.c
2876 (rs6000_reg_names): Add SPE high register names.
2877 (alt_reg_names): Likewise.
2878 (rs6000_dwarf_register_span): For SPE high registers, replace
2879 dwarf register numbers with GCC hard register numbers.
2880 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
2881 (rs6000_dbx_register_number): For SPE high registers, return dwarf
2882 register number for the corresponding GCC hard register number.
2883 * config/rs6000/rs6000.h
2884 (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
2885 register numbers for SPE high registers.
2886 (DWARF_FRAME_REGISTERS): Likewise.
2887 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
2888 (DWARF_FRAME_REGNUM): Likewise.
2889 (FIXED_REGISTERS): Likewise.
2890 (CALL_USED_REGISTERS): Likewise.
2891 (CALL_REALLY_USED_REGISTERS): Likewise.
2892 (REG_ALLOC_ORDER): Likewise.
2893 (enum reg_class): Likewise.
2894 (REG_CLASS_NAMES): Likewise.
2895 (REG_CLASS_CONTENTS): Likewise.
2896 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
2898 2014-08-01 Vladimir Makarov <vmakarov@redhat.com>
2900 * lra-constraints.c (remove_inheritance_pseudos): Process
2901 destination pseudo too.
2903 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
2905 Backport from mainline
2906 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
2908 PR tree-optimization/61375
2909 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
2910 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
2911 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
2913 2014-08-01 Richard Biener <rguenther@suse.de>
2915 PR tree-optimization/61964
2916 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
2917 by structural equality.
2919 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2921 Backport from mainline
2922 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2925 * config/sh/sh.c (sh_legitimate_address_p,
2926 sh_legitimize_reload_address): Handle reg+reg address modes when
2927 ALLOW_INDEXED_ADDRESS is false.
2928 * config/sh/predicates.md (general_movsrc_operand,
2929 general_movdst_operand): Likewise.
2931 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2933 Backport from mainline
2934 2014-07-14 Jakub Jelinek <jakub@redhat.com>
2937 * config/i386/i386.c (classify_argument): Don't merge classes above
2940 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2942 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
2944 2014-07-24 Kyle McMartin <kyle@redhat.com>
2946 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
2948 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2950 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
2952 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
2953 function. Issue -Wpsabi warning if future GCC releases will use
2954 different field alignment rules for this type.
2955 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
2956 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2957 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2959 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2961 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
2962 -Wpsabi note when encountering a type where future GCC releases
2963 will apply different alignment requirements.
2965 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2967 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
2968 does not fit fully into floating-point registers, and there is still
2969 space in the register parameter area, issue -Wpsabi note that the ABI
2970 will change in a future GCC release.
2972 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2974 * config/arm/t-rtems-eabi: Add
2975 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
2976 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
2977 mbig-endian/mthumb/march=armv7-r, and
2978 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
2981 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2982 Chris Johns <chrisj@rtems.org>
2983 Joel Sherrill <joel.sherrill@oarcorp.com>
2985 * config.gcc: Add nios2-*-rtems*.
2986 * config/nios2/rtems.h: New file.
2987 * gcc/config/nios2/t-rtems: New file.
2989 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
2991 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
2992 (LIBTSAN_EARLY_SPEC): Likewise.
2994 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
2996 Backport from mainline
2997 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
3000 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
3001 out of #ifdef __OPTIMIZE__.
3003 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
3005 * expr.c (store_field): Handle VOIDmode for calls that return values
3006 in multiple locations.
3008 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
3010 * toplev.c (output_stack_usage): Adjust the location of the warning.
3012 2014-07-19 Daniel Cederman <cederman@gaisler.com>
3014 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
3015 (*membar_storeload): Disable for LEON3.
3017 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3019 Backport from mainline
3020 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
3023 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3025 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3027 Backport from mainline
3028 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3031 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
3032 Fix instruction constraint.
3033 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3035 2014-07-17 Richard Biener <rguenther@suse.de>
3037 Backport from mainline
3038 2014-07-14 Richard Biener <rguenther@suse.de>
3040 PR tree-optimization/61779
3041 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3042 simplifying a condition.
3044 2014-07-17 Richard Biener <rguenther@suse.de>
3046 PR rtl-optimization/61801
3047 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
3048 don't set reg_pending_barrier if it appears in a debug-insn.
3050 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
3052 Backport from trunk.
3054 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
3055 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3056 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
3058 (cris_print_index, cris_print_operand, cris_constant_index_p)
3059 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
3060 (cris_address_cost): Ditto last CONSTANT_P.
3061 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
3062 callers changed. Yield cris_offsettable_symbol for non-PIC
3063 constant symbolic expressions including labels. Yield cris_unspec
3065 (cris_expand_pic_call_address): New parameter MARKERP. Set its
3066 target to pic_offset_table_rtx for calls that will likely go
3067 through PLT, const0_rtx when they can't. All callers changed.
3068 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
3069 symbolic expressions to be PICified. Remove second, redundant,
3070 assert on can_create_pseudo_p returning non-zero. Use
3071 replace_equiv_address_nv, not replace_equiv_address, for final
3073 * config/cris/cris.md ("movsi"): Move variable t to pattern
3074 toplevel. Adjust assert for new cris_symbol_type member. Use
3075 CONSTANT_P instead of CONSTANT_ADDRESS_P.
3076 ("*movsi_internal") <case 9>: Make check for valid unspec operands
3078 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
3079 ("call", "call_value"): Use second incoming operand as a marker
3080 for pic-offset-table-register being used.
3081 ("*expanded_call_non_v32", "*expanded_call_v32")
3082 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
3083 second incoming operand to CALL, match cris_call_type_marker.
3084 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
3085 ("*expanded_call_side"): Ditto. Fix typo in comment.
3086 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
3088 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
3089 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
3090 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
3091 users changed. Add members cris_offsettable_symbol and cris_unspec.
3092 (cris_symbol_type): Rename from cris_pic_symbol_type.
3093 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
3095 * config/cris/cris-protos.h (cris_symbol_type_of,
3096 cris_expand_pic_call_address): Adjust prototypes.
3097 (cris_legitimate_constant_p): New prototype.
3099 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
3100 an existing tmake_file. Don't add t-slibgcc and t-linux.
3102 2014-07-16 Jakub Jelinek <jakub@redhat.com>
3104 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3105 on the FUNCTION_DECL.
3107 * BASE-VER: Set to 4.9.2.
3108 * DEV-PHASE: Set to prerelease.
3110 2014-07-16 Release Manager
3112 * GCC 4.9.1 released.
3114 2014-07-10 Cary Coutant <ccoutant@google.com>
3116 Backport from trunk at r212211.
3118 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3120 (resolve_addr_in_expr): When replacing the rtx in a location list
3121 entry, get a new address table entry.
3122 (dwarf2out_finish): Call index_location_lists even if there are no
3123 addr_index_table entries yet.
3125 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
3127 * doc/install.texi: Remove links to defunct package providers for
3130 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
3133 * function.c (allocate_struct_function): Revert r188667 change.
3135 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3137 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3139 Backport r211369 from trunk.
3140 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
3143 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3144 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3145 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3146 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3147 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3148 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3149 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3150 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3151 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3154 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3156 Backport r210219 from trunk.
3157 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3159 * config/arm/arm_neon.h: Update comment.
3160 * config/arm/neon-docgen.ml: Delete.
3161 * config/arm/neon-gen.ml: Delete.
3162 * doc/arm-neon-intrinsics.texi: Update comment.
3164 2014-07-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3166 Backport r211775 from trunk.
3167 2014-06-18 Terry Guo <terry.guo@arm.com>
3170 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3173 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3175 PR rtl-optimization/61673
3176 * combine.c (simplify_comparison): Test just mode's sign bit
3177 in tmode rather than the sign bit and any bits above it.
3179 2014-07-08 James Greenhalgh <james.greenhalgh@arm.com>
3181 Backport r212298 from trunk.
3182 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
3184 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3185 (move_lo_quad_internal_be_<mode>): Likewise.
3186 (move_lo_quad_<mode>): Convert to define_expand.
3187 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3188 (aarch64_simd_move_hi_quad_be_<mode>): New.
3189 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3190 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3191 (aarch64_combinez_be<mode>): New.
3192 (aarch64_combine<mode>): Convert to define_expand.
3193 (aarch64_combine_internal<mode>): New.
3194 (aarch64_simd_combine<mode>): Remove bogus RTL description.
3196 2014-07-08 Richard Biener <rguenther@suse.de>
3198 PR tree-optimization/61680
3199 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3200 Handle properly all read-write dependences with group accesses.
3202 PR tree-optimization/61681
3203 * tree-ssa-structalias.c (find_what_var_points_to): Expand
3204 NONLOCAL inside ESCAPED.
3206 2014-07-08 Alan Lawrence <alan.lawrence@arm.com>
3208 Backport r211502 from mainline.
3209 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
3212 * config/aarch64/aarch64-modes.def: Add V1DFmode.
3213 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3216 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3218 PR tree-optimization/61725
3219 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3220 range, use range_includes_zerop_p instead of integer_zerop on
3221 vr0->min, only use log2 of max if min is not negative.
3223 2014-07-06 Gerald Pfeifer <gerald@pfeifer.com>
3225 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
3227 2014-07-04 Jakub Jelinek <jakub@redhat.com>
3230 * cgraphunit.c (expand_thunk): Call free_dominance_info.
3232 PR tree-optimization/61684
3233 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3234 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3236 2014-06-30 Jakub Jelinek <jakub@redhat.com>
3238 Backported from mainline
3239 2014-06-27 Jakub Jelinek <jakub@redhat.com>
3241 PR tree-optimization/57233
3242 PR tree-optimization/61299
3243 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
3245 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
3246 would be lowered to scalar shifts, check if corresponding
3247 shifts and vector BIT_IOR_EXPR are supported and don't lower
3248 or lower just to narrower vector type in that case.
3249 * expmed.c (expand_shift_1): Fix up handling of vector
3252 2014-06-25 Jakub Jelinek <jakub@redhat.com>
3254 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
3255 (LANG_HOOKS_DECLS): Add it.
3256 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
3258 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
3259 * langhooks.h (struct lang_hooks_for_decls): Add
3260 omp_clause_linear_ctor hook.
3261 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
3262 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
3263 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
3264 combined simd loop use omp_clause_linear_ctor hook.
3266 2014-06-24 Jakub Jelinek <jakub@redhat.com>
3268 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3269 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
3270 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3271 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
3272 (gimplify_adjust_omp_clauses): Likewise.
3273 * omp-low.c (lower_rec_simd_input_clauses,
3274 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3275 safelen the same as safelen(1).
3276 * tree-nested.c (convert_nonlocal_omp_clauses,
3277 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
3278 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3279 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3280 Fixup handling of GIMPLE_OMP_TARGET.
3281 (convert_tramp_reference_stmt, convert_gimple_call): Handle
3284 2014-06-18 Jakub Jelinek <jakub@redhat.com>
3286 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3287 change in ORT_TARGET region, don't jump to do_outer.
3288 (struct gimplify_adjust_omp_clauses_data): New type.
3289 (gimplify_adjust_omp_clauses_1): Adjust for data being
3290 a struct gimplify_adjust_omp_clauses_data pointer instead
3291 of tree *. Pass pre_p as a new argument to
3292 lang_hooks.decls.omp_finish_clause hook.
3293 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3294 splay_tree_foreach to pass both list_p and pre_p.
3295 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3296 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3297 gimplify_adjust_omp_clauses callers.
3298 * langhooks.c (lhd_omp_finish_clause): New function.
3299 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3300 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3301 * langhooks.h (struct lang_hooks_for_decls): Add a new
3302 gimple_seq * argument to omp_finish_clause hook.
3303 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3304 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3305 (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
3306 add it to outer ctx's decl_map as identity.
3307 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3308 * tree-nested.c (convert_nonlocal_omp_clauses,
3309 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3310 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3312 2014-06-10 Jakub Jelinek <jakub@redhat.com>
3315 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3316 Set lastprivate_firstprivate even if omp_private_outer_ref
3317 langhook returns true.
3318 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
3319 langhook, call unshare_expr on new_var and call
3320 build_outer_var_ref to get the last argument.
3322 2014-05-11 Jakub Jelinek <jakub@redhat.com>
3324 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
3325 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
3326 number of operands to 3.
3327 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
3328 * tree-nested.c (convert_nonlocal_omp_clauses,
3329 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
3330 * gimplify.c (gimplify_scan_omp_clauses): Handle
3331 OMP_CLAUSE_LINEAR_STMT.
3332 * omp-low.c (lower_rec_input_clauses): Fix typo.
3333 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
3334 cast between Fortran boolean_type_node and C _Bool if needed.
3336 2014-06-30 Jason Merrill <jason@redhat.com>
3340 * gimplify.c (gimplify_arg): Non-static.
3341 * gimplify.h: Declare it.
3343 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
3345 Backport from Mainline
3346 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
3349 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
3350 Add alternative; make early clobber. Adjust both split patterns
3351 to use operand 0 as the working register.
3353 2014-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3355 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
3357 (VCONQ): Make comment more helpful.
3359 * config/aarch64/aarch64-simd.md
3360 (aarch64_sqdmulh_lane<mode>):
3361 Use VCOND for operands 2. Update lane checking and flipping logic.
3362 (aarch64_sqrdmulh_lane<mode>): Likewise.
3363 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
3364 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
3365 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
3366 attribute of operand 3 to VCOND.
3367 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
3368 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
3369 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
3370 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
3371 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
3372 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
3374 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
3375 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
3376 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
3377 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
3378 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
3379 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
3380 operand to VCOND. Update lane flipping and bounds checking logic.
3381 (aarch64_sqdmlal2_lane<mode>): Likewise.
3382 (aarch64_sqdmlsl_lane<mode>): Likewise.
3383 (aarch64_sqdmull_lane<mode>): Likewise.
3384 (aarch64_sqdmull2_lane<mode>): Likewise.
3385 (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
3386 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
3387 (aarch64_sqdmlal2_laneq<mode>): Emit
3388 aarch64_sqdmlal2_laneq<mode>_internal insn.
3389 Replace VCON with VCONQ.
3390 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
3391 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3392 (aarch64_sqdmull_laneq<mode>): Emit
3393 aarch64_sqdmull_laneq<mode>_internal insn.
3394 Replace VCON with VCONQ.
3395 (aarch64_sqdmull2_laneq<mode>): Emit
3396 aarch64_sqdmull2_laneq<mode>_internal insn.
3397 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
3398 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
3399 of 3rd argument to int16x4_t.
3400 (vqdmlalh_lane_s16): Likewise.
3401 (vqdmlslh_lane_s16): Likewise.
3402 (vqdmull_high_lane_s16): Likewise.
3403 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
3404 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
3405 (vqdmlsl_lane_s16): Likewise.
3406 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
3407 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
3408 (vqdmlals_lane_s32): Likewise.
3409 (vqdmlsls_lane_s32): Likewise.
3410 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
3411 (vqdmulls_lane_s32): Likewise.
3412 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
3413 (vqdmlsl_lane_s32): Likewise.
3414 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
3415 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
3416 (vqrdmulhh_lane_s16): Likewise.
3417 (vqdmlsl_high_lane_s16): Likewise.
3418 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
3419 (vqdmlsl_high_lane_s32): Likewise.
3420 (vqrdmulhs_lane_s32): Likewise.
3422 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3424 Backport from Mainline
3425 2014-06-20 Jakub Jelinek <jakub@redhat.com>
3426 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
3428 PR tree-optimization/61306
3429 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
3430 expression instead of its size.
3431 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
3432 false to prevent optimization when the result is unpredictable due to
3433 arithmetic right shift of signed type with highest byte is set.
3434 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
3435 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
3436 result is unpredictable due to sign extension.
3437 (find_bswap): Adapt to change in struct symbolic_number.
3439 2014-06-27 Martin Jambor <mjambor@suse.cz>
3442 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
3443 args_to_skip, use those from node instead. Copy args_to_skip and
3444 combined_args_to_skip from node to the new thunk.
3445 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
3446 (cgraph_create_virtual_clone): Moved computation of
3447 combined_args_to_skip...
3448 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
3450 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
3452 Backport from mainline
3453 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
3456 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
3458 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3461 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
3462 extraction other than index 3.
3464 2014-06-26 Marc Glisse <marc.glisse@inria.fr>
3467 * config/i386/i386.md (x86_64_shrd, x86_shrd,
3468 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
3470 2014-06-26 Martin Jambor <mjambor@suse.cz>
3472 Backport from mainline
3473 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
3474 renamed to ipa_impossible_devirt_target. Fix typo.
3475 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
3476 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
3477 ipa_impossible_devirt_target.
3479 2014-06-24 Jakub Jelinek <jakub@redhat.com>
3482 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
3483 model family 6 CPU with has_longmode never use a CPU without
3486 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
3487 not mentioned in clauses use private clause if the iterator is
3488 declared in #pragma omp for simd, and when adding lastprivate
3489 instead, add it to the outer #pragma omp for too. Diagnose
3490 if the variable is private in outer context. For simd collapse > 1
3491 loops, replace all iterators with temporaries.
3492 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
3493 same even in collapse > 1 loops.
3495 2014-06-23 Alan Modra <amodra@gmail.com>
3498 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
3499 to zero on debug statements.
3501 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3503 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
3505 (aarch64_sqrdmulh_lane<mode>): Likewise.
3506 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3507 (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
3508 (aarch64_sqdmulh_laneq<mode>): New expander.
3509 (aarch64_sqrdmulh_laneq<mode>): Likewise.
3510 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
3511 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
3512 (aarch64_sqdmulh_lane<mode>): New expander.
3513 (aarch64_sqrdmulh_lane<mode>): Likewise.
3514 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3515 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3516 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
3517 (aarch64_sqdmlal_laneq<mode>): Likewise.
3518 (aarch64_sqdmlsl_lane<mode>): Likewise.
3519 (aarch64_sqdmlsl_laneq<mode>): Likewise.
3520 (aarch64_sqdmlal2_lane<mode>): Likewise.
3521 (aarch64_sqdmlal2_laneq<mode>): Likewise.
3522 (aarch64_sqdmlsl2_lane<mode>): Likewise.
3523 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3524 (aarch64_sqdmull_lane<mode>): Likewise.
3525 (aarch64_sqdmull_laneq<mode>): Likewise.
3526 (aarch64_sqdmull2_lane<mode>): Likewise.
3527 (aarch64_sqdmull2_laneq<mode>): Likewise.
3529 2014-06-20 Martin Jambor <mjambor@suse.cz>
3532 * ipa-prop.c (impossible_devirt_target): New function.
3533 (try_make_edge_direct_virtual_call): Use it, also instead of
3536 2014-06-20 Martin Jambor <mjambor@suse.cz>
3539 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
3542 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
3544 Backport from mainline
3546 2014-06-20 Julian Brown <julian@codesourcery.com>
3547 Chung-Lin Tang <cltang@codesourcery.com>
3549 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
3550 TARGET_THUMB1_ONLY. Add comments.
3552 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
3554 Backport from mainline
3555 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
3557 * config/i386/i386.c (decide_alg): Correctly handle
3558 maximum size of stringop algorithm.
3560 2014-06-18 Richard Henderson <rth@redhat.com>
3563 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
3565 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
3568 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
3569 variable 'size'; calculate 'size' right in the front; use
3570 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
3571 pcum->aapcs_stack_words.
3573 2014-06-17 Nick Clifton <nickc@redhat.com>
3575 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
3576 (umulhi3, mulsidi3, umulsidi3): Likewise.
3578 2014-06-17 Uros Bizjak <ubizjak@gmail.com>
3580 Backport from mainline
3581 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
3584 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
3585 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
3586 and corresponding splitters. Zero extend general register
3587 or memory input operand to XMM temporary. Enable for
3588 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
3589 (floatunssi<mode>2): Update expander predicate.
3591 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
3593 PR rtl-optimization/61325
3594 * lra-constraints.c (valid_address_p): Add forward declaration.
3595 (simplify_operand_subreg): Check address validity before and after
3596 alter_reg of memory subreg.
3598 2014-06-18 Jakub Jelinek <jakub@redhat.com>
3601 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
3603 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
3605 Backport from mainline
3607 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
3609 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
3610 (BU_MISC_2): Rename to ...
3611 (BU_LDBL128_2): ... this.
3612 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
3613 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
3614 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3616 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
3617 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
3618 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
3619 (unpacktf_1): Likewise.
3620 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
3621 (__builtin_longdouble_dw1): Likewise.
3622 * doc/sourcebuild.texi (longdouble128): Document.
3624 2014-06-13 Jeff Law <law@redhat.com>
3626 Backports from mainline:
3627 2014-06-13 Jeff Law <law@redhat.com>
3629 PR rtl-optimization/61094
3630 PR rtl-optimization/61446
3631 * ree.c (combine_reaching_defs): Get the mode for the copy from
3632 the extension insn rather than the defining insn.
3634 2014-06-02 Jeff Law <law@redhat.com>
3636 PR rtl-optimization/61094
3637 * ree.c (combine_reaching_defs): Do not reextend an insn if it
3638 was marked as do_no_reextend. If a copy is needed to eliminate
3639 an extension, then mark it as do_not_reextend.
3641 2014-06-13 Martin Jambor <mjambor@suse.cz>
3644 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
3645 cache_token if returning early.
3647 2014-06-12 Jakub Jelinek <jakub@redhat.com>
3650 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
3651 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
3652 if outer combined construct is distribute.
3653 (gimplify_omp_for): For OMP_DISTRIBUTE set
3654 gimplify_omp_ctxp->distribute.
3655 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3656 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3657 mapping into decl map.
3659 2014-06-12 Jeff Law <law@redhat.com>
3661 Backports from mainline:
3663 2014-06-12 Jeff Law <law@redhat.com>
3665 PR tree-optimization/61009
3666 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3667 value when we stop processing a block due to problematic PHIs.
3669 2014-06-05 Jeff Law <law@redhat.com>
3671 PR tree-optimization/61289
3672 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
3673 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
3674 looking for those which match LHS. All callers changed.
3675 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
3676 parameters and code which manipulated them. All callers changed.
3677 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
3678 and DST_MAP parameters. Simplify invalidation code by just calling
3679 invalidate_equivalences. All callers changed.
3680 (thread_across_edge): Simplify now that we don't need to maintain
3681 the map of equivalences to invalidate.
3683 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
3685 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3687 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3689 Backport from 2014-05-14 trunk r210418
3690 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
3691 shifted values to avoid build warning.
3693 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3695 Backport from 2014-05-09 trunk r210272
3697 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
3698 unsigned int initializers for regno_in, regno_out.
3700 Backport from 2014-06-12 trunk r211491
3703 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3704 loading from address spaces.
3706 2014-06-12 Alan Modra <amodra@gmail.com>
3709 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
3710 * doc/tm.texi: Regenerate.
3711 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
3712 Use throughout in place of REG_PARM_STACK_SPACE.
3713 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
3714 "incoming" param. Pass to rs6000_function_parms_need_stack.
3715 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
3716 prototype_p when incoming. Use function decl when incoming
3717 to handle K&R style functions.
3718 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
3719 (INCOMING_REG_PARM_STACK_SPACE): Define.
3721 2014-06-11 Richard Biener <rguenther@suse.de>
3723 PR tree-optimization/61452
3724 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
3725 expr and has_constants in case we found a leader.
3726 (simplify_binary_expression): Always valueize operands first.
3727 (simplify_unary_expression): Likewise.
3729 2014-06-11 Richard Biener <rguenther@suse.de>
3732 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3733 Do not use the main variant for the type comparison.
3735 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3737 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3739 Simplify description of __crc32d and __crc32cd intrinsics.
3740 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3743 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
3745 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3746 call statement, if any.
3747 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3748 statements, if any. Tidy up.
3750 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3752 Back port from trunk
3753 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3756 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3757 iterators, VSX_D that handles 64-bit types, and VSX_LE that
3758 handles swapping the two 64-bit double words on little endian
3759 systems. Include V1TImode and optionally TImode in VSX_LE so that
3760 these types are properly swapped. Change all of the insns and
3761 splits that do the 64-bit swaps to use VSX_LE.
3762 (vsx_le_perm_load_<mode>): Likewise.
3763 (vsx_le_perm_store_<mode>): Likewise.
3764 (splitters for little endian memory operations): Likewise.
3765 (vsx_xxpermdi2_le_<mode>): Likewise.
3766 (vsx_lxvd2x2_le_<mode>): Likewise.
3767 (vsx_stxvd2x2_le_<mode>): Likewise.
3769 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
3771 PR rtl-optimization/61325
3772 * lra-constraints.c (process_address_1): Check scale equal to one
3773 to prevent transformation: base + scale * index => base + new_reg.
3775 2014-06-05 Martin Jambor <mjambor@suse.cz>
3778 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
3781 2014-06-04 Richard Biener <rguenther@suse.de>
3783 PR tree-optimization/61383
3784 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
3787 2014-06-02 Jason Merrill <jason@redhat.com>
3790 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
3792 2014-06-03 Martin Jambor <mjambor@suse.cz>
3795 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
3798 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3800 Backport from mainline
3801 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3803 PR rtl-optimization/60866
3804 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
3805 Default it to -1. Pass it down to init_simplejump_data.
3806 (init_simplejump_data): New parameter old_seqno. Pass it down
3807 to get_seqno_for_a_jump.
3808 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
3809 initializing new jump seqno as a last resort. Add comment.
3810 (sel_redirect_edge_and_branch): Save old seqno of the conditional
3811 jump and pass it down to sel_init_new_insn.
3812 (sel_redirect_edge_and_branch_force): Likewise.
3814 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3816 Backport from mainline
3817 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3819 PR rtl-optimization/60901
3820 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
3821 bb predecessor belongs to the same scheduling region. Adjust comment.
3823 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
3825 Backport from mainline
3826 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
3829 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
3830 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
3832 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
3834 PR rtl-optimization/61325
3835 * lra-constraints.c (process_address): Rename to
3837 (process_address): New function.
3839 2014-05-29 Uros Bizjak <ubizjak@gmail.com>
3841 Backport from mainline
3842 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
3845 * config/i386/i386.c (ix86_rtx_costs)
3846 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
3849 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
3851 Backport from mainline
3852 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
3854 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
3855 predicate to detect a negative quotient.
3857 2014-05-28 Richard Biener <rguenther@suse.de>
3859 Backport from mainline
3860 2014-05-28 Richard Biener <rguenther@suse.de>
3863 * fold-const.c (fold_comparison): When folding
3864 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
3865 the sign of the remaining constant operand stays the same.
3867 2014-05-05 Richard Biener <rguenther@suse.de>
3870 * fold-const.c (fold_binary_loc): Consistently avoid
3871 canonicalizing X & CST away from a CST that is the mask
3874 2014-04-28 Richard Biener <rguenther@suse.de>
3876 PR tree-optimization/60979
3877 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
3878 SCOPs that end in a block with a successor with abnormal
3881 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3883 * configure.ac ($gcc_cv_ld_clearcap): New test.
3884 * configure: Regenerate.
3885 * config.in: Regenerate.
3886 * config/sol2.opt (mclear-hwcap): New option.
3887 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
3888 * config/sol2-clearcap.map: Moved here from
3889 testsuite/gcc.target/i386/clearcap.map.
3890 * config/sol2-clearcapv2.map: Move here from
3891 gcc.target/i386/clearcapv2.map.
3892 * config/t-sol2 (install): Depend on install-clearcap-map.
3893 (install-clearcap-map): New target.
3894 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
3897 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3900 * config/dbx.h (License): Add Runtime Library Exception.
3901 * config/newlib-stdint.h (License): Same.
3902 * config/rtems.h (License): Same
3903 * config/initfini-array.h (License): Same
3904 * config/v850/v850.h (License): Same.
3905 * config/v850/v850-opts.h (License): Same
3906 * config/v850/rtems.h (License): Same.
3908 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3911 * doc/extend.texi (Local Labels): Note that label differences are
3912 not supported for AVR.
3914 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
3916 Backport from 2014-05-12 mainline r210322.
3917 Backport from 2014-05-27 mainline r210959, r210969.
3920 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
3921 * config/arm/arm-cores.def (License): Same.
3922 * config/arm/arm-opts.h (License): Same.
3923 * config/arm/aout.h (License): Same.
3924 * config/arm/bpabi.h (License): Same.
3925 * config/arm/elf.h (License): Same.
3926 * config/arm/linux-elf.h (License): Same.
3927 * config/arm/linux-gas.h (License): Same.
3928 * config/arm/netbsd-elf.h (License): Same.
3929 * config/arm/uclinux-eabi.h (License): Same.
3930 * config/arm/uclinux-elf.h (License): Same.
3931 * config/arm/vxworks.h (License): Same.
3933 2014-05-26 Michael Tautschnig <mt@debian.org>
3936 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3937 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
3939 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3941 PR rtl-optimization/61215
3942 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3943 simplify_gen_subreg until final substitution.
3945 2014-05-23 Alan Modra <amodra@gmail.com>
3948 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3949 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3950 Use "Y" constraint rather than "m".
3952 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3954 PR rtl-optimization/60969
3955 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3956 constraints. Set up mem cost for NO_REGS case.
3958 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
3960 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3962 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
3965 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3967 2014-05-22 Nick Clifton <nickc@redhat.com>
3969 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3971 2014-05-22 Jakub Jelinek <jakub@redhat.com>
3973 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3974 all padding bits in REAL_VALUE_TYPE are cleared.
3976 2014-05-21 Guozhi Wei <carrot@google.com>
3979 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3981 (vqdmulhq_n_s16): Likewise.
3983 2014-05-21 Martin Jambor <mjambor@suse.cz>
3985 * doc/invoke.texi (Optimize Options): Document parameters
3986 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3987 ipa-cp-array-index-hint-bonus.
3989 2014-05-21 Jakub Jelinek <jakub@redhat.com>
3992 * omp-low.c (handle_simd_reference): New function.
3993 (lower_rec_input_clauses): Use it. Defer adding reference
3994 initialization even for reduction without placeholder if in simd,
3995 handle it properly later on.
3997 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4000 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
4002 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
4003 (ipa_inline): Loop inline_to_all_callers until no more aliases
4006 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4009 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4011 2014-05-20 DJ Delorie <dj@redhat.com>
4013 * config/msp430/msp430.md (split): Don't allow subregs when
4014 splitting SImode adds.
4015 (andneghi): Fix subtraction logic.
4016 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4018 2014-05-20 Nick Clifton <nickc@redhat.com>
4020 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4021 (msp430_gimplify_va_arg_expr): New function.
4022 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4024 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4025 operand 0 in order to prevent confusion about the number of
4028 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4030 * config/arm/arm.md (arith_shiftsi): Do not predicate for
4033 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
4035 * arm.c (thumb1_reorg): When scanning backwards skip anything
4036 that's not a proper insn.
4038 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4040 * ipa.c (symtab_remove_unreachable_nodes): Remove
4041 symbol from comdat group if its body was eliminated.
4042 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4043 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4044 (symtab_unregister_node): ... this one.
4045 (verify_symtab_base): More strict checking of comdats.
4046 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4048 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4050 * opts.c (common_handle_option): Disable -fipa-reference coorectly
4053 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4056 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4057 external aliases alive, too.
4059 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4061 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
4063 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4065 Backport from mainline
4066 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
4069 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
4072 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
4074 PR rtl-optimization/60969
4075 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4076 Calculate costs for this case.
4078 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
4081 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4082 (__TM_simple_begin): Use it.
4083 (__TM_begin): Likewise.
4085 2014-05-15 Martin Jambor <mjambor@suse.cz>
4088 * ipa-prop.c (update_indirect_edges_after_inlining): Check
4089 type_preserved flag when the indirect edge is polymorphic.
4091 2014-05-15 Martin Jambor <mjambor@suse.cz>
4094 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4096 2014-05-15 Jakub Jelinek <jakub@redhat.com>
4098 PR tree-optimization/61158
4099 * fold-const.c (fold_binary_loc): If X is zero-extended and
4100 shiftc >= prec, make sure zerobits is all ones instead of
4101 invoking undefined behavior.
4103 2014-05-14 Cary Coutant <ccoutant@google.com>
4106 * opts.c (common_handle_option): Don't special-case "-g".
4107 (set_debug_level): Default to at least level 2 with "-g".
4109 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4111 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4113 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4114 * config/sparc/sparc.md (fptype_ut699): New attribute.
4115 (in_branch_delay): Return false if -mfix-ut699 is specified and
4116 fptype_ut699 is set to single.
4117 (truncdfsf2): Add fptype_ut699 attribute.
4118 (fix_truncdfsi2): Likewise.
4119 (floatsisf2): Change fptype attribute.
4120 (fix_truncsfsi2): Likewise.
4121 (negtf2_notv9): Delete.
4122 (negtf2_v9): Likewise.
4123 (negtf2_hq): New instruction.
4124 (negtf2): New instruction and splitter.
4125 (negdf2_notv9): Rewrite.
4126 (abstf2_notv9): Delete.
4127 (abstf2_hq_v9): Likewise.
4128 (abstf2_v9): Likewise.
4129 (abstf2_hq): New instruction.
4130 (abstf2): New instruction and splitter.
4131 (absdf2_notv9): Rewrite.
4133 2014-05-14 Matthias Klose <doko@ubuntu.com>
4136 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4137 Matthias Klose <doko@ubuntu.com>
4140 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4142 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
4144 * doc/sourcebuild.texi: (dfp_hw): Document.
4145 (p8vector_hw): Likewise.
4146 (powerpc_eabi_ok): Likewise.
4147 (powerpc_elfv2): Likewise.
4148 (powerpc_htm_ok): Likewise.
4149 (ppc_recip_hw): Likewise.
4152 2014-05-13 Jeff Law <law@redhat.com>
4154 Backports fromm mainline:
4156 2014-05-08 Jeff Law <law@redhat.com>
4158 PR tree-optimization/61009
4159 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4160 tri-state rather than a boolean. When a block is too big to
4161 thread through, inform caller via negative return value.
4162 (thread_across_edge): If a block was too big for normal threading,
4163 then it's too big for a joiner too, so remove temporary equivalences
4164 and return immediately.
4166 2014-04-28 Jeff Law <law@redhat.com>
4168 PR tree-optimization/60902
4169 * tree-ssa-threadedge.c
4170 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4171 over real defs when invalidating outputs from statements that do not
4172 produce useful outputs for threading.
4174 2014-04-23 Jeff Law <law@redhat.com>
4176 PR tree-optimization/60902
4177 * tree-ssa-threadedge.c
4178 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
4179 invalidate outputs from statements that do not produce useful
4180 outputs for threading.
4182 2014-05-13 Richard Biener <rguenther@suse.de>
4185 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4186 it needs revisiting whether the call still may be tail-called.
4188 2014-05-13 Jakub Jelinek <jakub@redhat.com>
4191 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4192 is const0_rtx, return immediately. Don't test count == 0 when
4195 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4197 Backport from mainline
4198 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4201 * config/avr/avr.c (avr_out_store_psi): Use correct constant
4204 2014-05-09 Uros Bizjak <ubizjak@gmail.com>
4206 Backport from mainline
4207 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4210 * config/alpha/alpha.c: Include gimple-iterator.h.
4211 (alpha_gimple_fold_builtin): New function. Move
4212 ALPHA_BUILTIN_UMULH folding from ...
4213 (alpha_fold_builtin): ... here.
4214 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4216 2014-05-09 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4218 Backport from 2014-04-16 trunk r209446
4219 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4221 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4223 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
4225 Backport from 2014-05-09 trunk r210267
4228 * config/avr/avr.md (cc): Add new attribute set_vzn.
4229 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4230 Set cc insn attribute to set_vzn instead of set_zn for alternatives
4231 with INC, DEC or NEG.
4232 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4233 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4234 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4236 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4237 Matthias Klose <doko@ubuntu.com>
4240 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4242 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4245 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4247 2014-05-05 Marek Polacek <polacek@redhat.com>
4249 Back port from mainline
4250 2014-05-05 Marek Polacek <polacek@redhat.com>
4253 * opts.c (common_handle_option): Call error_at instead of warning_at.
4255 2014-05-04 Jan Hubicka <hubicka@ucw.cz>
4258 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4260 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
4262 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4263 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4264 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4265 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4266 Use RS6000_BTM_HARD_FLOAT.
4267 (BU_MISC_2): Likewise.
4268 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4269 RS6000_BTM_HARD_FLOAT.
4270 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4272 (rs6000_invalid_builtin): Add hard floating builtin support.
4273 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4274 hard float builtins.
4275 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4277 2014-05-03 Joey Ye <joey.ye@arm.com>
4279 Backport from mainline r209463
4280 2014-04-17 Joey Ye <joey.ye@arm.com>
4282 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4284 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
4286 Back port from mainline
4288 * config/sh/sh.c: Include stdlib headers before everything else.
4290 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4292 PR tree-optimization/60930
4293 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
4294 creating a multiply candidate by folding two constant
4295 multiplicands when the result overflows.
4297 2014-05-02 Jakub Jelinek <jakub@redhat.com>
4299 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4300 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4301 (gimplify_adjust_omp_clauses): Simd region is never
4302 directly nested in combined parallel. Instead, for linear
4303 with copyin/copyout, if in combined for simd loop, make decl
4304 firstprivate/lastprivate on OMP_FOR.
4305 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4306 expand_omp_for_static_chunk): When setting endvar, also set
4307 fd->loop.v to the same value.
4309 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4311 Back port from mainline
4312 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4314 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
4315 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
4316 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
4317 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
4318 (TARGET_CRYPTO): Take TARGET_SIMD into account.
4320 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
4322 Back port from mainline
4323 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4325 * doc/extend.texi (PowerPC Built-in Functions): Document new
4326 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
4328 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
4330 * config/rs6000/predicates.md (const_0_to_3_operand): New
4331 predicate to match 0..3 integer constants.
4333 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
4334 to support adding miscellaneous builtin functions.
4335 (BU_DFP_MISC_2): Likewise.
4336 (BU_P7_MISC_1): Likewise.
4337 (BU_P7_MISC_2): Likewise.
4338 (BU_P8V_MISC_3): Likewise.
4339 (BU_MISC_1): Likewise.
4340 (BU_MISC_2): Likewise.
4341 (DIVWE): Add extended divide builtin functions.
4344 (DIVWEUO): Likewise.
4348 (DIVDEUO): Likewise.
4349 (DXEX): Add decimal floating-point builtin functions.
4352 (DDEDPDQ): Likewise.
4354 (DENBCDQ): Likewise.
4361 (CDTBCD): Add new BCD builtin functions.
4365 (BCDADD_LT): Likewise.
4366 (BCDADD_EQ): Likewise.
4367 (BCDADD_GT): Likewise.
4368 (BCDADD_OV): Likewise.
4370 (BCDSUB_LT): Likewise.
4371 (BCDSUB_EQ): Likewise.
4372 (BCDSUB_GT): Likewise.
4373 (BCDSUB_OV): Likewise.
4374 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
4375 (UNPACK_TD): Likewise.
4376 (PACK_TF): Likewise.
4377 (UNPACK_TF): Likewise.
4378 (UNPACK_TF_0): Likewise.
4379 (UNPACK_TF_1): Likewise.
4380 (PACK_V1TI): Likewise.
4381 (UNPACK_V1TI): Likewise.
4383 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4384 support for decimal floating point builtin functions.
4385 (rs6000_expand_ternop_builtin): Add checks for the new builtin
4386 functions that take constant arguments.
4387 (rs6000_invalid_builtin): Add decimal floating point builtin
4389 (rs6000_init_builtins): Setup long double, _Decimal64, and
4390 _Decimal128 types for new builtin functions.
4391 (builtin_function_type): Set the unsigned flags appropriately for
4392 the new builtin functions.
4393 (rs6000_opt_masks): Add support for decimal floating point builtin
4396 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
4397 floating point builtin functions.
4398 (RS6000_BTM_COMMON): Likewise.
4399 (RS6000_BTI_long_double): Likewise.
4400 (RS6000_BTI_dfloat64): Likewise.
4401 (RS6000_BTI_dfloat128): Likewise.
4402 (long_double_type_internal_node): Likewise.
4403 (dfloat64_type_internal_node): Likewise.
4404 (dfloat128_type_internal_node): Likewise.
4406 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
4407 2.07 bcd arithmetic instructions.
4408 (UNSPEC_BCDSUB): Likewise.
4409 (UNSPEC_BCD_OVERFLOW): Likewise.
4410 (UNSPEC_BCD_ADD_SUB): Likewise.
4411 (bcd_add_sub): Likewise.
4412 (BCD_TEST): Likewise.
4413 (bcd<bcd_add_sub>): Likewise.
4414 (bcd<bcd_add_sub>_test): Likewise.
4415 (bcd<bcd_add_sub>_test2): Likewise.
4416 (bcd<bcd_add_sub>_<code>): Likewise.
4417 (peephole2 for combined bcd ops): Likewise.
4419 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
4420 decimal floating point builtin functions.
4421 (UNSPEC_DENBCD): Likewise.
4422 (UNSPEC_DXEX): Likewise.
4423 (UNSPEC_DIEX): Likewise.
4424 (UNSPEC_DSCLI): Likewise.
4425 (UNSPEC_DSCRI): Likewise.
4426 (D64_D128): Likewise.
4427 (dfp_suffix): Likewise.
4428 (dfp_ddedpd_<mode>): Likewise.
4429 (dfp_denbcd_<mode>): Likewise.
4430 (dfp_dxex_<mode>): Likewise.
4431 (dfp_diex_<mode>): Likewise.
4432 (dfp_dscli_<mode>): Likewise.
4433 (dfp_dscri_<mode>): Likewise.
4435 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
4437 (UNSPEC_CDTBCD): Likewise.
4438 (UNSPEC_CBCDTD): Likewise.
4439 (UNSPEC_DIVE): Add support for new extended divide builtin
4441 (UNSPEC_DIVEO): Likewise.
4442 (UNSPEC_DIVEU): Likewise.
4443 (UNSPEC_DIVEUO): Likewise.
4444 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
4445 pack/unpack 128-bit types.
4446 (UNSPEC_PACK_128BIT): Likewise.
4447 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
4448 (udiv<mode>3): Use idiv_ldiv mode attribute.
4449 (div<mode>3): Likewise.
4450 (addg6s): Add new BCD builtin functions.
4453 (UNSPEC_DIV_EXTEND): Add support for new extended divide
4455 (div_extend): Likewise.
4456 (div<div_extend>_<mode>"): Likewise.
4457 (FP128_64): Add support for new builtin functions to pack/unpack
4459 (unpack<mode>): Likewise.
4460 (unpacktf_0): Likewise.
4461 (unpacktf_1): Likewise.
4462 (unpack<mode>_dm): Likewise.
4463 (unpack<mode>_nodm): Likewise.
4464 (pack<mode>): Likewise.
4465 (unpackv1ti): Likewise.
4466 (packv1ti): Likewise.
4468 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
4470 Backport from mainline
4471 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
4473 * config/rs6000/rs6000.md (addti3, subti3): New.
4475 2014-04-29 Jakub Jelinek <jakub@redhat.com>
4477 PR tree-optimization/60971
4478 * tree-tailcall.c (process_assignment): Reject conversions which
4481 2014-04-29 Nick Clifton <nickc@redhat.com>
4483 * config/msp430/msp430.md (umulsidi): Fix typo.
4484 (mulhisi3): Enable even inside interrupt handlers.
4485 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
4486 bigger return address pushed in large mode.
4488 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
4490 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4491 (loadsync_<mode>): Change mode.
4492 (load_quadpti, store_quadpti): New.
4493 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4494 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4496 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
4498 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
4499 * configure: Regenerate.
4500 * config/sparc/sparc.opt (muser-mode): New option.
4501 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
4503 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
4504 * doc/invoke.texi (SPARC options): Document -muser-mode.
4506 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
4508 * doc/install.texi (Building with profile feedback): Remove
4511 2014-04-26 Tom de Vries <tom@codesourcery.com>
4513 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
4516 2014-04-25 Jakub Jelinek <jakub@redhat.com>
4518 PR tree-optimization/60960
4519 * tree-vect-generic.c (expand_vector_operation): Only call
4520 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
4522 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
4525 * config/sparc/sparc.md (ashlsi3_extend): Delete.
4527 2014-04-25 Richard Biener <rguenther@suse.de>
4530 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
4531 call stmt use/clobber sets during stmt walk instead of
4532 walking the possibly incomplete set of caller edges.
4534 2014-04-25 Richard Biener <rguenther@suse.de>
4537 * passes.c (apply_ipa_transforms): Inline into only caller ...
4538 (execute_one_pass): ... here. Properly bring in function
4539 bodies for nodes we want to apply IPA transforms to.
4541 2014-04-24 Jakub Jelinek <jakub@redhat.com>
4543 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
4544 * gimplify.c (omp_is_private): Change last argument's type to int.
4545 Only diagnose lastprivate if the simd argument is 1, only diagnose
4546 linear if the simd argument is 2.
4547 (gimplify_omp_for): Adjust omp_is_private callers. When adding
4548 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
4549 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
4550 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
4551 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
4552 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4553 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
4554 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4555 * tree-nested.c (convert_nonlocal_omp_clauses,
4556 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
4558 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
4560 Backport from mainline
4561 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
4564 * config/i386/i386.c (ix86_expand_builtin)
4565 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
4566 register for target RTX.
4567 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
4569 2014-04-23 Richard Biener <rguenther@suse.de>
4571 PR tree-optimization/60903
4572 * tree-ssa-loop-im.c (analyze_memory_references): Remove
4573 commented code block.
4574 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
4575 loop flags to newly created BBs and edges.
4577 2014-04-23 Nick Clifton <nickc@redhat.com>
4579 * config/msp430/msp430.c (msp430_handle_option): Move function
4581 (msp430_option_override): Simplify mcu and mcpu option handling.
4582 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
4583 support for -mhwmult command line option.
4584 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
4585 -mhwmult command line option.
4586 (msp430_hwmult_enabled): Delete.
4587 (msp43o_output_labelref): Add support for -mhwmult command line
4589 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
4590 (umulsidi3): Likewise.
4591 * config/msp430/msp430.opt (mmcu): Add Report attribute.
4592 (mcpu, mlarge, msmall): Likewise.
4593 (mhwmult): New option.
4594 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
4596 (msp430_is_f5_mcu): Remove prototype.
4597 (msp430_use_f5_series_hwmult): Add prototype.
4598 * config/msp430/msp430-opts.h: New file.
4599 * common/config/msp430: New directory.
4600 * common/config/msp430/msp430-common.c: New file.
4601 * config.gcc (msp430): Remove target_has_targetm_common.
4602 * doc/invoke.texi: Document -mhwmult command line option.
4604 2014-04-23 Nick Clifton <nickc@redhat.com>
4606 * config/i386/cygwin.h (ENDFILE_SPEC): Include
4607 default-manifest.o if it can be found in the search path.
4608 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
4610 2014-04-23 Richard Biener <rguenther@suse.de>
4612 Backport from mainline
4613 2014-04-14 Richard Biener <rguenther@suse.de>
4616 * lto-streamer-out.c (wrap_refs): New function.
4617 (lto_output): Wrap symbol references in global initializes in
4618 type-preserving MEM_REFs.
4620 2014-04-23 Richard Biener <rguenther@suse.de>
4623 * tree-inline.c (declare_return_variable): Use mark_addressable.
4625 2014-04-23 Richard Biener <rguenther@suse.de>
4628 * loop-init.c (loop_optimizer_init): Make sure to apply
4629 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
4631 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4633 Backport from mainline
4634 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4637 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
4638 If mode is DDmode and TARGET_E500_DOUBLE allow move.
4640 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
4641 more debug information for E500 if -mdebug=reg.
4643 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
4645 Backport from mainline
4646 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
4649 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
4650 on count_exp to get mode.
4652 2014-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4654 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
4656 (vsx_xxmrglw_<mode>): Likewise.
4658 2014-04-22 Richard Biener <rguenther@suse.de>
4660 Backport from mainline
4661 2014-04-14 Richard Biener <rguenther@suse.de>
4664 * fold-const.c (negate_expr_p): Don't negate directional rounding
4666 (fold_negate_expr): Likewise.
4668 2014-04-22 Richard Biener <rguenther@suse.de>
4670 Backport from mainline
4671 2014-04-17 Richard Biener <rguenther@suse.de>
4674 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
4675 boolean results for comparisons.
4677 2014-04-22 Richard Biener <rguenther@suse.de>
4679 Backport from mainline
4680 2014-04-17 Richard Biener <rguenther@suse.de>
4682 PR tree-optimization/60841
4683 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
4684 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
4685 of stmts to SLP build.
4686 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
4687 (vect_analyze_slp): Likewise.
4688 (vect_analyze_slp_instance): Likewise.
4689 (vect_build_slp_tree): Limit overall SLP tree growth.
4690 * tree-vectorizer.h (vect_analyze_data_refs,
4691 vect_analyze_slp): Adjust prototypes.
4693 2014-04-22 Richard Biener <rguenther@suse.de>
4695 Backport from mainline
4696 2014-04-17 Richard Biener <rguenther@suse.de>
4698 PR tree-optimization/60836
4699 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
4700 initial PHI args to be gimple values.
4702 2014-04-22 Richard Biener <rguenther@suse.de>
4704 Backport from mainline
4705 2014-04-14 Richard Biener <rguenther@suse.de>
4707 PR tree-optimization/59817
4708 PR tree-optimization/60453
4709 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4710 recursion to catch all CHRECs in the scalar evolution and restrict
4711 the predicate for the remains appropriately.
4713 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4715 PR tree-optimization/60823
4716 * omp-low.c (ipa_simd_modify_function_body): Go through
4717 all SSA_NAMEs and for those refering to vector arguments
4718 which are going to be replaced adjust SSA_NAME_VAR and,
4719 if it is a default definition, change it into a non-default
4720 definition assigned at the beginning of function from new_decl.
4721 (ipa_simd_modify_stmt_ops): Rewritten.
4722 * tree-dfa.c (set_ssa_default_def): When removing default def,
4723 check for NULL loc instead of NULL *loc.
4725 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
4728 * asan.c (asan_emit_stack_protection): Force the base to align to
4729 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
4730 appropriate bits if STRICT_ALIGNMENT.
4731 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
4733 (expand_used_vars): Leave a space in the stack frame for alignment
4734 if STRICT_ALIGNMENT.
4736 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4738 Backported from mainline
4739 2014-04-16 Jakub Jelinek <jakub@redhat.com>
4741 PR tree-optimization/60844
4742 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
4743 (propagate_op_to_single_use, remove_visited_stmt_chain,
4744 linearize_expr, repropagate_negates, reassociate_bb): Use it
4745 instead of gsi_remove.
4747 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4749 * BASE-VER: Set to 4.9.1.
4750 * DEV-PHASE: Set to prerelease.
4752 2014-04-22 Release Manager
4754 * GCC 4.9.0 released.
4756 2014-04-18 Richard Henderson <rth@redhat.com>
4758 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
4759 to GET_MODE_SIZE, not a reg_class_t.
4761 2014-04-17 Jakub Jelinek <jakub@redhat.com>
4764 Forward port from 4.8 branch
4765 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
4767 * config/i386/bmiintrin.h (_blsi_u32): New.
4771 (_blsmsk_u32): Ditto.
4772 (_blsmsk_u64): Ditto.
4773 (_tzcnt_u32): Ditto.
4774 (_tzcnt_u64): Ditto.
4776 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4779 Revert the following patch
4781 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4784 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4785 software floating point or no floating point registers, do not
4786 allow any type in the FPRs. Eliminate a test for SPE SIMD types
4787 in GPRs that occurs after we tested for GPRs that would never be
4790 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4791 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4792 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
4793 specifically allow DDmode, since that does not use the SPE SIMD
4796 2014-04-15 Jakub Jelinek <jakub@redhat.com>
4799 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
4802 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
4804 * doc/invoke.texi (free): Document AArch64.
4806 2013-04-11 Jakub Jelinek <jakub@redhat.com>
4808 * DEV-PHASE: Set to prerelease.
4810 2014-04-11 Tobias Burnus <burnus@net-b.de>
4813 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4814 * doc/gcc.texi (Service): Update description in the @menu
4815 * doc/invoke.texi (Option Summary): Remove misplaced and
4818 2014-04-11 Steve Ellcey <sellcey@mips.com>
4819 Jakub Jelinek <jakub@redhat.com>
4822 * expr.c (convert_move): Use emit_store_flag_force instead of
4823 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
4826 2014-04-11 Richard Biener <rguenther@suse.de>
4829 * varasm.c (assemble_alias): Avoid endless error reporting
4830 recursion by setting TREE_ASM_WRITTEN.
4832 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4834 * config/s390/s390.md: Add a splitter for NOT rtx.
4836 2014-04-11 Jakub Jelinek <jakub@redhat.com>
4838 PR rtl-optimization/60663
4839 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4841 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
4842 Jakub Jelinek <jakub@redhat.com>
4845 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4846 flag from decl_node to node.
4848 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4851 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4852 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4853 ameliorating the cases where it can be.
4855 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
4858 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4860 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4861 (loadsync_<mode>): Change mode.
4862 (load_quadpti, store_quadpti): New.
4863 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4864 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4865 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4867 2014-04-09 Cong Hou <congh@google.com>
4870 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4873 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4875 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4876 instead of vnor to exploit possible fusion opportunity in the
4878 (altivec_expand_vec_perm_const_le): Likewise.
4880 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4882 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4883 (loadsync_<mode>): Change mode.
4884 (load_quadpti, store_quadpti): New.
4885 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4886 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4888 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
4891 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4892 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4893 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4895 2014-04-08 Richard Biener <rguenther@suse.de>
4898 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4899 a 64bit widest int print double-int similar to on HWI64 hosts.
4901 2014-04-08 Richard Biener <rguenther@suse.de>
4903 PR tree-optimization/60785
4904 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4905 default defs properly.
4907 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
4909 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4910 (Weffc++): Likewise.
4912 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
4914 * ipa-devirt.c (maybe_record_node): When node is not recorded,
4915 set completep to false rather than true.
4917 2014-04-07 Douglas B Rupp <rupp@adacore.com>
4920 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4921 ARM_TARGET2_DWARF_FORMAT.
4923 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
4926 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
4927 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
4930 2014-04-07 Richard Biener <rguenther@suse.de>
4932 PR tree-optimization/60766
4933 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
4934 (may_eliminate_iv): Convert cand_value_at result to desired type.
4936 2014-04-07 Jason Merrill <jason@redhat.com>
4939 * common.opt (-fno-gnu-unique): Add.
4940 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
4942 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4944 * haifa-sched.c: Fix outdated function reference and minor
4945 grammar errors in introductory comment.
4947 2014-04-07 Richard Biener <rguenther@suse.de>
4950 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
4952 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
4954 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
4957 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
4958 size accounting for thunks.
4959 (pa_asm_output_mi_thunk): Use final_start_function() and
4960 final_end_function() to output function start and end directives.
4962 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4964 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
4965 device specific ISA/ feature information. Remove short_sp and
4966 errata_skip ds. Add avr_device_specific_features enum to have device
4968 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
4969 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
4970 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
4971 updated device specific info.
4972 * config/avr/avr-mcus.def: Merge device specific details to
4973 dev_attribute field.
4974 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
4976 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
4977 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
4978 assembler if RMW isa supported by current device.
4979 * config/avr/genmultilib.awk: Update as device info structure changed.
4980 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
4982 2014-04-04 Cong Hou <congh@google.com>
4984 PR tree-optimization/60656
4985 * tree-vect-stmts.c (supportable_widening_operation):
4986 Fix a bug that elements in a vector with vect_used_by_reduction
4987 property are incorrectly reordered when the operation on it is not
4988 consistant with the one in reduction operation.
4990 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
4992 PR rtl-optimization/60155
4993 * gcse.c (record_set_data): New function.
4994 (single_set_gcse): New function.
4995 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
4996 (hoist_code): Likewise.
4997 (get_pressure_class_and_nregs): Likewise.
4999 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
5001 * explow.c (probe_stack_range): Emit a final optimization blockage.
5003 2014-04-04 Anthony Green <green@moxielogic.com>
5005 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
5008 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
5011 * lto-cgraph.c (input_overwrite_node): Check that partitioning
5012 flags are set only during streaming.
5013 * ipa.c (process_references, walk_polymorphic_call_targets,
5014 symtab_remove_unreachable_nodes): Drop bodies of always inline
5015 after early inlining.
5016 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5018 2014-04-04 Jakub Jelinek <jakub@redhat.com>
5019 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5022 * dwarf2out.c (const_ok_for_output_1): Reject expressions
5025 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5028 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5030 (cortex_a53_fdivd): Likewise.
5032 2014-04-04 Martin Jambor <mjambor@suse.cz>
5035 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5037 * cgraph.c (clone_of_p): Also return true if thunks match.
5038 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5039 cgraph_function_or_thunk_node and an obsolete comment.
5040 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5042 (build_function_decl_skip_args): Likewise.
5043 (set_new_clone_decl_and_node_flags): New function.
5044 (duplicate_thunk_for_node): Likewise.
5045 (redirect_edge_duplicating_thunks): Likewise.
5046 (cgraph_clone_node): New parameter args_to_skip, pass it to
5047 redirect_edge_duplicating_thunks which is called instead of
5048 cgraph_redirect_edge_callee.
5049 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5050 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5052 2014-04-04 Jeff Law <law@redhat.com>
5055 * config/arm/predicates.md (const_int_I_operand): New predicate.
5056 (const_int_M_operand): Similarly.
5057 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5059 (insv_t2, extv_reg, extzv_t2): Likewise.
5060 (load_multiple_with_writeback): Similarly for const_int_I_operand.
5061 (pop_multiple_with_writeback_and_return): Likewise.
5062 (vfp_pop_multiple_with_writeback): Likewise
5064 2014-04-04 Richard Biener <rguenther@suse.de>
5067 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5068 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5070 * gimplify.h (gimple_add_tmp_var_fn): Declare.
5071 * gimplify.c (gimple_add_tmp_var_fn): New function.
5072 * gimple-expr.h (create_tmp_reg_fn): Declare.
5073 * gimple-expr.c (create_tmp_reg_fn): New function.
5074 * gimple-low.c (record_vars_into): Don't change cfun.
5075 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5076 code generation without cfun.
5078 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
5081 * Makefile.in (install-driver): Fix shell scripting.
5083 2014-04-03 Cong Hou <congh@google.com>
5085 PR tree-optimization/60505
5086 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5087 threshold of number of iterations below which no vectorization
5089 * tree-vect-loop.c (new_loop_vec_info):
5090 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5091 * tree-vect-loop.c (vect_analyze_loop_operations):
5092 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5093 * tree-vect-loop.c (vect_transform_loop):
5094 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5095 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5096 of iterations of the loop and see if we should build the epilogue.
5098 2014-04-03 Richard Biener <rguenther@suse.de>
5100 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5101 (streamer_tree_cache_create): Adjust.
5102 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5103 to allow optional nodes array.
5104 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5105 (streamer_tree_cache_append): Likewise.
5106 (streamer_tree_cache_create): Create nodes array optionally
5107 as specified by parameter.
5108 * lto-streamer-out.c (create_output_block): Avoid maintaining
5109 the node array in the writer cache.
5110 (DFS_write_tree): Remove assertion.
5111 (produce_asm_for_decls): Free the out decl state hash table early.
5112 * lto-streamer-in.c (lto_data_in_create): Adjust for
5113 streamer_tree_cache_create prototype change.
5115 2014-04-03 Richard Biener <rguenther@suse.de>
5117 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5118 set TREE_CHAIN to NULL_TREE.
5120 2014-04-03 Richard Biener <rguenther@suse.de>
5122 PR tree-optimization/60740
5123 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5124 over all GIMPLE_COND operands.
5126 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
5128 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5129 (Weffc++): Remove Scott's numbering, merge lists and reference
5132 2014-04-03 Nick Clifton <nickc@redhat.com>
5134 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5137 2014-04-03 Martin Jambor <mjambor@suse.cz>
5139 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5140 mention gcc_unreachable before failing.
5141 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5144 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
5147 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5148 inconsistent code and instead mark the context inconsistent.
5149 (possible_polymorphic_call_targets): For inconsistent contexts
5150 return empty complete list.
5152 2014-04-02 Anthony Green <green@moxielogic.com>
5154 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5155 (extendqisi2, extendhisi2): Define.
5156 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5157 (WCHAR_TYPE): Change to unsigned int.
5159 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5161 PR tree-optimization/60733
5162 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5163 insertion point for PHI candidates to be the end of the feeding
5164 block for the PHI argument.
5166 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
5168 PR rtl-optimization/60650
5169 * lra-constraints.c (process_alt_operands): Decrease reject for
5170 earlyclobber matching.
5172 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5174 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5176 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5178 * config/spu/spu.c (pad_bb): Do not crash when the last
5179 insn is CODE_FOR_blockage.
5181 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5183 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5184 lies outside the target mode.
5186 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5189 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5190 software floating point or no floating point registers, do not
5191 allow any type in the FPRs. Eliminate a test for SPE SIMD types
5192 in GPRs that occurs after we tested for GPRs that would never be
5195 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5196 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5197 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
5198 specifically allow DDmode, since that does not use the SPE SIMD
5201 2014-04-02 Richard Biener <rguenther@suse.de>
5204 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5205 MODE_INTs. Properly use negv_optab.
5206 (expand_abs): Likewise.
5208 2014-04-02 Richard Biener <rguenther@suse.de>
5211 * Makefile.in (install-driver): Guard extra installs with special
5214 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5216 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5219 2014-04-01 Richard Henderson <rth@redhat.com>
5222 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5223 alternative enabled before register allocation.
5225 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
5227 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5228 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5230 (nios2_large_got_address): Remove unneeded 'sym' parameter.
5231 (nios2_got_address): Update nios2_large_got_address call site.
5232 (nios2_delegitimize_address): New function.
5233 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5234 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5235 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5237 2014-04-01 Martin Husemann <martin@duskware.de>
5239 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5242 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
5244 PR rtl-optimization/60604
5245 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5246 check from register_operand.
5247 (register_operand): Redefine in terms of general_operand.
5248 (nonmemory_operand): Use register_operand for the non-constant cases.
5250 2014-04-01 Richard Biener <rguenther@suse.de>
5252 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5254 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
5256 * doc/invoke.texi (mapp-regs): Clarify.
5258 2014-03-31 Ulrich Drepper <drepper@gmail.com>
5260 * config/i386/avx512fintrin.h (__v32hi): Define type.
5261 (__v64qi): Likewise.
5262 (_mm512_set1_epi8): Define.
5263 (_mm512_set1_epi16): Define.
5264 (_mm512_set4_epi32): Define.
5265 (_mm512_set4_epi64): Define.
5266 (_mm512_set4_pd): Define.
5267 (_mm512_set4_ps): Define.
5268 (_mm512_setr4_epi64): Define.
5269 (_mm512_setr4_epi32): Define.
5270 (_mm512_setr4_pd): Define.
5271 (_mm512_setr4_ps): Define.
5272 (_mm512_setzero_epi32): Define.
5274 2014-03-31 Martin Jambor <mjambor@suse.cz>
5277 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5278 callsite_arguments_match_p. Updated all callers. Also check types of
5279 corresponding formal parameters and actual arguments.
5280 (not_all_callers_have_enough_arguments_p) Renamed to
5281 some_callers_have_mismatched_arguments_p.
5283 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
5285 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5287 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
5290 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5293 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
5295 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5296 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5298 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5299 Use FMAMODE_NOVF512 mode iterator.
5300 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5301 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5302 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5303 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5305 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5306 Use VF_128_256 mode iterator.
5307 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5310 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5312 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5313 static chain if needed.
5315 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
5318 * lra-constraints.c (index_part_to_reg): New.
5319 (process_address): Use it.
5321 2014-03-27 Jeff Law <law@redhat.com>
5322 Jakub Jelinek <jakub@redhat.com>
5325 * expr.c (do_tablejump): Use simplify_gen_binary rather than
5326 gen_rtx_{PLUS,MULT} to build up the address expression.
5328 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
5329 creating non-canonical RTL.
5331 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5334 * ipa-inline.c (want_inline_small_function_p): Short circuit large
5335 functions; reorganize to make cheap checks first.
5336 (inline_small_functions): Do not estimate growth when dumping;
5338 * ipa-inline.h (inline_summary): Add min_size.
5339 (growth_likely_positive): New function.
5340 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
5341 (set_cond_stmt_execution_predicate): Cleanup.
5342 (estimate_edge_size_and_time): Compute min_size.
5343 (estimate_calls_size_and_time): Likewise.
5344 (estimate_node_size_and_time): Likewise.
5345 (inline_update_overall_summary): Update min_size.
5346 (do_estimate_edge_time): Likewise.
5347 (do_estimate_edge_size): Update.
5348 (do_estimate_edge_hints): Update.
5349 (growth_likely_positive): New function.
5351 2014-03-28 Jakub Jelinek <jakub@redhat.com>
5354 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
5355 also if addr has VOIDmode.
5357 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5359 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
5360 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5362 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
5363 instructions as well as AdvancedSIMD loads.
5365 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5367 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
5368 Use crypto_aese type.
5369 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
5370 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
5371 crypto_aese, crypto_aesmc. Move to types.md.
5372 * config/arm/types.md (crypto_aes): Split into crypto_aese,
5374 * config/arm/iterators.md (crypto_type): Likewise.
5376 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5378 * cgraph.c: Include expr.h and tree-dfa.h.
5379 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
5382 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
5385 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
5386 regs from checking multi-reg pseudos.
5388 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5390 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
5392 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5394 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
5395 if it would clobber the stack pointer, even temporarily.
5397 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
5399 * mode-switching.c: Make small adjustments to the top comment.
5401 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
5403 * config/rs6000/constraints.md (wD constraint): New constraint to
5404 match the constant integer to get the top DImode/DFmode out of a
5405 vector in a VSX register.
5407 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
5408 match the constant integer to get the top DImode/DFmode out of a
5409 vector in a VSX register.
5411 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
5414 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5417 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
5418 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
5420 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
5421 Optimize vec_extract of 64-bit values, where the value being
5422 extracted is in the top word, where we can use scalar
5423 instructions. Add direct move and store support. Combine the big
5424 endian/little endian vector select load support into a single insn.
5425 (vsx_extract_<mode>_internal1): Likewise.
5426 (vsx_extract_<mode>_internal2): Likewise.
5427 (vsx_extract_<mode>_load): Likewise.
5428 (vsx_extract_<mode>_store): Likewise.
5429 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
5430 combined into vsx_extract_<mode>_load.
5431 (vsx_extract_<mode>_one_le): Likewise.
5433 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
5434 define the top 64-bit vector element.
5436 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
5439 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5440 Document vec_vbpermq builtin.
5443 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
5444 enable use of xxsldwi and xxpermdi builtin functions.
5445 (vec_xxpermdi): Likewise.
5447 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5448 Document use of vec_xxsldwi and vec_xxpermdi builtins.
5450 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
5452 PR rtl-optimization/60650
5453 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
5455 (find_spills_for): New.
5456 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
5457 Spill all pseudos on the second iteration.
5459 2014-03-27 Marek Polacek <polacek@redhat.com>
5462 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
5465 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5467 * config/s390/s390.c (s390_can_use_return_insn): Check for
5468 call-saved FPRs on 31 bit.
5470 2014-03-27 Jakub Jelinek <jakub@redhat.com>
5473 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
5474 if they need regimplification, just drop them instead of
5475 calling gimple_regimplify_operands on them.
5477 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
5480 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
5481 (aarch64_frame_pointer_required): Adjust logic.
5482 (aarch64_can_eliminate): Adjust logic.
5483 (aarch64_override_options_after_change): Adjust logic.
5485 2014-03-27 Dehao Chen <dehao@google.com>
5487 * ipa-inline.c (early_inliner): Update node's inline info.
5489 2014-03-26 Dehao Chen <dehao@google.com>
5491 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
5492 compiler inserted conditional jumps for NAN float check.
5494 2014-03-26 Jakub Jelinek <jakub@redhat.com>
5496 * ubsan.h (ubsan_create_data): Change second argument's type
5497 to const location_t *.
5498 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
5500 (ubsan_create_data): Change second argument to const location_t *PLOC.
5501 Create Loc field whenever PLOC is non-NULL.
5502 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
5503 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
5507 * real.c (real_to_integer2): Change type of low to UHWI.
5509 2014-03-26 Tobias Burnus <burnus@net-b.de>
5511 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
5512 (CILK_SELF_SPECS): New define.
5513 (driver_self_specs): Use it.
5515 2014-03-26 Richard Biener <rguenther@suse.de>
5517 * tree-pretty-print.c (percent_K_format): Implement special
5518 case for LTO and its stripped down BLOCK tree.
5520 2014-03-26 Jakub Jelinek <jakub@redhat.com>
5523 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
5525 * tree-vrp.c (simplify_internal_call_using_ranges): If only
5526 one range is range_int_cst_p, but not both, at least optimize
5527 addition/subtraction of 0 and multiplication by 0 or 1.
5528 * gimple-fold.c (gimple_fold_call): Fold
5529 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
5530 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
5531 INTEGER_CSTs, try to fold at least x * 0 and y - y.
5533 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
5535 PR rtl-optimization/60452
5536 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
5537 <case REG>: Return 1 for invalid offsets from the frame pointer.
5539 2014-03-26 Marek Polacek <polacek@redhat.com>
5542 * doc/extend.texi (C Extensions): Mention variable-length arrays in
5545 2014-03-26 Marek Polacek <polacek@redhat.com>
5548 * doc/extend.texi (Designated Inits): Describe what happens to omitted
5551 2014-03-26 Marek Polacek <polacek@redhat.com>
5554 * ira-color.c (update_conflict_hard_regno_costs): Perform the
5555 multiplication in unsigned type.
5557 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
5559 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
5561 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
5563 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
5565 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
5568 * cif-code.def (UNREACHABLE) New code.
5569 * ipa-inline.c (inline_small_functions): Skip edges to
5570 __builtlin_unreachable.
5571 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
5572 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
5573 predicate to __bulitin_unreachable.
5574 (set_cond_stmt_execution_predicate): Fix issue when
5575 invert_tree_comparison returns ERROR_MARK.
5576 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
5577 propagate to inline clones.
5578 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
5580 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
5581 * cgraphclones.c (cgraph_clone_node): If call destination is already
5582 ureachable, do not redirect it back.
5583 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
5586 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
5588 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
5589 Do not modify inline clones.
5591 2014-03-25 Jakub Jelinek <jakub@redhat.com>
5593 * config/i386/i386.md (general_sext_operand): New mode attr.
5594 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
5595 don't generate (sign_extend (const_int)).
5596 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
5597 operands[2]. Use We constraint instead of <i> and
5598 <general_sext_operand> predicate instead of <general_operand>.
5599 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
5600 * config/i386/constraints.md (We): New constraint.
5601 * config/i386/predicates.md (x86_64_sext_operand,
5602 sext_operand): New predicates.
5604 2014-03-25 Martin Jambor <mjambor@suse.cz>
5607 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
5608 inconsistent devirtualizations to __builtin_unreachable.
5610 2014-03-25 Marek Polacek <polacek@redhat.com>
5613 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
5615 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
5617 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
5618 order of elements for big-endian.
5620 2014-03-25 Richard Biener <rguenther@suse.de>
5623 * gimplify-me.c (gimple_regimplify_operands): Update the
5626 2014-03-25 Martin Jambor <mjambor@suse.cz>
5629 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
5630 (lto_output_varpool_node): Likewise.
5631 (input_overwrite_node): Likewise.
5632 (input_varpool_node): Likewise.
5634 2014-03-25 Richard Biener <rguenther@suse.de>
5636 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
5637 (run_gcc): Likewise.
5639 2014-03-25 Jakub Jelinek <jakub@redhat.com>
5641 * combine.c (simplify_compare_const): Add MODE argument.
5642 Handle mode_width 0 as very large mode_width.
5643 (try_combine, simplify_comparison): Adjust callers.
5645 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
5646 type to avoid signed integer overflow.
5647 * explow.c (plus_constant): Likewise.
5649 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
5651 * doc/generic.texi: Correct typos.
5653 2014-03-24 Tobias Burnus <burnus@net-b.de>
5655 * doc/invoke.texi (-flto): Expand section about
5656 using static libraries with LTO.
5658 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5660 PR rtl-optimization/60501
5661 * optabs.def (addptr3_optab): New optab.
5662 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5663 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5664 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5666 * lra.c (emit_add3_insn): Use the addptr pattern if available.
5668 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5670 2014-03-24 Ulrich Drepper <drepper@gmail.com>
5672 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5675 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5676 (_mm256_undefined_ps): Define.
5677 (_mm256_undefined_pd): Define.
5678 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5679 (_mm_undefined_pd): Define.
5680 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5681 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5682 (_mm512_undefined_ps): Define.
5683 (_mm512_undefined_pd): Define.
5684 Use _mm*_undefined_*.
5685 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5687 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
5689 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5690 (lshr_simd): DI mode added.
5691 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5692 (aarch64_ushr_simddi): Likewise.
5693 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5694 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5695 (vshrd_n_u64): Likewise.
5697 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5699 * Makefile.in (s-macro_list): Depend on cc1.
5701 2014-03-23 Teresa Johnson <tejohnson@google.com>
5703 * ipa-utils.c (ipa_print_order): Use specified dump file.
5705 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
5707 PR rtl-optimization/60601
5708 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5710 * gcc.c (eval_spec_function): Initialize save_growing_value.
5712 2014-03-22 Jakub Jelinek <jakub@redhat.com>
5715 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5716 code == MINUS_EXPR, never swap op0 with op1.
5718 * toplev.c (init_local_tick): Avoid signed integer multiplication
5720 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5721 shift by first operand's bitsize.
5723 2014-03-21 Jakub Jelinek <jakub@redhat.com>
5726 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5728 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5729 TARGET_ISA_64BIT_P(x).
5731 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5733 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5734 pattern for vector nor instead of subtract from splat(-1).
5735 (altivec_expand_vec_perm_const_le): Likewise.
5737 2014-03-21 Richard Henderson <rth@twiddle.net>
5740 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5741 related insns after epilogue_completed.
5743 2014-03-21 Martin Jambor <mjambor@suse.cz>
5746 * cgraph.h (symtab_node): New flag body_removed.
5747 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5748 when removing bodies.
5749 * symtab.c (dump_symtab_base): Dump body_removed flag.
5750 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5751 had their bodies removed.
5753 2014-03-21 Martin Jambor <mjambor@suse.cz>
5756 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5759 2014-03-21 Richard Biener <rguenther@suse.de>
5761 PR tree-optimization/60577
5762 * tree-core.h (struct tree_base): Document nothrow_flag use
5764 * tree.h (DECL_NONALIASED): New.
5765 (may_be_aliased): Adjust.
5766 * coverage.c (build_var): Set DECL_NONALIASED.
5768 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5770 * expr.c (expand_expr_real_1): Remove outdated comment.
5772 2014-03-20 Jakub Jelinek <jakub@redhat.com>
5775 * ira.c (adjust_cleared_regs): Call copy_rtx on
5776 *reg_equiv[REGNO (loc)].src_p before passing it to
5777 simplify_replace_fn_rtx.
5780 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5781 into CONST, put pic register as first operand of PLUS. Use
5782 gen_const_mem for both 32-bit and 64-bit PIC got loads.
5784 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5786 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5788 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5790 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5791 around for store forwarding issue in the FPU on the UT699.
5792 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5793 loads and operations if -mfix-ut699 is specified.
5794 (divtf3_hq): Tweak attribute.
5795 (sqrttf2_hq): Likewise.
5797 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5799 * calls.c (store_one_arg): Remove incorrect const qualification on the
5800 type of the temporary.
5801 * cfgexpand.c (expand_return): Likewise.
5802 * expr.c (expand_constructor): Likewise.
5803 (expand_expr_real_1): Likewise.
5805 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5807 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5810 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
5813 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5815 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
5817 * config/arm/aarch-common-protos.h
5818 (alu_cost_table): Fix spelling of "extend".
5819 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5821 2014-03-19 Richard Biener <rguenther@suse.de>
5824 * tree-core.h (tree_type_common): Re-order pointer members
5825 to reduce recursion depth during GC walks.
5827 2014-03-19 Marek Polacek <polacek@redhat.com>
5830 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5831 before accessing it.
5833 2014-03-19 Richard Biener <rguenther@suse.de>
5836 * lto-streamer-in.c (input_function): In WPA stage do not drop
5839 2014-03-19 Jakub Jelinek <jakub@redhat.com>
5841 PR tree-optimization/60559
5842 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5843 with build_zero_cst assignment.
5845 2014-03-18 Kai Tietz <ktietz@redhat.com>
5847 PR rtl-optimization/56356
5848 * sdbout.c (sdbout_parms): Verify that parms'
5849 incoming argument is valid.
5850 (sdbout_reg_parms): Likewise.
5852 2014-03-18 Richard Henderson <rth@redhat.com>
5855 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5856 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
5857 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5859 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
5861 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5862 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5863 Italicize plugin event names in description. Explain that
5864 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
5865 Remind that no GCC functions should be called after PLUGIN_FINISH.
5866 Explain what pragmas with expansion are.
5868 2014-03-18 Martin Liska <mliska@suse.cz>
5870 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5871 gimple call statement is update.
5872 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5873 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5875 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5878 * ubsan.c (ubsan_instrument_unreachable): Call
5879 initialize_sanitizer_builtins.
5880 (ubsan_pass): Likewise.
5883 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5884 varpool_finalize_decl instead of rest_of_decl_compilation.
5886 2014-03-18 Richard Biener <rguenther@suse.de>
5888 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5889 by using bitmap_and_compl instead of bitmap_and_compl_into.
5890 (df_rd_transfer_function): Likewise.
5892 2014-03-18 Richard Biener <rguenther@suse.de>
5894 * doc/lto.texi (fresolution): Fix typo.
5896 2014-03-18 Richard Biener <rguenther@suse.de>
5898 * doc/invoke.texi (flto): Update for changes in 4.9.
5900 2014-03-18 Richard Biener <rguenther@suse.de>
5902 * doc/loop.texi: Remove section on the removed lambda framework.
5903 Update loop docs with recent changes in preserving loop structure.
5905 2014-03-18 Richard Biener <rguenther@suse.de>
5907 * doc/lto.texi (-fresolution): Document.
5909 2014-03-18 Richard Biener <rguenther@suse.de>
5911 * doc/contrib.texi: Adjust my name.
5913 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5916 * internal-fn.c: Include diagnostic-core.h.
5917 (expand_BUILTIN_EXPECT): New function.
5918 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5919 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5920 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5921 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5923 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5924 Revert 3 argument __builtin_expect code.
5925 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
5926 * gimple-fold.c (gimple_fold_call): Likewise.
5927 * tree.h (fold_builtin_expect): New prototype.
5928 * builtins.c (build_builtin_expect_predicate): Add predictor
5929 argument, if non-NULL, create 3 argument __builtin_expect.
5930 (fold_builtin_expect): No longer static. Add ARG2 argument,
5931 pass it through to build_builtin_expect_predicate.
5932 (fold_builtin_2): Adjust caller.
5933 (fold_builtin_3): Handle BUILT_IN_EXPECT.
5934 * internal-fn.def (BUILTIN_EXPECT): New.
5936 2014-03-18 Tobias Burnus <burnus@net-b.de>
5939 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
5940 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
5941 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
5943 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
5946 * predict.c (combine_predictions_for_bb): Fix up formatting.
5947 (expr_expected_value_1, expr_expected_value): Add predictor argument,
5948 fill what it points to if non-NULL.
5949 (tree_predict_by_opcode): Adjust caller, use the predictor.
5950 * predict.def (PRED_COMPARE_AND_SWAP): Add.
5952 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
5954 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5955 proper constant for the store mode.
5957 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
5959 * symtab.c (change_decl_assembler_name): Fix transparent alias
5962 2014-03-16 Renlin Li <Renlin.Li@arm.com>
5964 * config/aarch64/aarch64.c: Correct the comments about the
5965 aarch64 stack layout.
5967 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
5969 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
5970 check for GF_OMP_FOR_KIND_FOR.
5972 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
5974 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
5975 ymm and zmm register names.
5977 2014-03-17 Jakub Jelinek <jakub@redhat.com>
5980 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
5981 note creation for the 2010-08-31 changes.
5983 2014-03-17 Marek Polacek <polacek@redhat.com>
5986 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
5987 as -fno-tree-loop-vectorize.
5988 (expand_omp_simd): Likewise.
5990 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
5992 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5993 (eligible_for_call_delay): New prototype.
5994 * config/sparc/sparc.c (tls_call_delay): Rename into...
5995 (eligible_for_call_delay): ...this. Return false if the instruction
5996 cannot be put in the delay slot of a branch.
5997 (eligible_for_restore_insn): Simplify.
5998 (eligible_for_return_delay): Return false if the instruction cannot be
5999 put in the delay slot of a branch and simplify.
6000 (eligible_for_sibcall_delay): Return false if the instruction cannot be
6001 put in the delay slot of a branch.
6002 * config/sparc/sparc.md (fix_ut699): New attribute.
6003 (tls_call_delay): Delete.
6004 (in_call_delay): Reimplement.
6005 (eligible_for_sibcall_delay): Rename into...
6006 (in_sibcall_delay): ...this.
6007 (eligible_for_return_delay): Rename into...
6008 (in_return_delay): ...this.
6009 (in_branch_delay): Reimplement.
6010 (in_uncond_branch_delay): Delete.
6011 (in_annul_branch_delay): Delete.
6013 2014-03-14 Richard Henderson <rth@redhat.com>
6016 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6017 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6018 (*floathi<X87MODEF>2_i387_with_temp): Remove.
6019 (floathi splitters): Remove.
6020 (float<SWI48x>xf2): New pattern.
6021 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
6022 code that tried to handle DImode for 32-bit, but which was excluded
6023 by the pattern's condition. Drop allocation of stack temporary.
6024 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6025 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6026 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6027 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6028 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6029 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6030 (*float<SWI48><MODEF>2_sse_interunit): Remove.
6031 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6032 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6033 (*float<SWI48x><X87MODEF>2_i387): Remove.
6034 (all float _with_temp splitters): Remove.
6035 (*float<SWI48x><MODEF>2_i387): New pattern.
6036 (*float<SWI48><MODEF>2_sse): New pattern.
6037 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6038 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6040 2014-03-14 Jakub Jelinek <jakub@redhat.com>
6041 Marek Polacek <polacek@redhat.com>
6044 * common.opt (dump_base_name_prefixed): New Variable.
6045 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6046 if x_dump_base_name_prefixed is already set, set it at the end.
6048 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
6050 PR rtl-optimization/60508
6051 * lra-constraints.c (get_reload_reg): Add new parameter
6053 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6054 Pass the new parameter values.
6056 2014-03-14 Richard Biener <rguenther@suse.de>
6058 * common.opt: Revert unintented changes from r205065.
6061 2014-03-14 Richard Biener <rguenther@suse.de>
6064 * cfghooks.c (split_block): Properly adjust all loops the
6065 block was a latch of.
6067 2014-03-14 Martin Jambor <mjambor@suse.cz>
6070 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6073 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
6076 * config/avr/avr.c (avr_set_current_function): Pass function name
6077 through default_strip_name_encoding before sanity checking instead
6078 of skipping the first char of the assembler name.
6080 2014-03-13 Richard Henderson <rth@redhat.com>
6083 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6084 (ix86_force_to_memory, ix86_free_from_memory): Remove.
6085 * config/i386/i386-protos.h: Likewise.
6086 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6087 in the expander instead of a splitter.
6088 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6089 any possibility of requiring a memory.
6090 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6091 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6092 (fp branch splitters): Update for ix86_split_fp_branch.
6093 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6094 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6095 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6096 (*fop_<MODEF>_2_i387): Remove f/r alternative.
6097 (*fop_<MODEF>_3_i387): Likewise.
6098 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6099 (splitters for the fop_* register patterns): Remove.
6100 (fscalexf4_i387): Rename from *fscalexf4_i387.
6101 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6103 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6105 PR tree-optimization/59779
6106 * tree-dfa.c (get_ref_base_and_extent): Use double_int
6107 type for bitsize and maxsize instead of HOST_WIDE_INT.
6109 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
6111 PR rtl-optimization/57320
6112 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6113 the CFG after thread_prologue_and_epilogue_insns.
6115 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
6117 PR rtl-optimization/57189
6118 * lra-constraints.c (process_alt_operands): Disfavor spilling
6121 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
6123 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6125 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6127 PR tree-optimization/59025
6129 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6130 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6132 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
6135 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6136 calls of avr_out_plus_1.
6138 2014-03-13 Bin Cheng <bin.cheng@arm.com>
6140 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6141 BB's single pred and update the father loop's latch info later.
6143 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6145 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6149 (VEC_base): Likewise.
6150 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6151 registers, we need to swap double words in little endian mode.
6153 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6154 to be a container mode for 128-bit integer operations added in ISA
6155 2.07. Unlike TImode and PTImode, the preferred register set is
6156 the Altivec/VMX registers for the 128-bit operations.
6158 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6160 (rs6000_split_128bit_ok_p): Likewise.
6162 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6163 macros for creating ISA 2.07 normal and overloaded builtin
6164 functions with 3 arguments.
6165 (BU_P8V_OVERLOAD_3): Likewise.
6166 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6167 for use as overloaded functions.
6168 (VPERM_1TI_UNS): Likewise.
6169 (VSEL_1TI): Likewise.
6170 (VSEL_1TI_UNS): Likewise.
6171 (ST_INTERNAL_1ti): Likewise.
6172 (LD_INTERNAL_1ti): Likewise.
6173 (XXSEL_1TI): Likewise.
6174 (XXSEL_1TI_UNS): Likewise.
6175 (VPERM_1TI): Likewise.
6176 (VPERM_1TI_UNS): Likewise.
6177 (XXPERMDI_1TI): Likewise.
6178 (SET_1TI): Likewise.
6179 (LXVD2X_V1TI): Likewise.
6180 (STXVD2X_V1TI): Likewise.
6181 (VEC_INIT_V1TI): Likewise.
6182 (VEC_SET_V1TI): Likewise.
6183 (VEC_EXT_V1TI): Likewise.
6184 (EQV_V1TI): Likewise.
6185 (NAND_V1TI): Likewise.
6186 (ORC_V1TI): Likewise.
6187 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6188 added in ISA 2.07. Add both normal 'altivec' builtins, and the
6190 (VADDUQM): Likewise.
6191 (VSUBCUQ): Likewise.
6192 (VADDEUQM): Likewise.
6193 (VADDECUQ): Likewise.
6194 (VSUBEUQM): Likewise.
6195 (VSUBECUQ): Likewise.
6197 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6198 __int128_t and __uint128_t types.
6199 (__uint128_type): Likewise.
6200 (altivec_categorize_keyword): Add support for vector __int128_t,
6201 vector __uint128_t, vector __int128, and vector unsigned __int128
6202 as a container type for TImode operations that need to be done in
6203 VSX/Altivec registers.
6204 (rs6000_macro_to_expand): Likewise.
6205 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6206 to support 128-bit integer instructions vaddcuq, vadduqm,
6207 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6208 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6210 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6211 for V1TImode, and set up preferences to use VSX/Altivec registers.
6212 Setup VSX reload handlers.
6213 (rs6000_debug_reg_global): Likewise.
6214 (rs6000_init_hard_regno_mode_ok): Likewise.
6215 (rs6000_preferred_simd_mode): Likewise.
6216 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6217 (easy_altivec_constant): Likewise.
6218 (output_vec_const_move): Likewise.
6219 (rs6000_expand_vector_set): Convert V1TImode set and extract to
6221 (rs6000_expand_vector_extract): Likewise.
6222 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6224 (rs6000_const_vec): Add support for V1TImode.
6225 (rs6000_emit_le_vsx_load): Swap double words when loading or
6226 storing TImode/V1TImode.
6227 (rs6000_emit_le_vsx_store): Likewise.
6228 (rs6000_emit_le_vsx_move): Likewise.
6229 (rs6000_emit_move): Add support for V1TImode.
6230 (altivec_expand_ld_builtin): Likewise.
6231 (altivec_expand_st_builtin): Likewise.
6232 (altivec_expand_vec_init_builtin): Likewise.
6233 (altivec_expand_builtin): Likewise.
6234 (rs6000_init_builtins): Add support for V1TImode type. Add
6235 support for ISA 2.07 128-bit integer builtins. Define type names
6236 for the VSX/Altivec vector types.
6237 (altivec_init_builtins): Add support for overloaded vector
6238 functions with V1TImode type.
6239 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6240 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6242 (rs6000_split_128bit_ok_p): Likewise.
6243 (rs6000_handle_altivec_attribute): Create V1TImode from vector
6244 __int128_t and vector __uint128_t.
6246 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6247 and mode attributes.
6254 (VS_scalar): Likewise.
6255 (VS_double): Likewise.
6256 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6258 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6259 we support the ISA 2.07 128-bit integer arithmetic instructions.
6260 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6261 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6262 and TImode types for use with the builtin functions.
6263 (V1TI_type_node): Likewise.
6264 (unsigned_V1TI_type_node): Likewise.
6265 (intTI_type_internal_node): Likewise.
6266 (uintTI_type_internal_node): Likewise.
6268 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6269 128-bit builtin functions.
6270 (UNSPEC_VADDEUQM): Likewise.
6271 (UNSPEC_VADDECUQ): Likewise.
6272 (UNSPEC_VSUBCUQ): Likewise.
6273 (UNSPEC_VSUBEUQM): Likewise.
6274 (UNSPEC_VSUBECUQ): Likewise.
6275 (VM): Add V1TImode to vector mode iterators.
6277 (VI_unit): Likewise.
6278 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6279 (altivec_vaddcuq): Likewise.
6280 (altivec_vsubuqm): Likewise.
6281 (altivec_vsubcuq): Likewise.
6282 (altivec_vaddeuqm): Likewise.
6283 (altivec_vaddecuq): Likewise.
6284 (altivec_vsubeuqm): Likewise.
6285 (altivec_vsubecuq): Likewise.
6287 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6289 (BOOL_128): Likewise.
6290 (BOOL_REGS_OUTPUT): Likewise.
6291 (BOOL_REGS_OP1): Likewise.
6292 (BOOL_REGS_OP2): Likewise.
6293 (BOOL_REGS_UNARY): Likewise.
6294 (BOOL_REGS_AND_CR0): Likewise.
6296 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6297 128-bit integer builtin support.
6298 (vec_vadduqm): Likewise.
6299 (vec_vaddecuq): Likewise.
6300 (vec_vaddeuqm): Likewise.
6301 (vec_vsubecuq): Likewise.
6302 (vec_vsubeuqm): Likewise.
6303 (vec_vsubcuq): Likewise.
6304 (vec_vsubuqm): Likewise.
6306 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6307 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6308 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6309 128-bit integer add/subtract to ISA 2.07.
6311 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
6313 * config/arc/arc.c (arc_predicate_delay_insns):
6314 Fix third argument passed to conditionalize_nonjump.
6316 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
6318 * config/aarch64/aarch64-builtins.c
6319 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
6320 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
6321 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
6322 instead of __builtin_lfloor.
6323 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
6325 2014-03-12 Jakub Jelinek <jakub@redhat.com>
6327 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
6328 (tree_ssa_ifcombine_bb_1): New function.
6329 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
6330 is an empty forwarder block to then_bb or vice versa and then_bb
6331 and else_bb are effectively swapped.
6333 2014-03-12 Christian Bruel <christian.bruel@st.com>
6336 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
6337 REG_CFA_DEF_CFA note.
6338 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
6339 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
6341 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
6343 PR tree-optimization/60454
6344 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
6346 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6348 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
6349 Do not define target_cpu_default2 to generic.
6350 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
6351 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
6352 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
6354 2014-03-12 Jakub Jelinek <jakub@redhat.com>
6355 Marc Glisse <marc.glisse@inria.fr>
6357 PR tree-optimization/60502
6358 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
6359 instead of build_low_bits_mask.
6361 2014-03-12 Jakub Jelinek <jakub@redhat.com>
6364 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
6365 if there are multiple uses, but op doesn't live on E edge.
6366 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
6367 clobber stmts before __builtin_unreachable.
6369 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
6371 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
6372 hard_frame_pointer_rtx.
6373 * cse.c (cse_insn): Remove volatile check.
6374 * cselib.c (cselib_process_insn): Likewise.
6375 * dse.c (scan_insn): Likewise.
6377 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
6379 * config/arc/arc.c (conditionalize_nonjump): New function,
6381 (arc_ifcvt): ... this.
6382 (arc_predicate_delay_insns): Use it.
6384 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
6386 * config/arc/predicates.md (extend_operand): During/after reload,
6387 allow const_int_operand.
6388 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
6389 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
6390 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
6392 (umulsi3_highpart_i): Likewise.
6394 2014-03-11 Richard Biener <rguenther@suse.de>
6396 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
6397 Add asserts to guard possible wrong-code bugs.
6399 2014-03-11 Richard Biener <rguenther@suse.de>
6401 PR tree-optimization/60429
6402 PR tree-optimization/60485
6403 * tree-ssa-structalias.c (set_union_with_increment): Properly
6404 take into account all fields that overlap the shifted vars.
6405 (do_sd_constraint): Likewise.
6406 (do_ds_constraint): Likewise.
6407 (get_constraint_for_ptr_offset): Likewise.
6409 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
6411 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
6412 (nios2_compute_frame_layout):
6413 Add calculation of cfun->machine->fp_save_offset.
6414 (nios2_expand_prologue): Correct setting of frame pointer register
6416 (nios2_expand_epilogue): Update recovery of stack pointer from
6417 frame pointer accordingly.
6418 (nios2_initial_elimination_offset): Update calculation of offset
6419 for eliminating to HARD_FRAME_POINTER_REGNUM.
6421 2014-03-10 Jakub Jelinek <jakub@redhat.com>
6424 * ipa.c (symtab_remove_unreachable_nodes): Don't call
6425 cgraph_get_create_node on VAR_DECLs.
6427 2014-03-10 Richard Biener <rguenther@suse.de>
6430 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
6432 2014-03-08 Douglas B Rupp <rupp@gnat.com>
6434 * config/vms/vms.opt (vms_float_format): New variable.
6436 2014-03-08 Tobias Burnus <burnus@net-b.de>
6438 * doc/invoke.texi (-fcilkplus): Update implementation status.
6440 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
6441 Richard Biener <rguenther@suse.de>
6443 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
6444 consistently accross all TUs.
6445 (run_gcc): Enable -fshort-double automatically at link at link-time
6446 and disallow override.
6448 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
6451 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
6452 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
6453 if they can't be used.
6455 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6457 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
6458 for Solaris 11/x86 ld.
6459 * configure: Regenerate.
6461 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6463 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
6464 (LIB_TLS_SPEC): Save as ld_tls_libs.
6465 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
6466 (HAVE_AS_IX86_TLSLDM): New test.
6467 * configure, config.in: Regenerate.
6468 * config/i386/i386.c (legitimize_tls_address): Fall back to
6469 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
6470 cannot support TLS_MODEL_LOCAL_DYNAMIC.
6471 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
6472 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
6474 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
6476 * common.opt (fira-loop-pressure): Mark as optimization.
6478 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
6480 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
6481 an OpenMP mappable type.
6483 2014-03-06 Matthias Klose <doko@ubuntu.com>
6485 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
6486 MULTILIB_OSDIRNAMES is not defined.
6488 2014-03-06 Jakub Jelinek <jakub@redhat.com>
6489 Meador Inge <meadori@codesourcery.com>
6492 * config/arm/arm.c (arm_tls_symbol_p): Remove.
6493 (arm_legitimize_address): Call legitimize_tls_address for any
6494 arm_tls_referenced_p expression, handle constant addend. Call it
6495 before testing for !TARGET_ARM.
6496 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
6498 2014-03-06 Richard Biener <rguenther@suse.de>
6504 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
6506 * tree-streamer.c (record_common_node): Assert we don't record
6507 nodes with type double.
6508 (preload_common_node): Skip type double, complex double and double
6509 pointer since it is now frontend dependent due to fshort-double option.
6511 2014-03-06 Richard Biener <rguenther@suse.de>
6513 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
6514 or -fno-lto is specified and the linker has full plugin support.
6515 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
6516 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
6517 * lto-wrapper.c (merge_and_complain): Merge compile-time
6518 optimization levels.
6519 (run_gcc): And pass it through to the link options.
6521 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
6525 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6527 * cselib.c (remove_useless_values): Skip to avoid quadratic
6528 behavior if the condition moved from...
6529 (cselib_process_insn): ... here holds.
6531 2014-03-05 Jakub Jelinek <jakub@redhat.com>
6534 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
6535 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
6538 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
6539 (TM_H): Add x86-tune.def.
6541 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6543 * config/aarch64/aarch64.c (generic_tunings):
6544 Use cortexa57_extra_costs.
6546 2014-03-05 Jakub Jelinek <jakub@redhat.com>
6549 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
6550 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
6551 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
6554 2014-03-04 Heiher <r@hev.cc>
6556 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
6557 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
6559 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
6561 * config/i386/predicates.md (const2356_operand): Change to ...
6562 (const2367_operand): ... this.
6563 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
6565 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6566 (*avx512pf_scatterpf<mode>sf): Ditto.
6567 (avx512pf_scatterpf<mode>df): Ditto.
6568 (*avx512pf_scatterpf<mode>df_mask): Ditto.
6569 (*avx512pf_scatterpf<mode>df): Ditto.
6570 * config/i386/i386.c (ix86_expand_builtin): Update
6571 incorrect hint operand error message.
6573 2014-03-04 Richard Biener <rguenther@suse.de>
6575 * lto-section-in.c (lto_get_section_data): Fix const cast.
6577 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
6579 * tree-streamer.c (record_common_node): Assert we don't record
6580 nodes with type double.
6581 (preload_common_node): Skip type double, complex double and double
6582 pointer since it is now frontend dependent due to fshort-double option.
6584 2014-03-04 Richard Biener <rguenther@suse.de>
6587 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
6588 (lto_input_toplevel_asms): Likewise.
6589 * lto-section-in.c (lto_get_section_data): Instead do it here
6592 2014-03-04 Richard Biener <rguenther@suse.de>
6594 PR tree-optimization/60382
6595 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
6596 dead PHIs a reduction.
6598 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
6600 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
6602 (_mm_prefetch): Move out of GCC target("sse") pragma.
6603 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
6604 GCC target("prfchw") pragma.
6605 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
6607 * config/i386/i386.c (ix86_option_override_internal): Enable
6608 -mprfchw with -mprefetchwt1.
6610 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
6612 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
6615 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
6617 * opts.h (CL_PCH_IGNORE): Define.
6618 * targhooks.c (option_affects_pch_p):
6619 Return false for options that have CL_PCH_IGNORE set.
6620 * opt-functions.awk: Process PchIgnore.
6621 * doc/options.texi: Document PchIgnore.
6623 * config/arc/arc.opt (misize): Add PchIgnore property.
6625 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6627 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
6628 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
6629 constraint on constants to permit them being loaded into
6630 GENERAL_REGS or BASE_REGS.
6632 2014-03-03 Nick Clifton <nickc@redhat.com>
6634 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
6635 anti-cacnonical alternatives.
6636 (negandhi3_real): New pattern.
6637 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
6639 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6641 * config/avr/avr-mcus.def: Remove atxmega16x1.
6642 * config/avr/avr-tables.opt: Regenerate.
6643 * config/avr/t-multilib: Regenerate.
6644 * doc/avr-mmcu.texi: Regenerate.
6646 2014-03-03 Tobias Grosser <tobias@grosser.es>
6647 Mircea Namolaru <mircea.namolaru@inria.fr>
6649 PR tree-optimization/58028
6650 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6653 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6655 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6656 not handled by recognizers.
6658 2014-03-03 Jakub Jelinek <jakub@redhat.com>
6661 * function.c (expand_function_end): Don't emit
6662 clobber_return_register sequence if clobber_after is a BARRIER.
6663 * cfgexpand.c (construct_exit_block): Append instructions before
6664 return_label to prev_bb.
6666 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6668 * config/rs6000/constraints.md: Document reserved use of "wc".
6670 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6673 * ipa.c (function_and_variable_visibility): When dissolving comdat
6674 group, also set all symbols to local.
6676 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6681 2013-12-14 Jan Hubicka <jh@suse.cz>
6683 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6685 2014-03-02 Jon Beniston <jon@beniston.com>
6691 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6692 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6693 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6694 (simple_return, *simple_return): New patterns
6695 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6696 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6698 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
6700 * dwarf2out.c (gen_subprogram_die): Tidy.
6702 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
6705 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6706 (*mov_t_msb_neg_negc): ... this new insn.
6708 2014-02-28 Jason Merrill <jason@redhat.com>
6711 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6714 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
6717 * dwarf2out.c (decltype_auto_die): New static.
6718 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6719 (gen_type_die_with_usage): Handle 'decltype(auto)'.
6720 (is_cxx_auto): Likewise.
6722 2014-02-28 Ian Bolton <ian.bolton@arm.com>
6724 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6725 we are not using general regs only.
6727 2014-02-28 Richard Biener <rguenther@suse.de>
6730 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6731 previous fix and only allow to remove trivial pre-headers
6732 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6733 (remove_forwarder_block): Properly update the latch of a loop.
6735 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6738 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6739 (cselib_preserved_hash_table): New.
6740 (preserve_constants_and_equivs): Move preserved vals to it.
6741 (cselib_find_slot): Look it up first.
6742 (cselib_init): Initialize it.
6743 (cselib_finish): Release it.
6744 (dump_cselib_table): Dump it.
6746 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6749 * cselib.c (remove_useless_values): Skip to avoid quadratic
6750 behavior if the condition moved from...
6751 (cselib_process_insn): ... here holds.
6753 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6756 * var-tracking.c (vt_initialize): Apply the same condition to
6757 preserve the CFA base value.
6759 2014-02-28 Joey Ye <joey.ye@arm.com>
6762 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6763 if reload in progress or completed.
6765 2014-02-28 Tobias Burnus <burnus@net-b.de>
6768 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6771 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
6773 * doc/tm.texi.in (Condition Code Status): Update documention for
6774 relative locations of cc0-setter and cc0-user.
6776 2014-02-27 Jeff Law <law@redhat.com>
6778 PR rtl-optimization/52714
6779 * combine.c (try_combine): When splitting an unrecognized PARALLEL
6780 into two independent simple sets, if I3 is a jump, ensure the
6781 pattern we place into I3 is a (set (pc) ...).
6783 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
6784 Jeff Law <law@redhat.com>
6786 PR rtl-optimization/49847
6787 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6788 are in different blocks.
6789 * doc/tm.texi (Condition Code Status): Update documention for
6790 relative locations of cc0-setter and cc0-user.
6792 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
6795 * lra.c (lra_emit_add): Check SUBREG too.
6797 2014-02-27 Andreas Schwab <schwab@suse.de>
6799 * config/m68k/m68k.c (m68k_option_override): Disable
6800 -flive-range-shrinkage for classic m68k.
6801 (m68k_override_options_after_change): Likewise.
6803 2014-02-27 Marek Polacek <polacek@redhat.com>
6806 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6807 -Wmaybe-uninitialized.
6809 2014-02-27 Alan Modra <amodra@gmail.com>
6812 * reload1.c (emit_input_reload_insns): When reload_override_in,
6813 set old to rl->in_reg when rl->in_reg is a subreg.
6815 2014-02-26 Richard Biener <rguenther@suse.de>
6818 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6820 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6822 * common/config/i386/predicates.md (const1256_operand): Remove.
6823 (const2356_operand): New.
6824 (const_1_to_2_operand): Remove.
6825 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6826 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6827 (*avx512pf_gatherpf<mode>sf): Ditto.
6828 (avx512pf_gatherpf<mode>df): Ditto.
6829 (*avx512pf_gatherpf<mode>df_mask): Ditto.
6830 (*avx512pf_gatherpf<mode>df): Ditto.
6831 (avx512pf_scatterpf<mode>sf): Ditto.
6832 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6833 (*avx512pf_scatterpf<mode>sf): Ditto.
6834 (avx512pf_scatterpf<mode>df): Ditto.
6835 (*avx512pf_scatterpf<mode>df_mask): Ditto.
6836 (*avx512pf_scatterpf<mode>df): Ditto.
6837 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6839 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
6841 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6842 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6843 (_mm512_mask_testn_epi64_mask): Move to ...
6844 * config/i386/avx512cdintrin.h: Here.
6845 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6846 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6847 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6848 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6849 TARGET_AVX512F from TARGET_AVX512CD.
6851 2014-02-26 Richard Biener <rguenther@suse.de>
6854 * ipa.c (walk_polymorphic_call_targets): Properly guard
6855 call to inline_update_overall_summary.
6857 2014-02-26 Bin Cheng <bin.cheng@arm.com>
6860 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6861 and latches only if requested. Fix latch if it is removed.
6862 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6863 LOOPS_HAVE_PREHEADERS.
6865 2014-02-25 Andrew Pinski <apinski@cavium.com>
6867 * builtins.c (expand_builtin_thread_pointer): Create a new target
6868 when the target is NULL.
6870 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
6872 PR rtl-optimization/60317
6873 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6874 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6875 * lra-assigns.c: Include params.h.
6876 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6877 other reload pseudos considerations.
6879 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6881 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6882 to use canonical form for nor<mode>3.
6884 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6887 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6890 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6892 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6893 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6894 (ix86_handle_option): Handle OPT_mprefetchwt1.
6895 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6896 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6898 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6899 OPTION_MASK_ISA_PREFETCHWT1.
6900 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6901 (PTA_PREFETCHWT1): New.
6902 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6903 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6904 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6905 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6906 (*prefetch_avx512pf_<mode>_: Change into ...
6907 (*prefetch_prefetchwt1_<mode>: This.
6908 * config/i386/i386.opt (mprefetchwt1): New.
6909 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6910 (_mm_prefetch): Handle intent to write.
6911 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6913 2014-02-25 Richard Biener <rguenther@suse.de>
6916 * emit-rtl.c (mem_attrs_htab): Remove.
6917 (mem_attrs_htab_hash): Likewise.
6918 (mem_attrs_htab_eq): Likewise.
6919 (set_mem_attrs): Always allocate new mem-attrs when something changed.
6920 (init_emit_once): Do not allocate mem_attrs_htab.
6922 2014-02-25 Richard Biener <rguenther@suse.de>
6925 * lto-opts.c (lto_write_options): Output non-explicit conservative
6926 -fwrapv, -fno-trapv and -fno-strict-overflow.
6927 * lto-wrapper.c (merge_and_complain): Handle merging those options.
6928 (run_gcc): And pass them through.
6930 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6932 * sel-sched.c (calculate_new_fences): New parameter ptime.
6933 Calculate it as a maximum over all fence cycles.
6934 (sel_sched_region_2): Adjust the call to calculate_new_fences.
6935 Print the final schedule timing when sched_verbose.
6937 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6939 PR rtl-optimization/60292
6940 * sel-sched.c (fill_vec_av_set): Do not reset target availability
6941 bit fot the fence instruction.
6943 2014-02-24 Alangi Derick <alangiderick@gmail.com>
6945 * calls.h: Fix typo in comment.
6947 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
6949 * config/pa/pa.c (pa_output_move_double): Don't valididate when
6950 adjusting offsetable addresses.
6952 2014-02-24 Guozhi Wei <carrot@google.com>
6954 * sparseset.h (sparseset_pop): Fix the wrong index.
6956 2014-02-24 Walter Lee <walt@tilera.com>
6958 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
6959 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
6961 * common/config/tilegx/tilegx-common.c
6962 (TARGET_DEFAULT_TARGET_FLAGS): Define.
6963 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
6965 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
6966 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
6967 (tilegx_gimplify_va_arg_expr): Handle big endian.
6968 (tilegx_expand_unaligned_load): Ditto.
6969 (tilegx_expand_unaligned_store): Ditto.
6970 (TARGET_RETURN_IN_MSB): New.
6971 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
6972 (TARGET_ENDIAN_DEFAULT): New.
6973 (TARGET_BIG_ENDIAN): Handle big endian.
6974 (BYTES_BIG_ENDIAN): Ditto.
6975 (WORDS_BIG_ENDIAN): Ditto.
6976 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
6979 * config/tilegx/tilegx.md (extv): Handle big endian.
6981 (insn_st<n>): Ditto.
6982 (insn_st<n>_add<bitsuffix>): Ditto.
6983 (insn_stnt<n>): Ditto.
6984 (insn_stnt<n>_add<bitsuffix>):Ditto.
6985 (vec_interleave_highv8qi): Handle big endian.
6986 (vec_interleave_highv8qi_be): New.
6987 (vec_interleave_highv8qi_le): New.
6988 (insn_v1int_h): Handle big endian.
6989 (vec_interleave_lowv8qi): Handle big endian.
6990 (vec_interleave_lowv8qi_be): New.
6991 (vec_interleave_lowv8qi_le): New.
6992 (insn_v1int_l): Handle big endian.
6993 (vec_interleave_highv4hi): Handle big endian.
6994 (vec_interleave_highv4hi_be): New.
6995 (vec_interleave_highv4hi_le): New.
6996 (insn_v2int_h): Handle big endian.
6997 (vec_interleave_lowv4hi): Handle big endian.
6998 (vec_interleave_lowv4hi_be): New.
6999 (vec_interleave_lowv4hi_le): New.
7000 (insn_v2int_l): Handle big endian.
7001 (vec_interleave_highv2si): Handle big endian.
7002 (vec_interleave_highv2si_be): New.
7003 (vec_interleave_highv2si_le): New.
7004 (insn_v4int_h): Handle big endian.
7005 (vec_interleave_lowv2si): Handle big endian.
7006 (vec_interleave_lowv2si_be): New.
7007 (vec_interleave_lowv2si_le): New.
7008 (insn_v4int_l): Handle big endian.
7009 * config/tilegx/tilegx.opt (mbig-endian): New option.
7010 (mlittle-endian): New option.
7011 * doc/install.texi: Document tilegxbe-linux.
7012 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7014 2014-02-24 Martin Jambor <mjambor@suse.cz>
7017 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7018 there are no parameter descriptors.
7020 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
7022 PR rtl-optimization/60268
7023 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7024 initialization to ...
7025 (sched_rgn_init): ... here.
7026 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7028 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7030 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7033 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
7035 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7038 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7040 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7041 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7043 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7045 * config/microblaze/predicates.md: Add cmp_op predicate.
7046 * config/microblaze/microblaze.md: Add branch_compare instruction
7047 which uses cmp_op predicate and emits cmp insn before branch.
7048 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7049 to microblaze_expand_conditional_branch and consolidate logic.
7050 (microblaze_expand_conditional_branch): emit branch_compare
7051 insn instead of handling cmp op separate from branch insn.
7053 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7055 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7058 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7060 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7061 define_insn with define_expand and new define_insn
7062 *altivec_lve<VI_char>x_internal.
7063 (altivec_stve<VI_char>x): Replace define_insn with define_expand
7064 and new define_insn *altivec_stve<VI_char>x_internal.
7065 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7067 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7069 (altivec_expand_stvex_be): New function.
7071 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
7073 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7074 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7075 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7076 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7078 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
7081 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7082 instead of emit_move_insn.
7084 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7086 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7088 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7089 gen_altivec_vsumsws.
7091 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7093 * config/rs6000/altivec.md (altivec_lvxl): Rename as
7094 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7095 (altivec_lvxl_<mode>): New define_expand incorporating
7096 -maltivec=be semantics where needed.
7097 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7098 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7099 semantics where needed.
7100 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7101 (altivec_stvx_<mode>): New define_expand incorporating
7102 -maltivec=be semantics where needed.
7103 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7104 VM2 iterator instead of V4SI.
7105 (altivec_stvxl_<mode>): New define_expand incorporating
7106 -maltivec=be semantics where needed.
7107 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7108 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7109 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7110 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7111 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7112 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7113 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7114 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7115 ALTIVEC_BUILTIN_STVXL.
7116 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7117 (altivec_expand_stvx_be): Likewise.
7118 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7119 (altivec_expand_lvx_be): Likewise.
7120 (altivec_expand_stvx_be): Likewise.
7121 (altivec_expand_builtin): Add cases for
7122 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7123 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7124 (altivec_init_builtins): Add definitions for
7125 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7126 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7128 2014-02-21 Catherine Moore <clm@codesourcery.com>
7130 * doc/invoke.texi (mvirt, mno-virt): Document.
7131 * config/mips/mips.opt (mvirt): New option.
7132 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7134 2014-02-21 Richard Biener <rguenther@suse.de>
7136 PR tree-optimization/60276
7137 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7138 (STMT_VINFO_MIN_NEG_DIST): New macro.
7139 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7140 STMT_VINFO_MIN_NEG_DIST.
7141 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7142 made for negative dependence distances still hold.
7144 2014-02-21 Richard Biener <rguenther@suse.de>
7147 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7148 DECL_INITIAL for globals not in the current function context.
7150 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7152 PR tree-optimization/56490
7153 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7154 * tree-ssa-uninit.c: Include params.h.
7155 (compute_control_dep_chain): Add num_calls argument, return false
7156 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7157 num_calls to recursive call.
7158 (find_predicates): Change dep_chain into normal array,
7159 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7160 variable and adjust compute_control_dep_chain caller.
7161 (find_def_preds): Likewise.
7163 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
7165 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7166 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7168 2014-02-21 Nick Clifton <nickc@redhat.com>
7170 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7171 (pushhi1): Likewise.
7172 (popqi1): Add mode to pre_dec.
7175 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7177 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7178 mode for mask of V8SFmode permutation.
7180 2014-02-20 Richard Henderson <rth@redhat.com>
7183 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7184 a new pseudo for OLDVAL.
7186 2014-02-20 Jakub Jelinek <jakub@redhat.com>
7189 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7190 gen_reg_rtx if d->testing_p.
7191 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7192 if d->testing_p and we will certainly return true.
7193 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
7196 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
7198 * emit-rtl.c (gen_reg_rtx): Assert that
7199 crtl->emit.regno_pointer_align_length is non-zero.
7201 2014-02-20 Richard Henderson <rth@redhat.com>
7204 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7205 on failure the store back into EXPECT.
7207 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
7208 Sandra Loosemore <sandra@codesourcery.com>
7210 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7211 * config/nios2/nios2.c (nios2_function_profiler): Add
7212 -fPIC (flag_pic == 2) support.
7213 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7214 (nios2_large_offset_p): New function.
7215 (nios2_unspec_reloc_p): Move up position, update to use
7216 nios2_large_offset_p.
7217 (nios2_unspec_address): Remove function.
7218 (nios2_unspec_offset): New function.
7219 (nios2_large_got_address): New function.
7220 (nios2_got_address): Add large offset support.
7221 (nios2_legitimize_tls_address): Update usage of removed and new
7223 (nios2_symbol_binds_local_p): New function.
7224 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7225 (nios2_legitimize_address): Update to use nios2_large_offset_p.
7226 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7227 (nios2_print_operand): Merge H/L processing, add hiadj/lo
7228 processing for (const (unspec ...)).
7229 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7231 2014-02-20 Richard Biener <rguenther@suse.de>
7233 * tree-cfg.c (replace_uses_by): Mark altered BBs before
7234 doing the substitution.
7235 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7237 2014-02-20 Martin Jambor <mjambor@suse.cz>
7240 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7241 info when checking whether lattices are bottom.
7243 2014-02-20 Richard Biener <rguenther@suse.de>
7246 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7249 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
7252 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7253 parameter specifying the scaling.
7254 (inline_call): Update.
7255 (want_inline_recursively): Guard division by zero.
7256 (recursive_inlining): Update.
7257 * ipa-inline.h (clone_inlined_nodes): Update.
7259 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7262 * config/i386/i386.c (classify_argument): Pass structures of size
7263 64 bytes or less in register.
7265 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7266 Kirill Yukhin <kirill.yukhin@intel.com>
7268 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7269 (_mm_rcp28_round_ss): Ditto.
7270 (_mm_rsqrt28_round_sd): Ditto.
7271 (_mm_rsqrt28_round_ss): Ditto.
7272 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7273 (_mm_rcp14_round_ss): Ditto.
7274 (_mm_rsqrt14_round_sd): Ditto.
7275 (_mm_rsqrt14_round_ss): Ditto.
7276 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7277 the first input operand, get rid of match_dup.
7278 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7280 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7282 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7283 operand as the first input operand, set type attribute.
7284 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7286 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7287 operand as the first input operand, set type attribute.
7289 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7291 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7294 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
7297 * config/i386/i386.c (construct_container): Remove TFmode check
7298 for X86_64_INTEGER_CLASS.
7300 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
7303 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7304 only when -Wpsabi is enabled.
7306 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
7309 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7310 passing arrays in registers are the same as for structs, so remove the
7311 special case for them.
7313 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
7315 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7316 destination type, extract only the valid bits if the source type is not
7317 integral and has a different mode.
7319 2014-02-19 Richard Biener <rguenther@suse.de>
7322 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
7325 2014-02-19 Richard Biener <rguenther@suse.de>
7328 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
7329 (ipa_modify_call_arguments): Emit an argument load explicitely and
7330 preserve virtual SSA form there and for the replacement call.
7331 Do not update SSA form nor free dominance info.
7333 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7335 * ipa.c (function_and_variable_visibility): Also clear WEAK
7336 flag when disolving COMDAT_GROUP.
7338 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7340 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
7341 * ipa-prop.c (ipa_set_jf_known_type): Return early when
7343 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
7344 do more sanity checks.
7345 (detect_type_change): Return true when giving up early.
7346 (compute_complex_assign_jump_func): Fix type parameter of
7347 ipa_set_ancestor_jf.
7348 (compute_complex_ancestor_jump_func): Likewise.
7349 (update_jump_functions_after_inlining): Fix updating of
7351 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
7353 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7355 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
7356 inline clones when edge disappears.
7358 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7361 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
7362 Split 64-bit moves into 2 patterns. Do not allow the use of
7363 direct move for TDmode in little endian, since the decimal value
7364 has little endian bytes within a word, but the 64-bit pieces are
7365 ordered in a big endian fashion, and normal subreg's of TDmode are
7367 (mov<mode>_64bit_dm): Likewise.
7368 (movtd_64bit_nodm): Likewise.
7370 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
7372 PR tree-optimization/60174
7373 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
7374 statement of an SSA_NAME that occurs in an abnormal PHI node.
7376 2014-02-18 Jakub Jelinek <jakub@redhat.com>
7379 * final.c (SEEN_BB): Remove.
7380 (SEEN_NOTE, SEEN_EMITTED): Renumber.
7381 (final_scan_insn): Don't force_source_line on second
7382 NOTE_INSN_BASIC_BLOCK.
7384 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
7387 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
7388 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
7389 (type_natural_mode): Warn ABI change when %zmm register is not
7390 available for AVX512F vector value passing.
7392 2014-02-18 Kai Tietz <ktietz@redhat.com>
7395 * config/i386/i386.c (ix86_expand_prologue): Use value in
7396 rax register as displacement when restoring %r10 or %rax.
7397 Fix wrong offset when restoring both registers.
7399 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
7401 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
7402 assertion with conditional return.
7404 2014-02-18 Jakub Jelinek <jakub@redhat.com>
7405 Uros Bizjak <ubizjak@gmail.com>
7408 * config/i386/driver-i386.c (host_detect_local_cpu): If
7409 YMM state is not saved by the OS, also clear has_f16c. Move
7410 CPUID 0x80000001 handling before YMM state saving checking.
7412 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
7414 PR rtl-optimization/58960
7415 * haifa-sched.c (alloc_global_sched_pressure_data): New,
7416 factored out from ...
7417 (sched_init): ... here.
7418 (free_global_sched_pressure_data): New, factored out from ...
7419 (sched_finish): ... here.
7420 * sched-int.h (free_global_sched_pressure_data): Declare.
7421 * sched-rgn.c (nr_regions_initial): New static global.
7422 (haifa_find_rgns): Initialize it.
7423 (schedule_region): Disable sched-pressure for the newly
7426 2014-02-17 Richard Biener <rguenther@suse.de>
7428 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
7429 release SSA defs of pattern stmts.
7431 2014-02-17 Richard Biener <rguenther@suse.de>
7433 * tree-inline.c (expand_call_inline): Release the virtual
7434 operand defined by the call we are about to inline.
7436 2014-02-17 Richard Biener <rguenther@suse.de>
7438 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
7440 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
7441 Ilya Tocar <ilya.tocar@intel.com>
7443 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
7444 arguments order in builtin.
7445 (_mm512_permutexvar_epi64): Ditto.
7446 (_mm512_mask_permutexvar_epi64): Ditto
7447 (_mm512_maskz_permutexvar_epi32): Ditto
7448 (_mm512_permutexvar_epi32): Ditto
7449 (_mm512_mask_permutexvar_epi32): Ditto
7451 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7453 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7454 (p8_vmrgow): Likewise.
7456 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7458 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
7461 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
7464 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
7465 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
7466 into 64-bit and 32-bit moves. On 64-bit moves, add support for
7467 using direct move instructions on ISA 2.07. Also adjust
7468 instruction length for 64-bit.
7469 (mov<mode>_64bit, TFmode/TDmode): Likewise.
7470 (mov<mode>_32bit, TFmode/TDmode): Likewise.
7472 2014-02-15 Alan Modra <amodra@gmail.com>
7476 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
7477 find_replacement on parts of insn rtl that might be reloaded.
7479 2014-02-15 Richard Biener <rguenther@suse.de>
7481 PR tree-optimization/60183
7482 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
7483 (tree_ssa_phiprop): Calculate and free post-dominators.
7485 2014-02-14 Jeff Law <law@redhat.com>
7487 PR rtl-optimization/60131
7488 * ree.c (get_extended_src_reg): New function.
7489 (combine_reaching_defs): Use it rather than assuming location of REG.
7490 (find_and_remove_re): Verify first operand of extension is
7491 a REG before adding the insns to the copy list.
7493 2014-02-14 Roland McGrath <mcgrathr@google.com>
7495 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
7496 * configure: Regenerated.
7497 * config.in: Regenerated.
7498 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
7499 instead of ASM_SHORT.
7501 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
7502 Richard Earnshaw <rearnsha@arm.com>
7504 PR rtl-optimization/59535
7505 * lra-constraints.c (process_alt_operands): Encourage alternative
7506 when unassigned pseudo class is superset of the alternative class.
7507 (inherit_reload_reg): Don't inherit when optimizing for code size.
7508 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
7509 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
7510 modes not less than 4 for Thumb1.
7512 2014-02-14 Kyle McMartin <kyle@redhat.com>
7515 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
7517 2014-02-14 Richard Biener <rguenther@suse.de>
7519 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
7520 (get_frame_arg): Drop the assert with langhook types_compatible_p.
7521 Do not strip INDIRECT_REFs.
7523 2014-02-14 Richard Biener <rguenther@suse.de>
7526 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
7527 DECL_FUNCTION_SPECIFIC_TARGET.
7528 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
7529 * tree-streamer-out.c (pack_ts_target_option): Remove.
7530 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
7531 (write_ts_function_decl_tree_pointers): Do not stream
7532 DECL_FUNCTION_SPECIFIC_TARGET.
7533 * tree-streamer-in.c (unpack_ts_target_option): Remove.
7534 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
7535 (lto_input_ts_function_decl_tree_pointers): Do not stream
7536 DECL_FUNCTION_SPECIFIC_TARGET.
7538 2014-02-14 Jakub Jelinek <jakub@redhat.com>
7540 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
7541 (get_initial_def_for_induction, vectorizable_induction): Ignore
7542 debug stmts when looking for exit_phi.
7543 (vectorizable_live_operation): Fix up condition.
7545 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7547 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
7548 nreverse() because it changes the content of original tree list.
7550 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7552 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
7553 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
7555 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
7557 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
7558 GNU coding standards.
7560 2014-02-13 Jakub Jelinek <jakub@redhat.com>
7563 * dwarf2out.c (gen_subprogram_die): Don't call
7564 add_calling_convention_attribute if subr_die is old_die.
7566 2014-02-13 Sharad Singhai <singhai@google.com>
7568 * doc/optinfo.texi: Fix order of nodes.
7570 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
7572 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
7573 operands[2], not operands[3].
7575 2014-02-13 Richard Biener <rguenther@suse.de>
7578 * doc/install.texi (ISL): Update recommended version to 0.12.2,
7579 mention the possibility of an in-tree build.
7580 (CLooG): Update recommended version to 0.18.1, mention the
7581 possibility of an in-tree build and clarify that the ISL
7582 bundled with CLooG does not work.
7584 2014-02-13 Jakub Jelinek <jakub@redhat.com>
7587 * expr.c (compress_float_constant): If x is a hard register,
7588 extend into a pseudo and then move to x.
7590 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
7592 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
7593 caused by bad second argument to warning_at() with -mhotpatch and
7594 nested functions (e.g. with gfortran).
7596 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
7598 * opts.c (option_name): Remove "enabled by default" rider.
7600 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
7602 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
7604 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
7605 Uros Bizjak <ubizjak@gmail.com>
7608 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
7609 * configure: Regenerated.
7611 2014-02-12 Richard Biener <rguenther@suse.de>
7613 * vec.c (vec_prefix::calculate_allocation): Move as
7614 inline variant to vec.h.
7615 (vec_prefix::calculate_allocation_1): New out-of-line version.
7616 * vec.h (vec_prefix::calculate_allocation_1): Declare.
7617 (vec_prefix::m_has_auto_buf): Rename to ...
7618 (vec_prefix::m_using_auto_storage): ... this.
7619 (vec_prefix::calculate_allocation): Inline the easy cases
7620 and dispatch to calculate_allocation_1 which doesn't need the
7622 (va_heap::reserve): Use gcc_checking_assert.
7623 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
7624 m_using_auto_storage.
7625 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
7627 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
7628 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
7629 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
7631 2014-02-12 Richard Biener <rguenther@suse.de>
7633 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
7634 when we found a dependence.
7636 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
7638 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
7640 (maybe_fold_stmt): ... into this new function.
7641 * omp-low.c (lower_omp): Update comment.
7643 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
7646 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
7649 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
7651 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
7652 identifiers in comments.
7653 (cortexa53_extra_costs): Likewise.
7654 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7655 (cortexa7_extra_costs): Likewise.
7656 (cortexa12_extra_costs): Likewise.
7657 (cortexa15_extra_costs): Likewise.
7658 (v7m_extra_costs): Likewise.
7660 2014-02-12 Richard Biener <rguenther@suse.de>
7663 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7664 of posix_memalign being successful.
7665 (lower_stmt): Restrict lowering of posix_memalign to when
7666 -ftree-bit-ccp is enabled.
7668 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7670 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7672 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7674 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
7676 PR rtl-optimization/60116
7677 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7678 other_insn once the combination has been validated.
7680 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
7683 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7685 * ipa-devirt.c: Include demangle.h
7686 (odr_violation_reported): New static variable.
7687 (add_type_duplicate): Update odr_violations.
7688 (maybe_record_node): Add completep parameter; update it.
7689 (record_target_from_binfo): Add COMPLETEP parameter;
7690 update it as needed.
7691 (possible_polymorphic_call_targets_1): Likewise.
7692 (struct polymorphic_call_target_d): Add nonconstruction_targets;
7693 rename FINAL to COMPLETE.
7694 (record_targets_from_bases): Sanity check we found the binfo;
7695 fix COMPLETEP updating.
7696 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7697 parameter, fix computing of COMPLETEP.
7698 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7699 at LTO time do demangling.
7700 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7701 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7703 (gimple_get_virt_method_for_binfo): Likewise.
7704 * gimple-fold.h (gimple_get_virt_method_for_binfo,
7705 gimple_get_virt_method_for_vtable): Update prototypes.
7707 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
7710 * genautomata.c (add_presence_absence): Fix typo with
7711 {final_}presence_list.
7713 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7716 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7717 for VSX/Altivec vectors that land in GPR registers.
7719 2014-02-11 Richard Henderson <rth@redhat.com>
7720 Jakub Jelinek <jakub@redhat.com>
7723 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7724 around drhs if type conversion to lacc->type is not useless.
7726 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7728 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7730 (cortex-a57.cortex-a53): Likewise.
7731 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7733 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7735 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7738 2014-02-11 Renlin Li <Renlin.Li@arm.com>
7740 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7741 add_options_for_arm_vfp3.
7743 2014-02-11 Jeff Law <law@redhat.com>
7746 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7747 object with an undesirable mode.
7749 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7752 * config/i386/sol2-9.h: New file.
7753 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7754 *-*-solaris2.9*): Use it.
7756 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7758 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7759 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7761 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7763 * config/microblaze/microblaze.c: Extend mcpu version format
7765 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
7767 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7769 2014-02-10 Richard Henderson <rth@redhat.com>
7772 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7773 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7774 ms-abi vs -mno-accumulate-outgoing-args.
7775 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7776 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7779 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7782 * cfgexpand.c (expand_asm_operands): Attach source location to
7783 ASM_INPUT rtx objects.
7784 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7786 2014-02-10 Nick Clifton <nickc@redhat.com>
7788 * config/mn10300/mn10300.c (popcount): New function.
7789 (mn10300_expand_prologue): Include saved registers in stack usage
7792 2014-02-10 Jeff Law <law@redhat.com>
7795 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7796 when changing the SET_DEST of a prior insn to avoid an input reload.
7798 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7800 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7801 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7802 -mcall-openbsd, or -mcall-linux.
7803 (CC1_ENDIAN_BIG_SPEC): Remove.
7804 (CC1_ENDIAN_LITTLE_SPEC): Remove.
7805 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7806 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7807 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7808 and %cc1_endian_default.
7809 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7811 2014-02-10 Richard Biener <rguenther@suse.de>
7813 PR tree-optimization/60115
7814 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7815 MEM_REF handling. Properly verify that the accesses are not
7816 out of the objects bound.
7818 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7820 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7823 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
7825 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7826 proper constants and fix formatting.
7827 (possible_polymorphic_call_targets): Fix formatting.
7829 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
7830 Ilya Tocar <ilya.tocar@intel.com>
7832 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7833 (_mm512_loadu_epi32): Renamed into...
7834 (_mm512_loadu_si512): This.
7835 (_mm512_storeu_epi32): Renamed into...
7836 (_mm512_storeu_si512): This.
7837 (_mm512_maskz_ceil_ps): Removed.
7838 (_mm512_maskz_ceil_pd): Ditto.
7839 (_mm512_maskz_floor_ps): Ditto.
7840 (_mm512_maskz_floor_pd): Ditto.
7841 (_mm512_floor_round_ps): Ditto.
7842 (_mm512_floor_round_pd): Ditto.
7843 (_mm512_ceil_round_ps): Ditto.
7844 (_mm512_ceil_round_pd): Ditto.
7845 (_mm512_mask_floor_round_ps): Ditto.
7846 (_mm512_mask_floor_round_pd): Ditto.
7847 (_mm512_mask_ceil_round_ps): Ditto.
7848 (_mm512_mask_ceil_round_pd): Ditto.
7849 (_mm512_maskz_floor_round_ps): Ditto.
7850 (_mm512_maskz_floor_round_pd): Ditto.
7851 (_mm512_maskz_ceil_round_ps): Ditto.
7852 (_mm512_maskz_ceil_round_pd): Ditto.
7853 (_mm512_expand_pd): Ditto.
7854 (_mm512_expand_ps): Ditto.
7855 * config/i386/i386.c (ix86_builtins): Remove
7856 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7857 (bdesc_args): Ditto.
7858 * config/i386/predicates.md (const1256_operand): New.
7859 (const_1_to_2_operand): Ditto.
7860 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7861 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7862 (*avx512pf_gatherpf<mode>sf): Ditto.
7863 (avx512pf_gatherpf<mode>df): Ditto.
7864 (*avx512pf_gatherpf<mode>df_mask): Ditto.
7865 (*avx512pf_gatherpf<mode>df): Ditto.
7866 (avx512pf_scatterpf<mode>sf): Ditto.
7867 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7868 (*avx512pf_scatterpf<mode>sf): Ditto.
7869 (avx512pf_scatterpf<mode>df): Ditto.
7870 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7871 (*avx512pf_scatterpf<mode>df): Ditto.
7872 (avx512f_expand<mode>): Removed.
7873 (<shift_insn><mode>3<mask_name>): Change predicate type.
7875 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7877 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7878 not at the end of datarefs vector use ordered_remove to avoid
7879 reordering datarefs vector.
7882 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7883 mark local addressable non-static vars as GOVD_PRIVATE
7884 instead of GOVD_LOCAL.
7885 * omp-low.c (lower_omp_for): Move gimple_bind_vars
7886 and BLOCK_VARS of gimple_bind_block to new_stmt rather
7890 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7891 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7892 assume_aligned or alloc_align attributes.
7893 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7894 arguments. Handle also assume_aligned and alloc_align attributes.
7895 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
7896 calls to functions with assume_aligned or alloc_align attributes.
7897 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7899 2014-02-08 Terry Guo <terry.guo@arm.com>
7901 * doc/invoke.texi: Document ARM -march=armv7e-m.
7903 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7905 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7906 flag on __cilkrts_rethrow builtin.
7909 * ipa-cp.c (determine_versionability): Fail at -O0
7910 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7911 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7914 2014-02-04 Jakub Jelinek <jakub@redhat.com>
7917 * tree-inline.c (copy_forbidden): Fail for
7918 __attribute__((optimize (0))) functions.
7920 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7922 * varpool.c: Include pointer-set.h.
7923 (varpool_remove_unreferenced_decls): Variables in other partitions
7924 will not be output; be however careful to not lose information
7927 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7929 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
7930 lookup in the vtable constructor.
7932 2014-02-07 Jeff Law <law@redhat.com>
7935 * config/m68k/m68k.md (ashldi_extsi): Turn into a
7936 define_insn_and_split.
7938 * ipa-inline.c (inline_small_functions): Fix typos.
7940 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7942 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
7943 (s390_can_use_return_insn): Declare.
7944 * config/s390/s390.h (EPILOGUE_USES): Define.
7945 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
7947 (s390_chunkify_start): Handle return JUMP_LABELs.
7948 (s390_early_mach): Emit a main_pool instruction on the entry edge.
7949 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
7950 (s390_can_use_return_insn): New functions.
7951 (s390_fix_long_loop_prediction): Handle conditional returns.
7952 (TARGET_SET_UP_BY_PROLOGUE): Define.
7953 * config/s390/s390.md (ANY_RETURN): New code iterator.
7954 (*creturn, *csimple_return, return, simple_return): New patterns.
7956 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7958 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
7959 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
7960 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
7961 REG_CFA_RESTORE list when deciding not to restore a register.
7963 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7965 * config/s390/s390.c: Include tree-pass.h and context.h.
7966 (s390_early_mach): New function, split out from...
7967 (s390_emit_prologue): ...here.
7968 (pass_data_s390_early_mach): New pass structure.
7969 (pass_s390_early_mach): New class.
7970 (s390_option_override): Create and register early_mach pass.
7971 Move to end of file.
7973 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7975 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
7976 to match for the exit block.
7978 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7980 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
7981 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
7982 Reject misaligned operands.
7984 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7986 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
7988 2014-02-07 Richard Biener <rguenther@suse.de>
7991 * gimple-low.c (lower_builtin_posix_memalign): New function.
7992 (lower_stmt): Call it to lower posix_memalign in a way
7993 to make alignment info accessible.
7995 2014-02-07 Jakub Jelinek <jakub@redhat.com>
7998 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
7999 __builtin_setjmp_receiver.
8001 2014-02-07 Richard Biener <rguenther@suse.de>
8004 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
8005 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
8006 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8007 Handle BUILT_IN_POSIX_MEMALIGN.
8008 (find_func_clobbers): Likewise.
8009 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8010 (call_may_clobber_ref_p_1): Likewise.
8012 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8015 * ipa-devirt.c (record_target_from_binfo): Remove overactive
8018 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8021 * lto-cgraph.c (lto_output_node): Use
8022 symtab_get_symbol_partitioning_class.
8023 (lto_output_varpool_node): likewise.
8024 (symtab_get_symbol_partitioning_class): Move here from
8026 * cgraph.h (symbol_partitioning_class): Likewise.
8027 (symtab_get_symbol_partitioning_class): Declare.
8029 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8031 * ggc.h (ggc_internal_cleared_alloc): New macro.
8032 * vec.h (vec_safe_copy): Handle memory stats.
8033 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8034 * target-globals.c (save_target_globals): Likewise.
8036 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8039 * expr.c (emit_move_resolve_push): Export; be bit more selective
8040 on when to clear alias set.
8041 * expr.h (emit_move_resolve_push): Declare.
8042 * function.h (struct function): Add tail_call_marked.
8043 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8044 * config/i386/i386-protos.h (ix86_expand_push): Remove.
8045 * config/i386/i386.md (TImode move expander): De not call
8047 (FP push expanders): Preserve memory attributes.
8048 * config/i386/sse.md (push<mode>1): Remove.
8049 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8050 (ix86_expand_push): Remove.
8051 * config/i386/mmx.md (push<mode>1): Remove.
8053 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8055 PR rtl-optimization/60030
8056 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8057 lopart with paradoxical subreg before shifting it up by hprec.
8059 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8061 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8062 Remove extra newline at end of file.
8063 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8064 (arm_issue_rate): Handle cortexa57.
8065 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8066 (cortex-a57.cortex-a53): Likewise.
8068 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8071 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8072 don't record in REG_FRAME_RELATED_EXPR registers not set in that
8074 (arm_expand_prologue): Adjust all callers.
8075 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8076 info, registers also at the lowest numbered registers side. Use
8077 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8081 * var-tracking.c (adjust_mems): Before adding a SET to
8082 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8084 2014-02-06 Alan Modra <amodra@gmail.com>
8087 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8088 change SDmode to DDmode when lra_in_progress.
8090 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8093 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8094 free_data_ref on the dr first, and before goto again also set dr
8095 to the next dr. For simd_lane_access, free old datarefs[i] before
8096 overwriting it. For get_vectype_for_scalar_type failure, don't
8097 free_data_ref if simd_lane_access.
8099 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8102 * tree.h (opts_for_fn): New inline function.
8103 (opt_for_fn): Define.
8104 * config/i386/i386.c (ix86_function_regparm): Use
8105 opt_for_fn (decl, optimize) instead of optimize.
8107 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
8109 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8110 for SYMBOL_REF in large memory model.
8112 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8114 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8116 (cortex-a57): Likewise.
8117 (cortex-a57.cortex-a53): Likewise.
8119 2014-02-06 Yury Gribov <y.gribov@samsung.com>
8120 Kugan Vivekanandarajah <kuganv@linaro.org>
8122 * config/arm/arm.c (arm_vector_alignment_reachable): Check
8124 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8126 2014-02-06 Richard Biener <rguenther@suse.de>
8128 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8129 set_loop_copy and initialize_original_copy_tables.
8131 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
8133 * config/aarch64/aarch64-simd.md
8134 (aarch64_ashr_simddi): Change QI to SI.
8136 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8137 Jakub Jelinek <jakub@redhat.com>
8140 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8143 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8145 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8146 CODE_FOR_altivec_vpku[hw]um to
8147 CODE_FOR_altivec_vpku[hw]um_direct.
8148 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8149 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8150 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8151 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8153 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8155 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8156 generation for -maltivec=be.
8157 (altivec_vsumsws): Simplify redundant test.
8159 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8161 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8162 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8163 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8164 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8165 gen_altivec_vpkuwum.
8166 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8168 (altivec_vpks<VI_char>ss): Likewise.
8169 (altivec_vpks<VI_char>us): Likewise.
8170 (altivec_vpku<VI_char>us): Likewise.
8171 (altivec_vpku<VI_char>um): Likewise.
8172 (altivec_vpku<VI_char>um_direct): New (copy of
8173 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8175 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8176 target is little endian and -maltivec=be is not specified.
8177 (*altivec_vupkhs<VU_char>_direct): New (copy of
8178 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8179 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8180 target is little endian and -maltivec=be is not specified.
8181 (*altivec_vupkls<VU_char>_direct): New (copy of
8182 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8183 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8184 little endian and -maltivec=be is not specified.
8185 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8186 little endian and -maltivec=be is not specified.
8188 2014-02-05 Richard Henderson <rth@redhat.com>
8191 * combine-stack-adj.c: Revert r206943.
8192 * sched-int.h (struct deps_desc): Add last_args_size.
8193 * sched-deps.c (init_deps): Initialize it.
8194 (sched_analyze_insn): Add OUTPUT dependencies between insns that
8195 contain REG_ARGS_SIZE notes.
8197 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8199 * lto-cgraph.c (asm_nodes_output): Make global.
8200 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8201 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8202 (driver_handle_option): Handle OPT_fwpa.
8204 2014-02-05 Jakub Jelinek <jakub@redhat.com>
8207 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8208 a comment typo and formatting issue. If odr_hash hasn't been
8209 created, return vNULL and set *completep to false.
8212 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8213 bb with no successors.
8215 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
8218 * doc/invoke.texi (-march): Clarify documentation for ARM.
8222 2014-02-05 Richard Biener <rguenther@suse.de>
8224 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8225 when not vectorizing because of too many alias checks.
8226 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8227 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8229 2014-02-05 Nick Clifton <nickc@redhat.com>
8231 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8232 accept extended registers in any mode when compiling for the MN10300.
8234 2014-02-05 Yury Gribov <y.gribov@samsung.com>
8236 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8237 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8238 sanitization attributes.
8239 (can_inline_edge_p): Likewise.
8240 (sanitize_attrs_match_for_inline_p): New function.
8242 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8244 * ipa-prop.c (detect_type_change): Shor circuit testing of
8245 type changes on THIS pointer.
8247 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
8250 * config/pa/pa.c (legitimize_tls_address): Return original address
8251 if not passed a SYMBOL_REF rtx.
8252 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8254 (pa_emit_move_sequence): Simplify TLS source operands.
8255 (pa_legitimate_constant_p): Reject all TLS constants.
8256 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8257 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8259 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8261 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8262 groups when we know they are controlled by LTO.
8263 * varasm.c (default_binds_local_p_1): If object is in other partition,
8264 it will be resolved locally.
8266 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8268 * config/host-linux.c (linux_gt_pch_use_address): Don't
8269 use SSIZE_MAX because it is not always defined.
8271 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
8274 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8275 threshold for pseudo splitting.
8276 (update_ebb_live_info): Process call argument hard registers and
8277 hard registers from insn definition too.
8278 (max_small_class_regs_num): New constant.
8279 (inherit_in_ebb): Update live hard regs through EBBs. Update
8280 reloads_num only for small register classes. Don't split for
8283 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
8286 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8289 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8291 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8294 2014-02-04 Marek Polacek <polacek@redhat.com>
8296 * gdbinit.in (pel): Define.
8298 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8300 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8303 2014-02-04 Richard Biener <rguenther@suse.de>
8306 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8307 in function context local.
8308 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8309 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8310 similar to LTO_imported_decl_ref.
8312 2014-02-04 Jakub Jelinek <jakub@redhat.com>
8314 PR tree-optimization/60002
8315 * cgraphclones.c (build_function_decl_skip_args): Clear
8318 PR tree-optimization/60023
8319 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
8320 false to gsi_replace.
8321 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
8322 has been in some EH region and vec_stmt could throw, add
8323 vec_stmt into the same EH region.
8324 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
8325 has no lhs, ignore it.
8326 * internal-fn.c (expand_MASK_LOAD): Likewise.
8329 * tree-inline.c (copy_forbidden): Fail for
8330 __attribute__((optimize (0))) functions.
8333 * omp-low.c (simd_clone_struct_copy): If from->inbranch
8334 is set, copy one less argument.
8335 (expand_simd_clones): Don't subtract clone_info->inbranch
8336 from simd_clone_struct_alloc argument.
8338 PR rtl-optimization/57915
8339 * recog.c (simplify_while_replacing): If all unary/binary/relational
8340 operation arguments are constant, attempt to simplify those.
8343 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
8344 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
8346 2014-02-04 Richard Biener <rguenther@suse.de>
8348 PR tree-optimization/60012
8349 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
8350 TBAA disambiguation to all DDRs.
8352 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8355 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
8356 (LINK_SPEC): Use it for -shared, -shared-libgcc.
8358 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8361 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
8363 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8365 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
8366 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
8368 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8371 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
8372 to figure out targets of polymorphic calls with known decl.
8373 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8374 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
8375 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
8376 (get_polymorphic_call_info): ... here.
8377 (get_polymorphic_call_info_from_invariant): New function.
8379 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8381 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
8382 lookup via vtable pointer; check for type consistency
8383 and turn inconsitent facts into UNREACHABLE.
8384 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8385 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
8386 type inconsistent querries; return UNREACHABLE instead.
8388 2014-02-03 Richard Henderson <rth@twiddle.net>
8391 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
8392 already processed this node.
8393 (normalize_one_pred_1): Pass along mark_set.
8394 (normalize_one_pred): Create and destroy a pointer_set_t.
8395 (normalize_one_pred_chain): Likewise.
8397 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
8399 PR gcov-profile/58602
8400 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
8402 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8405 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
8406 -fno-devirtualize; try to devirtualize by the knowledge of
8407 virtual table pointer given by aggregate propagation.
8408 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8409 (ipa_print_node_jump_functions): Dump also offset that
8410 is relevant for polymorphic calls.
8411 (determine_known_aggregate_parts): Add arg_type parameter; use it
8412 instead of determining the type from pointer type.
8413 (ipa_compute_jump_functions_for_edge): Update call of
8414 determine_known_aggregate_parts.
8415 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
8416 (gimple_get_virt_method_for_binfo): ... here; simplify using
8417 vtable_pointer_value_to_vtable.
8418 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
8419 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
8420 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
8421 (vtable_pointer_value_to_vtable): Break out from ...; handle also
8423 (vtable_pointer_value_to_binfo): ... here.
8424 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
8426 2014-02-03 Teresa Johnson <tejohnson@google.com>
8428 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
8429 redef of outer loop index variable.
8431 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
8435 * doc/extend.texi (Function Attributes): Typo.
8437 2014-02-03 Cong Hou <congh@google.com>
8439 PR tree-optimization/60000
8440 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
8441 if the vectorized statement is a store. A store statement can only
8442 appear at the end of pattern statements.
8444 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
8446 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
8447 (ix86_option_override_internal): Default long double to 64-bit for
8448 32-bit Bionic and to 128-bit for 64-bit Bionic.
8450 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
8451 TARGET_LONG_DOUBLE_128 is true.
8452 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
8454 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
8455 (mlong-double-64): Negate -mlong-double-128.
8456 (mlong-double-128): New option.
8458 * config/i386/i386-c.c (ix86_target_macros): Define
8459 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
8461 * doc/invoke.texi: Document -mlong-double-128.
8463 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
8465 PR rtl-optimization/60024
8466 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
8468 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
8470 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
8472 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
8474 PR rtl-optimization/57662
8475 * sel-sched.c (code_motion_path_driver): Do not mark already not
8476 existing blocks in the visiting bitmap.
8478 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
8480 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
8481 on the insn being emitted.
8483 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
8484 Will Deacon <will.deacon@arm.com>
8486 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
8488 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8490 * config/arm/arm-tables.opt: Regenerate.
8492 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8494 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
8495 for vector types other than V16QImode.
8496 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
8497 define_expand, and call altivec_expand_vec_perm_le when producing
8498 code with little endian element order.
8499 (*altivec_vperm_<mode>_internal): New insn having previous
8500 behavior of altivec_vperm_<mode>.
8501 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
8502 altivec_expand_vec_perm_le when producing code with little endian
8504 (*altivec_vperm_<mode>_uns_internal): New insn having previous
8505 behavior of altivec_vperm_<mode>_uns.
8507 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8509 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
8510 (altivec_vsumsws): Add handling for -maltivec=be with a little
8512 (altivec_vsumsws_direct): New.
8513 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
8514 gen_altivec_vsumsws.
8516 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
8518 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
8519 vtable_pointer_value_to_binfo): New functions.
8520 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
8521 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
8523 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
8525 * config/nios2/nios2.md (load_got_register): Initialize GOT
8526 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
8527 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
8529 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
8531 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
8532 preserverd by passthrough, do not propagate the type.
8534 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8536 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
8537 (mips_atomic_assign_expand_fenv): New function.
8538 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
8540 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8542 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
8543 (__builtin_mips_set_fcsr): Likewise.
8544 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
8545 MIPS_USI_FTYPE_VOID.
8546 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
8547 (mips16_expand_set_fcsr): Likewise.
8548 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
8549 (mips16_set_fcsr_stub): Likewise.
8550 (mips16_get_fcsr_one_only_stub): New class.
8551 (mips16_set_fcsr_one_only_stub): Likewise.
8552 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
8553 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
8554 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
8555 (hard_float): New availability predicate.
8556 (mips_builtins): Add get_fcsr and set_fcsr.
8557 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
8558 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
8559 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
8560 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
8561 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
8564 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8566 * config/mips/mips.c (mips_one_only_stub): New class.
8567 (mips_need_mips16_rdhwr_p): Replace with...
8568 (mips16_rdhwr_stub): ...this new variable.
8569 (mips16_stub_call_address): New function.
8570 (mips16_rdhwr_one_only_stub): New class.
8571 (mips_expand_thread_pointer): Use mips16_stub_call_address.
8572 (mips_output_mips16_rdhwr): Delete.
8573 (mips_finish_stub): New function.
8574 (mips_code_end): Use it to handle rdhwr stubs.
8576 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
8579 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
8580 when calculating size of integer atomic types.
8582 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
8584 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
8586 2014-02-01 Jakub Jelinek <jakub@redhat.com>
8588 PR tree-optimization/60003
8589 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
8590 * profile.c (branch_prob): Use gimple_call_builtin_p
8591 to check for BUILT_IN_SETJMP_RECEIVER.
8592 * tree-inline.c (copy_bb): Call notice_special_calls.
8594 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
8597 * lra-constraints.c (process_alt_operands): Update reload_sum only
8600 2014-01-31 Richard Henderson <rth@redhat.com>
8603 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
8604 until after else_eh is processed.
8606 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
8608 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
8609 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
8610 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
8611 in smmintrin.h, remove them.
8612 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
8613 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
8614 * config/i386/i386.md (ROUND_SAE): Fix value.
8615 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
8616 (const48_operand): New.
8617 * config/i386/subst.md (round), (round_expand): Use
8618 const_4_or_8_to_11_operand.
8619 (round_saeonly), (round_saeonly_expand): Use const48_operand.
8621 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
8623 * config/i386/constraints.md (Yk): Swap meaning with k.
8624 * config/i386/i386.md (movhi_internal): Change Yk to k.
8625 (movqi_internal): Ditto.
8626 (*k<logic><mode>): Ditto.
8629 (kandn<mode>): Ditto.
8630 (*<code>hi_1): Ditto.
8631 (*<code>qi_1): Ditto.
8632 (kxnor<mode>): Ditto.
8633 (kortestzhi): Ditto.
8634 (kortestchi): Ditto.
8636 (*one_cmplhi2_1): Ditto.
8637 (*one_cmplqi2_1): Ditto.
8638 * config/i386/sse.md (): Change k to Yk.
8639 (avx512f_load<mode>_mask): Ditto.
8640 (avx512f_blendm<mode>): Ditto.
8641 (avx512f_store<mode>_mask): Ditto.
8642 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8643 (avx512f_storedqu<mode>_mask): Ditto.
8644 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
8646 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
8647 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
8648 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
8649 (avx512f_maskcmp<mode>3): Ditto.
8650 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
8651 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
8652 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8653 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8654 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8655 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8656 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8657 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8658 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8659 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8660 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8661 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8662 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8663 (vec_extract_lo_<mode>_maskm): Ditto.
8664 (vec_extract_hi_<mode>_maskm): Ditto.
8665 (avx512f_vternlog<mode>_mask): Ditto.
8666 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8667 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8668 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8669 (avx512f_<code>v8div16qi2_mask): Ditto.
8670 (avx512f_<code>v8div16qi2_mask_store): Ditto.
8671 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8672 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8673 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8674 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8675 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8676 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8677 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8678 (*avx512pf_scatterpf<mode>df_mask): Ditto.
8679 (avx512cd_maskb_vec_dupv8di): Ditto.
8680 (avx512cd_maskw_vec_dupv16si): Ditto.
8681 (avx512f_vpermi2var<mode>3_maskz): Ditto.
8682 (avx512f_vpermi2var<mode>3_mask): Ditto.
8683 (avx512f_vpermi2var<mode>3_mask): Ditto.
8684 (avx512f_vpermt2var<mode>3_maskz): Ditto.
8685 (*avx512f_gathersi<mode>): Ditto.
8686 (*avx512f_gathersi<mode>_2): Ditto.
8687 (*avx512f_gatherdi<mode>): Ditto.
8688 (*avx512f_gatherdi<mode>_2): Ditto.
8689 (*avx512f_scattersi<mode>): Ditto.
8690 (*avx512f_scatterdi<mode>): Ditto.
8691 (avx512f_compress<mode>_mask): Ditto.
8692 (avx512f_compressstore<mode>_mask): Ditto.
8693 (avx512f_expand<mode>_mask): Ditto.
8694 * config/i386/subst.md (mask): Change k to Yk.
8695 (mask_scalar_merge): Ditto.
8698 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
8700 * doc/extend.texi (Vector Extensions): Document ?: in C++.
8702 2014-01-31 Richard Biener <rguenther@suse.de>
8705 * builtins.c (fold_builtin_memory_op): Make sure to not
8706 use a floating-point mode or a boolean or enumeral type for
8709 2014-01-30 DJ Delorie <dj@redhat.com>
8711 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8712 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8713 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8714 whenever main() has an epilogue.
8716 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8718 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8719 unused variable "field".
8720 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8721 (vsx_mergeh_<mode>): Likewise.
8722 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8723 (altivec_vmrghh): Likewise.
8724 (altivec_vmrghw): Likewise.
8725 (altivec_vmrglb): Likewise.
8726 (altivec_vmrglh): Likewise.
8727 (altivec_vmrglw): Likewise.
8728 (altivec_vspltb): Add missing uses.
8729 (altivec_vsplth): Likewise.
8730 (altivec_vspltw): Likewise.
8731 (altivec_vspltsf): Likewise.
8733 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8736 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8737 frame related instructions.
8739 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
8741 PR rtl-optimization/59959
8742 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8743 any reload of register whose subreg is invalid.
8745 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8747 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8748 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8749 Add missing return type - void.
8751 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8753 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8754 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8755 remove element index adjustment for endian (now handled in vsx.md
8757 (altivec_expand_vec_perm_const): Use
8758 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8759 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8760 (vsx_xxspltw_<mode>): Adjust element index for little endian.
8761 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8762 define_expand and a new define_insn *altivec_vspltb_internal;
8763 adjust for -maltivec=be on a little endian target.
8764 (altivec_vspltb_direct): New.
8765 (altivec_vsplth): Divide into a define_expand and a new
8766 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8767 little endian target.
8768 (altivec_vsplth_direct): New.
8769 (altivec_vspltw): Divide into a define_expand and a new
8770 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8771 little endian target.
8772 (altivec_vspltw_direct): New.
8773 (altivec_vspltsf): Divide into a define_expand and a new
8774 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8775 a little endian target.
8777 2014-01-30 Richard Biener <rguenther@suse.de>
8779 PR tree-optimization/59993
8780 * tree-ssa-forwprop.c (associate_pointerplus): Check we
8781 can propagate form the earlier stmt and avoid the transform
8782 when the intermediate result is needed.
8784 2014-01-30 Alangi Derick <alangiderick@gmail.com>
8786 * README.Portability: Fix typo.
8788 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
8790 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8791 comparison_operator with ordered_comparison_operator.
8793 2014-01-30 Nick Clifton <nickc@redhat.com>
8795 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8796 Rename to mn10300_store_multiple_regs.
8797 * config/mn10300/mn10300.c: Likewise.
8798 * config/mn10300/mn10300.md (store_movm): Fix typo: call
8799 store_multiple_regs.
8800 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8801 Call mn10300_store_multiple_regs.
8803 2014-01-30 Nick Clifton <nickc@redhat.com>
8804 DJ Delorie <dj@redhat.com>
8806 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8807 %fp 2 to keep registers after it properly word-aligned.
8808 (rl78_alloc_physical_registers_umul): Handle the case where both
8809 input operands are the same.
8811 2014-01-30 Richard Biener <rguenther@suse.de>
8813 PR tree-optimization/59903
8814 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8817 2014-01-30 Jason Merrill <jason@redhat.com>
8820 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8823 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8825 2014-01-30 Richard Biener <rguenther@suse.de>
8827 PR tree-optimization/59951
8828 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8830 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
8833 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8834 SFmode to DFmode case.
8836 2014-01-29 DJ Delorie <dj@redhat.com>
8838 * config/msp430/msp430.opt (-minrt): New.
8839 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8841 (ENDFILE_SPEC): Likewise.
8843 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
8845 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8846 (estimate_function_body_sizes): Use it.
8848 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
8851 * dwarf2out.c (is_cxx_auto): New.
8852 (is_base_type): Use it.
8853 (gen_type_die_with_usage): Likewise.
8855 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8857 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
8858 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8859 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8860 -maltivec=be with LE targets.
8861 (vsx_mergeh_<mode>): Likewise.
8862 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8863 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8864 (altivec_vmrghb): Replace with define_expand and new
8865 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8866 (altivec_vmrghb_direct): New define_insn.
8867 (altivec_vmrghh): Replace with define_expand and new
8868 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8869 (altivec_vmrghh_direct): New define_insn.
8870 (altivec_vmrghw): Replace with define_expand and new
8871 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8872 (altivec_vmrghw_direct): New define_insn.
8873 (*altivec_vmrghsf): Adjust for endianness.
8874 (altivec_vmrglb): Replace with define_expand and new
8875 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8876 (altivec_vmrglb_direct): New define_insn.
8877 (altivec_vmrglh): Replace with define_expand and new
8878 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8879 (altivec_vmrglh_direct): New define_insn.
8880 (altivec_vmrglw): Replace with define_expand and new
8881 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8882 (altivec_vmrglw_direct): New define_insn.
8883 (*altivec_vmrglsf): Adjust for endianness.
8884 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8885 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8886 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8887 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8888 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8889 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8890 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8891 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8893 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
8895 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8896 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8899 2014-01-29 Richard Biener <rguenther@suse.de>
8901 PR tree-optimization/58742
8902 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8903 associate_pointerplus_align.
8904 (associate_pointerplus_diff): New function.
8905 (associate_pointerplus): Likewise. Call associate_pointerplus_align
8906 and associate_pointerplus_diff.
8908 2014-01-29 Richard Biener <rguenther@suse.de>
8910 * lto-streamer.h (LTO_major_version): Bump to 3.
8911 (LTO_minor_version): Reset to 0.
8913 2014-01-29 Renlin Li <Renlin.Li@arm.com>
8915 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8916 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8917 (arm_file_start): Generate correct asm header for armv7ve.
8918 * config/arm/bpabi.h: Add multilib support for armv7ve.
8919 * config/arm/driver-arm.c: Change the architectures of cortex-a7
8920 and cortex-a15 to armv7ve.
8921 * config/arm/t-aprofile: Add multilib support for armv7ve.
8922 * doc/invoke.texi: Document -march=armv7ve.
8924 2014-01-29 Richard Biener <rguenther@suse.de>
8926 PR tree-optimization/58742
8927 * tree-ssa-forwprop.c (associate_plusminus): Return true
8928 if we changed sth, defer EH cleanup to ...
8929 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
8930 (simplify_mult): New function.
8932 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8935 PR tree-optimization/59920
8936 * tree.c (build_common_builtin_nodes): Remove
8937 __builtin_setjmp_dispatcher initialization.
8938 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
8939 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
8940 instead of gsi_after_labels + manually skipping debug stmts.
8941 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
8942 ignore bbs with IFN_ABNORMAL_DISPATCHER.
8943 * tree-inline.c (copy_edges_for_bb): Remove
8944 can_make_abnormal_goto argument, instead add abnormal_goto_dest
8945 argument. Ignore computed_goto_p stmts. Don't call
8946 make_abnormal_goto_edges. If a call might need abnormal edges
8947 for non-local gotos, see if it already has an edge to
8948 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
8949 with true argument, don't do anything then, otherwise add
8950 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
8951 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
8953 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
8954 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
8955 (lower_stmt): Don't set data->calls_builtin_setjmp.
8956 (lower_builtin_setjmp): Adjust comment.
8957 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
8958 * tree-cfg.c (found_computed_goto): Remove.
8959 (factor_computed_gotos): Remove.
8960 (make_goto_expr_edges): Return bool, true for computed gotos.
8961 Don't call make_abnormal_goto_edges.
8962 (build_gimple_cfg): Don't set found_computed_goto, don't call
8963 factor_computed_gotos.
8964 (computed_goto_p): No longer static.
8965 (make_blocks): Don't set found_computed_goto.
8966 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
8967 (make_edges): If make_goto_expr_edges returns true, push bb
8968 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
8969 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
8970 vector. Record mapping between bbs and OpenMP regions if there
8971 are any, adjust make_gimple_omp_edges caller. Call
8972 handle_abnormal_edges.
8973 (make_abnormal_goto_edges): Remove.
8974 * tree-cfg.h (make_abnormal_goto_edges): Remove.
8975 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
8976 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
8977 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
8978 * internal-fn.def (ABNORMAL_DISPATCHER): New.
8979 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
8980 filling *region also set *region_idx to (*region)->entry->index.
8983 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
8984 For REGs set ORIGINAL_REGNO.
8986 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
8988 * doc/md.texi: Mention that a target shouldn't implement
8989 vec_widen_(s|u)mul_even/odd pair if it is less efficient
8992 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8994 PR tree-optimization/59594
8995 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
8996 a copy of the datarefs vector rather than the vector itself.
8998 2014-01-28 Jason Merrill <jason@redhat.com>
9001 * dwarf2out.c (auto_die): New static.
9002 (gen_type_die_with_usage): Handle C++1y 'auto'.
9003 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
9006 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
9009 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9010 (SPEC_X32): Likewise.
9011 (SPEC_64): Likewise.
9012 * config/i386/i386.c (ix86_option_override_internal): Turn off
9013 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9015 (x86_file_start): Output .code16gcc for TARGET_16BIT.
9016 * config/i386/i386.h (TARGET_16BIT): New macro.
9017 (TARGET_16BIT_P): Likewise.
9018 * config/i386/i386.opt: Add m16.
9019 * doc/invoke.texi: Document -m16.
9021 2014-01-28 Jakub Jelinek <jakub@redhat.com>
9023 PR preprocessor/59935
9024 * input.c (location_get_source_line): Bail out on when line number
9025 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9027 2014-01-28 Richard Biener <rguenther@suse.de>
9029 PR tree-optimization/58742
9030 * tree-ssa-forwprop.c (associate_plusminus): Handle
9031 pointer subtraction of the form (T)(P + A) - (T)P.
9033 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9035 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9038 2014-01-28 Richard Biener <rguenther@suse.de>
9041 2014-01-28 Richard Biener <rguenther@suse.de>
9043 PR rtl-optimization/45364
9044 PR rtl-optimization/59890
9045 * var-tracking.c (local_get_addr_clear_given_value): Handle
9046 already cleared slot.
9047 (val_reset): Handle not allocated local_get_addr_cache.
9048 (vt_find_locations): Use post-order on the inverted CFG.
9050 2014-01-28 Richard Biener <rguenther@suse.de>
9052 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9054 2014-01-28 Richard Biener <rguenther@suse.de>
9056 PR rtl-optimization/45364
9057 PR rtl-optimization/59890
9058 * var-tracking.c (local_get_addr_clear_given_value): Handle
9059 already cleared slot.
9060 (val_reset): Handle not allocated local_get_addr_cache.
9061 (vt_find_locations): Use post-order on the inverted CFG.
9063 2014-01-28 Alan Modra <amodra@gmail.com>
9065 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9066 * configure.ac <recursive call for build != host>: Define
9067 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9068 and LD_FOR_BUILD too.
9069 * configure: Regenerate.
9071 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
9073 * config/i386/i386.c (get_builtin_code_for_version): Separate
9074 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9075 Broadwell from Haswell.
9077 2014-01-27 Steve Ellcey <sellcey@mips.com>
9079 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9080 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9081 * config/mips/mips.c (mips_option_override): Change setting
9083 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9084 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9085 Change from Mask to Var.
9087 2014-01-27 Jeff Law <law@redhat.com>
9089 * ipa-inline.c (inline_small_functions): Fix typo.
9091 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
9093 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9094 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9095 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9096 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9097 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9098 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9099 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9100 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9101 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9102 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9103 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9104 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9105 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9106 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9107 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9108 (_mm512_storeu_epi64): Ditto.
9109 (_mm512_cmpge_epi32_mask): Ditto.
9110 (_mm512_cmpge_epu32_mask): Ditto.
9111 (_mm512_cmpge_epi64_mask): Ditto.
9112 (_mm512_cmpge_epu64_mask): Ditto.
9113 (_mm512_cmple_epi32_mask): Ditto.
9114 (_mm512_cmple_epu32_mask): Ditto.
9115 (_mm512_cmple_epi64_mask): Ditto.
9116 (_mm512_cmple_epu64_mask): Ditto.
9117 (_mm512_cmplt_epi32_mask): Ditto.
9118 (_mm512_cmplt_epu32_mask): Ditto.
9119 (_mm512_cmplt_epi64_mask): Ditto.
9120 (_mm512_cmplt_epu64_mask): Ditto.
9121 (_mm512_cmpneq_epi32_mask): Ditto.
9122 (_mm512_cmpneq_epu32_mask): Ditto.
9123 (_mm512_cmpneq_epi64_mask): Ditto.
9124 (_mm512_cmpneq_epu64_mask): Ditto.
9125 (_mm512_expand_pd): Ditto.
9126 (_mm512_expand_ps): Ditto.
9127 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9128 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9129 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9130 * config/i386/i386.c (ix86_builtins): Add
9131 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9132 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9133 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9134 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9135 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9136 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9137 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9138 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9139 IX86_BUILTIN_PMOVUSQW512_MEM.
9140 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9141 __builtin_ia32_pmovsqd512mem_mask,
9142 __builtin_ia32_pmovqd512mem_mask,
9143 __builtin_ia32_pmovusqw512mem_mask,
9144 __builtin_ia32_pmovsqw512mem_mask,
9145 __builtin_ia32_pmovqw512mem_mask,
9146 __builtin_ia32_pmovusdw512mem_mask,
9147 __builtin_ia32_pmovsdw512mem_mask,
9148 __builtin_ia32_pmovdw512mem_mask,
9149 __builtin_ia32_pmovqb512mem_mask,
9150 __builtin_ia32_pmovusqb512mem_mask,
9151 __builtin_ia32_pmovsqb512mem_mask,
9152 __builtin_ia32_pmovusdb512mem_mask,
9153 __builtin_ia32_pmovsdb512mem_mask,
9154 __builtin_ia32_pmovdb512mem_mask.
9155 (bdesc_args): Add __builtin_ia32_expanddf512,
9156 __builtin_ia32_expandsf512.
9157 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9158 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9159 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9160 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9161 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9162 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9163 (avx512f_<code>v8div16qi2_mask_store): This.
9164 (avx512f_expand<mode>): New.
9166 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
9168 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9170 (_mm512_mask_prefetch_i64gather_pd): Ditto.
9171 (_mm512_prefetch_i32scatter_pd): Ditto.
9172 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9173 (_mm512_prefetch_i64scatter_pd): Ditto.
9174 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9175 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9176 (_mm512_mask_prefetch_i64gather_ps): Ditto.
9177 (_mm512_prefetch_i32scatter_ps): Ditto.
9178 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9179 (_mm512_prefetch_i64scatter_ps): Ditto.
9180 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9181 * config/i386/i386-builtin-types.def: Define
9182 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9183 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9184 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9185 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9186 IX86_BUILTIN_SCATTERPFQPD.
9187 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9188 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9189 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9190 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9191 __builtin_ia32_scatterpfqps.
9192 (ix86_expand_builtin): Expand new built-ins.
9193 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9194 fix memory access data type.
9195 (*avx512pf_gatherpf<mode>_mask): Ditto.
9196 (*avx512pf_gatherpf<mode>): Ditto.
9197 (avx512pf_scatterpf<mode>): Ditto.
9198 (*avx512pf_scatterpf<mode>_mask): Ditto.
9199 (*avx512pf_scatterpf<mode>): Ditto.
9200 (GATHER_SCATTER_SF_MEM_MODE): New.
9201 (avx512pf_gatherpf<mode>df): Ditto.
9202 (*avx512pf_gatherpf<mode>df_mask): Ditto.
9203 (*avx512pf_scatterpf<mode>df): Ditto.
9205 2014-01-27 Jakub Jelinek <jakub@redhat.com>
9208 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9209 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9212 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9214 * common/config/arm/arm-common.c
9215 (arm_rewrite_mcpu): Handle multiple names.
9217 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9219 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9221 * gimple-builder.h (create_gimple_tmp): Delete.
9223 2014-01-27 Christian Bruel <christian.bruel@st.com>
9225 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9228 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
9230 * config/pa/pa.md (call): Generate indirect long calls to non-local
9231 functions when outputing 32-bit code.
9232 (call_value): Likewise except for special call to buggy powf function.
9234 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9235 portable runtime and PIC indirect calls.
9236 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9237 and PIC call sequences. Use ldo instead of blr to set return register
9238 in PIC call sequence.
9240 2014-01-25 Walter Lee <walt@tilera.com>
9242 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9243 avoid clobbering a live register.
9245 2014-01-25 Walter Lee <walt@tilera.com>
9247 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9248 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9249 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9250 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9252 2014-01-25 Walter Lee <walt@tilera.com>
9254 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9255 arguments on even registers.
9256 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9258 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9259 (BIGGEST_ALIGNMENT): Ditto.
9260 (BIGGEST_FIELD_ALIGNMENT): Ditto.
9262 2014-01-25 Walter Lee <walt@tilera.com>
9264 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9265 insns before bundling.
9266 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9268 2014-01-25 Walter Lee <walt@tilera.com>
9270 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9271 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9272 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9274 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9276 * config/mips/constraints.md (kl): Delete.
9277 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9278 define expands, using...
9279 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9280 instructions for MIPS16.
9281 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9282 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9284 2014-01-25 Walter Lee <walt@tilera.com>
9286 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9290 2014-01-25 Walter Lee <walt@tilera.com>
9292 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9293 (TARGET_EXPAND_TO_RTL_HOOK): Define.
9295 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9297 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9300 2014-01-25 Jakub Jelinek <jakub@redhat.com>
9302 * print-rtl.c (in_call_function_usage): New var.
9303 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9304 EXPR_LIST mode as mode and not as reg note name.
9307 * cfgloopmanip.c (copy_loop_info): If
9308 loop->warned_aggressive_loop_optimizations, make sure
9309 the flag is set in target loop too.
9311 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
9313 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9315 * builtins.def: Likewise.
9316 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9317 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9318 * ira.c (ira_setup_eliminable_regset): Likewise.
9319 * omp-low.c (gate_expand_omp): Likewise.
9320 (execute_lower_omp): Likewise.
9321 (diagnose_sb_0): Likewise.
9322 (gate_diagnose_omp_blocks): Likewise.
9323 (simd_clone_clauses_extract): Likewise.
9326 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9328 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
9329 correction for little endian...
9330 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
9333 2014-01-24 Jeff Law <law@redhat.com>
9335 PR tree-optimization/59919
9336 * tree-vrp.c (find_assert_locations_1): Do not register asserts
9337 for non-returning calls.
9339 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
9341 * common/config/aarch64/aarch64-common.c
9342 (aarch64_rewrite_mcpu): Handle multiple names.
9343 * config/aarch64/aarch64.h
9344 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9346 2014-01-24 Dodji Seketeli <dodji@redhat.com>
9348 * input.c (add_file_to_cache_tab): Handle the case where fopen
9351 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
9354 * config/i386/i386.md (pushsf splitter): Get stack adjustment
9355 from push operand if code of push isn't PRE_DEC.
9357 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9360 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9361 -mquad-memory-atomic. Update -mquad-memory documentation to say
9362 it is only used for non-atomic loads/stores.
9364 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
9365 -mquad-memory or -mquad-memory-atomic switches.
9367 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
9368 -mquad-memory-atomic to ISA 2.07 support.
9370 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
9371 to separate support of normal quad word memory operations (ldq, stq)
9372 from the atomic quad word memory operations.
9374 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9375 support to separate non-atomic quad word operations from atomic
9376 quad word operations. Disable non-atomic quad word operations in
9377 little endian mode so that we don't have to swap words after the
9378 load and before the store.
9379 (quad_load_store_p): Add comment about atomic quad word support.
9380 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
9381 options printed with -mdebug=reg.
9383 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
9384 -mquad-memory-atomic as the test for whether we have quad word
9385 atomic instructions.
9386 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
9387 or -mp8-vector are used, allow byte/half-word atomic operations.
9389 * config/rs6000/sync.md (load_lockedti): Insure that the address
9390 is a proper indexed or indirect address for the lqarx instruction.
9391 On little endian systems, swap the hi/lo registers after the lqarx
9393 (load_lockedpti): Use indexed_or_indirect_operand predicate to
9394 insure the address is valid for the lqarx instruction.
9395 (store_conditionalti): Insure that the address is a proper indexed
9396 or indirect address for the stqcrx. instruction. On little endian
9397 systems, swap the hi/lo registers before doing the stqcrx.
9399 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
9400 insure the address is valid for the stqcrx. instruction.
9402 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
9403 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
9404 type of quad memory support is available.
9406 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
9409 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
9410 there is a danger of looping.
9412 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
9414 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9415 force flag_ira_loop_pressure if set via command line.
9417 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
9419 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
9420 (ashr_simd): New builtin handling DI mode.
9421 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
9422 (aarch64_sshr_simddi): New match pattern.
9423 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
9424 (vshrd_n_s64): Likewise.
9425 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
9427 2014-01-23 Nick Clifton <nickc@redhat.com>
9429 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
9430 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
9431 favour of mcu specific scripts.
9432 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
9435 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
9436 Alex Velenko <Alex.Velenko@arm.com>
9438 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
9439 (vaddv_s16): Likewise.
9440 (vaddv_s32): Likewise.
9441 (vaddv_u8): Likewise.
9442 (vaddv_u16): Likewise.
9443 (vaddv_u32): Likewise.
9444 (vaddvq_s8): Likewise.
9445 (vaddvq_s16): Likewise.
9446 (vaddvq_s32): Likewise.
9447 (vaddvq_s64): Likewise.
9448 (vaddvq_u8): Likewise.
9449 (vaddvq_u16): Likewise.
9450 (vaddvq_u32): Likewise.
9451 (vaddvq_u64): Likewise.
9452 (vaddv_f32): Likewise.
9453 (vaddvq_f32): Likewise.
9454 (vaddvq_f64): Likewise.
9455 (vmaxv_f32): Likewise.
9456 (vmaxv_s8): Likewise.
9457 (vmaxv_s16): Likewise.
9458 (vmaxv_s32): Likewise.
9459 (vmaxv_u8): Likewise.
9460 (vmaxv_u16): Likewise.
9461 (vmaxv_u32): Likewise.
9462 (vmaxvq_f32): Likewise.
9463 (vmaxvq_f64): Likewise.
9464 (vmaxvq_s8): Likewise.
9465 (vmaxvq_s16): Likewise.
9466 (vmaxvq_s32): Likewise.
9467 (vmaxvq_u8): Likewise.
9468 (vmaxvq_u16): Likewise.
9469 (vmaxvq_u32): Likewise.
9470 (vmaxnmv_f32): Likewise.
9471 (vmaxnmvq_f32): Likewise.
9472 (vmaxnmvq_f64): Likewise.
9473 (vminv_f32): Likewise.
9474 (vminv_s8): Likewise.
9475 (vminv_s16): Likewise.
9476 (vminv_s32): Likewise.
9477 (vminv_u8): Likewise.
9478 (vminv_u16): Likewise.
9479 (vminv_u32): Likewise.
9480 (vminvq_f32): Likewise.
9481 (vminvq_f64): Likewise.
9482 (vminvq_s8): Likewise.
9483 (vminvq_s16): Likewise.
9484 (vminvq_s32): Likewise.
9485 (vminvq_u8): Likewise.
9486 (vminvq_u16): Likewise.
9487 (vminvq_u32): Likewise.
9488 (vminnmv_f32): Likewise.
9489 (vminnmvq_f32): Likewise.
9490 (vminnmvq_f64): Likewise.
9492 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
9494 * config/aarch64/aarch64-simd.md
9495 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
9496 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
9497 (*aarch64_mul3_elt<mode>): Likewise.
9498 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
9499 (*aarch64_mul3_elt_to_64v2df): Likewise.
9500 (*aarch64_mla_elt<mode>): Likewise.
9501 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
9502 (*aarch64_mls_elt<mode>): Likewise.
9503 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
9504 (*aarch64_fma4_elt<mode>): Likewise.
9505 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
9506 (*aarch64_fma4_elt_to_64v2df): Likewise.
9507 (*aarch64_fnma4_elt<mode>): Likewise.
9508 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
9509 (*aarch64_fnma4_elt_to_64v2df): Likewise.
9510 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9511 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
9512 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9513 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9514 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
9515 (aarch64_sqdmull_lane<mode>_internal): Likewise.
9516 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
9518 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
9520 * config/aarch64/aarch64-simd.md
9521 (aarch64_be_checked_get_lane<mode>): New define_expand.
9522 * config/aarch64/aarch64-simd-builtins.def
9523 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
9524 New builtin definition.
9525 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
9526 Use new safe be builtin.
9528 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
9530 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
9532 (aarch64_be_st1<mode>): Likewise.
9533 (aarch_ld1<VALL:mode>): Define_expand modified.
9534 (aarch_st1<VALL:mode>): Likewise.
9535 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
9536 (UNSPEC_ST1): Likewise.
9538 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
9540 * config/microblaze/microblaze.md: Add trap insn and attribute
9542 2014-01-23 Dodji Seketeli <dodji@redhat.com>
9544 PR preprocessor/58580
9545 * input.h (location_get_source_line): Take an additional line_size
9547 (void diagnostics_file_cache_fini): Declare new function.
9548 * input.c (struct fcache): New type.
9549 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
9550 New static constants.
9551 (diagnostic_file_cache_init, total_lines_num)
9552 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
9553 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
9554 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
9555 (get_next_line, read_next_line, goto_next_line, read_line_num):
9556 New static function definitions.
9557 (diagnostic_file_cache_fini): New function.
9558 (location_get_source_line): Take an additional output line_len
9559 parameter. Re-write using lookup_or_add_file_to_cache_tab and
9561 * diagnostic.c (diagnostic_finish): Call
9562 diagnostic_file_cache_fini.
9563 (adjust_line): Take an additional input parameter for the length
9564 of the line, rather than calculating it with strlen.
9565 (diagnostic_show_locus): Adjust the use of
9566 location_get_source_line and adjust_line with respect to their new
9567 signature. While displaying a line now, do not stop at the first
9568 null byte. Rather, display the zero byte as a space and keep
9569 going until we reach the size of the line.
9570 * Makefile.in: Add vec.o to OBJS-libcommon
9572 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
9573 Ilya Tocar <ilya.tocar@intel.com>
9575 * config/i386/avx512fintrin.h (_mm512_kmov): New.
9576 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
9577 (__builtin_ia32_kmov16): Ditto.
9578 * config/i386/i386.md (UNSPEC_KMOV): New.
9581 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
9583 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
9584 (_mm512_storeu_si512): Ditto.
9586 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
9589 * rtl.h (get_referenced_operands): Declare.
9590 * recog.c (get_referenced_operands): New function.
9591 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
9592 operands have been referenced when recording LO_SUM references.
9594 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
9596 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
9598 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
9600 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
9601 Enable for generic and recent AMD targets.
9603 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
9605 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
9606 ARG_SIZE note when adjustment was eliminated.
9608 2014-01-22 Jeff Law <law@redhat.com>
9610 PR tree-optimization/59597
9611 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
9612 in file. Accept new argument REGISTERING and use it to modify
9613 dump output appropriately.
9614 (register_jump_thread): Corresponding changes.
9615 (mark_threaded_blocks): Reinstate code to cancel unprofitable
9616 thread paths involving joiner blocks. Add code to dump cancelled
9617 jump threading paths.
9619 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
9621 PR rtl-optimization/59477
9622 * lra-constraints.c (inherit_in_ebb): Process call for living hard
9623 regs. Update reloads_num and potential_reload_hard_regs for all insns.
9625 2014-01-22 Tom Tromey <tromey@redhat.com>
9627 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
9629 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
9631 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
9633 PR rtl-optimization/59896
9634 * lra-constraints.c (process_alt_operands): Check unused note for
9635 matched operands of insn with no output reloads.
9637 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
9639 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
9640 (mips_move_from_gpr_cost): Likewise.
9642 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
9644 PR rtl-optimization/59858
9645 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
9646 ira_class_hard_regs_num.
9647 (process_alt_operands): Increase reject for dying matched operand.
9649 2014-01-21 Jakub Jelinek <jakub@redhat.com>
9652 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9653 smaller than size, perform several stores or loads and stores
9654 at dst + count - size to store or copy all of size bytes, rather
9655 than just last modesize bytes.
9657 2014-01-20 DJ Delorie <dj@redhat.com>
9659 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9660 that CLOBBERs are REGs before propogating their values.
9662 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
9665 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9666 (cgraph_inline_failed_type): New function.
9667 * cgraph.h (DEFCIFCODE): Add type.
9668 (cgraph_inline_failed_type_t): New enum.
9669 (cgraph_inline_failed_type): New prototype.
9670 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9671 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9672 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9673 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9674 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9675 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9676 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9677 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9678 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9679 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9680 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9681 OPTIMIZATION_MISMATCH.
9682 * tree-inline.c (expand_call_inline): Emit errors during
9683 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9685 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9688 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9689 mode attribute in insn output.
9691 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
9693 * output.h (output_constant): Delete.
9694 * varasm.c (output_constant): Make private.
9696 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
9698 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9700 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9703 * tree.h (fold_builtin_strcat): New prototype.
9704 * builtins.c (fold_builtin_strcat): No longer static. Add len
9705 argument, if non-NULL, don't call c_strlen. Optimize
9706 directly into __builtin_memcpy instead of __builtin_strcpy.
9707 (fold_builtin_2): Adjust fold_builtin_strcat caller.
9708 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9710 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9712 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9713 for SImode_address_operand operands, having only a REG argument.
9715 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
9717 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9718 loader name using mbig-endian.
9719 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9721 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9723 * doc/invoke.texi (-march): Clarify documentation for AArch64.
9727 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
9729 * config/aarch64/aarch64-protos.h
9730 (aarch64_cannot_change_mode_class_ptr): Declare.
9731 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9732 aarch64_cannot_change_mode_class_ptr): New.
9733 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9734 backend hook aarch64_cannot_change_mode_class.
9736 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9738 * common/config/aarch64/aarch64-common.c
9739 (aarch64_handle_option): Don't handle any option order logic here.
9740 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9741 selected_cpu, warn on architecture version mismatch.
9742 (aarch64_override_options): Fix parsing order for option strings.
9744 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9745 Iain Sandoe <iain@codesourcery.com>
9748 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9749 warning. Amend comment to reflect current functionality.
9751 2014-01-20 Richard Biener <rguenther@suse.de>
9754 * builtins.c (fold_builtin_strcat): Remove case better handled
9755 by tree-ssa-strlen.c.
9757 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
9759 * config/aarch64/aarch64.opt
9760 (mcpu, march, mtune): Make case-insensitive.
9762 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9765 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9766 if operands[1] is a REG or ZERO_EXTEND of a REG.
9768 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
9770 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9772 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
9774 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9775 long non-pic millicode calls.
9777 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9779 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9781 2014-01-19 Kito Cheng <kito@0xlab.org>
9783 * builtins.c (expand_movstr): Check movstr expand done or fail.
9785 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9786 H.J. Lu <hongjiu.lu@intel.com>
9789 * config/i386/i386.md (*lea<mode>): Zero-extend return register
9790 to DImode for zero-extended addresses.
9792 2014-01-19 Jakub Jelinek <jakub@redhat.com>
9794 PR rtl-optimization/57763
9795 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9796 on the new indirect jump_insn and increment LABEL_NUSES (label).
9798 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
9802 * config.gcc (x86_archs): New variable.
9803 (x86_64_archs): Likewise.
9804 (x86_cpus): Likewise.
9805 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9806 --with-arch/--with-cpu= options.
9807 Support --with-arch=/--with-cpu={nehalem,westmere,
9808 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9810 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9812 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9813 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
9815 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9817 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9819 2014-01-18 Jakub Jelinek <jakub@redhat.com>
9822 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9823 clear cpp_get_options (parse_in)->warn_unused_macros for
9824 ix86_target_macros_internal with cpp_define.
9826 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
9828 * jump.c (delete_related_insns): Keep (use (insn))s.
9829 * reorg.c (redundant_insn): Check for barriers too.
9831 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9833 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9835 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
9837 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9838 call to $$dyncall when TARGET_LONG_CALLS is true.
9840 2014-01-17 Jeff Law <law@redhat.com>
9842 * ree.c (combine_set_extension): Temporarily disable test for
9843 changing number of hard registers.
9845 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9848 * ipa-inline-analysis.c (inline_free_summary):
9849 Do not free summary of aliases.
9851 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9854 * gimplify.c (gimplify_expr): Use create_tmp_var
9855 instead of create_tmp_var_raw. If cond doesn't have
9856 integral type, don't add the IFN_ANNOTATE builtin at all.
9858 2014-01-17 Martin Jambor <mjambor@suse.cz>
9861 * ipa-cp.c (prev_edge_clone): New variable.
9862 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9863 Also resize prev_edge_clone vector.
9864 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9865 (ipcp_edge_removal_hook): New function.
9866 (ipcp_driver): Register ipcp_edge_removal_hook.
9868 2014-01-17 Andrew Pinski <apinski@cavium.com>
9869 Steve Ellcey <sellcey@mips.com>
9872 * config/mips/mips.c (mips_print_operand): Check operand mode instead
9875 2014-01-17 Jeff Law <law@redhat.com>
9878 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9879 so that pass_ccp runs first.
9881 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9883 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9884 (ix86_adjust_cost): Use !TARGET_XXX.
9885 (do_reorder_for_imul): Likewise.
9886 (swap_top_of_ready_list): Likewise.
9887 (ix86_sched_reorder): Likewise.
9889 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9891 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9892 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
9893 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
9894 (intel_memset): New. Duplicate slm_memset.
9895 (intel_cost): New. Duplicate slm_cost.
9896 (m_INTEL): New macro.
9897 (processor_target_table): Add "intel".
9898 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9899 with PROCESSOR_INTEL for "intel".
9900 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
9901 PROCESSOR_SILVERMONT.
9902 (ix86_issue_rate): Likewise.
9903 (ix86_adjust_cost): Likewise.
9904 (ia32_multipass_dfa_lookahead): Likewise.
9905 (swap_top_of_ready_list): Likewise.
9906 (ix86_sched_reorder): Likewise.
9907 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9908 instead of TARGET_OPT_AGU.
9909 * config/i386/i386.h (TARGET_INTEL): New.
9910 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9911 (processor_type): Add PROCESSOR_INTEL.
9912 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9913 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9915 2014-01-17 Marek Polacek <polacek@redhat.com>
9918 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9921 2014-01-17 Richard Biener <rguenther@suse.de>
9923 PR tree-optimization/46590
9924 * opts.c (default_options_table): Add entries for
9925 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
9926 all enabled at -O1 but not for -Og.
9927 * common.opt (fbranch-count-reg): Remove Init(1).
9928 (fmove-loop-invariants): Likewise.
9929 (ftree-pta): Likewise.
9931 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9933 * config/i386/i386.c (ix86_data_alignment): For compatibility with
9934 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
9935 decls to at least the GCC 4.8 used alignments.
9938 * tree-nested.c (convert_nonlocal_reference_stmt,
9939 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
9940 of GIMPLE_BIND stmts, adjust associated decls.
9942 2014-01-17 Richard Biener <rguenther@suse.de>
9944 PR tree-optimization/46590
9945 * vec.h (vec<>::bseach): New member function implementing
9946 binary search according to C89 bsearch.
9947 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
9948 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
9949 bitmap pointer again. Make accesses_in_loop a flat array.
9950 (mem_ref_obstack): New global.
9951 (outermost_indep_loop): Adjust for mem_ref->stored changes.
9952 (mark_ref_stored): Likewise.
9953 (ref_indep_loop_p_2): Likewise.
9954 (set_ref_stored_in_loop): New helper function.
9955 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
9956 (memref_free): Adjust.
9957 (record_mem_ref_loc): Simplify.
9958 (gather_mem_refs_stmt): Adjust.
9959 (sort_locs_in_loop_postorder_cmp): New function.
9960 (analyze_memory_references): Sort accesses_in_loop after
9961 loop postorder number.
9962 (find_ref_loc_in_loop_cmp): New function.
9963 (for_all_locs_in_loop): Find relevant cluster of locs in
9964 accesses_in_loop and iterate without recursion.
9965 (execute_sm): Avoid uninit warning.
9966 (struct ref_always_accessed): Simplify.
9967 (ref_always_accessed::operator ()): Likewise.
9968 (ref_always_accessed_p): Likewise.
9969 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
9970 loop postorder numbers here.
9971 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
9974 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9977 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
9978 on decls for which assemble_alias has been called.
9980 2014-01-17 Nick Clifton <nickc@redhat.com>
9982 * config/msp430/msp430.opt: (mcpu): New option.
9983 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
9984 (msp430_option_override): Parse target_cpu. If the MCU name
9985 matches a generic string, clear target_mcu.
9986 (msp430_attr): Allow numeric interrupt values up to 63.
9987 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
9988 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
9990 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
9992 * config/msp430/msp430.md (popm): Use %J rather than %I.
9993 (addsi3): Use msp430_nonimmediate_operand for operand 2.
9994 (addhi_cy_i): Use immediate_operand for operand 2.
9995 * doc/invoke.texi: Document -mcpu option.
9997 2014-01-17 Richard Biener <rguenther@suse.de>
9999 PR rtl-optimization/38518
10000 * df.h (df_analyze_loop): Declare.
10001 * df-core.c: Include cfgloop.h.
10002 (df_analyze_1): Split out main part of df_analyze.
10003 (df_analyze): Adjust.
10004 (loop_inverted_post_order_compute): New function.
10005 (loop_post_order_compute): Likewise.
10006 (df_analyze_loop): New function avoiding whole-function
10007 postorder computes.
10008 * loop-invariant.c (find_defs): Use df_analyze_loop.
10009 (find_invariants): Adjust.
10010 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10012 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
10014 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10015 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10017 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
10019 * ipa-ref.c (ipa_remove_stmt_references): Fix references
10020 traversal when removing references.
10022 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
10025 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10027 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
10029 PR middle-end/56791
10030 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10031 pushing a reload for an autoinc when we had previously reloaded an
10032 inner part of the address.
10034 2014-01-16 Jakub Jelinek <jakub@redhat.com>
10036 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10038 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10039 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10040 when not giving up or versioning for alias only because of
10042 (vect_analyze_data_ref_dependences): Set to true.
10043 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10045 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10046 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10049 PR middle-end/58344
10050 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10053 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10054 operand 0 predicate for gathers, use a new pseudo as subtarget.
10056 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10058 PR middle-end/59609
10059 * lra-constraints.c (process_alt_operands): Add printing debug info.
10060 Check absence of input/output reloads for matched operands too.
10062 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10064 PR rtl-optimization/59835
10065 * ira.c (ira_init_register_move_cost): Increase cost for
10068 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
10070 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10072 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
10075 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10076 non-register objects. Use gen_(high/low)part more consistently.
10079 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10082 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10083 endian support, remove tests for WORDS_BIG_ENDIAN.
10084 (p8_mfvsrd_3_<mode>): Likewise.
10085 (reload_gpr_from_vsx<mode>): Likewise.
10086 (reload_gpr_from_vsxsf): Likewise.
10087 (p8_mfvsrd_4_disf): Likewise.
10089 2014-01-16 Richard Biener <rguenther@suse.de>
10091 PR rtl-optimization/46590
10092 * lcm.c (compute_antinout_edge): Use postorder iteration.
10093 (compute_laterin): Use inverted postorder iteration.
10095 2014-01-16 Nick Clifton <nickc@redhat.com>
10097 PR middle-end/28865
10098 * varasm.c (output_constant): Return the number of bytes actually
10100 (output_constructor_array_range): Update the field size with the
10101 number of bytes emitted by output_constant.
10102 (output_constructor_regular_field): Likewise. Also do not
10103 complain if the total number of bytes emitted is now greater
10104 than the expected fieldpos.
10105 * output.h (output_constant): Update prototype and descriptive comment.
10107 2014-01-16 Marek Polacek <polacek@redhat.com>
10109 PR middle-end/59827
10110 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10111 it is error_mark_node.
10113 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
10115 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10116 VALID_AVX256_REG_OR_OI_MODE.
10118 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
10120 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10121 current procedure should be profiled.
10123 2014-01-15 Andrew Pinski <apinski@cavium.com>
10125 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10126 of moving from/to the STACK_REG register class.
10128 2014-01-15 Richard Henderson <rth@redhat.com>
10131 * reginfo.c (global_regs_decl): Globalize.
10132 * rtl.h (global_regs_decl): Declare.
10133 * ira.c (do_reload): Diagnose frame_pointer_needed and it
10134 reserved via global_regs.
10136 2014-01-15 Teresa Johnson <tejohnson@google.com>
10138 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10140 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10142 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10143 and vmulosh rather than call gen_vec_widen_smult_*.
10144 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10145 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10146 (vec_widen_smult_even_v16qi): Likewise.
10147 (vec_widen_umult_even_v8hi): Likewise.
10148 (vec_widen_smult_even_v8hi): Likewise.
10149 (vec_widen_umult_odd_v16qi): Likewise.
10150 (vec_widen_smult_odd_v16qi): Likewise.
10151 (vec_widen_umult_odd_v8hi): Likewise.
10152 (vec_widen_smult_odd_v8hi): Likewise.
10153 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10154 vmuloub rather than call gen_vec_widen_umult_*.
10155 (vec_widen_umult_lo_v16qi): Likewise.
10156 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10157 vmulosb rather than call gen_vec_widen_smult_*.
10158 (vec_widen_smult_lo_v16qi): Likewise.
10159 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10160 rather than call gen_vec_widen_umult_*.
10161 (vec_widen_umult_lo_v8hi): Likewise.
10162 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10163 rather than call gen_vec_widen_smult_*.
10164 (vec_widen_smult_lo_v8hi): Likewise.
10166 2014-01-15 Jeff Law <law@redhat.com>
10168 PR tree-optimization/59747
10169 * ree.c (find_and_remove_re): Properly handle case where a second
10170 eliminated extension requires widening a copy created for elimination
10171 of a prior extension.
10172 (combine_set_extension): Ensure that the number of hard regs needed
10173 for a destination register does not change when we widen it.
10175 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
10177 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10178 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10179 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10180 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10181 (avr-*-rtems*): Likewise.
10182 (bfin*-rtems*): Likewise.
10183 (moxie-*-rtems*): Likewise.
10184 (h8300-*-rtems*): Likewise.
10185 (i[34567]86-*-rtems*): Likewise.
10186 (lm32-*-rtems*): Likewise.
10187 (m32r-*-rtems*): Likewise.
10188 (m68k-*-rtems*): Likewise.
10189 (microblaze*-*-rtems*): Likewise.
10190 (mips*-*-rtems*): Likewise.
10191 (powerpc-*-rtems*): Likewise.
10192 (sh-*-rtems*): Likewise.
10193 (sparc-*-rtems*): Likewise.
10194 (sparc64-*-rtems*): Likewise.
10195 (v850-*-rtems*): Likewise.
10196 (m32c-*-rtems*): Likewise.
10198 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
10200 PR rtl-optimization/59511
10201 * ira.c (ira_init_register_move_cost): Use memory costs for some
10202 cases of register move cost calculations.
10203 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10204 instead of BB frequency.
10205 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10206 * lra-assigns.c (find_hard_regno_for): Ditto.
10208 2014-01-15 Richard Biener <rguenther@suse.de>
10210 PR tree-optimization/59822
10211 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10212 (vectorizable_load): Use it to hoist defs of uses of invariant
10213 loads out of the loop.
10215 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10216 Kugan Vivekanandarajah <kuganv@linaro.org>
10219 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10222 2014-01-15 Richard Biener <rguenther@suse.de>
10224 PR rtl-optimization/59802
10225 * lcm.c (compute_available): Use inverted postorder to seed
10226 the initial worklist.
10228 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10231 * config/s390/s390.c (s390_preferred_reload_class): Don't return
10232 ADDR_REGS for invalid symrefs in non-PIC code.
10234 2014-01-15 Jakub Jelinek <jakub@redhat.com>
10237 * builtins.c (determine_block_size): Initialize *probable_max_size
10238 even if len_rtx is CONST_INT.
10240 2014-01-14 Andrew Pinski <apinski@cavium.com>
10242 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10243 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10244 (cortexa53_tunings): Likewise.
10245 (aarch64_sched_issue_rate): New function.
10246 (TARGET_SCHED_ISSUE_RATE): Define.
10248 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10250 * ira-costs.c (find_costs_and_classes): Add missed
10251 ira_init_register_move_cost_if_necessary.
10253 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10256 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10258 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
10261 * config/i386/i386.c (type_natural_mode): Add a bool parameter
10262 to indicate if type is used for function return value. Warn ABI
10263 change if the vector mode isn't available for function return value.
10264 (ix86_function_arg_advance): Pass false to type_natural_mode.
10265 (ix86_function_arg): Likewise.
10266 (ix86_gimplify_va_arg): Likewise.
10267 (function_arg_32): Don't warn ABI change.
10268 (ix86_function_value): Pass true to type_natural_mode.
10269 (ix86_return_in_memory): Likewise.
10270 (ix86_struct_value_rtx): Removed.
10271 (TARGET_STRUCT_VALUE_RTX): Likewise.
10273 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
10275 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10276 converting a conditional jump into a conditional return.
10278 2014-01-14 Richard Biener <rguenther@suse.de>
10280 PR tree-optimization/58921
10281 PR tree-optimization/59006
10282 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10283 hoisting invariant stmts.
10284 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10285 invariant loads on the preheader edge if possible.
10287 2014-01-14 Joey Ye <joey.ye@arm.com>
10289 * doc/plugin.texi (Building GCC plugins): Update to C++.
10291 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
10293 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10294 (_mm_rcp28_round_ss): Ditto.
10295 (_mm_rsqrt28_round_sd): Ditto.
10296 (_mm_rsqrt28_round_ss): Ditto.
10297 (_mm_rcp28_sd): Ditto.
10298 (_mm_rcp28_ss): Ditto.
10299 (_mm_rsqrt28_sd): Ditto.
10300 (_mm_rsqrt28_ss): Ditto.
10301 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10302 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10303 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10304 (IX86_BUILTIN_RCP28SD): Ditto.
10305 (IX86_BUILTIN_RCP28SS): Ditto.
10306 (IX86_BUILTIN_RSQRT28SD): Ditto.
10307 (IX86_BUILTIN_RSQRT28SS): Ditto.
10308 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10309 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10310 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10311 (ix86_expand_special_args_builtin): Expand new FTYPE.
10312 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10313 (srcp14<mode>): Make insn unary.
10314 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10315 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10316 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10317 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10318 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
10319 Fix rounding: make it SAE only.
10320 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
10322 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
10324 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
10325 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
10326 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
10327 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
10328 (round_saeonly_mask_scalar_operand4): Ditto.
10329 (round_saeonly_mask_scalar_op3): Ditto.
10330 (round_saeonly_mask_scalar_op4): Ditto.
10332 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10334 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10335 Implement -maltivec=be for vec_insert and vec_extract.
10337 2014-01-10 DJ Delorie <dj@redhat.com>
10339 * config/msp430/msp430.md (call_internal): Don't allow memory
10340 references with SP as the base register.
10341 (call_value_internal): Likewise.
10342 * config/msp430/constraints.md (Yc): New. For memory references
10343 that don't use SP as a base register.
10345 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
10346 "an integer without a # prefix"
10347 * config/msp430/msp430.md (epilogue_helper): Use it.
10349 2014-01-13 Jakub Jelinek <jakub@redhat.com>
10352 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
10353 AVX512F gather builtins.
10354 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
10355 on gather decls with INTEGER_TYPE masktype.
10356 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
10357 directly into the builtin rather than hoisting it before loop.
10359 PR tree-optimization/59387
10360 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
10361 (scev_const_prop): If folded_casts and type has undefined overflow,
10362 use force_gimple_operand instead of force_gimple_operand_gsi and
10363 for each added stmt if it is assign with
10364 arith_code_with_undefined_signed_overflow, call
10365 rewrite_to_defined_overflow.
10366 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
10367 gimple-fold.h instead.
10368 (arith_code_with_undefined_signed_overflow,
10369 rewrite_to_defined_overflow): Moved to ...
10370 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
10371 rewrite_to_defined_overflow): ... here. No longer static.
10372 Include gimplify-me.h.
10373 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
10374 rewrite_to_defined_overflow): New prototypes.
10376 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10378 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
10380 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
10382 * builtins.c (get_object_alignment_2): Minor tweak.
10383 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
10385 2014-01-13 Christian Bruel <christian.bruel@st.com>
10387 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
10388 optimized non constant lengths.
10390 2014-01-13 Jakub Jelinek <jakub@redhat.com>
10393 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
10394 load as __atomic_load_N if possible.
10396 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
10398 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
10400 (rs6000_expand_builtin): Adjust call.
10402 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
10405 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
10406 * config/rs6000/rs6000.c: Include target-globals.h.
10407 (rs6000_set_current_function): Instead of doing target_reinit
10408 unconditionally, use save_target_globals_default_opts and
10409 restore_target_globals.
10411 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
10413 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
10414 (rs6000_expand_builtin): Handle mffs and mtfsf.
10415 (rs6000_init_builtins): Define mffs and mtfsf.
10416 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
10417 (rs6000_mffs): New pattern.
10418 (rs6000_mtfsf): New pattern.
10420 2014-01-11 Bin Cheng <bin.cheng@arm.com>
10422 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
10423 Start narrowing with START. Apply candidate-use pair
10424 and check overall cost in narrowing.
10425 (iv_ca_prune): Pass new argument.
10427 2014-01-10 Jeff Law <law@redhat.com>
10429 PR middle-end/59743
10430 * ree.c (combine_reaching_defs): Ensure the defining statement
10431 occurs before the extension when optimizing extensions with
10432 different source and destination hard registers.
10434 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
10437 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
10438 vtables into the type inheritance graph.
10440 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10442 PR rtl-optimization/59754
10443 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
10444 modes in the REGNO != REGNO case.
10446 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10448 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
10450 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10452 PR tree-optimization/59745
10453 * tree-predcom.c (tree_predictive_commoning_loop): Call
10454 free_affine_expand_cache if giving up because components is NULL.
10456 * target-globals.c (save_target_globals): Allocate < 4KB structs using
10457 GC in payload of target_globals struct instead of allocating them on
10458 the heap and the larger structs separately using GC.
10459 * target-globals.h (struct target_globals): Make regs, hard_regs,
10460 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
10461 of GTY((skip)) and change type to void *.
10462 (reset_target_globals): Cast loads from those fields to corresponding
10465 2014-01-10 Steve Ellcey <sellcey@mips.com>
10468 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
10469 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
10470 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
10472 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
10475 * aarch64-modes.def (CC_Zmode): New flags mode.
10476 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
10477 represents an equality.
10478 (aarch64_get_condition_code): Handle CC_Zmode.
10479 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
10481 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10483 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
10484 extraction in good case.
10486 2014-01-10 Richard Biener <rguenther@suse.de>
10488 PR tree-optimization/59374
10489 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
10490 checking after SLP discovery. Mark stmts not participating
10491 in any SLP instance properly.
10493 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10495 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
10496 when handling a SET rtx.
10498 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10500 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
10501 (cortex-a57): Likewise.
10502 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
10504 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10506 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
10507 non-iwmmxt builtins.
10509 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
10513 * ipa-devirt.c record_target_from_binfo): Take as argument
10514 stack of binfos and lookup matching one for virtual inheritance.
10515 (possible_polymorphic_call_targets_1): Update.
10517 2014-01-10 Huacai Chen <chenhc@lemote.com>
10519 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
10520 kernel strings for Loongson-2E/2F/3A.
10522 2014-01-10 Jakub Jelinek <jakub@redhat.com>
10524 PR middle-end/59670
10525 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
10526 is_gimple_call before calling gimple_call_internal_p.
10528 2014-01-09 Steve Ellcey <sellcey@mips.com>
10530 * Makefile.in (TREE_FLOW_H): Remove.
10531 (TREE_SSA_H): Add file names from tree-flow.h.
10532 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
10533 * tree.h: Remove tree-flow.h reference.
10534 * hash-table.h: Remove tree-flow.h reference.
10535 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
10536 reference with tree-ssa-loop.h.
10538 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10540 * doc/invoke.texi: Add -maltivec={be,le} options, and document
10541 default element-order behavior for -maltivec.
10542 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
10543 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
10544 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
10545 when targeting big endian, at least for now.
10546 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
10548 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10550 PR middle-end/47735
10551 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
10552 var satisfies use_register_for_decl, just take into account type
10553 alignment, rather than decl alignment.
10555 PR tree-optimization/59622
10556 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
10557 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
10558 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
10559 Don't devirtualize for inplace at all. For targets.length () == 1,
10560 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
10562 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
10564 * config/i386/i386.md (cpu): Remove the unused btver1.
10566 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
10568 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
10570 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10573 * tree-core.h (struct target_globals): New forward declaration.
10574 (struct tree_target_option): Add globals field.
10575 * tree.h (TREE_TARGET_GLOBALS): Define.
10576 (prepare_target_option_nodes_for_pch): New prototype.
10577 * target-globals.h (struct target_globals): Define even if
10578 !SWITCHABLE_TARGET.
10579 * tree.c (prepare_target_option_node_for_pch,
10580 prepare_target_option_nodes_for_pch): New functions.
10581 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
10582 * config/i386/i386.c: Include target-globals.h.
10583 (ix86_set_current_function): Instead of doing target_reinit
10584 unconditionally, use save_target_globals_default_opts and
10585 restore_target_globals.
10587 2014-01-09 Richard Biener <rguenther@suse.de>
10589 PR tree-optimization/59715
10590 * tree-cfg.h (split_critical_edges): Declare.
10591 * tree-cfg.c (split_critical_edges): Export.
10592 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
10594 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
10596 * cfgexpand.c (expand_stack_vars): Optionally disable
10597 asan stack protection.
10598 (expand_used_vars): Likewise.
10599 (partition_stack_vars): Likewise.
10600 * asan.c (asan_emit_stack_protection): Optionally disable
10601 after return stack usage.
10602 (instrument_derefs): Optionally disable memory access instrumentation.
10603 (instrument_builtin_call): Likewise.
10604 (instrument_strlen_call): Likewise.
10605 (asan_protect_global): Optionally disable global variables protection.
10606 * doc/invoke.texi: Added doc for new options.
10607 * params.def: Added new options.
10608 * params.h: Likewise.
10610 2014-01-09 Jakub Jelinek <jakub@redhat.com>
10612 PR rtl-optimization/59724
10613 * ifcvt.c (cond_exec_process_if_block): Don't call
10614 flow_find_head_matching_sequence with 0 longest_match.
10615 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
10616 non-active insns if !stop_after.
10617 (try_head_merge_bb): Revert 2014-01-07 changes.
10619 2014-01-08 Jeff Law <law@redhat.com>
10621 * ree.c (get_sub_rtx): New function, extracted from...
10622 (merge_def_and_ext): Here.
10623 (combine_reaching_defs): Use get_sub_rtx.
10625 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
10627 * cgraph.h (varpool_variable_node): Do not choke on null node.
10629 2014-01-08 Catherine Moore <clm@codesourcery.com>
10631 * config/mips/mips.md (simple_return): Attempt to use JRC
10633 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
10635 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
10637 PR rtl-optimization/59137
10638 * reorg.c (steal_delay_list_from_target): Call update_block for
10640 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
10642 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10644 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10645 two duplicate entries.
10647 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
10650 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
10652 * config/mips/mips.c (mips_truncated_op_cost): New function.
10653 (mips_rtx_costs): Adjust test for BADDU.
10654 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10656 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
10658 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10659 (*baddu_si): ...this new pattern.
10661 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10664 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10666 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
10668 PR middle-end/57748
10669 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10671 (expand_expr, expand_normal): Adjust.
10672 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10673 inner_reference_p. Use inner_reference_p to expand inner references.
10674 (store_expr): Adjust.
10675 * cfgexpand.c (expand_call_stmt): Adjust.
10677 2014-01-08 Rong Xu <xur@google.com>
10679 * gcov-io.c (gcov_var): Move from gcov-io.h.
10680 (gcov_position): Ditto.
10681 (gcov_is_error): Ditto.
10682 (gcov_rewrite): Ditto.
10683 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10684 only part to libgcc/libgcov.h.
10686 2014-01-08 Marek Polacek <polacek@redhat.com>
10688 PR middle-end/59669
10689 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10691 2014-01-08 Marek Polacek <polacek@redhat.com>
10694 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10696 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10698 PR rtl-optimization/59649
10699 * stor-layout.c (get_mode_bounds): For BImode return
10700 0 and STORE_FLAG_VALUE.
10702 2014-01-08 Richard Biener <rguenther@suse.de>
10704 PR middle-end/59630
10705 * gimple.h (is_gimple_builtin_call): Remove.
10706 (gimple_builtin_call_types_compatible_p): New.
10707 (gimple_call_builtin_p): New overload.
10708 * gimple.c (is_gimple_builtin_call): Remove.
10709 (validate_call): Rename to ...
10710 (gimple_builtin_call_types_compatible_p): ... this and export. Also
10711 check return types.
10712 (validate_type): New static function.
10713 (gimple_call_builtin_p): New overload and adjust.
10714 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10715 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
10716 (gimple_fold_stmt_to_constant_1): Likewise.
10717 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10719 2014-01-08 Richard Biener <rguenther@suse.de>
10721 PR middle-end/59471
10722 * gimplify.c (gimplify_expr): Gimplify register-register type
10723 VIEW_CONVERT_EXPRs to separate stmts.
10725 2014-01-07 Jeff Law <law@redhat.com>
10727 PR middle-end/53623
10728 * ree.c (combine_set_extension): Handle case where source
10729 and destination registers in an extension insn are different.
10730 (combine_reaching_defs): Allow source and destination registers
10731 in extension to be different under limited circumstances.
10732 (add_removable_extension): Remove restriction that the
10733 source and destination registers in the extension are the same.
10734 (find_and_remove_re): Emit a copy from the extension's
10735 destination to its source after the defining insn if
10736 the source and destination registers are different.
10738 PR middle-end/59285
10739 * ifcvt.c (merge_if_block): If we are merging a block with more than
10740 one successor with a block with no successors, remove any BARRIER
10741 after the second block.
10743 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
10745 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10747 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
10750 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10751 for 14-bit register offsets when INT14_OK_STRICT is false.
10753 2014-01-07 Roland Stigge <stigge@antcom.de>
10754 Michael Meissner <meissner@linux.vnet.ibm.com>
10757 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10758 Only check TFmode for SPE constants. Don't check TImode or TDmode.
10760 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
10762 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10765 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
10767 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10768 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10769 rtx is const0_rtx or not.
10771 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
10774 * target-globals.c (save_target_globals): Remove this_fn_optab
10776 * toplev.c: Include optabs.h.
10777 (target_reinit): Temporarily restore the global options if another
10778 set of options are in force.
10780 2014-01-07 Jakub Jelinek <jakub@redhat.com>
10782 PR rtl-optimization/58668
10783 * cfgcleanup.c (flow_find_cross_jump): Don't count
10784 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
10785 to determine what is counted.
10786 (flow_find_head_matching_sequence): Use active_insn_p to determine
10788 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10790 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10791 determine what is counted.
10793 PR tree-optimization/59643
10794 * tree-predcom.c (split_data_refs_to_components): If one dr is
10795 read and one write, determine_offset fails and the write isn't
10796 in the bad component, just put the read into the bad component.
10798 2014-01-07 Mike Stump <mikestump@comcast.net>
10799 Jakub Jelinek <jakub@redhat.com>
10802 * tree-core.h (struct tree_optimization_option): Change optabs
10803 type from unsigned char * to void *.
10804 * optabs.c (init_tree_optimization_optabs): Adjust
10805 TREE_OPTIMIZATION_OPTABS initialization.
10807 2014-01-06 Jakub Jelinek <jakub@redhat.com>
10810 * config/i386/i386.h (struct machine_function): Add
10811 no_drap_save_restore field.
10812 * config/i386/i386.c (ix86_save_reg): Use
10813 !cfun->machine->no_drap_save_restore instead of
10814 crtl->stack_realign_needed.
10815 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10816 this function clears frame_pointer_needed. Set
10817 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10818 and DRAP reg is needed.
10820 2014-01-06 Marek Polacek <polacek@redhat.com>
10823 * doc/implement-c.texi: Mention that other integer types are
10824 permitted as bit-field types in strictly conforming mode.
10826 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
10828 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10829 is newly allocated.
10831 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
10833 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10835 2014-01-06 Martin Jambor <mjambor@suse.cz>
10838 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10840 * ipa-prop.c (ipa_print_node_params): Fix indentation.
10842 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
10846 * var-tracking.c (add_stores): Preserve the value of the source even if
10847 we don't record the store.
10849 2014-01-06 Terry Guo <terry.guo@arm.com>
10851 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10853 2014-01-05 Iain Sandoe <iain@codesourcery.com>
10856 * config/darwin.c (darwin_function_section): Adjust return values to
10857 correspond to optimisation changes made in r206070.
10859 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
10861 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10862 from prefetch_block tune setting.
10863 (nocona_cost): Correct size of prefetch block to 64.
10865 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
10867 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10868 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10869 used to save the static chain register in the computation of the offset
10870 from which the FP registers need to be restored.
10872 2014-01-04 Jakub Jelinek <jakub@redhat.com>
10874 PR tree-optimization/59519
10875 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10876 ICE if get_current_def (current_new_name) is already non-NULL, as long
10877 as it is a phi result of some other phi in *new_exit_bb that has
10880 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10881 or vmovdqu* for misaligned_operand.
10882 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10883 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10884 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10885 aligned_mem for AVX512F masked aligned load and store builtins and for
10886 non-temporal moves.
10888 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
10890 PR tree-optimization/59651
10891 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10892 Address range for negative step should be added by TYPE_SIZE_UNIT.
10894 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
10896 * config/m68k/m68k.c (handle_move_double): Handle pushes with
10897 overlapping registers also for registers other than the stack pointer.
10899 2014-01-03 Marek Polacek <polacek@redhat.com>
10902 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10905 2014-01-03 Jakub Jelinek <jakub@redhat.com>
10908 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10911 * config/i386/i386.md (MODE_SIZE): New mode attribute.
10912 (push splitter): Use <P:MODE_SIZE> instead of
10913 GET_MODE_SIZE (<P:MODE>mode).
10914 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10915 (mov -1, reg peephole2): Likewise.
10916 * config/i386/sse.md (*mov<mode>_internal,
10917 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10918 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10919 *<code><mode>3, *andnot<mode>3<mask_name>,
10920 <mask_codefor><code><mode>3<mask_name>): Likewise.
10921 * config/i386/subst.md (mask_mode512bit_condition,
10922 sd_mask_mode512bit_condition): Likewise.
10924 2014-01-02 Xinliang David Li <davidxl@google.com>
10926 PR tree-optimization/59303
10927 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
10928 (dump_predicates): Better output format.
10929 (pred_equal_p): New function.
10930 (is_neq_relop_p): Ditto.
10931 (is_neq_zero_form_p): Ditto.
10932 (pred_expr_equal_p): Ditto.
10933 (pred_neg_p): Ditto.
10934 (simplify_pred): Ditto.
10935 (simplify_preds_2): Ditto.
10936 (simplify_preds_3): Ditto.
10937 (simplify_preds_4): Ditto.
10938 (simplify_preds): Ditto.
10939 (push_pred): Ditto.
10940 (push_to_worklist): Ditto.
10941 (get_pred_info_from_cmp): Ditto.
10942 (is_degenerated_phi): Ditto.
10943 (normalize_one_pred_1): Ditto.
10944 (normalize_one_pred): Ditto.
10945 (normalize_one_pred_chain): Ditto.
10946 (normalize_preds): Ditto.
10947 (normalize_cond_1): Remove function.
10948 (normalize_cond): Ditto.
10949 (is_gcond_subset_of): Ditto.
10950 (is_subset_of_any): Ditto.
10951 (is_or_set_subset_of): Ditto.
10952 (is_and_set_subset_of): Ditto.
10953 (is_norm_cond_subset_of): Ditto.
10954 (pred_chain_length_cmp): Ditto.
10955 (convert_control_dep_chain_into_preds): Type change.
10956 (find_predicates): Ditto.
10957 (find_def_preds): Ditto.
10958 (destroy_predicates_vecs): Ditto.
10959 (find_matching_predicates_in_rest_chains): Ditto.
10960 (use_pred_not_overlap_with_undef_path_pred): Ditto.
10961 (is_pred_expr_subset): Ditto.
10962 (is_pred_chain_subset_of): Ditto.
10963 (is_included_in): Ditto.
10964 (is_superset_of): Ditto.
10966 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10968 Update copyright years.
10970 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10972 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
10973 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10974 config/arc/arc.md, config/arc/arc.opt,
10975 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
10976 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
10977 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
10978 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
10979 config/linux-protos.h, config/linux.c, config/winnt-c.c,
10980 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
10981 vtable-verify.c, vtable-verify.h: Use the standard form for the
10984 2014-01-02 Tobias Burnus <burnus@net-b.de>
10986 * gcc.c (process_command): Update copyright notice dates.
10987 * gcov-dump.c: Ditto.
10989 * doc/cpp.texi: Bump @copying's copyright year.
10990 * doc/cppinternals.texi: Ditto.
10991 * doc/gcc.texi: Ditto.
10992 * doc/gccint.texi: Ditto.
10993 * doc/gcov.texi: Ditto.
10994 * doc/install.texi: Ditto.
10995 * doc/invoke.texi: Ditto.
10997 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10999 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
11001 2014-01-01 Jakub Jelinek <jakub@redhat.com>
11003 * config/i386/sse.md (*mov<mode>_internal): Guard
11004 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
11006 PR rtl-optimization/59647
11007 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
11008 new_rtx into UNSIGNED_FLOAT rtxes.
11010 Copyright (C) 2014 Free Software Foundation, Inc.
11012 Copying and distribution of this file, with or without modification,
11013 are permitted in any medium without royalty provided the copyright
11014 notice and this notice are preserved.