2015-04-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / ChangeLog
blob8bbaeb39cf3d7c2bae0fb1ab34b9286f767288f1
1 2015-04-07  Richard Biener  <rguenther@suse.de>
3         Backport from mainline
4         2015-04-04  Richard Biener  <rguenther@suse.de>
6         PR tree-optimization/64909
7         PR tree-optimization/65660
8         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
9         to take a cost vector for scalar iteration cost.
10         (vect_get_single_scalar_iteration_cost): Likewise.
11         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
12         Compute the scalar iteration cost into a cost vector.
13         (vect_get_known_peeling_cost): Use the scalar cost vector to
14         account for the cost of the peeled iterations.
15         (vect_estimate_min_profitable_iters): Likewise.
16         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
17         Likewise.
19 2015-04-05  Yvan Roux  <yvan.roux@linaro.org>
21         Backport from trunk r221867
22         2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
24         PR target/65647
25         * lra.c (lra): Stop updating lra_constraint_new_regno_start after
26         switching off inheritance.
28 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
30         * config/pa/pa.c (pa_output_move_double): Directly handle register
31         indexed memory operand.  Simplify handling of scaled register indexed
32         memory operands.
34 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
37         nested functions.
38         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
39         (s390_asm_output_function_label): Adapt to new signature of
40         s390_function_num_hotpatch_hw
41         Optimise the code generating assembler output.
42         Add comments to assembler file.
44 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
46         Backport from mainline
47         2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
49         PR target/64688
50         * lra-constraints.c (original_subreg_reg_mode): New.
51         (simplify_operand_subreg): Try to simplify subreg of const.  Use
52         original_subreg_reg_mode for it.
53         (swap_operands): Update original_subreg_reg_mode.
54         (curr_insn_transform): Set up original_subreg_reg_mode.
56 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
58         PR target/65561
59         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
60         Check operand 6 and operand 0 for equality.
61         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
62         for equality.
63         (vec_extract_hi_<mode>_maskm): Ditto.
65 2015-03-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
67         Backport of r214242, r214254, and bug fix patches from mainline
68         * config/rs6000/rs6000.c (context.h): New #include.
69         (tree-pass.h): Likewise.
70         (make_pass_analyze_swaps): New declaration.
71         (rs6000_option_override): Register swap-optimization pass.
72         (swap_web_entry): New class.
73         (special_handling_values): New enum.
74         (union_defs): New function.
75         (union_uses): Likewise.
76         (insn_is_load_p): Likewise.
77         (insn_is_store_p): Likewise.
78         (insn_is_swap_p): Likewise.
79         (rtx_is_swappable_p): Likewise.
80         (insn_is_swappable_p): Likewise.
81         (chain_purpose): New enum.
82         (chain_contains_only_swaps): New function.
83         (mark_swaps_for_removal): Likewise.
84         (swap_const_vector_halves): Likewise.
85         (adjust_subreg_index): Likewise.
86         (permute_load): Likewise.
87         (permute_store): Likewise.
88         (adjust_extract): Likewise.
89         (adjust_splat): Likewise.
90         (handle_special_swappables): Likewise.
91         (replace_swap_with_copy): Likewise.
92         (dump_swap_insn_table): Likewise.
93         (rs6000_analyze_swaps): Likewise.
94         (pass_data_analyze_swaps): New pass_data.
95         (pass_analyze_swaps): New class.
96         (pass_analyze_swaps::gate): New method.
97         (pass_analyze_swaps::execute): New method.
98         (make_pass_analyze_swaps): New function.
99         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
100         * df.h (web_entry_base): New class, replacing struct web_entry.
101         (web_entry_base::pred): New method.
102         (web_entry_base::set_pred): Likewise.
103         (web_entry_base::unionfind_root): Likewise.
104         (web_entry_base::unionfind_union): Likewise.
105         (unionfind_root): Delete external reference.
106         (unionfind_union): Likewise.
107         (union_defs): Likewise.
108         * web.c (web_entry_base::unionfind_root): Convert to method.
109         (web_entry_base::unionfind_union): Likewise.
110         (web_entry): New class.
111         (union_match_dups): Convert to use class structure.
112         (union_defs): Likewise.
113         (entry_register): Likewise.
114         (web_main): Likewise.
116 2015-03-26  Alan Modra  <amodra@gmail.com>
118         PR target/63150
119         Backport from trunk 211857 and 221445.
120         2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
121         * config/rs6000/rs6000.md: Append `DONE' to preparation
122         statements of `bswap' pattern splitters.
124         2015-03-16  Alan Modra  <amodra@gmail.com>
125         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
126         Modify Z->r bswapdi splitter to use dest in place of scratch.
127         In r->Z and Z->r bswapdi splitter rename word_high, word_low
128         to word1, word2 and rearrange logic to suit.
129         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
130         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
131         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
132         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
133         early clobber.
135 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
137         Backport from mainline
138         2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
140         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
142 2015-03-24  Uros Bizjak  <ubizjak@gmail.com>
144         PR rtl-optimization/60851
145         * recog.c (constrain_operands): Accept a pseudo register before reload
146         for LRA enabled targets.
148 2015-03-23  Yvan Roux  <yvan.roux@linaro.org>
150         Backport from trunk r220616.
151         2015-02-11  Martin Liska  <mliska@suse.cz>
153         PR ipa/64813
154         * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
155         value for call to a function that is noreturn.
157 2015-03-23  Yvan Roux  <yvan.roux@linaro.org>
159         Backport from trunk r216841.
160         2014-10-29  Martin Liska  <mliska@suse.cz>
162         PR ipa/63587
163         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
164         to local declarations.
165         * function.c (add_local_decl): Implementation moved from header file,
166         assert introduced for tree type.
167         * function.h: Likewise.
169 2015-03-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
171         Backport from mainline
172         2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
174         PR rtl-optimization/65235
175         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
176         When first element of vec_concat is const_int, calculate its size
177         using second element.
179 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
181         PR middle-end/65409
182         * expr.c (store_field): Do not do a direct block copy if the source is
183         a PARALLEL with BLKmode.
185 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
187         Backport from mainline
188         * config/s390/s390.c (s390_reorg): Move code to output nops after label
189         to s390_reorg ().
190         (s390_asm_output_function_label): Likewise.
191         * config/s390/s390.c (s390_asm_output_function_label):
192         Fix function label alignment with -mhtopatch.
193         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
194         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
195         ("nop_2_byte"): New define_insn.
196         ("nop_4_byte"): Likewise.
197         ("nop_6_byte"): Likewise.
198         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
199         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
201 2015-03-12  Marek Polacek  <polacek@redhat.com>
203         Backported from mainline
204         2015-03-11  Marek Polacek  <polacek@redhat.com>
206         PR tree-optimization/65388
207         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
209 2015-03-11  Georg-Johann Lay  <avr@gjlay.de>
211         PR target/65296
212         * configure.ac [avr]: Check as for option -mrmw.
213         * configure: Regenerate.
214         * config.in: Regenerate.
215         * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to
216         assembler options if not HAVE_AS_AVR_MRMW_OPTION.
218 2015-03-11  Marek Polacek  <polacek@redhat.com>
220         Backported from mainline
221         2014-12-04  Marek Polacek  <polacek@redhat.com>
223         PR middle-end/56917
224         * fold-const.c (fold_unary_loc): Perform the negation in A's type
225         when transforming ~ (A - 1) or ~ (A + -1) to -A.
227 2015-03-10  Yvan Roux  <yvan.roux@linaro.org>
229         Backport from trunk r220489.
230         2015-02-06  Jakub Jelinek  <jakub@redhat.com>
232         PR ipa/64896
233         * cgraphunit.c (cgraph_node::expand_thunk): If
234         restype is not is_gimple_reg_type nor the thunk_fndecl
235         returns aggregate_value_p, set restmp to a temporary variable
236         instead of resdecl.
238 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
240         PR target/65286
241         * config/rs6000/t-linux: For powerpc64* target set
242         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
244 2015-03-10  Oleg Endo  <olegendo@gcc.gnu.org>
246         PR target/53988
247         * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
249 2015-03-10  Alan Modra  <amodra@gmail.com>
251         PR target/65286
252         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
253         to be single-arch by default.  Set cpu_is_64bit for powerpc64
254         given --with-cpu=native.
255         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
256         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
257         and powerpc64le.
258         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
259         rs6000_isa_flags rather than TARGET_64BIT.
261 2015-03-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
263         Backport from trunk
264         2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
266         PR 65138/target
267         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
268         processor type for 64-bit little endian PowerPC.
270         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
271         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
272         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
273         printing built-in mask so it does not pass NULL pointers.
275         * config/rs6000/rs6000-tables.opt: Regenerate.
277         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
278         -mcpu=powerpc64le.
280         Backport from trunk
281         2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
283         * config/rs6000/default64.h: Include rs6000-cpus.def.
284         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
285         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
286         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
287         and POWER8.
288         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
289         POWER8.
290         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
291         pseudo-op to specify assembler dialect.
293 2015-03-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
295         Backport from mainline
296         2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
298         PR target/59593
299         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
300         based on mode size.
301         * config/arm/arm.md (consttable_1): Make it TARGET_EITHER.
302         (consttable_2): Make it TARGET_EITHER and move HFmode handling from
303         consttable_4 to it.
304         (consttable_4): Move HFmode handling to consttable_2 pattern.
306 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
308         PR target/65249
309         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
310         called for __stack_chk_guard symbol.
312 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
314         PR target/64331
315         * config/avr/avr.c (context.h, tree-pass.h): Include them.
316         (avr_pass_data_recompute_notes): New static variable.
317         (avr_pass_recompute_notes): New class.
318         (avr_register_passes): New static function.
319         (avr_option_override): Call it.
321 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
323         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
324         to create a register in testing mode.
326 2015-03-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
328         Backport from mainline
329         2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
331         PR target/64453
332         * config/arm/arm.c (callee_saved_reg_p): Define.
333         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
334         register is callee saved instead of !call_used_regs[reg].
335         (thumb1_compute_save_reg_mask): Likewise.
337 2015-02-27  Richard Biener  <rguenther@suse.de>
339         PR middle-end/63175
340         * builtins.c (get_object_alignment_2): Make sure to re-apply
341         the ANDed mask after recursing to its operand gets us a new
342         misalignment bit position.
344 2015-02-27  Andrew Pinski  <apinski@cavium.com>
345             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
347         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
348         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
350 2015-02-27  Richard Biener  <rguenther@suse.de>
352         PR lto/65193
353         Backport from mainline
354         2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
356         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
357         as non-indexable.
359 2015-02-25  Peter Bergner  <bergner@vnet.ibm.com>
361         Backport from mainline
362         2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
364         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
366 2015-02-26  Matthew Fortune  <matthew.fortune@imgtec.com>
368         PR target/64569
369         Backported from mainline: r213872, r217446, r217939, r219867
371         * config.in [!USED_FOR_TARGET] (HAVE_AS_DOT_MODULE): Undefine.
372         * config/mips/mips.h (FP_ASM_SPEC): New macro.
373         (ASM_SPEC): Use FP_ASM_SPEC.
374         * configure.ac (HAVE_AS_DOT_MODULE): Detect support for .module
375         and FPXX extensions.
376         * configure: Regenerate.
378 2015-02-25  Jason Merrill  <jason@redhat.com>
380         * common.opt (-flifetime-dse): New.
382 2015-02-25  Kai Tietz  <ktietz@redhat.com>
384         PR tree-optimization/61917
385         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
386         that reduc_def_stmt is null.
388         Merged from mainline
389         PR target/64212
390         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
391         (symtab::noninterposable_alias): Likewise.
393 2015-02-25  Richard Biener  <rguenther@suse.de>
394         Kai Tietz  <ktietz@redhat.com>
396         Backported from mainline
397         PR tree-optimization/61917
398         * tree-vect-loop.c (vectorizable_reduction): Allow
399         vect_internal_def without reduction to exit graceful.
401 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
403         PR target/65196
404         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
405         only with NONDEBUG_INSN_P.
407 2015-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
409         Backport from mainline
410         2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
412         PR target/65153
413         * config/sh/sh.md (movsicc_true+3): Remove peephole.
414         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
415         * config/sh/sh.c (replace_n_hard_rtx): Remove.
417 2015-02-24  Richard Biener  <rguenther@suse.de>
419         Backport from mainline
420         2015-02-11  Richard Biener  <rguenther@suse.de>
422         PR lto/65015
423         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
424         and -fresolution.
426         2015-02-13  Richard Biener  <rguenther@suse.de>
428         PR lto/65015
429         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
430         for LTO produced CUs.
432         2015-02-16  Richard Biener  <rguenther@suse.de>
434         PR lto/65015
435         * varasm.c (default_file_start): For LTO produced units
436         emit <artificial> as file directive.
438         2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
440         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
442 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
444         Backport from mainline
445         2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
447         PR target/65163
448         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
449         instead of const_int 4294901760.
451 2015-02-23  Richard Biener  <rguenther@suse.de>
453         Backport from mainline
454         2014-11-19  Richard Biener  <rguenther@suse.de>
456         PR tree-optimization/63844
457         * omp-low.c (fixup_child_record_type): Use a restrict qualified
458         referece type for the receiver parameter.
460         2014-11-27  Richard Biener  <rguenther@suse.de>
462         PR tree-optimization/61634
463         * tree-vect-slp.c: Include gimple-walk.h.
464         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
465         down the SLP tree for one scalar statement.
466         (vect_detect_hybrid_slp_1): New walker function.
467         (vect_detect_hybrid_slp_2): Likewise.
468         (vect_detect_hybrid_slp): Properly handle pattern statements
469         in a pre-scan over all loop stmts.
471         2015-01-14  Richard Biener  <rguenther@suse.de>
473         PR tree-optimization/59354
474         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
475         groups larger than the slp group size as having gaps.
477         2015-02-10  Richard Biener  <rguenther@suse.de>
479         PR tree-optimization/64909
480         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
481         pass a scalar-stmt count estimate to the cost model.
482         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
484 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
486         Backport from mainline
487         2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
489         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
490         Mark operand 0 as earlyclobber in 2nd alternative.
491         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
492         Write negated shift amount into QI lowpart operand 0 and use it
493         in the shift step.
494         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
496 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
498         Backport from 2015-02-20 trunk r220847.
500         PR target/64452
501         * config/avr/avr.md (pushhi_insn): New insn.
502         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
504 2015-02-20  Richard Biener  <rguenther@suse.de>
506         Backport from mainline
507         2015-01-12  Richard Biener  <rguenther@suse.de>
509         PR tree-optimization/64530
510         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
511         back dr1.
513         2015-02-13  Richard Biener  <rguenther@suse.de>
515         PR lto/64373
516         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
517         DECL_CONTEXT.
519         2015-02-16  Richard Biener  <rguenther@suse.de>
521         PR tree-optimization/63593
522         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
523         stmts and releasing SSA names until...
524         (execute_pred_commoning): ... after processing all chains.
526         2015-02-18  Richard Biener  <rguenther@suse.de>
528         PR tree-optimization/65063
529         * tree-predcom.c (determine_unroll_factor): Return 1 if we
530         have replaced looparound PHIs.
532 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
534         * config/pa/pa.c (pa_reloc_rw_mask): New function.
535         (TARGET_ASM_RELOC_RW_MASK): Define.
536         (pa_cannot_force_const_mem): Revert previous change.
538 2015-02-19  Richard Biener  <rguenther@suse.de>
540         Backport from mainline
541         2014-12-09  Richard Biener  <rguenther@suse.de>
543         PR middle-end/64199
544         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
546         2015-01-14  Richard Biener  <rguenther@suse.de>
548         PR tree-optimization/64493
549         PR tree-optimization/64495
550         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
551         assign the proper vectorized PHI to the inner loop exit PHIs.
553         2015-01-27  Richard Biener  <rguenther@suse.de>
555         PR tree-optimization/56273
556         PR tree-optimization/59124
557         PR tree-optimization/64277
558         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
559         from the first VRP pass.
561         2015-02-19  Richard Biener  <rguenther@suse.de>
563         Backport from mainline
564         2015-01-15  Richard Biener  <rguenther@suse.de>
566         PR middle-end/64365
567         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
568         for MEM_REF access functions with the same base can never partially
569         overlap.
571 2015-02-17  Ilya Tocar  <ilya.tocar@intel.com>
573         Backported from mainline
574         2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
576         PR target/64387
577         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
578         (vec_unpacks_hi_v16sf): Ditto.
580 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
582         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
583         for all floading point loads and stores except those using a register
584         index address.
585         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
586         to a register.
588 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
590         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
591         constraints.
592         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
593         symbolic references to data to be forced to constant memory on the
594         SOM target.
596 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
598         Backported from mainline
599         2015-02-09  Jakub Jelinek  <jakub@redhat.com>
601         PR target/64979
602         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
603         va_list escapes.
605 2015-02-11  Uros Bizjak  <ubizjak@gmail.com>
607         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
608         and 3 earlyclobber operands.
610 2015-02-09  Dominik Vogt  <vogt@linux.vnet.ibm.com>
612         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
613         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
614         -mhotpatch= option.
615         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
616         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
617         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
618         Renamed.
619         (s390_hotpatch_trampoline_halfwords_max): Renamed.
620         (s390_hotpatch_hw_max): New name.
621         (s390_hotpatch_trampoline_halfwords): Renamed.
622         (s390_hotpatch_hw_before_label): New name.
623         (get_hotpatch_attribute): Removed.
624         (s390_hotpatch_hw_after_label): New name.
625         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
626         attribute.
627         (s390_attribute_table): Ditto.
628         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
629         (s390_function_num_hotpatch_hw): New name.
630         Remove special handling of inline functions and hotpatching.
631         Return number of nops before and after the function label.
632         (s390_can_inline_p): Removed.
633         (s390_asm_output_function_label): Emit a configurable number of nops
634         after the function label.
635         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
636         (TARGET_CAN_INLINE_P) Removed.
637         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
639 2015-02-05  Segher Boessenkool  <segher@kernel.crashing.org>
641         PR target/64580
642         Backport from mainline
643         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
644         (rs6000_stack_info): Add assert.
645         (rs6000_output_savres_externs): New function, split off from...
646         (rs6000_output_function_prologue): ... here.  Do not call it for
647         thunks.
649 2015-02-04  Matthias Klose  <doko@ubuntu.com>
651         PR target/64938
652         Backport from mainline
653         2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
655         PR ipa/64068
656         PR ipa/64559
657         * ipa.c (symbol_table::remove_unreachable_nodes):
658         Do not put abstract origins into boundary.
660 2015-02-04  Uros Bizjak  <ubizjak@gmail.com>
662         Backport from mainline
663         2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
665         PR target/64882
666         * config/i386/predicates.md (address_no_seg_operand): Reject
667         non-CONST_INT_P operands in invalid mode.
669         Backport from mainline
670         2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
672         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
673         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
674         * config/i386/predicates.md (address_no_seg_operand): Call
675         address_operand with VOIDmode.
676         (vsib_address_operand): Ditto.
678 2015-02-01  H.J. Lu  <hongjiu.lu@intel.com>
680         Backported from mainline
681         2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
683         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
684         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
685         * config/i386/i386.c (processor_model): Add
686         M_INTEL_COREI7_BROADWELL.
687         (arch_names_table): Add "broadwell".
689 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
691         Backported from mainline
692         2015-01-27  Jakub Jelinek  <jakub@redhat.com>
694         PR rtl-optimization/61058
695         * jump.c (cleanup_barriers): Update basic block boundaries
696         if BLOCK_FOR_INSN is non-NULL on PREV.
698         2015-01-26  Jakub Jelinek  <jakub@redhat.com>
700         PR middle-end/64421
701         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
702         with asterisk, skip the first character.
704         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
705         OPTION_MASK_QUAD_MEMORY_ATOMIC.
707         2015-01-23  Jakub Jelinek  <jakub@redhat.com>
709         PR rtl-optimization/63637
710         PR rtl-optimization/60663
711         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
712         if elt->cost is MAX_COST for ASM_OPERANDS.
713         (find_sets_in_insn): Fix up comment typo.
714         (cse_insn): Don't set src_volatile for all non-volatile
715         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
716         or with "memory" clobber.  Set elt->cost to MAX_COST
717         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
718         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
720         PR debug/64511
721         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
722         GTY markup.
724         2015-01-20  Jakub Jelinek  <jakub@redhat.com>
726         PR debug/64663
727         * dwarf2out.c (decl_piece_node): Don't put bitsize into
728         mode if bitsize <= 0.
729         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
730         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
731         sizes and positions.
733 2015-01-29  Ilya Tocar  <ilya.tocar@intel.com>
735         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
736         _mm256_bsrli_epi128): New.
737         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
739 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
741         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
742         memory accesses.
744 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
746         * config/s390/s390.c (s390_register_move_cost): Increase costs for
747         FPR->GPR moves.
749 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
751         Backport from mainline
752         2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
754         PR target/64795
755         * config/i386/i386.md (*movdi_internal): Also check operand 0
756         to determine TYPE_LEA operand.
757         (*movsi_internal): Ditto.
759         Backport from mainline
760         2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
762         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
763         alternative 1.
765 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
767         PR middle-end/64734
768         * omp-low.c (scan_sharing_clauses): Don't ignore
769         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
770         on target data/update constructs.
772 2015-01-23  Wei Mi  <wmi@google.com>
774         Backported from trunk.
775         2015-01-22  Wei Mi  <wmi@google.com>
777         PR rtl-optimization/64557
778         * dse.c (record_store): Call get_addr for mem_addr.
779         (check_mem_read_rtx): Likewise.
781 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
783         * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
784         "or".
786 2015-01-21  Wei Mi  <wmi@google.com>
788         Backported from trunk.
789         2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
791         PR ipa/63970
792         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
793         as having abstract origin used.
794         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
795         origin check.
796         (clone_inlined_nodes): Copy abstract originflag.
797         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
798         abstract origin node.
800 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
802         Backport from mainline
803         * config/nios2/nios2.c (nios2_asm_file_end): Implement
804         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
805         needed.
806         (TARGET_ASM_FILE_END): Define.
808 2015-01-15  Martin Liska  <mliska@suse.cz>
810         Backport from mainline
811         2014-11-27  Richard Biener  <rguenther@suse.de>
813         PR middle-end/63704
814         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
815         and instead return false when !fstrict-aliasing.
817 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
819         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
820         set the memory attributes in all cases but clear MEM_EXPR if need be.
822 2015-01-14  Jakub Jelinek  <jakub@redhat.com>
824         Backported from mainline
825         2015-01-12  Jakub Jelinek  <jakub@redhat.com>
827         PR target/64513
828         * config/i386/i386.c (ix86_expand_prologue): Add
829         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
831         2015-01-13  Jakub Jelinek  <jakub@redhat.com>
833         PR rtl-optimization/64286
834         * ree.c (combine_reaching_defs): Move part of comment earlier,
835         remove !SCALAR_INT_MODE_P check.
836         (add_removable_extension): Don't add vector mode
837         extensions if all uses of the source register aren't the same
838         vector extensions.
840         2015-01-12  Jakub Jelinek  <jakub@redhat.com>
842         PR tree-optimization/64563
843         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
844         instead of != VR_VARYING.
846 2015-01-14  Marek Polacek  <polacek@redhat.com>
848         Backport from mainline
849         2015-01-13  Marek Polacek  <polacek@redhat.com>
851         PR middle-end/64391
852         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
854 2015-01-13  Marc Glisse  <marc.glisse@inria.fr>
856         PR c++/54442
857         * tree.c (build_qualified_type): Use a canonical type for
858         TYPE_CANONICAL.
860 2015-01-13  Pat Haugen  <pthaugen@us.ibm.com>
862         Backport from mainline
863         2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>
865         PR target/64358
866         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
867         input operands if only the second is inverted.
868         * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
869         Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
870         rs6000_split_logical.
871         (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
873 2015-01-13  Renlin Li  <renlin.li@arm.com>
875         Backport from mainline:
876         2014-11-19 Renlin Li <renlin.li@arm.com>
878         PR target/63424
879         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
881 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
883         Backport form mainline
884         2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
886         PR target/64479
887         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
889 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
891         PR rtl-optimization/64536
892         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
893         tablejumps.
895 2015-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
897         Backport from mainline:
898         2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
900         PR target/64505
901         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
902         correct reload handler if -m32 -mpowerpc64 is used.
904 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
906         Backport from mainline:
907         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
909         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
910         for -mcpu=e6500.
911         * config/rs6000/t-rtems: Add e6500 multilibs.
913 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
915         Backport from mainline:
916         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
918         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
919         MPC8540.
921 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
923         Backport from mainline:
924         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
926         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
927         MULTILIB_EXCEPTIONS.
929 2015-01-09  Renlin Li  <renlin.li@arm.com>
931         Backport from mainline:
932         2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
934         PR target/61413
935         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
936         of __ARM_SIZEOF_WCHAR_T.
938 2015-01-08  Christian Bruel  <christian.bruel@st.com>
940         PR target/64507
941         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
943 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
945         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
946         instead of `m' constraint.  Likewise for unnamed movb comparison
947         patterns using reg_before_reload_operand predicate.
948         * config/pa/predicates.md (reg_before_reload_operand): Tighten
949         predicate to reject register index and LO_SUM DLT memory forms
950         after reload.
952 2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
954         Backport from mainline:
955         2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
957         PR target/64409
958         * config/i386/i386.c (ix86_function_type_abi): Issue an error
959         when ms_abi attribute is used with x32.
961 2014-12-27  Uros Bizjak  <ubizjak@gmail.com>
963         * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
964         Emit movshdup for SSE3 and shufps otherwise.
965         (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
966         Emit pshufd for SSE2 and shufps otherwise.
968 2014-12-24  Nick Clifton  <nickc@redhat.com>
970         Backport from mainline:
971         2014-06-13  Nick Clifton  <nickc@redhat.com>
973         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
974         requested alignment is active.
975         (LABEL_ALIGN): Likewise.
976         (LOOP_ALIGN): Likewise.
978         2014-03-25  Nick Clifton  <nickc@redhat.com>
980         * config/rx/rx.c (rx_print_operand): Allow R operator to accept
981         SImode values.
983 2014-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
985         Backport from mainline
986         2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
988         PR rtl-optimization/64010
989         * reload.c (push_reload): Before reusing a register contained
990         in an operand as input reload register, ensure that it is not
991         used in CALL_INSN_FUNCTION_USAGE.
993 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
995         PR sanitizer/64265
996         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
997         call on edge from entry block to single succ instead
998         of after labels of single succ of entry block.
1000 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1002         Backported from mainline
1003         2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1005         PR rtl-optimization/64037
1006         * combine.c (setup_incoming_promotions): Pass the argument
1007         before any promotions happen to promote_function_mode.
1009 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1011         Backported from mainline
1012         2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1014         PR target/64200
1015         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1016         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1018 2014-12-13  Jakub Jelinek  <jakub@redhat.com>
1020         Backported from mainline
1021         2014-12-12  Jakub Jelinek  <jakub@redhat.com>
1023         PR tree-optimization/64269
1024         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1025         len2 or diff are too large.
1027 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1029         * doc/md.texi (Insn Lengths): Fix description of (pc).
1031 2014-12-11  Renlin Li  <renlin.li@arm.com>
1033         Backport from mainline
1034         2014-12-11  Renlin Li  <renlin.li@arm.com>
1036         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1037         selected_tune.
1038         (aarch64_override_options): Use selected_cpu's tuning.
1040 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1042         Backport from mainline
1043         2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1045         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
1046         built-in definition.
1047         (XVCVUXDDP_SCALE): Likewise.
1048         (XVCVDPSXDS_SCALE): Likewise.
1049         (XVCVDPUXDS_SCALE): Likewise.
1050         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
1051         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1052         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1053         VSX_BUILTIN_XVCVDPUXDS_SCALE.
1054         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1055         prototype.
1056         * config/rs6000/rs6000.c (real.h): New include.
1057         (rs6000_scale_v2df): New function.
1058         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1059         (UNSPEC_VSX_XVCVUXDDP): Likewise.
1060         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1061         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1062         (vsx_xvcvsxddp_scale): New define_expand.
1063         (vsx_xvcvsxddp): New define_insn.
1064         (vsx_xvcvuxddp_scale): New define_expand.
1065         (vsx_xvcvuxddp): New define_insn.
1066         (vsx_xvcvdpsxds_scale): New define_expand.
1067         (vsx_xvcvdpsxds): New define_insn.
1068         (vsx_xvcvdpuxds_scale): New define_expand.
1069         (vsx_xvcvdpuxds): New define_insn.
1070         * doc/extend.texi (vec_ctf): Add new prototypes.
1071         (vec_cts): Likewise.
1072         (vec_ctu): Likewise.
1073         (vec_splat): Likewise.
1074         (vec_div): Likewise.
1075         (vec_mul): Likewise.
1077         Backport from mainline
1078         2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1080         * config/rs6000/altivec.h (vec_xl): New #define.
1081         (vec_xst): Likewise.
1082         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
1083         (XXSPLTD_V2DI): Likewise.
1084         (DIV_V2DI): Likewise.
1085         (UDIV_V2DI): Likewise.
1086         (MUL_V2DI): Likewise.
1087         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1088         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
1089         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
1090         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
1091         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
1092         (UNSPEC_VSX_DIVSD): Likewise.
1093         (UNSPEC_VSX_DIVUD): Likewise.
1094         (UNSPEC_VSX_MULSD): Likewise.
1095         (vsx_mul_v2di): New insn-and-split.
1096         (vsx_div_v2di): Likewise.
1097         (vsx_udiv_v2di): Likewise.
1098         (vsx_xxspltd_<mode>): New insn.
1100         Backport from mainline
1101         2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1103         * config/rs6000/altivec.h (vec_cpsgn): New #define.
1104         (vec_mergee): Likewise.
1105         (vec_mergeo): Likewise.
1106         (vec_cntlz): Likewise.
1107         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
1108         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
1109         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
1110         VMRGEW, and VMRGOW.
1111         * doc/extend.texi: Document various forms of vec_cpsgn,
1112         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
1113         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
1114         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
1115         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
1116         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
1118         Backport from mainline
1119         2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1121         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
1122         (altivec_vsldoi_<mode>): Likewise.
1125 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1127         PR tree-optimization/62021
1128         * omp-low.c (simd_clone_adjust_return_type): Use
1129         vector of pointer_sized_int_node types instead vector of pointer
1130         types.
1131         (simd_clone_adjust_argument_types): Likewise.
1133 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1135         Backport from mainline:
1136         2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1138         PR middle-end/64225
1139         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1140         for BUILT_IN_POW when flag_errno_math is present.
1142 2014-12-10  Marek Polacek  <polacek@redhat.com>
1144         Backport from mainline
1145         2014-12-10  Marek Polacek  <polacek@redhat.com>
1147         PR tree-optimization/61686
1148         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1149         p->high.
1151 2014-12-09  David Edelsohn  <dje.gcc@gmail.com>
1153         Backport from mainline
1154         2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1156         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1157         alignment to section name. Increase default alignment to
1158         word.
1160 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
1162         PR bootstrap/64213
1163         Revert:
1164         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1166         PR rtl-optimization/64037
1167         * combine.c (setup_incoming_promotions): Pass the argument
1168         before any promotions happen to promote_function_mode.
1170 2014-12-09  Richard Biener  <rguenther@suse.de>
1172         PR tree-optimization/64191
1173         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1174         not relevant (nor are their uses).
1176 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1178         Backport from mainline
1179         2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1181         PR target/50751
1182         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1184 2014-12-05  H.J. Lu  <hongjiu.lu@intel.com>
1186         Backport from mainline
1187         2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1189         PR target/64108
1190         * config/i386/i386.c (decide_alg): Stop only if there aren't
1191         any usable algorithms.
1193 2014-12-05  H.J. Lu  <hongjiu.lu@intel.com>
1195         Backport from mainline
1196         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1198         PR rtl-optimization/64037
1199         * combine.c (setup_incoming_promotions): Pass the argument
1200         before any promotions happen to promote_function_mode.
1202 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1204         * configure.ac
1205         (ac_has_isl_schedule_constraints_compute_schedule):
1206         New check.
1207         * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
1208         * graphite-interchange.c: Ditto.
1209         * graphite-poly.c: Ditto.
1210         * graphite-sese-to-poly.c: Ditto.
1211         * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
1212         Conditionally use ISL 0.13+ functions.
1213         * config.in: Regenerate.
1214         * configure: Regenerate.
1216 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1218         PR c++/56493
1219         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1220         Handle COMPOUND_EXPR.
1222 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1224         PR c/59708
1225         * expmed.c (expand_widening_mult): Return const0_rtx if
1226         coeff is 0.
1228 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1230         PR ipa/64153
1231         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1232         type sizes before view_converting.
1234 2014-12-03  Shanyao Chen  <chenshanyao@huawei.com>
1236         Backport from mainline
1237         2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1239         PR target/59593
1240         * config/arm/arm.md (*movhi_insn): Use right formatting
1241         for immediate.
1243         2014-11-19  Felix Yang  <felix.yang@huawei.com>
1244                     Shanyao Chen  <chenshanyao@huawei.com>
1246         PR target/59593
1247         * config/arm/arm.md (define_attr "arch"): Add v6t2.
1248         (define_attr "arch_enabled"): Add test for the above.
1249         (*movhi_insn_arch4): Add new alternative.
1251 2014-12-03  Renlin Li  <Renlin.Li@arm.com>
1253         Backported from mainline
1254         2014-12-03  Renlin Li  <Renlin.Li@arm.com>
1256         PR middle-end/63762
1257         PR target/63661
1258         * ira.c (ira): Update preferred class.
1260 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1262         PR target/64113
1263         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1264         using post-reload splitter.  Use peephole2 pass instead.
1265         (call_value_osf_tlsldm): Ditto.
1266         (TLS_CALL): New int iterator.
1267         (tls): New int attribute.
1268         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1269         and call_value_tlsldm using TLS_CALL int iterator.
1271 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1273         PR target/64115
1274         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1275         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1277 2014-12-01  Richard Biener  <rguenther@suse.de>
1279         PR middle-end/64111
1280         * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
1281         htab_hash_pointer to not break PCH.
1283 2014-12-01  Martin Jambor  <mjambor@suse.cz>
1285         PR ipa/63551
1286         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1287         value of the argument to the type of the value in the condition.
1289 2014-11-28  Jakub Jelinek  <jakub@redhat.com>
1291         Backported from mainline
1292         2014-11-27  Jakub Jelinek  <jakub@redhat.com>
1294         PR middle-end/64067
1295         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1296         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1297         not only if modifier is EXPAND_INITIALIZER, but whenever
1298         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1300         2014-11-19  Jakub Jelinek  <jakub@redhat.com>
1302         PR tree-optimization/63915
1303         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1304         true instead of false as last argument to gsi_replace.
1306         PR sanitizer/63913
1307         * ubsan.c: Include tree-eh.h.
1308         (instrument_bool_enum_load): Handle loads that can throw.
1310         2014-10-31  Jakub Jelinek  <jakub@redhat.com>
1312         PR rtl-optimization/63659
1313         * ree.c (update_reg_equal_equiv_notes): New function.
1314         (combine_set_extension, transform_ifelse): Use it.
1316 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1318         Backport from mainline.
1319         2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1321         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
1322         -march=armv8-a+crc.
1324 2014-11-26  Richard Biener  <rguenther@suse.de>
1326         PR middle-end/63738
1327         * tree-data-ref.c (split_constant_offset_1): Do not follow
1328         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1330 2014-11-26  Richard Biener  <rguenther@suse.de>
1332         Backport from mainline
1333         2014-11-26  Richard Biener  <rguenther@suse.de>
1335         PR tree-optimization/62238
1336         * tree-predcom.c (ref_at_iteration): Unshare the expression
1337         before gimplifying it.
1339         2014-11-25  Richard Biener  <rguenther@suse.de>
1341         PR tree-optimization/61927
1342         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
1343         of group and pattern analysis to the one in GCC 4.8.
1345         2014-11-07  Richard Biener  <rguenther@suse.de>
1347         PR tree-optimization/63605
1348         * fold-const.c (fold_binary_loc): Properly use element_precision
1349         for types that may not be scalar.
1351         2014-10-28  Richard Biener  <rguenther@suse.de>
1353         PR middle-end/63665
1354         * fold-const.c (fold_comparison): Properly guard simplifying
1355         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
1357 2014-11-25  Rohit  <rohitarulraj@freescale.com>
1359         PR bootstrap/63703
1360         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
1361         added GCC hard register numbers for SPE high registers.
1363 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
1365         Backport from mainline
1366         2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
1368         PR target/53976
1369         * config/sh/sh_optimize_sett_clrt.cc
1370         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
1371         of void.  Abort at complex edges.
1372         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
1373         returned false.
1375 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
1377         Backport from mainline
1378         2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
1380         PR target/63783
1381         PR target/51244
1382         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
1383         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
1384         Adjust related comments throughout the file.
1386 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
1388         Backport from mainline
1389         2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
1391         PR target/60111
1392         * config/sh/sh.c: Use signed char for signed field.
1394 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1396         PR target/63673
1397         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
1398         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
1399         double.
1401 2014-11-21  Richard Biener  <rguenther@suse.de>
1403         PR tree-optimization/61750
1404         * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
1405         match for the resulting VIEW_CONVERT_EXPR.
1407 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
1409         PR target/63947
1410         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
1411         Output "b" and "nb" suffix for FP mode.
1413 2014-11-19  Tom de Vries  <tom@codesourcery.com>
1415         Backport from mainline
1416         PR tree-optimization/62167
1417         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
1418         conservatively.
1419         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
1420         assigns.
1422 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1424         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
1425         * doc/tm.texi: Regenerate.
1427 2014-11-14  Felix Yang  <felix.yang@huawei.com>
1429         Backport from mainline
1430         2014-11-14  Felix Yang  <felix.yang@huawei.com>
1431                     Jiji Jiang  <jiangjiji@huawei.com>
1433         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
1434         VALL mode iterator instead of VALLDI.
1436 2014-11-13  Teresa Johnson  <tejohnson@google.com>
1438         PR tree-optimization/63841
1439         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
1441 2014-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
1443         Backport from mainline
1444         2014-11-02  Michael Collison  <michael.collison@linaro.org>
1446         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
1447         to support vector modes.
1448         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1450 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1452         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
1453         (REVERSIBLE_CC_MODE): Fix example.
1454         (REVERSE_CONDITION): Fix typo.
1455         * doc/tm.texi: Regenerate.
1457 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
1459         PR ipa/63838
1460         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
1461         chain instead of node->indirect_calls.
1463 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
1465         PR target/61535
1466         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
1467         smaller than 8 bytes.
1468         (sparc_function_arg_1): Tweak.
1469         (sparc_function_value_1): Tweak.
1471 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1473         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
1474         related, if any.
1475         (thumb_set_return_address): Likewise.
1477 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
1479         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
1480         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
1482 2014-11-07  Marek Polacek  <polacek@redhat.com>
1484         Backported from mainline
1485         2014-10-23  Marek Polacek  <polacek@redhat.com>
1487         * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
1488         in unsigned type.
1490 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
1492         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
1493         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
1494         or in_call_delay.
1496 2014-11-06  Daniel Hellstrom  <daniel@gaisler.com>
1498         * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
1499         * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
1500         * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
1501         leon3v7 as leon3.
1502         * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
1503         * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
1504         * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
1505         * config/sparc/sparc.md (cpu): Add leon3v7.
1506         * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
1508 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
1510         PR target/63538
1511         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
1512         (ix86_encode_section_info): Do not check for non-automatic varibles
1513         when setting SYMBOL_FLAG_FAR_ADDR flag.
1514         (x86_64_elf_select_section): Do not check ix86_cmodel here.
1515         (x86_64_elf_unique_section): Ditto.
1516         (x86_elf_aligned_common): Emit tab before .largecomm.
1518 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
1520         Backport from mainline:
1521         2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
1523         * varasm.c (const_alias_set): Remove.
1524         (init_varasm_once): Remove initialization of const_alias_set.
1525         (build_constant_desc): Do not set alias set to const_alias_set.
1527         Backport from mainline:
1528         2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
1530         PR rtl-optimization/63475
1531         * alias.c (true_dependence_1): Always use get_addr to extract
1532         true address operands from x_addr and mem_addr.  Use extracted
1533         address operands to check for references with alignment ANDs.
1534         Use extracted address operands with find_base_term and
1535         base_alias_check. For noncanonicalized operands call canon_rtx with
1536         extracted address operand.
1537         (write_dependence_1): Ditto.
1538         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
1540         Backport from mainline:
1541         2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
1543         PR rtl-optimization/63483
1544         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
1545         references when alignment ANDs are involved.
1546         (write_dependence_p): Ditto.
1547         (may_alias_p): Ditto.
1549 2014-10-31  DJ Delorie  <dj@redhat.com>
1551         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
1553 2014-10-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1555         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
1556         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1557         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
1558         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
1560 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
1562         PR sanitizer/63697
1563         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
1564         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
1565         instead of vr0.min - vr1.min and vr0.max - vr1.max.
1567 2014-10-30  Georg-Johann Lay  <avr@gjlay.de>
1569         PR63633
1570         * config/avr/avr-protos.h (regmask): New inline function.
1571         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
1572         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
1573         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
1574         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
1575         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
1576         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
1577         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
1578         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
1579         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
1580         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
1581         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
1582         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
1583         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
1584         needed.
1586 2014-10-30  Jakub Jelinek  <jakub@redhat.com>
1588         * BASE-VER: Set to 4.9.3.
1589         * DEV-PHASE: Set to prerelease.
1591 2014-10-30  Release Manager
1593         * GCC 4.9.2 released.
1595 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1597         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
1598         recog state after aarch64_prev_real_insn call.
1600 2014-10-27  Guozhi Wei  <carrot@google.com>
1602         PR tree-optimization/63530
1603         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
1604         pointer alignment according to DR_MISALIGNMENT.
1606 2014-10-25  Yury Gribov  <y.gribov@samsung.com>
1608         PR sanitizer/63638
1609         * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
1611 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
1613         PR bootstrap/63632
1614         * collect2.c (main): Filter out -fno-lto.
1616 2014-10-22  Richard Biener  <rguenther@suse.de>
1617             Tobias Burnus <burnus@net-b.de>
1619         PR lto/63603
1620         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
1622 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
1624         PR tree-optimization/63563
1625         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1626         if either dra or drb stmts are not normal loads/stores.
1628 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1630         * asan.c (instrument_derefs): Allow instrumentation of odd-sized
1631         accesses even for -fsanitize=address.
1632         (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
1634         PR tree-optimization/63302
1635         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1636         optimize_range_tests_diff): Use !integer_pow2p () instead of
1637         tree_log2 () < 0.
1639 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1641         * asan.c (instrument_derefs): Enable unaligned path for KASan.
1643 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1645         Backport from mainline
1646         2014-10-03  Yury Gribov  <y.gribov@samsung.com>
1648         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
1649         don't emit empty ctors.
1651 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1653         Backport from mainline
1654         2014-09-01  Yury Gribov  <y.gribov@samsung.com>
1656         PR sanitizer/61897
1657         PR sanitizer/62140
1659         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
1660         (build_check_stmt): Likewise.
1661         (instrument_strlen_call): Likewise.
1662         (asan_expand_check_ifn): Likewise and fix types.
1663         (maybe_cast_to_ptrmode): New function.
1665 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1667         Backport from mainline
1668         2014-08-18  Yury Gribov  <y.gribov@samsung.com>
1670         PR sanitizer/62089
1672         * asan.c (instrument_derefs): Fix bitfield check.
1674 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1676         Backport from mainline
1677         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
1679         * asan.c (asan_check_flags): New enum.
1680         (build_check_stmt_with_calls): Removed function.
1681         (build_check_stmt): Split inlining logic to
1682         asan_expand_check_ifn.
1683         (instrument_derefs): Rename parameter.
1684         (instrument_mem_region_access): Rename parameter.
1685         (instrument_strlen_call): Likewise.
1686         (asan_expand_check_ifn): New function.
1687         (asan_instrument): Remove old code.
1688         (pass_sanopt::execute): Change handling of
1689         asan-instrumentation-with-call-threshold.
1690         (asan_clear_shadow): Fix formatting.
1691         (asan_function_start): Likewise.
1692         (asan_emit_stack_protection): Likewise.
1693         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
1694         Update description.
1695         * internal-fn.c (expand_ASAN_CHECK): New function.
1696         * internal-fn.def (ASAN_CHECK): New internal function.
1697         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
1698         Update description.
1699         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
1700         * tree.c: Small comment fix.
1702 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1704         Backport from mainline
1705         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
1707         * gimple.c (gimple_call_fnspec): Support internal functions.
1708         (gimple_call_return_flags): Use const.
1709         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
1710         * internal-fn.def: Add fnspec information.
1711         * internal-fn.h (internal_fn_fnspec): New function.
1712         (init_internal_fns): Declare new function.
1713         * internal-fn.c (internal_fn_fnspec_array): New global variable.
1714         (init_internal_fns): New function.
1715         * tree-core.h: Update macro call.
1716         * tree.c (build_common_builtin_nodes): Initialize internal fns.
1718         Backport from mainline
1719         2014-08-12  Yury Gribov  <y.gribov@samsung.com>
1721         * internal-fn.c (init_internal_fns): Fix off-by-one.
1723 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1725         Backport from mainline
1726         2014-07-31  Yury Gribov  <y.gribov@samsung.com>
1728         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
1729         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
1730         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
1731         New enums.
1732         * gcc.c (sanitize_spec_function): Support new option.
1733         (SANITIZER_SPEC): Remove now redundant check.
1734         * opts.c (common_handle_option): Support new option.
1735         (finish_options): Check for incompatibilities.
1736         * toplev.c (process_options): Split userspace-specific checks.
1738 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1740         Backport from mainline
1741         2014-06-24  Max Ostapenko  <m.ostapenko@partner.samsung.com>
1743         * asan.c (instrument_strlen_call): Do not instrument first byte in
1744         strlen if already instrumented.
1746 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1748         Backport from mainline
1749         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
1751         * asan.c (check_func): New function.
1752         (maybe_create_ssa_name): Likewise.
1753         (build_check_stmt_with_calls): Likewise.
1754         (use_calls_p): Likewise.
1755         (report_error_func): Change interface.
1756         (build_check_stmt): Allow non-integer lengths; add support
1757         for new parameter.
1758         (asan_instrument): Likewise.
1759         (instrument_mem_region_access): Moved code to
1760         build_check_stmt.
1761         (instrument_derefs): Likewise.
1762         (instrument_strlen_call): Likewise.
1763         * cfgcleanup.c (old_insns_match_p): Add support for new
1764         functions.
1765         * doc/invoke.texi: Describe new parameter.
1766         * params.def: Define new parameter.
1767         * params.h: Likewise.
1768         * sanitizer.def: Describe new builtins.
1770         Backport from mainline
1771         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
1773         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
1775         Backport from mainline
1776         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
1778         PR sanitizer/61530
1780         * asan.c (build_check_stmt): Add condition.
1782         Backport from mainline
1783         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
1785         PR sanitizer/61547
1787         * asan.c (instrument_strlen_call): Fixed instrumentation of
1788         trailing byte.
1790 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1792         Backport from mainline
1793         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
1795         * asan.c (report_error_func): Add SLOW_P argument, use
1796         BUILT_IN_ASAN_*_N if set.
1797         (build_check_stmt): Likewise.
1798         (instrument_derefs): If T has insufficient alignment,
1799         force same handling as for odd sizes.
1801 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
1803         Backport from mainline
1804         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
1806         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
1807         BUILT_IN_ASAN_REPORT_STORE_N): New.
1808         * asan.c (struct asan_mem_ref): Change access_size type to
1809         HOST_WIDE_INT.
1810         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
1811         update_mem_ref_hash_table): Likewise.
1812         (asan_mem_ref_hasher::hash): Hash in a HWI.
1813         (report_error_func): Change size_in_bytes argument to HWI.
1814         Use *_N builtins if size_in_bytes is larger than 16 or not power of
1815         two.
1816         (build_shadow_mem_access): New function.
1817         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
1818         Handle size_in_bytes not power of two or larger than 16.
1819         (instrument_derefs): Don't give up if size_in_bytes is not
1820         power of two or is larger than 16.
1822 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1824         PR rtl-optimization/63448
1825         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1826         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1827         (LRA_MAX_INHERITANCE_PASSES): Use it.
1828         (lra_constraint_iter_after_spill): Remove.
1829         (lra_assignment_iter): New.
1830         (lra_assignment_iter_after_spill): New.
1831         * lra-assigns.c (lra_assignment_iter): New.
1832         (lra_assignment_iter_after_spill): New.
1833         (former_reload_pseudo_spill_p): New.
1834         (spill_for): Set up former_reload_pseudo_spill_p.
1835         (setup_live_pseudos_and_spill_after_risky): Ditto.
1836         (assign_by_spills): Ditto.
1837         (lra_assign): Increment lra_assignment_iter.  Print the iteration
1838         number.  Reset former_reload_pseudo_spill_p.  Check
1839         lra_assignment_iter_after_spill.
1840         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
1841         lra_assignment_iter and lra_assignment_iter_after_spill.
1842         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1843         (lra_constraints): Remove code with
1844         lra_assignment_iter_after_spill.
1846 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1848         * stor-layout.c (self_referential_size): Do not promote arguments.
1850 2014-10-15  Richard Biener  <rguenther@suse.de>
1852         Backport from mainline
1853         2014-08-15  Richard Biener  <rguenther@suse.de>
1855         PR tree-optimization/62031
1856         * tree-data-ref.c (dr_analyze_indices): Do not set
1857         DR_UNCONSTRAINED_BASE.
1858         (dr_may_alias_p): All indirect accesses have to go the
1859         formerly DR_UNCONSTRAINED_BASE path.
1860         * tree-data-ref.h (struct indices): Remove
1861         unconstrained_base member.
1862         (DR_UNCONSTRAINED_BASE): Remove.
1864 2014-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1866         Backport from mainline r215880
1867         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1869         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1870         Issue a warning message when vec_lvsl or vec_lvsr is used with a
1871         little endian target.
1873         Backport from mainline r215882
1874         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1876         * altivec.md (altivec_lvsl): New define_expand.
1877         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
1878         (altivec_lvsr): New define_expand.
1879         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
1880         * rs6000.c (rs6000_expand_builtin): Change to use
1881         altivec_lvs[lr]_direct; remove commented-out code.
1883 2014-10-10  Richard Biener  <rguenther@suse.de>
1885         PR tree-optimization/63379
1886         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
1887         a neutral operand for min/max when it is not a reduction chain.
1889 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1891         Backport from mainline
1892         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1894         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
1895         * configure: Regenerate.
1896         * config/aarch64/aarch64.c (aarch64_override_options): Handle
1897         TARGET_FIX_ERR_A53_835769_DEFAULT.
1898         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
1899         value to 2.
1900         * doc/install.texi (aarch64*-*-*): Document new
1901         --enable-fix-cortex-a53-835769 option.
1903 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1905         Backport from mainline
1906         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1907                     Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1909         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
1910         (ADJUST_INSN_LENGTH): Define.
1911         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
1912         * config/aarch64/aarch64.c (is_mem_p): New function.
1913         (is_memory_op): Likewise.
1914         (aarch64_prev_real_insn): Likewise.
1915         (is_madd_op): Likewise.
1916         (dep_between_memop_and_curr): Likewise.
1917         (aarch64_madd_needs_nop): Likewise.
1918         (aarch64_final_prescan_insn): Likewise.
1919         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
1920         and -mno-fix-cortex-a53-835769 options.
1922 2014-10-10  Richard Biener  <rguenther@suse.de>
1924         PR tree-optimization/63380
1925         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
1926         may trap.
1928 2014-10-09  Richard Biener  <rguenther@suse.de>
1930         PR tree-optimization/61969
1931         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
1932         variables.
1934 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
1936         Backport from mainline
1937         2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
1939         PR rtl-optimization/57003
1940         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1941         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
1942         killing regs_invalidated_by_call.
1944 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
1946         Backport from mainline
1947         2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
1949         PR target/52941
1950         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
1951         atomic_fetch_<fetchop_name>si_hard,
1952         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
1953         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
1954         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
1955         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
1957 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
1959         PR ipa/61144
1960         * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
1962 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
1964         PR ipa/62121
1965         * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
1966         unknown.
1968 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
1970         PR lto/62026
1971         * lto-streamer-out.c (lto_output): Handle thunks correctly.
1972         * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
1974 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
1976         PR libgomp/61200
1977         * omp-low.c (taskreg_contexts): New variable.
1978         (scan_omp_parallel): Push newly created context into taskreg_contexts
1979         vector and move record layout code to finish_taskreg_scan.
1980         (scan_omp_task): Likewise.
1981         (finish_taskreg_scan): New function.
1982         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
1983         vector elements and release it.
1985 2014-10-02  Martin Jambor  <mjambor@suse.cz>
1987         PR tree-optimization/63375
1988         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
1989         references.
1991 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
1993         PR debug/63342
1994         * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
1995         SSA_NAME.
1997         PR target/63428
1998         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
1999         argument to avx2_permv2ti.
2001         PR c++/63306
2002         Backported from mainline
2003         2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
2005         PR regression/61510
2006         * cgraphunit.c (analyze_functions): Use get_create rather than get
2007         for decls which are clones of abstract functions.
2009 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
2011         Backported from mainline
2012         2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
2014         PR debug/63285
2015         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
2016         if advance != 0.
2018         2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
2020         PR tree-optimization/63186
2021         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2022         (mark_nonssa_use): Likewise.
2023         (verify_non_ssa_vars): Verify all header blocks for label
2024         definitions.
2026 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2028         Backport from mainline
2029         2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2031         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
2033 2014-10-01  Uros Bizjak  <ubizjak@gmail.com>
2035         Backport from mainline
2036         2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
2038         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2039         (fmod<mode>3): Ditto.
2040         (fpremxf4_i387): Ditto.
2041         (reminderxf3): Ditto.
2042         (reminder<mode>3): Ditto.
2043         (fprem1xf4_i387): Ditto.
2045 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
2047         PR plugins/63410
2048         * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
2050 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
2052         PR inline-asm/63282
2053         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
2054         or invert_jump_1 if jump isn't any_condjump_p.
2056 2014-09-29  James Clarke  <jrtc27@jrtc27.com>
2057             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2059         PR target/61407
2060         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
2061         and above.
2062         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
2063         kernel version check to avoid incrementing it after every major OS X
2064         release.
2065         (darwin_default_min_version): Avoid static memory buffer.
2067 2014-09-29  Charles Baylis  <charles.baylis@linaro.org>
2069         Backport from mainline r212303
2070         PR target/49423
2071         * config/arm/arm-protos.h (arm_legitimate_address_p,
2072         arm_is_constant_pool_ref): Add prototypes.
2073         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2074         (arm_is_constant_pool_ref) New function.
2075         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2076         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2077         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2078         operand and remove pool_range and neg_pool_range attributes.
2079         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2080         pool_range and neg_pool_range attributes.
2081         * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
2082         constant pool references.
2084 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
2086         PR middle-end/63247
2087         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
2088         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
2089         use the alignment of avar rather than ovar.
2091 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
2093         * config/pa/pa.c (pa_output_function_epilogue): Only update
2094         last_address when a nonnote insn is found.
2096 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
2098         Backport from mainline
2099         2014-09-25  Nick Clifton  <nickc@redhat.com>
2100         2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
2102         PR target/62218
2103         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
2104         atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
2106 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2108         Backport from mainline r215559
2109         2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2111         PR target/63335
2112         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
2113         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2115 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
2117         PR tree-optimization/63341
2118         * tree-vectorizer.h (vect_create_data_ref_ptr,
2119         vect_create_addr_base_for_vector_ref): Add another tree argument
2120         defaulting to NULL_TREE.
2121         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
2122         argument, pass it down to vect_create_addr_base_for_vector_ref.
2123         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
2124         add that to base_offset too if non-NULL.
2125         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
2126         for dr_explicit_realign_optimized set it to vector byte size
2127         - 1 instead of setting offset, pass byte_offset down to
2128         vect_create_data_ref_ptr.
2130 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2132         Backport from mainline
2133         2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2135         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
2136         refine the constraints used on 32/64-bit floating point moves.
2137         (f32_av): Likewise.
2138         (f64_vsx): Likewise.
2139         (f64_dm): Likewise.
2140         (f64_av): Likewise.
2141         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
2142         (BOOL_REGS_OP1): Likewise.
2143         (BOOL_REGS_OP2): Likewise.
2144         (BOOL_REGS_UNARY): Likewise.
2145         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
2146         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
2147         for moves involving VSX registers.  Do not use constraints that
2148         target VSX registers for decimal types.
2149         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
2150         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
2152 2014-09-22  Marek Polacek  <polacek@redhat.com>
2154         Backport from mainline
2155         2014-05-21  Marek Polacek  <polacek@redhat.com>
2157         PR sanitizer/61272
2158         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
2160 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
2162         PR debug/63328
2163         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
2164         insert a debug source bind stmt setting DEBUG_EXPR_DECL
2165         instead of a normal gimple assignment stmt.
2167 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2169         Back port from trunk:
2170         2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2172         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
2173         for base_reg_operand to be common between LO_SUM and PLUS.
2174         (fusion_gpr_mem_combo): New predicate to match a fused address
2175         that combines the addis and memory offset address.
2177         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
2178         calling signature.
2179         (emit_fusion_gpr_load): Likewise.
2181         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
2182         signature to pass each argument separately, rather than
2183         using an operands array.  Rewrite the insns found by peephole2 to
2184         be a single insn, rather than hoping the insns will still be
2185         together when the peephole pass is done.  Drop being called via a
2186         normal peephole.
2187         (emit_fusion_gpr_load): Change calling signature to be called from
2188         the fusion_gpr_load_<mode> insns with a combined memory address
2189         instead of the peephole pass passing the addis and offset
2190         separately.
2192         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
2193         fusion.
2194         (power8 fusion peephole): Drop support for doing power8 via a
2195         normal peephole that was created by the peephole2 pass.
2196         (power8 fusion peephole2): Create a new insn with the fused
2197         address, so that the fused operation is kept together after
2198         register allocation is done.
2199         (fusion_gpr_load_<mode>): Likewise.
2201 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
2203         PR c++/62017
2204         * asan.c (transform_statements): Don't instrument clobber statements.
2206 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
2208         PR debug/63284
2209         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
2210         if there are only debug stmts after the noreturn call, instead
2211         remove the debug stmts.
2213 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2215         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
2216         Enable selection of 'posix' or no thread model.
2218 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
2220         PR target/61853
2221         * config/pa/pa.c (pa_function_value): Directly handle aggregates
2222         that fit exactly in a word or double word.
2224 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2226         * doc/install.texi (Options specification): add
2227         --disable-libsanitizer item.
2229 2014-09-12  DJ Delorie  <dj@redhat.com>
2231         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
2232         (extend_and_shift1_hipsi2): Likewise.
2233         (extend_and_shift2_hipsi2): Likewise.
2235 2014-09-12  Martin Jambor  <mjambor@suse.cz>
2237         PR ipa/61654
2238         * cgraph.h (cgraph_analyze_function): Declare.
2239         * cgraphunit.c: (analyze_function): Remove forward declaration,
2240         rename to cgraph_analyze_function, made external.
2241         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2242         new decl properly.  Analyze the new thunk if it is expanded.
2244 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2246         Backport from mainline
2247         2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2249         PR target/63228
2250         * config/i386/i386.c (ix86_option_override_internal): Also turn
2251         off OPTION_MASK_ABI_X32 for -m16.
2253 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
2255         Backport from mainline.
2256         2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
2258         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2259         types.
2260         (vmull_high_lane_s32): Likewise.
2261         (vmull_high_lane_u16): Likewise.
2262         (vmull_high_lane_u32): Likewise.
2264 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2266         Backport r214946 from mainline
2267         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2269         * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
2271 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2273         Backport r214953 from mainline
2274         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2276         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2277         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2279         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2280         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2281         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2282         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2283         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2284         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2285         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2286         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2287         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2288         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2289         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2290         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2291         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2292         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2293         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2294         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2295         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2296         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2297         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2298         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2299         with int{32,16,8}_t.
2301 2014-09-11  Jason Merrill  <jason@redhat.com>
2303         PR c++/58678
2304         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2306 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
2308         Backport from 2014-09-11 trunk r215152.
2310         PR target/63223
2311         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
2312         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
2313         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
2315 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2317         Backport from mainline
2318         2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2320         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
2321         V2DF, V4SF, DF, and DI modes.
2322         (vsx_fmav2df2): Likewise.
2323         (vsx_float_fix_<mode>2): Likewise.
2324         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
2326 2014-09-10  Xinliang David Li  <davidxl@google.com>
2328         Backport from mainline
2329         PR target/63209
2330         * config/arm/arm.md (movcond_addsi): Handle case where source
2331         and target operands are the same.
2333 2014-09-10  Alan Modra  <amodra@gmail.com>
2335         PR debug/60655
2336         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2337         can't be output.
2339 2014-09-09  Bill Schmidt  <wschmidt@us.ibm.com>
2341         Backported from mainline
2342         2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2344         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2345         selection of 0th memory doubleword, regardless of endianness.
2347 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
2349         Backport from mainline
2350         2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
2352         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
2353         (-mtune): Likewise.
2354         (-mcpu): Likewise.
2356 2014-09-09  Jason Merrill  <jason@redhat.com>
2358         PR c++/61214
2359         PR c++/62224
2360         * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
2361         reference to a DECL_EXTERNAL COMDAT.
2363 2014-09-09  Richard Biener  <rguenther@suse.de>
2365         Backport from mainline
2366         2014-08-05  Richard Biener  <rguenther@suse.de>
2368         PR rtl-optimization/61672
2369         * emit-rtl.h (mem_attrs_eq_p): Declare.
2370         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
2371         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
2372         * cfgcleanup.c (merge_memattrs): Likewise.
2373         Include emit-rtl.h.
2375         2014-08-11  Richard Biener  <rguenther@suse.de>
2377         PR tree-optimization/62075
2378         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
2379         handle uses in patterns.
2381         2014-08-14  Richard Biener  <rguenther@suse.de>
2383         PR rtl-optimization/62079
2384         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
2385         run cleanup_cfg.
2387         2014-08-26  Richard Biener  <rguenther@suse.de>
2389         PR tree-optimization/62175
2390         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2391         expand possibly trapping operations.
2393 2014-09-08  DJ Delorie  <dj@redhat.com>
2395         * doc/invoke.texi (MSP430 Options): Add -minrt.
2397 2014-09-05  Easwaran Raman  <eraman@google.com>
2399         Backport from mainline
2400         PR rtl-optimization/62146
2401         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
2402         hoisted instruction unconditional.
2404 2014-09-04  Guozhi Wei  <carrot@google.com>
2406         PR target/62040
2407         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2408         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2409         it into two patterns.
2410         (move_lo_quad_internal_be_<mode>): Likewise.
2412 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2414         PR ipa/62015
2415         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2416         pass-trough jump functions correctly.
2418 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2420         PR ipa/61986
2421         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2422         created replacements in ascending order of offsets.
2423         (known_aggs_to_agg_replacement_list): Likewise.
2425 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2427         Backport from mainline
2428         2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2430         PR target/62261
2431         * config/sh/sh.md (ashlsi3): Handle negative shift count for
2432         TARGET_SHMEDIA.
2433         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
2435 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2437         Backport from mainline
2438         2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2440         PR target/62111
2441         * config/sh/predicates.md (general_extend_operand): Disable
2442         TRUNCATE before reload completes.
2444 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
2446         Backport from mainline
2447         2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
2449         PR target/62312
2450         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2452 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
2454         PR target/62025
2455         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2456         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2457         (find_inc): Revert 2014-08-12 change.
2459         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
2460         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
2461         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
2463 2014-09-01  Marek Polacek  <polacek@redhat.com>
2465         Backport from mainline
2466         2014-08-21  Marek Polacek  <polacek@redhat.com>
2468         PR c/61271
2469         * expr.c (is_aligning_offset): Remove logical not.
2471 2014-09-01  Marek Polacek  <polacek@redhat.com>
2473         Backport from mainline
2474         2014-08-19  Marek Polacek  <polacek@redhat.com>
2476         PR c/61271
2477         * cgraphunit.c (handle_alias_pairs): Fix condition.
2479 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
2481         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
2482         prefix to function labels when generating fast indirect calls.
2484 2014-08-29  Yvan Roux  <yvan.roux@linaro.org>
2486         Backport from mainline
2487         2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
2489         PR other/62248
2490         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
2492 2014-08-27  Guozhi Wei  <carrot@google.com>
2494         PR target/62262
2495         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
2496         amount before using it.
2498 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
2500         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
2502 2014-08-26  Marek Polacek  <polacek@redhat.com>
2504         Backport from mainline
2505         2014-08-26  Marek Polacek  <polacek@redhat.com>
2507         PR c/61271
2508         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
2509         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
2511 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
2513         Backport from mainline
2514         2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
2516         PR target/61996
2517         * config/sh/sh.opt (musermode): Allow negative form.
2518         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
2519         targets that don't support it.
2520         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
2521         Document -mno-usermode option.
2523 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
2525         PR target/62038
2526         * config/pa/pa.c (pa_output_function_epilogue): Don't set
2527         last_address when the current function is a thunk.
2528         (pa_asm_output_mi_thunk): When we don't have named sections or they
2529         are not being used, check that thunk can reach the stub table with a
2530         short branch.
2532 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2534         Backport from mainline
2535         2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2537         PR target/62195
2538         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
2539         documentation to state it is only for VSX operations.
2541         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
2542         constraint only active if VSX.
2544         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
2545         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
2546         (lfiwzx): Likewise.
2548 2014-08-21  Uros Bizjak  <ubizjak@gmail.com>
2550         Backport from mainline
2551         2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
2553         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
2554         destination if it is used in source.
2555         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
2556         (*popcount<mode>2_falsedep_1): Likewise.
2558         Backport from mainline
2559         2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
2561         PR target/62011
2562         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
2563         New tune flag.
2564         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
2565         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
2566         (ffs<mode>2): Do not expand with tzcnt for
2567         TARGET_AVOID_FALSE_DEP_FOR_BMI.
2568         (ffssi2_no_cmove): Ditto.
2569         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
2570         (ctz<mode>2): New expander.
2571         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
2572         (*ctz<mode>2_falsedep): New insn.
2573         (*ctz<mode>2): Rename from ctz<mode>2.
2574         (clz<mode>2_lzcnt): New expander.
2575         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
2576         (*clz<mode>2_lzcnt_falsedep): New insn.
2577         (*clz<mode>2): Rename from ctz<mode>2.
2578         (popcount<mode>2): New expander.
2579         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
2580         (*popcount<mode>2_falsedep): New insn.
2581         (*popcount<mode>2): Rename from ctz<mode>2.
2582         (*popcount<mode>2_cmp): Remove.
2583         (*popcountsi2_cmp_zext): Ditto.
2585 2014-08-20  Martin Jambor  <mjambor@suse.cz>
2586             Wei Mi  <wmi@google.com>
2588         PR ipa/60449
2589         PR middle-end/61776
2590         * tree-ssa-operands.c (update_stmt_operands): Remove
2591         MODIFIED_NORETURN_CALLS.
2592         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
2593         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
2594         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
2595         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
2596         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
2597         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
2598         (gimple_call_set_ctrl_altering): New func.
2599         (gimple_call_ctrl_altering_p): Ditto.
2600         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
2601         (make_blocks): Use gimple_call_initialize_ctrl_altering.
2602         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
2603         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
2604         remove MODIFIED_NORETURN_CALLS.
2606 2014-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2608         Backport from mainline.
2609         2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2610         PR target/62098
2611         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
2612         Remove unnecessary attributes.
2614 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
2616         PR target/61641
2617         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
2618         Declare.
2619         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
2620         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
2621         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
2622         Define.
2623         * config/pa/pa.md (begin_brtab): Delete insn.
2624         (end_brtab): Likewise.
2626 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
2628         Backport from mainline:
2629         2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
2631         * doc/invoke.texi (SH options): Document missing processor variant
2632         options.  Remove references to Hitachi.  Undocument deprecated mspace
2633         option.
2635 2014-08-15  Tom de Vries  <tom@codesourcery.com>
2637         Backport from mainline:
2638         2014-08-14  Tom de Vries  <tom@codesourcery.com>
2640         PR rtl-optimization/62004
2641         PR rtl-optimization/62030
2642         * ifcvt.c (rtx_interchangeable_p): New function.
2643         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
2645         2014-08-05  Richard Biener  <rguenther@suse.de>
2647         * emit-rtl.h (mem_attrs_eq_p): Declare.
2648         * emit-rtl.c (mem_attrs_eq_p): Export.
2650 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
2652         PR middle-end/62092
2653         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
2654         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
2655         in OMP_CLAUSE_MAP in some outer target region.
2657 2014-08-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2659         Backport from mainline
2660         2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2662         PR target/61713
2663         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
2664         move to subtarget in serial version if result is ignored.
2666 2014-08-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2668         Backport from mainline
2669         2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2671         PR middle-end/62103
2672         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
2673         bitfields, that is when size doesn't match the size of type or the
2674         size of the constructor.
2676 2014-08-12  Felix Yang  <fei.yang0953@gmail.com>
2678         PR tree-optimization/62073
2679         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
2680         a basic block.
2682 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
2684         PR target/62025
2685         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
2686         any registers that are used in mem_insn.
2688 2014-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2690         Backport patch from mainline
2691         2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2693         * config/rs6000/constraints.md (wh constraint): New constraint,
2694         for FP registers if direct move is available.
2695         (wi constraint): New constraint, for VSX/FP registers that can
2696         handle 64-bit integers.
2697         (wj constraint): New constraint for VSX/FP registers that can
2698         handle 64-bit integers for direct moves.
2699         (wk constraint): New constraint for VSX/FP registers that can
2700         handle 64-bit doubles for direct moves.
2701         (wy constraint): Make documentation match implementation.
2703         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
2704         scalar_in_vmx_p field to simplify tests of whether SFmode or
2705         DFmode can go in the Altivec registers.
2706         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
2707         (rs6000_setup_reg_addr_masks): Likewise.
2708         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
2709         field, and wh/wi/wj/wk constraints.
2710         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
2711         the wh/wi/wj/wk constraints.
2712         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
2713         upper registers, prefer VSX registers unless the operation is a
2714         memory operation with REG+OFFSET addressing.
2716         * config/rs6000/vsx.md (VSr mode attribute): Add support for
2717         DImode.  Change SFmode to use ww constraint instead of d to allow
2718         SF registers in the upper registers.
2719         (VSr2): Likewise.
2720         (VSr3): Likewise.
2721         (VSr5): Fix thinko in comment.
2722         (VSa): New mode attribute that is an alternative to wa, that
2723         returns the VSX register class that a mode can go in, but may not
2724         be the preferred register class.
2725         (VS_64dm): New mode attribute for appropriate register classes for
2726         referencing 64-bit elements of vectors for direct moves and normal
2727         moves.
2728         (VS_64reg): Likewise.
2729         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
2730         register allocator to only registers the data type can handle.
2731         (vsx_le_perm_load_<mode>): Likewise.
2732         (vsx_le_perm_store_<mode>): Likewise.
2733         (vsx_xxpermdi2_le_<mode>): Likewise.
2734         (vsx_xxpermdi4_le_<mode>): Likewise.
2735         (vsx_lxvd2x2_le_<mode>): Likewise.
2736         (vsx_lxvd2x4_le_<mode>): Likewise.
2737         (vsx_stxvd2x2_le_<mode>): Likewise.
2738         (vsx_add<mode>3): Likewise.
2739         (vsx_sub<mode>3): Likewise.
2740         (vsx_mul<mode>3): Likewise.
2741         (vsx_div<mode>3): Likewise.
2742         (vsx_tdiv<mode>3_internal): Likewise.
2743         (vsx_fre<mode>2): Likewise.
2744         (vsx_neg<mode>2): Likewise.
2745         (vsx_abs<mode>2): Likewise.
2746         (vsx_nabs<mode>2): Likewise.
2747         (vsx_smax<mode>3): Likewise.
2748         (vsx_smin<mode>3): Likewise.
2749         (vsx_sqrt<mode>2): Likewise.
2750         (vsx_rsqrte<mode>2): Likewise.
2751         (vsx_tsqrt<mode>2_internal): Likewise.
2752         (vsx_fms<mode>4): Likewise.
2753         (vsx_nfma<mode>4): Likewise.
2754         (vsx_eq<mode>): Likewise.
2755         (vsx_gt<mode>): Likewise.
2756         (vsx_ge<mode>): Likewise.
2757         (vsx_eq<mode>_p): Likewise.
2758         (vsx_gt<mode>_p): Likewise.
2759         (vsx_ge<mode>_p): Likewise.
2760         (vsx_xxsel<mode>): Likewise.
2761         (vsx_xxsel<mode>_uns): Likewise.
2762         (vsx_copysign<mode>3): Likewise.
2763         (vsx_float<VSi><mode>2): Likewise.
2764         (vsx_floatuns<VSi><mode>2): Likewise.
2765         (vsx_fix_trunc<mode><VSi>2): Likewise.
2766         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
2767         (vsx_x<VSv>r<VSs>i): Likewise.
2768         (vsx_x<VSv>r<VSs>ic): Likewise.
2769         (vsx_btrunc<mode>2): Likewise.
2770         (vsx_b2trunc<mode>2): Likewise.
2771         (vsx_floor<mode>2): Likewise.
2772         (vsx_ceil<mode>2): Likewise.
2773         (vsx_<VS_spdp_insn>): Likewise.
2774         (vsx_xscvspdp): Likewise.
2775         (vsx_xvcvspuxds): Likewise.
2776         (vsx_float_fix_<mode>2): Likewise.
2777         (vsx_set_<mode>): Likewise.
2778         (vsx_extract_<mode>_internal1): Likewise.
2779         (vsx_extract_<mode>_internal2): Likewise.
2780         (vsx_extract_<mode>_load): Likewise.
2781         (vsx_extract_<mode>_store): Likewise.
2782         (vsx_splat_<mode>): Likewise.
2783         (vsx_xxspltw_<mode>): Likewise.
2784         (vsx_xxspltw_<mode>_direct): Likewise.
2785         (vsx_xxmrghw_<mode>): Likewise.
2786         (vsx_xxmrglw_<mode>): Likewise.
2787         (vsx_xxsldwi_<mode>): Likewise.
2788         (vsx_xscvdpspn): Tighten constraints to only use register classes
2789         the types use.
2790         (vsx_xscvspdpn): Likewise.
2791         (vsx_xscvdpspn_scalar): Likewise.
2793         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
2794         wj, and wk constraints.
2795         (GPR_REG_CLASS_P): New helper macro for register classes targeting
2796         general purpose registers.
2798         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
2799         direct moves.
2800         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
2801         DImode instead of wm.  Use wk constraint for direct move of DFmode
2802         instead of wm.
2803         (extendsidi2_lfiwax): Likewise.
2804         (lfiwax): Likewise.
2805         (lfiwzx): Likewise.
2806         (movdi_internal64): Likewise.
2808         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
2809         wk constraints. Make the wy constraint documentation match them
2810         implementation.
2812 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2814         Backport from mainline
2815         2014-08-04 Ganesh Gopalasubramanian
2816                    <Ganesh.Gopalasubramanian@amd.com>
2818         * config/i386/i386.c (ix86_option_override_internal): Add
2819         PTA_RDRND and PTA_MOVBE for bdver4.
2821 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2823         Backport from mainline
2824         2014-08-04  Ganesh Gopalasubramanian
2825                     <Ganesh.Gopalasubramanian@amd.com>
2827         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
2828         extended family information. Handle BTVER2 cpu with cpuid family value.
2830 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2832         Backport from mainline
2833         2014-06-16  Ganesh Gopalasubramanian
2834                     <Ganesh.Gopalasubramanian@amd.com>
2836         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2837         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2838         handling 32-bit multiplication.
2840 2014-08-08  Guozhi Wei  <carrot@google.com>
2842         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
2844 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
2846         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
2847         constraint.
2849 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
2851         PR debug/61923
2852         * haifa-sched.c (advance_one_cycle): Fix dump.
2853         (schedule_block): Don't advance cycle if we are already at the
2854         beginning of the cycle.
2856 2014-08-06  Richard Biener  <rguenther@suse.de>
2858         PR tree-optimization/61320
2859         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
2860         handle misaligned loads.
2862 2014-08-04  Rohit  <rohitarulraj@freescale.com>
2864         PR target/60102
2865         * config/rs6000/rs6000.c
2866         (rs6000_reg_names): Add SPE high register names.
2867         (alt_reg_names): Likewise.
2868         (rs6000_dwarf_register_span): For SPE high registers, replace
2869         dwarf register numbers with GCC hard register numbers.
2870         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
2871         (rs6000_dbx_register_number): For SPE high registers, return dwarf
2872         register number for the corresponding GCC hard register number.
2873         * config/rs6000/rs6000.h
2874         (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
2875         register numbers for SPE high registers.
2876         (DWARF_FRAME_REGISTERS):  Likewise.
2877         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
2878         (DWARF_FRAME_REGNUM): Likewise.
2879         (FIXED_REGISTERS): Likewise.
2880         (CALL_USED_REGISTERS): Likewise.
2881         (CALL_REALLY_USED_REGISTERS): Likewise.
2882         (REG_ALLOC_ORDER): Likewise.
2883         (enum reg_class): Likewise.
2884         (REG_CLASS_NAMES): Likewise.
2885         (REG_CLASS_CONTENTS): Likewise.
2886         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
2888 2014-08-01  Vladimir Makarov  <vmakarov@redhat.com>
2890         * lra-constraints.c (remove_inheritance_pseudos): Process
2891         destination pseudo too.
2893 2014-08-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2895         Backport from mainline
2896         2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2898         PR tree-optimization/61375
2899         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
2900         symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
2901         (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
2903 2014-08-01  Richard Biener  <rguenther@suse.de>
2905         PR tree-optimization/61964
2906         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
2907         by structural equality.
2909 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
2911         Backport from mainline
2912         2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
2914         PR target/61844
2915         * config/sh/sh.c (sh_legitimate_address_p,
2916         sh_legitimize_reload_address): Handle reg+reg address modes when
2917         ALLOW_INDEXED_ADDRESS is false.
2918         * config/sh/predicates.md (general_movsrc_operand,
2919         general_movdst_operand): Likewise.
2921 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
2923         Backport from mainline
2924         2014-07-14  Jakub Jelinek  <jakub@redhat.com>
2926         PR target/61656
2927         * config/i386/i386.c (classify_argument): Don't merge classes above
2928         number of words.
2930 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
2932         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
2934 2014-07-24  Kyle McMartin  <kyle@redhat.com>
2936         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
2938 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2940         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
2941         Add prototype.
2942         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
2943         function.  Issue -Wpsabi warning if future GCC releases will use
2944         different field alignment rules for this type.
2945         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
2946         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2947         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2949 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2951         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
2952         -Wpsabi note when encountering a type where future GCC releases
2953         will apply different alignment requirements.
2955 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2957         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
2958         does not fit fully into floating-point registers, and there is still
2959         space in the register parameter area, issue -Wpsabi note that the ABI
2960         will change in a future GCC release.
2962 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2964         * config/arm/t-rtems-eabi: Add
2965         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
2966         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
2967         mbig-endian/mthumb/march=armv7-r, and
2968         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
2969         multilibs.
2971 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2972             Chris Johns <chrisj@rtems.org>
2973             Joel Sherrill <joel.sherrill@oarcorp.com>
2975         * config.gcc: Add nios2-*-rtems*.
2976         * config/nios2/rtems.h: New file.
2977         * gcc/config/nios2/t-rtems: New file.
2979 2014-07-21  Peter Bergner  <bergner@vnet.ibm.com>
2981         * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
2982         (LIBTSAN_EARLY_SPEC): Likewise.
2984 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
2986         Backport from mainline
2987         2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
2989         PR target/61855
2990         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
2991         out of #ifdef __OPTIMIZE__.
2993 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
2995         * expr.c (store_field): Handle VOIDmode for calls that return values
2996         in multiple locations.
2998 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3000         * toplev.c (output_stack_usage): Adjust the location of the warning.
3002 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
3004         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
3005         (*membar_storeload): Disable for LEON3.
3007 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3009         Backport from mainline
3010         2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
3012         PR target/61662
3013         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3015 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3017         Backport from mainline
3018         2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3020         PR target/61794
3021         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
3022         Fix instruction constraint.
3023         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3025 2014-07-17  Richard Biener  <rguenther@suse.de>
3027         Backport from mainline
3028         2014-07-14  Richard Biener  <rguenther@suse.de>
3030         PR tree-optimization/61779
3031         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3032         simplifying a condition.
3034 2014-07-17  Richard Biener  <rguenther@suse.de>
3036         PR rtl-optimization/61801
3037         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
3038         don't set reg_pending_barrier if it appears in a debug-insn.
3040 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
3042         Backport from trunk.
3043         PR target/61737.
3044         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
3045         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3046         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
3047         functions.
3048         (cris_print_index, cris_print_operand, cris_constant_index_p)
3049         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
3050         (cris_address_cost): Ditto last CONSTANT_P.
3051         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
3052         callers changed.  Yield cris_offsettable_symbol for non-PIC
3053         constant symbolic expressions including labels.  Yield cris_unspec
3054         for all unspecs.
3055         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
3056         target to pic_offset_table_rtx for calls that will likely go
3057         through PLT, const0_rtx when they can't.  All callers changed.
3058         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
3059         symbolic expressions to be PICified.  Remove second, redundant,
3060         assert on can_create_pseudo_p returning non-zero.  Use
3061         replace_equiv_address_nv, not replace_equiv_address, for final
3062         operand update.
3063         * config/cris/cris.md ("movsi"): Move variable t to pattern
3064         toplevel. Adjust assert for new cris_symbol_type member.  Use
3065         CONSTANT_P instead of CONSTANT_ADDRESS_P.
3066         ("*movsi_internal") <case 9>: Make check for valid unspec operands
3067         for lapc stricter.
3068         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
3069         ("call", "call_value"): Use second incoming operand as a marker
3070         for pic-offset-table-register being used.
3071         ("*expanded_call_non_v32", "*expanded_call_v32")
3072         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
3073         second incoming operand to CALL, match cris_call_type_marker.
3074         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
3075         ("*expanded_call_side"): Ditto.  Fix typo in comment.
3076         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
3077         CONSTANT_P.
3078         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
3079         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
3080         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
3081         users changed.  Add members cris_offsettable_symbol and cris_unspec.
3082         (cris_symbol_type): Rename from cris_pic_symbol_type.
3083         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
3084         just CONSTANT_P.
3085         * config/cris/cris-protos.h (cris_symbol_type_of,
3086         cris_expand_pic_call_address): Adjust prototypes.
3087         (cris_legitimate_constant_p): New prototype.
3089         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
3090         an existing tmake_file.  Don't add t-slibgcc and t-linux.
3092 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
3094         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3095         on the FUNCTION_DECL.
3097         * BASE-VER: Set to 4.9.2.
3098         * DEV-PHASE: Set to prerelease.
3100 2014-07-16  Release Manager
3102         * GCC 4.9.1 released.
3104 2014-07-10  Cary Coutant  <ccoutant@google.com>
3106         Backport from trunk at r212211.
3108         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3109         lookup.
3110         (resolve_addr_in_expr): When replacing the rtx in a location list
3111         entry, get a new address table entry.
3112         (dwarf2out_finish): Call index_location_lists even if there are no
3113         addr_index_table entries yet.
3115 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
3117         * doc/install.texi: Remove links to defunct package providers for
3118         Solaris.
3120 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
3122         PR middle-end/53590
3123         * function.c (allocate_struct_function): Revert r188667 change.
3125         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3127 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
3129         Backport r211369 from trunk.
3130         2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
3132         PR target/61062
3133         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3134         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3135         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3136         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3137         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3138         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3139         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3140         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3141         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3144 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
3146         Backport r210219 from trunk.
3147         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3149         * config/arm/arm_neon.h: Update comment.
3150         * config/arm/neon-docgen.ml: Delete.
3151         * config/arm/neon-gen.ml: Delete.
3152         * doc/arm-neon-intrinsics.texi: Update comment.
3154 2014-07-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3156         Backport r211775 from trunk.
3157         2014-06-18  Terry Guo  <terry.guo@arm.com>
3159         PR target/61544
3160         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3161         reach the head.
3163 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3165         PR rtl-optimization/61673
3166         * combine.c (simplify_comparison): Test just mode's sign bit
3167         in tmode rather than the sign bit and any bits above it.
3169 2014-07-08  James Greenhalgh  <james.greenhalgh@arm.com>
3171         Backport r212298 from trunk.
3172         2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
3174         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3175         (move_lo_quad_internal_be_<mode>): Likewise.
3176         (move_lo_quad_<mode>): Convert to define_expand.
3177         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3178         (aarch64_simd_move_hi_quad_be_<mode>): New.
3179         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3180         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3181         (aarch64_combinez_be<mode>): New.
3182         (aarch64_combine<mode>): Convert to define_expand.
3183         (aarch64_combine_internal<mode>): New.
3184         (aarch64_simd_combine<mode>): Remove bogus RTL description.
3186 2014-07-08  Richard Biener  <rguenther@suse.de>
3188         PR tree-optimization/61680
3189         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3190         Handle properly all read-write dependences with group accesses.
3192         PR tree-optimization/61681
3193         * tree-ssa-structalias.c (find_what_var_points_to): Expand
3194         NONLOCAL inside ESCAPED.
3196 2014-07-08  Alan Lawrence  <alan.lawrence@arm.com>
3198         Backport r211502 from mainline.
3199         2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
3201         PR target/59843
3202         * config/aarch64/aarch64-modes.def: Add V1DFmode.
3203         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3204         Support V1DFmode.
3206 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3208         PR tree-optimization/61725
3209         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3210         range, use range_includes_zerop_p instead of integer_zerop on
3211         vr0->min, only use log2 of max if min is not negative.
3213 2014-07-06  Gerald Pfeifer  <gerald@pfeifer.com>
3215         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
3217 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
3219         PR middle-end/61654
3220         * cgraphunit.c (expand_thunk): Call free_dominance_info.
3222         PR tree-optimization/61684
3223         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3224         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3226 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
3228         Backported from mainline
3229         2014-06-27  Jakub Jelinek  <jakub@redhat.com>
3231         PR tree-optimization/57233
3232         PR tree-optimization/61299
3233         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
3234         functions.
3235         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
3236         would be lowered to scalar shifts, check if corresponding
3237         shifts and vector BIT_IOR_EXPR are supported and don't lower
3238         or lower just to narrower vector type in that case.
3239         * expmed.c (expand_shift_1): Fix up handling of vector
3240         shifts and rotates.
3242         2014-06-25  Jakub Jelinek  <jakub@redhat.com>
3244         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
3245         (LANG_HOOKS_DECLS): Add it.
3246         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
3247         has correct type.
3248         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
3249         * langhooks.h (struct lang_hooks_for_decls): Add
3250         omp_clause_linear_ctor hook.
3251         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
3252         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
3253         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
3254         combined simd loop use omp_clause_linear_ctor hook.
3256         2014-06-24  Jakub Jelinek  <jakub@redhat.com>
3258         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3259         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
3260         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3261         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
3262         (gimplify_adjust_omp_clauses): Likewise.
3263         * omp-low.c (lower_rec_simd_input_clauses,
3264         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3265         safelen the same as safelen(1).
3266         * tree-nested.c (convert_nonlocal_omp_clauses,
3267         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
3268         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3269         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3270         Fixup handling of GIMPLE_OMP_TARGET.
3271         (convert_tramp_reference_stmt, convert_gimple_call): Handle
3272         GIMPLE_OMP_TARGET.
3274         2014-06-18  Jakub Jelinek  <jakub@redhat.com>
3276         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3277         change in ORT_TARGET region, don't jump to do_outer.
3278         (struct gimplify_adjust_omp_clauses_data): New type.
3279         (gimplify_adjust_omp_clauses_1): Adjust for data being
3280         a struct gimplify_adjust_omp_clauses_data pointer instead
3281         of tree *.  Pass pre_p as a new argument to
3282         lang_hooks.decls.omp_finish_clause hook.
3283         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3284         splay_tree_foreach to pass both list_p and pre_p.
3285         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3286         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3287         gimplify_adjust_omp_clauses callers.
3288         * langhooks.c (lhd_omp_finish_clause): New function.
3289         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3290         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3291         * langhooks.h (struct lang_hooks_for_decls): Add a new
3292         gimple_seq * argument to omp_finish_clause hook.
3293         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3294         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3295         (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
3296         add it to outer ctx's decl_map as identity.
3297         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3298         * tree-nested.c (convert_nonlocal_omp_clauses,
3299         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3300         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3302         2014-06-10  Jakub Jelinek  <jakub@redhat.com>
3304         PR fortran/60928
3305         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3306         Set lastprivate_firstprivate even if omp_private_outer_ref
3307         langhook returns true.
3308         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
3309         langhook, call unshare_expr on new_var and call
3310         build_outer_var_ref to get the last argument.
3312         2014-05-11  Jakub Jelinek  <jakub@redhat.com>
3314         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
3315         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
3316         number of operands to 3.
3317         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
3318         * tree-nested.c (convert_nonlocal_omp_clauses,
3319         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
3320         * gimplify.c (gimplify_scan_omp_clauses): Handle
3321         OMP_CLAUSE_LINEAR_STMT.
3322         * omp-low.c (lower_rec_input_clauses): Fix typo.
3323         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
3324         cast between Fortran boolean_type_node and C _Bool if needed.
3326 2014-06-30  Jason Merrill  <jason@redhat.com>
3328         PR c++/51253
3329         PR c++/61382
3330         * gimplify.c (gimplify_arg): Non-static.
3331         * gimplify.h: Declare it.
3333 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3335         Backport from Mainline
3336         2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3338         PR target/61633
3339         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
3340         Add alternative; make early clobber.  Adjust both split patterns
3341         to use operand 0 as the working register.
3343 2014-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3345         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
3346         Update comments.
3347         (VCONQ): Make comment more helpful.
3348         (VCON): Delete.
3349         * config/aarch64/aarch64-simd.md
3350         (aarch64_sqdmulh_lane<mode>):
3351         Use VCOND for operands 2.  Update lane checking and flipping logic.
3352         (aarch64_sqrdmulh_lane<mode>): Likewise.
3353         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
3354         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
3355         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
3356         attribute of operand 3 to VCOND.
3357         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
3358         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
3359         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
3360         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
3361         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
3362         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
3363         define_insn.
3364         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
3365         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
3366         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
3367         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
3368         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
3369         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
3370         operand to VCOND.  Update lane flipping and bounds checking logic.
3371         (aarch64_sqdmlal2_lane<mode>): Likewise.
3372         (aarch64_sqdmlsl_lane<mode>): Likewise.
3373         (aarch64_sqdmull_lane<mode>): Likewise.
3374         (aarch64_sqdmull2_lane<mode>): Likewise.
3375         (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
3376         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
3377         (aarch64_sqdmlal2_laneq<mode>): Emit
3378         aarch64_sqdmlal2_laneq<mode>_internal insn.
3379         Replace VCON with VCONQ.
3380         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
3381         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3382         (aarch64_sqdmull_laneq<mode>): Emit
3383         aarch64_sqdmull_laneq<mode>_internal insn.
3384         Replace VCON with VCONQ.
3385         (aarch64_sqdmull2_laneq<mode>): Emit
3386         aarch64_sqdmull2_laneq<mode>_internal insn.
3387         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
3388         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
3389         of 3rd argument to int16x4_t.
3390         (vqdmlalh_lane_s16): Likewise.
3391         (vqdmlslh_lane_s16): Likewise.
3392         (vqdmull_high_lane_s16): Likewise.
3393         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
3394         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
3395         (vqdmlsl_lane_s16): Likewise.
3396         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
3397         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
3398         (vqdmlals_lane_s32): Likewise.
3399         (vqdmlsls_lane_s32): Likewise.
3400         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
3401         (vqdmulls_lane_s32): Likewise.
3402         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
3403         (vqdmlsl_lane_s32): Likewise.
3404         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
3405         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
3406         (vqrdmulhh_lane_s16): Likewise.
3407         (vqdmlsl_high_lane_s16): Likewise.
3408         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
3409         (vqdmlsl_high_lane_s32): Likewise.
3410         (vqrdmulhs_lane_s32): Likewise.
3412 2014-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3414         Backport from Mainline
3415         2014-06-20  Jakub Jelinek  <jakub@redhat.com>
3416         2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3418         PR tree-optimization/61306
3419         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
3420         expression instead of its size.
3421         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
3422         false to prevent optimization when the result is unpredictable due to
3423         arithmetic right shift of signed type with highest byte is set.
3424         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
3425         (find_bswap_1): Likewise. Return NULL to prevent optimization when the
3426         result is unpredictable due to sign extension.
3427         (find_bswap): Adapt to change in struct symbolic_number.
3429 2014-06-27  Martin Jambor  <mjambor@suse.cz>
3431         PR ipa/61160
3432         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
3433         args_to_skip, use those from node instead.  Copy args_to_skip and
3434         combined_args_to_skip from node to the new thunk.
3435         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
3436         (cgraph_create_virtual_clone): Moved computation of
3437         combined_args_to_skip...
3438         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
3440 2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
3442         Backport from mainline
3443         2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
3445         PR target/61586
3446         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
3448 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3450         PR target/61542
3451         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
3452         extraction other than index 3.
3454 2014-06-26  Marc Glisse  <marc.glisse@inria.fr>
3456         PR target/61503
3457         * config/i386/i386.md (x86_64_shrd, x86_shrd,
3458         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
3460 2014-06-26  Martin Jambor  <mjambor@suse.cz>
3462         Backport from mainline
3463         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
3464         renamed to ipa_impossible_devirt_target.  Fix typo.
3465         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
3466         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
3467         ipa_impossible_devirt_target.
3469 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
3471         PR target/61570
3472         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
3473         model family 6 CPU with has_longmode never use a CPU without
3474         64-bit support.
3476         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
3477         not mentioned in clauses use private clause if the iterator is
3478         declared in #pragma omp for simd, and when adding lastprivate
3479         instead, add it to the outer #pragma omp for too.  Diagnose
3480         if the variable is private in outer context.  For simd collapse > 1
3481         loops, replace all iterators with temporaries.
3482         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
3483         same even in collapse > 1 loops.
3485 2014-06-23  Alan Modra  <amodra@gmail.com>
3487         PR bootstrap/61583
3488         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
3489         to zero on debug statements.
3491 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3493         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
3494         New expander.
3495         (aarch64_sqrdmulh_lane<mode>): Likewise.
3496         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3497         (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
3498         (aarch64_sqdmulh_laneq<mode>): New expander.
3499         (aarch64_sqrdmulh_laneq<mode>): Likewise.
3500         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
3501         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
3502         (aarch64_sqdmulh_lane<mode>): New expander.
3503         (aarch64_sqrdmulh_lane<mode>): Likewise.
3504         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3505         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3506         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
3507         (aarch64_sqdmlal_laneq<mode>): Likewise.
3508         (aarch64_sqdmlsl_lane<mode>): Likewise.
3509         (aarch64_sqdmlsl_laneq<mode>): Likewise.
3510         (aarch64_sqdmlal2_lane<mode>): Likewise.
3511         (aarch64_sqdmlal2_laneq<mode>): Likewise.
3512         (aarch64_sqdmlsl2_lane<mode>): Likewise.
3513         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3514         (aarch64_sqdmull_lane<mode>): Likewise.
3515         (aarch64_sqdmull_laneq<mode>): Likewise.
3516         (aarch64_sqdmull2_lane<mode>): Likewise.
3517         (aarch64_sqdmull2_laneq<mode>): Likewise.
3519 2014-06-20  Martin Jambor  <mjambor@suse.cz>
3521         PR ipa/61540
3522         * ipa-prop.c (impossible_devirt_target): New function.
3523         (try_make_edge_direct_virtual_call): Use it, also instead of
3524         asserting.
3526 2014-06-20  Martin Jambor  <mjambor@suse.cz>
3528         PR ipa/61211
3529         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
3530         expanded clones.
3532 2014-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
3534         Backport from mainline
3536         2014-06-20  Julian Brown  <julian@codesourcery.com>
3537                     Chung-Lin Tang  <cltang@codesourcery.com>
3539         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
3540         TARGET_THUMB1_ONLY. Add comments.
3542 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
3544         Backport from mainline
3545         2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
3547         * config/i386/i386.c (decide_alg): Correctly handle
3548         maximum size of stringop algorithm.
3550 2014-06-18  Richard Henderson  <rth@redhat.com>
3552         PR target/61545
3553         * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
3555 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
3557         PR target/61483
3558         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
3559         variable 'size'; calculate 'size' right in the front; use
3560         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
3561         pcum->aapcs_stack_words.
3563 2014-06-17  Nick Clifton  <nickc@redhat.com>
3565         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
3566         (umulhi3, mulsidi3, umulsidi3): Likewise.
3568 2014-06-17  Uros Bizjak  <ubizjak@gmail.com>
3570         Backport from mainline
3571         2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
3573         PR target/61423
3574         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
3575         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
3576         and corresponding splitters.  Zero extend general register
3577         or memory input operand to XMM temporary.  Enable for
3578         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
3579         (floatunssi<mode>2): Update expander predicate.
3581 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
3583         PR rtl-optimization/61325
3584         * lra-constraints.c (valid_address_p): Add forward declaration.
3585         (simplify_operand_subreg): Check address validity before and after
3586         alter_reg of memory subreg.
3588 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
3590         PR plugins/45078
3591         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
3593 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
3595         Backport from mainline
3597         2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
3598         PR target/61415
3599         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
3600         (BU_MISC_2): Rename to ...
3601         (BU_LDBL128_2): ... this.
3602         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
3603         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
3604         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3605         RS6000_BTM_LDBL128.
3606         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
3607         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
3608         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
3609         (unpacktf_1): Likewise.
3610         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
3611         (__builtin_longdouble_dw1): Likewise.
3612         * doc/sourcebuild.texi (longdouble128): Document.
3614 2014-06-13  Jeff Law  <law@redhat.com>
3616         Backports from mainline:
3617         2014-06-13  Jeff Law  <law@redhat.com>
3619         PR rtl-optimization/61094
3620         PR rtl-optimization/61446
3621         * ree.c (combine_reaching_defs): Get the mode for the copy from
3622         the extension insn rather than the defining insn.
3624         2014-06-02  Jeff Law  <law@redhat.com>
3626         PR rtl-optimization/61094
3627         * ree.c (combine_reaching_defs): Do not reextend an insn if it
3628         was marked as do_no_reextend.  If a copy is needed to eliminate
3629         an extension, then mark it as do_not_reextend.
3631 2014-06-13  Martin Jambor  <mjambor@suse.cz>
3633         PR ipa/61186
3634         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
3635         cache_token if returning early.
3637 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
3639         PR middle-end/61486
3640         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
3641         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
3642         if outer combined construct is distribute.
3643         (gimplify_omp_for): For OMP_DISTRIBUTE set
3644         gimplify_omp_ctxp->distribute.
3645         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3646         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3647         mapping into decl map.
3649 2014-06-12  Jeff Law  <law@redhat.com>
3651         Backports from mainline:
3653         2014-06-12  Jeff Law  <law@redhat.com>
3655         PR tree-optimization/61009
3656         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3657         value when we stop processing a block due to problematic PHIs.
3659         2014-06-05  Jeff Law  <law@redhat.com>
3661         PR tree-optimization/61289
3662         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
3663         DST_MAP parameters.  Invalidate by walking all the SSA_NAME_VALUES
3664         looking for those which match LHS.  All callers changed.
3665         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
3666         parameters and code which manipulated them.  All callers changed.
3667         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
3668         and DST_MAP parameters.  Simplify invalidation code by just calling
3669         invalidate_equivalences.  All callers changed.
3670         (thread_across_edge): Simplify now that we don't need to maintain
3671         the map of equivalences to invalidate.
3673 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3675         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3677 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
3679         Backport from 2014-05-14 trunk r210418
3680         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
3681         shifted values to avoid build warning.
3683 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
3685         Backport from 2014-05-09 trunk r210272
3687         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
3688         unsigned int initializers for regno_in, regno_out.
3690         Backport from 2014-06-12 trunk r211491
3692         PR target/61443
3693         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3694         loading from address spaces.
3696 2014-06-12  Alan Modra  <amodra@gmail.com>
3698         PR target/61300
3699         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
3700         * doc/tm.texi: Regenerate.
3701         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
3702         Use throughout in place of REG_PARM_STACK_SPACE.
3703         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
3704         "incoming" param.  Pass to rs6000_function_parms_need_stack.
3705         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
3706         prototype_p when incoming.  Use function decl when incoming
3707         to handle K&R style functions.
3708         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
3709         (INCOMING_REG_PARM_STACK_SPACE): Define.
3711 2014-06-11  Richard Biener  <rguenther@suse.de>
3713         PR tree-optimization/61452
3714         * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
3715         expr and has_constants in case we found a leader.
3716         (simplify_binary_expression): Always valueize operands first.
3717         (simplify_unary_expression): Likewise.
3719 2014-06-11  Richard Biener  <rguenther@suse.de>
3721         PR middle-end/61456
3722         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3723         Do not use the main variant for the type comparison.
3725 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3727         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3728         available.
3729         Simplify description of __crc32d and __crc32cd intrinsics.
3730         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3731         availability.
3733 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
3735         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3736         call statement, if any.
3737         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3738         statements, if any.  Tidy up.
3740 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3742         Back port from trunk
3743         2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3745         PR target/61431
3746         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3747         iterators, VSX_D that handles 64-bit types, and VSX_LE that
3748         handles swapping the two 64-bit double words on little endian
3749         systems.  Include V1TImode and optionally TImode in VSX_LE so that
3750         these types are properly swapped.  Change all of the insns and
3751         splits that do the 64-bit swaps to use VSX_LE.
3752         (vsx_le_perm_load_<mode>): Likewise.
3753         (vsx_le_perm_store_<mode>): Likewise.
3754         (splitters for little endian memory operations): Likewise.
3755         (vsx_xxpermdi2_le_<mode>): Likewise.
3756         (vsx_lxvd2x2_le_<mode>): Likewise.
3757         (vsx_stxvd2x2_le_<mode>): Likewise.
3759 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
3761         PR rtl-optimization/61325
3762         * lra-constraints.c (process_address_1): Check scale equal to one
3763         to prevent transformation: base + scale * index => base + new_reg.
3765 2014-06-05  Martin Jambor  <mjambor@suse.cz>
3767         PR ipa/61393
3768         * ipa-cp.c (determine_versionability): Pretend that tm_clones are
3769         not versionable.
3771 2014-06-04  Richard Biener  <rguenther@suse.de>
3773         PR tree-optimization/61383
3774         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
3775         stmts can't trap.
3777 2014-06-02  Jason Merrill  <jason@redhat.com>
3779         PR c++/61020
3780         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
3782 2014-06-03  Martin Jambor  <mjambor@suse.cz>
3784         PR ipa/61160
3785         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
3786         thunks.
3788 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
3790         Backport from mainline
3791         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
3793         PR rtl-optimization/60866
3794         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
3795         Default it to -1.  Pass it down to init_simplejump_data.
3796         (init_simplejump_data): New parameter old_seqno.  Pass it down
3797         to get_seqno_for_a_jump.
3798         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
3799         initializing new jump seqno as a last resort.  Add comment.
3800         (sel_redirect_edge_and_branch): Save old seqno of the conditional
3801         jump and pass it down to sel_init_new_insn.
3802         (sel_redirect_edge_and_branch_force): Likewise.
3804 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
3806         Backport from mainline
3807         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
3809         PR rtl-optimization/60901
3810         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
3811         bb predecessor belongs to the same scheduling region.  Adjust comment.
3813 2014-06-03  Uros Bizjak  <ubizjak@gmail.com>
3815         Backport from mainline
3816         2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
3818         PR target/61239
3819         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
3820         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
3822 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
3824         PR rtl-optimization/61325
3825         * lra-constraints.c (process_address): Rename to
3826         process_address_1.
3827         (process_address): New function.
3829 2014-05-29  Uros Bizjak  <ubizjak@gmail.com>
3831         Backport from mainline
3832         2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
3834         PR target/61271
3835         * config/i386/i386.c (ix86_rtx_costs)
3836         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
3837         Fix condition.
3839 2014-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3841         Backport from mainline
3842         2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3844         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
3845         predicate to detect a negative quotient.
3847 2014-05-28  Richard Biener  <rguenther@suse.de>
3849         Backport from mainline
3850         2014-05-28  Richard Biener  <rguenther@suse.de>
3852         PR middle-end/61045
3853         * fold-const.c (fold_comparison): When folding
3854         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
3855         the sign of the remaining constant operand stays the same.
3857         2014-05-05  Richard Biener  <rguenther@suse.de>
3859         PR middle-end/61010
3860         * fold-const.c (fold_binary_loc): Consistently avoid
3861         canonicalizing X & CST away from a CST that is the mask
3862         of a mode.
3864         2014-04-28  Richard Biener  <rguenther@suse.de>
3866         PR tree-optimization/60979
3867         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
3868         SCOPs that end in a block with a successor with abnormal
3869         predecessors.
3871 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3873         * configure.ac ($gcc_cv_ld_clearcap): New test.
3874         * configure: Regenerate.
3875         * config.in: Regenerate.
3876         * config/sol2.opt (mclear-hwcap): New option.
3877         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
3878         * config/sol2-clearcap.map: Moved here from
3879         testsuite/gcc.target/i386/clearcap.map.
3880         * config/sol2-clearcapv2.map: Move here from
3881         gcc.target/i386/clearcapv2.map.
3882         * config/t-sol2 (install): Depend on install-clearcap-map.
3883         (install-clearcap-map): New target.
3884         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
3885         -mclear-hwcap.
3887 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
3889         PR libgcc/61152
3890         * config/dbx.h (License): Add Runtime Library Exception.
3891         * config/newlib-stdint.h (License): Same.
3892         * config/rtems.h (License): Same
3893         * config/initfini-array.h (License): Same
3894         * config/v850/v850.h (License): Same.
3895         * config/v850/v850-opts.h (License): Same
3896         * config/v850/rtems.h (License): Same.
3898 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
3900         PR target/61044
3901         * doc/extend.texi (Local Labels): Note that label differences are
3902         not supported for AVR.
3904 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
3906         Backport from 2014-05-12 mainline r210322.
3907         Backport from 2014-05-27 mainline r210959, r210969.
3909         PR libgcc/61152
3910         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
3911         * config/arm/arm-cores.def (License): Same.
3912         * config/arm/arm-opts.h (License): Same.
3913         * config/arm/aout.h (License): Same.
3914         * config/arm/bpabi.h (License): Same.
3915         * config/arm/elf.h (License): Same.
3916         * config/arm/linux-elf.h (License): Same.
3917         * config/arm/linux-gas.h (License): Same.
3918         * config/arm/netbsd-elf.h (License): Same.
3919         * config/arm/uclinux-eabi.h (License): Same.
3920         * config/arm/uclinux-elf.h (License): Same.
3921         * config/arm/vxworks.h (License): Same.
3923 2014-05-26  Michael Tautschnig  <mt@debian.org>
3925         PR target/61249
3926         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3927         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
3929 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
3931         PR rtl-optimization/61215
3932         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3933         simplify_gen_subreg until final substitution.
3935 2014-05-23  Alan Modra  <amodra@gmail.com>
3937         PR target/61231
3938         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3939         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3940         Use "Y" constraint rather than "m".
3942 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
3944         PR rtl-optimization/60969
3945         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3946         constraints.  Set up mem cost for NO_REGS case.
3948 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
3950         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3952 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
3954         PR target/61208
3955         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3957 2014-05-22  Nick Clifton  <nickc@redhat.com>
3959         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3961 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
3963         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3964         all padding bits in REAL_VALUE_TYPE are cleared.
3966 2014-05-21  Guozhi Wei  <carrot@google.com>
3968         PR target/61202
3969         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3970         constraint.
3971         (vqdmulhq_n_s16): Likewise.
3973 2014-05-21  Martin Jambor  <mjambor@suse.cz>
3975         * doc/invoke.texi (Optimize Options): Document parameters
3976         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3977         ipa-cp-array-index-hint-bonus.
3979 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
3981         PR middle-end/61252
3982         * omp-low.c (handle_simd_reference): New function.
3983         (lower_rec_input_clauses): Use it.  Defer adding reference
3984         initialization even for reduction without placeholder if in simd,
3985         handle it properly later on.
3987 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
3989         PR bootstrap/60984
3990         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
3991         parameter.
3992         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
3993         (ipa_inline): Loop inline_to_all_callers until no more aliases
3994         are removed.
3996 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
3998         PR lto/60820
3999         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4001 2014-05-20  DJ Delorie  <dj@redhat.com>
4003         * config/msp430/msp430.md (split): Don't allow subregs when
4004         splitting SImode adds.
4005         (andneghi): Fix subtraction logic.
4006         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4008 2014-05-20  Nick Clifton  <nickc@redhat.com>
4010         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4011         (msp430_gimplify_va_arg_expr): New function.
4012         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4014         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4015         operand 0 in order to prevent confusion about the number of
4016         registers involved.
4018 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4020         * config/arm/arm.md (arith_shiftsi): Do not predicate for
4021         arm_restrict_it.
4023 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
4025         * arm.c (thumb1_reorg): When scanning backwards skip anything
4026         that's not a proper insn.
4028 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4030         * ipa.c (symtab_remove_unreachable_nodes): Remove
4031         symbol from comdat group if its body was eliminated.
4032         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4033         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4034         (symtab_unregister_node): ... this one.
4035         (verify_symtab_base): More strict checking of comdats.
4036         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4038 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4040         * opts.c (common_handle_option): Disable -fipa-reference coorectly
4041         with -fuse-profile.
4043 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4045         PR ipa/60854
4046         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4047         external aliases alive, too.
4049 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
4051         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
4053 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
4055         Backport from mainline
4056         2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4058         PR target/60969
4059         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
4060         alternative 12.
4062 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
4064         PR rtl-optimization/60969
4065         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4066         Calculate costs for this case.
4068 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
4070         PR target/61193
4071         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4072         (__TM_simple_begin): Use it.
4073         (__TM_begin): Likewise.
4075 2014-05-15  Martin Jambor  <mjambor@suse.cz>
4077         PR ipa/61085
4078         * ipa-prop.c (update_indirect_edges_after_inlining): Check
4079         type_preserved flag when the indirect edge is polymorphic.
4081 2014-05-15  Martin Jambor  <mjambor@suse.cz>
4083         PR ipa/60897
4084         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4086 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
4088         PR tree-optimization/61158
4089         * fold-const.c (fold_binary_loc): If X is zero-extended and
4090         shiftc >= prec, make sure zerobits is all ones instead of
4091         invoking undefined behavior.
4093 2014-05-14  Cary Coutant  <ccoutant@google.com>
4095         PR debug/61013
4096         * opts.c (common_handle_option): Don't special-case "-g".
4097         (set_debug_level): Default to at least level 2 with "-g".
4099 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
4101         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4102         Delete.
4103         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4104         * config/sparc/sparc.md (fptype_ut699): New attribute.
4105         (in_branch_delay): Return false if -mfix-ut699 is specified and
4106         fptype_ut699 is set to single.
4107         (truncdfsf2): Add fptype_ut699 attribute.
4108         (fix_truncdfsi2): Likewise.
4109         (floatsisf2): Change fptype attribute.
4110         (fix_truncsfsi2): Likewise.
4111         (negtf2_notv9): Delete.
4112         (negtf2_v9): Likewise.
4113         (negtf2_hq): New instruction.
4114         (negtf2): New instruction and splitter.
4115         (negdf2_notv9): Rewrite.
4116         (abstf2_notv9): Delete.
4117         (abstf2_hq_v9): Likewise.
4118         (abstf2_v9): Likewise.
4119         (abstf2_hq): New instruction.
4120         (abstf2): New instruction and splitter.
4121         (absdf2_notv9): Rewrite.
4123 2014-05-14  Matthias Klose  <doko@ubuntu.com>
4125         Revert:
4126         2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4127                     Matthias Klose  <doko@ubuntu.com>
4129         PR driver/61106
4130         * optc-gen.awk: Fix option handling for -Wunused-parameter.
4132 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
4134         * doc/sourcebuild.texi: (dfp_hw): Document.
4135         (p8vector_hw): Likewise.
4136         (powerpc_eabi_ok): Likewise.
4137         (powerpc_elfv2): Likewise.
4138         (powerpc_htm_ok): Likewise.
4139         (ppc_recip_hw): Likewise.
4140         (vsx_hw): Likewise.
4142 2014-05-13  Jeff Law  <law@redhat.com>
4144         Backports fromm mainline:
4146         2014-05-08  Jeff Law  <law@redhat.com>
4148         PR tree-optimization/61009
4149         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4150         tri-state rather than a boolean.  When a block is too big to
4151         thread through, inform caller via negative return value.
4152         (thread_across_edge): If a block was too big for normal threading,
4153         then it's too big for a joiner too, so remove temporary equivalences
4154         and return immediately.
4156         2014-04-28  Jeff Law  <law@redhat.com>
4158         PR tree-optimization/60902
4159         * tree-ssa-threadedge.c
4160         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4161         over real defs when invalidating outputs from statements that do not
4162         produce useful outputs for threading.
4164         2014-04-23  Jeff Law  <law@redhat.com>
4166         PR tree-optimization/60902
4167         * tree-ssa-threadedge.c
4168         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
4169         invalidate outputs from statements that do not produce useful
4170         outputs for threading.
4172 2014-05-13  Richard Biener  <rguenther@suse.de>
4174         PR ipa/60973
4175         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4176         it needs revisiting whether the call still may be tail-called.
4178 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
4180         PR target/61060
4181         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4182         is const0_rtx, return immediately.  Don't test count == 0 when
4183         it is always true.
4185 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4187         Backport from mainline
4188         2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4190         PR target/60991
4191         * config/avr/avr.c (avr_out_store_psi): Use correct constant
4192         to restore Y.
4194 2014-05-09  Uros Bizjak  <ubizjak@gmail.com>
4196         Backport from mainline
4197         2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
4199         PR target/61092
4200         * config/alpha/alpha.c: Include gimple-iterator.h.
4201         (alpha_gimple_fold_builtin): New function.  Move
4202         ALPHA_BUILTIN_UMULH folding from ...
4203         (alpha_fold_builtin): ... here.
4204         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4206 2014-05-09  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4208         Backport from 2014-04-16 trunk r209446
4209         2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4211         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4213 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
4215         Backport from 2014-05-09 trunk r210267
4217         PR target/61055
4218         * config/avr/avr.md (cc): Add new attribute set_vzn.
4219         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4220         Set cc insn attribute to set_vzn instead of set_zn for alternatives
4221         with INC, DEC or NEG.
4222         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4223         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4224         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4226 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4227             Matthias Klose  <doko@ubuntu.com>
4229         PR driver/61106
4230         * optc-gen.awk: Fix option handling for -Wunused-parameter.
4232 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
4234         PR target/59952
4235         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4237 2014-05-05  Marek Polacek  <polacek@redhat.com>
4239         Back port from mainline
4240         2014-05-05  Marek Polacek  <polacek@redhat.com>
4242         PR driver/61065
4243         * opts.c (common_handle_option): Call error_at instead of warning_at.
4245 2014-05-04  Jan Hubicka  <hubicka@ucw.cz>
4247         PR ipa/60965
4248         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4250 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
4252         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4253         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4254         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4255         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4256         Use RS6000_BTM_HARD_FLOAT.
4257         (BU_MISC_2): Likewise.
4258         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4259         RS6000_BTM_HARD_FLOAT.
4260         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4261         is explicitly used.
4262         (rs6000_invalid_builtin): Add hard floating builtin support.
4263         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4264         hard float builtins.
4265         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4267 2014-05-03  Joey Ye  <joey.ye@arm.com>
4269         Backport from mainline r209463
4270         2014-04-17  Joey Ye  <joey.ye@arm.com>
4272         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4274 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4276         Back port from mainline
4277         PR target/61026
4278         * config/sh/sh.c: Include stdlib headers before everything else.
4280 2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4282         PR tree-optimization/60930
4283         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
4284         creating a multiply candidate by folding two constant
4285         multiplicands when the result overflows.
4287 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
4289         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4290         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4291         (gimplify_adjust_omp_clauses): Simd region is never
4292         directly nested in combined parallel.  Instead, for linear
4293         with copyin/copyout, if in combined for simd loop, make decl
4294         firstprivate/lastprivate on OMP_FOR.
4295         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4296         expand_omp_for_static_chunk): When setting endvar, also set
4297         fd->loop.v to the same value.
4299 2014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4301         Back port from mainline
4302         2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4304         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
4305         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
4306         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
4307         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
4308         (TARGET_CRYPTO): Take TARGET_SIMD into account.
4310 2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
4312         Back port from mainline
4313         2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4315         * doc/extend.texi (PowerPC Built-in Functions): Document new
4316         powerpc extended divide, bcd, pack/unpack 128-bit, builtin
4317         functions.
4318         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
4320         * config/rs6000/predicates.md (const_0_to_3_operand): New
4321         predicate to match 0..3 integer constants.
4323         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
4324         to support adding miscellaneous builtin functions.
4325         (BU_DFP_MISC_2): Likewise.
4326         (BU_P7_MISC_1): Likewise.
4327         (BU_P7_MISC_2): Likewise.
4328         (BU_P8V_MISC_3): Likewise.
4329         (BU_MISC_1): Likewise.
4330         (BU_MISC_2): Likewise.
4331         (DIVWE): Add extended divide builtin functions.
4332         (DIVWEO): Likewise.
4333         (DIVWEU): Likewise.
4334         (DIVWEUO): Likewise.
4335         (DIVDE): Likewise.
4336         (DIVDEO): Likewise.
4337         (DIVDEU): Likewise.
4338         (DIVDEUO): Likewise.
4339         (DXEX): Add decimal floating-point builtin functions.
4340         (DXEXQ): Likewise.
4341         (DDEDPD): Likewise.
4342         (DDEDPDQ): Likewise.
4343         (DENBCD): Likewise.
4344         (DENBCDQ): Likewise.
4345         (DIEX): Likewise.
4346         (DIEXQ): Likewise.
4347         (DSCLI): Likewise.
4348         (DSCLIQ): Likewise.
4349         (DSCRI): Likewise.
4350         (DSCRIQ): Likewise.
4351         (CDTBCD): Add new BCD builtin functions.
4352         (CBCDTD): Likewise.
4353         (ADDG6S): Likewise.
4354         (BCDADD): Likewise.
4355         (BCDADD_LT): Likewise.
4356         (BCDADD_EQ): Likewise.
4357         (BCDADD_GT): Likewise.
4358         (BCDADD_OV): Likewise.
4359         (BCDSUB): Likewise.
4360         (BCDSUB_LT): Likewise.
4361         (BCDSUB_EQ): Likewise.
4362         (BCDSUB_GT): Likewise.
4363         (BCDSUB_OV): Likewise.
4364         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
4365         (UNPACK_TD): Likewise.
4366         (PACK_TF): Likewise.
4367         (UNPACK_TF): Likewise.
4368         (UNPACK_TF_0): Likewise.
4369         (UNPACK_TF_1): Likewise.
4370         (PACK_V1TI): Likewise.
4371         (UNPACK_V1TI): Likewise.
4373         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4374         support for decimal floating point builtin functions.
4375         (rs6000_expand_ternop_builtin): Add checks for the new builtin
4376         functions that take constant arguments.
4377         (rs6000_invalid_builtin): Add decimal floating point builtin
4378         support.
4379         (rs6000_init_builtins): Setup long double, _Decimal64, and
4380         _Decimal128 types for new builtin functions.
4381         (builtin_function_type): Set the unsigned flags appropriately for
4382         the new builtin functions.
4383         (rs6000_opt_masks): Add support for decimal floating point builtin
4384         functions.
4386         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
4387         floating point builtin functions.
4388         (RS6000_BTM_COMMON): Likewise.
4389         (RS6000_BTI_long_double): Likewise.
4390         (RS6000_BTI_dfloat64): Likewise.
4391         (RS6000_BTI_dfloat128): Likewise.
4392         (long_double_type_internal_node): Likewise.
4393         (dfloat64_type_internal_node): Likewise.
4394         (dfloat128_type_internal_node): Likewise.
4396         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
4397         2.07 bcd arithmetic instructions.
4398         (UNSPEC_BCDSUB): Likewise.
4399         (UNSPEC_BCD_OVERFLOW): Likewise.
4400         (UNSPEC_BCD_ADD_SUB): Likewise.
4401         (bcd_add_sub): Likewise.
4402         (BCD_TEST): Likewise.
4403         (bcd<bcd_add_sub>): Likewise.
4404         (bcd<bcd_add_sub>_test): Likewise.
4405         (bcd<bcd_add_sub>_test2): Likewise.
4406         (bcd<bcd_add_sub>_<code>): Likewise.
4407         (peephole2 for combined bcd ops): Likewise.
4409         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
4410         decimal floating point builtin functions.
4411         (UNSPEC_DENBCD): Likewise.
4412         (UNSPEC_DXEX): Likewise.
4413         (UNSPEC_DIEX): Likewise.
4414         (UNSPEC_DSCLI): Likewise.
4415         (UNSPEC_DSCRI): Likewise.
4416         (D64_D128): Likewise.
4417         (dfp_suffix): Likewise.
4418         (dfp_ddedpd_<mode>): Likewise.
4419         (dfp_denbcd_<mode>): Likewise.
4420         (dfp_dxex_<mode>): Likewise.
4421         (dfp_diex_<mode>): Likewise.
4422         (dfp_dscli_<mode>): Likewise.
4423         (dfp_dscri_<mode>): Likewise.
4425         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
4426         builtin functions.
4427         (UNSPEC_CDTBCD): Likewise.
4428         (UNSPEC_CBCDTD): Likewise.
4429         (UNSPEC_DIVE): Add support for new extended divide builtin
4430         functions.
4431         (UNSPEC_DIVEO): Likewise.
4432         (UNSPEC_DIVEU): Likewise.
4433         (UNSPEC_DIVEUO): Likewise.
4434         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
4435         pack/unpack 128-bit types.
4436         (UNSPEC_PACK_128BIT): Likewise.
4437         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
4438         (udiv<mode>3): Use idiv_ldiv mode attribute.
4439         (div<mode>3): Likewise.
4440         (addg6s): Add new BCD builtin functions.
4441         (cdtbcd): Likewise.
4442         (cbcdtd): Likewise.
4443         (UNSPEC_DIV_EXTEND): Add support for new extended divide
4444         instructions.
4445         (div_extend): Likewise.
4446         (div<div_extend>_<mode>"): Likewise.
4447         (FP128_64): Add support for new builtin functions to pack/unpack
4448         128-bit types.
4449         (unpack<mode>): Likewise.
4450         (unpacktf_0): Likewise.
4451         (unpacktf_1): Likewise.
4452         (unpack<mode>_dm): Likewise.
4453         (unpack<mode>_nodm): Likewise.
4454         (pack<mode>): Likewise.
4455         (unpackv1ti): Likewise.
4456         (packv1ti): Likewise.
4458 2014-04-29  Pat Haugen  <pthaugen@us.ibm.com>
4460         Backport from mainline
4461         2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
4463         * config/rs6000/rs6000.md (addti3, subti3): New.
4465 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
4467         PR tree-optimization/60971
4468         * tree-tailcall.c (process_assignment): Reject conversions which
4469         reduce precision.
4471 2014-04-29  Nick Clifton  <nickc@redhat.com>
4473         * config/msp430/msp430.md (umulsidi): Fix typo.
4474         (mulhisi3): Enable even inside interrupt handlers.
4475         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
4476         bigger return address pushed in large mode.
4478 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
4480         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4481         (loadsync_<mode>): Change mode.
4482         (load_quadpti, store_quadpti): New.
4483         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4484         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4486 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4488         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
4489         * configure: Regenerate.
4490         * config/sparc/sparc.opt (muser-mode): New option.
4491         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
4492         for LEON3.
4493         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
4494         * doc/invoke.texi (SPARC options): Document -muser-mode.
4496 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
4498         * doc/install.texi (Building with profile feedback): Remove
4499         outdated sentence.
4501 2014-04-26  Tom de Vries  <tom@codesourcery.com>
4503         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
4504         array accesses.
4506 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
4508         PR tree-optimization/60960
4509         * tree-vect-generic.c (expand_vector_operation): Only call
4510         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
4512 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
4514         PR target/60941
4515         * config/sparc/sparc.md (ashlsi3_extend): Delete.
4517 2014-04-25  Richard Biener  <rguenther@suse.de>
4519         PR ipa/60912
4520         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
4521         call stmt use/clobber sets during stmt walk instead of
4522         walking the possibly incomplete set of caller edges.
4524 2014-04-25  Richard Biener  <rguenther@suse.de>
4526         PR ipa/60911
4527         * passes.c (apply_ipa_transforms): Inline into only caller ...
4528         (execute_one_pass): ... here.  Properly bring in function
4529         bodies for nodes we want to apply IPA transforms to.
4531 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
4533         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
4534         * gimplify.c (omp_is_private): Change last argument's type to int.
4535         Only diagnose lastprivate if the simd argument is 1, only diagnose
4536         linear if the simd argument is 2.
4537         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
4538         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
4539         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
4540         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
4541         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
4542         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4543         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
4544         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
4545         * tree-nested.c (convert_nonlocal_omp_clauses,
4546         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
4548 2014-04-23  Uros Bizjak  <ubizjak@gmail.com>
4550         Backport from mainline
4551         2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
4553         PR target/60909
4554         * config/i386/i386.c (ix86_expand_builtin)
4555         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
4556         register for target RTX.
4557         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
4559 2014-04-23  Richard Biener  <rguenther@suse.de>
4561         PR tree-optimization/60903
4562         * tree-ssa-loop-im.c (analyze_memory_references): Remove
4563         commented code block.
4564         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
4565         loop flags to newly created BBs and edges.
4567 2014-04-23  Nick Clifton  <nickc@redhat.com>
4569         * config/msp430/msp430.c (msp430_handle_option): Move function
4570         to msp430-common.c
4571         (msp430_option_override): Simplify mcu and mcpu option handling.
4572         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
4573         support for -mhwmult command line option.
4574         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
4575         -mhwmult command line option.
4576         (msp430_hwmult_enabled): Delete.
4577         (msp43o_output_labelref): Add support for -mhwmult command line
4578         option.
4579         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
4580         (umulsidi3): Likewise.
4581         * config/msp430/msp430.opt (mmcu): Add Report attribute.
4582         (mcpu, mlarge, msmall): Likewise.
4583         (mhwmult): New option.
4584         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
4585         prototype.
4586         (msp430_is_f5_mcu): Remove prototype.
4587         (msp430_use_f5_series_hwmult): Add prototype.
4588         * config/msp430/msp430-opts.h: New file.
4589         * common/config/msp430: New directory.
4590         * common/config/msp430/msp430-common.c: New file.
4591         * config.gcc (msp430): Remove target_has_targetm_common.
4592         * doc/invoke.texi: Document -mhwmult command line option.
4594 2014-04-23  Nick Clifton  <nickc@redhat.com>
4596         * config/i386/cygwin.h (ENDFILE_SPEC): Include
4597         default-manifest.o if it can be found in the search path.
4598         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
4600 2014-04-23  Richard Biener  <rguenther@suse.de>
4602         Backport from mainline
4603         2014-04-14  Richard Biener  <rguenther@suse.de>
4605         PR lto/60720
4606         * lto-streamer-out.c (wrap_refs): New function.
4607         (lto_output): Wrap symbol references in global initializes in
4608         type-preserving MEM_REFs.
4610 2014-04-23  Richard Biener  <rguenther@suse.de>
4612         PR middle-end/60895
4613         * tree-inline.c (declare_return_variable): Use mark_addressable.
4615 2014-04-23  Richard Biener  <rguenther@suse.de>
4617         PR middle-end/60891
4618         * loop-init.c (loop_optimizer_init): Make sure to apply
4619         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
4621 2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
4623         Backport from mainline
4624         2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4626         PR target/60735
4627         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
4628         If mode is DDmode and TARGET_E500_DOUBLE allow move.
4630         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
4631         more debug information for E500 if -mdebug=reg.
4633 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
4635         Backport from mainline
4636         2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
4638         PR target/60868
4639         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
4640         on count_exp to get mode.
4642 2014-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4644         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
4645         little-endian.
4646         (vsx_xxmrglw_<mode>): Likewise.
4648 2014-04-22  Richard Biener  <rguenther@suse.de>
4650         Backport from mainline
4651         2014-04-14  Richard Biener  <rguenther@suse.de>
4653         PR middle-end/55022
4654         * fold-const.c (negate_expr_p): Don't negate directional rounding
4655         division.
4656         (fold_negate_expr): Likewise.
4658 2014-04-22  Richard Biener  <rguenther@suse.de>
4660         Backport from mainline
4661         2014-04-17  Richard Biener  <rguenther@suse.de>
4663         PR middle-end/60849
4664         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
4665         boolean results for comparisons.
4667 2014-04-22  Richard Biener  <rguenther@suse.de>
4669         Backport from mainline
4670         2014-04-17  Richard Biener  <rguenther@suse.de>
4672         PR tree-optimization/60841
4673         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
4674         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
4675         of stmts to SLP build.
4676         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
4677         (vect_analyze_slp): Likewise.
4678         (vect_analyze_slp_instance): Likewise.
4679         (vect_build_slp_tree): Limit overall SLP tree growth.
4680         * tree-vectorizer.h (vect_analyze_data_refs,
4681         vect_analyze_slp): Adjust prototypes.
4683 2014-04-22  Richard Biener  <rguenther@suse.de>
4685         Backport from mainline
4686         2014-04-17  Richard Biener  <rguenther@suse.de>
4688         PR tree-optimization/60836
4689         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
4690         initial PHI args to be gimple values.
4692 2014-04-22  Richard Biener  <rguenther@suse.de>
4694         Backport from mainline
4695         2014-04-14  Richard Biener  <rguenther@suse.de>
4697         PR tree-optimization/59817
4698         PR tree-optimization/60453
4699         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4700         recursion to catch all CHRECs in the scalar evolution and restrict
4701         the predicate for the remains appropriately.
4703 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4705         PR tree-optimization/60823
4706         * omp-low.c (ipa_simd_modify_function_body): Go through
4707         all SSA_NAMEs and for those refering to vector arguments
4708         which are going to be replaced adjust SSA_NAME_VAR and,
4709         if it is a default definition, change it into a non-default
4710         definition assigned at the beginning of function from new_decl.
4711         (ipa_simd_modify_stmt_ops): Rewritten.
4712         * tree-dfa.c (set_ssa_default_def): When removing default def,
4713         check for NULL loc instead of NULL *loc.
4715 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
4717         PR middle-end/60281
4718         * asan.c (asan_emit_stack_protection): Force the base to align to
4719         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
4720         appropriate bits if STRICT_ALIGNMENT.
4721         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
4722         when asan is on.
4723         (expand_used_vars): Leave a space in the stack frame for alignment
4724         if STRICT_ALIGNMENT.
4726 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4728         Backported from mainline
4729         2014-04-16  Jakub Jelinek  <jakub@redhat.com>
4731         PR tree-optimization/60844
4732         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
4733         (propagate_op_to_single_use, remove_visited_stmt_chain,
4734         linearize_expr, repropagate_negates, reassociate_bb): Use it
4735         instead of gsi_remove.
4737 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4739         * BASE-VER: Set to 4.9.1.
4740         * DEV-PHASE: Set to prerelease.
4742 2014-04-22  Release Manager
4744         * GCC 4.9.0 released.
4746 2014-04-18  Richard Henderson  <rth@redhat.com>
4748         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
4749         to GET_MODE_SIZE, not a reg_class_t.
4751 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
4753         PR target/60847
4754         Forward port from 4.8 branch
4755         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
4757         * config/i386/bmiintrin.h (_blsi_u32): New.
4758         (_blsi_u64): Ditto.
4759         (_blsr_u32): Ditto.
4760         (_blsr_u64): Ditto.
4761         (_blsmsk_u32): Ditto.
4762         (_blsmsk_u64): Ditto.
4763         (_tzcnt_u32): Ditto.
4764         (_tzcnt_u64): Ditto.
4766 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4768         PR target/60839
4769         Revert the following patch
4771         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4773         PR target/60735
4774         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4775         software floating point or no floating point registers, do not
4776         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
4777         in GPRs that occurs after we tested for GPRs that would never be
4778         true.
4780         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4781         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4782         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
4783         specifically allow DDmode, since that does not use the SPE SIMD
4784         instructions.
4786 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
4788         PR plugins/59335
4789         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
4790         added in 4.9.
4792 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
4794         * doc/invoke.texi (free): Document AArch64.
4796 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
4798         * DEV-PHASE: Set to prerelease.
4800 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4802         PR other/59055
4803         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4804         * doc/gcc.texi (Service): Update description in the @menu
4805         * doc/invoke.texi (Option Summary): Remove misplaced and
4806         duplicated @menu.
4808 2014-04-11  Steve Ellcey  <sellcey@mips.com>
4809             Jakub Jelinek  <jakub@redhat.com>
4811         PR middle-end/60556
4812         * expr.c (convert_move): Use emit_store_flag_force instead of
4813         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
4814         argument to it.
4816 2014-04-11  Richard Biener  <rguenther@suse.de>
4818         PR middle-end/60797
4819         * varasm.c (assemble_alias): Avoid endless error reporting
4820         recursion by setting TREE_ASM_WRITTEN.
4822 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4824         * config/s390/s390.md: Add a splitter for NOT rtx.
4826 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
4828         PR rtl-optimization/60663
4829         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4831 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
4832             Jakub Jelinek  <jakub@redhat.com>
4834         PR lto/60567
4835         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4836         flag from decl_node to node.
4838 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4840         PR debug/60655
4841         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4842         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4843         ameliorating the cases where it can be.
4845 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
4847         Revert
4848         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4850         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4851         (loadsync_<mode>): Change mode.
4852         (load_quadpti, store_quadpti): New.
4853         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4854         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4855         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4857 2014-04-09  Cong Hou  <congh@google.com>
4859         PR testsuite/60773
4860         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4861         documentation.
4863 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4865         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4866         instead of vnor to exploit possible fusion opportunity in the
4867         future.
4868         (altivec_expand_vec_perm_const_le): Likewise.
4870 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4872         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4873         (loadsync_<mode>): Change mode.
4874         (load_quadpti, store_quadpti): New.
4875         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4876         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4878 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
4880         PR target/60763
4881         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4882         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4883         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4885 2014-04-08  Richard Biener  <rguenther@suse.de>
4887         PR middle-end/60706
4888         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4889         a 64bit widest int print double-int similar to on HWI64 hosts.
4891 2014-04-08  Richard Biener  <rguenther@suse.de>
4893         PR tree-optimization/60785
4894         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4895         default defs properly.
4897 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
4899         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4900         (Weffc++): Likewise.
4902 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
4904         * ipa-devirt.c (maybe_record_node): When node is not recorded,
4905         set completep to false rather than true.
4907 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
4909         PR target/60504
4910         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4911         ARM_TARGET2_DWARF_FORMAT.
4913 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
4915         PR target/60609
4916         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
4917         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
4918         ADDR_DIFF_VEC.
4920 2014-04-07  Richard Biener  <rguenther@suse.de>
4922         PR tree-optimization/60766
4923         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
4924         (may_eliminate_iv): Convert cand_value_at result to desired type.
4926 2014-04-07  Jason Merrill  <jason@redhat.com>
4928         PR c++/60731
4929         * common.opt (-fno-gnu-unique): Add.
4930         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
4932 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4934         * haifa-sched.c: Fix outdated function reference and minor
4935         grammar errors in introductory comment.
4937 2014-04-07  Richard Biener  <rguenther@suse.de>
4939         PR middle-end/60750
4940         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
4941         for noreturn calls.
4942         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
4944 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
4946         PR debug/55794
4947         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
4948         size accounting for thunks.
4949         (pa_asm_output_mi_thunk): Use final_start_function() and
4950         final_end_function() to output function start and end directives.
4952 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4954         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
4955         device specific ISA/ feature information. Remove short_sp and
4956         errata_skip ds.  Add avr_device_specific_features enum to have device
4957         specific info.
4958         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
4959         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
4960         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
4961         updated device specific info.
4962         * config/avr/avr-mcus.def: Merge device specific details to
4963         dev_attribute field.
4964         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
4965         errata_skip.
4966         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
4967         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
4968         assembler if RMW isa supported by current device.
4969         * config/avr/genmultilib.awk: Update as device info structure changed.
4970         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
4972 2014-04-04  Cong Hou  <congh@google.com>
4974         PR tree-optimization/60656
4975         * tree-vect-stmts.c (supportable_widening_operation):
4976         Fix a bug that elements in a vector with vect_used_by_reduction
4977         property are incorrectly reordered when the operation on it is not
4978         consistant with the one in reduction operation.
4980 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
4982         PR rtl-optimization/60155
4983         * gcse.c (record_set_data): New function.
4984         (single_set_gcse): New function.
4985         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
4986         (hoist_code): Likewise.
4987         (get_pressure_class_and_nregs): Likewise.
4989 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
4991         * explow.c (probe_stack_range): Emit a final optimization blockage.
4993 2014-04-04  Anthony Green  <green@moxielogic.com>
4995         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
4996         typos.
4998 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
5000         PR ipa/59626
5001         * lto-cgraph.c (input_overwrite_node): Check that partitioning
5002         flags are set only during streaming.
5003         * ipa.c (process_references, walk_polymorphic_call_targets,
5004         symtab_remove_unreachable_nodes): Drop bodies of always inline
5005         after early inlining.
5006         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5008 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
5009         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5011         PR debug/60655
5012         * dwarf2out.c (const_ok_for_output_1): Reject expressions
5013         containing a NOT.
5015 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5017         PR bootstrap/60743
5018         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5019         duration.
5020         (cortex_a53_fdivd): Likewise.
5022 2014-04-04  Martin Jambor  <mjambor@suse.cz>
5024         PR ipa/60640
5025         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5026         Adjust all callers.
5027         * cgraph.c (clone_of_p): Also return true if thunks match.
5028         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5029         cgraph_function_or_thunk_node and an obsolete comment.
5030         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5031         file.
5032         (build_function_decl_skip_args): Likewise.
5033         (set_new_clone_decl_and_node_flags): New function.
5034         (duplicate_thunk_for_node): Likewise.
5035         (redirect_edge_duplicating_thunks): Likewise.
5036         (cgraph_clone_node): New parameter args_to_skip, pass it to
5037         redirect_edge_duplicating_thunks which is called instead of
5038         cgraph_redirect_edge_callee.
5039         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5040         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5042 2014-04-04  Jeff Law  <law@redhat.com>
5044         PR target/60657
5045         * config/arm/predicates.md (const_int_I_operand): New predicate.
5046         (const_int_M_operand): Similarly.
5047         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5048         const_int_operand.
5049         (insv_t2, extv_reg, extzv_t2): Likewise.
5050         (load_multiple_with_writeback): Similarly for const_int_I_operand.
5051         (pop_multiple_with_writeback_and_return): Likewise.
5052         (vfp_pop_multiple_with_writeback): Likewise
5054 2014-04-04  Richard Biener  <rguenther@suse.de>
5056         PR ipa/60746
5057         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5058         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5059         non-GIMPLE_LABELs.
5060         * gimplify.h (gimple_add_tmp_var_fn): Declare.
5061         * gimplify.c (gimple_add_tmp_var_fn): New function.
5062         * gimple-expr.h (create_tmp_reg_fn): Declare.
5063         * gimple-expr.c (create_tmp_reg_fn): New function.
5064         * gimple-low.c (record_vars_into): Don't change cfun.
5065         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5066         code generation without cfun.
5068 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
5070         PR bootstrap/60719
5071         * Makefile.in (install-driver): Fix shell scripting.
5073 2014-04-03  Cong Hou  <congh@google.com>
5075         PR tree-optimization/60505
5076         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5077         threshold of number of iterations below which no vectorization
5078         will be done.
5079         * tree-vect-loop.c (new_loop_vec_info):
5080         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5081         * tree-vect-loop.c (vect_analyze_loop_operations):
5082         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5083         * tree-vect-loop.c (vect_transform_loop):
5084         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5085         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5086         of iterations of the loop and see if we should build the epilogue.
5088 2014-04-03  Richard Biener  <rguenther@suse.de>
5090         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5091         (streamer_tree_cache_create): Adjust.
5092         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5093         to allow optional nodes array.
5094         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5095         (streamer_tree_cache_append): Likewise.
5096         (streamer_tree_cache_create): Create nodes array optionally
5097         as specified by parameter.
5098         * lto-streamer-out.c (create_output_block): Avoid maintaining
5099         the node array in the writer cache.
5100         (DFS_write_tree): Remove assertion.
5101         (produce_asm_for_decls): Free the out decl state hash table early.
5102         * lto-streamer-in.c (lto_data_in_create): Adjust for
5103         streamer_tree_cache_create prototype change.
5105 2014-04-03  Richard Biener  <rguenther@suse.de>
5107         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5108         set TREE_CHAIN to NULL_TREE.
5110 2014-04-03  Richard Biener  <rguenther@suse.de>
5112         PR tree-optimization/60740
5113         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5114         over all GIMPLE_COND operands.
5116 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
5118         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5119         (Weffc++): Remove Scott's numbering, merge lists and reference
5120         Wnon-virtual-dtor.
5122 2014-04-03  Nick Clifton  <nickc@redhat.com>
5124         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5125         properly.
5127 2014-04-03  Martin Jambor  <mjambor@suse.cz>
5129         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5130         mention gcc_unreachable before failing.
5131         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5132         removed symbols.
5134 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
5136         PR ipa/60659
5137         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5138         inconsistent code and instead mark the context inconsistent.
5139         (possible_polymorphic_call_targets): For inconsistent contexts
5140         return empty complete list.
5142 2014-04-02  Anthony Green  <green@moxielogic.com>
5144         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5145         (extendqisi2, extendhisi2): Define.
5146         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5147         (WCHAR_TYPE): Change to unsigned int.
5149 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5151         PR tree-optimization/60733
5152         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5153         insertion point for PHI candidates to be the end of the feeding
5154         block for the PHI argument.
5156 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5158         PR rtl-optimization/60650
5159         * lra-constraints.c (process_alt_operands): Decrease reject for
5160         earlyclobber matching.
5162 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5164         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5166 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5168         * config/spu/spu.c (pad_bb): Do not crash when the last
5169         insn is CODE_FOR_blockage.
5171 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5173         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5174         lies outside the target mode.
5176 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5178         PR target/60735
5179         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5180         software floating point or no floating point registers, do not
5181         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
5182         in GPRs that occurs after we tested for GPRs that would never be
5183         true.
5185         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5186         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5187         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
5188         specifically allow DDmode, since that does not use the SPE SIMD
5189         instructions.
5191 2014-04-02  Richard Biener  <rguenther@suse.de>
5193         PR middle-end/60729
5194         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5195         MODE_INTs.  Properly use negv_optab.
5196         (expand_abs): Likewise.
5198 2014-04-02  Richard Biener  <rguenther@suse.de>
5200         PR bootstrap/60719
5201         * Makefile.in (install-driver): Guard extra installs with special
5202         names properly.
5204 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5206         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5207         Document vec_vgbbd.
5209 2014-04-01  Richard Henderson  <rth@redhat.com>
5211         PR target/60704
5212         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5213         alternative enabled before register allocation.
5215 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
5217         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5218         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5219         typo.
5220         (nios2_large_got_address): Remove unneeded 'sym' parameter.
5221         (nios2_got_address): Update nios2_large_got_address call site.
5222         (nios2_delegitimize_address): New function.
5223         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5224         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5225         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5227 2014-04-01  Martin Husemann  <martin@duskware.de>
5229         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5230         for -mabi=32.
5232 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
5234         PR rtl-optimization/60604
5235         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5236         check from register_operand.
5237         (register_operand): Redefine in terms of general_operand.
5238         (nonmemory_operand): Use register_operand for the non-constant cases.
5240 2014-04-01  Richard Biener  <rguenther@suse.de>
5242         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5244 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5246         * doc/invoke.texi (mapp-regs): Clarify.
5248 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
5250         * config/i386/avx512fintrin.h (__v32hi): Define type.
5251         (__v64qi): Likewise.
5252         (_mm512_set1_epi8): Define.
5253         (_mm512_set1_epi16): Define.
5254         (_mm512_set4_epi32): Define.
5255         (_mm512_set4_epi64): Define.
5256         (_mm512_set4_pd): Define.
5257         (_mm512_set4_ps): Define.
5258         (_mm512_setr4_epi64): Define.
5259         (_mm512_setr4_epi32): Define.
5260         (_mm512_setr4_pd): Define.
5261         (_mm512_setr4_ps): Define.
5262         (_mm512_setzero_epi32): Define.
5264 2014-03-31  Martin Jambor  <mjambor@suse.cz>
5266         PR middle-end/60647
5267         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5268         callsite_arguments_match_p.  Updated all callers.  Also check types of
5269         corresponding formal parameters and actual arguments.
5270         (not_all_callers_have_enough_arguments_p) Renamed to
5271         some_callers_have_mismatched_arguments_p.
5273 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
5275         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5277 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
5279         PR target/60034
5280         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5281         section anchor.
5283 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
5285         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5286         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5287         Split out
5288         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5289         Use FMAMODE_NOVF512 mode iterator.
5290         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5291         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5292         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5293         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5294         Split out
5295         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5296         Use VF_128_256 mode iterator.
5297         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5298         Ditto.
5300 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5302         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5303         static chain if needed.
5305 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5307         PR target/60697
5308         * lra-constraints.c (index_part_to_reg): New.
5309         (process_address): Use it.
5311 2014-03-27  Jeff Law  <law@redhat.com>
5312             Jakub Jelinek  <jakub@redhat.com>
5314         PR target/60648
5315         * expr.c (do_tablejump): Use simplify_gen_binary rather than
5316         gen_rtx_{PLUS,MULT} to build up the address expression.
5318         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
5319         creating non-canonical RTL.
5321 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5323         PR ipa/60243
5324         * ipa-inline.c (want_inline_small_function_p): Short circuit large
5325         functions; reorganize to make cheap checks first.
5326         (inline_small_functions): Do not estimate growth when dumping;
5327         it is expensive.
5328         * ipa-inline.h (inline_summary): Add min_size.
5329         (growth_likely_positive): New function.
5330         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
5331         (set_cond_stmt_execution_predicate): Cleanup.
5332         (estimate_edge_size_and_time): Compute min_size.
5333         (estimate_calls_size_and_time): Likewise.
5334         (estimate_node_size_and_time): Likewise.
5335         (inline_update_overall_summary): Update min_size.
5336         (do_estimate_edge_time): Likewise.
5337         (do_estimate_edge_size): Update.
5338         (do_estimate_edge_hints): Update.
5339         (growth_likely_positive): New function.
5341 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
5343         PR target/60693
5344         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
5345         also if addr has VOIDmode.
5347 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5349         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
5350         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5351         Declare extern.
5352         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
5353         instructions as well as AdvancedSIMD loads.
5355 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5357         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
5358         Use crypto_aese type.
5359         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
5360         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
5361         crypto_aese, crypto_aesmc.  Move to types.md.
5362         * config/arm/types.md (crypto_aes): Split into crypto_aese,
5363         crypto_aesmc.
5364         * config/arm/iterators.md (crypto_type): Likewise.
5366 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5368         * cgraph.c: Include expr.h and tree-dfa.h.
5369         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
5370         remove LHS.
5372 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5374         PR target/60675
5375         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
5376         regs from checking multi-reg pseudos.
5378 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5380         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
5382 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5384         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
5385         if it would clobber the stack pointer, even temporarily.
5387 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
5389         * mode-switching.c: Make small adjustments to the top comment.
5391 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5393         * config/rs6000/constraints.md (wD constraint): New constraint to
5394         match the constant integer to get the top DImode/DFmode out of a
5395         vector in a VSX register.
5397         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
5398         match the constant integer to get the top DImode/DFmode out of a
5399         vector in a VSX register.
5401         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
5402         for ISA 2.07.
5404         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5405         vbpermq builtins.
5407         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
5408         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
5410         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
5411         Optimize vec_extract of 64-bit values, where the value being
5412         extracted is in the top word, where we can use scalar
5413         instructions.  Add direct move and store support.  Combine the big
5414         endian/little endian vector select load support into a single insn.
5415         (vsx_extract_<mode>_internal1): Likewise.
5416         (vsx_extract_<mode>_internal2): Likewise.
5417         (vsx_extract_<mode>_load): Likewise.
5418         (vsx_extract_<mode>_store): Likewise.
5419         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
5420         combined into vsx_extract_<mode>_load.
5421         (vsx_extract_<mode>_one_le): Likewise.
5423         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
5424         define the top 64-bit vector element.
5426         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
5427         constraint.
5429         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5430         Document vec_vbpermq builtin.
5432         PR target/60672
5433         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
5434         enable use of xxsldwi and xxpermdi builtin functions.
5435         (vec_xxpermdi): Likewise.
5437         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5438         Document use of vec_xxsldwi and vec_xxpermdi builtins.
5440 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5442         PR rtl-optimization/60650
5443         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
5444         first_p.  Use it.
5445         (find_spills_for): New.
5446         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
5447         Spill all pseudos on the second iteration.
5449 2014-03-27  Marek Polacek  <polacek@redhat.com>
5451         PR c/50347
5452         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
5453         types.
5455 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5457         * config/s390/s390.c (s390_can_use_return_insn): Check for
5458         call-saved FPRs on 31 bit.
5460 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
5462         PR middle-end/60682
5463         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
5464         if they need regimplification, just drop them instead of
5465         calling gimple_regimplify_operands on them.
5467 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5469         PR target/60580
5470         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
5471         (aarch64_frame_pointer_required): Adjust logic.
5472         (aarch64_can_eliminate): Adjust logic.
5473         (aarch64_override_options_after_change): Adjust logic.
5475 2014-03-27  Dehao Chen  <dehao@google.com>
5477         * ipa-inline.c (early_inliner): Update node's inline info.
5479 2014-03-26  Dehao Chen  <dehao@google.com>
5481         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
5482         compiler inserted conditional jumps for NAN float check.
5484 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
5486         * ubsan.h (ubsan_create_data): Change second argument's type
5487         to const location_t *.
5488         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
5489         _("<unknown>").
5490         (ubsan_create_data): Change second argument to const location_t *PLOC.
5491         Create Loc field whenever PLOC is non-NULL.
5492         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
5493         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
5494         callers.
5496         PR other/59545
5497         * real.c (real_to_integer2): Change type of low to UHWI.
5499 2014-03-26  Tobias Burnus  <burnus@net-b.de>
5501         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
5502         (CILK_SELF_SPECS): New define.
5503         (driver_self_specs): Use it.
5505 2014-03-26  Richard Biener  <rguenther@suse.de>
5507         * tree-pretty-print.c (percent_K_format): Implement special
5508         case for LTO and its stripped down BLOCK tree.
5510 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
5512         PR sanitizer/60636
5513         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
5515         * tree-vrp.c (simplify_internal_call_using_ranges): If only
5516         one range is range_int_cst_p, but not both, at least optimize
5517         addition/subtraction of 0 and multiplication by 0 or 1.
5518         * gimple-fold.c (gimple_fold_call): Fold
5519         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
5520         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
5521         INTEGER_CSTs, try to fold at least x * 0 and y - y.
5523 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5525         PR rtl-optimization/60452
5526         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
5527         <case REG>: Return 1 for invalid offsets from the frame pointer.
5529 2014-03-26  Marek Polacek  <polacek@redhat.com>
5531         PR c/37428
5532         * doc/extend.texi (C Extensions): Mention variable-length arrays in
5533         a structure/union.
5535 2014-03-26  Marek Polacek  <polacek@redhat.com>
5537         PR c/39525
5538         * doc/extend.texi (Designated Inits): Describe what happens to omitted
5539         field members.
5541 2014-03-26  Marek Polacek  <polacek@redhat.com>
5543         PR other/59545
5544         * ira-color.c (update_conflict_hard_regno_costs): Perform the
5545         multiplication in unsigned type.
5547 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
5549         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
5551 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
5553         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
5555 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
5557         PR ipa/60315
5558         * cif-code.def (UNREACHABLE) New code.
5559         * ipa-inline.c (inline_small_functions): Skip edges to
5560         __builtlin_unreachable.
5561         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
5562         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
5563         predicate to __bulitin_unreachable.
5564         (set_cond_stmt_execution_predicate): Fix issue when
5565         invert_tree_comparison returns ERROR_MARK.
5566         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
5567         propagate to inline clones.
5568         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
5569         to unreachable.
5570         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
5571         * cgraphclones.c (cgraph_clone_node): If call destination is already
5572         ureachable, do not redirect it back.
5573         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
5574         unreachable.
5576 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
5578         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
5579         Do not modify inline clones.
5581 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
5583         * config/i386/i386.md (general_sext_operand): New mode attr.
5584         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
5585         don't generate (sign_extend (const_int)).
5586         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
5587         operands[2].  Use We constraint instead of <i> and
5588         <general_sext_operand> predicate instead of <general_operand>.
5589         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
5590         * config/i386/constraints.md (We): New constraint.
5591         * config/i386/predicates.md (x86_64_sext_operand,
5592         sext_operand): New predicates.
5594 2014-03-25  Martin Jambor  <mjambor@suse.cz>
5596         PR ipa/60600
5597         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
5598         inconsistent devirtualizations to __builtin_unreachable.
5600 2014-03-25  Marek Polacek  <polacek@redhat.com>
5602         PR c/35449
5603         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
5605 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
5607         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
5608         order of elements for big-endian.
5610 2014-03-25  Richard Biener  <rguenther@suse.de>
5612         PR middle-end/60635
5613         * gimplify-me.c (gimple_regimplify_operands): Update the
5614         re-gimplifed stmt.
5616 2014-03-25  Martin Jambor  <mjambor@suse.cz>
5618         PR ipa/59176
5619         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
5620         (lto_output_varpool_node): Likewise.
5621         (input_overwrite_node): Likewise.
5622         (input_varpool_node): Likewise.
5624 2014-03-25  Richard Biener  <rguenther@suse.de>
5626         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
5627         (run_gcc): Likewise.
5629 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
5631         * combine.c (simplify_compare_const): Add MODE argument.
5632         Handle mode_width 0 as very large mode_width.
5633         (try_combine, simplify_comparison): Adjust callers.
5635         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
5636         type to avoid signed integer overflow.
5637         * explow.c (plus_constant): Likewise.
5639 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5641         * doc/generic.texi: Correct typos.
5643 2014-03-24  Tobias Burnus  <burnus@net-b.de>
5645         * doc/invoke.texi (-flto): Expand section about
5646         using static libraries with LTO.
5648 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5650         PR rtl-optimization/60501
5651         * optabs.def (addptr3_optab): New optab.
5652         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5653         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5654         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5656         * lra.c (emit_add3_insn): Use the addptr pattern if available.
5658         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5660 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
5662         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5663         _mm512_set1_pd.
5665         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5666         (_mm256_undefined_ps): Define.
5667         (_mm256_undefined_pd): Define.
5668         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5669         (_mm_undefined_pd): Define.
5670         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5671         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5672         (_mm512_undefined_ps): Define.
5673         (_mm512_undefined_pd): Define.
5674         Use _mm*_undefined_*.
5675         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5677 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
5679         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5680         (lshr_simd): DI mode added.
5681         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5682         (aarch64_ushr_simddi): Likewise.
5683         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5684         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5685         (vshrd_n_u64): Likewise.
5687 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5689         * Makefile.in (s-macro_list): Depend on cc1.
5691 2014-03-23  Teresa Johnson  <tejohnson@google.com>
5693         * ipa-utils.c (ipa_print_order): Use specified dump file.
5695 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
5697         PR rtl-optimization/60601
5698         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5700         * gcc.c (eval_spec_function): Initialize save_growing_value.
5702 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
5704         PR sanitizer/60613
5705         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5706         code == MINUS_EXPR, never swap op0 with op1.
5708         * toplev.c (init_local_tick): Avoid signed integer multiplication
5709         overflow.
5710         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5711         shift by first operand's bitsize.
5713 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
5715         PR target/60610
5716         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5717         redefine to 1 or 0.
5718         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5719         TARGET_ISA_64BIT_P(x).
5721 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5723         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5724         pattern for vector nor instead of subtract from splat(-1).
5725         (altivec_expand_vec_perm_const_le): Likewise.
5727 2014-03-21  Richard Henderson  <rth@twiddle.net>
5729         PR target/60598
5730         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5731         related insns after epilogue_completed.
5733 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5735         PR ipa/59176
5736         * cgraph.h (symtab_node): New flag body_removed.
5737         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5738         when removing bodies.
5739         * symtab.c (dump_symtab_base): Dump body_removed flag.
5740         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5741         had their bodies removed.
5743 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5745         PR ipa/60419
5746         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5747         in the border.
5749 2014-03-21  Richard Biener  <rguenther@suse.de>
5751         PR tree-optimization/60577
5752         * tree-core.h (struct tree_base): Document nothrow_flag use
5753         in DECL_NONALIASED.
5754         * tree.h (DECL_NONALIASED): New.
5755         (may_be_aliased): Adjust.
5756         * coverage.c (build_var): Set DECL_NONALIASED.
5758 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5760         * expr.c (expand_expr_real_1): Remove outdated comment.
5762 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
5764         PR middle-end/60597
5765         * ira.c (adjust_cleared_regs): Call copy_rtx on
5766         *reg_equiv[REGNO (loc)].src_p before passing it to
5767         simplify_replace_fn_rtx.
5769         PR target/60568
5770         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5771         into CONST, put pic register as first operand of PLUS.  Use
5772         gen_const_mem for both 32-bit and 64-bit PIC got loads.
5774 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5776         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5778 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5780         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5781         around for store forwarding issue in the FPU on the UT699.
5782         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5783         loads and operations if -mfix-ut699 is specified.
5784         (divtf3_hq): Tweak attribute.
5785         (sqrttf2_hq): Likewise.
5787 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5789         * calls.c (store_one_arg): Remove incorrect const qualification on the
5790         type of the temporary.
5791         * cfgexpand.c (expand_return): Likewise.
5792         * expr.c (expand_constructor): Likewise.
5793         (expand_expr_real_1): Likewise.
5795 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5797         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5798         of parts.
5800 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5802         PR target/60039
5803         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5805 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
5807         * config/arm/aarch-common-protos.h
5808         (alu_cost_table): Fix spelling of "extend".
5809         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5811 2014-03-19  Richard Biener  <rguenther@suse.de>
5813         PR middle-end/60553
5814         * tree-core.h (tree_type_common): Re-order pointer members
5815         to reduce recursion depth during GC walks.
5817 2014-03-19  Marek Polacek  <polacek@redhat.com>
5819         PR sanitizer/60569
5820         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5821         before accessing it.
5823 2014-03-19  Richard Biener  <rguenther@suse.de>
5825         PR lto/59543
5826         * lto-streamer-in.c (input_function): In WPA stage do not drop
5827         debug stmts.
5829 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
5831         PR tree-optimization/60559
5832         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5833         with build_zero_cst assignment.
5835 2014-03-18  Kai Tietz  <ktietz@redhat.com>
5837         PR rtl-optimization/56356
5838         * sdbout.c (sdbout_parms): Verify that parms'
5839         incoming argument is valid.
5840         (sdbout_reg_parms): Likewise.
5842 2014-03-18  Richard Henderson  <rth@redhat.com>
5844         PR target/60562
5845         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5846         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
5847         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5849 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
5851         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5852         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5853         Italicize plugin event names in description.  Explain that
5854         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
5855         Remind that no GCC functions should be called after PLUGIN_FINISH.
5856         Explain what pragmas with expansion are.
5858 2014-03-18  Martin Liska  <mliska@suse.cz>
5860         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5861         gimple call statement is update.
5862         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5863         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5865 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5867         PR sanitizer/60557
5868         * ubsan.c (ubsan_instrument_unreachable): Call
5869         initialize_sanitizer_builtins.
5870         (ubsan_pass): Likewise.
5872         PR sanitizer/60535
5873         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5874         varpool_finalize_decl instead of rest_of_decl_compilation.
5876 2014-03-18  Richard Biener  <rguenther@suse.de>
5878         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5879         by using bitmap_and_compl instead of bitmap_and_compl_into.
5880         (df_rd_transfer_function): Likewise.
5882 2014-03-18  Richard Biener  <rguenther@suse.de>
5884         * doc/lto.texi (fresolution): Fix typo.
5886 2014-03-18  Richard Biener  <rguenther@suse.de>
5888         * doc/invoke.texi (flto): Update for changes in 4.9.
5890 2014-03-18  Richard Biener  <rguenther@suse.de>
5892         * doc/loop.texi: Remove section on the removed lambda framework.
5893         Update loop docs with recent changes in preserving loop structure.
5895 2014-03-18  Richard Biener  <rguenther@suse.de>
5897         * doc/lto.texi (-fresolution): Document.
5899 2014-03-18  Richard Biener  <rguenther@suse.de>
5901         * doc/contrib.texi: Adjust my name.
5903 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5905         PR ipa/58721
5906         * internal-fn.c: Include diagnostic-core.h.
5907         (expand_BUILTIN_EXPECT): New function.
5908         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5909         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5910         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5911         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5912         IFN_BUILTIN_EXPECT.
5913         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5914         Revert 3 argument __builtin_expect code.
5915         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
5916         * gimple-fold.c (gimple_fold_call): Likewise.
5917         * tree.h (fold_builtin_expect): New prototype.
5918         * builtins.c (build_builtin_expect_predicate): Add predictor
5919         argument, if non-NULL, create 3 argument __builtin_expect.
5920         (fold_builtin_expect): No longer static.  Add ARG2 argument,
5921         pass it through to build_builtin_expect_predicate.
5922         (fold_builtin_2): Adjust caller.
5923         (fold_builtin_3): Handle BUILT_IN_EXPECT.
5924         * internal-fn.def (BUILTIN_EXPECT): New.
5926 2014-03-18  Tobias Burnus  <burnus@net-b.de>
5928         PR ipa/58721
5929         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
5930         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
5931         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
5933 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
5935         PR ipa/58721
5936         * predict.c (combine_predictions_for_bb): Fix up formatting.
5937         (expr_expected_value_1, expr_expected_value): Add predictor argument,
5938         fill what it points to if non-NULL.
5939         (tree_predict_by_opcode): Adjust caller, use the predictor.
5940         * predict.def (PRED_COMPARE_AND_SWAP): Add.
5942 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
5944         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5945         proper constant for the store mode.
5947 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
5949         * symtab.c (change_decl_assembler_name): Fix transparent alias
5950         chain construction.
5952 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
5954         * config/aarch64/aarch64.c: Correct the comments about the
5955         aarch64 stack layout.
5957 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
5959         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
5960         check for GF_OMP_FOR_KIND_FOR.
5962 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5964         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
5965         ymm and zmm register names.
5967 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
5969         PR target/60516
5970         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
5971         note creation for the 2010-08-31 changes.
5973 2014-03-17  Marek Polacek  <polacek@redhat.com>
5975         PR middle-end/60534
5976         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
5977         as -fno-tree-loop-vectorize.
5978         (expand_omp_simd): Likewise.
5980 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5982         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5983         (eligible_for_call_delay): New prototype.
5984         * config/sparc/sparc.c (tls_call_delay): Rename into...
5985         (eligible_for_call_delay): ...this.  Return false if the instruction
5986         cannot be put in the delay slot of a branch.
5987         (eligible_for_restore_insn): Simplify.
5988         (eligible_for_return_delay): Return false if the instruction cannot be
5989         put in the delay slot of a branch and simplify.
5990         (eligible_for_sibcall_delay): Return false if the instruction cannot be
5991         put in the delay slot of a branch.
5992         * config/sparc/sparc.md (fix_ut699): New attribute.
5993         (tls_call_delay): Delete.
5994         (in_call_delay): Reimplement.
5995         (eligible_for_sibcall_delay): Rename into...
5996         (in_sibcall_delay): ...this.
5997         (eligible_for_return_delay): Rename into...
5998         (in_return_delay): ...this.
5999         (in_branch_delay): Reimplement.
6000         (in_uncond_branch_delay): Delete.
6001         (in_annul_branch_delay): Delete.
6003 2014-03-14  Richard Henderson  <rth@redhat.com>
6005         PR target/60525
6006         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6007         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6008         (*floathi<X87MODEF>2_i387_with_temp): Remove.
6009         (floathi splitters): Remove.
6010         (float<SWI48x>xf2): New pattern.
6011         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
6012         code that tried to handle DImode for 32-bit, but which was excluded
6013         by the pattern's condition.  Drop allocation of stack temporary.
6014         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6015         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6016         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6017         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6018         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6019         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6020         (*float<SWI48><MODEF>2_sse_interunit): Remove.
6021         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6022         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6023         (*float<SWI48x><X87MODEF>2_i387): Remove.
6024         (all float _with_temp splitters): Remove.
6025         (*float<SWI48x><MODEF>2_i387): New pattern.
6026         (*float<SWI48><MODEF>2_sse): New pattern.
6027         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6028         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6030 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
6031             Marek Polacek  <polacek@redhat.com>
6033         PR middle-end/60484
6034         * common.opt (dump_base_name_prefixed): New Variable.
6035         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6036         if x_dump_base_name_prefixed is already set, set it at the end.
6038 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
6040         PR rtl-optimization/60508
6041         * lra-constraints.c (get_reload_reg): Add new parameter
6042         in_subreg_p.
6043         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6044         Pass the new parameter values.
6046 2014-03-14  Richard Biener  <rguenther@suse.de>
6048         * common.opt: Revert unintented changes from r205065.
6049         * opts.c: Likewise.
6051 2014-03-14  Richard Biener  <rguenther@suse.de>
6053         PR middle-end/60518
6054         * cfghooks.c (split_block): Properly adjust all loops the
6055         block was a latch of.
6057 2014-03-14  Martin Jambor  <mjambor@suse.cz>
6059         PR lto/60461
6060         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6061         and simplify it.
6063 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
6065         PR target/59396
6066         * config/avr/avr.c (avr_set_current_function): Pass function name
6067         through default_strip_name_encoding before sanity checking instead
6068         of skipping the first char of the assembler name.
6070 2014-03-13  Richard Henderson  <rth@redhat.com>
6072         PR debug/60438
6073         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6074         (ix86_force_to_memory, ix86_free_from_memory): Remove.
6075         * config/i386/i386-protos.h: Likewise.
6076         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6077         in the expander instead of a splitter.
6078         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6079         any possibility of requiring a memory.
6080         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6081         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6082         (fp branch splitters): Update for ix86_split_fp_branch.
6083         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6084         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6085         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6086         (*fop_<MODEF>_2_i387): Remove f/r alternative.
6087         (*fop_<MODEF>_3_i387): Likewise.
6088         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6089         (splitters for the fop_* register patterns): Remove.
6090         (fscalexf4_i387): Rename from *fscalexf4_i387.
6091         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6093 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6095         PR tree-optimization/59779
6096         * tree-dfa.c (get_ref_base_and_extent): Use double_int
6097         type for bitsize and maxsize instead of HOST_WIDE_INT.
6099 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
6101         PR rtl-optimization/57320
6102         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6103         the CFG after thread_prologue_and_epilogue_insns.
6105 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
6107         PR rtl-optimization/57189
6108         * lra-constraints.c (process_alt_operands): Disfavor spilling
6109         vector pseudos.
6111 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
6113         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6115 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6117         PR tree-optimization/59025
6118         PR middle-end/60418
6119         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6120         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6122 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
6124         PR target/60486
6125         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6126         calls of avr_out_plus_1.
6128 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
6130         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6131         BB's single pred and update the father loop's latch info later.
6133 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6135         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6136         (VEC_M): Likewise.
6137         (VEC_N): Likewise.
6138         (VEC_R): Likewise.
6139         (VEC_base): Likewise.
6140         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6141         registers, we need to swap double words in little endian mode.
6143         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6144         to be a container mode for 128-bit integer operations added in ISA
6145         2.07.  Unlike TImode and PTImode, the preferred register set is
6146         the Altivec/VMX registers for the 128-bit operations.
6148         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6149         declarations.
6150         (rs6000_split_128bit_ok_p): Likewise.
6152         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6153         macros for creating ISA 2.07 normal and overloaded builtin
6154         functions with 3 arguments.
6155         (BU_P8V_OVERLOAD_3): Likewise.
6156         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6157         for use as overloaded functions.
6158         (VPERM_1TI_UNS): Likewise.
6159         (VSEL_1TI): Likewise.
6160         (VSEL_1TI_UNS): Likewise.
6161         (ST_INTERNAL_1ti): Likewise.
6162         (LD_INTERNAL_1ti): Likewise.
6163         (XXSEL_1TI): Likewise.
6164         (XXSEL_1TI_UNS): Likewise.
6165         (VPERM_1TI): Likewise.
6166         (VPERM_1TI_UNS): Likewise.
6167         (XXPERMDI_1TI): Likewise.
6168         (SET_1TI): Likewise.
6169         (LXVD2X_V1TI): Likewise.
6170         (STXVD2X_V1TI): Likewise.
6171         (VEC_INIT_V1TI): Likewise.
6172         (VEC_SET_V1TI): Likewise.
6173         (VEC_EXT_V1TI): Likewise.
6174         (EQV_V1TI): Likewise.
6175         (NAND_V1TI): Likewise.
6176         (ORC_V1TI): Likewise.
6177         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6178         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
6179         overloaded builtin.
6180         (VADDUQM): Likewise.
6181         (VSUBCUQ): Likewise.
6182         (VADDEUQM): Likewise.
6183         (VADDECUQ): Likewise.
6184         (VSUBEUQM): Likewise.
6185         (VSUBECUQ): Likewise.
6187         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6188         __int128_t and __uint128_t types.
6189         (__uint128_type): Likewise.
6190         (altivec_categorize_keyword): Add support for vector __int128_t,
6191         vector __uint128_t, vector __int128, and vector unsigned __int128
6192         as a container type for TImode operations that need to be done in
6193         VSX/Altivec registers.
6194         (rs6000_macro_to_expand): Likewise.
6195         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6196         to support 128-bit integer instructions vaddcuq, vadduqm,
6197         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6198         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6200         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6201         for V1TImode, and set up preferences to use VSX/Altivec registers.
6202         Setup VSX reload handlers.
6203         (rs6000_debug_reg_global): Likewise.
6204         (rs6000_init_hard_regno_mode_ok): Likewise.
6205         (rs6000_preferred_simd_mode): Likewise.
6206         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6207         (easy_altivec_constant): Likewise.
6208         (output_vec_const_move): Likewise.
6209         (rs6000_expand_vector_set): Convert V1TImode set and extract to
6210         simple move.
6211         (rs6000_expand_vector_extract): Likewise.
6212         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6213         addressing.
6214         (rs6000_const_vec): Add support for V1TImode.
6215         (rs6000_emit_le_vsx_load): Swap double words when loading or
6216         storing TImode/V1TImode.
6217         (rs6000_emit_le_vsx_store): Likewise.
6218         (rs6000_emit_le_vsx_move): Likewise.
6219         (rs6000_emit_move): Add support for V1TImode.
6220         (altivec_expand_ld_builtin): Likewise.
6221         (altivec_expand_st_builtin): Likewise.
6222         (altivec_expand_vec_init_builtin): Likewise.
6223         (altivec_expand_builtin): Likewise.
6224         (rs6000_init_builtins): Add support for V1TImode type.  Add
6225         support for ISA 2.07 128-bit integer builtins.  Define type names
6226         for the VSX/Altivec vector types.
6227         (altivec_init_builtins): Add support for overloaded vector
6228         functions with V1TImode type.
6229         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6230         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6231         external function.
6232         (rs6000_split_128bit_ok_p): Likewise.
6233         (rs6000_handle_altivec_attribute): Create V1TImode from vector
6234         __int128_t and vector __uint128_t.
6236         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6237         and mode attributes.
6238         (VSX_M): Likewise.
6239         (VSX_M2): Likewise.
6240         (VSm): Likewise.
6241         (VSs): Likewise.
6242         (VSr): Likewise.
6243         (VSv): Likewise.
6244         (VS_scalar): Likewise.
6245         (VS_double): Likewise.
6246         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6248         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6249         we support the ISA 2.07 128-bit integer arithmetic instructions.
6250         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6251         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6252         and TImode types for use with the builtin functions.
6253         (V1TI_type_node): Likewise.
6254         (unsigned_V1TI_type_node): Likewise.
6255         (intTI_type_internal_node): Likewise.
6256         (uintTI_type_internal_node): Likewise.
6258         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6259         128-bit builtin functions.
6260         (UNSPEC_VADDEUQM): Likewise.
6261         (UNSPEC_VADDECUQ): Likewise.
6262         (UNSPEC_VSUBCUQ): Likewise.
6263         (UNSPEC_VSUBEUQM): Likewise.
6264         (UNSPEC_VSUBECUQ): Likewise.
6265         (VM): Add V1TImode to vector mode iterators.
6266         (VM2): Likewise.
6267         (VI_unit): Likewise.
6268         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6269         (altivec_vaddcuq): Likewise.
6270         (altivec_vsubuqm): Likewise.
6271         (altivec_vsubcuq): Likewise.
6272         (altivec_vaddeuqm): Likewise.
6273         (altivec_vaddecuq): Likewise.
6274         (altivec_vsubeuqm): Likewise.
6275         (altivec_vsubecuq): Likewise.
6277         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6278         mode iterators.
6279         (BOOL_128): Likewise.
6280         (BOOL_REGS_OUTPUT): Likewise.
6281         (BOOL_REGS_OP1): Likewise.
6282         (BOOL_REGS_OP2): Likewise.
6283         (BOOL_REGS_UNARY): Likewise.
6284         (BOOL_REGS_AND_CR0): Likewise.
6286         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6287         128-bit integer builtin support.
6288         (vec_vadduqm): Likewise.
6289         (vec_vaddecuq): Likewise.
6290         (vec_vaddeuqm): Likewise.
6291         (vec_vsubecuq): Likewise.
6292         (vec_vsubeuqm): Likewise.
6293         (vec_vsubcuq): Likewise.
6294         (vec_vsubuqm): Likewise.
6296         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6297         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6298         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6299         128-bit integer add/subtract to ISA 2.07.
6301 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6303         * config/arc/arc.c (arc_predicate_delay_insns):
6304         Fix third argument passed to conditionalize_nonjump.
6306 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
6308         * config/aarch64/aarch64-builtins.c
6309         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
6310         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
6311         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
6312         instead of __builtin_lfloor.
6313         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
6315 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6317         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
6318         (tree_ssa_ifcombine_bb_1): New function.
6319         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
6320         is an empty forwarder block to then_bb or vice versa and then_bb
6321         and else_bb are effectively swapped.
6323 2014-03-12  Christian Bruel  <christian.bruel@st.com>
6325         PR target/60264
6326         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
6327         REG_CFA_DEF_CFA note.
6328         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
6329         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
6331 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6333         PR tree-optimization/60454
6334         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
6336 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6338         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
6339         Do not define target_cpu_default2 to generic.
6340         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
6341         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
6342         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
6344 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6345             Marc Glisse  <marc.glisse@inria.fr>
6347         PR tree-optimization/60502
6348         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
6349         instead of build_low_bits_mask.
6351 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6353         PR middle-end/60482
6354         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
6355         if there are multiple uses, but op doesn't live on E edge.
6356         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
6357         clobber stmts before __builtin_unreachable.
6359 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
6361         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
6362         hard_frame_pointer_rtx.
6363         * cse.c (cse_insn): Remove volatile check.
6364         * cselib.c (cselib_process_insn): Likewise.
6365         * dse.c (scan_insn): Likewise.
6367 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
6369         * config/arc/arc.c (conditionalize_nonjump): New function,
6370         broken out of ...
6371         (arc_ifcvt): ... this.
6372         (arc_predicate_delay_insns): Use it.
6374 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
6376         * config/arc/predicates.md (extend_operand): During/after reload,
6377         allow const_int_operand.
6378         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
6379         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
6380         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
6381         to "i".
6382         (umulsi3_highpart_i): Likewise.
6384 2014-03-11  Richard Biener  <rguenther@suse.de>
6386         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
6387         Add asserts to guard possible wrong-code bugs.
6389 2014-03-11  Richard Biener  <rguenther@suse.de>
6391         PR tree-optimization/60429
6392         PR tree-optimization/60485
6393         * tree-ssa-structalias.c (set_union_with_increment): Properly
6394         take into account all fields that overlap the shifted vars.
6395         (do_sd_constraint): Likewise.
6396         (do_ds_constraint): Likewise.
6397         (get_constraint_for_ptr_offset): Likewise.
6399 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
6401         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
6402         (nios2_compute_frame_layout):
6403         Add calculation of cfun->machine->fp_save_offset.
6404         (nios2_expand_prologue): Correct setting of frame pointer register
6405         in prologue.
6406         (nios2_expand_epilogue): Update recovery of stack pointer from
6407         frame pointer accordingly.
6408         (nios2_initial_elimination_offset): Update calculation of offset
6409         for eliminating to HARD_FRAME_POINTER_REGNUM.
6411 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
6413         PR ipa/60457
6414         * ipa.c (symtab_remove_unreachable_nodes): Don't call
6415         cgraph_get_create_node on VAR_DECLs.
6417 2014-03-10  Richard Biener  <rguenther@suse.de>
6419         PR middle-end/60474
6420         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
6422 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
6424         * config/vms/vms.opt (vms_float_format): New variable.
6426 2014-03-08  Tobias Burnus  <burnus@net-b.de>
6428         * doc/invoke.texi (-fcilkplus): Update implementation status.
6430 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
6431             Richard Biener  <rguenther@suse.de>
6433         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
6434         consistently accross all TUs.
6435         (run_gcc): Enable -fshort-double automatically at link at link-time
6436         and disallow override.
6438 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
6440         PR target/58271
6441         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
6442         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
6443         if they can't be used.
6445 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6447         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
6448         for Solaris 11/x86 ld.
6449         * configure: Regenerate.
6451 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6453         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
6454         (LIB_TLS_SPEC): Save as ld_tls_libs.
6455         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
6456         (HAVE_AS_IX86_TLSLDM): New test.
6457         * configure, config.in: Regenerate.
6458         * config/i386/i386.c (legitimize_tls_address): Fall back to
6459         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
6460         cannot support TLS_MODEL_LOCAL_DYNAMIC.
6461         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
6462         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
6464 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
6466         * common.opt (fira-loop-pressure): Mark as optimization.
6468 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
6470         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
6471         an OpenMP mappable type.
6473 2014-03-06  Matthias Klose  <doko@ubuntu.com>
6475         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
6476         MULTILIB_OSDIRNAMES is not defined.
6478 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
6479             Meador Inge  <meadori@codesourcery.com>
6481         PR target/58595
6482         * config/arm/arm.c (arm_tls_symbol_p): Remove.
6483         (arm_legitimize_address): Call legitimize_tls_address for any
6484         arm_tls_referenced_p expression, handle constant addend.  Call it
6485         before testing for !TARGET_ARM.
6486         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
6488 2014-03-06  Richard Biener  <rguenther@suse.de>
6490         PR middle-end/60445
6491         PR lto/60424
6492         PR lto/60427
6493         Revert
6494         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
6496         * tree-streamer.c (record_common_node): Assert we don't record
6497         nodes with type double.
6498         (preload_common_node): Skip type double, complex double and double
6499         pointer since it is now frontend dependent due to fshort-double option.
6501 2014-03-06  Richard Biener  <rguenther@suse.de>
6503         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
6504         or -fno-lto is specified and the linker has full plugin support.
6505         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
6506         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
6507         * lto-wrapper.c (merge_and_complain): Merge compile-time
6508         optimization levels.
6509         (run_gcc): And pass it through to the link options.
6511 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
6513         PR debug/60381
6514         Revert:
6515         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6516         PR debug/59992
6517         * cselib.c (remove_useless_values): Skip to avoid quadratic
6518         behavior if the condition moved from...
6519         (cselib_process_insn): ... here holds.
6521 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
6523         PR plugins/59335
6524         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
6525         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
6527         PR plugins/59335
6528         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
6529         (TM_H): Add x86-tune.def.
6531 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6533         * config/aarch64/aarch64.c (generic_tunings):
6534         Use cortexa57_extra_costs.
6536 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
6538         PR lto/60404
6539         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
6540         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
6541         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
6542         cost for in_lto_p.
6544 2014-03-04  Heiher  <r@hev.cc>
6546         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
6547         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
6549 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
6551         * config/i386/predicates.md (const2356_operand): Change to ...
6552         (const2367_operand): ... this.
6553         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
6554         const2367_operand.
6555         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6556         (*avx512pf_scatterpf<mode>sf): Ditto.
6557         (avx512pf_scatterpf<mode>df): Ditto.
6558         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6559         (*avx512pf_scatterpf<mode>df): Ditto.
6560         * config/i386/i386.c (ix86_expand_builtin): Update
6561         incorrect hint operand error message.
6563 2014-03-04  Richard Biener  <rguenther@suse.de>
6565         * lto-section-in.c (lto_get_section_data): Fix const cast.
6567 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
6569         * tree-streamer.c (record_common_node): Assert we don't record
6570         nodes with type double.
6571         (preload_common_node): Skip type double, complex double and double
6572         pointer since it is now frontend dependent due to fshort-double option.
6574 2014-03-04  Richard Biener  <rguenther@suse.de>
6576         PR lto/60405
6577         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
6578         (lto_input_toplevel_asms): Likewise.
6579         * lto-section-in.c (lto_get_section_data): Instead do it here
6580         for every section.
6582 2014-03-04  Richard Biener  <rguenther@suse.de>
6584         PR tree-optimization/60382
6585         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
6586         dead PHIs a reduction.
6588 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
6590         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
6591         hint value.
6592         (_mm_prefetch): Move out of GCC target("sse") pragma.
6593         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
6594         GCC target("prfchw") pragma.
6595         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
6596         for locality <= 2.
6597         * config/i386/i386.c (ix86_option_override_internal): Enable
6598         -mprfchw with -mprefetchwt1.
6600 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6602         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
6603         Mark as varying.
6605 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6607         * opts.h (CL_PCH_IGNORE): Define.
6608         * targhooks.c (option_affects_pch_p):
6609         Return false for options that have CL_PCH_IGNORE set.
6610         * opt-functions.awk: Process PchIgnore.
6611         * doc/options.texi: Document PchIgnore.
6613         * config/arc/arc.opt (misize): Add PchIgnore property.
6615 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6617         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
6618         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
6619         constraint on constants to permit them being loaded into
6620         GENERAL_REGS or BASE_REGS.
6622 2014-03-03  Nick Clifton  <nickc@redhat.com>
6624         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
6625         anti-cacnonical alternatives.
6626         (negandhi3_real): New pattern.
6627         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
6629 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6631         * config/avr/avr-mcus.def: Remove atxmega16x1.
6632         * config/avr/avr-tables.opt: Regenerate.
6633         * config/avr/t-multilib: Regenerate.
6634         * doc/avr-mmcu.texi: Regenerate.
6636 2014-03-03  Tobias Grosser  <tobias@grosser.es>
6637             Mircea Namolaru  <mircea.namolaru@inria.fr>
6639         PR tree-optimization/58028
6640         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6641         scalar dimensions.
6643 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6645         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6646         not handled by recognizers.
6648 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
6650         PR middle-end/60175
6651         * function.c (expand_function_end): Don't emit
6652         clobber_return_register sequence if clobber_after is a BARRIER.
6653         * cfgexpand.c (construct_exit_block): Append instructions before
6654         return_label to prev_bb.
6656 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6658         * config/rs6000/constraints.md: Document reserved use of "wc".
6660 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6662         PR ipa/60150
6663         * ipa.c (function_and_variable_visibility): When dissolving comdat
6664         group, also set all symbols to local.
6666 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6668         PR ipa/60306
6670         Revert:
6671         2013-12-14  Jan Hubicka  <jh@suse.cz>
6672         PR middle-end/58477
6673         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6675 2014-03-02  Jon Beniston  <jon@beniston.com>
6677         PR bootstrap/48230
6678         PR bootstrap/50927
6679         PR bootstrap/52466
6680         PR target/46898
6681         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6682           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6683         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6684         (simple_return, *simple_return): New patterns
6685         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6686         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6688 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
6690         * dwarf2out.c (gen_subprogram_die): Tidy.
6692 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
6694         PR target/60071
6695         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6696         (*mov_t_msb_neg_negc): ... this new insn.
6698 2014-02-28  Jason Merrill  <jason@redhat.com>
6700         PR c++/58678
6701         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6702         function.
6704 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
6706         PR c++/60314
6707         * dwarf2out.c (decltype_auto_die): New static.
6708         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6709         (gen_type_die_with_usage): Handle 'decltype(auto)'.
6710         (is_cxx_auto): Likewise.
6712 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
6714         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6715         we are not using general regs only.
6717 2014-02-28  Richard Biener  <rguenther@suse.de>
6719         PR target/60280
6720         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6721         previous fix and only allow to remove trivial pre-headers
6722         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6723         (remove_forwarder_block): Properly update the latch of a loop.
6725 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6727         PR debug/59992
6728         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6729         (cselib_preserved_hash_table): New.
6730         (preserve_constants_and_equivs): Move preserved vals to it.
6731         (cselib_find_slot): Look it up first.
6732         (cselib_init): Initialize it.
6733         (cselib_finish): Release it.
6734         (dump_cselib_table): Dump it.
6736 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6738         PR debug/59992
6739         * cselib.c (remove_useless_values): Skip to avoid quadratic
6740         behavior if the condition moved from...
6741         (cselib_process_insn): ... here holds.
6743 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6745         PR debug/57232
6746         * var-tracking.c (vt_initialize): Apply the same condition to
6747         preserve the CFA base value.
6749 2014-02-28  Joey Ye  <joey.ye@arm.com>
6751         PR target/PR60169
6752         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6753         if reload in progress or completed.
6755 2014-02-28  Tobias Burnus  <burnus@net-b.de>
6757         PR middle-end/60147
6758         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6759         NAMELIST_DECL.
6761 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6763         * doc/tm.texi.in (Condition Code Status): Update documention for
6764         relative locations of cc0-setter and cc0-user.
6766 2014-02-27  Jeff Law  <law@redhat.com>
6768         PR rtl-optimization/52714
6769         * combine.c (try_combine): When splitting an unrecognized PARALLEL
6770         into two independent simple sets, if I3 is a jump, ensure the
6771         pattern we place into I3 is a (set (pc) ...).
6773 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
6774             Jeff Law  <law@redhat.com>
6776         PR rtl-optimization/49847
6777         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6778         are in different blocks.
6779         * doc/tm.texi (Condition Code Status): Update documention for
6780         relative locations of cc0-setter and cc0-user.
6782 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
6784         PR target/59222
6785         * lra.c (lra_emit_add): Check SUBREG too.
6787 2014-02-27  Andreas Schwab  <schwab@suse.de>
6789         * config/m68k/m68k.c (m68k_option_override): Disable
6790         -flive-range-shrinkage for classic m68k.
6791         (m68k_override_options_after_change): Likewise.
6793 2014-02-27  Marek Polacek  <polacek@redhat.com>
6795         PR middle-end/59223
6796         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6797         -Wmaybe-uninitialized.
6799 2014-02-27  Alan Modra  <amodra@gmail.com>
6801         PR target/57936
6802         * reload1.c (emit_input_reload_insns): When reload_override_in,
6803         set old to rl->in_reg when rl->in_reg is a subreg.
6805 2014-02-26  Richard Biener  <rguenther@suse.de>
6807         PR bootstrap/60343
6808         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6810 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6812         * common/config/i386/predicates.md (const1256_operand): Remove.
6813         (const2356_operand): New.
6814         (const_1_to_2_operand): Remove.
6815         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6816         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6817         (*avx512pf_gatherpf<mode>sf): Ditto.
6818         (avx512pf_gatherpf<mode>df): Ditto.
6819         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6820         (*avx512pf_gatherpf<mode>df): Ditto.
6821         (avx512pf_scatterpf<mode>sf): Ditto.
6822         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6823         (*avx512pf_scatterpf<mode>sf): Ditto.
6824         (avx512pf_scatterpf<mode>df): Ditto.
6825         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6826         (*avx512pf_scatterpf<mode>df): Ditto.
6827         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6829 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
6831         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6832         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6833         (_mm512_mask_testn_epi64_mask): Move to ...
6834         * config/i386/avx512cdintrin.h: Here.
6835         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6836         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6837         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6838         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6839         TARGET_AVX512F from TARGET_AVX512CD.
6841 2014-02-26  Richard Biener  <rguenther@suse.de>
6843         PR ipa/60327
6844         * ipa.c (walk_polymorphic_call_targets): Properly guard
6845         call to inline_update_overall_summary.
6847 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
6849         PR target/60280
6850         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6851         and latches only if requested.  Fix latch if it is removed.
6852         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6853         LOOPS_HAVE_PREHEADERS.
6855 2014-02-25  Andrew Pinski  <apinski@cavium.com>
6857         * builtins.c (expand_builtin_thread_pointer): Create a new target
6858         when the target is NULL.
6860 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
6862         PR rtl-optimization/60317
6863         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6864         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6865         * lra-assigns.c: Include params.h.
6866         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6867         other reload pseudos considerations.
6869 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6871         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6872         to use canonical form for nor<mode>3.
6874 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6876         PR target/55426
6877         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6878         conversions.
6880 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6882         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6883         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6884         (ix86_handle_option): Handle OPT_mprefetchwt1.
6885         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6886         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6887         PREFETCHWT1 CPUID.
6888         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6889         OPTION_MASK_ISA_PREFETCHWT1.
6890         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6891         (PTA_PREFETCHWT1): New.
6892         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6893         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6894         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6895         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6896         (*prefetch_avx512pf_<mode>_: Change into ...
6897         (*prefetch_prefetchwt1_<mode>: This.
6898         * config/i386/i386.opt (mprefetchwt1): New.
6899         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6900         (_mm_prefetch): Handle intent to write.
6901         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6903 2014-02-25  Richard Biener  <rguenther@suse.de>
6905         PR middle-end/60291
6906         * emit-rtl.c (mem_attrs_htab): Remove.
6907         (mem_attrs_htab_hash): Likewise.
6908         (mem_attrs_htab_eq): Likewise.
6909         (set_mem_attrs): Always allocate new mem-attrs when something changed.
6910         (init_emit_once): Do not allocate mem_attrs_htab.
6912 2014-02-25  Richard Biener  <rguenther@suse.de>
6914         PR lto/60319
6915         * lto-opts.c (lto_write_options): Output non-explicit conservative
6916         -fwrapv, -fno-trapv and -fno-strict-overflow.
6917         * lto-wrapper.c (merge_and_complain): Handle merging those options.
6918         (run_gcc): And pass them through.
6920 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
6922         * sel-sched.c (calculate_new_fences): New parameter ptime.
6923         Calculate it as a maximum over all fence cycles.
6924         (sel_sched_region_2): Adjust the call to calculate_new_fences.
6925         Print the final schedule timing when sched_verbose.
6927 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
6929         PR rtl-optimization/60292
6930         * sel-sched.c (fill_vec_av_set): Do not reset target availability
6931         bit fot the fence instruction.
6933 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
6935         * calls.h: Fix typo in comment.
6937 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
6939         * config/pa/pa.c (pa_output_move_double): Don't valididate when
6940         adjusting offsetable addresses.
6942 2014-02-24  Guozhi Wei  <carrot@google.com>
6944         * sparseset.h (sparseset_pop): Fix the wrong index.
6946 2014-02-24  Walter Lee  <walt@tilera.com>
6948         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
6949         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
6950         triplet.
6951         * common/config/tilegx/tilegx-common.c
6952         (TARGET_DEFAULT_TARGET_FLAGS): Define.
6953         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
6954         (LINK_SPEC): Ditto.
6955         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
6956         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
6957         (tilegx_gimplify_va_arg_expr): Handle big endian.
6958         (tilegx_expand_unaligned_load): Ditto.
6959         (tilegx_expand_unaligned_store): Ditto.
6960         (TARGET_RETURN_IN_MSB): New.
6961         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
6962         (TARGET_ENDIAN_DEFAULT): New.
6963         (TARGET_BIG_ENDIAN): Handle big endian.
6964         (BYTES_BIG_ENDIAN): Ditto.
6965         (WORDS_BIG_ENDIAN): Ditto.
6966         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
6967         (ENDIAN_SPEC): New.
6968         (EXTRA_SPECS): New.
6969         * config/tilegx/tilegx.md (extv): Handle big endian.
6970         (extzv): Ditto.
6971         (insn_st<n>): Ditto.
6972         (insn_st<n>_add<bitsuffix>): Ditto.
6973         (insn_stnt<n>): Ditto.
6974         (insn_stnt<n>_add<bitsuffix>):Ditto.
6975         (vec_interleave_highv8qi): Handle big endian.
6976         (vec_interleave_highv8qi_be): New.
6977         (vec_interleave_highv8qi_le): New.
6978         (insn_v1int_h): Handle big endian.
6979         (vec_interleave_lowv8qi): Handle big endian.
6980         (vec_interleave_lowv8qi_be): New.
6981         (vec_interleave_lowv8qi_le): New.
6982         (insn_v1int_l): Handle big endian.
6983         (vec_interleave_highv4hi): Handle big endian.
6984         (vec_interleave_highv4hi_be): New.
6985         (vec_interleave_highv4hi_le): New.
6986         (insn_v2int_h): Handle big endian.
6987         (vec_interleave_lowv4hi): Handle big endian.
6988         (vec_interleave_lowv4hi_be): New.
6989         (vec_interleave_lowv4hi_le): New.
6990         (insn_v2int_l): Handle big endian.
6991         (vec_interleave_highv2si): Handle big endian.
6992         (vec_interleave_highv2si_be): New.
6993         (vec_interleave_highv2si_le): New.
6994         (insn_v4int_h): Handle big endian.
6995         (vec_interleave_lowv2si): Handle big endian.
6996         (vec_interleave_lowv2si_be): New.
6997         (vec_interleave_lowv2si_le): New.
6998         (insn_v4int_l): Handle big endian.
6999         * config/tilegx/tilegx.opt (mbig-endian): New option.
7000         (mlittle-endian): New option.
7001         * doc/install.texi: Document tilegxbe-linux.
7002         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7004 2014-02-24  Martin Jambor  <mjambor@suse.cz>
7006         PR ipa/60266
7007         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7008         there are no parameter descriptors.
7010 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
7012         PR rtl-optimization/60268
7013         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7014         initialization to ...
7015         (sched_rgn_init): ... here.
7016         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7018 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7020         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7021         names.
7023 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
7025         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7026         definition.
7028 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7030         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7031         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7033 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7035         * config/microblaze/predicates.md: Add cmp_op predicate.
7036         * config/microblaze/microblaze.md: Add branch_compare instruction
7037         which uses cmp_op predicate and emits cmp insn before branch.
7038         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7039         to microblaze_expand_conditional_branch and consolidate logic.
7040         (microblaze_expand_conditional_branch): emit branch_compare
7041         insn instead of handling cmp op separate from branch insn.
7043 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7045         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7046         to permit subregs.
7048 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7050         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7051         define_insn with define_expand and new define_insn
7052         *altivec_lve<VI_char>x_internal.
7053         (altivec_stve<VI_char>x): Replace define_insn with define_expand
7054         and new define_insn *altivec_stve<VI_char>x_internal.
7055         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7056         prototype.
7057         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7058         lve*x built-ins.
7059         (altivec_expand_stvex_be): New function.
7061 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
7063         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7064         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7065         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7066         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7068 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7070         PR target/60298
7071         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7072         instead of emit_move_insn.
7074 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7076         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7077         vspltw with vsldoi.
7078         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7079         gen_altivec_vsumsws.
7081 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7083         * config/rs6000/altivec.md (altivec_lvxl): Rename as
7084         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7085         (altivec_lvxl_<mode>): New define_expand incorporating
7086         -maltivec=be semantics where needed.
7087         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7088         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7089         semantics where needed.
7090         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7091         (altivec_stvx_<mode>): New define_expand incorporating
7092         -maltivec=be semantics where needed.
7093         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7094         VM2 iterator instead of V4SI.
7095         (altivec_stvxl_<mode>): New define_expand incorporating
7096         -maltivec=be semantics where needed.
7097         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7098         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7099         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7100         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7101         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7102         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7103         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7104         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7105         ALTIVEC_BUILTIN_STVXL.
7106         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7107         (altivec_expand_stvx_be): Likewise.
7108         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7109         (altivec_expand_lvx_be): Likewise.
7110         (altivec_expand_stvx_be): Likewise.
7111         (altivec_expand_builtin): Add cases for
7112         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7113         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7114         (altivec_init_builtins): Add definitions for
7115         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7116         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7118 2014-02-21  Catherine Moore  <clm@codesourcery.com>
7120         * doc/invoke.texi (mvirt, mno-virt): Document.
7121         * config/mips/mips.opt (mvirt): New option.
7122         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7124 2014-02-21  Richard Biener  <rguenther@suse.de>
7126         PR tree-optimization/60276
7127         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7128         (STMT_VINFO_MIN_NEG_DIST): New macro.
7129         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7130         STMT_VINFO_MIN_NEG_DIST.
7131         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7132         made for negative dependence distances still hold.
7134 2014-02-21  Richard Biener  <rguenther@suse.de>
7136         PR middle-end/60291
7137         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7138         DECL_INITIAL for globals not in the current function context.
7140 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7142         PR tree-optimization/56490
7143         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7144         * tree-ssa-uninit.c: Include params.h.
7145         (compute_control_dep_chain): Add num_calls argument, return false
7146         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7147         num_calls to recursive call.
7148         (find_predicates): Change dep_chain into normal array,
7149         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7150         variable and adjust compute_control_dep_chain caller.
7151         (find_def_preds): Likewise.
7153 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
7155         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7156         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7158 2014-02-21  Nick Clifton  <nickc@redhat.com>
7160         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7161         (pushhi1): Likewise.
7162         (popqi1): Add mode to pre_dec.
7163         (pophi1): Likewise.
7165 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7167         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7168         mode for mask of V8SFmode permutation.
7170 2014-02-20  Richard Henderson  <rth@redhat.com>
7172         PR c++/60272
7173         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7174         a new pseudo for OLDVAL.
7176 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
7178         PR target/57896
7179         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7180         gen_reg_rtx if d->testing_p.
7181         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7182         if d->testing_p and we will certainly return true.
7183         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
7184         if d->testing_p.
7186 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
7188         * emit-rtl.c (gen_reg_rtx): Assert that
7189         crtl->emit.regno_pointer_align_length is non-zero.
7191 2014-02-20  Richard Henderson  <rth@redhat.com>
7193         PR c++/60272
7194         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7195         on failure the store back into EXPECT.
7197 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
7198             Sandra Loosemore  <sandra@codesourcery.com>
7200         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7201         * config/nios2/nios2.c (nios2_function_profiler): Add
7202         -fPIC (flag_pic == 2) support.
7203         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7204         (nios2_large_offset_p): New function.
7205         (nios2_unspec_reloc_p): Move up position, update to use
7206         nios2_large_offset_p.
7207         (nios2_unspec_address): Remove function.
7208         (nios2_unspec_offset): New function.
7209         (nios2_large_got_address): New function.
7210         (nios2_got_address): Add large offset support.
7211         (nios2_legitimize_tls_address): Update usage of removed and new
7212         functions.
7213         (nios2_symbol_binds_local_p): New function.
7214         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7215         (nios2_legitimize_address): Update to use nios2_large_offset_p.
7216         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7217         (nios2_print_operand): Merge H/L processing, add hiadj/lo
7218         processing for (const (unspec ...)).
7219         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7221 2014-02-20  Richard Biener  <rguenther@suse.de>
7223         * tree-cfg.c (replace_uses_by): Mark altered BBs before
7224         doing the substitution.
7225         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7227 2014-02-20  Martin Jambor  <mjambor@suse.cz>
7229         PR ipa/55260
7230         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7231         info when checking whether lattices are bottom.
7233 2014-02-20  Richard Biener  <rguenther@suse.de>
7235         PR middle-end/60221
7236         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7237         regions at -O0.
7239 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
7241         PR ipa/58555
7242         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7243         parameter specifying the scaling.
7244         (inline_call): Update.
7245         (want_inline_recursively): Guard division by zero.
7246         (recursive_inlining): Update.
7247         * ipa-inline.h (clone_inlined_nodes): Update.
7249 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7251         PR target/60204
7252         * config/i386/i386.c (classify_argument): Pass structures of size
7253         64 bytes or less in register.
7255 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7256             Kirill Yukhin  <kirill.yukhin@intel.com>
7258         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7259         (_mm_rcp28_round_ss): Ditto.
7260         (_mm_rsqrt28_round_sd): Ditto.
7261         (_mm_rsqrt28_round_ss): Ditto.
7262         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7263         (_mm_rcp14_round_ss): Ditto.
7264         (_mm_rsqrt14_round_sd): Ditto.
7265         (_mm_rsqrt14_round_ss): Ditto.
7266         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7267         the first input operand, get rid of match_dup.
7268         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7269         attribute to sse.
7270         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7271         Ditto.
7272         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7273         operand as the first input operand, set type attribute.
7274         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7275         Set type attribute.
7276         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7277         operand as the first input operand, set type attribute.
7279 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7281         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7282         bit of zero.
7284 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7286         PR target/60207
7287         * config/i386/i386.c (construct_container): Remove TFmode check
7288         for X86_64_INTEGER_CLASS.
7290 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
7292         PR target/59794
7293         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7294         only when -Wpsabi is enabled.
7296 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
7298          PR target/59799
7299         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7300         passing arrays in registers are the same as for structs, so remove the
7301         special case for them.
7303 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
7305         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7306         destination type, extract only the valid bits if the source type is not
7307         integral and has a different mode.
7309 2014-02-19  Richard Biener  <rguenther@suse.de>
7311         PR ipa/60243
7312         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
7313         for all calls.
7315 2014-02-19  Richard Biener  <rguenther@suse.de>
7317         PR ipa/60243
7318         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
7319         (ipa_modify_call_arguments): Emit an argument load explicitely and
7320         preserve virtual SSA form there and for the replacement call.
7321         Do not update SSA form nor free dominance info.
7323 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7325         * ipa.c (function_and_variable_visibility): Also clear WEAK
7326         flag when disolving COMDAT_GROUP.
7328 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7330         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
7331         * ipa-prop.c (ipa_set_jf_known_type): Return early when
7332         not devirtualizing.
7333         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
7334         do more sanity checks.
7335         (detect_type_change): Return true when giving up early.
7336         (compute_complex_assign_jump_func): Fix type parameter of
7337         ipa_set_ancestor_jf.
7338         (compute_complex_ancestor_jump_func): Likewise.
7339         (update_jump_functions_after_inlining): Fix updating of
7340         ancestor function.
7341         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
7343 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7345         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
7346         inline clones when edge disappears.
7348 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7350         PR target/60203
7351         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
7352         Split 64-bit moves into 2 patterns.  Do not allow the use of
7353         direct move for TDmode in little endian, since the decimal value
7354         has little endian bytes within a word, but the 64-bit pieces are
7355         ordered in a big endian fashion, and normal subreg's of TDmode are
7356         not allowed.
7357         (mov<mode>_64bit_dm): Likewise.
7358         (movtd_64bit_nodm): Likewise.
7360 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
7362         PR tree-optimization/60174
7363         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
7364         statement of an SSA_NAME that occurs in an abnormal PHI node.
7366 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
7368         PR sanitizer/60142
7369         * final.c (SEEN_BB): Remove.
7370         (SEEN_NOTE, SEEN_EMITTED): Renumber.
7371         (final_scan_insn): Don't force_source_line on second
7372         NOTE_INSN_BASIC_BLOCK.
7374 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
7376         PR target/60205
7377         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
7378         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
7379         (type_natural_mode): Warn ABI change when %zmm register is not
7380         available for AVX512F vector value passing.
7382 2014-02-18  Kai Tietz  <ktietz@redhat.com>
7384         PR target/60193
7385         * config/i386/i386.c (ix86_expand_prologue): Use value in
7386         rax register as displacement when restoring %r10 or %rax.
7387         Fix wrong offset when restoring both registers.
7389 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
7391         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
7392         assertion with conditional return.
7394 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
7395             Uros Bizjak  <ubizjak@gmail.com>
7397         PR driver/60233
7398         * config/i386/driver-i386.c (host_detect_local_cpu): If
7399         YMM state is not saved by the OS, also clear has_f16c.  Move
7400         CPUID 0x80000001 handling before YMM state saving checking.
7402 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
7404         PR rtl-optimization/58960
7405         * haifa-sched.c (alloc_global_sched_pressure_data): New,
7406         factored out from ...
7407         (sched_init): ... here.
7408         (free_global_sched_pressure_data): New, factored out from ...
7409         (sched_finish): ... here.
7410         * sched-int.h (free_global_sched_pressure_data): Declare.
7411         * sched-rgn.c (nr_regions_initial): New static global.
7412         (haifa_find_rgns): Initialize it.
7413         (schedule_region): Disable sched-pressure for the newly
7414         generated regions.
7416 2014-02-17  Richard Biener  <rguenther@suse.de>
7418         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
7419         release SSA defs of pattern stmts.
7421 2014-02-17  Richard Biener  <rguenther@suse.de>
7423         * tree-inline.c (expand_call_inline): Release the virtual
7424         operand defined by the call we are about to inline.
7426 2014-02-17  Richard Biener  <rguenther@suse.de>
7428         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
7430 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
7431             Ilya Tocar  <ilya.tocar@intel.com>
7433         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
7434         arguments order in builtin.
7435         (_mm512_permutexvar_epi64): Ditto.
7436         (_mm512_mask_permutexvar_epi64): Ditto
7437         (_mm512_maskz_permutexvar_epi32): Ditto
7438         (_mm512_permutexvar_epi32): Ditto
7439         (_mm512_mask_permutexvar_epi32): Ditto
7441 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7443         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7444         (p8_vmrgow): Likewise.
7446 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7448         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
7449         endian targets.
7451 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7453         PR target/60203
7454         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
7455         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
7456         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
7457         using direct move instructions on ISA 2.07.  Also adjust
7458         instruction length for 64-bit.
7459         (mov<mode>_64bit, TFmode/TDmode): Likewise.
7460         (mov<mode>_32bit, TFmode/TDmode): Likewise.
7462 2014-02-15  Alan Modra  <amodra@gmail.com>
7464         PR target/58675
7465         PR target/57935
7466         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
7467         find_replacement on parts of insn rtl that might be reloaded.
7469 2014-02-15  Richard Biener  <rguenther@suse.de>
7471         PR tree-optimization/60183
7472         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
7473         (tree_ssa_phiprop): Calculate and free post-dominators.
7475 2014-02-14  Jeff Law  <law@redhat.com>
7477         PR rtl-optimization/60131
7478         * ree.c (get_extended_src_reg): New function.
7479         (combine_reaching_defs): Use it rather than assuming location of REG.
7480         (find_and_remove_re): Verify first operand of extension is
7481         a REG before adding the insns to the copy list.
7483 2014-02-14  Roland McGrath  <mcgrathr@google.com>
7485         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
7486         * configure: Regenerated.
7487         * config.in: Regenerated.
7488         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
7489         instead of ASM_SHORT.
7491 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
7492             Richard Earnshaw  <rearnsha@arm.com>
7494         PR rtl-optimization/59535
7495         * lra-constraints.c (process_alt_operands): Encourage alternative
7496         when unassigned pseudo class is superset of the alternative class.
7497         (inherit_reload_reg): Don't inherit when optimizing for code size.
7498         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
7499         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
7500         modes not less than 4 for Thumb1.
7502 2014-02-14  Kyle McMartin  <kyle@redhat.com>
7504         PR pch/60010
7505         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
7507 2014-02-14  Richard Biener  <rguenther@suse.de>
7509         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
7510         (get_frame_arg): Drop the assert with langhook types_compatible_p.
7511         Do not strip INDIRECT_REFs.
7513 2014-02-14  Richard Biener  <rguenther@suse.de>
7515         PR lto/60179
7516         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
7517         DECL_FUNCTION_SPECIFIC_TARGET.
7518         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
7519         * tree-streamer-out.c (pack_ts_target_option): Remove.
7520         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
7521         (write_ts_function_decl_tree_pointers): Do not stream
7522         DECL_FUNCTION_SPECIFIC_TARGET.
7523         * tree-streamer-in.c (unpack_ts_target_option): Remove.
7524         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
7525         (lto_input_ts_function_decl_tree_pointers): Do not stream
7526         DECL_FUNCTION_SPECIFIC_TARGET.
7528 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
7530         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
7531         (get_initial_def_for_induction, vectorizable_induction): Ignore
7532         debug stmts when looking for exit_phi.
7533         (vectorizable_live_operation): Fix up condition.
7535 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7537         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
7538         nreverse() because it changes the content of original tree list.
7540 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7542         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
7543         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
7545 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7547         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
7548         GNU coding standards.
7550 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
7552         PR debug/60152
7553         * dwarf2out.c (gen_subprogram_die): Don't call
7554         add_calling_convention_attribute if subr_die is old_die.
7556 2014-02-13  Sharad Singhai  <singhai@google.com>
7558         * doc/optinfo.texi: Fix order of nodes.
7560 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
7562         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
7563         operands[2], not operands[3].
7565 2014-02-13  Richard Biener  <rguenther@suse.de>
7567         PR bootstrap/59878
7568         * doc/install.texi (ISL): Update recommended version to 0.12.2,
7569         mention the possibility of an in-tree build.
7570         (CLooG): Update recommended version to 0.18.1, mention the
7571         possibility of an in-tree build and clarify that the ISL
7572         bundled with CLooG does not work.
7574 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
7576         PR target/43546
7577         * expr.c (compress_float_constant): If x is a hard register,
7578         extend into a pseudo and then move to x.
7580 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7582         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
7583         caused by bad second argument to warning_at() with -mhotpatch and
7584         nested functions (e.g. with gfortran).
7586 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
7588         * opts.c (option_name): Remove "enabled by default" rider.
7590 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
7592         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
7594 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7595             Uros Bizjak  <ubizjak@gmail.com>
7597         PR target/60151
7598         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
7599         * configure: Regenerated.
7601 2014-02-12  Richard Biener  <rguenther@suse.de>
7603         * vec.c (vec_prefix::calculate_allocation): Move as
7604         inline variant to vec.h.
7605         (vec_prefix::calculate_allocation_1): New out-of-line version.
7606         * vec.h (vec_prefix::calculate_allocation_1): Declare.
7607         (vec_prefix::m_has_auto_buf): Rename to ...
7608         (vec_prefix::m_using_auto_storage): ... this.
7609         (vec_prefix::calculate_allocation): Inline the easy cases
7610         and dispatch to calculate_allocation_1 which doesn't need the
7611         prefix address.
7612         (va_heap::reserve): Use gcc_checking_assert.
7613         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
7614         m_using_auto_storage.
7615         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
7616         member and adjust.
7617         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
7618         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
7619         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
7621 2014-02-12  Richard Biener  <rguenther@suse.de>
7623         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
7624         when we found a dependence.
7626 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
7628         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
7629         common code...
7630         (maybe_fold_stmt): ... into this new function.
7631         * omp-low.c (lower_omp): Update comment.
7633         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
7634         last use.
7636         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
7637         dereference.
7639 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
7641         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
7642         identifiers in comments.
7643         (cortexa53_extra_costs): Likewise.
7644         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7645         (cortexa7_extra_costs): Likewise.
7646         (cortexa12_extra_costs): Likewise.
7647         (cortexa15_extra_costs): Likewise.
7648         (v7m_extra_costs): Likewise.
7650 2014-02-12  Richard Biener  <rguenther@suse.de>
7652         PR middle-end/60092
7653         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7654         of posix_memalign being successful.
7655         (lower_stmt): Restrict lowering of posix_memalign to when
7656         -ftree-bit-ccp is enabled.
7658 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7660         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7661         arg_loc.
7662         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7664 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7666         PR rtl-optimization/60116
7667         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7668         other_insn once the combination has been validated.
7670 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
7672         PR lto/59468
7673         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7674         and wrapper.
7675         * ipa-devirt.c: Include demangle.h
7676         (odr_violation_reported): New static variable.
7677         (add_type_duplicate): Update odr_violations.
7678         (maybe_record_node): Add completep parameter; update it.
7679         (record_target_from_binfo): Add COMPLETEP parameter;
7680         update it as needed.
7681         (possible_polymorphic_call_targets_1): Likewise.
7682         (struct polymorphic_call_target_d): Add nonconstruction_targets;
7683         rename FINAL to COMPLETE.
7684         (record_targets_from_bases): Sanity check we found the binfo;
7685         fix COMPLETEP updating.
7686         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7687         parameter, fix computing of COMPLETEP.
7688         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7689         at LTO time do demangling.
7690         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7691         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7692         parameter.
7693         (gimple_get_virt_method_for_binfo): Likewise.
7694         * gimple-fold.h (gimple_get_virt_method_for_binfo,
7695         gimple_get_virt_method_for_vtable): Update prototypes.
7697 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
7699         PR target/49008
7700         * genautomata.c (add_presence_absence): Fix typo with
7701         {final_}presence_list.
7703 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
7705         PR target/60137
7706         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7707         for VSX/Altivec vectors that land in GPR registers.
7709 2014-02-11  Richard Henderson  <rth@redhat.com>
7710             Jakub Jelinek  <jakub@redhat.com>
7712         PR debug/59776
7713         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7714         around drhs if type conversion to lacc->type is not useless.
7716 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7718         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7719         tuning struct.
7720         (cortex-a57.cortex-a53): Likewise.
7721         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7723 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7725         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7726         arm_restrict_it.
7728 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
7730         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7731         add_options_for_arm_vfp3.
7733 2014-02-11  Jeff Law  <law@redhat.com>
7735         PR middle-end/54041
7736         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7737         object with an undesirable mode.
7739 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7741         PR libgomp/60107
7742         * config/i386/sol2-9.h: New file.
7743         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7744         *-*-solaris2.9*): Use it.
7746 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7748         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7749         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7751 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7753         * config/microblaze/microblaze.c: Extend mcpu version format
7755 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
7757         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7759 2014-02-10  Richard Henderson  <rth@redhat.com>
7761         PR target/59927
7762         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7763         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7764         ms-abi vs -mno-accumulate-outgoing-args.
7765         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7766         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7767         respect to ms-abi.
7769 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7771         PR middle-end/60080
7772         * cfgexpand.c (expand_asm_operands): Attach source location to
7773         ASM_INPUT rtx objects.
7774         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7776 2014-02-10  Nick Clifton  <nickc@redhat.com>
7778         * config/mn10300/mn10300.c (popcount): New function.
7779         (mn10300_expand_prologue): Include saved registers in stack usage
7780         count.
7782 2014-02-10  Jeff Law  <law@redhat.com>
7784         PR middle-end/52306
7785         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7786         when changing the SET_DEST of a prior insn to avoid an input reload.
7788 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7790         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7791         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7792         -mcall-openbsd, or -mcall-linux.
7793         (CC1_ENDIAN_BIG_SPEC): Remove.
7794         (CC1_ENDIAN_LITTLE_SPEC): Remove.
7795         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7796         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7797         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7798         and %cc1_endian_default.
7799         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7801 2014-02-10  Richard Biener  <rguenther@suse.de>
7803         PR tree-optimization/60115
7804         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7805         MEM_REF handling.  Properly verify that the accesses are not
7806         out of the objects bound.
7808 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7810         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7811         coretex to cortex.
7813 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7815         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7816         proper constants and fix formatting.
7817         (possible_polymorphic_call_targets): Fix formatting.
7819 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
7820             Ilya Tocar  <ilya.tocar@intel.com>
7822         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7823         (_mm512_loadu_epi32): Renamed into...
7824         (_mm512_loadu_si512): This.
7825         (_mm512_storeu_epi32): Renamed into...
7826         (_mm512_storeu_si512): This.
7827         (_mm512_maskz_ceil_ps): Removed.
7828         (_mm512_maskz_ceil_pd): Ditto.
7829         (_mm512_maskz_floor_ps): Ditto.
7830         (_mm512_maskz_floor_pd): Ditto.
7831         (_mm512_floor_round_ps): Ditto.
7832         (_mm512_floor_round_pd): Ditto.
7833         (_mm512_ceil_round_ps): Ditto.
7834         (_mm512_ceil_round_pd): Ditto.
7835         (_mm512_mask_floor_round_ps): Ditto.
7836         (_mm512_mask_floor_round_pd): Ditto.
7837         (_mm512_mask_ceil_round_ps): Ditto.
7838         (_mm512_mask_ceil_round_pd): Ditto.
7839         (_mm512_maskz_floor_round_ps): Ditto.
7840         (_mm512_maskz_floor_round_pd): Ditto.
7841         (_mm512_maskz_ceil_round_ps): Ditto.
7842         (_mm512_maskz_ceil_round_pd): Ditto.
7843         (_mm512_expand_pd): Ditto.
7844         (_mm512_expand_ps): Ditto.
7845         * config/i386/i386.c (ix86_builtins): Remove
7846         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7847         (bdesc_args): Ditto.
7848         * config/i386/predicates.md (const1256_operand): New.
7849         (const_1_to_2_operand): Ditto.
7850         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7851         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7852         (*avx512pf_gatherpf<mode>sf): Ditto.
7853         (avx512pf_gatherpf<mode>df): Ditto.
7854         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7855         (*avx512pf_gatherpf<mode>df): Ditto.
7856         (avx512pf_scatterpf<mode>sf): Ditto.
7857         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7858         (*avx512pf_scatterpf<mode>sf): Ditto.
7859         (avx512pf_scatterpf<mode>df): Ditto.
7860         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7861         (*avx512pf_scatterpf<mode>df): Ditto.
7862         (avx512f_expand<mode>): Removed.
7863         (<shift_insn><mode>3<mask_name>): Change predicate type.
7865 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7867         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7868         not at the end of datarefs vector use ordered_remove to avoid
7869         reordering datarefs vector.
7871         PR c/59984
7872         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7873         mark local addressable non-static vars as GOVD_PRIVATE
7874         instead of GOVD_LOCAL.
7875         * omp-low.c (lower_omp_for): Move gimple_bind_vars
7876         and BLOCK_VARS of gimple_bind_block to new_stmt rather
7877         than copying them.
7879         PR middle-end/60092
7880         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7881         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7882         assume_aligned or alloc_align attributes.
7883         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7884         arguments.  Handle also assume_aligned and alloc_align attributes.
7885         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
7886         calls to functions with assume_aligned or alloc_align attributes.
7887         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7889 2014-02-08  Terry Guo  <terry.guo@arm.com>
7891         * doc/invoke.texi: Document ARM -march=armv7e-m.
7893 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7895         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7896         flag on __cilkrts_rethrow builtin.
7898         PR ipa/60026
7899         * ipa-cp.c (determine_versionability): Fail at -O0
7900         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7901         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7903         Revert:
7904         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
7906         PR ipa/60026
7907         * tree-inline.c (copy_forbidden): Fail for
7908         __attribute__((optimize (0))) functions.
7910 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
7912         * varpool.c: Include pointer-set.h.
7913         (varpool_remove_unreferenced_decls): Variables in other partitions
7914         will not be output; be however careful to not lose information
7915         about partitioning.
7917 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
7919         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
7920         lookup in the vtable constructor.
7922 2014-02-07  Jeff Law  <law@redhat.com>
7924         PR target/40977
7925         * config/m68k/m68k.md (ashldi_extsi): Turn into a
7926         define_insn_and_split.
7928         * ipa-inline.c (inline_small_functions): Fix typos.
7930 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7932         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
7933         (s390_can_use_return_insn): Declare.
7934         * config/s390/s390.h (EPILOGUE_USES): Define.
7935         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
7936         instructions.
7937         (s390_chunkify_start): Handle return JUMP_LABELs.
7938         (s390_early_mach): Emit a main_pool instruction on the entry edge.
7939         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
7940         (s390_can_use_return_insn): New functions.
7941         (s390_fix_long_loop_prediction): Handle conditional returns.
7942         (TARGET_SET_UP_BY_PROLOGUE): Define.
7943         * config/s390/s390.md (ANY_RETURN): New code iterator.
7944         (*creturn, *csimple_return, return, simple_return): New patterns.
7946 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7948         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
7949         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
7950         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
7951         REG_CFA_RESTORE list when deciding not to restore a register.
7953 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7955         * config/s390/s390.c: Include tree-pass.h and context.h.
7956         (s390_early_mach): New function, split out from...
7957         (s390_emit_prologue): ...here.
7958         (pass_data_s390_early_mach): New pass structure.
7959         (pass_s390_early_mach): New class.
7960         (s390_option_override): Create and register early_mach pass.
7961         Move to end of file.
7963 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7965         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
7966         to match for the exit block.
7968 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7970         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
7971         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
7972         Reject misaligned operands.
7974 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7976         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
7978 2014-02-07  Richard Biener  <rguenther@suse.de>
7980         PR middle-end/60092
7981         * gimple-low.c (lower_builtin_posix_memalign): New function.
7982         (lower_stmt): Call it to lower posix_memalign in a way
7983         to make alignment info accessible.
7985 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
7987         PR c++/60082
7988         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
7989         __builtin_setjmp_receiver.
7991 2014-02-07  Richard Biener  <rguenther@suse.de>
7993         PR middle-end/60092
7994         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
7995         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
7996         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7997         Handle BUILT_IN_POSIX_MEMALIGN.
7998         (find_func_clobbers): Likewise.
7999         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8000         (call_may_clobber_ref_p_1): Likewise.
8002 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8004         PR ipa/59918
8005         * ipa-devirt.c (record_target_from_binfo): Remove overactive
8006         sanity check.
8008 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8010         PR ipa/59469
8011         * lto-cgraph.c (lto_output_node): Use
8012         symtab_get_symbol_partitioning_class.
8013         (lto_output_varpool_node): likewise.
8014         (symtab_get_symbol_partitioning_class): Move here from
8015         lto/lto-partition.c
8016         * cgraph.h (symbol_partitioning_class): Likewise.
8017         (symtab_get_symbol_partitioning_class): Declare.
8019 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8021         * ggc.h (ggc_internal_cleared_alloc): New macro.
8022         * vec.h (vec_safe_copy): Handle memory stats.
8023         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8024         * target-globals.c (save_target_globals): Likewise.
8026 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8028         PR target/60077
8029         * expr.c (emit_move_resolve_push): Export; be bit more selective
8030         on when to clear alias set.
8031         * expr.h (emit_move_resolve_push): Declare.
8032         * function.h (struct function): Add tail_call_marked.
8033         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8034         * config/i386/i386-protos.h (ix86_expand_push): Remove.
8035         * config/i386/i386.md (TImode move expander): De not call
8036         ix86_expand_push.
8037         (FP push expanders): Preserve memory attributes.
8038         * config/i386/sse.md (push<mode>1): Remove.
8039         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8040         (ix86_expand_push): Remove.
8041         * config/i386/mmx.md (push<mode>1): Remove.
8043 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8045         PR rtl-optimization/60030
8046         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8047         lopart with paradoxical subreg before shifting it up by hprec.
8049 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8051         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8052         Remove extra newline at end of file.
8053         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8054         (arm_issue_rate): Handle cortexa57.
8055         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8056         (cortex-a57.cortex-a53): Likewise.
8058 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8060         PR target/59575
8061         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8062         don't record in REG_FRAME_RELATED_EXPR registers not set in that
8063         bitmask.
8064         (arm_expand_prologue): Adjust all callers.
8065         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8066         info, registers also at the lowest numbered registers side.  Use
8067         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8068         XEXP.
8070         PR debug/59992
8071         * var-tracking.c (adjust_mems): Before adding a SET to
8072         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8074 2014-02-06  Alan Modra  <amodra@gmail.com>
8076         PR target/60032
8077         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8078         change SDmode to DDmode when lra_in_progress.
8080 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8082         PR middle-end/59150
8083         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8084         free_data_ref on the dr first, and before goto again also set dr
8085         to the next dr.  For simd_lane_access, free old datarefs[i] before
8086         overwriting it.  For get_vectype_for_scalar_type failure, don't
8087         free_data_ref if simd_lane_access.
8089         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8091         PR target/60062
8092         * tree.h (opts_for_fn): New inline function.
8093         (opt_for_fn): Define.
8094         * config/i386/i386.c (ix86_function_regparm): Use
8095         opt_for_fn (decl, optimize) instead of optimize.
8097 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8099         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8100         for SYMBOL_REF in large memory model.
8102 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8104         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8105         and crypto support.
8106         (cortex-a57): Likewise.
8107         (cortex-a57.cortex-a53): Likewise.
8109 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
8110             Kugan Vivekanandarajah  <kuganv@linaro.org>
8112         * config/arm/arm.c (arm_vector_alignment_reachable): Check
8113         unaligned_access.
8114         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8116 2014-02-06  Richard Biener  <rguenther@suse.de>
8118         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8119         set_loop_copy and initialize_original_copy_tables.
8121 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
8123         * config/aarch64/aarch64-simd.md
8124         (aarch64_ashr_simddi): Change QI to SI.
8126 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8127             Jakub Jelinek  <jakub@redhat.com>
8129         PR middle-end/60013
8130         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8131         of the dataflow.
8133 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8135         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8136         CODE_FOR_altivec_vpku[hw]um to
8137         CODE_FOR_altivec_vpku[hw]um_direct.
8138         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8139         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8140         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8141         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8143 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8145         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8146         generation for -maltivec=be.
8147         (altivec_vsumsws): Simplify redundant test.
8149 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8151         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8152         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8153         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8154         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8155         gen_altivec_vpkuwum.
8156         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8157         BYTES_BIG_ENDIAN.
8158         (altivec_vpks<VI_char>ss): Likewise.
8159         (altivec_vpks<VI_char>us): Likewise.
8160         (altivec_vpku<VI_char>us): Likewise.
8161         (altivec_vpku<VI_char>um): Likewise.
8162         (altivec_vpku<VI_char>um_direct): New (copy of
8163         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8164         internal use).
8165         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8166         target is little endian and -maltivec=be is not specified.
8167         (*altivec_vupkhs<VU_char>_direct): New (copy of
8168         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8169         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8170         target is little endian and -maltivec=be is not specified.
8171         (*altivec_vupkls<VU_char>_direct): New (copy of
8172         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8173         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8174         little endian and -maltivec=be is not specified.
8175         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8176         little endian and -maltivec=be is not specified.
8178 2014-02-05  Richard Henderson  <rth@redhat.com>
8180         PR debug/52727
8181         * combine-stack-adj.c: Revert r206943.
8182         * sched-int.h (struct deps_desc): Add last_args_size.
8183         * sched-deps.c (init_deps): Initialize it.
8184         (sched_analyze_insn): Add OUTPUT dependencies between insns that
8185         contain REG_ARGS_SIZE notes.
8187 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8189         * lto-cgraph.c (asm_nodes_output): Make global.
8190         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8191         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8192         (driver_handle_option): Handle OPT_fwpa.
8194 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
8196         PR ipa/59947
8197         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8198         a comment typo and formatting issue.  If odr_hash hasn't been
8199         created, return vNULL and set *completep to false.
8201         PR middle-end/57499
8202         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8203         bb with no successors.
8205 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
8207         PR target/59718
8208         * doc/invoke.texi (-march): Clarify documentation for ARM.
8209         (-mtune): Likewise.
8210         (-mcpu): Likewise.
8212 2014-02-05  Richard Biener  <rguenther@suse.de>
8214         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8215         when not vectorizing because of too many alias checks.
8216         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8217         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8219 2014-02-05  Nick Clifton  <nickc@redhat.com>
8221         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8222         accept extended registers in any mode when compiling for the MN10300.
8224 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
8226         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8227         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8228         sanitization attributes.
8229         (can_inline_edge_p): Likewise.
8230         (sanitize_attrs_match_for_inline_p): New function.
8232 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8234         * ipa-prop.c (detect_type_change): Shor circuit testing of
8235         type changes on THIS pointer.
8237 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
8239         PR target/59777
8240         * config/pa/pa.c (legitimize_tls_address): Return original address
8241         if not passed a SYMBOL_REF rtx.
8242         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8243         addresses.
8244         (pa_emit_move_sequence): Simplify TLS source operands.
8245         (pa_legitimate_constant_p): Reject all TLS constants.
8246         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8247         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8249 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8251         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8252         groups when we know they are controlled by LTO.
8253         * varasm.c (default_binds_local_p_1): If object is in other partition,
8254         it will be resolved locally.
8256 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8258         * config/host-linux.c (linux_gt_pch_use_address): Don't
8259         use SSIZE_MAX because it is not always defined.
8261 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
8263         PR bootstrap/59913
8264         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8265         threshold for pseudo splitting.
8266         (update_ebb_live_info): Process call argument hard registers and
8267         hard registers from insn definition too.
8268         (max_small_class_regs_num): New constant.
8269         (inherit_in_ebb): Update live hard regs through EBBs.  Update
8270         reloads_num only for small register classes.  Don't split for
8271         outputs of jumps.
8273 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
8275         PR ipa/60058
8276         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8277         is non-null.
8279 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8281         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8282         visibility is safe.
8284 2014-02-04  Marek Polacek  <polacek@redhat.com>
8286         * gdbinit.in (pel): Define.
8288 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8290         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8291         behavior.
8293 2014-02-04  Richard Biener  <rguenther@suse.de>
8295         PR lto/59723
8296         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8297         in function context local.
8298         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8299         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8300         similar to LTO_imported_decl_ref.
8302 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
8304         PR tree-optimization/60002
8305         * cgraphclones.c (build_function_decl_skip_args): Clear
8306         DECL_LANG_SPECIFIC.
8308         PR tree-optimization/60023
8309         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
8310         false to gsi_replace.
8311         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
8312         has been in some EH region and vec_stmt could throw, add
8313         vec_stmt into the same EH region.
8314         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
8315         has no lhs, ignore it.
8316         * internal-fn.c (expand_MASK_LOAD): Likewise.
8318         PR ipa/60026
8319         * tree-inline.c (copy_forbidden): Fail for
8320         __attribute__((optimize (0))) functions.
8322         PR other/58712
8323         * omp-low.c (simd_clone_struct_copy): If from->inbranch
8324         is set, copy one less argument.
8325         (expand_simd_clones): Don't subtract clone_info->inbranch
8326         from simd_clone_struct_alloc argument.
8328         PR rtl-optimization/57915
8329         * recog.c (simplify_while_replacing): If all unary/binary/relational
8330         operation arguments are constant, attempt to simplify those.
8332         PR middle-end/59261
8333         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
8334         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
8336 2014-02-04  Richard Biener  <rguenther@suse.de>
8338         PR tree-optimization/60012
8339         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
8340         TBAA disambiguation to all DDRs.
8342 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8344         PR target/59788
8345         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
8346         (LINK_SPEC): Use it for -shared, -shared-libgcc.
8348 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8350         PR ipa/59882
8351         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
8353 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8355         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
8356         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
8358 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8360         PR ipa/59831
8361         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
8362         to figure out targets of polymorphic calls with known decl.
8363         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8364         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
8365         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
8366         (get_polymorphic_call_info): ... here.
8367         (get_polymorphic_call_info_from_invariant): New function.
8369 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8371         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
8372         lookup via vtable pointer; check for type consistency
8373         and turn inconsitent facts into UNREACHABLE.
8374         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8375         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
8376         type inconsistent querries; return UNREACHABLE instead.
8378 2014-02-03  Richard Henderson  <rth@twiddle.net>
8380         PR tree-opt/59924
8381         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
8382         already processed this node.
8383         (normalize_one_pred_1): Pass along mark_set.
8384         (normalize_one_pred): Create and destroy a pointer_set_t.
8385         (normalize_one_pred_chain): Likewise.
8387 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
8389         PR gcov-profile/58602
8390         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
8392 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8394         PR ipa/59831
8395         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
8396         -fno-devirtualize; try to devirtualize by the knowledge of
8397         virtual table pointer given by aggregate propagation.
8398         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8399         (ipa_print_node_jump_functions): Dump also offset that
8400         is relevant for polymorphic calls.
8401         (determine_known_aggregate_parts): Add arg_type parameter; use it
8402         instead of determining the type from pointer type.
8403         (ipa_compute_jump_functions_for_edge): Update call of
8404         determine_known_aggregate_parts.
8405         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
8406         (gimple_get_virt_method_for_binfo): ... here; simplify using
8407         vtable_pointer_value_to_vtable.
8408         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
8409         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
8410         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
8411         (vtable_pointer_value_to_vtable): Break out from ...; handle also
8412         POINTER_PLUS_EXPR.
8413         (vtable_pointer_value_to_binfo): ... here.
8414         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
8416 2014-02-03  Teresa Johnson  <tejohnson@google.com>
8418         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
8419         redef of outer loop index variable.
8421 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
8423         PR c++/53017
8424         PR c++/59211
8425         * doc/extend.texi (Function Attributes): Typo.
8427 2014-02-03  Cong Hou  <congh@google.com>
8429         PR tree-optimization/60000
8430         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
8431         if the vectorized statement is a store.  A store statement can only
8432         appear at the end of pattern statements.
8434 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
8436         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
8437         (ix86_option_override_internal): Default long double to 64-bit for
8438         32-bit Bionic and to 128-bit for 64-bit Bionic.
8440         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
8441         TARGET_LONG_DOUBLE_128 is true.
8442         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
8444         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
8445         (mlong-double-64): Negate -mlong-double-128.
8446         (mlong-double-128): New option.
8448         * config/i386/i386-c.c (ix86_target_macros): Define
8449         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
8451         * doc/invoke.texi: Document -mlong-double-128.
8453 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
8455         PR rtl-optimization/60024
8456         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
8458 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
8460         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
8462 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
8464         PR rtl-optimization/57662
8465         * sel-sched.c (code_motion_path_driver): Do not mark already not
8466         existing blocks in the visiting bitmap.
8468 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
8470         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
8471         on the insn being emitted.
8473 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
8474             Will Deacon  <will.deacon@arm.com>
8476         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
8478 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8480         * config/arm/arm-tables.opt: Regenerate.
8482 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8484         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
8485         for vector types other than V16QImode.
8486         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
8487         define_expand, and call altivec_expand_vec_perm_le when producing
8488         code with little endian element order.
8489         (*altivec_vperm_<mode>_internal): New insn having previous
8490         behavior of altivec_vperm_<mode>.
8491         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
8492         altivec_expand_vec_perm_le when producing code with little endian
8493         element order.
8494         (*altivec_vperm_<mode>_uns_internal): New insn having previous
8495         behavior of altivec_vperm_<mode>_uns.
8497 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8499         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
8500         (altivec_vsumsws): Add handling for -maltivec=be with a little
8501         endian target.
8502         (altivec_vsumsws_direct): New.
8503         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
8504         gen_altivec_vsumsws.
8506 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
8508         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
8509         vtable_pointer_value_to_binfo): New functions.
8510         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
8511         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
8513 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
8515         * config/nios2/nios2.md (load_got_register): Initialize GOT
8516         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
8517         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
8519 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
8521         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
8522         preserverd by passthrough, do not propagate the type.
8524 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8526         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
8527         (mips_atomic_assign_expand_fenv): New function.
8528         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
8530 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8532         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
8533         (__builtin_mips_set_fcsr): Likewise.
8534         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
8535         MIPS_USI_FTYPE_VOID.
8536         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
8537         (mips16_expand_set_fcsr): Likewise.
8538         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
8539         (mips16_set_fcsr_stub): Likewise.
8540         (mips16_get_fcsr_one_only_stub): New class.
8541         (mips16_set_fcsr_one_only_stub): Likewise.
8542         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
8543         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
8544         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
8545         (hard_float): New availability predicate.
8546         (mips_builtins): Add get_fcsr and set_fcsr.
8547         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
8548         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
8549         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
8550         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
8551         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
8552         patterns.
8554 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8556         * config/mips/mips.c (mips_one_only_stub): New class.
8557         (mips_need_mips16_rdhwr_p): Replace with...
8558         (mips16_rdhwr_stub): ...this new variable.
8559         (mips16_stub_call_address): New function.
8560         (mips16_rdhwr_one_only_stub): New class.
8561         (mips_expand_thread_pointer): Use mips16_stub_call_address.
8562         (mips_output_mips16_rdhwr): Delete.
8563         (mips_finish_stub): New function.
8564         (mips_code_end): Use it to handle rdhwr stubs.
8566 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
8568         PR target/60017
8569         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
8570         when calculating size of integer atomic types.
8572 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
8574         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
8576 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
8578         PR tree-optimization/60003
8579         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
8580         * profile.c (branch_prob): Use gimple_call_builtin_p
8581         to check for BUILT_IN_SETJMP_RECEIVER.
8582         * tree-inline.c (copy_bb): Call notice_special_calls.
8584 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
8586         PR bootstrap/59985
8587         * lra-constraints.c (process_alt_operands): Update reload_sum only
8588         on the first pass.
8590 2014-01-31  Richard Henderson  <rth@redhat.com>
8592         PR middle-end/60004
8593         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
8594         until after else_eh is processed.
8596 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
8598         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
8599         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
8600         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
8601         in smmintrin.h, remove them.
8602         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
8603         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
8604         * config/i386/i386.md (ROUND_SAE): Fix value.
8605         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
8606         (const48_operand): New.
8607         * config/i386/subst.md (round), (round_expand): Use
8608         const_4_or_8_to_11_operand.
8609         (round_saeonly), (round_saeonly_expand): Use const48_operand.
8611 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
8613         * config/i386/constraints.md (Yk): Swap meaning with k.
8614         * config/i386/i386.md (movhi_internal): Change Yk to k.
8615         (movqi_internal): Ditto.
8616         (*k<logic><mode>): Ditto.
8617         (*andhi_1): Ditto.
8618         (*andqi_1): Ditto.
8619         (kandn<mode>): Ditto.
8620         (*<code>hi_1): Ditto.
8621         (*<code>qi_1): Ditto.
8622         (kxnor<mode>): Ditto.
8623         (kortestzhi): Ditto.
8624         (kortestchi): Ditto.
8625         (kunpckhi): Ditto.
8626         (*one_cmplhi2_1): Ditto.
8627         (*one_cmplqi2_1): Ditto.
8628         * config/i386/sse.md (): Change k to Yk.
8629         (avx512f_load<mode>_mask): Ditto.
8630         (avx512f_blendm<mode>): Ditto.
8631         (avx512f_store<mode>_mask): Ditto.
8632         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8633         (avx512f_storedqu<mode>_mask): Ditto.
8634         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
8635         Ditto.
8636         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
8637         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
8638         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
8639         (avx512f_maskcmp<mode>3): Ditto.
8640         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
8641         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
8642         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8643         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8644         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8645         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8646         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8647         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8648         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8649         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8650         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8651         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8652         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8653         (vec_extract_lo_<mode>_maskm): Ditto.
8654         (vec_extract_hi_<mode>_maskm): Ditto.
8655         (avx512f_vternlog<mode>_mask): Ditto.
8656         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8657         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8658         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8659         (avx512f_<code>v8div16qi2_mask): Ditto.
8660         (avx512f_<code>v8div16qi2_mask_store): Ditto.
8661         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8662         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8663         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8664         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8665         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8666         (*avx512pf_gatherpf<mode>df_mask): Ditto.
8667         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8668         (*avx512pf_scatterpf<mode>df_mask): Ditto.
8669         (avx512cd_maskb_vec_dupv8di): Ditto.
8670         (avx512cd_maskw_vec_dupv16si): Ditto.
8671         (avx512f_vpermi2var<mode>3_maskz): Ditto.
8672         (avx512f_vpermi2var<mode>3_mask): Ditto.
8673         (avx512f_vpermi2var<mode>3_mask): Ditto.
8674         (avx512f_vpermt2var<mode>3_maskz): Ditto.
8675         (*avx512f_gathersi<mode>): Ditto.
8676         (*avx512f_gathersi<mode>_2): Ditto.
8677         (*avx512f_gatherdi<mode>): Ditto.
8678         (*avx512f_gatherdi<mode>_2): Ditto.
8679         (*avx512f_scattersi<mode>): Ditto.
8680         (*avx512f_scatterdi<mode>): Ditto.
8681         (avx512f_compress<mode>_mask): Ditto.
8682         (avx512f_compressstore<mode>_mask): Ditto.
8683         (avx512f_expand<mode>_mask): Ditto.
8684         * config/i386/subst.md (mask): Change k to Yk.
8685         (mask_scalar_merge): Ditto.
8686         (sd): Ditto.
8688 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
8690         * doc/extend.texi (Vector Extensions): Document ?: in C++.
8692 2014-01-31  Richard Biener  <rguenther@suse.de>
8694         PR middle-end/59990
8695         * builtins.c (fold_builtin_memory_op): Make sure to not
8696         use a floating-point mode or a boolean or enumeral type for
8697         the copy operation.
8699 2014-01-30  DJ Delorie  <dj@redhat.com>
8701         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8702         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8703         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8704         whenever main() has an epilogue.
8706 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8708         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8709         unused variable "field".
8710         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8711         (vsx_mergeh_<mode>): Likewise.
8712         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8713         (altivec_vmrghh): Likewise.
8714         (altivec_vmrghw): Likewise.
8715         (altivec_vmrglb): Likewise.
8716         (altivec_vmrglh): Likewise.
8717         (altivec_vmrglw): Likewise.
8718         (altivec_vspltb): Add missing uses.
8719         (altivec_vsplth): Likewise.
8720         (altivec_vspltw): Likewise.
8721         (altivec_vspltsf): Likewise.
8723 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8725         PR target/59923
8726         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8727         frame related instructions.
8729 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
8731         PR rtl-optimization/59959
8732         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8733         any reload of register whose subreg is invalid.
8735 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8737         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8738         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8739         Add missing return type - void.
8741 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8743         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8744         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8745         remove element index adjustment for endian (now handled in vsx.md
8746         and altivec.md).
8747         (altivec_expand_vec_perm_const): Use
8748         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8749         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8750         (vsx_xxspltw_<mode>): Adjust element index for little endian.
8751         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8752         define_expand and a new define_insn *altivec_vspltb_internal;
8753         adjust for -maltivec=be on a little endian target.
8754         (altivec_vspltb_direct): New.
8755         (altivec_vsplth): Divide into a define_expand and a new
8756         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8757         little endian target.
8758         (altivec_vsplth_direct): New.
8759         (altivec_vspltw): Divide into a define_expand and a new
8760         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8761         little endian target.
8762         (altivec_vspltw_direct): New.
8763         (altivec_vspltsf): Divide into a define_expand and a new
8764         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8765         a little endian target.
8767 2014-01-30  Richard Biener  <rguenther@suse.de>
8769         PR tree-optimization/59993
8770         * tree-ssa-forwprop.c (associate_pointerplus): Check we
8771         can propagate form the earlier stmt and avoid the transform
8772         when the intermediate result is needed.
8774 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
8776         * README.Portability: Fix typo.
8778 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
8780         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8781         comparison_operator with ordered_comparison_operator.
8783 2014-01-30  Nick Clifton  <nickc@redhat.com>
8785         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8786         Rename to mn10300_store_multiple_regs.
8787         * config/mn10300/mn10300.c: Likewise.
8788         * config/mn10300/mn10300.md (store_movm): Fix typo: call
8789         store_multiple_regs.
8790         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8791         Call mn10300_store_multiple_regs.
8793 2014-01-30  Nick Clifton  <nickc@redhat.com>
8794             DJ Delorie  <dj@redhat.com>
8796         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8797         %fp 2 to keep registers after it properly word-aligned.
8798         (rl78_alloc_physical_registers_umul): Handle the case where both
8799         input operands are the same.
8801 2014-01-30  Richard Biener  <rguenther@suse.de>
8803         PR tree-optimization/59903
8804         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8805         check properly.
8807 2014-01-30  Jason Merrill  <jason@redhat.com>
8809         PR c++/59633
8810         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8812         PR c++/59645
8813         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8815 2014-01-30  Richard Biener  <rguenther@suse.de>
8817         PR tree-optimization/59951
8818         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8820 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
8822         PR target/59784
8823         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8824         SFmode to DFmode case.
8826 2014-01-29  DJ Delorie  <dj@redhat.com>
8828         * config/msp430/msp430.opt (-minrt): New.
8829         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8830         if -minrt given.
8831         (ENDFILE_SPEC): Likewise.
8833 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
8835         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8836         (estimate_function_body_sizes): Use it.
8838 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
8840         PR c++/58561
8841         * dwarf2out.c (is_cxx_auto): New.
8842         (is_base_type): Use it.
8843         (gen_type_die_with_usage): Likewise.
8845 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8847         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
8848         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8849         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8850         -maltivec=be with LE targets.
8851         (vsx_mergeh_<mode>): Likewise.
8852         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8853         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8854         (altivec_vmrghb): Replace with define_expand and new
8855         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8856         (altivec_vmrghb_direct): New define_insn.
8857         (altivec_vmrghh): Replace with define_expand and new
8858         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8859         (altivec_vmrghh_direct): New define_insn.
8860         (altivec_vmrghw): Replace with define_expand and new
8861         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8862         (altivec_vmrghw_direct): New define_insn.
8863         (*altivec_vmrghsf): Adjust for endianness.
8864         (altivec_vmrglb): Replace with define_expand and new
8865         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8866         (altivec_vmrglb_direct): New define_insn.
8867         (altivec_vmrglh): Replace with define_expand and new
8868         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8869         (altivec_vmrglh_direct): New define_insn.
8870         (altivec_vmrglw): Replace with define_expand and new
8871         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8872         (altivec_vmrglw_direct): New define_insn.
8873         (*altivec_vmrglsf): Adjust for endianness.
8874         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8875         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8876         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8877         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8878         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8879         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8880         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8881         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8883 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8885         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8886         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8887         whitespace.
8889 2014-01-29  Richard Biener  <rguenther@suse.de>
8891         PR tree-optimization/58742
8892         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8893         associate_pointerplus_align.
8894         (associate_pointerplus_diff): New function.
8895         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
8896         and associate_pointerplus_diff.
8898 2014-01-29  Richard Biener  <rguenther@suse.de>
8900         * lto-streamer.h (LTO_major_version): Bump to 3.
8901         (LTO_minor_version): Reset to 0.
8903 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
8905         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8906         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8907         (arm_file_start): Generate correct asm header for armv7ve.
8908         * config/arm/bpabi.h: Add multilib support for armv7ve.
8909         * config/arm/driver-arm.c: Change the architectures of cortex-a7
8910         and cortex-a15 to armv7ve.
8911         * config/arm/t-aprofile: Add multilib support for armv7ve.
8912         * doc/invoke.texi: Document -march=armv7ve.
8914 2014-01-29  Richard Biener  <rguenther@suse.de>
8916         PR tree-optimization/58742
8917         * tree-ssa-forwprop.c (associate_plusminus): Return true
8918         if we changed sth, defer EH cleanup to ...
8919         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
8920         (simplify_mult): New function.
8922 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
8924         PR middle-end/59917
8925         PR tree-optimization/59920
8926         * tree.c (build_common_builtin_nodes): Remove
8927         __builtin_setjmp_dispatcher initialization.
8928         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
8929         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
8930         instead of gsi_after_labels + manually skipping debug stmts.
8931         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
8932         ignore bbs with IFN_ABNORMAL_DISPATCHER.
8933         * tree-inline.c (copy_edges_for_bb): Remove
8934         can_make_abnormal_goto argument, instead add abnormal_goto_dest
8935         argument.  Ignore computed_goto_p stmts.  Don't call
8936         make_abnormal_goto_edges.  If a call might need abnormal edges
8937         for non-local gotos, see if it already has an edge to
8938         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
8939         with true argument, don't do anything then, otherwise add
8940         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
8941         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
8942         caller.
8943         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
8944         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
8945         (lower_stmt): Don't set data->calls_builtin_setjmp.
8946         (lower_builtin_setjmp): Adjust comment.
8947         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
8948         * tree-cfg.c (found_computed_goto): Remove.
8949         (factor_computed_gotos): Remove.
8950         (make_goto_expr_edges): Return bool, true for computed gotos.
8951         Don't call make_abnormal_goto_edges.
8952         (build_gimple_cfg): Don't set found_computed_goto, don't call
8953         factor_computed_gotos.
8954         (computed_goto_p): No longer static.
8955         (make_blocks): Don't set found_computed_goto.
8956         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
8957         (make_edges): If make_goto_expr_edges returns true, push bb
8958         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
8959         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
8960         vector.  Record mapping between bbs and OpenMP regions if there
8961         are any, adjust make_gimple_omp_edges caller.  Call
8962         handle_abnormal_edges.
8963         (make_abnormal_goto_edges): Remove.
8964         * tree-cfg.h (make_abnormal_goto_edges): Remove.
8965         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
8966         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
8967         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
8968         * internal-fn.def (ABNORMAL_DISPATCHER): New.
8969         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
8970         filling *region also set *region_idx to (*region)->entry->index.
8972         PR other/58712
8973         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
8974         For REGs set ORIGINAL_REGNO.
8976 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
8978         * doc/md.texi: Mention that a target shouldn't implement
8979         vec_widen_(s|u)mul_even/odd pair if it is less efficient
8980         than hi/lo pair.
8982 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
8984         PR tree-optimization/59594
8985         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
8986         a copy of the datarefs vector rather than the vector itself.
8988 2014-01-28  Jason Merrill  <jason@redhat.com>
8990         PR c++/53756
8991         * dwarf2out.c (auto_die): New static.
8992         (gen_type_die_with_usage): Handle C++1y 'auto'.
8993         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
8994         on definition.
8996 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
8998         PR target/59672
8999         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9000         (SPEC_X32): Likewise.
9001         (SPEC_64): Likewise.
9002         * config/i386/i386.c (ix86_option_override_internal): Turn off
9003         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9004         for TARGET_16BIT.
9005         (x86_file_start): Output .code16gcc for TARGET_16BIT.
9006         * config/i386/i386.h (TARGET_16BIT): New macro.
9007         (TARGET_16BIT_P): Likewise.
9008         * config/i386/i386.opt: Add m16.
9009         * doc/invoke.texi: Document -m16.
9011 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
9013         PR preprocessor/59935
9014         * input.c (location_get_source_line): Bail out on when line number
9015         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9017 2014-01-28  Richard Biener  <rguenther@suse.de>
9019         PR tree-optimization/58742
9020         * tree-ssa-forwprop.c (associate_plusminus): Handle
9021         pointer subtraction of the form (T)(P + A) - (T)P.
9023 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9025         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9026         at const_int_cost.
9028 2014-01-28  Richard Biener  <rguenther@suse.de>
9030         Revert
9031         2014-01-28  Richard Biener  <rguenther@suse.de>
9033         PR rtl-optimization/45364
9034         PR rtl-optimization/59890
9035         * var-tracking.c (local_get_addr_clear_given_value): Handle
9036         already cleared slot.
9037         (val_reset): Handle not allocated local_get_addr_cache.
9038         (vt_find_locations): Use post-order on the inverted CFG.
9040 2014-01-28  Richard Biener  <rguenther@suse.de>
9042         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9044 2014-01-28  Richard Biener  <rguenther@suse.de>
9046         PR rtl-optimization/45364
9047         PR rtl-optimization/59890
9048         * var-tracking.c (local_get_addr_clear_given_value): Handle
9049         already cleared slot.
9050         (val_reset): Handle not allocated local_get_addr_cache.
9051         (vt_find_locations): Use post-order on the inverted CFG.
9053 2014-01-28  Alan Modra  <amodra@gmail.com>
9055         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9056         * configure.ac <recursive call for build != host>: Define
9057         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9058         and LD_FOR_BUILD too.
9059         * configure: Regenerate.
9061 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
9063         * config/i386/i386.c (get_builtin_code_for_version): Separate
9064         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9065         Broadwell from Haswell.
9067 2014-01-27  Steve Ellcey  <sellcey@mips.com>
9069         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9070         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9071         * config/mips/mips.c (mips_option_override): Change setting
9072         of TARGET_DSP.
9073         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9074         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9075         Change from Mask to Var.
9077 2014-01-27  Jeff Law  <law@redhat.com>
9079         * ipa-inline.c (inline_small_functions): Fix typo.
9081 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
9083         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9084         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9085         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9086         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9087         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9088         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9089         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9090         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9091         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9092         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9093         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9094         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9095         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9096         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9097         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9098         (_mm512_storeu_epi64): Ditto.
9099         (_mm512_cmpge_epi32_mask): Ditto.
9100         (_mm512_cmpge_epu32_mask): Ditto.
9101         (_mm512_cmpge_epi64_mask): Ditto.
9102         (_mm512_cmpge_epu64_mask): Ditto.
9103         (_mm512_cmple_epi32_mask): Ditto.
9104         (_mm512_cmple_epu32_mask): Ditto.
9105         (_mm512_cmple_epi64_mask): Ditto.
9106         (_mm512_cmple_epu64_mask): Ditto.
9107         (_mm512_cmplt_epi32_mask): Ditto.
9108         (_mm512_cmplt_epu32_mask): Ditto.
9109         (_mm512_cmplt_epi64_mask): Ditto.
9110         (_mm512_cmplt_epu64_mask): Ditto.
9111         (_mm512_cmpneq_epi32_mask): Ditto.
9112         (_mm512_cmpneq_epu32_mask): Ditto.
9113         (_mm512_cmpneq_epi64_mask): Ditto.
9114         (_mm512_cmpneq_epu64_mask): Ditto.
9115         (_mm512_expand_pd): Ditto.
9116         (_mm512_expand_ps): Ditto.
9117         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9118         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9119         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9120         * config/i386/i386.c (ix86_builtins): Add
9121         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9122         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9123         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9124         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9125         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9126         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9127         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9128         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9129         IX86_BUILTIN_PMOVUSQW512_MEM.
9130         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9131         __builtin_ia32_pmovsqd512mem_mask,
9132         __builtin_ia32_pmovqd512mem_mask,
9133         __builtin_ia32_pmovusqw512mem_mask,
9134         __builtin_ia32_pmovsqw512mem_mask,
9135         __builtin_ia32_pmovqw512mem_mask,
9136         __builtin_ia32_pmovusdw512mem_mask,
9137         __builtin_ia32_pmovsdw512mem_mask,
9138         __builtin_ia32_pmovdw512mem_mask,
9139         __builtin_ia32_pmovqb512mem_mask,
9140         __builtin_ia32_pmovusqb512mem_mask,
9141         __builtin_ia32_pmovsqb512mem_mask,
9142         __builtin_ia32_pmovusdb512mem_mask,
9143         __builtin_ia32_pmovsdb512mem_mask,
9144         __builtin_ia32_pmovdb512mem_mask.
9145         (bdesc_args): Add __builtin_ia32_expanddf512,
9146         __builtin_ia32_expandsf512.
9147         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9148         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9149         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9150         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9151         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9152         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9153         (avx512f_<code>v8div16qi2_mask_store): This.
9154         (avx512f_expand<mode>): New.
9156 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
9158         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9159         New.
9160         (_mm512_mask_prefetch_i64gather_pd): Ditto.
9161         (_mm512_prefetch_i32scatter_pd): Ditto.
9162         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9163         (_mm512_prefetch_i64scatter_pd): Ditto.
9164         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9165         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9166         (_mm512_mask_prefetch_i64gather_ps): Ditto.
9167         (_mm512_prefetch_i32scatter_ps): Ditto.
9168         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9169         (_mm512_prefetch_i64scatter_ps): Ditto.
9170         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9171         * config/i386/i386-builtin-types.def: Define
9172         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9173         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9174         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9175         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9176         IX86_BUILTIN_SCATTERPFQPD.
9177         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9178         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9179         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9180         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9181         __builtin_ia32_scatterpfqps.
9182         (ix86_expand_builtin): Expand new built-ins.
9183         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9184         fix memory access data type.
9185         (*avx512pf_gatherpf<mode>_mask): Ditto.
9186         (*avx512pf_gatherpf<mode>): Ditto.
9187         (avx512pf_scatterpf<mode>): Ditto.
9188         (*avx512pf_scatterpf<mode>_mask): Ditto.
9189         (*avx512pf_scatterpf<mode>): Ditto.
9190         (GATHER_SCATTER_SF_MEM_MODE): New.
9191         (avx512pf_gatherpf<mode>df): Ditto.
9192         (*avx512pf_gatherpf<mode>df_mask): Ditto.
9193         (*avx512pf_scatterpf<mode>df): Ditto.
9195 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
9197         PR bootstrap/59934
9198         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9199         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9200         reached.
9202 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9204         * common/config/arm/arm-common.c
9205         (arm_rewrite_mcpu): Handle multiple names.
9206         * config/arm/arm.h
9207         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9209 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9211         * gimple-builder.h (create_gimple_tmp): Delete.
9213 2014-01-27  Christian Bruel  <christian.bruel@st.com>
9215         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9216         words comparisons.
9218 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
9220         * config/pa/pa.md (call): Generate indirect long calls to non-local
9221         functions when outputing 32-bit code.
9222         (call_value): Likewise except for special call to buggy powf function.
9224         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9225         portable runtime and PIC indirect calls.
9226         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9227         and PIC call sequences.  Use ldo instead of blr to set return register
9228         in PIC call sequence.
9230 2014-01-25  Walter Lee  <walt@tilera.com>
9232         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9233         avoid clobbering a live register.
9235 2014-01-25  Walter Lee  <walt@tilera.com>
9237         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9238         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9239         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9240         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9242 2014-01-25  Walter Lee  <walt@tilera.com>
9244         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9245         arguments on even registers.
9246         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9247         STACK_BOUNDARY.
9248         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9249         (BIGGEST_ALIGNMENT): Ditto.
9250         (BIGGEST_FIELD_ALIGNMENT): Ditto.
9252 2014-01-25  Walter Lee  <walt@tilera.com>
9254         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9255         insns before bundling.
9256         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9258 2014-01-25  Walter Lee  <walt@tilera.com>
9260         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9261         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9262         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9264 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9266         * config/mips/constraints.md (kl): Delete.
9267         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9268         define expands, using...
9269         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9270         instructions for MIPS16.
9271         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9272         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9274 2014-01-25  Walter Lee  <walt@tilera.com>
9276         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9277         (clzdi2): Ditto.
9278         (ffsdi2): Ditto.
9280 2014-01-25  Walter Lee  <walt@tilera.com>
9282         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9283         (TARGET_EXPAND_TO_RTL_HOOK): Define.
9285 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9287         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9288         Handle XOR.
9290 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
9292         * print-rtl.c (in_call_function_usage): New var.
9293         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9294         EXPR_LIST mode as mode and not as reg note name.
9296         PR middle-end/59561
9297         * cfgloopmanip.c (copy_loop_info): If
9298         loop->warned_aggressive_loop_optimizations, make sure
9299         the flag is set in target loop too.
9301 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
9303         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9304         flag_cilkplus.
9305         * builtins.def: Likewise.
9306         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9307         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9308         * ira.c (ira_setup_eliminable_regset): Likewise.
9309         * omp-low.c (gate_expand_omp): Likewise.
9310         (execute_lower_omp): Likewise.
9311         (diagnose_sb_0): Likewise.
9312         (gate_diagnose_omp_blocks): Likewise.
9313         (simd_clone_clauses_extract): Likewise.
9314         (gate): Likewise.
9316 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9318         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
9319         correction for little endian...
9320         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
9321         here.
9323 2014-01-24  Jeff Law  <law@redhat.com>
9325         PR tree-optimization/59919
9326         * tree-vrp.c (find_assert_locations_1): Do not register asserts
9327         for non-returning calls.
9329 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
9331         * common/config/aarch64/aarch64-common.c
9332         (aarch64_rewrite_mcpu): Handle multiple names.
9333         * config/aarch64/aarch64.h
9334         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9336 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
9338         * input.c (add_file_to_cache_tab): Handle the case where fopen
9339         returns NULL.
9341 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
9343         PR target/59929
9344         * config/i386/i386.md (pushsf splitter): Get stack adjustment
9345         from push operand if code of push isn't PRE_DEC.
9347 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9349         PR target/59909
9350         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9351         -mquad-memory-atomic.  Update -mquad-memory documentation to say
9352         it is only used for non-atomic loads/stores.
9354         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
9355         -mquad-memory or -mquad-memory-atomic switches.
9357         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
9358         -mquad-memory-atomic to ISA 2.07 support.
9360         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
9361         to separate support of normal quad word memory operations (ldq, stq)
9362         from the atomic quad word memory operations.
9364         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9365         support to separate non-atomic quad word operations from atomic
9366         quad word operations.  Disable non-atomic quad word operations in
9367         little endian mode so that we don't have to swap words after the
9368         load and before the store.
9369         (quad_load_store_p): Add comment about atomic quad word support.
9370         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
9371         options printed with -mdebug=reg.
9373         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
9374         -mquad-memory-atomic as the test for whether we have quad word
9375         atomic instructions.
9376         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
9377         or -mp8-vector are used, allow byte/half-word atomic operations.
9379         * config/rs6000/sync.md (load_lockedti): Insure that the address
9380         is a proper indexed or indirect address for the lqarx instruction.
9381         On little endian systems, swap the hi/lo registers after the lqarx
9382         instruction.
9383         (load_lockedpti): Use indexed_or_indirect_operand predicate to
9384         insure the address is valid for the lqarx instruction.
9385         (store_conditionalti): Insure that the address is a proper indexed
9386         or indirect address for the stqcrx. instruction.  On little endian
9387         systems, swap the hi/lo registers before doing the stqcrx.
9388         instruction.
9389         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
9390         insure the address is valid for the stqcrx. instruction.
9392         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
9393         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
9394         type of quad memory support is available.
9396 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
9398         PR regression/59915
9399         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
9400         there is a danger of looping.
9402 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
9404         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9405         force flag_ira_loop_pressure if set via command line.
9407 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9409         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
9410         (ashr_simd): New builtin handling DI mode.
9411         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
9412         (aarch64_sshr_simddi): New match pattern.
9413         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
9414         (vshrd_n_s64): Likewise.
9415         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
9417 2014-01-23  Nick Clifton  <nickc@redhat.com>
9419         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
9420         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
9421         favour of mcu specific scripts.
9422         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
9423         430x multilibs.
9425 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
9426             Alex Velenko  <Alex.Velenko@arm.com>
9428         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
9429         (vaddv_s16): Likewise.
9430         (vaddv_s32): Likewise.
9431         (vaddv_u8): Likewise.
9432         (vaddv_u16): Likewise.
9433         (vaddv_u32): Likewise.
9434         (vaddvq_s8): Likewise.
9435         (vaddvq_s16): Likewise.
9436         (vaddvq_s32): Likewise.
9437         (vaddvq_s64): Likewise.
9438         (vaddvq_u8): Likewise.
9439         (vaddvq_u16): Likewise.
9440         (vaddvq_u32): Likewise.
9441         (vaddvq_u64): Likewise.
9442         (vaddv_f32): Likewise.
9443         (vaddvq_f32): Likewise.
9444         (vaddvq_f64): Likewise.
9445         (vmaxv_f32): Likewise.
9446         (vmaxv_s8): Likewise.
9447         (vmaxv_s16): Likewise.
9448         (vmaxv_s32): Likewise.
9449         (vmaxv_u8): Likewise.
9450         (vmaxv_u16): Likewise.
9451         (vmaxv_u32): Likewise.
9452         (vmaxvq_f32): Likewise.
9453         (vmaxvq_f64): Likewise.
9454         (vmaxvq_s8): Likewise.
9455         (vmaxvq_s16): Likewise.
9456         (vmaxvq_s32): Likewise.
9457         (vmaxvq_u8): Likewise.
9458         (vmaxvq_u16): Likewise.
9459         (vmaxvq_u32): Likewise.
9460         (vmaxnmv_f32): Likewise.
9461         (vmaxnmvq_f32): Likewise.
9462         (vmaxnmvq_f64): Likewise.
9463         (vminv_f32): Likewise.
9464         (vminv_s8): Likewise.
9465         (vminv_s16): Likewise.
9466         (vminv_s32): Likewise.
9467         (vminv_u8): Likewise.
9468         (vminv_u16): Likewise.
9469         (vminv_u32): Likewise.
9470         (vminvq_f32): Likewise.
9471         (vminvq_f64): Likewise.
9472         (vminvq_s8): Likewise.
9473         (vminvq_s16): Likewise.
9474         (vminvq_s32): Likewise.
9475         (vminvq_u8): Likewise.
9476         (vminvq_u16): Likewise.
9477         (vminvq_u32): Likewise.
9478         (vminnmv_f32): Likewise.
9479         (vminnmvq_f32): Likewise.
9480         (vminnmvq_f64): Likewise.
9482 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
9484         * config/aarch64/aarch64-simd.md
9485         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
9486         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
9487         (*aarch64_mul3_elt<mode>): Likewise.
9488         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
9489         (*aarch64_mul3_elt_to_64v2df): Likewise.
9490         (*aarch64_mla_elt<mode>): Likewise.
9491         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
9492         (*aarch64_mls_elt<mode>): Likewise.
9493         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
9494         (*aarch64_fma4_elt<mode>): Likewise.
9495         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
9496         (*aarch64_fma4_elt_to_64v2df): Likewise.
9497         (*aarch64_fnma4_elt<mode>): Likewise.
9498         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
9499         (*aarch64_fnma4_elt_to_64v2df): Likewise.
9500         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9501         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
9502         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9503         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9504         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
9505         (aarch64_sqdmull_lane<mode>_internal): Likewise.
9506         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
9508 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9510         * config/aarch64/aarch64-simd.md
9511         (aarch64_be_checked_get_lane<mode>): New define_expand.
9512         * config/aarch64/aarch64-simd-builtins.def
9513         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
9514         New builtin definition.
9515         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
9516         Use new safe be builtin.
9518 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9520         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
9521         New define_insn.
9522         (aarch64_be_st1<mode>): Likewise.
9523         (aarch_ld1<VALL:mode>): Define_expand modified.
9524         (aarch_st1<VALL:mode>): Likewise.
9525         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
9526         (UNSPEC_ST1): Likewise.
9528 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
9530         * config/microblaze/microblaze.md: Add trap insn and attribute
9532 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
9534         PR preprocessor/58580
9535         * input.h (location_get_source_line): Take an additional line_size
9536         parameter.
9537         (void diagnostics_file_cache_fini): Declare new function.
9538         * input.c (struct fcache): New type.
9539         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
9540         New static constants.
9541         (diagnostic_file_cache_init, total_lines_num)
9542         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
9543         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
9544         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
9545         (get_next_line, read_next_line, goto_next_line, read_line_num):
9546         New static function definitions.
9547         (diagnostic_file_cache_fini): New function.
9548         (location_get_source_line): Take an additional output line_len
9549         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
9550         read_line_num.
9551         * diagnostic.c (diagnostic_finish): Call
9552         diagnostic_file_cache_fini.
9553         (adjust_line): Take an additional input parameter for the length
9554         of the line, rather than calculating it with strlen.
9555         (diagnostic_show_locus): Adjust the use of
9556         location_get_source_line and adjust_line with respect to their new
9557         signature.  While displaying a line now, do not stop at the first
9558         null byte.  Rather, display the zero byte as a space and keep
9559         going until we reach the size of the line.
9560         * Makefile.in: Add vec.o to OBJS-libcommon
9562 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
9563             Ilya Tocar  <ilya.tocar@intel.com>
9565         * config/i386/avx512fintrin.h (_mm512_kmov): New.
9566         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
9567         (__builtin_ia32_kmov16): Ditto.
9568         * config/i386/i386.md (UNSPEC_KMOV): New.
9569         (kmovw): Ditto.
9571 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
9573         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
9574         (_mm512_storeu_si512): Ditto.
9576 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
9578         PR target/52125
9579         * rtl.h (get_referenced_operands): Declare.
9580         * recog.c (get_referenced_operands): New function.
9581         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
9582         operands have been referenced when recording LO_SUM references.
9584 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
9586         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
9588 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
9590         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
9591         Enable for generic and recent AMD targets.
9593 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
9595         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
9596         ARG_SIZE note when adjustment was eliminated.
9598 2014-01-22  Jeff Law  <law@redhat.com>
9600         PR tree-optimization/59597
9601         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
9602         in file.  Accept new argument REGISTERING and use it to modify
9603         dump output appropriately.
9604         (register_jump_thread): Corresponding changes.
9605         (mark_threaded_blocks): Reinstate code to cancel unprofitable
9606         thread paths involving joiner blocks.  Add code to dump cancelled
9607         jump threading paths.
9609 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
9611         PR rtl-optimization/59477
9612         * lra-constraints.c (inherit_in_ebb): Process call for living hard
9613         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
9615 2014-01-22  Tom Tromey  <tromey@redhat.com>
9617         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
9618         PARAMS.
9619         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
9621 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9623         PR rtl-optimization/59896
9624         * lra-constraints.c (process_alt_operands): Check unused note for
9625         matched operands of insn with no output reloads.
9627 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
9629         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
9630         (mips_move_from_gpr_cost): Likewise.
9632 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9634         PR rtl-optimization/59858
9635         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
9636         ira_class_hard_regs_num.
9637         (process_alt_operands): Increase reject for dying matched operand.
9639 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
9641         PR target/59003
9642         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9643         smaller than size, perform several stores or loads and stores
9644         at dst + count - size to store or copy all of size bytes, rather
9645         than just last modesize bytes.
9647 2014-01-20  DJ Delorie  <dj@redhat.com>
9649         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9650         that CLOBBERs are REGs before propogating their values.
9652 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
9654         PR middle-end/59789
9655         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9656         (cgraph_inline_failed_type): New function.
9657         * cgraph.h (DEFCIFCODE): Add type.
9658         (cgraph_inline_failed_type_t): New enum.
9659         (cgraph_inline_failed_type): New prototype.
9660         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9661         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9662         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9663         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9664         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9665         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9666         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9667         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9668         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9669         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9670         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9671         OPTIMIZATION_MISMATCH.
9672         * tree-inline.c (expand_call_inline): Emit errors during
9673         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9675 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9677         PR target/59685
9678         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9679         mode attribute in insn output.
9681 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
9683         * output.h (output_constant): Delete.
9684         * varasm.c (output_constant): Make private.
9686 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
9688         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9690 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9692         PR middle-end/59860
9693         * tree.h (fold_builtin_strcat): New prototype.
9694         * builtins.c (fold_builtin_strcat): No longer static.  Add len
9695         argument, if non-NULL, don't call c_strlen.  Optimize
9696         directly into __builtin_memcpy instead of __builtin_strcpy.
9697         (fold_builtin_2): Adjust fold_builtin_strcat caller.
9698         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9700 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9702         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9703         for SImode_address_operand operands, having only a REG argument.
9705 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9707         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9708         loader name using mbig-endian.
9709         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9711 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9713         * doc/invoke.texi (-march): Clarify documentation for AArch64.
9714         (-mtune): Likewise.
9715         (-mcpu): Likewise.
9717 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
9719         * config/aarch64/aarch64-protos.h
9720         (aarch64_cannot_change_mode_class_ptr): Declare.
9721         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9722         aarch64_cannot_change_mode_class_ptr): New.
9723         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9724         backend hook aarch64_cannot_change_mode_class.
9726 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9728         * common/config/aarch64/aarch64-common.c
9729         (aarch64_handle_option): Don't handle any option order logic here.
9730         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9731         selected_cpu, warn on architecture version mismatch.
9732         (aarch64_override_options): Fix parsing order for option strings.
9734 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9735             Iain Sandoe  <iain@codesourcery.com>
9737         PR bootstrap/59496
9738         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9739         warning.  Amend comment to reflect current functionality.
9741 2014-01-20  Richard Biener  <rguenther@suse.de>
9743         PR middle-end/59860
9744         * builtins.c (fold_builtin_strcat): Remove case better handled
9745         by tree-ssa-strlen.c.
9747 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
9749         * config/aarch64/aarch64.opt
9750         (mcpu, march, mtune): Make case-insensitive.
9752 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9754         PR target/59880
9755         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9756         if operands[1] is a REG or ZERO_EXTEND of a REG.
9758 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
9760         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9762 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
9764         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9765         long non-pic millicode calls.
9767 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9769         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9771 2014-01-19  Kito Cheng  <kito@0xlab.org>
9773         * builtins.c (expand_movstr): Check movstr expand done or fail.
9775 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9776             H.J. Lu  <hongjiu.lu@intel.com>
9778         PR target/59379
9779         * config/i386/i386.md (*lea<mode>): Zero-extend return register
9780         to DImode for zero-extended addresses.
9782 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
9784         PR rtl-optimization/57763
9785         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9786         on the new indirect jump_insn and increment LABEL_NUSES (label).
9788 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9790         PR bootstrap/59580
9791         PR bootstrap/59583
9792         * config.gcc (x86_archs): New variable.
9793         (x86_64_archs): Likewise.
9794         (x86_cpus): Likewise.
9795         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9796         --with-arch/--with-cpu= options.
9797         Support --with-arch=/--with-cpu={nehalem,westmere,
9798         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9800 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9802         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9803         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
9805 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9807         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9809 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
9811         PR target/58944
9812         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9813         clear cpp_get_options (parse_in)->warn_unused_macros for
9814         ix86_target_macros_internal with cpp_define.
9816 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
9818         * jump.c (delete_related_insns): Keep (use (insn))s.
9819         * reorg.c (redundant_insn): Check for barriers too.
9821 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9823         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9825 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
9827         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9828         call to $$dyncall when TARGET_LONG_CALLS is true.
9830 2014-01-17  Jeff Law  <law@redhat.com>
9832         * ree.c (combine_set_extension): Temporarily disable test for
9833         changing number of hard registers.
9835 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
9837         PR middle-end/58125
9838         * ipa-inline-analysis.c (inline_free_summary):
9839         Do not free summary of aliases.
9841 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
9843         PR middle-end/59706
9844         * gimplify.c (gimplify_expr): Use create_tmp_var
9845         instead of create_tmp_var_raw.  If cond doesn't have
9846         integral type, don't add the IFN_ANNOTATE builtin at all.
9848 2014-01-17  Martin Jambor  <mjambor@suse.cz>
9850         PR ipa/59736
9851         * ipa-cp.c (prev_edge_clone): New variable.
9852         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9853         Also resize prev_edge_clone vector.
9854         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9855         (ipcp_edge_removal_hook): New function.
9856         (ipcp_driver): Register ipcp_edge_removal_hook.
9858 2014-01-17  Andrew Pinski  <apinski@cavium.com>
9859             Steve Ellcey  <sellcey@mips.com>
9861         PR target/59462
9862         * config/mips/mips.c (mips_print_operand): Check operand mode instead
9863         of operator mode.
9865 2014-01-17  Jeff Law  <law@redhat.com>
9867         PR middle-end/57904
9868         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9869         so that pass_ccp runs first.
9871 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9873         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9874         (ix86_adjust_cost): Use !TARGET_XXX.
9875         (do_reorder_for_imul): Likewise.
9876         (swap_top_of_ready_list): Likewise.
9877         (ix86_sched_reorder): Likewise.
9879 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9881         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9882         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
9883         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
9884         (intel_memset): New.  Duplicate slm_memset.
9885         (intel_cost): New.  Duplicate slm_cost.
9886         (m_INTEL): New macro.
9887         (processor_target_table): Add "intel".
9888         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9889         with PROCESSOR_INTEL for "intel".
9890         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
9891         PROCESSOR_SILVERMONT.
9892         (ix86_issue_rate): Likewise.
9893         (ix86_adjust_cost): Likewise.
9894         (ia32_multipass_dfa_lookahead): Likewise.
9895         (swap_top_of_ready_list): Likewise.
9896         (ix86_sched_reorder): Likewise.
9897         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9898         instead of TARGET_OPT_AGU.
9899         * config/i386/i386.h (TARGET_INTEL): New.
9900         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9901         (processor_type): Add PROCESSOR_INTEL.
9902         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9903         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9905 2014-01-17  Marek Polacek  <polacek@redhat.com>
9907         PR c/58346
9908         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9909         size is zero.
9911 2014-01-17  Richard Biener  <rguenther@suse.de>
9913         PR tree-optimization/46590
9914         * opts.c (default_options_table): Add entries for
9915         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
9916         all enabled at -O1 but not for -Og.
9917         * common.opt (fbranch-count-reg): Remove Init(1).
9918         (fmove-loop-invariants): Likewise.
9919         (ftree-pta): Likewise.
9921 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
9923         * config/i386/i386.c (ix86_data_alignment): For compatibility with
9924         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
9925         decls to at least the GCC 4.8 used alignments.
9927         PR fortran/59440
9928         * tree-nested.c (convert_nonlocal_reference_stmt,
9929         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
9930         of GIMPLE_BIND stmts, adjust associated decls.
9932 2014-01-17  Richard Biener  <rguenther@suse.de>
9934         PR tree-optimization/46590
9935         * vec.h (vec<>::bseach): New member function implementing
9936         binary search according to C89 bsearch.
9937         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
9938         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
9939         bitmap pointer again.  Make accesses_in_loop a flat array.
9940         (mem_ref_obstack): New global.
9941         (outermost_indep_loop): Adjust for mem_ref->stored changes.
9942         (mark_ref_stored): Likewise.
9943         (ref_indep_loop_p_2): Likewise.
9944         (set_ref_stored_in_loop): New helper function.
9945         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
9946         (memref_free): Adjust.
9947         (record_mem_ref_loc): Simplify.
9948         (gather_mem_refs_stmt): Adjust.
9949         (sort_locs_in_loop_postorder_cmp): New function.
9950         (analyze_memory_references): Sort accesses_in_loop after
9951         loop postorder number.
9952         (find_ref_loc_in_loop_cmp): New function.
9953         (for_all_locs_in_loop): Find relevant cluster of locs in
9954         accesses_in_loop and iterate without recursion.
9955         (execute_sm): Avoid uninit warning.
9956         (struct ref_always_accessed): Simplify.
9957         (ref_always_accessed::operator ()): Likewise.
9958         (ref_always_accessed_p): Likewise.
9959         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
9960         loop postorder numbers here.
9961         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
9962         numbers.
9964 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
9966         PR c++/57945
9967         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
9968         on decls for which assemble_alias has been called.
9970 2014-01-17  Nick Clifton  <nickc@redhat.com>
9972         * config/msp430/msp430.opt: (mcpu): New option.
9973         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
9974         (msp430_option_override): Parse target_cpu.  If the MCU name
9975         matches a generic string, clear target_mcu.
9976         (msp430_attr): Allow numeric interrupt values up to 63.
9977         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
9978         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
9979         option.
9980         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
9981         Add mcpu matches.
9982         * config/msp430/msp430.md (popm): Use %J rather than %I.
9983         (addsi3): Use msp430_nonimmediate_operand for operand 2.
9984         (addhi_cy_i): Use immediate_operand for operand 2.
9985         * doc/invoke.texi: Document -mcpu option.
9987 2014-01-17  Richard Biener  <rguenther@suse.de>
9989         PR rtl-optimization/38518
9990         * df.h (df_analyze_loop): Declare.
9991         * df-core.c: Include cfgloop.h.
9992         (df_analyze_1): Split out main part of df_analyze.
9993         (df_analyze): Adjust.
9994         (loop_inverted_post_order_compute): New function.
9995         (loop_post_order_compute): Likewise.
9996         (df_analyze_loop): New function avoiding whole-function
9997         postorder computes.
9998         * loop-invariant.c (find_defs): Use df_analyze_loop.
9999         (find_invariants): Adjust.
10000         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10002 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10004         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10005         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10007 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
10009         * ipa-ref.c (ipa_remove_stmt_references): Fix references
10010         traversal when removing references.
10012 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
10014         PR ipa/59775
10015         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10017 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
10019         PR middle-end/56791
10020         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10021         pushing a reload for an autoinc when we had previously reloaded an
10022         inner part of the address.
10024 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
10026         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10027         field.
10028         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10029         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10030         when not giving up or versioning for alias only because of
10031         loop->safelen.
10032         (vect_analyze_data_ref_dependences): Set to true.
10033         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10034         is a GIMPLE_PHI.
10035         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10036         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10037         to the condition.
10039         PR middle-end/58344
10040         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10042         PR target/59839
10043         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10044         operand 0 predicate for gathers, use a new pseudo as subtarget.
10046 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10048         PR middle-end/59609
10049         * lra-constraints.c (process_alt_operands): Add printing debug info.
10050         Check absence of input/output reloads for matched operands too.
10052 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10054         PR rtl-optimization/59835
10055         * ira.c (ira_init_register_move_cost): Increase cost for
10056         impossible modes.
10058 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
10060         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10062 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
10064         PR target/59780
10065         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10066         non-register objects.  Use gen_(high/low)part more consistently.
10067         Fix assertions.
10069 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
10071         PR target/59844
10072         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10073         endian support, remove tests for WORDS_BIG_ENDIAN.
10074         (p8_mfvsrd_3_<mode>): Likewise.
10075         (reload_gpr_from_vsx<mode>): Likewise.
10076         (reload_gpr_from_vsxsf): Likewise.
10077         (p8_mfvsrd_4_disf): Likewise.
10079 2014-01-16  Richard Biener  <rguenther@suse.de>
10081         PR rtl-optimization/46590
10082         * lcm.c (compute_antinout_edge): Use postorder iteration.
10083         (compute_laterin): Use inverted postorder iteration.
10085 2014-01-16  Nick Clifton  <nickc@redhat.com>
10087         PR middle-end/28865
10088         * varasm.c (output_constant): Return the number of bytes actually
10089         emitted.
10090         (output_constructor_array_range): Update the field size with the
10091         number of bytes emitted by output_constant.
10092         (output_constructor_regular_field): Likewise.  Also do not
10093         complain if the total number of bytes emitted is now greater
10094         than the expected fieldpos.
10095         * output.h (output_constant): Update prototype and descriptive comment.
10097 2014-01-16  Marek Polacek  <polacek@redhat.com>
10099         PR middle-end/59827
10100         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10101         it is error_mark_node.
10103 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
10105         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10106         VALID_AVX256_REG_OR_OI_MODE.
10108 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
10110         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10111         current procedure should be profiled.
10113 2014-01-15  Andrew Pinski  <apinski@cavium.com>
10115         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10116         of moving from/to the STACK_REG register class.
10118 2014-01-15  Richard Henderson  <rth@redhat.com>
10120         PR debug/54694
10121         * reginfo.c (global_regs_decl): Globalize.
10122         * rtl.h (global_regs_decl): Declare.
10123         * ira.c (do_reload): Diagnose frame_pointer_needed and it
10124         reserved via global_regs.
10126 2014-01-15  Teresa Johnson  <tejohnson@google.com>
10128         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10130 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
10132         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10133         and vmulosh rather than call gen_vec_widen_smult_*.
10134         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10135         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10136         (vec_widen_smult_even_v16qi): Likewise.
10137         (vec_widen_umult_even_v8hi): Likewise.
10138         (vec_widen_smult_even_v8hi): Likewise.
10139         (vec_widen_umult_odd_v16qi): Likewise.
10140         (vec_widen_smult_odd_v16qi): Likewise.
10141         (vec_widen_umult_odd_v8hi): Likewise.
10142         (vec_widen_smult_odd_v8hi): Likewise.
10143         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10144         vmuloub rather than call gen_vec_widen_umult_*.
10145         (vec_widen_umult_lo_v16qi): Likewise.
10146         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10147         vmulosb rather than call gen_vec_widen_smult_*.
10148         (vec_widen_smult_lo_v16qi): Likewise.
10149         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10150         rather than call gen_vec_widen_umult_*.
10151         (vec_widen_umult_lo_v8hi): Likewise.
10152         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10153         rather than call gen_vec_widen_smult_*.
10154         (vec_widen_smult_lo_v8hi): Likewise.
10156 2014-01-15  Jeff Law  <law@redhat.com>
10158         PR tree-optimization/59747
10159         * ree.c (find_and_remove_re): Properly handle case where a second
10160         eliminated extension requires widening a copy created for elimination
10161         of a prior extension.
10162         (combine_set_extension): Ensure that the number of hard regs needed
10163         for a destination register does not change when we widen it.
10165 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10167         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10168         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10169         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10170         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10171         (avr-*-rtems*): Likewise.
10172         (bfin*-rtems*): Likewise.
10173         (moxie-*-rtems*): Likewise.
10174         (h8300-*-rtems*): Likewise.
10175         (i[34567]86-*-rtems*): Likewise.
10176         (lm32-*-rtems*): Likewise.
10177         (m32r-*-rtems*): Likewise.
10178         (m68k-*-rtems*): Likewise.
10179         (microblaze*-*-rtems*): Likewise.
10180         (mips*-*-rtems*): Likewise.
10181         (powerpc-*-rtems*): Likewise.
10182         (sh-*-rtems*): Likewise.
10183         (sparc-*-rtems*): Likewise.
10184         (sparc64-*-rtems*): Likewise.
10185         (v850-*-rtems*): Likewise.
10186         (m32c-*-rtems*): Likewise.
10188 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10190         PR rtl-optimization/59511
10191         * ira.c (ira_init_register_move_cost): Use memory costs for some
10192         cases of register move cost calculations.
10193         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10194         instead of BB frequency.
10195         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10196         * lra-assigns.c (find_hard_regno_for): Ditto.
10198 2014-01-15  Richard Biener  <rguenther@suse.de>
10200         PR tree-optimization/59822
10201         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10202         (vectorizable_load): Use it to hoist defs of uses of invariant
10203         loads out of the loop.
10205 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
10206             Kugan Vivekanandarajah  <kuganv@linaro.org>
10208         PR target/59695
10209         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10210         truncation.
10212 2014-01-15  Richard Biener  <rguenther@suse.de>
10214         PR rtl-optimization/59802
10215         * lcm.c (compute_available): Use inverted postorder to seed
10216         the initial worklist.
10218 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10220         PR target/59803
10221         * config/s390/s390.c (s390_preferred_reload_class): Don't return
10222         ADDR_REGS for invalid symrefs in non-PIC code.
10224 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
10226         PR other/58712
10227         * builtins.c (determine_block_size): Initialize *probable_max_size
10228         even if len_rtx is CONST_INT.
10230 2014-01-14  Andrew Pinski  <apinski@cavium.com>
10232         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10233         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10234         (cortexa53_tunings): Likewise.
10235         (aarch64_sched_issue_rate): New function.
10236         (TARGET_SCHED_ISSUE_RATE): Define.
10238 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10240         * ira-costs.c (find_costs_and_classes): Add missed
10241         ira_init_register_move_cost_if_necessary.
10243 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10245         PR target/59787
10246         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10248 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
10250         PR target/59794
10251         * config/i386/i386.c (type_natural_mode): Add a bool parameter
10252         to indicate if type is used for function return value.  Warn ABI
10253         change if the vector mode isn't available for function return value.
10254         (ix86_function_arg_advance): Pass false to type_natural_mode.
10255         (ix86_function_arg): Likewise.
10256         (ix86_gimplify_va_arg): Likewise.
10257         (function_arg_32): Don't warn ABI change.
10258         (ix86_function_value): Pass true to type_natural_mode.
10259         (ix86_return_in_memory): Likewise.
10260         (ix86_struct_value_rtx): Removed.
10261         (TARGET_STRUCT_VALUE_RTX): Likewise.
10263 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10265         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10266         converting a conditional jump into a conditional return.
10268 2014-01-14  Richard Biener  <rguenther@suse.de>
10270         PR tree-optimization/58921
10271         PR tree-optimization/59006
10272         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10273         hoisting invariant stmts.
10274         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10275         invariant loads on the preheader edge if possible.
10277 2014-01-14  Joey Ye  <joey.ye@arm.com>
10279         * doc/plugin.texi (Building GCC plugins): Update to C++.
10281 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
10283         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10284         (_mm_rcp28_round_ss): Ditto.
10285         (_mm_rsqrt28_round_sd): Ditto.
10286         (_mm_rsqrt28_round_ss): Ditto.
10287         (_mm_rcp28_sd): Ditto.
10288         (_mm_rcp28_ss): Ditto.
10289         (_mm_rsqrt28_sd): Ditto.
10290         (_mm_rsqrt28_ss): Ditto.
10291         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10292         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10293         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10294         (IX86_BUILTIN_RCP28SD): Ditto.
10295         (IX86_BUILTIN_RCP28SS): Ditto.
10296         (IX86_BUILTIN_RSQRT28SD): Ditto.
10297         (IX86_BUILTIN_RSQRT28SS): Ditto.
10298         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10299         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10300         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10301         (ix86_expand_special_args_builtin): Expand new FTYPE.
10302         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10303         (srcp14<mode>): Make insn unary.
10304         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10305         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10306         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10307         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10308         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
10309         Fix rounding: make it SAE only.
10310         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
10311         Ditto.
10312         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
10313         Ditto.
10314         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
10315         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
10316         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
10317         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
10318         (round_saeonly_mask_scalar_operand4): Ditto.
10319         (round_saeonly_mask_scalar_op3): Ditto.
10320         (round_saeonly_mask_scalar_op4): Ditto.
10322 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10324         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10325         Implement -maltivec=be for vec_insert and vec_extract.
10327 2014-01-10  DJ Delorie  <dj@redhat.com>
10329         * config/msp430/msp430.md (call_internal): Don't allow memory
10330         references with SP as the base register.
10331         (call_value_internal): Likewise.
10332         * config/msp430/constraints.md (Yc): New.  For memory references
10333         that don't use SP as a base register.
10335         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
10336         "an integer without a # prefix"
10337         * config/msp430/msp430.md (epilogue_helper): Use it.
10339 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
10341         PR target/59617
10342         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
10343         AVX512F gather builtins.
10344         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
10345         on gather decls with INTEGER_TYPE masktype.
10346         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
10347         directly into the builtin rather than hoisting it before loop.
10349         PR tree-optimization/59387
10350         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
10351         (scev_const_prop): If folded_casts and type has undefined overflow,
10352         use force_gimple_operand instead of force_gimple_operand_gsi and
10353         for each added stmt if it is assign with
10354         arith_code_with_undefined_signed_overflow, call
10355         rewrite_to_defined_overflow.
10356         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
10357         gimple-fold.h instead.
10358         (arith_code_with_undefined_signed_overflow,
10359         rewrite_to_defined_overflow): Moved to ...
10360         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
10361         rewrite_to_defined_overflow): ... here.  No longer static.
10362         Include gimplify-me.h.
10363         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
10364         rewrite_to_defined_overflow): New prototypes.
10366 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10368         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
10370 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
10372         * builtins.c (get_object_alignment_2): Minor tweak.
10373         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
10375 2014-01-13  Christian Bruel  <christian.bruel@st.com>
10377         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
10378         optimized non constant lengths.
10380 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
10382         PR libgomp/59194
10383         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
10384         load as __atomic_load_N if possible.
10386 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
10388         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
10389         target parameter.
10390         (rs6000_expand_builtin): Adjust call.
10392 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
10394         PR target/58115
10395         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
10396         * config/rs6000/rs6000.c: Include target-globals.h.
10397         (rs6000_set_current_function): Instead of doing target_reinit
10398         unconditionally, use save_target_globals_default_opts and
10399         restore_target_globals.
10401         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
10402         FPSCR.
10403         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
10404         (rs6000_expand_builtin): Handle mffs and mtfsf.
10405         (rs6000_init_builtins): Define mffs and mtfsf.
10406         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
10407         (rs6000_mffs): New pattern.
10408         (rs6000_mtfsf): New pattern.
10410 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
10412         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
10413         Start narrowing with START.  Apply candidate-use pair
10414         and check overall cost in narrowing.
10415         (iv_ca_prune): Pass new argument.
10417 2014-01-10  Jeff Law  <law@redhat.com>
10419         PR middle-end/59743
10420         * ree.c (combine_reaching_defs): Ensure the defining statement
10421         occurs before the extension when optimizing extensions with
10422         different source and destination hard registers.
10424 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
10426         PR ipa/58585
10427         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
10428         vtables into the type inheritance graph.
10430 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10432         PR rtl-optimization/59754
10433         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
10434         modes in the REGNO != REGNO case.
10436 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10438         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
10440 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10442         PR tree-optimization/59745
10443         * tree-predcom.c (tree_predictive_commoning_loop): Call
10444         free_affine_expand_cache if giving up because components is NULL.
10446         * target-globals.c (save_target_globals): Allocate < 4KB structs using
10447         GC in payload of target_globals struct instead of allocating them on
10448         the heap and the larger structs separately using GC.
10449         * target-globals.h (struct target_globals): Make regs, hard_regs,
10450         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
10451         of GTY((skip)) and change type to void *.
10452         (reset_target_globals): Cast loads from those fields to corresponding
10453         types.
10455 2014-01-10  Steve Ellcey  <sellcey@mips.com>
10457         PR plugins/59335
10458         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
10459         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
10460         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
10462 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
10464         PR target/59744
10465         * aarch64-modes.def (CC_Zmode): New flags mode.
10466         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
10467         represents an equality.
10468         (aarch64_get_condition_code): Handle CC_Zmode.
10469         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
10471 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10473         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
10474         extraction in good case.
10476 2014-01-10  Richard Biener  <rguenther@suse.de>
10478         PR tree-optimization/59374
10479         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
10480         checking after SLP discovery.  Mark stmts not participating
10481         in any SLP instance properly.
10483 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10485         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
10486         when handling a SET rtx.
10488 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10490         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
10491         (cortex-a57): Likewise.
10492         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
10494 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10496         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
10497         non-iwmmxt builtins.
10499 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
10501         PR ipa/58252
10502         PR ipa/59226
10503         * ipa-devirt.c record_target_from_binfo): Take as argument
10504         stack of binfos and lookup matching one for virtual inheritance.
10505         (possible_polymorphic_call_targets_1): Update.
10507 2014-01-10  Huacai Chen  <chenhc@lemote.com>
10509         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
10510         kernel strings for Loongson-2E/2F/3A.
10512 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10514         PR middle-end/59670
10515         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
10516         is_gimple_call before calling gimple_call_internal_p.
10518 2014-01-09  Steve Ellcey  <sellcey@mips.com>
10520         * Makefile.in (TREE_FLOW_H): Remove.
10521         (TREE_SSA_H): Add file names from tree-flow.h.
10522         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
10523         * tree.h: Remove tree-flow.h reference.
10524         * hash-table.h: Remove tree-flow.h reference.
10525         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
10526         reference with tree-ssa-loop.h.
10528 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10530         * doc/invoke.texi: Add -maltivec={be,le} options, and document
10531         default element-order behavior for -maltivec.
10532         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
10533         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
10534         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
10535         when targeting big endian, at least for now.
10536         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
10538 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10540         PR middle-end/47735
10541         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
10542         var satisfies use_register_for_decl, just take into account type
10543         alignment, rather than decl alignment.
10545         PR tree-optimization/59622
10546         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
10547         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
10548         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
10549         Don't devirtualize for inplace at all.  For targets.length () == 1,
10550         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
10552 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
10554         * config/i386/i386.md (cpu): Remove the unused btver1.
10556 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
10558         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
10560 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10562         PR target/58115
10563         * tree-core.h (struct target_globals): New forward declaration.
10564         (struct tree_target_option): Add globals field.
10565         * tree.h (TREE_TARGET_GLOBALS): Define.
10566         (prepare_target_option_nodes_for_pch): New prototype.
10567         * target-globals.h (struct target_globals): Define even if
10568         !SWITCHABLE_TARGET.
10569         * tree.c (prepare_target_option_node_for_pch,
10570         prepare_target_option_nodes_for_pch): New functions.
10571         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
10572         * config/i386/i386.c: Include target-globals.h.
10573         (ix86_set_current_function): Instead of doing target_reinit
10574         unconditionally, use save_target_globals_default_opts and
10575         restore_target_globals.
10577 2014-01-09  Richard Biener  <rguenther@suse.de>
10579         PR tree-optimization/59715
10580         * tree-cfg.h (split_critical_edges): Declare.
10581         * tree-cfg.c (split_critical_edges): Export.
10582         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
10584 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10586         * cfgexpand.c (expand_stack_vars): Optionally disable
10587         asan stack protection.
10588         (expand_used_vars): Likewise.
10589         (partition_stack_vars): Likewise.
10590         * asan.c (asan_emit_stack_protection): Optionally disable
10591         after return stack usage.
10592         (instrument_derefs): Optionally disable memory access instrumentation.
10593         (instrument_builtin_call): Likewise.
10594         (instrument_strlen_call): Likewise.
10595         (asan_protect_global): Optionally disable global variables protection.
10596         * doc/invoke.texi: Added doc for new options.
10597         * params.def: Added new options.
10598         * params.h: Likewise.
10600 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10602         PR rtl-optimization/59724
10603         * ifcvt.c (cond_exec_process_if_block): Don't call
10604         flow_find_head_matching_sequence with 0 longest_match.
10605         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
10606         non-active insns if !stop_after.
10607         (try_head_merge_bb): Revert 2014-01-07 changes.
10609 2014-01-08  Jeff Law  <law@redhat.com>
10611         * ree.c (get_sub_rtx): New function, extracted from...
10612         (merge_def_and_ext): Here.
10613         (combine_reaching_defs): Use get_sub_rtx.
10615 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
10617         * cgraph.h (varpool_variable_node): Do not choke on null node.
10619 2014-01-08  Catherine Moore  <clm@codesourcery.com>
10621         * config/mips/mips.md (simple_return): Attempt to use JRC
10622         for microMIPS.
10623         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
10625 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10627         PR rtl-optimization/59137
10628         * reorg.c (steal_delay_list_from_target): Call update_block for
10629         elided insns.
10630         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
10632 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10634         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10635         two duplicate entries.
10637 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10639         Revert:
10640         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
10642         * config/mips/mips.c (mips_truncated_op_cost): New function.
10643         (mips_rtx_costs): Adjust test for BADDU.
10644         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10646         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
10648         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10649         (*baddu_si): ...this new pattern.
10651 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10653         PR ipa/59722
10654         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10656 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10658         PR middle-end/57748
10659         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10660         inner_reference_p.
10661         (expand_expr, expand_normal): Adjust.
10662         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10663         inner_reference_p. Use inner_reference_p to expand inner references.
10664         (store_expr): Adjust.
10665         * cfgexpand.c (expand_call_stmt): Adjust.
10667 2014-01-08  Rong Xu  <xur@google.com>
10669         * gcov-io.c (gcov_var): Move from gcov-io.h.
10670         (gcov_position): Ditto.
10671         (gcov_is_error): Ditto.
10672         (gcov_rewrite): Ditto.
10673         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10674         only part to libgcc/libgcov.h.
10676 2014-01-08  Marek Polacek  <polacek@redhat.com>
10678         PR middle-end/59669
10679         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10681 2014-01-08  Marek Polacek  <polacek@redhat.com>
10683         PR sanitizer/59667
10684         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10686 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10688         PR rtl-optimization/59649
10689         * stor-layout.c (get_mode_bounds): For BImode return
10690         0 and STORE_FLAG_VALUE.
10692 2014-01-08  Richard Biener  <rguenther@suse.de>
10694         PR middle-end/59630
10695         * gimple.h (is_gimple_builtin_call): Remove.
10696         (gimple_builtin_call_types_compatible_p): New.
10697         (gimple_call_builtin_p): New overload.
10698         * gimple.c (is_gimple_builtin_call): Remove.
10699         (validate_call): Rename to ...
10700         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
10701         check return types.
10702         (validate_type): New static function.
10703         (gimple_call_builtin_p): New overload and adjust.
10704         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10705         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
10706         (gimple_fold_stmt_to_constant_1): Likewise.
10707         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10709 2014-01-08  Richard Biener  <rguenther@suse.de>
10711         PR middle-end/59471
10712         * gimplify.c (gimplify_expr): Gimplify register-register type
10713         VIEW_CONVERT_EXPRs to separate stmts.
10715 2014-01-07  Jeff Law  <law@redhat.com>
10717         PR middle-end/53623
10718         * ree.c (combine_set_extension): Handle case where source
10719         and destination registers in an extension insn are different.
10720         (combine_reaching_defs): Allow source and destination registers
10721         in extension to be different under limited circumstances.
10722         (add_removable_extension): Remove restriction that the
10723         source and destination registers in the extension are the same.
10724         (find_and_remove_re): Emit a copy from the extension's
10725         destination to its source after the defining insn if
10726         the source and destination registers are different.
10728         PR middle-end/59285
10729         * ifcvt.c (merge_if_block): If we are merging a block with more than
10730         one successor with a block with no successors, remove any BARRIER
10731         after the second block.
10733 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
10735         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10737 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
10739         PR target/59652
10740         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10741         for 14-bit register offsets when INT14_OK_STRICT is false.
10743 2014-01-07  Roland Stigge  <stigge@antcom.de>
10744             Michael Meissner  <meissner@linux.vnet.ibm.com>
10746         PR 57386/target
10747         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10748         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
10750 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
10752         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10753         -mcpu.
10755 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
10757         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10758         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10759         rtx is const0_rtx or not.
10761 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
10763         PR target/58115
10764         * target-globals.c (save_target_globals): Remove this_fn_optab
10765         handling.
10766         * toplev.c: Include optabs.h.
10767         (target_reinit): Temporarily restore the global options if another
10768         set of options are in force.
10770 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
10772         PR rtl-optimization/58668
10773         * cfgcleanup.c (flow_find_cross_jump): Don't count
10774         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
10775         to determine what is counted.
10776         (flow_find_head_matching_sequence): Use active_insn_p to determine
10777         what is counted.
10778         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10779         counting change.
10780         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10781         determine what is counted.
10783         PR tree-optimization/59643
10784         * tree-predcom.c (split_data_refs_to_components): If one dr is
10785         read and one write, determine_offset fails and the write isn't
10786         in the bad component, just put the read into the bad component.
10788 2014-01-07  Mike Stump  <mikestump@comcast.net>
10789             Jakub Jelinek  <jakub@redhat.com>
10791         PR pch/59436
10792         * tree-core.h (struct tree_optimization_option): Change optabs
10793         type from unsigned char * to void *.
10794         * optabs.c (init_tree_optimization_optabs): Adjust
10795         TREE_OPTIMIZATION_OPTABS initialization.
10797 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
10799         PR target/59644
10800         * config/i386/i386.h (struct machine_function): Add
10801         no_drap_save_restore field.
10802         * config/i386/i386.c (ix86_save_reg): Use
10803         !cfun->machine->no_drap_save_restore instead of
10804         crtl->stack_realign_needed.
10805         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10806         this function clears frame_pointer_needed.  Set
10807         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10808         and DRAP reg is needed.
10810 2014-01-06  Marek Polacek  <polacek@redhat.com>
10812         PR c/57773
10813         * doc/implement-c.texi: Mention that other integer types are
10814         permitted as bit-field types in strictly conforming mode.
10816 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
10818         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10819         is newly allocated.
10821 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
10823         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10825 2014-01-06  Martin Jambor  <mjambor@suse.cz>
10827         PR ipa/59008
10828         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10829         to int.
10830         * ipa-prop.c (ipa_print_node_params): Fix indentation.
10832 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10834         PR debug/59350
10835         PR debug/59510
10836         * var-tracking.c (add_stores): Preserve the value of the source even if
10837         we don't record the store.
10839 2014-01-06  Terry Guo  <terry.guo@arm.com>
10841         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10843 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
10845         PR bootstrap/59541
10846         * config/darwin.c (darwin_function_section): Adjust return values to
10847         correspond to optimisation changes made in r206070.
10849 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
10851         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10852         from prefetch_block tune setting.
10853         (nocona_cost): Correct size of prefetch block to 64.
10855 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10857         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10858         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10859         used to save the static chain register in the computation of the offset
10860         from which the FP registers need to be restored.
10862 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
10864         PR tree-optimization/59519
10865         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10866         ICE if get_current_def (current_new_name) is already non-NULL, as long
10867         as it is a phi result of some other phi in *new_exit_bb that has
10868         the same argument.
10870         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10871         or vmovdqu* for misaligned_operand.
10872         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10873         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10874         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10875         aligned_mem for AVX512F masked aligned load and store builtins and for
10876         non-temporal moves.
10878 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
10880         PR tree-optimization/59651
10881         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10882         Address range for negative step should be added by TYPE_SIZE_UNIT.
10884 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
10886         * config/m68k/m68k.c (handle_move_double): Handle pushes with
10887         overlapping registers also for registers other than the stack pointer.
10889 2014-01-03  Marek Polacek  <polacek@redhat.com>
10891         PR other/59661
10892         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10893         __builtin_FILE.
10895 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
10897         PR target/59625
10898         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10899         asm goto as jump.
10901         * config/i386/i386.md (MODE_SIZE): New mode attribute.
10902         (push splitter): Use <P:MODE_SIZE> instead of
10903         GET_MODE_SIZE (<P:MODE>mode).
10904         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10905         (mov -1, reg peephole2): Likewise.
10906         * config/i386/sse.md (*mov<mode>_internal,
10907         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10908         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10909         *<code><mode>3, *andnot<mode>3<mask_name>,
10910         <mask_codefor><code><mode>3<mask_name>): Likewise.
10911         * config/i386/subst.md (mask_mode512bit_condition,
10912         sd_mask_mode512bit_condition): Likewise.
10914 2014-01-02  Xinliang David Li  <davidxl@google.com>
10916         PR tree-optimization/59303
10917         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
10918         (dump_predicates): Better output format.
10919         (pred_equal_p): New function.
10920         (is_neq_relop_p): Ditto.
10921         (is_neq_zero_form_p): Ditto.
10922         (pred_expr_equal_p): Ditto.
10923         (pred_neg_p): Ditto.
10924         (simplify_pred): Ditto.
10925         (simplify_preds_2): Ditto.
10926         (simplify_preds_3): Ditto.
10927         (simplify_preds_4): Ditto.
10928         (simplify_preds): Ditto.
10929         (push_pred): Ditto.
10930         (push_to_worklist): Ditto.
10931         (get_pred_info_from_cmp): Ditto.
10932         (is_degenerated_phi): Ditto.
10933         (normalize_one_pred_1): Ditto.
10934         (normalize_one_pred): Ditto.
10935         (normalize_one_pred_chain): Ditto.
10936         (normalize_preds): Ditto.
10937         (normalize_cond_1): Remove function.
10938         (normalize_cond): Ditto.
10939         (is_gcond_subset_of): Ditto.
10940         (is_subset_of_any): Ditto.
10941         (is_or_set_subset_of): Ditto.
10942         (is_and_set_subset_of): Ditto.
10943         (is_norm_cond_subset_of): Ditto.
10944         (pred_chain_length_cmp): Ditto.
10945         (convert_control_dep_chain_into_preds): Type change.
10946         (find_predicates): Ditto.
10947         (find_def_preds): Ditto.
10948         (destroy_predicates_vecs): Ditto.
10949         (find_matching_predicates_in_rest_chains): Ditto.
10950         (use_pred_not_overlap_with_undef_path_pred): Ditto.
10951         (is_pred_expr_subset): Ditto.
10952         (is_pred_chain_subset_of): Ditto.
10953         (is_included_in): Ditto.
10954         (is_superset_of): Ditto.
10956 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10958         Update copyright years.
10960 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10962         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
10963         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10964         config/arc/arc.md, config/arc/arc.opt,
10965         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
10966         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
10967         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
10968         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
10969         config/linux-protos.h, config/linux.c, config/winnt-c.c,
10970         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
10971         vtable-verify.c, vtable-verify.h: Use the standard form for the
10972         copyright notice.
10974 2014-01-02  Tobias Burnus  <burnus@net-b.de>
10976         * gcc.c (process_command): Update copyright notice dates.
10977         * gcov-dump.c: Ditto.
10978         * gcov.c: Ditto.
10979         * doc/cpp.texi: Bump @copying's copyright year.
10980         * doc/cppinternals.texi: Ditto.
10981         * doc/gcc.texi: Ditto.
10982         * doc/gccint.texi: Ditto.
10983         * doc/gcov.texi: Ditto.
10984         * doc/install.texi: Ditto.
10985         * doc/invoke.texi: Ditto.
10987 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10989         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
10991 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
10993         * config/i386/sse.md (*mov<mode>_internal): Guard
10994         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
10996         PR rtl-optimization/59647
10997         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
10998         new_rtx into UNSIGNED_FLOAT rtxes.
11000 Copyright (C) 2014 Free Software Foundation, Inc.
11002 Copying and distribution of this file, with or without modification,
11003 are permitted in any medium without royalty provided the copyright
11004 notice and this notice are preserved.