[AArch64 costs 10/18] Improve costs for sign/zero extend operations
[platform/upstream/gcc49.git] / gcc / ChangeLog
1 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
3
4         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
5         ZERO_EXTEND and SIGN_EXTEND better.
6
7 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9
10         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
11         logical operations.
12
13 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
14             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
15
16         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
17         costs when costing loads and stores to memory.
18
19 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
21
22         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
23         for SET RTX.
24
25 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
26
27         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
28
29 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
30             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
31
32         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
33         to...
34         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
35         well formed.
36         (aarch64_rtx_mult_cost): New.
37         (aarch64_rtx_costs): Use it, refactor as appropriate.
38
39 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
40             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
41
42         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
43         emit instructions, return number of instructions which would
44         be emitted.
45         (aarch64_add_constant): Update call to aarch64_build_constant.
46         (aarch64_output_mi_thunk): Likewise.
47         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost
48         a CONST_DOUBLE.
49
50 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
51
52         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
53         (TARGET_RTX_COSTS): Call it.
54
55 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
56
57         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
58         (cortexa57_vector_cost): Likewise.
59         (cortexa57_tunings): Use them.
60
61 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
62
63         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
64         (cpu_addrcost_table): Use it.
65         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
66         (aarch64_address_cost): Rewrite using aarch64_classify_address,
67         move it.
68
69 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
70
71         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
72 2015-06-26  Release Manager
73
74         * GCC 4.9.3 released.
75
76 2015-06-26  Jakub Jelinek  <jakub@redhat.com>
77
78         * doc/cpp.texi: Update displayed copyright years.
79         * doc/cppinternals.texi: Likewise.
80         * doc/gcc.texi: Likewise.
81         * doc/gccint.texi: Likewise.
82         * doc/gcov.texi: Likewise.
83         * doc/install.texi: Likewise.
84         * doc/invoke.texi: Likewise.
85         * gcc.c: Likewise.
86         * gcov-dump.c: Likewise.
87         * gcov.c: Likewise.
88
89 2015-06-23  Matthias Klose  <doko@ubuntu.com>
90
91         PR target/66483
92         Backport from mainline r212178.
93         2014-06-30  Joseph Myers  <joseph@codesourcery.com>
94
95         * var-tracking.c (add_stores): Return instead of asserting if old
96         and new values for conditional store are the same.
97
98 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
99
100         PR 65711
101         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
102         '-dynamic-linker' within %{!shared: ...}.
103
104 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
105
106         PR bootstrap/63740
107         * lra-lives.c (process_bb_lives): Check insn copying the same
108         reload pseudo and don't create a copy for it.
109
110 2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>
111
112         Backport from mainline r215707.
113         2014-09-30  David Sherwood  <david.sherwood@arm.com>
114
115         * ira-int.h (ira_allocno): Add "wmode" field.
116         * ira-build.c (create_insn_allocnos): Add new "parent" function
117         parameter.
118         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
119         that cannot be accessed in wmode.
120
121 2015-06-18  Jakub Jelinek  <jakub@redhat.com>
122
123         PR tree-optimization/66233
124         * fold-const.c (fold_unary_loc): Don't handle vector types.
125         Simplify.
126         * tree-ssa-forwprop.c (combine_conversions): Likewise.
127
128 2015-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
129
130         PR target/66200
131         * config/aarch64/aarch64.c (TARGET_RELAXED_ORDERING): Define.
132
133 2015-06-16  Richard Biener  <rguenther@suse.de>
134
135         Revert
136         2015-06-01  Richard Biener  <rguenther@suse.de>
137
138         Backport from mainline
139         2015-05-26  Michael Matz  <matz@suse.de>
140
141         PR middle-end/66251
142         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
143         STMT_VINFO_VEC_STMT, also with SLP.
144
145         2015-05-22  Richard Biener  <rguenther@suse.de>
146
147         PR tree-optimization/66251
148         * tree-vect-stmts.c (vectorizable_conversion): Properly
149         set STMT_VINFO_VEC_STMT even for the SLP case.
150
151 2015-06-16  Christophe Lyon  <christophe.lyon@linaro.org>
152
153         Backported from mainline r217076.
154         2014-11-04  Michael Collison <michael.collison@linaro.org>
155
156         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
157         to support constraints for CONST_INT in atomic operations.
158         * config/aarch64/atomics.md
159         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
160         (atomic_nand<mode>): Likewise.
161         (atomic_fetch_<atomic_optab><mode>): Likewise.
162         (atomic_fetch_nand<mode>): Likewise.
163         (atomic_<atomic_optab>_fetch<mode>): Likewise.
164         (atomic_nand_fetch<mode>): Likewise.
165
166 2015-06-12  Michael Matz  <matz@suse.de>
167
168         Backported from mainline
169         2014-10-23  Jakub Jelinek  <jakub@redhat.com>
170
171         PR debug/63623
172         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
173         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
174         instead of only handling autoinc in dest if it is a MEM.
175
176 2015-06-12  Jakub Jelinek  <jakub@redhat.com>
177
178         Backported from mainline
179         2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
180
181         PR target/62642
182         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
183
184 2015-06-12  Jakub Jelinek  <jakub@redhat.com>
185
186         PR middle-end/63608
187         Backported from mainline
188         2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
189
190         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
191         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
192
193 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
194
195         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
196         CONST_INT for goto.
197
198 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
199
200         PR bootstrap/66252
201         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
202         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
203         (*addx_extend_sp32): Fix pasto.
204         (*subx_extend): Rename into...
205         (*subx_extend_sp32): ...this.
206         (*adddi3_extend_sp32): Add earlyclobber.
207         (*subdi3_insn_sp32): Likewise.
208         (*subdi3_extend_sp32): Likewise.
209         (*and_not_di_sp32): Likewise.
210         (*or_not_di_sp32): Likewise.
211         (*xor_not_di_sp32): Likewise.
212         (*negdi2_sp32): Likewise.
213         (*one_cmpldi2_sp32): Likewise.
214
215 2015-06-11  Richard Biener  <rguenther@suse.de>
216
217         PR middle-end/66503
218         * dwarf2out.c (resolve_addr): Guard backport of PR66549
219         with in_lto_p.
220
221 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
222
223         Backport from mainline:
224         2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
225
226         PR target/66474
227         * doc/md.texi (Machine Constraints): Document that on the PowerPC
228         if you use a constraint that targets a VSX register, you must use
229         %x<n> in the template.
230
231 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
232
233         PR target/66470
234         * config/i386/i386.c (ix86_split_long_move): For collisions
235         involving direct tls segment refs, move the UNSPEC_TP possibly
236         wrapped in ZERO_EXTEND out of the address for lea, to each of
237         the memory loads.
238
239 2015-06-08  Uros Bizjak  <ubizjak@gmail.com>
240
241         Backport from mainline:
242         2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
243
244         PR target/66275
245         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
246         to determine current function ABI.
247         (ix86_function_value_regno_p): Ditto.
248
249 2015-06-08  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
250
251         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
252
253 2015-06-03  Jakub Jelinek  <jakub@redhat.com>
254
255         Backported from mainline
256         2015-05-13  Jakub Jelinek  <jakub@redhat.com>
257
258         PR middle-end/66133
259         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
260         make sure it is never noreturn, even when the task body does not
261         return.
262         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
263         right before GIMPLE_OMP_RETURN.
264         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
265         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
266         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
267
268         2015-05-04  Jakub Jelinek  <jakub@redhat.com>
269
270         PR tree-optimization/65984
271         * ubsan.c: Include tree-cfg.h.
272         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
273         stmt_could_throw_p test, rename can_throw variable to ends_bb.
274
275         2015-04-07  Jakub Jelinek  <jakub@redhat.com>
276
277         PR middle-end/65680
278         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
279         into signed HOST_WIDE_INT the same as negative bit_offset.
280
281         2015-03-23  Jakub Jelinek  <jakub@redhat.com>
282
283         PR target/65504
284         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
285         on the pseudo.
286         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
287         REG_POINTER on *destptr after adjusting it for prologue size.
288
289         2015-03-18  Jakub Jelinek  <jakub@redhat.com>
290
291         PR tree-optimization/65450
292         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
293         function.
294         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
295         it instead of duplicate_ssa_name_ptr_info.
296
297         2015-03-16  Jakub Jelinek  <jakub@redhat.com>
298
299         PR tree-optimization/65427
300         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
301         functions.
302         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
303
304         2015-03-10  Jakub Jelinek  <jakub@redhat.com>
305
306         PR target/65368
307         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
308         new define_expand.
309         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
310
311         2015-02-18  Jakub Jelinek  <jakub@redhat.com>
312
313         PR gcov-profile/64634
314         * tree-eh.c (frob_into_branch_around): Fix up typos
315         in function comment.
316         (lower_catch): Put eh_seq resulting from EH lowering of
317         the cleanup sequence after the cleanup rather than before
318         it.
319
320 2015-06-03  Richard Biener  <rguenther@suse.de>
321
322         Backport from mainline
323         2015-05-26  Michael Matz  <matz@suse.de>
324
325         PR middle-end/66251
326         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
327         STMT_VINFO_VEC_STMT, also with SLP.
328
329         2015-05-22  Richard Biener  <rguenther@suse.de>
330
331         PR tree-optimization/66251
332         * tree-vect-stmts.c (vectorizable_conversion): Properly
333         set STMT_VINFO_VEC_STMT even for the SLP case.
334
335         2015-05-27  Richard Biener  <rguenther@suse.de>
336
337         PR tree-optimization/66272
338         Revert parts of
339         2014-08-15  Richard Biener  <rguenther@suse.de>
340
341         PR tree-optimization/62031
342         * tree-data-ref.c (dr_analyze_indices): Do not set
343         DR_UNCONSTRAINED_BASE.
344         (dr_may_alias_p): All indirect accesses have to go the
345         formerly DR_UNCONSTRAINED_BASE path.
346         * tree-data-ref.h (struct indices): Remove
347         unconstrained_base member.
348         (DR_UNCONSTRAINED_BASE): Remove.
349
350         2015-05-13  Richard Biener  <rguenther@suse.de>
351
352         PR tree-optimization/66123
353         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
354         a taken edge.
355
356         2015-06-02  Richard Biener  <rguenther@suse.de>
357
358         PR debug/65549
359         * dwarf2out.c (lookup_context_die): New function.
360         (resolve_addr): Avoid forcing a full DIE for the
361         target of a DW_TAG_GNU_call_site during late compilation.
362         Instead create a stub DIE without a type if we have a
363         context DIE present.
364
365         2015-03-23  Richard Biener  <rguenther@suse.de>
366
367         PR tree-optimization/65518
368         * tree-vect-stmts.c (vectorizable_load): Reject single-element
369         interleaving cases we generate absymal code for.
370
371 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
372
373         Backport from mainline
374         2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
375
376         PR target/66215
377         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
378         with -mhotpatch=.
379
380 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
381
382         * config/nios2/linux.h (CPP_SPEC): Define.
383
384 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
385
386         * config/microblaze/linux.h (CPP_SPEC): Define.
387
388 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
389
390         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
391         -pthread is specified.
392
393 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
394
395         PR target/66148
396         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
397         REG_EQUAL note when doing insert.
398
399 2015-05-26  Rohit Arul Raj  <rohitarulraj@freescale.com>
400
401         Backported from mainline
402         2015-05-14  Rohit Arul Raj  <rohitarulraj@freescale.com>
403
404         * varasm.c (output_constant_pool_1): Pass down alignment from
405         constant pool entry's descriptor to output_constant_pool_2.
406         (output_object_block): Add comment prior to call to
407         output_constant_pool_1.
408
409 2015-05-21  Sandra Loosemore  <sandra@codesourcery.com>
410
411         Backport from mainline r223418:
412         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
413         to build a biarch toolchain again.
414
415 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
416
417         * doc/invoke.texi: Add missing cpu types for march option: z196
418         and zEC12.
419
420 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
421
422         PR target/66140
423         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
424         replacements in memory addresses.
425         (get_unaligned_address): Ditto.
426
427 2015-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
428
429         Backport from mainline
430         2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
431
432         PR target/65955
433         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
434         REG before taking its REGNO.
435
436 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
437
438         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
439         and zEC12_simple_fp.
440         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
441         to 1.
442
443 2015-05-12  Yvan Roux  <yvan.roux@linaro.org>
444
445         Backport from mainline.
446         2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
447
448         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
449         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
450         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
451         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
452         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
453         * configure: Regenerate.
454         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
455         * doc/install.texi (aarch64*-*-*): Document new
456         --enable-fix-cortex-a53-843419 option.
457         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
458         and -mno-fix-cortex-a53-843419 options.
459
460 2015-05-06  Uros Bizjak  <ubizjak@gmail.com>
461
462         PR target/65990
463         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
464         if rep_8byte stringop strategy was specified for 32-bit target.
465
466 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
467
468         Backport from mainline
469         2014-05-29  Mike Stump  <mikestump@comcast.net>
470         PR debug/61352
471         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
472         post ld passes when lto is used.
473
474 2015-05-05  Shanyao Chen  <chenshanyao@huawei.com>
475
476         Backported from mainline
477         2015-01-19  Jiong Wang  <jiong.wang@arm.com>
478                     Andrew Pinski  <apinski@cavium.com>
479
480         PR target/64304
481         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
482         (ashl<mode>3): Don't expand if operands[2] is not constant.
483
484 2015-05-05  Peter Bergner  <bergner@vnet.ibm.com>
485
486         Backport from mainline.
487         2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
488
489         PR target/64579
490         * config/rs6000/htm.md: Remove all define_expands.
491         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
492         UNSPECV_HTM_TABORTWCI): Remove.
493         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
494         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
495         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
496         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
497         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
498         tabortwci_internal): Remove define_insns.
499         (tabort<wd>c, tabort<wd>ci): New define_insns.
500         (tabort): Use gpc_reg_operand.
501         (tcheck): Remove operand.
502         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
503         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
504         expected value.
505         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
506         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
507         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
508         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
509         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
510         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
511         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
512         (tcheck): Remove builtin argument.
513         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
514         not TARGET_64BIT.
515         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
516         tabortdc and tabortdci builtins when not in 64-bit mode.
517         Modify code to handle the loss of the HTM define_expands.
518         Emit code to copy the CR register to TARGET.
519         (htm_init_builtins): Modify code to handle the loss of the HTM
520         define_expands.
521         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
522         (RS6000_BTC_64BIT): Likewise.
523         (RS6000_BTC_CR): New macro.
524         * doc/extend.texi: Update documentation for htm builtins.
525
526 2015-04-28  Tejas Belagod  <tejas.belagod@arm.com>
527
528         Backport from Mainline
529         2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
530
531         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
532         Fixup prototype.
533         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
534         aarch64_cannot_force_const_mem, aarch64_classify_address,
535         aarch64_classify_symbolic_expression): Fixup call to
536         aarch64_classify_symbol.
537         (aarch64_classify_symbol): Add range-checking for
538         symbol + offset addressing for tiny and small models.
539
540 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
541
542         Backport from mainline
543         2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
544
545         PR target/65849
546         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
547         save to independent variables use the Save attribute.  This will
548         allow these options to be modified with the #pragma/attribute
549         target support.
550         (-mallow-movmisalign): Likewise.
551         (-mallow-df-permute): Likewise.
552         (-msched-groups): Likewise.
553         (-malways-hint): Likewise.
554         (-malign-branch-targets): Likewise.
555         (-mvectorize-builtins): Likewise.
556         (-msave-toc-indirect): Likewise.
557
558         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
559         can be set via the #pragma/attribute target support.
560         (rs6000_opt_vars): Likewise.
561         (rs6000_inner_target_options): If VSX was set, also set
562         -mno-avoid-indexed-addresses.
563
564 2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
565
566         Backport from mainline r222385
567         2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
568
569         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
570         asterisk from name so this can be generated directly.
571         (*altivec_stvx_<mode>_internal): Likewise.
572         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
573         that this is never called during or after reload/lra.
574         (rs6000_frame_related): Remove split_reg
575         argument and logic that references it.
576         (emit_frame_save): Remove last parameter from call to
577         rs6000_frame_related.
578         (rs6000_emit_prologue): Remove last parameter from eight calls to
579         rs6000_frame_related.  Force generation of stvx instruction for
580         Altivec register saves.  Remove split_reg handling, which is no
581         longer needed.
582         (rs6000_emit_epilogue):  Force generation of lvx instruction for
583         Altivec register restores.
584
585 2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
586
587         Backport from mainline r222362
588         2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
589
590         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
591         TARGET_CRYPTO to TARGET_P8_VECTOR>
592         (crypto_vpermxor_<mode>): Likewise.
593         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
594         (BU_CRYPTO_3A): Likewise.
595         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
596         (BU_CRYPTO_OVERLOAD_3A): New #define.
597         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
598         (VPMSUMH): Likewise.
599         (VPMSUMW): Likewise.
600         (VPMSUMD): Likewise.
601         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
602         (VPERMXOR_V4SI): Likewise.
603         (VPERMXOR_V8HI): Likewise.
604         (VPERMXOR_V16QI): Likewise.
605         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
606         BU_CRYPTO_OVERLOAD_2A.
607         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
608         BU_CRYPTO_OVERLOAD_3A.
609         * config/rs6000/rs6000.opt (mcrypto): Change description of
610         option.
611
612         Backport from mainline r222362
613         2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
614
615         * config/rs6000/rs6000.opt (mcrypto): Change option description to
616         match category changes in ISA 2.07B.
617
618 2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
619
620         Backport from mainline r222351
621         2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
622
623         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
624         adjustments.
625         (insn_is_swappable_p): Return 1 for a convert from double to
626         single precision when all of its uses are splats of BE element
627         zero.
628
629 2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
630
631         Backport from mainline r222349
632         2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
633
634         PR target/65456
635         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
636         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
637         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
638         option.
639         (rs6000_builtin_mask_for_load): Return 0 for targets with
640         efficient unaligned VSX accesses so that the vectorizer will use
641         direct unaligned loads.
642         (rs6000_builtin_support_vector_misalignment): Always return true
643         for targets with efficient unaligned VSX accesses.
644         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
645         stores on targets with efficient unaligned VSX accesses is almost
646         always the same as the cost of an aligned load or store, so model
647         it that way.
648         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
649         unaligned vectors if we have efficient unaligned VSX accesses.
650         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
651         undocumented option.
652
653 2015-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
654             Jakub Jelinek  <jakub@redhat.com>
655
656         Backport from mainline r222205
657         2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
658                     Jakub Jelinek  <jakub@redhat.com>
659
660         PR target/65787
661         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
662         subsequent SH_NONE operand does not overwrite an existing *special
663         value.
664         (adjust_extract): Handle case where a vec_extract operation is
665         wrapped in a PARALLEL.
666
667 2015-04-16  Kirill Yukhin  <kirill.yukhin@intel.com>
668
669         PR target/65676
670         * config/i386/i386.c (fixup_modeless_constant): New.
671         (ix86_expand_args_builtin): Fixup modeless constant operand.
672         (ix86_expand_round_builtin): Ditto.
673         (ix86_expand_special_args_builtin): Ditto.
674         (ix86_expand_builtin): Ditto.
675
676 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
677
678         PR target/65710
679         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
680         Print bad_spills_num and insn_pseudos_num.
681
682 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
683
684         PR target/65710
685         * lra-int.h (lra_bad_spill_regno_start): New.
686         * lra.c (lra_bad_spill_regno_start): New.
687         (lra): Set up lra_bad_spill_regno_start.  Set up
688         lra_constraint_new_regno_start unconditionally.
689         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
690         spill preferences.
691
692 2015-04-07  Richard Biener  <rguenther@suse.de>
693
694         Backport from mainline
695         2015-04-04  Richard Biener  <rguenther@suse.de>
696
697         PR tree-optimization/64909
698         PR tree-optimization/65660
699         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
700         to take a cost vector for scalar iteration cost.
701         (vect_get_single_scalar_iteration_cost): Likewise.
702         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
703         Compute the scalar iteration cost into a cost vector.
704         (vect_get_known_peeling_cost): Use the scalar cost vector to
705         account for the cost of the peeled iterations.
706         (vect_estimate_min_profitable_iters): Likewise.
707         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
708         Likewise.
709
710 2015-04-05  Yvan Roux  <yvan.roux@linaro.org>
711
712         Backport from trunk r221867
713         2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
714
715         PR target/65647
716         * lra.c (lra): Stop updating lra_constraint_new_regno_start after
717         switching off inheritance.
718
719 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
720
721         * config/pa/pa.c (pa_output_move_double): Directly handle register
722         indexed memory operand.  Simplify handling of scaled register indexed
723         memory operands.
724
725 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
726
727         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
728         nested functions.
729         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
730         (s390_asm_output_function_label): Adapt to new signature of
731         s390_function_num_hotpatch_hw
732         Optimise the code generating assembler output.
733         Add comments to assembler file.
734
735 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
736
737         Backport from mainline
738         2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
739
740         PR target/64688
741         * lra-constraints.c (original_subreg_reg_mode): New.
742         (simplify_operand_subreg): Try to simplify subreg of const.  Use
743         original_subreg_reg_mode for it.
744         (swap_operands): Update original_subreg_reg_mode.
745         (curr_insn_transform): Set up original_subreg_reg_mode.
746
747 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
748
749         PR target/65561
750         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
751         Check operand 6 and operand 0 for equality.
752         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
753         for equality.
754         (vec_extract_hi_<mode>_maskm): Ditto.
755
756 2015-03-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
757
758         Backport of r214242, r214254, and bug fix patches from mainline
759         * config/rs6000/rs6000.c (context.h): New #include.
760         (tree-pass.h): Likewise.
761         (make_pass_analyze_swaps): New declaration.
762         (rs6000_option_override): Register swap-optimization pass.
763         (swap_web_entry): New class.
764         (special_handling_values): New enum.
765         (union_defs): New function.
766         (union_uses): Likewise.
767         (insn_is_load_p): Likewise.
768         (insn_is_store_p): Likewise.
769         (insn_is_swap_p): Likewise.
770         (rtx_is_swappable_p): Likewise.
771         (insn_is_swappable_p): Likewise.
772         (chain_purpose): New enum.
773         (chain_contains_only_swaps): New function.
774         (mark_swaps_for_removal): Likewise.
775         (swap_const_vector_halves): Likewise.
776         (adjust_subreg_index): Likewise.
777         (permute_load): Likewise.
778         (permute_store): Likewise.
779         (adjust_extract): Likewise.
780         (adjust_splat): Likewise.
781         (handle_special_swappables): Likewise.
782         (replace_swap_with_copy): Likewise.
783         (dump_swap_insn_table): Likewise.
784         (rs6000_analyze_swaps): Likewise.
785         (pass_data_analyze_swaps): New pass_data.
786         (pass_analyze_swaps): New class.
787         (pass_analyze_swaps::gate): New method.
788         (pass_analyze_swaps::execute): New method.
789         (make_pass_analyze_swaps): New function.
790         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
791         * df.h (web_entry_base): New class, replacing struct web_entry.
792         (web_entry_base::pred): New method.
793         (web_entry_base::set_pred): Likewise.
794         (web_entry_base::unionfind_root): Likewise.
795         (web_entry_base::unionfind_union): Likewise.
796         (unionfind_root): Delete external reference.
797         (unionfind_union): Likewise.
798         (union_defs): Likewise.
799         * web.c (web_entry_base::unionfind_root): Convert to method.
800         (web_entry_base::unionfind_union): Likewise.
801         (web_entry): New class.
802         (union_match_dups): Convert to use class structure.
803         (union_defs): Likewise.
804         (entry_register): Likewise.
805         (web_main): Likewise.
806
807 2015-03-26  Alan Modra  <amodra@gmail.com>
808
809         PR target/63150
810         Backport from trunk 211857 and 221445.
811         2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
812         * config/rs6000/rs6000.md: Append `DONE' to preparation
813         statements of `bswap' pattern splitters.
814
815         2015-03-16  Alan Modra  <amodra@gmail.com>
816         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
817         Modify Z->r bswapdi splitter to use dest in place of scratch.
818         In r->Z and Z->r bswapdi splitter rename word_high, word_low
819         to word1, word2 and rearrange logic to suit.
820         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
821         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
822         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
823         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
824         early clobber.
825
826 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
827
828         Backport from mainline
829         2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
830
831         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
832
833 2015-03-24  Uros Bizjak  <ubizjak@gmail.com>
834
835         PR rtl-optimization/60851
836         * recog.c (constrain_operands): Accept a pseudo register before reload
837         for LRA enabled targets.
838
839 2015-03-23  Yvan Roux  <yvan.roux@linaro.org>
840
841         Backport from trunk r220616.
842         2015-02-11  Martin Liska  <mliska@suse.cz>
843
844         PR ipa/64813
845         * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
846         value for call to a function that is noreturn.
847
848 2015-03-23  Yvan Roux  <yvan.roux@linaro.org>
849
850         Backport from trunk r216841.
851         2014-10-29  Martin Liska  <mliska@suse.cz>
852
853         PR ipa/63587
854         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
855         to local declarations.
856         * function.c (add_local_decl): Implementation moved from header file,
857         assert introduced for tree type.
858         * function.h: Likewise.
859
860 2015-03-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
861
862         Backport from mainline
863         2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
864
865         PR rtl-optimization/65235
866         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
867         When first element of vec_concat is const_int, calculate its size
868         using second element.
869
870 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
871
872         PR middle-end/65409
873         * expr.c (store_field): Do not do a direct block copy if the source is
874         a PARALLEL with BLKmode.
875
876 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
877
878         Backport from mainline
879         * config/s390/s390.c (s390_reorg): Move code to output nops after label
880         to s390_reorg ().
881         (s390_asm_output_function_label): Likewise.
882         * config/s390/s390.c (s390_asm_output_function_label):
883         Fix function label alignment with -mhtopatch.
884         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
885         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
886         ("nop_2_byte"): New define_insn.
887         ("nop_4_byte"): Likewise.
888         ("nop_6_byte"): Likewise.
889         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
890         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
891
892 2015-03-12  Marek Polacek  <polacek@redhat.com>
893
894         Backported from mainline
895         2015-03-11  Marek Polacek  <polacek@redhat.com>
896
897         PR tree-optimization/65388
898         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
899
900 2015-03-11  Georg-Johann Lay  <avr@gjlay.de>
901
902         PR target/65296
903         * configure.ac [avr]: Check as for option -mrmw.
904         * configure: Regenerate.
905         * config.in: Regenerate.
906         * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to
907         assembler options if not HAVE_AS_AVR_MRMW_OPTION.
908
909 2015-03-11  Marek Polacek  <polacek@redhat.com>
910
911         Backported from mainline
912         2014-12-04  Marek Polacek  <polacek@redhat.com>
913
914         PR middle-end/56917
915         * fold-const.c (fold_unary_loc): Perform the negation in A's type
916         when transforming ~ (A - 1) or ~ (A + -1) to -A.
917
918 2015-03-10  Yvan Roux  <yvan.roux@linaro.org>
919
920         Backport from trunk r220489.
921         2015-02-06  Jakub Jelinek  <jakub@redhat.com>
922
923         PR ipa/64896
924         * cgraphunit.c (cgraph_node::expand_thunk): If
925         restype is not is_gimple_reg_type nor the thunk_fndecl
926         returns aggregate_value_p, set restmp to a temporary variable
927         instead of resdecl.
928
929 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
930
931         PR target/65286
932         * config/rs6000/t-linux: For powerpc64* target set
933         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
934
935 2015-03-10  Oleg Endo  <olegendo@gcc.gnu.org>
936
937         PR target/53988
938         * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
939
940 2015-03-10  Alan Modra  <amodra@gmail.com>
941
942         PR target/65286
943         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
944         to be single-arch by default.  Set cpu_is_64bit for powerpc64
945         given --with-cpu=native.
946         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
947         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
948         and powerpc64le.
949         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
950         rs6000_isa_flags rather than TARGET_64BIT.
951
952 2015-03-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
953
954         Backport from trunk
955         2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
956
957         PR 65138/target
958         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
959         processor type for 64-bit little endian PowerPC.
960
961         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
962         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
963         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
964         printing built-in mask so it does not pass NULL pointers.
965
966         * config/rs6000/rs6000-tables.opt: Regenerate.
967
968         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
969         -mcpu=powerpc64le.
970
971         Backport from trunk
972         2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
973
974         * config/rs6000/default64.h: Include rs6000-cpus.def.
975         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
976         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
977         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
978         and POWER8.
979         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
980         POWER8.
981         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
982         pseudo-op to specify assembler dialect.
983
984 2015-03-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
985
986         Backport from mainline
987         2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
988
989         PR target/59593
990         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
991         based on mode size.
992         * config/arm/arm.md (consttable_1): Make it TARGET_EITHER.
993         (consttable_2): Make it TARGET_EITHER and move HFmode handling from
994         consttable_4 to it.
995         (consttable_4): Move HFmode handling to consttable_2 pattern.
996
997 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
998
999         PR target/65249
1000         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
1001         called for __stack_chk_guard symbol.
1002
1003 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
1004
1005         PR target/64331
1006         * config/avr/avr.c (context.h, tree-pass.h): Include them.
1007         (avr_pass_data_recompute_notes): New static variable.
1008         (avr_pass_recompute_notes): New class.
1009         (avr_register_passes): New static function.
1010         (avr_option_override): Call it.
1011
1012 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
1013
1014         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
1015         to create a register in testing mode.
1016
1017 2015-03-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1018
1019         Backport from mainline
1020         2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1021
1022         PR target/64453
1023         * config/arm/arm.c (callee_saved_reg_p): Define.
1024         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
1025         register is callee saved instead of !call_used_regs[reg].
1026         (thumb1_compute_save_reg_mask): Likewise.
1027
1028 2015-02-27  Richard Biener  <rguenther@suse.de>
1029
1030         PR middle-end/63175
1031         * builtins.c (get_object_alignment_2): Make sure to re-apply
1032         the ANDed mask after recursing to its operand gets us a new
1033         misalignment bit position.
1034
1035 2015-02-27  Andrew Pinski  <apinski@cavium.com>
1036             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1037
1038         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
1039         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
1040
1041 2015-02-27  Richard Biener  <rguenther@suse.de>
1042
1043         PR lto/65193
1044         Backport from mainline
1045         2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
1046
1047         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
1048         as non-indexable.
1049
1050 2015-02-25  Peter Bergner  <bergner@vnet.ibm.com>
1051
1052         Backport from mainline
1053         2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
1054
1055         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
1056
1057 2015-02-26  Matthew Fortune  <matthew.fortune@imgtec.com>
1058
1059         PR target/64569
1060         Backported from mainline: r213872, r217446, r217939, r219867
1061
1062         * config.in [!USED_FOR_TARGET] (HAVE_AS_DOT_MODULE): Undefine.
1063         * config/mips/mips.h (FP_ASM_SPEC): New macro.
1064         (ASM_SPEC): Use FP_ASM_SPEC.
1065         * configure.ac (HAVE_AS_DOT_MODULE): Detect support for .module
1066         and FPXX extensions.
1067         * configure: Regenerate.
1068
1069 2015-02-25  Jason Merrill  <jason@redhat.com>
1070
1071         * common.opt (-flifetime-dse): New.
1072
1073 2015-02-25  Kai Tietz  <ktietz@redhat.com>
1074
1075         PR tree-optimization/61917
1076         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
1077         that reduc_def_stmt is null.
1078
1079         Merged from mainline
1080         PR target/64212
1081         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
1082         (symtab::noninterposable_alias): Likewise.
1083
1084 2015-02-25  Richard Biener  <rguenther@suse.de>
1085         Kai Tietz  <ktietz@redhat.com>
1086
1087         Backported from mainline
1088         PR tree-optimization/61917
1089         * tree-vect-loop.c (vectorizable_reduction): Allow
1090         vect_internal_def without reduction to exit graceful.
1091
1092 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
1093
1094         PR target/65196
1095         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
1096         only with NONDEBUG_INSN_P.
1097
1098 2015-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1099
1100         Backport from mainline
1101         2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1102
1103         PR target/65153
1104         * config/sh/sh.md (movsicc_true+3): Remove peephole.
1105         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
1106         * config/sh/sh.c (replace_n_hard_rtx): Remove.
1107
1108 2015-02-24  Richard Biener  <rguenther@suse.de>
1109
1110         Backport from mainline
1111         2015-02-11  Richard Biener  <rguenther@suse.de>
1112
1113         PR lto/65015
1114         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
1115         and -fresolution.
1116
1117         2015-02-13  Richard Biener  <rguenther@suse.de>
1118
1119         PR lto/65015
1120         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
1121         for LTO produced CUs.
1122
1123         2015-02-16  Richard Biener  <rguenther@suse.de>
1124
1125         PR lto/65015
1126         * varasm.c (default_file_start): For LTO produced units
1127         emit <artificial> as file directive.
1128
1129         2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
1130
1131         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
1132
1133 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
1134
1135         Backport from mainline
1136         2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
1137
1138         PR target/65163
1139         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
1140         instead of const_int 4294901760.
1141
1142 2015-02-23  Richard Biener  <rguenther@suse.de>
1143
1144         Backport from mainline
1145         2014-11-19  Richard Biener  <rguenther@suse.de>
1146
1147         PR tree-optimization/63844
1148         * omp-low.c (fixup_child_record_type): Use a restrict qualified
1149         referece type for the receiver parameter.
1150
1151         2014-11-27  Richard Biener  <rguenther@suse.de>
1152
1153         PR tree-optimization/61634
1154         * tree-vect-slp.c: Include gimple-walk.h.
1155         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
1156         down the SLP tree for one scalar statement.
1157         (vect_detect_hybrid_slp_1): New walker function.
1158         (vect_detect_hybrid_slp_2): Likewise.
1159         (vect_detect_hybrid_slp): Properly handle pattern statements
1160         in a pre-scan over all loop stmts.
1161
1162         2015-01-14  Richard Biener  <rguenther@suse.de>
1163
1164         PR tree-optimization/59354
1165         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
1166         groups larger than the slp group size as having gaps.
1167
1168         2015-02-10  Richard Biener  <rguenther@suse.de>
1169
1170         PR tree-optimization/64909
1171         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
1172         pass a scalar-stmt count estimate to the cost model.
1173         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
1174
1175 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1176
1177         Backport from mainline
1178         2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1179
1180         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
1181         Mark operand 0 as earlyclobber in 2nd alternative.
1182         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
1183         Write negated shift amount into QI lowpart operand 0 and use it
1184         in the shift step.
1185         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1186
1187 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
1188
1189         Backport from 2015-02-20 trunk r220847.
1190
1191         PR target/64452
1192         * config/avr/avr.md (pushhi_insn): New insn.
1193         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
1194
1195 2015-02-20  Richard Biener  <rguenther@suse.de>
1196
1197         Backport from mainline
1198         2015-01-12  Richard Biener  <rguenther@suse.de>
1199
1200         PR tree-optimization/64530
1201         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
1202         back dr1.
1203
1204         2015-02-13  Richard Biener  <rguenther@suse.de>
1205
1206         PR lto/64373
1207         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
1208         DECL_CONTEXT.
1209
1210         2015-02-16  Richard Biener  <rguenther@suse.de>
1211
1212         PR tree-optimization/63593
1213         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
1214         stmts and releasing SSA names until...
1215         (execute_pred_commoning): ... after processing all chains.
1216
1217         2015-02-18  Richard Biener  <rguenther@suse.de>
1218
1219         PR tree-optimization/65063
1220         * tree-predcom.c (determine_unroll_factor): Return 1 if we
1221         have replaced looparound PHIs.
1222
1223 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
1224
1225         * config/pa/pa.c (pa_reloc_rw_mask): New function.
1226         (TARGET_ASM_RELOC_RW_MASK): Define.
1227         (pa_cannot_force_const_mem): Revert previous change.
1228
1229 2015-02-19  Richard Biener  <rguenther@suse.de>
1230
1231         Backport from mainline
1232         2014-12-09  Richard Biener  <rguenther@suse.de>
1233
1234         PR middle-end/64199
1235         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1236
1237         2015-01-14  Richard Biener  <rguenther@suse.de>
1238
1239         PR tree-optimization/64493
1240         PR tree-optimization/64495
1241         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
1242         assign the proper vectorized PHI to the inner loop exit PHIs.
1243
1244         2015-01-27  Richard Biener  <rguenther@suse.de>
1245
1246         PR tree-optimization/56273
1247         PR tree-optimization/59124
1248         PR tree-optimization/64277
1249         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
1250         from the first VRP pass.
1251
1252         2015-02-19  Richard Biener  <rguenther@suse.de>
1253
1254         Backport from mainline
1255         2015-01-15  Richard Biener  <rguenther@suse.de>
1256
1257         PR middle-end/64365
1258         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1259         for MEM_REF access functions with the same base can never partially
1260         overlap.
1261
1262 2015-02-17  Ilya Tocar  <ilya.tocar@intel.com>
1263
1264         Backported from mainline
1265         2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
1266
1267         PR target/64387
1268         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
1269         (vec_unpacks_hi_v16sf): Ditto.
1270
1271 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
1272
1273         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
1274         for all floading point loads and stores except those using a register
1275         index address.
1276         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
1277         to a register.
1278
1279 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
1280
1281         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
1282         constraints.
1283         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
1284         symbolic references to data to be forced to constant memory on the
1285         SOM target.
1286
1287 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1288
1289         Backported from mainline
1290         2015-02-09  Jakub Jelinek  <jakub@redhat.com>
1291
1292         PR target/64979
1293         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
1294         va_list escapes.
1295
1296 2015-02-11  Uros Bizjak  <ubizjak@gmail.com>
1297
1298         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
1299         and 3 earlyclobber operands.
1300
1301 2015-02-09  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1302
1303         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
1304         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
1305         -mhotpatch= option.
1306         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
1307         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
1308         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
1309         Renamed.
1310         (s390_hotpatch_trampoline_halfwords_max): Renamed.
1311         (s390_hotpatch_hw_max): New name.
1312         (s390_hotpatch_trampoline_halfwords): Renamed.
1313         (s390_hotpatch_hw_before_label): New name.
1314         (get_hotpatch_attribute): Removed.
1315         (s390_hotpatch_hw_after_label): New name.
1316         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
1317         attribute.
1318         (s390_attribute_table): Ditto.
1319         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
1320         (s390_function_num_hotpatch_hw): New name.
1321         Remove special handling of inline functions and hotpatching.
1322         Return number of nops before and after the function label.
1323         (s390_can_inline_p): Removed.
1324         (s390_asm_output_function_label): Emit a configurable number of nops
1325         after the function label.
1326         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
1327         (TARGET_CAN_INLINE_P) Removed.
1328         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
1329
1330 2015-02-05  Segher Boessenkool  <segher@kernel.crashing.org>
1331
1332         PR target/64580
1333         Backport from mainline
1334         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
1335         (rs6000_stack_info): Add assert.
1336         (rs6000_output_savres_externs): New function, split off from...
1337         (rs6000_output_function_prologue): ... here.  Do not call it for
1338         thunks.
1339
1340 2015-02-04  Matthias Klose  <doko@ubuntu.com>
1341
1342         PR target/64938
1343         Backport from mainline
1344         2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1345
1346         PR ipa/64068
1347         PR ipa/64559
1348         * ipa.c (symbol_table::remove_unreachable_nodes):
1349         Do not put abstract origins into boundary.
1350
1351 2015-02-04  Uros Bizjak  <ubizjak@gmail.com>
1352
1353         Backport from mainline
1354         2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
1355
1356         PR target/64882
1357         * config/i386/predicates.md (address_no_seg_operand): Reject
1358         non-CONST_INT_P operands in invalid mode.
1359
1360         Backport from mainline
1361         2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
1362
1363         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
1364         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
1365         * config/i386/predicates.md (address_no_seg_operand): Call
1366         address_operand with VOIDmode.
1367         (vsib_address_operand): Ditto.
1368
1369 2015-02-01  H.J. Lu  <hongjiu.lu@intel.com>
1370
1371         Backported from mainline
1372         2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
1373
1374         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
1375         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
1376         * config/i386/i386.c (processor_model): Add
1377         M_INTEL_COREI7_BROADWELL.
1378         (arch_names_table): Add "broadwell".
1379
1380 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
1381
1382         Backported from mainline
1383         2015-01-27  Jakub Jelinek  <jakub@redhat.com>
1384
1385         PR rtl-optimization/61058
1386         * jump.c (cleanup_barriers): Update basic block boundaries
1387         if BLOCK_FOR_INSN is non-NULL on PREV.
1388
1389         2015-01-26  Jakub Jelinek  <jakub@redhat.com>
1390
1391         PR middle-end/64421
1392         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
1393         with asterisk, skip the first character.
1394
1395         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
1396         OPTION_MASK_QUAD_MEMORY_ATOMIC.
1397
1398         2015-01-23  Jakub Jelinek  <jakub@redhat.com>
1399
1400         PR rtl-optimization/63637
1401         PR rtl-optimization/60663
1402         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
1403         if elt->cost is MAX_COST for ASM_OPERANDS.
1404         (find_sets_in_insn): Fix up comment typo.
1405         (cse_insn): Don't set src_volatile for all non-volatile
1406         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
1407         or with "memory" clobber.  Set elt->cost to MAX_COST
1408         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
1409         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
1410
1411         PR debug/64511
1412         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
1413         GTY markup.
1414
1415         2015-01-20  Jakub Jelinek  <jakub@redhat.com>
1416
1417         PR debug/64663
1418         * dwarf2out.c (decl_piece_node): Don't put bitsize into
1419         mode if bitsize <= 0.
1420         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
1421         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
1422         sizes and positions.
1423
1424 2015-01-29  Ilya Tocar  <ilya.tocar@intel.com>
1425
1426         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
1427         _mm256_bsrli_epi128): New.
1428         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
1429
1430 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1431
1432         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
1433         memory accesses.
1434
1435 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1436
1437         * config/s390/s390.c (s390_register_move_cost): Increase costs for
1438         FPR->GPR moves.
1439
1440 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
1441
1442         Backport from mainline
1443         2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
1444
1445         PR target/64795
1446         * config/i386/i386.md (*movdi_internal): Also check operand 0
1447         to determine TYPE_LEA operand.
1448         (*movsi_internal): Ditto.
1449
1450         Backport from mainline
1451         2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
1452
1453         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
1454         alternative 1.
1455
1456 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
1457
1458         PR middle-end/64734
1459         * omp-low.c (scan_sharing_clauses): Don't ignore
1460         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
1461         on target data/update constructs.
1462
1463 2015-01-23  Wei Mi  <wmi@google.com>
1464
1465         Backported from trunk.
1466         2015-01-22  Wei Mi  <wmi@google.com>
1467
1468         PR rtl-optimization/64557
1469         * dse.c (record_store): Call get_addr for mem_addr.
1470         (check_mem_read_rtx): Likewise.
1471
1472 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1473
1474         * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
1475         "or".
1476
1477 2015-01-21  Wei Mi  <wmi@google.com>
1478
1479         Backported from trunk.
1480         2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
1481
1482         PR ipa/63970
1483         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
1484         as having abstract origin used.
1485         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
1486         origin check.
1487         (clone_inlined_nodes): Copy abstract originflag.
1488         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
1489         abstract origin node.
1490
1491 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
1492
1493         Backport from mainline
1494         * config/nios2/nios2.c (nios2_asm_file_end): Implement
1495         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
1496         needed.
1497         (TARGET_ASM_FILE_END): Define.
1498
1499 2015-01-15  Martin Liska  <mliska@suse.cz>
1500
1501         Backport from mainline
1502         2014-11-27  Richard Biener  <rguenther@suse.de>
1503
1504         PR middle-end/63704
1505         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1506         and instead return false when !fstrict-aliasing.
1507
1508 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
1509
1510         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1511         set the memory attributes in all cases but clear MEM_EXPR if need be.
1512
1513 2015-01-14  Jakub Jelinek  <jakub@redhat.com>
1514
1515         Backported from mainline
1516         2015-01-12  Jakub Jelinek  <jakub@redhat.com>
1517
1518         PR target/64513
1519         * config/i386/i386.c (ix86_expand_prologue): Add
1520         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
1521
1522         2015-01-13  Jakub Jelinek  <jakub@redhat.com>
1523
1524         PR rtl-optimization/64286
1525         * ree.c (combine_reaching_defs): Move part of comment earlier,
1526         remove !SCALAR_INT_MODE_P check.
1527         (add_removable_extension): Don't add vector mode
1528         extensions if all uses of the source register aren't the same
1529         vector extensions.
1530
1531         2015-01-12  Jakub Jelinek  <jakub@redhat.com>
1532
1533         PR tree-optimization/64563
1534         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
1535         instead of != VR_VARYING.
1536
1537 2015-01-14  Marek Polacek  <polacek@redhat.com>
1538
1539         Backport from mainline
1540         2015-01-13  Marek Polacek  <polacek@redhat.com>
1541
1542         PR middle-end/64391
1543         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
1544
1545 2015-01-13  Marc Glisse  <marc.glisse@inria.fr>
1546
1547         PR c++/54442
1548         * tree.c (build_qualified_type): Use a canonical type for
1549         TYPE_CANONICAL.
1550
1551 2015-01-13  Pat Haugen  <pthaugen@us.ibm.com>
1552
1553         Backport from mainline
1554         2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>
1555
1556         PR target/64358
1557         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
1558         input operands if only the second is inverted.
1559         * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
1560         Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
1561         rs6000_split_logical.
1562         (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
1563
1564 2015-01-13  Renlin Li  <renlin.li@arm.com>
1565
1566         Backport from mainline:
1567         2014-11-19 Renlin Li <renlin.li@arm.com>
1568
1569         PR target/63424
1570         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
1571
1572 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
1573
1574         Backport form mainline
1575         2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
1576
1577         PR target/64479
1578         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1579
1580 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
1581
1582         PR rtl-optimization/64536
1583         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
1584         tablejumps.
1585
1586 2015-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1587
1588         Backport from mainline:
1589         2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1590
1591         PR target/64505
1592         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
1593         correct reload handler if -m32 -mpowerpc64 is used.
1594
1595 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1596
1597         Backport from mainline:
1598         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1599
1600         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
1601         for -mcpu=e6500.
1602         * config/rs6000/t-rtems: Add e6500 multilibs.
1603
1604 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1605
1606         Backport from mainline:
1607         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1608
1609         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
1610         MPC8540.
1611
1612 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1613
1614         Backport from mainline:
1615         2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1616
1617         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
1618         MULTILIB_EXCEPTIONS.
1619
1620 2015-01-09  Renlin Li  <renlin.li@arm.com>
1621
1622         Backport from mainline:
1623         2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1624
1625         PR target/61413
1626         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
1627         of __ARM_SIZEOF_WCHAR_T.
1628
1629 2015-01-08  Christian Bruel  <christian.bruel@st.com>
1630
1631         PR target/64507
1632         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
1633
1634 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
1635
1636         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
1637         instead of `m' constraint.  Likewise for unnamed movb comparison
1638         patterns using reg_before_reload_operand predicate.
1639         * config/pa/predicates.md (reg_before_reload_operand): Tighten
1640         predicate to reject register index and LO_SUM DLT memory forms
1641         after reload.
1642
1643 2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
1644
1645         Backport from mainline:
1646         2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
1647
1648         PR target/64409
1649         * config/i386/i386.c (ix86_function_type_abi): Issue an error
1650         when ms_abi attribute is used with x32.
1651
1652 2014-12-27  Uros Bizjak  <ubizjak@gmail.com>
1653
1654         * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
1655         Emit movshdup for SSE3 and shufps otherwise.
1656         (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
1657         Emit pshufd for SSE2 and shufps otherwise.
1658
1659 2014-12-24  Nick Clifton  <nickc@redhat.com>
1660
1661         Backport from mainline:
1662         2014-06-13  Nick Clifton  <nickc@redhat.com>
1663
1664         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
1665         requested alignment is active.
1666         (LABEL_ALIGN): Likewise.
1667         (LOOP_ALIGN): Likewise.
1668
1669         2014-03-25  Nick Clifton  <nickc@redhat.com>
1670
1671         * config/rx/rx.c (rx_print_operand): Allow R operator to accept
1672         SImode values.
1673
1674 2014-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1675
1676         Backport from mainline
1677         2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1678
1679         PR rtl-optimization/64010
1680         * reload.c (push_reload): Before reusing a register contained
1681         in an operand as input reload register, ensure that it is not
1682         used in CALL_INSN_FUNCTION_USAGE.
1683
1684 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
1685
1686         PR sanitizer/64265
1687         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
1688         call on edge from entry block to single succ instead
1689         of after labels of single succ of entry block.
1690
1691 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1692
1693         Backported from mainline
1694         2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1695
1696         PR rtl-optimization/64037
1697         * combine.c (setup_incoming_promotions): Pass the argument
1698         before any promotions happen to promote_function_mode.
1699
1700 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1701
1702         Backported from mainline
1703         2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1704
1705         PR target/64200
1706         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1707         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1708
1709 2014-12-13  Jakub Jelinek  <jakub@redhat.com>
1710
1711         Backported from mainline
1712         2014-12-12  Jakub Jelinek  <jakub@redhat.com>
1713
1714         PR tree-optimization/64269
1715         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1716         len2 or diff are too large.
1717
1718 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1719
1720         * doc/md.texi (Insn Lengths): Fix description of (pc).
1721
1722 2014-12-11  Renlin Li  <renlin.li@arm.com>
1723
1724         Backport from mainline
1725         2014-12-11  Renlin Li  <renlin.li@arm.com>
1726
1727         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1728         selected_tune.
1729         (aarch64_override_options): Use selected_cpu's tuning.
1730
1731 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1732
1733         Backport from mainline
1734         2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1735
1736         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
1737         built-in definition.
1738         (XVCVUXDDP_SCALE): Likewise.
1739         (XVCVDPSXDS_SCALE): Likewise.
1740         (XVCVDPUXDS_SCALE): Likewise.
1741         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
1742         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1743         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1744         VSX_BUILTIN_XVCVDPUXDS_SCALE.
1745         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1746         prototype.
1747         * config/rs6000/rs6000.c (real.h): New include.
1748         (rs6000_scale_v2df): New function.
1749         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1750         (UNSPEC_VSX_XVCVUXDDP): Likewise.
1751         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1752         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1753         (vsx_xvcvsxddp_scale): New define_expand.
1754         (vsx_xvcvsxddp): New define_insn.
1755         (vsx_xvcvuxddp_scale): New define_expand.
1756         (vsx_xvcvuxddp): New define_insn.
1757         (vsx_xvcvdpsxds_scale): New define_expand.
1758         (vsx_xvcvdpsxds): New define_insn.
1759         (vsx_xvcvdpuxds_scale): New define_expand.
1760         (vsx_xvcvdpuxds): New define_insn.
1761         * doc/extend.texi (vec_ctf): Add new prototypes.
1762         (vec_cts): Likewise.
1763         (vec_ctu): Likewise.
1764         (vec_splat): Likewise.
1765         (vec_div): Likewise.
1766         (vec_mul): Likewise.
1767
1768         Backport from mainline
1769         2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1770
1771         * config/rs6000/altivec.h (vec_xl): New #define.
1772         (vec_xst): Likewise.
1773         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
1774         (XXSPLTD_V2DI): Likewise.
1775         (DIV_V2DI): Likewise.
1776         (UDIV_V2DI): Likewise.
1777         (MUL_V2DI): Likewise.
1778         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1779         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
1780         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
1781         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
1782         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
1783         (UNSPEC_VSX_DIVSD): Likewise.
1784         (UNSPEC_VSX_DIVUD): Likewise.
1785         (UNSPEC_VSX_MULSD): Likewise.
1786         (vsx_mul_v2di): New insn-and-split.
1787         (vsx_div_v2di): Likewise.
1788         (vsx_udiv_v2di): Likewise.
1789         (vsx_xxspltd_<mode>): New insn.
1790
1791         Backport from mainline
1792         2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1793
1794         * config/rs6000/altivec.h (vec_cpsgn): New #define.
1795         (vec_mergee): Likewise.
1796         (vec_mergeo): Likewise.
1797         (vec_cntlz): Likewise.
1798         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
1799         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
1800         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
1801         VMRGEW, and VMRGOW.
1802         * doc/extend.texi: Document various forms of vec_cpsgn,
1803         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
1804         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
1805         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
1806         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
1807         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
1808
1809         Backport from mainline
1810         2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1811
1812         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
1813         (altivec_vsldoi_<mode>): Likewise.
1814
1815
1816 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1817
1818         PR tree-optimization/62021
1819         * omp-low.c (simd_clone_adjust_return_type): Use
1820         vector of pointer_sized_int_node types instead vector of pointer
1821         types.
1822         (simd_clone_adjust_argument_types): Likewise.
1823
1824 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1825
1826         Backport from mainline:
1827         2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1828
1829         PR middle-end/64225
1830         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1831         for BUILT_IN_POW when flag_errno_math is present.
1832
1833 2014-12-10  Marek Polacek  <polacek@redhat.com>
1834
1835         Backport from mainline
1836         2014-12-10  Marek Polacek  <polacek@redhat.com>
1837
1838         PR tree-optimization/61686
1839         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1840         p->high.
1841
1842 2014-12-09  David Edelsohn  <dje.gcc@gmail.com>
1843
1844         Backport from mainline
1845         2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1846
1847         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1848         alignment to section name. Increase default alignment to
1849         word.
1850
1851 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
1852
1853         PR bootstrap/64213
1854         Revert:
1855         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1856
1857         PR rtl-optimization/64037
1858         * combine.c (setup_incoming_promotions): Pass the argument
1859         before any promotions happen to promote_function_mode.
1860
1861 2014-12-09  Richard Biener  <rguenther@suse.de>
1862
1863         PR tree-optimization/64191
1864         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1865         not relevant (nor are their uses).
1866
1867 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1868
1869         Backport from mainline
1870         2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1871
1872         PR target/50751
1873         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1874
1875 2014-12-05  H.J. Lu  <hongjiu.lu@intel.com>
1876
1877         Backport from mainline
1878         2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1879
1880         PR target/64108
1881         * config/i386/i386.c (decide_alg): Stop only if there aren't
1882         any usable algorithms.
1883
1884 2014-12-05  H.J. Lu  <hongjiu.lu@intel.com>
1885
1886         Backport from mainline
1887         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         PR rtl-optimization/64037
1890         * combine.c (setup_incoming_promotions): Pass the argument
1891         before any promotions happen to promote_function_mode.
1892
1893 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1894
1895         * configure.ac
1896         (ac_has_isl_schedule_constraints_compute_schedule):
1897         New check.
1898         * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
1899         * graphite-interchange.c: Ditto.
1900         * graphite-poly.c: Ditto.
1901         * graphite-sese-to-poly.c: Ditto.
1902         * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
1903         Conditionally use ISL 0.13+ functions.
1904         * config.in: Regenerate.
1905         * configure: Regenerate.
1906
1907 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1908
1909         PR c++/56493
1910         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1911         Handle COMPOUND_EXPR.
1912
1913 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1914
1915         PR c/59708
1916         * expmed.c (expand_widening_mult): Return const0_rtx if
1917         coeff is 0.
1918
1919 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1920
1921         PR ipa/64153
1922         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1923         type sizes before view_converting.
1924
1925 2014-12-03  Shanyao Chen  <chenshanyao@huawei.com>
1926
1927         Backport from mainline
1928         2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1929
1930         PR target/59593
1931         * config/arm/arm.md (*movhi_insn): Use right formatting
1932         for immediate.
1933
1934         2014-11-19  Felix Yang  <felix.yang@huawei.com>
1935                     Shanyao Chen  <chenshanyao@huawei.com>
1936
1937         PR target/59593
1938         * config/arm/arm.md (define_attr "arch"): Add v6t2.
1939         (define_attr "arch_enabled"): Add test for the above.
1940         (*movhi_insn_arch4): Add new alternative.
1941
1942 2014-12-03  Renlin Li  <Renlin.Li@arm.com>
1943
1944         Backported from mainline
1945         2014-12-03  Renlin Li  <Renlin.Li@arm.com>
1946
1947         PR middle-end/63762
1948         PR target/63661
1949         * ira.c (ira): Update preferred class.
1950
1951 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1952
1953         PR target/64113
1954         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1955         using post-reload splitter.  Use peephole2 pass instead.
1956         (call_value_osf_tlsldm): Ditto.
1957         (TLS_CALL): New int iterator.
1958         (tls): New int attribute.
1959         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1960         and call_value_tlsldm using TLS_CALL int iterator.
1961
1962 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1963
1964         PR target/64115
1965         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1966         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1967
1968 2014-12-01  Richard Biener  <rguenther@suse.de>
1969
1970         PR middle-end/64111
1971         * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
1972         htab_hash_pointer to not break PCH.
1973
1974 2014-12-01  Martin Jambor  <mjambor@suse.cz>
1975
1976         PR ipa/63551
1977         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1978         value of the argument to the type of the value in the condition.
1979
1980 2014-11-28  Jakub Jelinek  <jakub@redhat.com>
1981
1982         Backported from mainline
1983         2014-11-27  Jakub Jelinek  <jakub@redhat.com>
1984
1985         PR middle-end/64067
1986         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1987         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1988         not only if modifier is EXPAND_INITIALIZER, but whenever
1989         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1990
1991         2014-11-19  Jakub Jelinek  <jakub@redhat.com>
1992
1993         PR tree-optimization/63915
1994         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1995         true instead of false as last argument to gsi_replace.
1996
1997         PR sanitizer/63913
1998         * ubsan.c: Include tree-eh.h.
1999         (instrument_bool_enum_load): Handle loads that can throw.
2000
2001         2014-10-31  Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR rtl-optimization/63659
2004         * ree.c (update_reg_equal_equiv_notes): New function.
2005         (combine_set_extension, transform_ifelse): Use it.
2006
2007 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2008
2009         Backport from mainline.
2010         2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2011
2012         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2013         -march=armv8-a+crc.
2014
2015 2014-11-26  Richard Biener  <rguenther@suse.de>
2016
2017         PR middle-end/63738
2018         * tree-data-ref.c (split_constant_offset_1): Do not follow
2019         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2020
2021 2014-11-26  Richard Biener  <rguenther@suse.de>
2022
2023         Backport from mainline
2024         2014-11-26  Richard Biener  <rguenther@suse.de>
2025
2026         PR tree-optimization/62238
2027         * tree-predcom.c (ref_at_iteration): Unshare the expression
2028         before gimplifying it.
2029
2030         2014-11-25  Richard Biener  <rguenther@suse.de>
2031
2032         PR tree-optimization/61927
2033         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2034         of group and pattern analysis to the one in GCC 4.8.
2035
2036         2014-11-07  Richard Biener  <rguenther@suse.de>
2037
2038         PR tree-optimization/63605
2039         * fold-const.c (fold_binary_loc): Properly use element_precision
2040         for types that may not be scalar.
2041
2042         2014-10-28  Richard Biener  <rguenther@suse.de>
2043
2044         PR middle-end/63665
2045         * fold-const.c (fold_comparison): Properly guard simplifying
2046         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
2047
2048 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2049
2050         PR bootstrap/63703
2051         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2052         added GCC hard register numbers for SPE high registers.
2053
2054 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2055
2056         Backport from mainline
2057         2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2058
2059         PR target/53976
2060         * config/sh/sh_optimize_sett_clrt.cc
2061         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2062         of void.  Abort at complex edges.
2063         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2064         returned false.
2065
2066 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2067
2068         Backport from mainline
2069         2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2070
2071         PR target/63783
2072         PR target/51244
2073         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2074         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
2075         Adjust related comments throughout the file.
2076
2077 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2078
2079         Backport from mainline
2080         2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
2081
2082         PR target/60111
2083         * config/sh/sh.c: Use signed char for signed field.
2084
2085 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2086
2087         PR target/63673
2088         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2089         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2090         double.
2091
2092 2014-11-21  Richard Biener  <rguenther@suse.de>
2093
2094         PR tree-optimization/61750
2095         * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
2096         match for the resulting VIEW_CONVERT_EXPR.
2097
2098 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
2099
2100         PR target/63947
2101         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
2102         Output "b" and "nb" suffix for FP mode.
2103
2104 2014-11-19  Tom de Vries  <tom@codesourcery.com>
2105
2106         Backport from mainline
2107         PR tree-optimization/62167
2108         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
2109         conservatively.
2110         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
2111         assigns.
2112
2113 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2114
2115         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
2116         * doc/tm.texi: Regenerate.
2117
2118 2014-11-14  Felix Yang  <felix.yang@huawei.com>
2119
2120         Backport from mainline
2121         2014-11-14  Felix Yang  <felix.yang@huawei.com>
2122                     Jiji Jiang  <jiangjiji@huawei.com>
2123
2124         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
2125         VALL mode iterator instead of VALLDI.
2126
2127 2014-11-13  Teresa Johnson  <tejohnson@google.com>
2128
2129         PR tree-optimization/63841
2130         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
2131
2132 2014-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
2133
2134         Backport from mainline
2135         2014-11-02  Michael Collison  <michael.collison@linaro.org>
2136
2137         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
2138         to support vector modes.
2139         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
2140
2141 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2142
2143         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
2144         (REVERSIBLE_CC_MODE): Fix example.
2145         (REVERSE_CONDITION): Fix typo.
2146         * doc/tm.texi: Regenerate.
2147
2148 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
2149
2150         PR ipa/63838
2151         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
2152         chain instead of node->indirect_calls.
2153
2154 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2155
2156         PR target/61535
2157         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
2158         smaller than 8 bytes.
2159         (sparc_function_arg_1): Tweak.
2160         (sparc_function_value_1): Tweak.
2161
2162 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2163
2164         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
2165         related, if any.
2166         (thumb_set_return_address): Likewise.
2167
2168 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
2169
2170         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
2171         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
2172
2173 2014-11-07  Marek Polacek  <polacek@redhat.com>
2174
2175         Backported from mainline
2176         2014-10-23  Marek Polacek  <polacek@redhat.com>
2177
2178         * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
2179         in unsigned type.
2180
2181 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
2182
2183         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
2184         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
2185         or in_call_delay.
2186
2187 2014-11-06  Daniel Hellstrom  <daniel@gaisler.com>
2188
2189         * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
2190         * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
2191         * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
2192         leon3v7 as leon3.
2193         * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
2194         * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
2195         * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
2196         * config/sparc/sparc.md (cpu): Add leon3v7.
2197         * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
2198
2199 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
2200
2201         PR target/63538
2202         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
2203         (ix86_encode_section_info): Do not check for non-automatic varibles
2204         when setting SYMBOL_FLAG_FAR_ADDR flag.
2205         (x86_64_elf_select_section): Do not check ix86_cmodel here.
2206         (x86_64_elf_unique_section): Ditto.
2207         (x86_elf_aligned_common): Emit tab before .largecomm.
2208
2209 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
2210
2211         Backport from mainline:
2212         2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
2213
2214         * varasm.c (const_alias_set): Remove.
2215         (init_varasm_once): Remove initialization of const_alias_set.
2216         (build_constant_desc): Do not set alias set to const_alias_set.
2217
2218         Backport from mainline:
2219         2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
2220
2221         PR rtl-optimization/63475
2222         * alias.c (true_dependence_1): Always use get_addr to extract
2223         true address operands from x_addr and mem_addr.  Use extracted
2224         address operands to check for references with alignment ANDs.
2225         Use extracted address operands with find_base_term and
2226         base_alias_check. For noncanonicalized operands call canon_rtx with
2227         extracted address operand.
2228         (write_dependence_1): Ditto.
2229         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
2230
2231         Backport from mainline:
2232         2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2233
2234         PR rtl-optimization/63483
2235         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2236         references when alignment ANDs are involved.
2237         (write_dependence_p): Ditto.
2238         (may_alias_p): Ditto.
2239
2240 2014-10-31  DJ Delorie  <dj@redhat.com>
2241
2242         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
2243
2244 2014-10-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2245
2246         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
2247         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2248         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
2249         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2250
2251 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
2252
2253         PR sanitizer/63697
2254         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
2255         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
2256         instead of vr0.min - vr1.min and vr0.max - vr1.max.
2257
2258 2014-10-30  Georg-Johann Lay  <avr@gjlay.de>
2259
2260         PR63633
2261         * config/avr/avr-protos.h (regmask): New inline function.
2262         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2263         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2264         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2265         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2266         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2267         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2268         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2269         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2270         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2271         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2272         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2273         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2274         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
2275         needed.
2276
2277 2014-10-30  Jakub Jelinek  <jakub@redhat.com>
2278
2279         * BASE-VER: Set to 4.9.3.
2280         * DEV-PHASE: Set to prerelease.
2281
2282 2014-10-30  Release Manager
2283
2284         * GCC 4.9.2 released.
2285
2286 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2287
2288         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
2289         recog state after aarch64_prev_real_insn call.
2290
2291 2014-10-27  Guozhi Wei  <carrot@google.com>
2292
2293         PR tree-optimization/63530
2294         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
2295         pointer alignment according to DR_MISALIGNMENT.
2296
2297 2014-10-25  Yury Gribov  <y.gribov@samsung.com>
2298
2299         PR sanitizer/63638
2300         * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
2301
2302 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
2303
2304         PR bootstrap/63632
2305         * collect2.c (main): Filter out -fno-lto.
2306
2307 2014-10-22  Richard Biener  <rguenther@suse.de>
2308             Tobias Burnus <burnus@net-b.de>
2309
2310         PR lto/63603
2311         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
2312
2313 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
2314
2315         PR tree-optimization/63563
2316         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
2317         if either dra or drb stmts are not normal loads/stores.
2318
2319 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
2320
2321         * asan.c (instrument_derefs): Allow instrumentation of odd-sized
2322         accesses even for -fsanitize=address.
2323         (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
2324
2325         PR tree-optimization/63302
2326         * tree-ssa-reassoc.c (optimize_range_tests_xor,
2327         optimize_range_tests_diff): Use !integer_pow2p () instead of
2328         tree_log2 () < 0.
2329
2330 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2331
2332         * asan.c (instrument_derefs): Enable unaligned path for KASan.
2333
2334 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2335
2336         Backport from mainline
2337         2014-10-03  Yury Gribov  <y.gribov@samsung.com>
2338
2339         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2340         don't emit empty ctors.
2341
2342 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2343
2344         Backport from mainline
2345         2014-09-01  Yury Gribov  <y.gribov@samsung.com>
2346
2347         PR sanitizer/61897
2348         PR sanitizer/62140
2349
2350         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
2351         (build_check_stmt): Likewise.
2352         (instrument_strlen_call): Likewise.
2353         (asan_expand_check_ifn): Likewise and fix types.
2354         (maybe_cast_to_ptrmode): New function.
2355
2356 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2357
2358         Backport from mainline
2359         2014-08-18  Yury Gribov  <y.gribov@samsung.com>
2360
2361         PR sanitizer/62089
2362
2363         * asan.c (instrument_derefs): Fix bitfield check.
2364
2365 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2366
2367         Backport from mainline
2368         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
2369
2370         * asan.c (asan_check_flags): New enum.
2371         (build_check_stmt_with_calls): Removed function.
2372         (build_check_stmt): Split inlining logic to
2373         asan_expand_check_ifn.
2374         (instrument_derefs): Rename parameter.
2375         (instrument_mem_region_access): Rename parameter.
2376         (instrument_strlen_call): Likewise.
2377         (asan_expand_check_ifn): New function.
2378         (asan_instrument): Remove old code.
2379         (pass_sanopt::execute): Change handling of
2380         asan-instrumentation-with-call-threshold.
2381         (asan_clear_shadow): Fix formatting.
2382         (asan_function_start): Likewise.
2383         (asan_emit_stack_protection): Likewise.
2384         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
2385         Update description.
2386         * internal-fn.c (expand_ASAN_CHECK): New function.
2387         * internal-fn.def (ASAN_CHECK): New internal function.
2388         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
2389         Update description.
2390         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
2391         * tree.c: Small comment fix.
2392
2393 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2394
2395         Backport from mainline
2396         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
2397
2398         * gimple.c (gimple_call_fnspec): Support internal functions.
2399         (gimple_call_return_flags): Use const.
2400         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
2401         * internal-fn.def: Add fnspec information.
2402         * internal-fn.h (internal_fn_fnspec): New function.
2403         (init_internal_fns): Declare new function.
2404         * internal-fn.c (internal_fn_fnspec_array): New global variable.
2405         (init_internal_fns): New function.
2406         * tree-core.h: Update macro call.
2407         * tree.c (build_common_builtin_nodes): Initialize internal fns.
2408
2409         Backport from mainline
2410         2014-08-12  Yury Gribov  <y.gribov@samsung.com>
2411
2412         * internal-fn.c (init_internal_fns): Fix off-by-one.
2413
2414 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2415
2416         Backport from mainline
2417         2014-07-31  Yury Gribov  <y.gribov@samsung.com>
2418
2419         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
2420         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
2421         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
2422         New enums.
2423         * gcc.c (sanitize_spec_function): Support new option.
2424         (SANITIZER_SPEC): Remove now redundant check.
2425         * opts.c (common_handle_option): Support new option.
2426         (finish_options): Check for incompatibilities.
2427         * toplev.c (process_options): Split userspace-specific checks.
2428
2429 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2430
2431         Backport from mainline
2432         2014-06-24  Max Ostapenko  <m.ostapenko@partner.samsung.com>
2433
2434         * asan.c (instrument_strlen_call): Do not instrument first byte in
2435         strlen if already instrumented.
2436
2437 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2438
2439         Backport from mainline
2440         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
2441
2442         * asan.c (check_func): New function.
2443         (maybe_create_ssa_name): Likewise.
2444         (build_check_stmt_with_calls): Likewise.
2445         (use_calls_p): Likewise.
2446         (report_error_func): Change interface.
2447         (build_check_stmt): Allow non-integer lengths; add support
2448         for new parameter.
2449         (asan_instrument): Likewise.
2450         (instrument_mem_region_access): Moved code to
2451         build_check_stmt.
2452         (instrument_derefs): Likewise.
2453         (instrument_strlen_call): Likewise.
2454         * cfgcleanup.c (old_insns_match_p): Add support for new
2455         functions.
2456         * doc/invoke.texi: Describe new parameter.
2457         * params.def: Define new parameter.
2458         * params.h: Likewise.
2459         * sanitizer.def: Describe new builtins.
2460
2461         Backport from mainline
2462         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
2463
2464         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
2465
2466         Backport from mainline
2467         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
2468
2469         PR sanitizer/61530
2470
2471         * asan.c (build_check_stmt): Add condition.
2472
2473         Backport from mainline
2474         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
2475
2476         PR sanitizer/61547
2477
2478         * asan.c (instrument_strlen_call): Fixed instrumentation of
2479         trailing byte.
2480
2481 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2482
2483         Backport from mainline
2484         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
2485
2486         * asan.c (report_error_func): Add SLOW_P argument, use
2487         BUILT_IN_ASAN_*_N if set.
2488         (build_check_stmt): Likewise.
2489         (instrument_derefs): If T has insufficient alignment,
2490         force same handling as for odd sizes.
2491
2492 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
2493
2494         Backport from mainline
2495         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
2496
2497         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
2498         BUILT_IN_ASAN_REPORT_STORE_N): New.
2499         * asan.c (struct asan_mem_ref): Change access_size type to
2500         HOST_WIDE_INT.
2501         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
2502         update_mem_ref_hash_table): Likewise.
2503         (asan_mem_ref_hasher::hash): Hash in a HWI.
2504         (report_error_func): Change size_in_bytes argument to HWI.
2505         Use *_N builtins if size_in_bytes is larger than 16 or not power of
2506         two.
2507         (build_shadow_mem_access): New function.
2508         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
2509         Handle size_in_bytes not power of two or larger than 16.
2510         (instrument_derefs): Don't give up if size_in_bytes is not
2511         power of two or is larger than 16.
2512
2513 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2514
2515         PR rtl-optimization/63448
2516         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2517         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2518         (LRA_MAX_INHERITANCE_PASSES): Use it.
2519         (lra_constraint_iter_after_spill): Remove.
2520         (lra_assignment_iter): New.
2521         (lra_assignment_iter_after_spill): New.
2522         * lra-assigns.c (lra_assignment_iter): New.
2523         (lra_assignment_iter_after_spill): New.
2524         (former_reload_pseudo_spill_p): New.
2525         (spill_for): Set up former_reload_pseudo_spill_p.
2526         (setup_live_pseudos_and_spill_after_risky): Ditto.
2527         (assign_by_spills): Ditto.
2528         (lra_assign): Increment lra_assignment_iter.  Print the iteration
2529         number.  Reset former_reload_pseudo_spill_p.  Check
2530         lra_assignment_iter_after_spill.
2531         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
2532         lra_assignment_iter and lra_assignment_iter_after_spill.
2533         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2534         (lra_constraints): Remove code with
2535         lra_assignment_iter_after_spill.
2536
2537 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2538
2539         * stor-layout.c (self_referential_size): Do not promote arguments.
2540
2541 2014-10-15  Richard Biener  <rguenther@suse.de>
2542
2543         Backport from mainline
2544         2014-08-15  Richard Biener  <rguenther@suse.de>
2545
2546         PR tree-optimization/62031
2547         * tree-data-ref.c (dr_analyze_indices): Do not set
2548         DR_UNCONSTRAINED_BASE.
2549         (dr_may_alias_p): All indirect accesses have to go the
2550         formerly DR_UNCONSTRAINED_BASE path.
2551         * tree-data-ref.h (struct indices): Remove
2552         unconstrained_base member.
2553         (DR_UNCONSTRAINED_BASE): Remove.
2554
2555 2014-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2556
2557         Backport from mainline r215880
2558         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2559
2560         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2561         Issue a warning message when vec_lvsl or vec_lvsr is used with a
2562         little endian target.
2563
2564         Backport from mainline r215882
2565         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2566
2567         * altivec.md (altivec_lvsl): New define_expand.
2568         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2569         (altivec_lvsr): New define_expand.
2570         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2571         * rs6000.c (rs6000_expand_builtin): Change to use
2572         altivec_lvs[lr]_direct; remove commented-out code.
2573
2574 2014-10-10  Richard Biener  <rguenther@suse.de>
2575
2576         PR tree-optimization/63379
2577         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2578         a neutral operand for min/max when it is not a reduction chain.
2579
2580 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2581
2582         Backport from mainline
2583         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2584
2585         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2586         * configure: Regenerate.
2587         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2588         TARGET_FIX_ERR_A53_835769_DEFAULT.
2589         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2590         value to 2.
2591         * doc/install.texi (aarch64*-*-*): Document new
2592         --enable-fix-cortex-a53-835769 option.
2593
2594 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2595
2596         Backport from mainline
2597         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2598                     Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2599
2600         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2601         (ADJUST_INSN_LENGTH): Define.
2602         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2603         * config/aarch64/aarch64.c (is_mem_p): New function.
2604         (is_memory_op): Likewise.
2605         (aarch64_prev_real_insn): Likewise.
2606         (is_madd_op): Likewise.
2607         (dep_between_memop_and_curr): Likewise.
2608         (aarch64_madd_needs_nop): Likewise.
2609         (aarch64_final_prescan_insn): Likewise.
2610         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2611         and -mno-fix-cortex-a53-835769 options.
2612
2613 2014-10-10  Richard Biener  <rguenther@suse.de>
2614
2615         PR tree-optimization/63380
2616         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2617         may trap.
2618
2619 2014-10-09  Richard Biener  <rguenther@suse.de>
2620
2621         PR tree-optimization/61969
2622         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2623         variables.
2624
2625 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
2626
2627         Backport from mainline
2628         2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
2629
2630         PR rtl-optimization/57003
2631         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2632         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2633         killing regs_invalidated_by_call.
2634
2635 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
2636
2637         Backport from mainline
2638         2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
2639
2640         PR target/52941
2641         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2642         atomic_fetch_<fetchop_name>si_hard,
2643         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2644         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2645         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2646         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2647
2648 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2649
2650         PR ipa/61144
2651         * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
2652
2653 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2654
2655         PR ipa/62121
2656         * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
2657         unknown.
2658
2659 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2660
2661         PR lto/62026
2662         * lto-streamer-out.c (lto_output): Handle thunks correctly.
2663         * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
2664
2665 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2666
2667         PR libgomp/61200
2668         * omp-low.c (taskreg_contexts): New variable.
2669         (scan_omp_parallel): Push newly created context into taskreg_contexts
2670         vector and move record layout code to finish_taskreg_scan.
2671         (scan_omp_task): Likewise.
2672         (finish_taskreg_scan): New function.
2673         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2674         vector elements and release it.
2675
2676 2014-10-02  Martin Jambor  <mjambor@suse.cz>
2677
2678         PR tree-optimization/63375
2679         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2680         references.
2681
2682 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
2683
2684         PR debug/63342
2685         * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
2686         SSA_NAME.
2687
2688         PR target/63428
2689         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
2690         argument to avx2_permv2ti.
2691
2692         PR c++/63306
2693         Backported from mainline
2694         2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
2695
2696         PR regression/61510
2697         * cgraphunit.c (analyze_functions): Use get_create rather than get
2698         for decls which are clones of abstract functions.
2699
2700 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
2701
2702         Backported from mainline
2703         2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
2704
2705         PR debug/63285
2706         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
2707         if advance != 0.
2708
2709         2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
2710
2711         PR tree-optimization/63186
2712         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2713         (mark_nonssa_use): Likewise.
2714         (verify_non_ssa_vars): Verify all header blocks for label
2715         definitions.
2716
2717 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2718
2719         Backport from mainline
2720         2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2721
2722         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
2723
2724 2014-10-01  Uros Bizjak  <ubizjak@gmail.com>
2725
2726         Backport from mainline
2727         2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
2728
2729         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2730         (fmod<mode>3): Ditto.
2731         (fpremxf4_i387): Ditto.
2732         (reminderxf3): Ditto.
2733         (reminder<mode>3): Ditto.
2734         (fprem1xf4_i387): Ditto.
2735
2736 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
2737
2738         PR plugins/63410
2739         * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
2740
2741 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
2742
2743         PR inline-asm/63282
2744         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
2745         or invert_jump_1 if jump isn't any_condjump_p.
2746
2747 2014-09-29  James Clarke  <jrtc27@jrtc27.com>
2748             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2749
2750         PR target/61407
2751         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
2752         and above.
2753         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
2754         kernel version check to avoid incrementing it after every major OS X
2755         release.
2756         (darwin_default_min_version): Avoid static memory buffer.
2757
2758 2014-09-29  Charles Baylis  <charles.baylis@linaro.org>
2759
2760         Backport from mainline r212303
2761         PR target/49423
2762         * config/arm/arm-protos.h (arm_legitimate_address_p,
2763         arm_is_constant_pool_ref): Add prototypes.
2764         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2765         (arm_is_constant_pool_ref) New function.
2766         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2767         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2768         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2769         operand and remove pool_range and neg_pool_range attributes.
2770         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2771         pool_range and neg_pool_range attributes.
2772         * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
2773         constant pool references.
2774
2775 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
2776
2777         PR middle-end/63247
2778         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
2779         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
2780         use the alignment of avar rather than ovar.
2781
2782 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
2783
2784         * config/pa/pa.c (pa_output_function_epilogue): Only update
2785         last_address when a nonnote insn is found.
2786
2787 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
2788
2789         Backport from mainline
2790         2014-09-25  Nick Clifton  <nickc@redhat.com>
2791         2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
2792
2793         PR target/62218
2794         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
2795         atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
2796
2797 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2798
2799         Backport from mainline r215559
2800         2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2801
2802         PR target/63335
2803         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
2804         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2805
2806 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
2807
2808         PR tree-optimization/63341
2809         * tree-vectorizer.h (vect_create_data_ref_ptr,
2810         vect_create_addr_base_for_vector_ref): Add another tree argument
2811         defaulting to NULL_TREE.
2812         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
2813         argument, pass it down to vect_create_addr_base_for_vector_ref.
2814         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
2815         add that to base_offset too if non-NULL.
2816         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
2817         for dr_explicit_realign_optimized set it to vector byte size
2818         - 1 instead of setting offset, pass byte_offset down to
2819         vect_create_data_ref_ptr.
2820
2821 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2822
2823         Backport from mainline
2824         2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2825
2826         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
2827         refine the constraints used on 32/64-bit floating point moves.
2828         (f32_av): Likewise.
2829         (f64_vsx): Likewise.
2830         (f64_dm): Likewise.
2831         (f64_av): Likewise.
2832         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
2833         (BOOL_REGS_OP1): Likewise.
2834         (BOOL_REGS_OP2): Likewise.
2835         (BOOL_REGS_UNARY): Likewise.
2836         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
2837         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
2838         for moves involving VSX registers.  Do not use constraints that
2839         target VSX registers for decimal types.
2840         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
2841         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
2842
2843 2014-09-22  Marek Polacek  <polacek@redhat.com>
2844
2845         Backport from mainline
2846         2014-05-21  Marek Polacek  <polacek@redhat.com>
2847
2848         PR sanitizer/61272
2849         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
2850
2851 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
2852
2853         PR debug/63328
2854         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
2855         insert a debug source bind stmt setting DEBUG_EXPR_DECL
2856         instead of a normal gimple assignment stmt.
2857
2858 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2859
2860         Back port from trunk:
2861         2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2862
2863         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
2864         for base_reg_operand to be common between LO_SUM and PLUS.
2865         (fusion_gpr_mem_combo): New predicate to match a fused address
2866         that combines the addis and memory offset address.
2867
2868         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
2869         calling signature.
2870         (emit_fusion_gpr_load): Likewise.
2871
2872         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
2873         signature to pass each argument separately, rather than
2874         using an operands array.  Rewrite the insns found by peephole2 to
2875         be a single insn, rather than hoping the insns will still be
2876         together when the peephole pass is done.  Drop being called via a
2877         normal peephole.
2878         (emit_fusion_gpr_load): Change calling signature to be called from
2879         the fusion_gpr_load_<mode> insns with a combined memory address
2880         instead of the peephole pass passing the addis and offset
2881         separately.
2882
2883         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
2884         fusion.
2885         (power8 fusion peephole): Drop support for doing power8 via a
2886         normal peephole that was created by the peephole2 pass.
2887         (power8 fusion peephole2): Create a new insn with the fused
2888         address, so that the fused operation is kept together after
2889         register allocation is done.
2890         (fusion_gpr_load_<mode>): Likewise.
2891
2892 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
2893
2894         PR c++/62017
2895         * asan.c (transform_statements): Don't instrument clobber statements.
2896
2897 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
2898
2899         PR debug/63284
2900         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
2901         if there are only debug stmts after the noreturn call, instead
2902         remove the debug stmts.
2903
2904 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2905
2906         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
2907         Enable selection of 'posix' or no thread model.
2908
2909 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
2910
2911         PR target/61853
2912         * config/pa/pa.c (pa_function_value): Directly handle aggregates
2913         that fit exactly in a word or double word.
2914
2915 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2916
2917         * doc/install.texi (Options specification): add
2918         --disable-libsanitizer item.
2919
2920 2014-09-12  DJ Delorie  <dj@redhat.com>
2921
2922         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
2923         (extend_and_shift1_hipsi2): Likewise.
2924         (extend_and_shift2_hipsi2): Likewise.
2925
2926 2014-09-12  Martin Jambor  <mjambor@suse.cz>
2927
2928         PR ipa/61654
2929         * cgraph.h (cgraph_analyze_function): Declare.
2930         * cgraphunit.c: (analyze_function): Remove forward declaration,
2931         rename to cgraph_analyze_function, made external.
2932         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2933         new decl properly.  Analyze the new thunk if it is expanded.
2934
2935 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2936
2937         Backport from mainline
2938         2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2939
2940         PR target/63228
2941         * config/i386/i386.c (ix86_option_override_internal): Also turn
2942         off OPTION_MASK_ABI_X32 for -m16.
2943
2944 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
2945
2946         Backport from mainline.
2947         2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
2948
2949         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2950         types.
2951         (vmull_high_lane_s32): Likewise.
2952         (vmull_high_lane_u16): Likewise.
2953         (vmull_high_lane_u32): Likewise.
2954
2955 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2956
2957         Backport r214946 from mainline
2958         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2959
2960         * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
2961
2962 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2963
2964         Backport r214953 from mainline
2965         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2966
2967         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2968         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2969
2970         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2971         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2972         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2973         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2974         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2975         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2976         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2977         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2978         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2979         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2980         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2981         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2982         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2983         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2984         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2985         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2986         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2987         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2988         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2989         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2990         with int{32,16,8}_t.
2991
2992 2014-09-11  Jason Merrill  <jason@redhat.com>
2993
2994         PR c++/58678
2995         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2996
2997 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
2998
2999         Backport from 2014-09-11 trunk r215152.
3000
3001         PR target/63223
3002         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
3003         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
3004         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
3005
3006 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3007
3008         Backport from mainline
3009         2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3010
3011         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
3012         V2DF, V4SF, DF, and DI modes.
3013         (vsx_fmav2df2): Likewise.
3014         (vsx_float_fix_<mode>2): Likewise.
3015         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
3016
3017 2014-09-10  Xinliang David Li  <davidxl@google.com>
3018
3019         Backport from mainline
3020         PR target/63209
3021         * config/arm/arm.md (movcond_addsi): Handle case where source
3022         and target operands are the same.
3023
3024 2014-09-10  Alan Modra  <amodra@gmail.com>
3025
3026         PR debug/60655
3027         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
3028         can't be output.
3029
3030 2014-09-09  Bill Schmidt  <wschmidt@us.ibm.com>
3031
3032         Backported from mainline
3033         2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3034
3035         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
3036         selection of 0th memory doubleword, regardless of endianness.
3037
3038 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
3039
3040         Backport from mainline
3041         2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
3042
3043         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
3044         (-mtune): Likewise.
3045         (-mcpu): Likewise.
3046
3047 2014-09-09  Jason Merrill  <jason@redhat.com>
3048
3049         PR c++/61214
3050         PR c++/62224
3051         * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
3052         reference to a DECL_EXTERNAL COMDAT.
3053
3054 2014-09-09  Richard Biener  <rguenther@suse.de>
3055
3056         Backport from mainline
3057         2014-08-05  Richard Biener  <rguenther@suse.de>
3058
3059         PR rtl-optimization/61672
3060         * emit-rtl.h (mem_attrs_eq_p): Declare.
3061         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
3062         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
3063         * cfgcleanup.c (merge_memattrs): Likewise.
3064         Include emit-rtl.h.
3065
3066         2014-08-11  Richard Biener  <rguenther@suse.de>
3067
3068         PR tree-optimization/62075
3069         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
3070         handle uses in patterns.
3071
3072         2014-08-14  Richard Biener  <rguenther@suse.de>
3073
3074         PR rtl-optimization/62079
3075         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
3076         run cleanup_cfg.
3077
3078         2014-08-26  Richard Biener  <rguenther@suse.de>
3079
3080         PR tree-optimization/62175
3081         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3082         expand possibly trapping operations.
3083
3084 2014-09-08  DJ Delorie  <dj@redhat.com>
3085
3086         * doc/invoke.texi (MSP430 Options): Add -minrt.
3087
3088 2014-09-05  Easwaran Raman  <eraman@google.com>
3089
3090         Backport from mainline
3091         PR rtl-optimization/62146
3092         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
3093         hoisted instruction unconditional.
3094
3095 2014-09-04  Guozhi Wei  <carrot@google.com>
3096
3097         PR target/62040
3098         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
3099         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
3100         it into two patterns.
3101         (move_lo_quad_internal_be_<mode>): Likewise.
3102
3103 2014-09-03  Martin Jambor  <mjambor@suse.cz>
3104
3105         PR ipa/62015
3106         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
3107         pass-trough jump functions correctly.
3108
3109 2014-09-03  Martin Jambor  <mjambor@suse.cz>
3110
3111         PR ipa/61986
3112         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
3113         created replacements in ascending order of offsets.
3114         (known_aggs_to_agg_replacement_list): Likewise.
3115
3116 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3117
3118         Backport from mainline
3119         2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3120
3121         PR target/62261
3122         * config/sh/sh.md (ashlsi3): Handle negative shift count for
3123         TARGET_SHMEDIA.
3124         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
3125
3126 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3127
3128         Backport from mainline
3129         2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3130
3131         PR target/62111
3132         * config/sh/predicates.md (general_extend_operand): Disable
3133         TRUNCATE before reload completes.
3134
3135 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
3136
3137         Backport from mainline
3138         2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
3139
3140         PR target/62312
3141         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
3142
3143 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3144
3145         PR target/62025
3146         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
3147         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
3148         (find_inc): Revert 2014-08-12 change.
3149
3150         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3151         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3152         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3153
3154 2014-09-01  Marek Polacek  <polacek@redhat.com>
3155
3156         Backport from mainline
3157         2014-08-21  Marek Polacek  <polacek@redhat.com>
3158
3159         PR c/61271
3160         * expr.c (is_aligning_offset): Remove logical not.
3161
3162 2014-09-01  Marek Polacek  <polacek@redhat.com>
3163
3164         Backport from mainline
3165         2014-08-19  Marek Polacek  <polacek@redhat.com>
3166
3167         PR c/61271
3168         * cgraphunit.c (handle_alias_pairs): Fix condition.
3169
3170 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
3171
3172         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3173         prefix to function labels when generating fast indirect calls.
3174
3175 2014-08-29  Yvan Roux  <yvan.roux@linaro.org>
3176
3177         Backport from mainline
3178         2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
3179
3180         PR other/62248
3181         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
3182
3183 2014-08-27  Guozhi Wei  <carrot@google.com>
3184
3185         PR target/62262
3186         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
3187         amount before using it.
3188
3189 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
3190
3191         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
3192
3193 2014-08-26  Marek Polacek  <polacek@redhat.com>
3194
3195         Backport from mainline
3196         2014-08-26  Marek Polacek  <polacek@redhat.com>
3197
3198         PR c/61271
3199         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
3200         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
3201
3202 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
3203
3204         Backport from mainline
3205         2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
3206
3207         PR target/61996
3208         * config/sh/sh.opt (musermode): Allow negative form.
3209         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
3210         targets that don't support it.
3211         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
3212         Document -mno-usermode option.
3213
3214 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
3215
3216         PR target/62038
3217         * config/pa/pa.c (pa_output_function_epilogue): Don't set
3218         last_address when the current function is a thunk.
3219         (pa_asm_output_mi_thunk): When we don't have named sections or they
3220         are not being used, check that thunk can reach the stub table with a
3221         short branch.
3222
3223 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3224
3225         Backport from mainline
3226         2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3227
3228         PR target/62195
3229         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
3230         documentation to state it is only for VSX operations.
3231
3232         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
3233         constraint only active if VSX.
3234
3235         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
3236         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
3237         (lfiwzx): Likewise.
3238
3239 2014-08-21  Uros Bizjak  <ubizjak@gmail.com>
3240
3241         Backport from mainline
3242         2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
3243
3244         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
3245         destination if it is used in source.
3246         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
3247         (*popcount<mode>2_falsedep_1): Likewise.
3248
3249         Backport from mainline
3250         2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
3251
3252         PR target/62011
3253         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
3254         New tune flag.
3255         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
3256         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
3257         (ffs<mode>2): Do not expand with tzcnt for
3258         TARGET_AVOID_FALSE_DEP_FOR_BMI.
3259         (ffssi2_no_cmove): Ditto.
3260         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
3261         (ctz<mode>2): New expander.
3262         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
3263         (*ctz<mode>2_falsedep): New insn.
3264         (*ctz<mode>2): Rename from ctz<mode>2.
3265         (clz<mode>2_lzcnt): New expander.
3266         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
3267         (*clz<mode>2_lzcnt_falsedep): New insn.
3268         (*clz<mode>2): Rename from ctz<mode>2.
3269         (popcount<mode>2): New expander.
3270         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
3271         (*popcount<mode>2_falsedep): New insn.
3272         (*popcount<mode>2): Rename from ctz<mode>2.
3273         (*popcount<mode>2_cmp): Remove.
3274         (*popcountsi2_cmp_zext): Ditto.
3275
3276 2014-08-20  Martin Jambor  <mjambor@suse.cz>
3277             Wei Mi  <wmi@google.com>
3278
3279         PR ipa/60449
3280         PR middle-end/61776
3281         * tree-ssa-operands.c (update_stmt_operands): Remove
3282         MODIFIED_NORETURN_CALLS.
3283         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
3284         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
3285         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
3286         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
3287         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
3288         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
3289         (gimple_call_set_ctrl_altering): New func.
3290         (gimple_call_ctrl_altering_p): Ditto.
3291         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
3292         (make_blocks): Use gimple_call_initialize_ctrl_altering.
3293         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
3294         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
3295         remove MODIFIED_NORETURN_CALLS.
3296
3297 2014-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3298
3299         Backport from mainline.
3300         2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3301         PR target/62098
3302         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
3303         Remove unnecessary attributes.
3304
3305 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
3306
3307         PR target/61641
3308         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
3309         Declare.
3310         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
3311         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
3312         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
3313         Define.
3314         * config/pa/pa.md (begin_brtab): Delete insn.
3315         (end_brtab): Likewise.
3316
3317 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
3318
3319         Backport from mainline:
3320         2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
3321
3322         * doc/invoke.texi (SH options): Document missing processor variant
3323         options.  Remove references to Hitachi.  Undocument deprecated mspace
3324         option.
3325
3326 2014-08-15  Tom de Vries  <tom@codesourcery.com>
3327
3328         Backport from mainline:
3329         2014-08-14  Tom de Vries  <tom@codesourcery.com>
3330
3331         PR rtl-optimization/62004
3332         PR rtl-optimization/62030
3333         * ifcvt.c (rtx_interchangeable_p): New function.
3334         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
3335
3336         2014-08-05  Richard Biener  <rguenther@suse.de>
3337
3338         * emit-rtl.h (mem_attrs_eq_p): Declare.
3339         * emit-rtl.c (mem_attrs_eq_p): Export.
3340
3341 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
3342
3343         PR middle-end/62092
3344         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
3345         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
3346         in OMP_CLAUSE_MAP in some outer target region.
3347
3348 2014-08-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3349
3350         Backport from mainline
3351         2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3352
3353         PR target/61713
3354         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
3355         move to subtarget in serial version if result is ignored.
3356
3357 2014-08-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3358
3359         Backport from mainline
3360         2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3361
3362         PR middle-end/62103
3363         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
3364         bitfields, that is when size doesn't match the size of type or the
3365         size of the constructor.
3366
3367 2014-08-12  Felix Yang  <fei.yang0953@gmail.com>
3368
3369         PR tree-optimization/62073
3370         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
3371         a basic block.
3372
3373 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
3374
3375         PR target/62025
3376         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
3377         any registers that are used in mem_insn.
3378
3379 2014-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3380
3381         Backport patch from mainline
3382         2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3383
3384         * config/rs6000/constraints.md (wh constraint): New constraint,
3385         for FP registers if direct move is available.
3386         (wi constraint): New constraint, for VSX/FP registers that can
3387         handle 64-bit integers.
3388         (wj constraint): New constraint for VSX/FP registers that can
3389         handle 64-bit integers for direct moves.
3390         (wk constraint): New constraint for VSX/FP registers that can
3391         handle 64-bit doubles for direct moves.
3392         (wy constraint): Make documentation match implementation.
3393
3394         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
3395         scalar_in_vmx_p field to simplify tests of whether SFmode or
3396         DFmode can go in the Altivec registers.
3397         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
3398         (rs6000_setup_reg_addr_masks): Likewise.
3399         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
3400         field, and wh/wi/wj/wk constraints.
3401         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
3402         the wh/wi/wj/wk constraints.
3403         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
3404         upper registers, prefer VSX registers unless the operation is a
3405         memory operation with REG+OFFSET addressing.
3406
3407         * config/rs6000/vsx.md (VSr mode attribute): Add support for
3408         DImode.  Change SFmode to use ww constraint instead of d to allow
3409         SF registers in the upper registers.
3410         (VSr2): Likewise.
3411         (VSr3): Likewise.
3412         (VSr5): Fix thinko in comment.
3413         (VSa): New mode attribute that is an alternative to wa, that
3414         returns the VSX register class that a mode can go in, but may not
3415         be the preferred register class.
3416         (VS_64dm): New mode attribute for appropriate register classes for
3417         referencing 64-bit elements of vectors for direct moves and normal
3418         moves.
3419         (VS_64reg): Likewise.
3420         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
3421         register allocator to only registers the data type can handle.
3422         (vsx_le_perm_load_<mode>): Likewise.
3423         (vsx_le_perm_store_<mode>): Likewise.
3424         (vsx_xxpermdi2_le_<mode>): Likewise.
3425         (vsx_xxpermdi4_le_<mode>): Likewise.
3426         (vsx_lxvd2x2_le_<mode>): Likewise.
3427         (vsx_lxvd2x4_le_<mode>): Likewise.
3428         (vsx_stxvd2x2_le_<mode>): Likewise.
3429         (vsx_add<mode>3): Likewise.
3430         (vsx_sub<mode>3): Likewise.
3431         (vsx_mul<mode>3): Likewise.
3432         (vsx_div<mode>3): Likewise.
3433         (vsx_tdiv<mode>3_internal): Likewise.
3434         (vsx_fre<mode>2): Likewise.
3435         (vsx_neg<mode>2): Likewise.
3436         (vsx_abs<mode>2): Likewise.
3437         (vsx_nabs<mode>2): Likewise.
3438         (vsx_smax<mode>3): Likewise.
3439         (vsx_smin<mode>3): Likewise.
3440         (vsx_sqrt<mode>2): Likewise.
3441         (vsx_rsqrte<mode>2): Likewise.
3442         (vsx_tsqrt<mode>2_internal): Likewise.
3443         (vsx_fms<mode>4): Likewise.
3444         (vsx_nfma<mode>4): Likewise.
3445         (vsx_eq<mode>): Likewise.
3446         (vsx_gt<mode>): Likewise.
3447         (vsx_ge<mode>): Likewise.
3448         (vsx_eq<mode>_p): Likewise.
3449         (vsx_gt<mode>_p): Likewise.
3450         (vsx_ge<mode>_p): Likewise.
3451         (vsx_xxsel<mode>): Likewise.
3452         (vsx_xxsel<mode>_uns): Likewise.
3453         (vsx_copysign<mode>3): Likewise.
3454         (vsx_float<VSi><mode>2): Likewise.
3455         (vsx_floatuns<VSi><mode>2): Likewise.
3456         (vsx_fix_trunc<mode><VSi>2): Likewise.
3457         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
3458         (vsx_x<VSv>r<VSs>i): Likewise.
3459         (vsx_x<VSv>r<VSs>ic): Likewise.
3460         (vsx_btrunc<mode>2): Likewise.
3461         (vsx_b2trunc<mode>2): Likewise.
3462         (vsx_floor<mode>2): Likewise.
3463         (vsx_ceil<mode>2): Likewise.
3464         (vsx_<VS_spdp_insn>): Likewise.
3465         (vsx_xscvspdp): Likewise.
3466         (vsx_xvcvspuxds): Likewise.
3467         (vsx_float_fix_<mode>2): Likewise.
3468         (vsx_set_<mode>): Likewise.
3469         (vsx_extract_<mode>_internal1): Likewise.
3470         (vsx_extract_<mode>_internal2): Likewise.
3471         (vsx_extract_<mode>_load): Likewise.
3472         (vsx_extract_<mode>_store): Likewise.
3473         (vsx_splat_<mode>): Likewise.
3474         (vsx_xxspltw_<mode>): Likewise.
3475         (vsx_xxspltw_<mode>_direct): Likewise.
3476         (vsx_xxmrghw_<mode>): Likewise.
3477         (vsx_xxmrglw_<mode>): Likewise.
3478         (vsx_xxsldwi_<mode>): Likewise.
3479         (vsx_xscvdpspn): Tighten constraints to only use register classes
3480         the types use.
3481         (vsx_xscvspdpn): Likewise.
3482         (vsx_xscvdpspn_scalar): Likewise.
3483
3484         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
3485         wj, and wk constraints.
3486         (GPR_REG_CLASS_P): New helper macro for register classes targeting
3487         general purpose registers.
3488
3489         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
3490         direct moves.
3491         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
3492         DImode instead of wm.  Use wk constraint for direct move of DFmode
3493         instead of wm.
3494         (extendsidi2_lfiwax): Likewise.
3495         (lfiwax): Likewise.
3496         (lfiwzx): Likewise.
3497         (movdi_internal64): Likewise.
3498
3499         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
3500         wk constraints. Make the wy constraint documentation match them
3501         implementation.
3502
3503 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3504
3505         Backport from mainline
3506         2014-08-04 Ganesh Gopalasubramanian
3507                    <Ganesh.Gopalasubramanian@amd.com>
3508
3509         * config/i386/i386.c (ix86_option_override_internal): Add
3510         PTA_RDRND and PTA_MOVBE for bdver4.
3511
3512 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3513
3514         Backport from mainline
3515         2014-08-04  Ganesh Gopalasubramanian
3516                     <Ganesh.Gopalasubramanian@amd.com>
3517
3518         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
3519         extended family information. Handle BTVER2 cpu with cpuid family value.
3520
3521 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3522
3523         Backport from mainline
3524         2014-06-16  Ganesh Gopalasubramanian
3525                     <Ganesh.Gopalasubramanian@amd.com>
3526
3527         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
3528         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
3529         handling 32-bit multiplication.
3530
3531 2014-08-08  Guozhi Wei  <carrot@google.com>
3532
3533         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
3534
3535 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
3536
3537         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
3538         constraint.
3539
3540 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
3541
3542         PR debug/61923
3543         * haifa-sched.c (advance_one_cycle): Fix dump.
3544         (schedule_block): Don't advance cycle if we are already at the
3545         beginning of the cycle.
3546
3547 2014-08-06  Richard Biener  <rguenther@suse.de>
3548
3549         PR tree-optimization/61320
3550         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
3551         handle misaligned loads.
3552
3553 2014-08-04  Rohit  <rohitarulraj@freescale.com>
3554
3555         PR target/60102
3556         * config/rs6000/rs6000.c
3557         (rs6000_reg_names): Add SPE high register names.
3558         (alt_reg_names): Likewise.
3559         (rs6000_dwarf_register_span): For SPE high registers, replace
3560         dwarf register numbers with GCC hard register numbers.
3561         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
3562         (rs6000_dbx_register_number): For SPE high registers, return dwarf
3563         register number for the corresponding GCC hard register number.
3564         * config/rs6000/rs6000.h
3565         (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
3566         register numbers for SPE high registers.
3567         (DWARF_FRAME_REGISTERS):  Likewise.
3568         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
3569         (DWARF_FRAME_REGNUM): Likewise.
3570         (FIXED_REGISTERS): Likewise.
3571         (CALL_USED_REGISTERS): Likewise.
3572         (CALL_REALLY_USED_REGISTERS): Likewise.
3573         (REG_ALLOC_ORDER): Likewise.
3574         (enum reg_class): Likewise.
3575         (REG_CLASS_NAMES): Likewise.
3576         (REG_CLASS_CONTENTS): Likewise.
3577         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
3578
3579 2014-08-01  Vladimir Makarov  <vmakarov@redhat.com>
3580
3581         * lra-constraints.c (remove_inheritance_pseudos): Process
3582         destination pseudo too.
3583
3584 2014-08-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3585
3586         Backport from mainline
3587         2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3588
3589         PR tree-optimization/61375
3590         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
3591         symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
3592         (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
3593
3594 2014-08-01  Richard Biener  <rguenther@suse.de>
3595
3596         PR tree-optimization/61964
3597         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
3598         by structural equality.
3599
3600 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
3601
3602         Backport from mainline
3603         2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
3604
3605         PR target/61844
3606         * config/sh/sh.c (sh_legitimate_address_p,
3607         sh_legitimize_reload_address): Handle reg+reg address modes when
3608         ALLOW_INDEXED_ADDRESS is false.
3609         * config/sh/predicates.md (general_movsrc_operand,
3610         general_movdst_operand): Likewise.
3611
3612 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
3613
3614         Backport from mainline
3615         2014-07-14  Jakub Jelinek  <jakub@redhat.com>
3616
3617         PR target/61656
3618         * config/i386/i386.c (classify_argument): Don't merge classes above
3619         number of words.
3620
3621 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
3622
3623         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
3624
3625 2014-07-24  Kyle McMartin  <kyle@redhat.com>
3626
3627         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
3628
3629 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3630
3631         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
3632         Add prototype.
3633         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
3634         function.  Issue -Wpsabi warning if future GCC releases will use
3635         different field alignment rules for this type.
3636         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
3637         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3638         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
3639
3640 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3641
3642         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
3643         -Wpsabi note when encountering a type where future GCC releases
3644         will apply different alignment requirements.
3645
3646 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3647
3648         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
3649         does not fit fully into floating-point registers, and there is still
3650         space in the register parameter area, issue -Wpsabi note that the ABI
3651         will change in a future GCC release.
3652
3653 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3654
3655         * config/arm/t-rtems-eabi: Add
3656         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
3657         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
3658         mbig-endian/mthumb/march=armv7-r, and
3659         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
3660         multilibs.
3661
3662 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3663             Chris Johns <chrisj@rtems.org>
3664             Joel Sherrill <joel.sherrill@oarcorp.com>
3665
3666         * config.gcc: Add nios2-*-rtems*.
3667         * config/nios2/rtems.h: New file.
3668         * gcc/config/nios2/t-rtems: New file.
3669
3670 2014-07-21  Peter Bergner  <bergner@vnet.ibm.com>
3671
3672         * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
3673         (LIBTSAN_EARLY_SPEC): Likewise.
3674
3675 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
3676
3677         Backport from mainline
3678         2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
3679
3680         PR target/61855
3681         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
3682         out of #ifdef __OPTIMIZE__.
3683
3684 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
3685
3686         * expr.c (store_field): Handle VOIDmode for calls that return values
3687         in multiple locations.
3688
3689 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3690
3691         * toplev.c (output_stack_usage): Adjust the location of the warning.
3692
3693 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
3694
3695         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
3696         (*membar_storeload): Disable for LEON3.
3697
3698 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3699
3700         Backport from mainline
3701         2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
3702
3703         PR target/61662
3704         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3705
3706 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3707
3708         Backport from mainline
3709         2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
3710
3711         PR target/61794
3712         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
3713         Fix instruction constraint.
3714         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3715
3716 2014-07-17  Richard Biener  <rguenther@suse.de>
3717
3718         Backport from mainline
3719         2014-07-14  Richard Biener  <rguenther@suse.de>
3720
3721         PR tree-optimization/61779
3722         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3723         simplifying a condition.
3724
3725 2014-07-17  Richard Biener  <rguenther@suse.de>
3726
3727         PR rtl-optimization/61801
3728         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
3729         don't set reg_pending_barrier if it appears in a debug-insn.
3730
3731 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
3732
3733         Backport from trunk.
3734         PR target/61737.
3735         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
3736         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3737         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
3738         functions.
3739         (cris_print_index, cris_print_operand, cris_constant_index_p)
3740         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
3741         (cris_address_cost): Ditto last CONSTANT_P.
3742         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
3743         callers changed.  Yield cris_offsettable_symbol for non-PIC
3744         constant symbolic expressions including labels.  Yield cris_unspec
3745         for all unspecs.
3746         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
3747         target to pic_offset_table_rtx for calls that will likely go
3748         through PLT, const0_rtx when they can't.  All callers changed.
3749         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
3750         symbolic expressions to be PICified.  Remove second, redundant,
3751         assert on can_create_pseudo_p returning non-zero.  Use
3752         replace_equiv_address_nv, not replace_equiv_address, for final
3753         operand update.
3754         * config/cris/cris.md ("movsi"): Move variable t to pattern
3755         toplevel. Adjust assert for new cris_symbol_type member.  Use
3756         CONSTANT_P instead of CONSTANT_ADDRESS_P.
3757         ("*movsi_internal") <case 9>: Make check for valid unspec operands
3758         for lapc stricter.
3759         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
3760         ("call", "call_value"): Use second incoming operand as a marker
3761         for pic-offset-table-register being used.
3762         ("*expanded_call_non_v32", "*expanded_call_v32")
3763         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
3764         second incoming operand to CALL, match cris_call_type_marker.
3765         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
3766         ("*expanded_call_side"): Ditto.  Fix typo in comment.
3767         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
3768         CONSTANT_P.
3769         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
3770         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
3771         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
3772         users changed.  Add members cris_offsettable_symbol and cris_unspec.
3773         (cris_symbol_type): Rename from cris_pic_symbol_type.
3774         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
3775         just CONSTANT_P.
3776         * config/cris/cris-protos.h (cris_symbol_type_of,
3777         cris_expand_pic_call_address): Adjust prototypes.
3778         (cris_legitimate_constant_p): New prototype.
3779
3780         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
3781         an existing tmake_file.  Don't add t-slibgcc and t-linux.
3782
3783 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
3784
3785         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3786         on the FUNCTION_DECL.
3787
3788         * BASE-VER: Set to 4.9.2.
3789         * DEV-PHASE: Set to prerelease.
3790
3791 2014-07-16  Release Manager
3792
3793         * GCC 4.9.1 released.
3794
3795 2014-07-10  Cary Coutant  <ccoutant@google.com>
3796
3797         Backport from trunk at r212211.
3798
3799         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3800         lookup.
3801         (resolve_addr_in_expr): When replacing the rtx in a location list
3802         entry, get a new address table entry.
3803         (dwarf2out_finish): Call index_location_lists even if there are no
3804         addr_index_table entries yet.
3805
3806 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
3807
3808         * doc/install.texi: Remove links to defunct package providers for
3809         Solaris.
3810
3811 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
3812
3813         PR middle-end/53590
3814         * function.c (allocate_struct_function): Revert r188667 change.
3815
3816         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3817
3818 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
3819
3820         Backport r211369 from trunk.
3821         2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
3822
3823         PR target/61062
3824         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3825         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3826         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3827         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3828         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3829         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3830         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3831         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3832         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3833
3834
3835 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
3836
3837         Backport r210219 from trunk.
3838         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3839
3840         * config/arm/arm_neon.h: Update comment.
3841         * config/arm/neon-docgen.ml: Delete.
3842         * config/arm/neon-gen.ml: Delete.
3843         * doc/arm-neon-intrinsics.texi: Update comment.
3844
3845 2014-07-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3846
3847         Backport r211775 from trunk.
3848         2014-06-18  Terry Guo  <terry.guo@arm.com>
3849
3850         PR target/61544
3851         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3852         reach the head.
3853
3854 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3855
3856         PR rtl-optimization/61673
3857         * combine.c (simplify_comparison): Test just mode's sign bit
3858         in tmode rather than the sign bit and any bits above it.
3859
3860 2014-07-08  James Greenhalgh  <james.greenhalgh@arm.com>
3861
3862         Backport r212298 from trunk.
3863         2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
3864
3865         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3866         (move_lo_quad_internal_be_<mode>): Likewise.
3867         (move_lo_quad_<mode>): Convert to define_expand.
3868         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3869         (aarch64_simd_move_hi_quad_be_<mode>): New.
3870         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3871         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3872         (aarch64_combinez_be<mode>): New.
3873         (aarch64_combine<mode>): Convert to define_expand.
3874         (aarch64_combine_internal<mode>): New.
3875         (aarch64_simd_combine<mode>): Remove bogus RTL description.
3876
3877 2014-07-08  Richard Biener  <rguenther@suse.de>
3878
3879         PR tree-optimization/61680
3880         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3881         Handle properly all read-write dependences with group accesses.
3882
3883         PR tree-optimization/61681
3884         * tree-ssa-structalias.c (find_what_var_points_to): Expand
3885         NONLOCAL inside ESCAPED.
3886
3887 2014-07-08  Alan Lawrence  <alan.lawrence@arm.com>
3888
3889         Backport r211502 from mainline.
3890         2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
3891
3892         PR target/59843
3893         * config/aarch64/aarch64-modes.def: Add V1DFmode.
3894         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3895         Support V1DFmode.
3896
3897 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3898
3899         PR tree-optimization/61725
3900         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3901         range, use range_includes_zerop_p instead of integer_zerop on
3902         vr0->min, only use log2 of max if min is not negative.
3903
3904 2014-07-06  Gerald Pfeifer  <gerald@pfeifer.com>
3905
3906         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
3907
3908 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
3909
3910         PR middle-end/61654
3911         * cgraphunit.c (expand_thunk): Call free_dominance_info.
3912
3913         PR tree-optimization/61684
3914         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3915         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3916
3917 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
3918
3919         Backported from mainline
3920         2014-06-27  Jakub Jelinek  <jakub@redhat.com>
3921
3922         PR tree-optimization/57233
3923         PR tree-optimization/61299
3924         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
3925         functions.
3926         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
3927         would be lowered to scalar shifts, check if corresponding
3928         shifts and vector BIT_IOR_EXPR are supported and don't lower
3929         or lower just to narrower vector type in that case.
3930         * expmed.c (expand_shift_1): Fix up handling of vector
3931         shifts and rotates.
3932
3933         2014-06-25  Jakub Jelinek  <jakub@redhat.com>
3934
3935         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
3936         (LANG_HOOKS_DECLS): Add it.
3937         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
3938         has correct type.
3939         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
3940         * langhooks.h (struct lang_hooks_for_decls): Add
3941         omp_clause_linear_ctor hook.
3942         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
3943         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
3944         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
3945         combined simd loop use omp_clause_linear_ctor hook.
3946
3947         2014-06-24  Jakub Jelinek  <jakub@redhat.com>
3948
3949         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3950         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
3951         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3952         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
3953         (gimplify_adjust_omp_clauses): Likewise.
3954         * omp-low.c (lower_rec_simd_input_clauses,
3955         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3956         safelen the same as safelen(1).
3957         * tree-nested.c (convert_nonlocal_omp_clauses,
3958         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
3959         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3960         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3961         Fixup handling of GIMPLE_OMP_TARGET.
3962         (convert_tramp_reference_stmt, convert_gimple_call): Handle
3963         GIMPLE_OMP_TARGET.
3964
3965         2014-06-18  Jakub Jelinek  <jakub@redhat.com>
3966
3967         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3968         change in ORT_TARGET region, don't jump to do_outer.
3969         (struct gimplify_adjust_omp_clauses_data): New type.
3970         (gimplify_adjust_omp_clauses_1): Adjust for data being
3971         a struct gimplify_adjust_omp_clauses_data pointer instead
3972         of tree *.  Pass pre_p as a new argument to
3973         lang_hooks.decls.omp_finish_clause hook.
3974         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3975         splay_tree_foreach to pass both list_p and pre_p.
3976         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3977         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3978         gimplify_adjust_omp_clauses callers.
3979         * langhooks.c (lhd_omp_finish_clause): New function.
3980         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3981         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3982         * langhooks.h (struct lang_hooks_for_decls): Add a new
3983         gimple_seq * argument to omp_finish_clause hook.
3984         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3985         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3986         (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
3987         add it to outer ctx's decl_map as identity.
3988         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3989         * tree-nested.c (convert_nonlocal_omp_clauses,
3990         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3991         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3992
3993         2014-06-10  Jakub Jelinek  <jakub@redhat.com>
3994
3995         PR fortran/60928
3996         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3997         Set lastprivate_firstprivate even if omp_private_outer_ref
3998         langhook returns true.
3999         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
4000         langhook, call unshare_expr on new_var and call
4001         build_outer_var_ref to get the last argument.
4002
4003         2014-05-11  Jakub Jelinek  <jakub@redhat.com>
4004
4005         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
4006         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
4007         number of operands to 3.
4008         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
4009         * tree-nested.c (convert_nonlocal_omp_clauses,
4010         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
4011         * gimplify.c (gimplify_scan_omp_clauses): Handle
4012         OMP_CLAUSE_LINEAR_STMT.
4013         * omp-low.c (lower_rec_input_clauses): Fix typo.
4014         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
4015         cast between Fortran boolean_type_node and C _Bool if needed.
4016
4017 2014-06-30  Jason Merrill  <jason@redhat.com>
4018
4019         PR c++/51253
4020         PR c++/61382
4021         * gimplify.c (gimplify_arg): Non-static.
4022         * gimplify.h: Declare it.
4023
4024 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4025
4026         Backport from Mainline
4027         2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4028
4029         PR target/61633
4030         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
4031         Add alternative; make early clobber.  Adjust both split patterns
4032         to use operand 0 as the working register.
4033
4034 2014-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4035
4036         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
4037         Update comments.
4038         (VCONQ): Make comment more helpful.
4039         (VCON): Delete.
4040         * config/aarch64/aarch64-simd.md
4041         (aarch64_sqdmulh_lane<mode>):
4042         Use VCOND for operands 2.  Update lane checking and flipping logic.
4043         (aarch64_sqrdmulh_lane<mode>): Likewise.
4044         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
4045         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
4046         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
4047         attribute of operand 3 to VCOND.
4048         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
4049         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4050         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
4051         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
4052         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4053         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
4054         define_insn.
4055         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
4056         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
4057         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
4058         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
4059         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
4060         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
4061         operand to VCOND.  Update lane flipping and bounds checking logic.
4062         (aarch64_sqdmlal2_lane<mode>): Likewise.
4063         (aarch64_sqdmlsl_lane<mode>): Likewise.
4064         (aarch64_sqdmull_lane<mode>): Likewise.
4065         (aarch64_sqdmull2_lane<mode>): Likewise.
4066         (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
4067         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
4068         (aarch64_sqdmlal2_laneq<mode>): Emit
4069         aarch64_sqdmlal2_laneq<mode>_internal insn.
4070         Replace VCON with VCONQ.
4071         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
4072         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4073         (aarch64_sqdmull_laneq<mode>): Emit
4074         aarch64_sqdmull_laneq<mode>_internal insn.
4075         Replace VCON with VCONQ.
4076         (aarch64_sqdmull2_laneq<mode>): Emit
4077         aarch64_sqdmull2_laneq<mode>_internal insn.
4078         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
4079         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
4080         of 3rd argument to int16x4_t.
4081         (vqdmlalh_lane_s16): Likewise.
4082         (vqdmlslh_lane_s16): Likewise.
4083         (vqdmull_high_lane_s16): Likewise.
4084         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
4085         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
4086         (vqdmlsl_lane_s16): Likewise.
4087         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
4088         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
4089         (vqdmlals_lane_s32): Likewise.
4090         (vqdmlsls_lane_s32): Likewise.
4091         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
4092         (vqdmulls_lane_s32): Likewise.
4093         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
4094         (vqdmlsl_lane_s32): Likewise.
4095         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
4096         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
4097         (vqrdmulhh_lane_s16): Likewise.
4098         (vqdmlsl_high_lane_s16): Likewise.
4099         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
4100         (vqdmlsl_high_lane_s32): Likewise.
4101         (vqrdmulhs_lane_s32): Likewise.
4102
4103 2014-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4104
4105         Backport from Mainline
4106         2014-06-20  Jakub Jelinek  <jakub@redhat.com>
4107         2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4108
4109         PR tree-optimization/61306
4110         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
4111         expression instead of its size.
4112         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
4113         false to prevent optimization when the result is unpredictable due to
4114         arithmetic right shift of signed type with highest byte is set.
4115         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
4116         (find_bswap_1): Likewise. Return NULL to prevent optimization when the
4117         result is unpredictable due to sign extension.
4118         (find_bswap): Adapt to change in struct symbolic_number.
4119
4120 2014-06-27  Martin Jambor  <mjambor@suse.cz>
4121
4122         PR ipa/61160
4123         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
4124         args_to_skip, use those from node instead.  Copy args_to_skip and
4125         combined_args_to_skip from node to the new thunk.
4126         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
4127         (cgraph_create_virtual_clone): Moved computation of
4128         combined_args_to_skip...
4129         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
4130
4131 2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
4132
4133         Backport from mainline
4134         2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
4135
4136         PR target/61586
4137         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
4138
4139 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4140
4141         PR target/61542
4142         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
4143         extraction other than index 3.
4144
4145 2014-06-26  Marc Glisse  <marc.glisse@inria.fr>
4146
4147         PR target/61503
4148         * config/i386/i386.md (x86_64_shrd, x86_shrd,
4149         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
4150
4151 2014-06-26  Martin Jambor  <mjambor@suse.cz>
4152
4153         Backport from mainline
4154         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
4155         renamed to ipa_impossible_devirt_target.  Fix typo.
4156         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
4157         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
4158         ipa_impossible_devirt_target.
4159
4160 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
4161
4162         PR target/61570
4163         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
4164         model family 6 CPU with has_longmode never use a CPU without
4165         64-bit support.
4166
4167         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
4168         not mentioned in clauses use private clause if the iterator is
4169         declared in #pragma omp for simd, and when adding lastprivate
4170         instead, add it to the outer #pragma omp for too.  Diagnose
4171         if the variable is private in outer context.  For simd collapse > 1
4172         loops, replace all iterators with temporaries.
4173         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
4174         same even in collapse > 1 loops.
4175
4176 2014-06-23  Alan Modra  <amodra@gmail.com>
4177
4178         PR bootstrap/61583
4179         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
4180         to zero on debug statements.
4181
4182 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4183
4184         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
4185         New expander.
4186         (aarch64_sqrdmulh_lane<mode>): Likewise.
4187         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4188         (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
4189         (aarch64_sqdmulh_laneq<mode>): New expander.
4190         (aarch64_sqrdmulh_laneq<mode>): Likewise.
4191         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
4192         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
4193         (aarch64_sqdmulh_lane<mode>): New expander.
4194         (aarch64_sqrdmulh_lane<mode>): Likewise.
4195         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4196         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
4197         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
4198         (aarch64_sqdmlal_laneq<mode>): Likewise.
4199         (aarch64_sqdmlsl_lane<mode>): Likewise.
4200         (aarch64_sqdmlsl_laneq<mode>): Likewise.
4201         (aarch64_sqdmlal2_lane<mode>): Likewise.
4202         (aarch64_sqdmlal2_laneq<mode>): Likewise.
4203         (aarch64_sqdmlsl2_lane<mode>): Likewise.
4204         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4205         (aarch64_sqdmull_lane<mode>): Likewise.
4206         (aarch64_sqdmull_laneq<mode>): Likewise.
4207         (aarch64_sqdmull2_lane<mode>): Likewise.
4208         (aarch64_sqdmull2_laneq<mode>): Likewise.
4209
4210 2014-06-20  Martin Jambor  <mjambor@suse.cz>
4211
4212         PR ipa/61540
4213         * ipa-prop.c (impossible_devirt_target): New function.
4214         (try_make_edge_direct_virtual_call): Use it, also instead of
4215         asserting.
4216
4217 2014-06-20  Martin Jambor  <mjambor@suse.cz>
4218
4219         PR ipa/61211
4220         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
4221         expanded clones.
4222
4223 2014-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
4224
4225         Backport from mainline
4226
4227         2014-06-20  Julian Brown  <julian@codesourcery.com>
4228                     Chung-Lin Tang  <cltang@codesourcery.com>
4229
4230         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
4231         TARGET_THUMB1_ONLY. Add comments.
4232
4233 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
4234
4235         Backport from mainline
4236         2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
4237
4238         * config/i386/i386.c (decide_alg): Correctly handle
4239         maximum size of stringop algorithm.
4240
4241 2014-06-18  Richard Henderson  <rth@redhat.com>
4242
4243         PR target/61545
4244         * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
4245
4246 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
4247
4248         PR target/61483
4249         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
4250         variable 'size'; calculate 'size' right in the front; use
4251         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
4252         pcum->aapcs_stack_words.
4253
4254 2014-06-17  Nick Clifton  <nickc@redhat.com>
4255
4256         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
4257         (umulhi3, mulsidi3, umulsidi3): Likewise.
4258
4259 2014-06-17  Uros Bizjak  <ubizjak@gmail.com>
4260
4261         Backport from mainline
4262         2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
4263
4264         PR target/61423
4265         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
4266         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
4267         and corresponding splitters.  Zero extend general register
4268         or memory input operand to XMM temporary.  Enable for
4269         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
4270         (floatunssi<mode>2): Update expander predicate.
4271
4272 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
4273
4274         PR rtl-optimization/61325
4275         * lra-constraints.c (valid_address_p): Add forward declaration.
4276         (simplify_operand_subreg): Check address validity before and after
4277         alter_reg of memory subreg.
4278
4279 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
4280
4281         PR plugins/45078
4282         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
4283
4284 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
4285
4286         Backport from mainline
4287
4288         2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
4289         PR target/61415
4290         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
4291         (BU_MISC_2): Rename to ...
4292         (BU_LDBL128_2): ... this.
4293         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
4294         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
4295         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4296         RS6000_BTM_LDBL128.
4297         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
4298         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
4299         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
4300         (unpacktf_1): Likewise.
4301         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
4302         (__builtin_longdouble_dw1): Likewise.
4303         * doc/sourcebuild.texi (longdouble128): Document.
4304
4305 2014-06-13  Jeff Law  <law@redhat.com>
4306
4307         Backports from mainline:
4308         2014-06-13  Jeff Law  <law@redhat.com>
4309
4310         PR rtl-optimization/61094
4311         PR rtl-optimization/61446
4312         * ree.c (combine_reaching_defs): Get the mode for the copy from
4313         the extension insn rather than the defining insn.
4314
4315         2014-06-02  Jeff Law  <law@redhat.com>
4316
4317         PR rtl-optimization/61094
4318         * ree.c (combine_reaching_defs): Do not reextend an insn if it
4319         was marked as do_no_reextend.  If a copy is needed to eliminate
4320         an extension, then mark it as do_not_reextend.
4321
4322 2014-06-13  Martin Jambor  <mjambor@suse.cz>
4323
4324         PR ipa/61186
4325         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
4326         cache_token if returning early.
4327
4328 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
4329
4330         PR middle-end/61486
4331         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
4332         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
4333         if outer combined construct is distribute.
4334         (gimplify_omp_for): For OMP_DISTRIBUTE set
4335         gimplify_omp_ctxp->distribute.
4336         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
4337         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
4338         mapping into decl map.
4339
4340 2014-06-12  Jeff Law  <law@redhat.com>
4341
4342         Backports from mainline:
4343
4344         2014-06-12  Jeff Law  <law@redhat.com>
4345
4346         PR tree-optimization/61009
4347         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
4348         value when we stop processing a block due to problematic PHIs.
4349
4350         2014-06-05  Jeff Law  <law@redhat.com>
4351
4352         PR tree-optimization/61289
4353         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
4354         DST_MAP parameters.  Invalidate by walking all the SSA_NAME_VALUES
4355         looking for those which match LHS.  All callers changed.
4356         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
4357         parameters and code which manipulated them.  All callers changed.
4358         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
4359         and DST_MAP parameters.  Simplify invalidation code by just calling
4360         invalidate_equivalences.  All callers changed.
4361         (thread_across_edge): Simplify now that we don't need to maintain
4362         the map of equivalences to invalidate.
4363
4364 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4365
4366         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
4367
4368 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
4369
4370         Backport from 2014-05-14 trunk r210418
4371         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
4372         shifted values to avoid build warning.
4373
4374 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
4375
4376         Backport from 2014-05-09 trunk r210272
4377
4378         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
4379         unsigned int initializers for regno_in, regno_out.
4380
4381         Backport from 2014-06-12 trunk r211491
4382
4383         PR target/61443
4384         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
4385         loading from address spaces.
4386
4387 2014-06-12  Alan Modra  <amodra@gmail.com>
4388
4389         PR target/61300
4390         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
4391         * doc/tm.texi: Regenerate.
4392         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
4393         Use throughout in place of REG_PARM_STACK_SPACE.
4394         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
4395         "incoming" param.  Pass to rs6000_function_parms_need_stack.
4396         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
4397         prototype_p when incoming.  Use function decl when incoming
4398         to handle K&R style functions.
4399         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
4400         (INCOMING_REG_PARM_STACK_SPACE): Define.
4401
4402 2014-06-11  Richard Biener  <rguenther@suse.de>
4403
4404         PR tree-optimization/61452
4405         * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
4406         expr and has_constants in case we found a leader.
4407         (simplify_binary_expression): Always valueize operands first.
4408         (simplify_unary_expression): Likewise.
4409
4410 2014-06-11  Richard Biener  <rguenther@suse.de>
4411
4412         PR middle-end/61456
4413         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
4414         Do not use the main variant for the type comparison.
4415
4416 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4417
4418         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
4419         available.
4420         Simplify description of __crc32d and __crc32cd intrinsics.
4421         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
4422         availability.
4423
4424 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
4425
4426         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
4427         call statement, if any.
4428         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
4429         statements, if any.  Tidy up.
4430
4431 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4432
4433         Back port from trunk
4434         2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4435
4436         PR target/61431
4437         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
4438         iterators, VSX_D that handles 64-bit types, and VSX_LE that
4439         handles swapping the two 64-bit double words on little endian
4440         systems.  Include V1TImode and optionally TImode in VSX_LE so that
4441         these types are properly swapped.  Change all of the insns and
4442         splits that do the 64-bit swaps to use VSX_LE.
4443         (vsx_le_perm_load_<mode>): Likewise.
4444         (vsx_le_perm_store_<mode>): Likewise.
4445         (splitters for little endian memory operations): Likewise.
4446         (vsx_xxpermdi2_le_<mode>): Likewise.
4447         (vsx_lxvd2x2_le_<mode>): Likewise.
4448         (vsx_stxvd2x2_le_<mode>): Likewise.
4449
4450 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
4451
4452         PR rtl-optimization/61325
4453         * lra-constraints.c (process_address_1): Check scale equal to one
4454         to prevent transformation: base + scale * index => base + new_reg.
4455
4456 2014-06-05  Martin Jambor  <mjambor@suse.cz>
4457
4458         PR ipa/61393
4459         * ipa-cp.c (determine_versionability): Pretend that tm_clones are
4460         not versionable.
4461
4462 2014-06-04  Richard Biener  <rguenther@suse.de>
4463
4464         PR tree-optimization/61383
4465         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
4466         stmts can't trap.
4467
4468 2014-06-02  Jason Merrill  <jason@redhat.com>
4469
4470         PR c++/61020
4471         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
4472
4473 2014-06-03  Martin Jambor  <mjambor@suse.cz>
4474
4475         PR ipa/61160
4476         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
4477         thunks.
4478
4479 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
4480
4481         Backport from mainline
4482         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
4483
4484         PR rtl-optimization/60866
4485         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
4486         Default it to -1.  Pass it down to init_simplejump_data.
4487         (init_simplejump_data): New parameter old_seqno.  Pass it down
4488         to get_seqno_for_a_jump.
4489         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
4490         initializing new jump seqno as a last resort.  Add comment.
4491         (sel_redirect_edge_and_branch): Save old seqno of the conditional
4492         jump and pass it down to sel_init_new_insn.
4493         (sel_redirect_edge_and_branch_force): Likewise.
4494
4495 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
4496
4497         Backport from mainline
4498         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
4499
4500         PR rtl-optimization/60901
4501         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
4502         bb predecessor belongs to the same scheduling region.  Adjust comment.
4503
4504 2014-06-03  Uros Bizjak  <ubizjak@gmail.com>
4505
4506         Backport from mainline
4507         2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
4508
4509         PR target/61239
4510         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
4511         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
4512
4513 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
4514
4515         PR rtl-optimization/61325
4516         * lra-constraints.c (process_address): Rename to
4517         process_address_1.
4518         (process_address): New function.
4519
4520 2014-05-29  Uros Bizjak  <ubizjak@gmail.com>
4521
4522         Backport from mainline
4523         2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
4524
4525         PR target/61271
4526         * config/i386/i386.c (ix86_rtx_costs)
4527         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
4528         Fix condition.
4529
4530 2014-05-28  Eric Botcazou  <ebotcazou@adacore.com>
4531
4532         Backport from mainline
4533         2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4534
4535         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
4536         predicate to detect a negative quotient.
4537
4538 2014-05-28  Richard Biener  <rguenther@suse.de>
4539
4540         Backport from mainline
4541         2014-05-28  Richard Biener  <rguenther@suse.de>
4542
4543         PR middle-end/61045
4544         * fold-const.c (fold_comparison): When folding
4545         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
4546         the sign of the remaining constant operand stays the same.
4547
4548         2014-05-05  Richard Biener  <rguenther@suse.de>
4549
4550         PR middle-end/61010
4551         * fold-const.c (fold_binary_loc): Consistently avoid
4552         canonicalizing X & CST away from a CST that is the mask
4553         of a mode.
4554
4555         2014-04-28  Richard Biener  <rguenther@suse.de>
4556
4557         PR tree-optimization/60979
4558         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
4559         SCOPs that end in a block with a successor with abnormal
4560         predecessors.
4561
4562 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4563
4564         * configure.ac ($gcc_cv_ld_clearcap): New test.
4565         * configure: Regenerate.
4566         * config.in: Regenerate.
4567         * config/sol2.opt (mclear-hwcap): New option.
4568         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
4569         * config/sol2-clearcap.map: Moved here from
4570         testsuite/gcc.target/i386/clearcap.map.
4571         * config/sol2-clearcapv2.map: Move here from
4572         gcc.target/i386/clearcapv2.map.
4573         * config/t-sol2 (install): Depend on install-clearcap-map.
4574         (install-clearcap-map): New target.
4575         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
4576         -mclear-hwcap.
4577
4578 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
4579
4580         PR libgcc/61152
4581         * config/dbx.h (License): Add Runtime Library Exception.
4582         * config/newlib-stdint.h (License): Same.
4583         * config/rtems.h (License): Same
4584         * config/initfini-array.h (License): Same
4585         * config/v850/v850.h (License): Same.
4586         * config/v850/v850-opts.h (License): Same
4587         * config/v850/rtems.h (License): Same.
4588
4589 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
4590
4591         PR target/61044
4592         * doc/extend.texi (Local Labels): Note that label differences are
4593         not supported for AVR.
4594
4595 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
4596
4597         Backport from 2014-05-12 mainline r210322.
4598         Backport from 2014-05-27 mainline r210959, r210969.
4599
4600         PR libgcc/61152
4601         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
4602         * config/arm/arm-cores.def (License): Same.
4603         * config/arm/arm-opts.h (License): Same.
4604         * config/arm/aout.h (License): Same.
4605         * config/arm/bpabi.h (License): Same.
4606         * config/arm/elf.h (License): Same.
4607         * config/arm/linux-elf.h (License): Same.
4608         * config/arm/linux-gas.h (License): Same.
4609         * config/arm/netbsd-elf.h (License): Same.
4610         * config/arm/uclinux-eabi.h (License): Same.
4611         * config/arm/uclinux-elf.h (License): Same.
4612         * config/arm/vxworks.h (License): Same.
4613
4614 2014-05-26  Michael Tautschnig  <mt@debian.org>
4615
4616         PR target/61249
4617         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
4618         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
4619
4620 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
4621
4622         PR rtl-optimization/61215
4623         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
4624         simplify_gen_subreg until final substitution.
4625
4626 2014-05-23  Alan Modra  <amodra@gmail.com>
4627
4628         PR target/61231
4629         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
4630         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
4631         Use "Y" constraint rather than "m".
4632
4633 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
4634
4635         PR rtl-optimization/60969
4636         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
4637         constraints.  Set up mem cost for NO_REGS case.
4638
4639 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
4640
4641         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
4642
4643 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
4644
4645         PR target/61208
4646         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
4647
4648 2014-05-22  Nick Clifton  <nickc@redhat.com>
4649
4650         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
4651
4652 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
4653
4654         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
4655         all padding bits in REAL_VALUE_TYPE are cleared.
4656
4657 2014-05-21  Guozhi Wei  <carrot@google.com>
4658
4659         PR target/61202
4660         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
4661         constraint.
4662         (vqdmulhq_n_s16): Likewise.
4663
4664 2014-05-21  Martin Jambor  <mjambor@suse.cz>
4665
4666         * doc/invoke.texi (Optimize Options): Document parameters
4667         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
4668         ipa-cp-array-index-hint-bonus.
4669
4670 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
4671
4672         PR middle-end/61252
4673         * omp-low.c (handle_simd_reference): New function.
4674         (lower_rec_input_clauses): Use it.  Defer adding reference
4675         initialization even for reduction without placeholder if in simd,
4676         handle it properly later on.
4677
4678 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
4679
4680         PR bootstrap/60984
4681         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
4682         parameter.
4683         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
4684         (ipa_inline): Loop inline_to_all_callers until no more aliases
4685         are removed.
4686
4687 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
4688
4689         PR lto/60820
4690         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4691
4692 2014-05-20  DJ Delorie  <dj@redhat.com>
4693
4694         * config/msp430/msp430.md (split): Don't allow subregs when
4695         splitting SImode adds.
4696         (andneghi): Fix subtraction logic.
4697         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4698
4699 2014-05-20  Nick Clifton  <nickc@redhat.com>
4700
4701         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4702         (msp430_gimplify_va_arg_expr): New function.
4703         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4704
4705         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4706         operand 0 in order to prevent confusion about the number of
4707         registers involved.
4708
4709 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4710
4711         * config/arm/arm.md (arith_shiftsi): Do not predicate for
4712         arm_restrict_it.
4713
4714 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
4715
4716         * arm.c (thumb1_reorg): When scanning backwards skip anything
4717         that's not a proper insn.
4718
4719 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4720
4721         * ipa.c (symtab_remove_unreachable_nodes): Remove
4722         symbol from comdat group if its body was eliminated.
4723         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4724         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4725         (symtab_unregister_node): ... this one.
4726         (verify_symtab_base): More strict checking of comdats.
4727         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4728
4729 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4730
4731         * opts.c (common_handle_option): Disable -fipa-reference coorectly
4732         with -fuse-profile.
4733
4734 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
4735
4736         PR ipa/60854
4737         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4738         external aliases alive, too.
4739
4740 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
4741
4742         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
4743
4744 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
4745
4746         Backport from mainline
4747         2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4748
4749         PR target/60969
4750         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
4751         alternative 12.
4752
4753 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
4754
4755         PR rtl-optimization/60969
4756         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4757         Calculate costs for this case.
4758
4759 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
4760
4761         PR target/61193
4762         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4763         (__TM_simple_begin): Use it.
4764         (__TM_begin): Likewise.
4765
4766 2014-05-15  Martin Jambor  <mjambor@suse.cz>
4767
4768         PR ipa/61085
4769         * ipa-prop.c (update_indirect_edges_after_inlining): Check
4770         type_preserved flag when the indirect edge is polymorphic.
4771
4772 2014-05-15  Martin Jambor  <mjambor@suse.cz>
4773
4774         PR ipa/60897
4775         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4776
4777 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
4778
4779         PR tree-optimization/61158
4780         * fold-const.c (fold_binary_loc): If X is zero-extended and
4781         shiftc >= prec, make sure zerobits is all ones instead of
4782         invoking undefined behavior.
4783
4784 2014-05-14  Cary Coutant  <ccoutant@google.com>
4785
4786         PR debug/61013
4787         * opts.c (common_handle_option): Don't special-case "-g".
4788         (set_debug_level): Default to at least level 2 with "-g".
4789
4790 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
4791
4792         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4793         Delete.
4794         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4795         * config/sparc/sparc.md (fptype_ut699): New attribute.
4796         (in_branch_delay): Return false if -mfix-ut699 is specified and
4797         fptype_ut699 is set to single.
4798         (truncdfsf2): Add fptype_ut699 attribute.
4799         (fix_truncdfsi2): Likewise.
4800         (floatsisf2): Change fptype attribute.
4801         (fix_truncsfsi2): Likewise.
4802         (negtf2_notv9): Delete.
4803         (negtf2_v9): Likewise.
4804         (negtf2_hq): New instruction.
4805         (negtf2): New instruction and splitter.
4806         (negdf2_notv9): Rewrite.
4807         (abstf2_notv9): Delete.
4808         (abstf2_hq_v9): Likewise.
4809         (abstf2_v9): Likewise.
4810         (abstf2_hq): New instruction.
4811         (abstf2): New instruction and splitter.
4812         (absdf2_notv9): Rewrite.
4813
4814 2014-05-14  Matthias Klose  <doko@ubuntu.com>
4815
4816         Revert:
4817         2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4818                     Matthias Klose  <doko@ubuntu.com>
4819
4820         PR driver/61106
4821         * optc-gen.awk: Fix option handling for -Wunused-parameter.
4822
4823 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
4824
4825         * doc/sourcebuild.texi: (dfp_hw): Document.
4826         (p8vector_hw): Likewise.
4827         (powerpc_eabi_ok): Likewise.
4828         (powerpc_elfv2): Likewise.
4829         (powerpc_htm_ok): Likewise.
4830         (ppc_recip_hw): Likewise.
4831         (vsx_hw): Likewise.
4832
4833 2014-05-13  Jeff Law  <law@redhat.com>
4834
4835         Backports fromm mainline:
4836
4837         2014-05-08  Jeff Law  <law@redhat.com>
4838
4839         PR tree-optimization/61009
4840         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4841         tri-state rather than a boolean.  When a block is too big to
4842         thread through, inform caller via negative return value.
4843         (thread_across_edge): If a block was too big for normal threading,
4844         then it's too big for a joiner too, so remove temporary equivalences
4845         and return immediately.
4846
4847         2014-04-28  Jeff Law  <law@redhat.com>
4848
4849         PR tree-optimization/60902
4850         * tree-ssa-threadedge.c
4851         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4852         over real defs when invalidating outputs from statements that do not
4853         produce useful outputs for threading.
4854
4855         2014-04-23  Jeff Law  <law@redhat.com>
4856
4857         PR tree-optimization/60902
4858         * tree-ssa-threadedge.c
4859         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
4860         invalidate outputs from statements that do not produce useful
4861         outputs for threading.
4862
4863 2014-05-13  Richard Biener  <rguenther@suse.de>
4864
4865         PR ipa/60973
4866         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4867         it needs revisiting whether the call still may be tail-called.
4868
4869 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
4870
4871         PR target/61060
4872         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4873         is const0_rtx, return immediately.  Don't test count == 0 when
4874         it is always true.
4875
4876 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4877
4878         Backport from mainline
4879         2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4880
4881         PR target/60991
4882         * config/avr/avr.c (avr_out_store_psi): Use correct constant
4883         to restore Y.
4884
4885 2014-05-09  Uros Bizjak  <ubizjak@gmail.com>
4886
4887         Backport from mainline
4888         2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
4889
4890         PR target/61092
4891         * config/alpha/alpha.c: Include gimple-iterator.h.
4892         (alpha_gimple_fold_builtin): New function.  Move
4893         ALPHA_BUILTIN_UMULH folding from ...
4894         (alpha_fold_builtin): ... here.
4895         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4896
4897 2014-05-09  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4898
4899         Backport from 2014-04-16 trunk r209446
4900         2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4901
4902         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4903
4904 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
4905
4906         Backport from 2014-05-09 trunk r210267
4907
4908         PR target/61055
4909         * config/avr/avr.md (cc): Add new attribute set_vzn.
4910         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4911         Set cc insn attribute to set_vzn instead of set_zn for alternatives
4912         with INC, DEC or NEG.
4913         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4914         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4915         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4916
4917 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4918             Matthias Klose  <doko@ubuntu.com>
4919
4920         PR driver/61106
4921         * optc-gen.awk: Fix option handling for -Wunused-parameter.
4922
4923 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
4924
4925         PR target/59952
4926         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4927
4928 2014-05-05  Marek Polacek  <polacek@redhat.com>
4929
4930         Back port from mainline
4931         2014-05-05  Marek Polacek  <polacek@redhat.com>
4932
4933         PR driver/61065
4934         * opts.c (common_handle_option): Call error_at instead of warning_at.
4935
4936 2014-05-04  Jan Hubicka  <hubicka@ucw.cz>
4937
4938         PR ipa/60965
4939         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4940
4941 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
4942
4943         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4944         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4945         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4946         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4947         Use RS6000_BTM_HARD_FLOAT.
4948         (BU_MISC_2): Likewise.
4949         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4950         RS6000_BTM_HARD_FLOAT.
4951         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4952         is explicitly used.
4953         (rs6000_invalid_builtin): Add hard floating builtin support.
4954         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4955         hard float builtins.
4956         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4957
4958 2014-05-03  Joey Ye  <joey.ye@arm.com>
4959
4960         Backport from mainline r209463
4961         2014-04-17  Joey Ye  <joey.ye@arm.com>
4962
4963         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4964
4965 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4966
4967         Back port from mainline
4968         PR target/61026
4969         * config/sh/sh.c: Include stdlib headers before everything else.
4970
4971 2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4972
4973         PR tree-optimization/60930
4974         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
4975         creating a multiply candidate by folding two constant
4976         multiplicands when the result overflows.
4977
4978 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
4979
4980         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4981         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4982         (gimplify_adjust_omp_clauses): Simd region is never
4983         directly nested in combined parallel.  Instead, for linear
4984         with copyin/copyout, if in combined for simd loop, make decl
4985         firstprivate/lastprivate on OMP_FOR.
4986         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4987         expand_omp_for_static_chunk): When setting endvar, also set
4988         fd->loop.v to the same value.
4989
4990 2014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4991
4992         Back port from mainline
4993         2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4994
4995         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
4996         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
4997         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
4998         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
4999         (TARGET_CRYPTO): Take TARGET_SIMD into account.
5000
5001 2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
5002
5003         Back port from mainline
5004         2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
5005
5006         * doc/extend.texi (PowerPC Built-in Functions): Document new
5007         powerpc extended divide, bcd, pack/unpack 128-bit, builtin
5008         functions.
5009         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
5010
5011         * config/rs6000/predicates.md (const_0_to_3_operand): New
5012         predicate to match 0..3 integer constants.
5013
5014         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
5015         to support adding miscellaneous builtin functions.
5016         (BU_DFP_MISC_2): Likewise.
5017         (BU_P7_MISC_1): Likewise.
5018         (BU_P7_MISC_2): Likewise.
5019         (BU_P8V_MISC_3): Likewise.
5020         (BU_MISC_1): Likewise.
5021         (BU_MISC_2): Likewise.
5022         (DIVWE): Add extended divide builtin functions.
5023         (DIVWEO): Likewise.
5024         (DIVWEU): Likewise.
5025         (DIVWEUO): Likewise.
5026         (DIVDE): Likewise.
5027         (DIVDEO): Likewise.
5028         (DIVDEU): Likewise.
5029         (DIVDEUO): Likewise.
5030         (DXEX): Add decimal floating-point builtin functions.
5031         (DXEXQ): Likewise.
5032         (DDEDPD): Likewise.
5033         (DDEDPDQ): Likewise.
5034         (DENBCD): Likewise.
5035         (DENBCDQ): Likewise.
5036         (DIEX): Likewise.
5037         (DIEXQ): Likewise.
5038         (DSCLI): Likewise.
5039         (DSCLIQ): Likewise.
5040         (DSCRI): Likewise.
5041         (DSCRIQ): Likewise.
5042         (CDTBCD): Add new BCD builtin functions.
5043         (CBCDTD): Likewise.
5044         (ADDG6S): Likewise.
5045         (BCDADD): Likewise.
5046         (BCDADD_LT): Likewise.
5047         (BCDADD_EQ): Likewise.
5048         (BCDADD_GT): Likewise.
5049         (BCDADD_OV): Likewise.
5050         (BCDSUB): Likewise.
5051         (BCDSUB_LT): Likewise.
5052         (BCDSUB_EQ): Likewise.
5053         (BCDSUB_GT): Likewise.
5054         (BCDSUB_OV): Likewise.
5055         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
5056         (UNPACK_TD): Likewise.
5057         (PACK_TF): Likewise.
5058         (UNPACK_TF): Likewise.
5059         (UNPACK_TF_0): Likewise.
5060         (UNPACK_TF_1): Likewise.
5061         (PACK_V1TI): Likewise.
5062         (UNPACK_V1TI): Likewise.
5063
5064         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5065         support for decimal floating point builtin functions.
5066         (rs6000_expand_ternop_builtin): Add checks for the new builtin
5067         functions that take constant arguments.
5068         (rs6000_invalid_builtin): Add decimal floating point builtin
5069         support.
5070         (rs6000_init_builtins): Setup long double, _Decimal64, and
5071         _Decimal128 types for new builtin functions.
5072         (builtin_function_type): Set the unsigned flags appropriately for
5073         the new builtin functions.
5074         (rs6000_opt_masks): Add support for decimal floating point builtin
5075         functions.
5076
5077         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
5078         floating point builtin functions.
5079         (RS6000_BTM_COMMON): Likewise.
5080         (RS6000_BTI_long_double): Likewise.
5081         (RS6000_BTI_dfloat64): Likewise.
5082         (RS6000_BTI_dfloat128): Likewise.
5083         (long_double_type_internal_node): Likewise.
5084         (dfloat64_type_internal_node): Likewise.
5085         (dfloat128_type_internal_node): Likewise.
5086
5087         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
5088         2.07 bcd arithmetic instructions.
5089         (UNSPEC_BCDSUB): Likewise.
5090         (UNSPEC_BCD_OVERFLOW): Likewise.
5091         (UNSPEC_BCD_ADD_SUB): Likewise.
5092         (bcd_add_sub): Likewise.
5093         (BCD_TEST): Likewise.
5094         (bcd<bcd_add_sub>): Likewise.
5095         (bcd<bcd_add_sub>_test): Likewise.
5096         (bcd<bcd_add_sub>_test2): Likewise.
5097         (bcd<bcd_add_sub>_<code>): Likewise.
5098         (peephole2 for combined bcd ops): Likewise.
5099
5100         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
5101         decimal floating point builtin functions.
5102         (UNSPEC_DENBCD): Likewise.
5103         (UNSPEC_DXEX): Likewise.
5104         (UNSPEC_DIEX): Likewise.
5105         (UNSPEC_DSCLI): Likewise.
5106         (UNSPEC_DSCRI): Likewise.
5107         (D64_D128): Likewise.
5108         (dfp_suffix): Likewise.
5109         (dfp_ddedpd_<mode>): Likewise.
5110         (dfp_denbcd_<mode>): Likewise.
5111         (dfp_dxex_<mode>): Likewise.
5112         (dfp_diex_<mode>): Likewise.
5113         (dfp_dscli_<mode>): Likewise.
5114         (dfp_dscri_<mode>): Likewise.
5115
5116         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
5117         builtin functions.
5118         (UNSPEC_CDTBCD): Likewise.
5119         (UNSPEC_CBCDTD): Likewise.
5120         (UNSPEC_DIVE): Add support for new extended divide builtin
5121         functions.
5122         (UNSPEC_DIVEO): Likewise.
5123         (UNSPEC_DIVEU): Likewise.
5124         (UNSPEC_DIVEUO): Likewise.
5125         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
5126         pack/unpack 128-bit types.
5127         (UNSPEC_PACK_128BIT): Likewise.
5128         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
5129         (udiv<mode>3): Use idiv_ldiv mode attribute.
5130         (div<mode>3): Likewise.
5131         (addg6s): Add new BCD builtin functions.
5132         (cdtbcd): Likewise.
5133         (cbcdtd): Likewise.
5134         (UNSPEC_DIV_EXTEND): Add support for new extended divide
5135         instructions.
5136         (div_extend): Likewise.
5137         (div<div_extend>_<mode>"): Likewise.
5138         (FP128_64): Add support for new builtin functions to pack/unpack
5139         128-bit types.
5140         (unpack<mode>): Likewise.
5141         (unpacktf_0): Likewise.
5142         (unpacktf_1): Likewise.
5143         (unpack<mode>_dm): Likewise.
5144         (unpack<mode>_nodm): Likewise.
5145         (pack<mode>): Likewise.
5146         (unpackv1ti): Likewise.
5147         (packv1ti): Likewise.
5148
5149 2014-04-29  Pat Haugen  <pthaugen@us.ibm.com>
5150
5151         Backport from mainline
5152         2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
5153
5154         * config/rs6000/rs6000.md (addti3, subti3): New.
5155
5156 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
5157
5158         PR tree-optimization/60971
5159         * tree-tailcall.c (process_assignment): Reject conversions which
5160         reduce precision.
5161
5162 2014-04-29  Nick Clifton  <nickc@redhat.com>
5163
5164         * config/msp430/msp430.md (umulsidi): Fix typo.
5165         (mulhisi3): Enable even inside interrupt handlers.
5166         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
5167         bigger return address pushed in large mode.
5168
5169 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
5170
5171         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5172         (loadsync_<mode>): Change mode.
5173         (load_quadpti, store_quadpti): New.
5174         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5175         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5176
5177 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5178
5179         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
5180         * configure: Regenerate.
5181         * config/sparc/sparc.opt (muser-mode): New option.
5182         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
5183         for LEON3.
5184         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
5185         * doc/invoke.texi (SPARC options): Document -muser-mode.
5186
5187 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
5188
5189         * doc/install.texi (Building with profile feedback): Remove
5190         outdated sentence.
5191
5192 2014-04-26  Tom de Vries  <tom@codesourcery.com>
5193
5194         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
5195         array accesses.
5196
5197 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR tree-optimization/60960
5200         * tree-vect-generic.c (expand_vector_operation): Only call
5201         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
5202
5203 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
5204
5205         PR target/60941
5206         * config/sparc/sparc.md (ashlsi3_extend): Delete.
5207
5208 2014-04-25  Richard Biener  <rguenther@suse.de>
5209
5210         PR ipa/60912
5211         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
5212         call stmt use/clobber sets during stmt walk instead of
5213         walking the possibly incomplete set of caller edges.
5214
5215 2014-04-25  Richard Biener  <rguenther@suse.de>
5216
5217         PR ipa/60911
5218         * passes.c (apply_ipa_transforms): Inline into only caller ...
5219         (execute_one_pass): ... here.  Properly bring in function
5220         bodies for nodes we want to apply IPA transforms to.
5221
5222 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
5223
5224         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
5225         * gimplify.c (omp_is_private): Change last argument's type to int.
5226         Only diagnose lastprivate if the simd argument is 1, only diagnose
5227         linear if the simd argument is 2.
5228         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
5229         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
5230         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
5231         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
5232         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
5233         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5234         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
5235         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5236         * tree-nested.c (convert_nonlocal_omp_clauses,
5237         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
5238
5239 2014-04-23  Uros Bizjak  <ubizjak@gmail.com>
5240
5241         Backport from mainline
5242         2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
5243
5244         PR target/60909
5245         * config/i386/i386.c (ix86_expand_builtin)
5246         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
5247         register for target RTX.
5248         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
5249
5250 2014-04-23  Richard Biener  <rguenther@suse.de>
5251
5252         PR tree-optimization/60903
5253         * tree-ssa-loop-im.c (analyze_memory_references): Remove
5254         commented code block.
5255         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
5256         loop flags to newly created BBs and edges.
5257
5258 2014-04-23  Nick Clifton  <nickc@redhat.com>
5259
5260         * config/msp430/msp430.c (msp430_handle_option): Move function
5261         to msp430-common.c
5262         (msp430_option_override): Simplify mcu and mcpu option handling.
5263         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
5264         support for -mhwmult command line option.
5265         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
5266         -mhwmult command line option.
5267         (msp430_hwmult_enabled): Delete.
5268         (msp43o_output_labelref): Add support for -mhwmult command line
5269         option.
5270         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
5271         (umulsidi3): Likewise.
5272         * config/msp430/msp430.opt (mmcu): Add Report attribute.
5273         (mcpu, mlarge, msmall): Likewise.
5274         (mhwmult): New option.
5275         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
5276         prototype.
5277         (msp430_is_f5_mcu): Remove prototype.
5278         (msp430_use_f5_series_hwmult): Add prototype.
5279         * config/msp430/msp430-opts.h: New file.
5280         * common/config/msp430: New directory.
5281         * common/config/msp430/msp430-common.c: New file.
5282         * config.gcc (msp430): Remove target_has_targetm_common.
5283         * doc/invoke.texi: Document -mhwmult command line option.
5284
5285 2014-04-23  Nick Clifton  <nickc@redhat.com>
5286
5287         * config/i386/cygwin.h (ENDFILE_SPEC): Include
5288         default-manifest.o if it can be found in the search path.
5289         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
5290
5291 2014-04-23  Richard Biener  <rguenther@suse.de>
5292
5293         Backport from mainline
5294         2014-04-14  Richard Biener  <rguenther@suse.de>
5295
5296         PR lto/60720
5297         * lto-streamer-out.c (wrap_refs): New function.
5298         (lto_output): Wrap symbol references in global initializes in
5299         type-preserving MEM_REFs.
5300
5301 2014-04-23  Richard Biener  <rguenther@suse.de>
5302
5303         PR middle-end/60895
5304         * tree-inline.c (declare_return_variable): Use mark_addressable.
5305
5306 2014-04-23  Richard Biener  <rguenther@suse.de>
5307
5308         PR middle-end/60891
5309         * loop-init.c (loop_optimizer_init): Make sure to apply
5310         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
5311
5312 2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
5313
5314         Backport from mainline
5315         2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5316
5317         PR target/60735
5318         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
5319         If mode is DDmode and TARGET_E500_DOUBLE allow move.
5320
5321         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
5322         more debug information for E500 if -mdebug=reg.
5323
5324 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
5325
5326         Backport from mainline
5327         2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
5328
5329         PR target/60868
5330         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
5331         on count_exp to get mode.
5332
5333 2014-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5334
5335         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
5336         little-endian.
5337         (vsx_xxmrglw_<mode>): Likewise.
5338
5339 2014-04-22  Richard Biener  <rguenther@suse.de>
5340
5341         Backport from mainline
5342         2014-04-14  Richard Biener  <rguenther@suse.de>
5343
5344         PR middle-end/55022
5345         * fold-const.c (negate_expr_p): Don't negate directional rounding
5346         division.
5347         (fold_negate_expr): Likewise.
5348
5349 2014-04-22  Richard Biener  <rguenther@suse.de>
5350
5351         Backport from mainline
5352         2014-04-17  Richard Biener  <rguenther@suse.de>
5353
5354         PR middle-end/60849
5355         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
5356         boolean results for comparisons.
5357
5358 2014-04-22  Richard Biener  <rguenther@suse.de>
5359
5360         Backport from mainline
5361         2014-04-17  Richard Biener  <rguenther@suse.de>
5362
5363         PR tree-optimization/60841
5364         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
5365         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
5366         of stmts to SLP build.
5367         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
5368         (vect_analyze_slp): Likewise.
5369         (vect_analyze_slp_instance): Likewise.
5370         (vect_build_slp_tree): Limit overall SLP tree growth.
5371         * tree-vectorizer.h (vect_analyze_data_refs,
5372         vect_analyze_slp): Adjust prototypes.
5373
5374 2014-04-22  Richard Biener  <rguenther@suse.de>
5375
5376         Backport from mainline
5377         2014-04-17  Richard Biener  <rguenther@suse.de>
5378
5379         PR tree-optimization/60836
5380         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
5381         initial PHI args to be gimple values.
5382
5383 2014-04-22  Richard Biener  <rguenther@suse.de>
5384
5385         Backport from mainline
5386         2014-04-14  Richard Biener  <rguenther@suse.de>
5387
5388         PR tree-optimization/59817
5389         PR tree-optimization/60453
5390         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
5391         recursion to catch all CHRECs in the scalar evolution and restrict
5392         the predicate for the remains appropriately.
5393
5394 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
5395
5396         PR tree-optimization/60823
5397         * omp-low.c (ipa_simd_modify_function_body): Go through
5398         all SSA_NAMEs and for those refering to vector arguments
5399         which are going to be replaced adjust SSA_NAME_VAR and,
5400         if it is a default definition, change it into a non-default
5401         definition assigned at the beginning of function from new_decl.
5402         (ipa_simd_modify_stmt_ops): Rewritten.
5403         * tree-dfa.c (set_ssa_default_def): When removing default def,
5404         check for NULL loc instead of NULL *loc.
5405
5406 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
5407
5408         PR middle-end/60281
5409         * asan.c (asan_emit_stack_protection): Force the base to align to
5410         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
5411         appropriate bits if STRICT_ALIGNMENT.
5412         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
5413         when asan is on.
5414         (expand_used_vars): Leave a space in the stack frame for alignment
5415         if STRICT_ALIGNMENT.
5416
5417 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
5418
5419         Backported from mainline
5420         2014-04-16  Jakub Jelinek  <jakub@redhat.com>
5421
5422         PR tree-optimization/60844
5423         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
5424         (propagate_op_to_single_use, remove_visited_stmt_chain,
5425         linearize_expr, repropagate_negates, reassociate_bb): Use it
5426         instead of gsi_remove.
5427
5428 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
5429
5430         * BASE-VER: Set to 4.9.1.
5431         * DEV-PHASE: Set to prerelease.
5432
5433 2014-04-22  Release Manager
5434
5435         * GCC 4.9.0 released.
5436
5437 2014-04-18  Richard Henderson  <rth@redhat.com>
5438
5439         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
5440         to GET_MODE_SIZE, not a reg_class_t.
5441
5442 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
5443
5444         PR target/60847
5445         Forward port from 4.8 branch
5446         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
5447
5448         * config/i386/bmiintrin.h (_blsi_u32): New.
5449         (_blsi_u64): Ditto.
5450         (_blsr_u32): Ditto.
5451         (_blsr_u64): Ditto.
5452         (_blsmsk_u32): Ditto.
5453         (_blsmsk_u64): Ditto.
5454         (_tzcnt_u32): Ditto.
5455         (_tzcnt_u64): Ditto.
5456
5457 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5458
5459         PR target/60839
5460         Revert the following patch
5461
5462         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5463
5464         PR target/60735
5465         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5466         software floating point or no floating point registers, do not
5467         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
5468         in GPRs that occurs after we tested for GPRs that would never be
5469         true.
5470
5471         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5472         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5473         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
5474         specifically allow DDmode, since that does not use the SPE SIMD
5475         instructions.
5476
5477 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
5478
5479         PR plugins/59335
5480         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
5481         added in 4.9.
5482
5483 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
5484
5485         * doc/invoke.texi (free): Document AArch64.
5486
5487 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
5488
5489         * DEV-PHASE: Set to prerelease.
5490
5491 2014-04-11  Tobias Burnus  <burnus@net-b.de>
5492
5493         PR other/59055
5494         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
5495         * doc/gcc.texi (Service): Update description in the @menu
5496         * doc/invoke.texi (Option Summary): Remove misplaced and
5497         duplicated @menu.
5498
5499 2014-04-11  Steve Ellcey  <sellcey@mips.com>
5500             Jakub Jelinek  <jakub@redhat.com>
5501
5502         PR middle-end/60556
5503         * expr.c (convert_move): Use emit_store_flag_force instead of
5504         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
5505         argument to it.
5506
5507 2014-04-11  Richard Biener  <rguenther@suse.de>
5508
5509         PR middle-end/60797
5510         * varasm.c (assemble_alias): Avoid endless error reporting
5511         recursion by setting TREE_ASM_WRITTEN.
5512
5513 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5514
5515         * config/s390/s390.md: Add a splitter for NOT rtx.
5516
5517 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
5518
5519         PR rtl-optimization/60663
5520         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
5521
5522 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
5523             Jakub Jelinek  <jakub@redhat.com>
5524
5525         PR lto/60567
5526         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
5527         flag from decl_node to node.
5528
5529 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5530
5531         PR debug/60655
5532         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
5533         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
5534         ameliorating the cases where it can be.
5535
5536 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
5537
5538         Revert
5539         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
5540
5541         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5542         (loadsync_<mode>): Change mode.
5543         (load_quadpti, store_quadpti): New.
5544         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5545         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5546         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
5547
5548 2014-04-09  Cong Hou  <congh@google.com>
5549
5550         PR testsuite/60773
5551         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
5552         documentation.
5553
5554 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5555
5556         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
5557         instead of vnor to exploit possible fusion opportunity in the
5558         future.
5559         (altivec_expand_vec_perm_const_le): Likewise.
5560
5561 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
5562
5563         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5564         (loadsync_<mode>): Change mode.
5565         (load_quadpti, store_quadpti): New.
5566         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5567         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5568
5569 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
5570
5571         PR target/60763
5572         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
5573         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
5574         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
5575
5576 2014-04-08  Richard Biener  <rguenther@suse.de>
5577
5578         PR middle-end/60706
5579         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
5580         a 64bit widest int print double-int similar to on HWI64 hosts.
5581
5582 2014-04-08  Richard Biener  <rguenther@suse.de>
5583
5584         PR tree-optimization/60785
5585         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
5586         default defs properly.
5587
5588 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
5589
5590         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
5591         (Weffc++): Likewise.
5592
5593 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
5594
5595         * ipa-devirt.c (maybe_record_node): When node is not recorded,
5596         set completep to false rather than true.
5597
5598 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
5599
5600         PR target/60504
5601         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
5602         ARM_TARGET2_DWARF_FORMAT.
5603
5604 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
5605
5606         PR target/60609
5607         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
5608         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
5609         ADDR_DIFF_VEC.
5610
5611 2014-04-07  Richard Biener  <rguenther@suse.de>
5612
5613         PR tree-optimization/60766
5614         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
5615         (may_eliminate_iv): Convert cand_value_at result to desired type.
5616
5617 2014-04-07  Jason Merrill  <jason@redhat.com>
5618
5619         PR c++/60731
5620         * common.opt (-fno-gnu-unique): Add.
5621         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
5622
5623 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5624
5625         * haifa-sched.c: Fix outdated function reference and minor
5626         grammar errors in introductory comment.
5627
5628 2014-04-07  Richard Biener  <rguenther@suse.de>
5629
5630         PR middle-end/60750
5631         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
5632         for noreturn calls.
5633         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
5634
5635 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
5636
5637         PR debug/55794
5638         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
5639         size accounting for thunks.
5640         (pa_asm_output_mi_thunk): Use final_start_function() and
5641         final_end_function() to output function start and end directives.
5642
5643 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
5644
5645         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
5646         device specific ISA/ feature information. Remove short_sp and
5647         errata_skip ds.  Add avr_device_specific_features enum to have device
5648         specific info.
5649         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
5650         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
5651         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
5652         updated device specific info.
5653         * config/avr/avr-mcus.def: Merge device specific details to
5654         dev_attribute field.
5655         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
5656         errata_skip.
5657         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
5658         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
5659         assembler if RMW isa supported by current device.
5660         * config/avr/genmultilib.awk: Update as device info structure changed.
5661         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
5662
5663 2014-04-04  Cong Hou  <congh@google.com>
5664
5665         PR tree-optimization/60656
5666         * tree-vect-stmts.c (supportable_widening_operation):
5667         Fix a bug that elements in a vector with vect_used_by_reduction
5668         property are incorrectly reordered when the operation on it is not
5669         consistant with the one in reduction operation.
5670
5671 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
5672
5673         PR rtl-optimization/60155
5674         * gcse.c (record_set_data): New function.
5675         (single_set_gcse): New function.
5676         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
5677         (hoist_code): Likewise.
5678         (get_pressure_class_and_nregs): Likewise.
5679
5680 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
5681
5682         * explow.c (probe_stack_range): Emit a final optimization blockage.
5683
5684 2014-04-04  Anthony Green  <green@moxielogic.com>
5685
5686         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
5687         typos.
5688
5689 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
5690
5691         PR ipa/59626
5692         * lto-cgraph.c (input_overwrite_node): Check that partitioning
5693         flags are set only during streaming.
5694         * ipa.c (process_references, walk_polymorphic_call_targets,
5695         symtab_remove_unreachable_nodes): Drop bodies of always inline
5696         after early inlining.
5697         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5698
5699 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
5700         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5701
5702         PR debug/60655
5703         * dwarf2out.c (const_ok_for_output_1): Reject expressions
5704         containing a NOT.
5705
5706 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5707
5708         PR bootstrap/60743
5709         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5710         duration.
5711         (cortex_a53_fdivd): Likewise.
5712
5713 2014-04-04  Martin Jambor  <mjambor@suse.cz>
5714
5715         PR ipa/60640
5716         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5717         Adjust all callers.
5718         * cgraph.c (clone_of_p): Also return true if thunks match.
5719         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5720         cgraph_function_or_thunk_node and an obsolete comment.
5721         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5722         file.
5723         (build_function_decl_skip_args): Likewise.
5724         (set_new_clone_decl_and_node_flags): New function.
5725         (duplicate_thunk_for_node): Likewise.
5726         (redirect_edge_duplicating_thunks): Likewise.
5727         (cgraph_clone_node): New parameter args_to_skip, pass it to
5728         redirect_edge_duplicating_thunks which is called instead of
5729         cgraph_redirect_edge_callee.
5730         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5731         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5732
5733 2014-04-04  Jeff Law  <law@redhat.com>
5734
5735         PR target/60657
5736         * config/arm/predicates.md (const_int_I_operand): New predicate.
5737         (const_int_M_operand): Similarly.
5738         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5739         const_int_operand.
5740         (insv_t2, extv_reg, extzv_t2): Likewise.
5741         (load_multiple_with_writeback): Similarly for const_int_I_operand.
5742         (pop_multiple_with_writeback_and_return): Likewise.
5743         (vfp_pop_multiple_with_writeback): Likewise
5744
5745 2014-04-04  Richard Biener  <rguenther@suse.de>
5746
5747         PR ipa/60746
5748         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5749         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5750         non-GIMPLE_LABELs.
5751         * gimplify.h (gimple_add_tmp_var_fn): Declare.
5752         * gimplify.c (gimple_add_tmp_var_fn): New function.
5753         * gimple-expr.h (create_tmp_reg_fn): Declare.
5754         * gimple-expr.c (create_tmp_reg_fn): New function.
5755         * gimple-low.c (record_vars_into): Don't change cfun.
5756         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5757         code generation without cfun.
5758
5759 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
5760
5761         PR bootstrap/60719
5762         * Makefile.in (install-driver): Fix shell scripting.
5763
5764 2014-04-03  Cong Hou  <congh@google.com>
5765
5766         PR tree-optimization/60505
5767         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5768         threshold of number of iterations below which no vectorization
5769         will be done.
5770         * tree-vect-loop.c (new_loop_vec_info):
5771         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5772         * tree-vect-loop.c (vect_analyze_loop_operations):
5773         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5774         * tree-vect-loop.c (vect_transform_loop):
5775         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5776         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5777         of iterations of the loop and see if we should build the epilogue.
5778
5779 2014-04-03  Richard Biener  <rguenther@suse.de>
5780
5781         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5782         (streamer_tree_cache_create): Adjust.
5783         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5784         to allow optional nodes array.
5785         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5786         (streamer_tree_cache_append): Likewise.
5787         (streamer_tree_cache_create): Create nodes array optionally
5788         as specified by parameter.
5789         * lto-streamer-out.c (create_output_block): Avoid maintaining
5790         the node array in the writer cache.
5791         (DFS_write_tree): Remove assertion.
5792         (produce_asm_for_decls): Free the out decl state hash table early.
5793         * lto-streamer-in.c (lto_data_in_create): Adjust for
5794         streamer_tree_cache_create prototype change.
5795
5796 2014-04-03  Richard Biener  <rguenther@suse.de>
5797
5798         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5799         set TREE_CHAIN to NULL_TREE.
5800
5801 2014-04-03  Richard Biener  <rguenther@suse.de>
5802
5803         PR tree-optimization/60740
5804         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5805         over all GIMPLE_COND operands.
5806
5807 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
5808
5809         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5810         (Weffc++): Remove Scott's numbering, merge lists and reference
5811         Wnon-virtual-dtor.
5812
5813 2014-04-03  Nick Clifton  <nickc@redhat.com>
5814
5815         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5816         properly.
5817
5818 2014-04-03  Martin Jambor  <mjambor@suse.cz>
5819
5820         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5821         mention gcc_unreachable before failing.
5822         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5823         removed symbols.
5824
5825 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
5826
5827         PR ipa/60659
5828         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5829         inconsistent code and instead mark the context inconsistent.
5830         (possible_polymorphic_call_targets): For inconsistent contexts
5831         return empty complete list.
5832
5833 2014-04-02  Anthony Green  <green@moxielogic.com>
5834
5835         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5836         (extendqisi2, extendhisi2): Define.
5837         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5838         (WCHAR_TYPE): Change to unsigned int.
5839
5840 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5841
5842         PR tree-optimization/60733
5843         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5844         insertion point for PHI candidates to be the end of the feeding
5845         block for the PHI argument.
5846
5847 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5848
5849         PR rtl-optimization/60650
5850         * lra-constraints.c (process_alt_operands): Decrease reject for
5851         earlyclobber matching.
5852
5853 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5854
5855         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5856
5857 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5858
5859         * config/spu/spu.c (pad_bb): Do not crash when the last
5860         insn is CODE_FOR_blockage.
5861
5862 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5863
5864         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5865         lies outside the target mode.
5866
5867 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5868
5869         PR target/60735
5870         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5871         software floating point or no floating point registers, do not
5872         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
5873         in GPRs that occurs after we tested for GPRs that would never be
5874         true.
5875
5876         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5877         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5878         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
5879         specifically allow DDmode, since that does not use the SPE SIMD
5880         instructions.
5881
5882 2014-04-02  Richard Biener  <rguenther@suse.de>
5883
5884         PR middle-end/60729
5885         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5886         MODE_INTs.  Properly use negv_optab.
5887         (expand_abs): Likewise.
5888
5889 2014-04-02  Richard Biener  <rguenther@suse.de>
5890
5891         PR bootstrap/60719
5892         * Makefile.in (install-driver): Guard extra installs with special
5893         names properly.
5894
5895 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5896
5897         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5898         Document vec_vgbbd.
5899
5900 2014-04-01  Richard Henderson  <rth@redhat.com>
5901
5902         PR target/60704
5903         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5904         alternative enabled before register allocation.
5905
5906 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
5907
5908         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5909         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5910         typo.
5911         (nios2_large_got_address): Remove unneeded 'sym' parameter.
5912         (nios2_got_address): Update nios2_large_got_address call site.
5913         (nios2_delegitimize_address): New function.
5914         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5915         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5916         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5917
5918 2014-04-01  Martin Husemann  <martin@duskware.de>
5919
5920         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5921         for -mabi=32.
5922
5923 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
5924
5925         PR rtl-optimization/60604
5926         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5927         check from register_operand.
5928         (register_operand): Redefine in terms of general_operand.
5929         (nonmemory_operand): Use register_operand for the non-constant cases.
5930
5931 2014-04-01  Richard Biener  <rguenther@suse.de>
5932
5933         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5934
5935 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5936
5937         * doc/invoke.texi (mapp-regs): Clarify.
5938
5939 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
5940
5941         * config/i386/avx512fintrin.h (__v32hi): Define type.
5942         (__v64qi): Likewise.
5943         (_mm512_set1_epi8): Define.
5944         (_mm512_set1_epi16): Define.
5945         (_mm512_set4_epi32): Define.
5946         (_mm512_set4_epi64): Define.
5947         (_mm512_set4_pd): Define.
5948         (_mm512_set4_ps): Define.
5949         (_mm512_setr4_epi64): Define.
5950         (_mm512_setr4_epi32): Define.
5951         (_mm512_setr4_pd): Define.
5952         (_mm512_setr4_ps): Define.
5953         (_mm512_setzero_epi32): Define.
5954
5955 2014-03-31  Martin Jambor  <mjambor@suse.cz>
5956
5957         PR middle-end/60647
5958         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5959         callsite_arguments_match_p.  Updated all callers.  Also check types of
5960         corresponding formal parameters and actual arguments.
5961         (not_all_callers_have_enough_arguments_p) Renamed to
5962         some_callers_have_mismatched_arguments_p.
5963
5964 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
5965
5966         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5967
5968 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
5969
5970         PR target/60034
5971         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5972         section anchor.
5973
5974 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
5975
5976         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5977         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5978         Split out
5979         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5980         Use FMAMODE_NOVF512 mode iterator.
5981         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5982         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5983         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5984         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5985         Split out
5986         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5987         Use VF_128_256 mode iterator.
5988         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5989         Ditto.
5990
5991 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5992
5993         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5994         static chain if needed.
5995
5996 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5997
5998         PR target/60697
5999         * lra-constraints.c (index_part_to_reg): New.
6000         (process_address): Use it.
6001
6002 2014-03-27  Jeff Law  <law@redhat.com>
6003             Jakub Jelinek  <jakub@redhat.com>
6004
6005         PR target/60648
6006         * expr.c (do_tablejump): Use simplify_gen_binary rather than
6007         gen_rtx_{PLUS,MULT} to build up the address expression.
6008
6009         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
6010         creating non-canonical RTL.
6011
6012 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
6013
6014         PR ipa/60243
6015         * ipa-inline.c (want_inline_small_function_p): Short circuit large
6016         functions; reorganize to make cheap checks first.
6017         (inline_small_functions): Do not estimate growth when dumping;
6018         it is expensive.
6019         * ipa-inline.h (inline_summary): Add min_size.
6020         (growth_likely_positive): New function.
6021         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
6022         (set_cond_stmt_execution_predicate): Cleanup.
6023         (estimate_edge_size_and_time): Compute min_size.
6024         (estimate_calls_size_and_time): Likewise.
6025         (estimate_node_size_and_time): Likewise.
6026         (inline_update_overall_summary): Update min_size.
6027         (do_estimate_edge_time): Likewise.
6028         (do_estimate_edge_size): Update.
6029         (do_estimate_edge_hints): Update.
6030         (growth_likely_positive): New function.
6031
6032 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
6033
6034         PR target/60693
6035         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
6036         also if addr has VOIDmode.
6037
6038 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6039
6040         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
6041         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6042         Declare extern.
6043         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
6044         instructions as well as AdvancedSIMD loads.
6045
6046 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6047
6048         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
6049         Use crypto_aese type.
6050         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
6051         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
6052         crypto_aese, crypto_aesmc.  Move to types.md.
6053         * config/arm/types.md (crypto_aes): Split into crypto_aese,
6054         crypto_aesmc.
6055         * config/arm/iterators.md (crypto_type): Likewise.
6056
6057 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
6058
6059         * cgraph.c: Include expr.h and tree-dfa.h.
6060         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
6061         remove LHS.
6062
6063 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
6064
6065         PR target/60675
6066         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
6067         regs from checking multi-reg pseudos.
6068
6069 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6070
6071         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
6072
6073 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6074
6075         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
6076         if it would clobber the stack pointer, even temporarily.
6077
6078 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
6079
6080         * mode-switching.c: Make small adjustments to the top comment.
6081
6082 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
6083
6084         * config/rs6000/constraints.md (wD constraint): New constraint to
6085         match the constant integer to get the top DImode/DFmode out of a
6086         vector in a VSX register.
6087
6088         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
6089         match the constant integer to get the top DImode/DFmode out of a
6090         vector in a VSX register.
6091
6092         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
6093         for ISA 2.07.
6094
6095         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6096         vbpermq builtins.
6097
6098         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
6099         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
6100
6101         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
6102         Optimize vec_extract of 64-bit values, where the value being
6103         extracted is in the top word, where we can use scalar
6104         instructions.  Add direct move and store support.  Combine the big
6105         endian/little endian vector select load support into a single insn.
6106         (vsx_extract_<mode>_internal1): Likewise.
6107         (vsx_extract_<mode>_internal2): Likewise.
6108         (vsx_extract_<mode>_load): Likewise.
6109         (vsx_extract_<mode>_store): Likewise.
6110         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
6111         combined into vsx_extract_<mode>_load.
6112         (vsx_extract_<mode>_one_le): Likewise.
6113
6114         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
6115         define the top 64-bit vector element.
6116
6117         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
6118         constraint.
6119
6120         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6121         Document vec_vbpermq builtin.
6122
6123         PR target/60672
6124         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
6125         enable use of xxsldwi and xxpermdi builtin functions.
6126         (vec_xxpermdi): Likewise.
6127
6128         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6129         Document use of vec_xxsldwi and vec_xxpermdi builtins.
6130
6131 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
6132
6133         PR rtl-optimization/60650
6134         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
6135         first_p.  Use it.
6136         (find_spills_for): New.
6137         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
6138         Spill all pseudos on the second iteration.
6139
6140 2014-03-27  Marek Polacek  <polacek@redhat.com>
6141
6142         PR c/50347
6143         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
6144         types.
6145
6146 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6147
6148         * config/s390/s390.c (s390_can_use_return_insn): Check for
6149         call-saved FPRs on 31 bit.
6150
6151 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
6152
6153         PR middle-end/60682
6154         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
6155         if they need regimplification, just drop them instead of
6156         calling gimple_regimplify_operands on them.
6157
6158 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6159
6160         PR target/60580
6161         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
6162         (aarch64_frame_pointer_required): Adjust logic.
6163         (aarch64_can_eliminate): Adjust logic.
6164         (aarch64_override_options_after_change): Adjust logic.
6165
6166 2014-03-27  Dehao Chen  <dehao@google.com>
6167
6168         * ipa-inline.c (early_inliner): Update node's inline info.
6169
6170 2014-03-26  Dehao Chen  <dehao@google.com>
6171
6172         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
6173         compiler inserted conditional jumps for NAN float check.
6174
6175 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
6176
6177         * ubsan.h (ubsan_create_data): Change second argument's type
6178         to const location_t *.
6179         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
6180         _("<unknown>").
6181         (ubsan_create_data): Change second argument to const location_t *PLOC.
6182         Create Loc field whenever PLOC is non-NULL.
6183         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
6184         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
6185         callers.
6186
6187         PR other/59545
6188         * real.c (real_to_integer2): Change type of low to UHWI.
6189
6190 2014-03-26  Tobias Burnus  <burnus@net-b.de>
6191
6192         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
6193         (CILK_SELF_SPECS): New define.
6194         (driver_self_specs): Use it.
6195
6196 2014-03-26  Richard Biener  <rguenther@suse.de>
6197
6198         * tree-pretty-print.c (percent_K_format): Implement special
6199         case for LTO and its stripped down BLOCK tree.
6200
6201 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
6202
6203         PR sanitizer/60636
6204         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
6205
6206         * tree-vrp.c (simplify_internal_call_using_ranges): If only
6207         one range is range_int_cst_p, but not both, at least optimize
6208         addition/subtraction of 0 and multiplication by 0 or 1.
6209         * gimple-fold.c (gimple_fold_call): Fold
6210         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
6211         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
6212         INTEGER_CSTs, try to fold at least x * 0 and y - y.
6213
6214 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6215
6216         PR rtl-optimization/60452
6217         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
6218         <case REG>: Return 1 for invalid offsets from the frame pointer.
6219
6220 2014-03-26  Marek Polacek  <polacek@redhat.com>
6221
6222         PR c/37428
6223         * doc/extend.texi (C Extensions): Mention variable-length arrays in
6224         a structure/union.
6225
6226 2014-03-26  Marek Polacek  <polacek@redhat.com>
6227
6228         PR c/39525
6229         * doc/extend.texi (Designated Inits): Describe what happens to omitted
6230         field members.
6231
6232 2014-03-26  Marek Polacek  <polacek@redhat.com>
6233
6234         PR other/59545
6235         * ira-color.c (update_conflict_hard_regno_costs): Perform the
6236         multiplication in unsigned type.
6237
6238 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
6239
6240         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
6241
6242 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
6243
6244         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
6245
6246 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
6247
6248         PR ipa/60315
6249         * cif-code.def (UNREACHABLE) New code.
6250         * ipa-inline.c (inline_small_functions): Skip edges to
6251         __builtlin_unreachable.
6252         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
6253         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
6254         predicate to __bulitin_unreachable.
6255         (set_cond_stmt_execution_predicate): Fix issue when
6256         invert_tree_comparison returns ERROR_MARK.
6257         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
6258         propagate to inline clones.
6259         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
6260         to unreachable.
6261         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
6262         * cgraphclones.c (cgraph_clone_node): If call destination is already
6263         ureachable, do not redirect it back.
6264         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
6265         unreachable.
6266
6267 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
6268
6269         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
6270         Do not modify inline clones.
6271
6272 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
6273
6274         * config/i386/i386.md (general_sext_operand): New mode attr.
6275         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
6276         don't generate (sign_extend (const_int)).
6277         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
6278         operands[2].  Use We constraint instead of <i> and
6279         <general_sext_operand> predicate instead of <general_operand>.
6280         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
6281         * config/i386/constraints.md (We): New constraint.
6282         * config/i386/predicates.md (x86_64_sext_operand,
6283         sext_operand): New predicates.
6284
6285 2014-03-25  Martin Jambor  <mjambor@suse.cz>
6286
6287         PR ipa/60600
6288         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
6289         inconsistent devirtualizations to __builtin_unreachable.
6290
6291 2014-03-25  Marek Polacek  <polacek@redhat.com>
6292
6293         PR c/35449
6294         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
6295
6296 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
6297
6298         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
6299         order of elements for big-endian.
6300
6301 2014-03-25  Richard Biener  <rguenther@suse.de>
6302
6303         PR middle-end/60635
6304         * gimplify-me.c (gimple_regimplify_operands): Update the
6305         re-gimplifed stmt.
6306
6307 2014-03-25  Martin Jambor  <mjambor@suse.cz>
6308
6309         PR ipa/59176
6310         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
6311         (lto_output_varpool_node): Likewise.
6312         (input_overwrite_node): Likewise.
6313         (input_varpool_node): Likewise.
6314
6315 2014-03-25  Richard Biener  <rguenther@suse.de>
6316
6317         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
6318         (run_gcc): Likewise.
6319
6320 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
6321
6322         * combine.c (simplify_compare_const): Add MODE argument.
6323         Handle mode_width 0 as very large mode_width.
6324         (try_combine, simplify_comparison): Adjust callers.
6325
6326         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
6327         type to avoid signed integer overflow.
6328         * explow.c (plus_constant): Likewise.
6329
6330 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6331
6332         * doc/generic.texi: Correct typos.
6333
6334 2014-03-24  Tobias Burnus  <burnus@net-b.de>
6335
6336         * doc/invoke.texi (-flto): Expand section about
6337         using static libraries with LTO.
6338
6339 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6340
6341         PR rtl-optimization/60501
6342         * optabs.def (addptr3_optab): New optab.
6343         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
6344         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
6345         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
6346
6347         * lra.c (emit_add3_insn): Use the addptr pattern if available.
6348
6349         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
6350
6351 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
6352
6353         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
6354         _mm512_set1_pd.
6355
6356         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
6357         (_mm256_undefined_ps): Define.
6358         (_mm256_undefined_pd): Define.
6359         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
6360         (_mm_undefined_pd): Define.
6361         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
6362         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
6363         (_mm512_undefined_ps): Define.
6364         (_mm512_undefined_pd): Define.
6365         Use _mm*_undefined_*.
6366         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
6367
6368 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
6369
6370         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
6371         (lshr_simd): DI mode added.
6372         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
6373         (aarch64_ushr_simddi): Likewise.
6374         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
6375         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
6376         (vshrd_n_u64): Likewise.
6377
6378 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6379
6380         * Makefile.in (s-macro_list): Depend on cc1.
6381
6382 2014-03-23  Teresa Johnson  <tejohnson@google.com>
6383
6384         * ipa-utils.c (ipa_print_order): Use specified dump file.
6385
6386 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         PR rtl-optimization/60601
6389         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
6390
6391         * gcc.c (eval_spec_function): Initialize save_growing_value.
6392
6393 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
6394
6395         PR sanitizer/60613
6396         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
6397         code == MINUS_EXPR, never swap op0 with op1.
6398
6399         * toplev.c (init_local_tick): Avoid signed integer multiplication
6400         overflow.
6401         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
6402         shift by first operand's bitsize.
6403
6404 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
6405
6406         PR target/60610
6407         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
6408         redefine to 1 or 0.
6409         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
6410         TARGET_ISA_64BIT_P(x).
6411
6412 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6413
6414         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
6415         pattern for vector nor instead of subtract from splat(-1).
6416         (altivec_expand_vec_perm_const_le): Likewise.
6417
6418 2014-03-21  Richard Henderson  <rth@twiddle.net>
6419
6420         PR target/60598
6421         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
6422         related insns after epilogue_completed.
6423
6424 2014-03-21  Martin Jambor  <mjambor@suse.cz>
6425
6426         PR ipa/59176
6427         * cgraph.h (symtab_node): New flag body_removed.
6428         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
6429         when removing bodies.
6430         * symtab.c (dump_symtab_base): Dump body_removed flag.
6431         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
6432         had their bodies removed.
6433
6434 2014-03-21  Martin Jambor  <mjambor@suse.cz>
6435
6436         PR ipa/60419
6437         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
6438         in the border.
6439
6440 2014-03-21  Richard Biener  <rguenther@suse.de>
6441
6442         PR tree-optimization/60577
6443         * tree-core.h (struct tree_base): Document nothrow_flag use
6444         in DECL_NONALIASED.
6445         * tree.h (DECL_NONALIASED): New.
6446         (may_be_aliased): Adjust.
6447         * coverage.c (build_var): Set DECL_NONALIASED.
6448
6449 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6450
6451         * expr.c (expand_expr_real_1): Remove outdated comment.
6452
6453 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
6454
6455         PR middle-end/60597
6456         * ira.c (adjust_cleared_regs): Call copy_rtx on
6457         *reg_equiv[REGNO (loc)].src_p before passing it to
6458         simplify_replace_fn_rtx.
6459
6460         PR target/60568
6461         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
6462         into CONST, put pic register as first operand of PLUS.  Use
6463         gen_const_mem for both 32-bit and 64-bit PIC got loads.
6464
6465 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6466
6467         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
6468
6469 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6470
6471         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
6472         around for store forwarding issue in the FPU on the UT699.
6473         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
6474         loads and operations if -mfix-ut699 is specified.
6475         (divtf3_hq): Tweak attribute.
6476         (sqrttf2_hq): Likewise.
6477
6478 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6479
6480         * calls.c (store_one_arg): Remove incorrect const qualification on the
6481         type of the temporary.
6482         * cfgexpand.c (expand_return): Likewise.
6483         * expr.c (expand_constructor): Likewise.
6484         (expand_expr_real_1): Likewise.
6485
6486 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6487
6488         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
6489         of parts.
6490
6491 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6492
6493         PR target/60039
6494         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
6495
6496 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
6497
6498         * config/arm/aarch-common-protos.h
6499         (alu_cost_table): Fix spelling of "extend".
6500         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
6501
6502 2014-03-19  Richard Biener  <rguenther@suse.de>
6503
6504         PR middle-end/60553
6505         * tree-core.h (tree_type_common): Re-order pointer members
6506         to reduce recursion depth during GC walks.
6507
6508 2014-03-19  Marek Polacek  <polacek@redhat.com>
6509
6510         PR sanitizer/60569
6511         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
6512         before accessing it.
6513
6514 2014-03-19  Richard Biener  <rguenther@suse.de>
6515
6516         PR lto/59543
6517         * lto-streamer-in.c (input_function): In WPA stage do not drop
6518         debug stmts.
6519
6520 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
6521
6522         PR tree-optimization/60559
6523         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
6524         with build_zero_cst assignment.
6525
6526 2014-03-18  Kai Tietz  <ktietz@redhat.com>
6527
6528         PR rtl-optimization/56356
6529         * sdbout.c (sdbout_parms): Verify that parms'
6530         incoming argument is valid.
6531         (sdbout_reg_parms): Likewise.
6532
6533 2014-03-18  Richard Henderson  <rth@redhat.com>
6534
6535         PR target/60562
6536         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
6537         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
6538         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
6539
6540 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
6541
6542         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
6543         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
6544         Italicize plugin event names in description.  Explain that
6545         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
6546         Remind that no GCC functions should be called after PLUGIN_FINISH.
6547         Explain what pragmas with expansion are.
6548
6549 2014-03-18  Martin Liska  <mliska@suse.cz>
6550
6551         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
6552         gimple call statement is update.
6553         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
6554         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
6555
6556 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
6557
6558         PR sanitizer/60557
6559         * ubsan.c (ubsan_instrument_unreachable): Call
6560         initialize_sanitizer_builtins.
6561         (ubsan_pass): Likewise.
6562
6563         PR sanitizer/60535
6564         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
6565         varpool_finalize_decl instead of rest_of_decl_compilation.
6566
6567 2014-03-18  Richard Biener  <rguenther@suse.de>
6568
6569         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
6570         by using bitmap_and_compl instead of bitmap_and_compl_into.
6571         (df_rd_transfer_function): Likewise.
6572
6573 2014-03-18  Richard Biener  <rguenther@suse.de>
6574
6575         * doc/lto.texi (fresolution): Fix typo.
6576
6577 2014-03-18  Richard Biener  <rguenther@suse.de>
6578
6579         * doc/invoke.texi (flto): Update for changes in 4.9.
6580
6581 2014-03-18  Richard Biener  <rguenther@suse.de>
6582
6583         * doc/loop.texi: Remove section on the removed lambda framework.
6584         Update loop docs with recent changes in preserving loop structure.
6585
6586 2014-03-18  Richard Biener  <rguenther@suse.de>
6587
6588         * doc/lto.texi (-fresolution): Document.
6589
6590 2014-03-18  Richard Biener  <rguenther@suse.de>
6591
6592         * doc/contrib.texi: Adjust my name.
6593
6594 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
6595
6596         PR ipa/58721
6597         * internal-fn.c: Include diagnostic-core.h.
6598         (expand_BUILTIN_EXPECT): New function.
6599         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
6600         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
6601         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
6602         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
6603         IFN_BUILTIN_EXPECT.
6604         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
6605         Revert 3 argument __builtin_expect code.
6606         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
6607         * gimple-fold.c (gimple_fold_call): Likewise.
6608         * tree.h (fold_builtin_expect): New prototype.
6609         * builtins.c (build_builtin_expect_predicate): Add predictor
6610         argument, if non-NULL, create 3 argument __builtin_expect.
6611         (fold_builtin_expect): No longer static.  Add ARG2 argument,
6612         pass it through to build_builtin_expect_predicate.
6613         (fold_builtin_2): Adjust caller.
6614         (fold_builtin_3): Handle BUILT_IN_EXPECT.
6615         * internal-fn.def (BUILTIN_EXPECT): New.
6616
6617 2014-03-18  Tobias Burnus  <burnus@net-b.de>
6618
6619         PR ipa/58721
6620         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
6621         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
6622         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
6623
6624 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
6625
6626         PR ipa/58721
6627         * predict.c (combine_predictions_for_bb): Fix up formatting.
6628         (expr_expected_value_1, expr_expected_value): Add predictor argument,
6629         fill what it points to if non-NULL.
6630         (tree_predict_by_opcode): Adjust caller, use the predictor.
6631         * predict.def (PRED_COMPARE_AND_SWAP): Add.
6632
6633 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
6634
6635         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
6636         proper constant for the store mode.
6637
6638 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6639
6640         * symtab.c (change_decl_assembler_name): Fix transparent alias
6641         chain construction.
6642
6643 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
6644
6645         * config/aarch64/aarch64.c: Correct the comments about the
6646         aarch64 stack layout.
6647
6648 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
6649
6650         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
6651         check for GF_OMP_FOR_KIND_FOR.
6652
6653 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
6654
6655         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
6656         ymm and zmm register names.
6657
6658 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
6659
6660         PR target/60516
6661         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
6662         note creation for the 2010-08-31 changes.
6663
6664 2014-03-17  Marek Polacek  <polacek@redhat.com>
6665
6666         PR middle-end/60534
6667         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
6668         as -fno-tree-loop-vectorize.
6669         (expand_omp_simd): Likewise.
6670
6671 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6672
6673         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
6674         (eligible_for_call_delay): New prototype.
6675         * config/sparc/sparc.c (tls_call_delay): Rename into...
6676         (eligible_for_call_delay): ...this.  Return false if the instruction
6677         cannot be put in the delay slot of a branch.
6678         (eligible_for_restore_insn): Simplify.
6679         (eligible_for_return_delay): Return false if the instruction cannot be
6680         put in the delay slot of a branch and simplify.
6681         (eligible_for_sibcall_delay): Return false if the instruction cannot be
6682         put in the delay slot of a branch.
6683         * config/sparc/sparc.md (fix_ut699): New attribute.
6684         (tls_call_delay): Delete.
6685         (in_call_delay): Reimplement.
6686         (eligible_for_sibcall_delay): Rename into...
6687         (in_sibcall_delay): ...this.
6688         (eligible_for_return_delay): Rename into...
6689         (in_return_delay): ...this.
6690         (in_branch_delay): Reimplement.
6691         (in_uncond_branch_delay): Delete.
6692         (in_annul_branch_delay): Delete.
6693
6694 2014-03-14  Richard Henderson  <rth@redhat.com>
6695
6696         PR target/60525
6697         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6698         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6699         (*floathi<X87MODEF>2_i387_with_temp): Remove.
6700         (floathi splitters): Remove.
6701         (float<SWI48x>xf2): New pattern.
6702         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
6703         code that tried to handle DImode for 32-bit, but which was excluded
6704         by the pattern's condition.  Drop allocation of stack temporary.
6705         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6706         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6707         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6708         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6709         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6710         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6711         (*float<SWI48><MODEF>2_sse_interunit): Remove.
6712         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6713         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6714         (*float<SWI48x><X87MODEF>2_i387): Remove.
6715         (all float _with_temp splitters): Remove.
6716         (*float<SWI48x><MODEF>2_i387): New pattern.
6717         (*float<SWI48><MODEF>2_sse): New pattern.
6718         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6719         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6720
6721 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
6722             Marek Polacek  <polacek@redhat.com>
6723
6724         PR middle-end/60484
6725         * common.opt (dump_base_name_prefixed): New Variable.
6726         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6727         if x_dump_base_name_prefixed is already set, set it at the end.
6728
6729 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
6730
6731         PR rtl-optimization/60508
6732         * lra-constraints.c (get_reload_reg): Add new parameter
6733         in_subreg_p.
6734         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6735         Pass the new parameter values.
6736
6737 2014-03-14  Richard Biener  <rguenther@suse.de>
6738
6739         * common.opt: Revert unintented changes from r205065.
6740         * opts.c: Likewise.
6741
6742 2014-03-14  Richard Biener  <rguenther@suse.de>
6743
6744         PR middle-end/60518
6745         * cfghooks.c (split_block): Properly adjust all loops the
6746         block was a latch of.
6747
6748 2014-03-14  Martin Jambor  <mjambor@suse.cz>
6749
6750         PR lto/60461
6751         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6752         and simplify it.
6753
6754 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
6755
6756         PR target/59396
6757         * config/avr/avr.c (avr_set_current_function): Pass function name
6758         through default_strip_name_encoding before sanity checking instead
6759         of skipping the first char of the assembler name.
6760
6761 2014-03-13  Richard Henderson  <rth@redhat.com>
6762
6763         PR debug/60438
6764         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6765         (ix86_force_to_memory, ix86_free_from_memory): Remove.
6766         * config/i386/i386-protos.h: Likewise.
6767         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6768         in the expander instead of a splitter.
6769         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6770         any possibility of requiring a memory.
6771         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6772         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6773         (fp branch splitters): Update for ix86_split_fp_branch.
6774         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6775         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6776         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6777         (*fop_<MODEF>_2_i387): Remove f/r alternative.
6778         (*fop_<MODEF>_3_i387): Likewise.
6779         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6780         (splitters for the fop_* register patterns): Remove.
6781         (fscalexf4_i387): Rename from *fscalexf4_i387.
6782         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6783
6784 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6785
6786         PR tree-optimization/59779
6787         * tree-dfa.c (get_ref_base_and_extent): Use double_int
6788         type for bitsize and maxsize instead of HOST_WIDE_INT.
6789
6790 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
6791
6792         PR rtl-optimization/57320
6793         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6794         the CFG after thread_prologue_and_epilogue_insns.
6795
6796 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
6797
6798         PR rtl-optimization/57189
6799         * lra-constraints.c (process_alt_operands): Disfavor spilling
6800         vector pseudos.
6801
6802 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
6803
6804         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6805
6806 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6807
6808         PR tree-optimization/59025
6809         PR middle-end/60418
6810         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6811         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6812
6813 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
6814
6815         PR target/60486
6816         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6817         calls of avr_out_plus_1.
6818
6819 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
6820
6821         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6822         BB's single pred and update the father loop's latch info later.
6823
6824 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6825
6826         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6827         (VEC_M): Likewise.
6828         (VEC_N): Likewise.
6829         (VEC_R): Likewise.
6830         (VEC_base): Likewise.
6831         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6832         registers, we need to swap double words in little endian mode.
6833
6834         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6835         to be a container mode for 128-bit integer operations added in ISA
6836         2.07.  Unlike TImode and PTImode, the preferred register set is
6837         the Altivec/VMX registers for the 128-bit operations.
6838
6839         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6840         declarations.
6841         (rs6000_split_128bit_ok_p): Likewise.
6842
6843         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6844         macros for creating ISA 2.07 normal and overloaded builtin
6845         functions with 3 arguments.
6846         (BU_P8V_OVERLOAD_3): Likewise.
6847         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6848         for use as overloaded functions.
6849         (VPERM_1TI_UNS): Likewise.
6850         (VSEL_1TI): Likewise.
6851         (VSEL_1TI_UNS): Likewise.
6852         (ST_INTERNAL_1ti): Likewise.
6853         (LD_INTERNAL_1ti): Likewise.
6854         (XXSEL_1TI): Likewise.
6855         (XXSEL_1TI_UNS): Likewise.
6856         (VPERM_1TI): Likewise.
6857         (VPERM_1TI_UNS): Likewise.
6858         (XXPERMDI_1TI): Likewise.
6859         (SET_1TI): Likewise.
6860         (LXVD2X_V1TI): Likewise.
6861         (STXVD2X_V1TI): Likewise.
6862         (VEC_INIT_V1TI): Likewise.
6863         (VEC_SET_V1TI): Likewise.
6864         (VEC_EXT_V1TI): Likewise.
6865         (EQV_V1TI): Likewise.
6866         (NAND_V1TI): Likewise.
6867         (ORC_V1TI): Likewise.
6868         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6869         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
6870         overloaded builtin.
6871         (VADDUQM): Likewise.
6872         (VSUBCUQ): Likewise.
6873         (VADDEUQM): Likewise.
6874         (VADDECUQ): Likewise.
6875         (VSUBEUQM): Likewise.
6876         (VSUBECUQ): Likewise.
6877
6878         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6879         __int128_t and __uint128_t types.
6880         (__uint128_type): Likewise.
6881         (altivec_categorize_keyword): Add support for vector __int128_t,
6882         vector __uint128_t, vector __int128, and vector unsigned __int128
6883         as a container type for TImode operations that need to be done in
6884         VSX/Altivec registers.
6885         (rs6000_macro_to_expand): Likewise.
6886         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6887         to support 128-bit integer instructions vaddcuq, vadduqm,
6888         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6889         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6890
6891         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6892         for V1TImode, and set up preferences to use VSX/Altivec registers.
6893         Setup VSX reload handlers.
6894         (rs6000_debug_reg_global): Likewise.
6895         (rs6000_init_hard_regno_mode_ok): Likewise.
6896         (rs6000_preferred_simd_mode): Likewise.
6897         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6898         (easy_altivec_constant): Likewise.
6899         (output_vec_const_move): Likewise.
6900         (rs6000_expand_vector_set): Convert V1TImode set and extract to
6901         simple move.
6902         (rs6000_expand_vector_extract): Likewise.
6903         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6904         addressing.
6905         (rs6000_const_vec): Add support for V1TImode.
6906         (rs6000_emit_le_vsx_load): Swap double words when loading or
6907         storing TImode/V1TImode.
6908         (rs6000_emit_le_vsx_store): Likewise.
6909         (rs6000_emit_le_vsx_move): Likewise.
6910         (rs6000_emit_move): Add support for V1TImode.
6911         (altivec_expand_ld_builtin): Likewise.
6912         (altivec_expand_st_builtin): Likewise.
6913         (altivec_expand_vec_init_builtin): Likewise.
6914         (altivec_expand_builtin): Likewise.
6915         (rs6000_init_builtins): Add support for V1TImode type.  Add
6916         support for ISA 2.07 128-bit integer builtins.  Define type names
6917         for the VSX/Altivec vector types.
6918         (altivec_init_builtins): Add support for overloaded vector
6919         functions with V1TImode type.
6920         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6921         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6922         external function.
6923         (rs6000_split_128bit_ok_p): Likewise.
6924         (rs6000_handle_altivec_attribute): Create V1TImode from vector
6925         __int128_t and vector __uint128_t.
6926
6927         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6928         and mode attributes.
6929         (VSX_M): Likewise.
6930         (VSX_M2): Likewise.
6931         (VSm): Likewise.
6932         (VSs): Likewise.
6933         (VSr): Likewise.
6934         (VSv): Likewise.
6935         (VS_scalar): Likewise.
6936         (VS_double): Likewise.
6937         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6938
6939         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6940         we support the ISA 2.07 128-bit integer arithmetic instructions.
6941         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6942         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6943         and TImode types for use with the builtin functions.
6944         (V1TI_type_node): Likewise.
6945         (unsigned_V1TI_type_node): Likewise.
6946         (intTI_type_internal_node): Likewise.
6947         (uintTI_type_internal_node): Likewise.
6948
6949         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6950         128-bit builtin functions.
6951         (UNSPEC_VADDEUQM): Likewise.
6952         (UNSPEC_VADDECUQ): Likewise.
6953         (UNSPEC_VSUBCUQ): Likewise.
6954         (UNSPEC_VSUBEUQM): Likewise.
6955         (UNSPEC_VSUBECUQ): Likewise.
6956         (VM): Add V1TImode to vector mode iterators.
6957         (VM2): Likewise.
6958         (VI_unit): Likewise.
6959         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6960         (altivec_vaddcuq): Likewise.
6961         (altivec_vsubuqm): Likewise.
6962         (altivec_vsubcuq): Likewise.
6963         (altivec_vaddeuqm): Likewise.
6964         (altivec_vaddecuq): Likewise.
6965         (altivec_vsubeuqm): Likewise.
6966         (altivec_vsubecuq): Likewise.
6967
6968         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6969         mode iterators.
6970         (BOOL_128): Likewise.
6971         (BOOL_REGS_OUTPUT): Likewise.
6972         (BOOL_REGS_OP1): Likewise.
6973         (BOOL_REGS_OP2): Likewise.
6974         (BOOL_REGS_UNARY): Likewise.
6975         (BOOL_REGS_AND_CR0): Likewise.
6976
6977         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6978         128-bit integer builtin support.
6979         (vec_vadduqm): Likewise.
6980         (vec_vaddecuq): Likewise.
6981         (vec_vaddeuqm): Likewise.
6982         (vec_vsubecuq): Likewise.
6983         (vec_vsubeuqm): Likewise.
6984         (vec_vsubcuq): Likewise.
6985         (vec_vsubuqm): Likewise.
6986
6987         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6988         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6989         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6990         128-bit integer add/subtract to ISA 2.07.
6991
6992 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6993
6994         * config/arc/arc.c (arc_predicate_delay_insns):
6995         Fix third argument passed to conditionalize_nonjump.
6996
6997 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
6998
6999         * config/aarch64/aarch64-builtins.c
7000         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
7001         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
7002         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
7003         instead of __builtin_lfloor.
7004         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
7005
7006 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
7007
7008         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
7009         (tree_ssa_ifcombine_bb_1): New function.
7010         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
7011         is an empty forwarder block to then_bb or vice versa and then_bb
7012         and else_bb are effectively swapped.
7013
7014 2014-03-12  Christian Bruel  <christian.bruel@st.com>
7015
7016         PR target/60264
7017         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
7018         REG_CFA_DEF_CFA note.
7019         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
7020         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
7021
7022 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7023
7024         PR tree-optimization/60454
7025         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
7026
7027 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7028
7029         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
7030         Do not define target_cpu_default2 to generic.
7031         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
7032         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
7033         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
7034
7035 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
7036             Marc Glisse  <marc.glisse@inria.fr>
7037
7038         PR tree-optimization/60502
7039         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
7040         instead of build_low_bits_mask.
7041
7042 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
7043
7044         PR middle-end/60482
7045         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
7046         if there are multiple uses, but op doesn't live on E edge.
7047         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
7048         clobber stmts before __builtin_unreachable.
7049
7050 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
7051
7052         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
7053         hard_frame_pointer_rtx.
7054         * cse.c (cse_insn): Remove volatile check.
7055         * cselib.c (cselib_process_insn): Likewise.
7056         * dse.c (scan_insn): Likewise.
7057
7058 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7059
7060         * config/arc/arc.c (conditionalize_nonjump): New function,
7061         broken out of ...
7062         (arc_ifcvt): ... this.
7063         (arc_predicate_delay_insns): Use it.
7064
7065 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7066
7067         * config/arc/predicates.md (extend_operand): During/after reload,
7068         allow const_int_operand.
7069         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
7070         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
7071         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
7072         to "i".
7073         (umulsi3_highpart_i): Likewise.
7074
7075 2014-03-11  Richard Biener  <rguenther@suse.de>
7076
7077         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
7078         Add asserts to guard possible wrong-code bugs.
7079
7080 2014-03-11  Richard Biener  <rguenther@suse.de>
7081
7082         PR tree-optimization/60429
7083         PR tree-optimization/60485
7084         * tree-ssa-structalias.c (set_union_with_increment): Properly
7085         take into account all fields that overlap the shifted vars.
7086         (do_sd_constraint): Likewise.
7087         (do_ds_constraint): Likewise.
7088         (get_constraint_for_ptr_offset): Likewise.
7089
7090 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
7091
7092         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
7093         (nios2_compute_frame_layout):
7094         Add calculation of cfun->machine->fp_save_offset.
7095         (nios2_expand_prologue): Correct setting of frame pointer register
7096         in prologue.
7097         (nios2_expand_epilogue): Update recovery of stack pointer from
7098         frame pointer accordingly.
7099         (nios2_initial_elimination_offset): Update calculation of offset
7100         for eliminating to HARD_FRAME_POINTER_REGNUM.
7101
7102 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
7103
7104         PR ipa/60457
7105         * ipa.c (symtab_remove_unreachable_nodes): Don't call
7106         cgraph_get_create_node on VAR_DECLs.
7107
7108 2014-03-10  Richard Biener  <rguenther@suse.de>
7109
7110         PR middle-end/60474
7111         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
7112
7113 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
7114
7115         * config/vms/vms.opt (vms_float_format): New variable.
7116
7117 2014-03-08  Tobias Burnus  <burnus@net-b.de>
7118
7119         * doc/invoke.texi (-fcilkplus): Update implementation status.
7120
7121 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
7122             Richard Biener  <rguenther@suse.de>
7123
7124         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
7125         consistently accross all TUs.
7126         (run_gcc): Enable -fshort-double automatically at link at link-time
7127         and disallow override.
7128
7129 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
7130
7131         PR target/58271
7132         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
7133         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
7134         if they can't be used.
7135
7136 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7137
7138         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
7139         for Solaris 11/x86 ld.
7140         * configure: Regenerate.
7141
7142 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7143
7144         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
7145         (LIB_TLS_SPEC): Save as ld_tls_libs.
7146         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
7147         (HAVE_AS_IX86_TLSLDM): New test.
7148         * configure, config.in: Regenerate.
7149         * config/i386/i386.c (legitimize_tls_address): Fall back to
7150         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
7151         cannot support TLS_MODEL_LOCAL_DYNAMIC.
7152         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
7153         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
7154
7155 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
7156
7157         * common.opt (fira-loop-pressure): Mark as optimization.
7158
7159 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
7160
7161         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
7162         an OpenMP mappable type.
7163
7164 2014-03-06  Matthias Klose  <doko@ubuntu.com>
7165
7166         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
7167         MULTILIB_OSDIRNAMES is not defined.
7168
7169 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
7170             Meador Inge  <meadori@codesourcery.com>
7171
7172         PR target/58595
7173         * config/arm/arm.c (arm_tls_symbol_p): Remove.
7174         (arm_legitimize_address): Call legitimize_tls_address for any
7175         arm_tls_referenced_p expression, handle constant addend.  Call it
7176         before testing for !TARGET_ARM.
7177         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
7178
7179 2014-03-06  Richard Biener  <rguenther@suse.de>
7180
7181         PR middle-end/60445
7182         PR lto/60424
7183         PR lto/60427
7184         Revert
7185         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
7186
7187         * tree-streamer.c (record_common_node): Assert we don't record
7188         nodes with type double.
7189         (preload_common_node): Skip type double, complex double and double
7190         pointer since it is now frontend dependent due to fshort-double option.
7191
7192 2014-03-06  Richard Biener  <rguenther@suse.de>
7193
7194         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
7195         or -fno-lto is specified and the linker has full plugin support.
7196         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
7197         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
7198         * lto-wrapper.c (merge_and_complain): Merge compile-time
7199         optimization levels.
7200         (run_gcc): And pass it through to the link options.
7201
7202 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
7203
7204         PR debug/60381
7205         Revert:
7206         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
7207         PR debug/59992
7208         * cselib.c (remove_useless_values): Skip to avoid quadratic
7209         behavior if the condition moved from...
7210         (cselib_process_insn): ... here holds.
7211
7212 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
7213
7214         PR plugins/59335
7215         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
7216         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
7217
7218         PR plugins/59335
7219         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
7220         (TM_H): Add x86-tune.def.
7221
7222 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7223
7224         * config/aarch64/aarch64.c (generic_tunings):
7225         Use cortexa57_extra_costs.
7226
7227 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
7228
7229         PR lto/60404
7230         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
7231         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
7232         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
7233         cost for in_lto_p.
7234
7235 2014-03-04  Heiher  <r@hev.cc>
7236
7237         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
7238         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
7239
7240 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
7241
7242         * config/i386/predicates.md (const2356_operand): Change to ...
7243         (const2367_operand): ... this.
7244         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
7245         const2367_operand.
7246         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7247         (*avx512pf_scatterpf<mode>sf): Ditto.
7248         (avx512pf_scatterpf<mode>df): Ditto.
7249         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7250         (*avx512pf_scatterpf<mode>df): Ditto.
7251         * config/i386/i386.c (ix86_expand_builtin): Update
7252         incorrect hint operand error message.
7253
7254 2014-03-04  Richard Biener  <rguenther@suse.de>
7255
7256         * lto-section-in.c (lto_get_section_data): Fix const cast.
7257
7258 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
7259
7260         * tree-streamer.c (record_common_node): Assert we don't record
7261         nodes with type double.
7262         (preload_common_node): Skip type double, complex double and double
7263         pointer since it is now frontend dependent due to fshort-double option.
7264
7265 2014-03-04  Richard Biener  <rguenther@suse.de>
7266
7267         PR lto/60405
7268         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
7269         (lto_input_toplevel_asms): Likewise.
7270         * lto-section-in.c (lto_get_section_data): Instead do it here
7271         for every section.
7272
7273 2014-03-04  Richard Biener  <rguenther@suse.de>
7274
7275         PR tree-optimization/60382
7276         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
7277         dead PHIs a reduction.
7278
7279 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
7280
7281         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
7282         hint value.
7283         (_mm_prefetch): Move out of GCC target("sse") pragma.
7284         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
7285         GCC target("prfchw") pragma.
7286         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
7287         for locality <= 2.
7288         * config/i386/i386.c (ix86_option_override_internal): Enable
7289         -mprfchw with -mprefetchwt1.
7290
7291 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7292
7293         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
7294         Mark as varying.
7295
7296 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7297
7298         * opts.h (CL_PCH_IGNORE): Define.
7299         * targhooks.c (option_affects_pch_p):
7300         Return false for options that have CL_PCH_IGNORE set.
7301         * opt-functions.awk: Process PchIgnore.
7302         * doc/options.texi: Document PchIgnore.
7303
7304         * config/arc/arc.opt (misize): Add PchIgnore property.
7305
7306 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7307
7308         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
7309         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
7310         constraint on constants to permit them being loaded into
7311         GENERAL_REGS or BASE_REGS.
7312
7313 2014-03-03  Nick Clifton  <nickc@redhat.com>
7314
7315         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
7316         anti-cacnonical alternatives.
7317         (negandhi3_real): New pattern.
7318         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
7319
7320 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7321
7322         * config/avr/avr-mcus.def: Remove atxmega16x1.
7323         * config/avr/avr-tables.opt: Regenerate.
7324         * config/avr/t-multilib: Regenerate.
7325         * doc/avr-mmcu.texi: Regenerate.
7326
7327 2014-03-03  Tobias Grosser  <tobias@grosser.es>
7328             Mircea Namolaru  <mircea.namolaru@inria.fr>
7329
7330         PR tree-optimization/58028
7331         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
7332         scalar dimensions.
7333
7334 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7335
7336         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
7337         not handled by recognizers.
7338
7339 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
7340
7341         PR middle-end/60175
7342         * function.c (expand_function_end): Don't emit
7343         clobber_return_register sequence if clobber_after is a BARRIER.
7344         * cfgexpand.c (construct_exit_block): Append instructions before
7345         return_label to prev_bb.
7346
7347 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7348
7349         * config/rs6000/constraints.md: Document reserved use of "wc".
7350
7351 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
7352
7353         PR ipa/60150
7354         * ipa.c (function_and_variable_visibility): When dissolving comdat
7355         group, also set all symbols to local.
7356
7357 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
7358
7359         PR ipa/60306
7360
7361         Revert:
7362         2013-12-14  Jan Hubicka  <jh@suse.cz>
7363         PR middle-end/58477
7364         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
7365
7366 2014-03-02  Jon Beniston  <jon@beniston.com>
7367
7368         PR bootstrap/48230
7369         PR bootstrap/50927
7370         PR bootstrap/52466
7371         PR target/46898
7372         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
7373           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
7374         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
7375         (simple_return, *simple_return): New patterns
7376         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
7377         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
7378
7379 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
7380
7381         * dwarf2out.c (gen_subprogram_die): Tidy.
7382
7383 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
7384
7385         PR target/60071
7386         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
7387         (*mov_t_msb_neg_negc): ... this new insn.
7388
7389 2014-02-28  Jason Merrill  <jason@redhat.com>
7390
7391         PR c++/58678
7392         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
7393         function.
7394
7395 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
7396
7397         PR c++/60314
7398         * dwarf2out.c (decltype_auto_die): New static.
7399         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
7400         (gen_type_die_with_usage): Handle 'decltype(auto)'.
7401         (is_cxx_auto): Likewise.
7402
7403 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
7404
7405         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
7406         we are not using general regs only.
7407
7408 2014-02-28  Richard Biener  <rguenther@suse.de>
7409
7410         PR target/60280
7411         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
7412         previous fix and only allow to remove trivial pre-headers
7413         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
7414         (remove_forwarder_block): Properly update the latch of a loop.
7415
7416 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
7417
7418         PR debug/59992
7419         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
7420         (cselib_preserved_hash_table): New.
7421         (preserve_constants_and_equivs): Move preserved vals to it.
7422         (cselib_find_slot): Look it up first.
7423         (cselib_init): Initialize it.
7424         (cselib_finish): Release it.
7425         (dump_cselib_table): Dump it.
7426
7427 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
7428
7429         PR debug/59992
7430         * cselib.c (remove_useless_values): Skip to avoid quadratic
7431         behavior if the condition moved from...
7432         (cselib_process_insn): ... here holds.
7433
7434 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
7435
7436         PR debug/57232
7437         * var-tracking.c (vt_initialize): Apply the same condition to
7438         preserve the CFA base value.
7439
7440 2014-02-28  Joey Ye  <joey.ye@arm.com>
7441
7442         PR target/PR60169
7443         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
7444         if reload in progress or completed.
7445
7446 2014-02-28  Tobias Burnus  <burnus@net-b.de>
7447
7448         PR middle-end/60147
7449         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
7450         NAMELIST_DECL.
7451
7452 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7453
7454         * doc/tm.texi.in (Condition Code Status): Update documention for
7455         relative locations of cc0-setter and cc0-user.
7456
7457 2014-02-27  Jeff Law  <law@redhat.com>
7458
7459         PR rtl-optimization/52714
7460         * combine.c (try_combine): When splitting an unrecognized PARALLEL
7461         into two independent simple sets, if I3 is a jump, ensure the
7462         pattern we place into I3 is a (set (pc) ...).
7463
7464 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
7465             Jeff Law  <law@redhat.com>
7466
7467         PR rtl-optimization/49847
7468         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
7469         are in different blocks.
7470         * doc/tm.texi (Condition Code Status): Update documention for
7471         relative locations of cc0-setter and cc0-user.
7472
7473 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
7474
7475         PR target/59222
7476         * lra.c (lra_emit_add): Check SUBREG too.
7477
7478 2014-02-27  Andreas Schwab  <schwab@suse.de>
7479
7480         * config/m68k/m68k.c (m68k_option_override): Disable
7481         -flive-range-shrinkage for classic m68k.
7482         (m68k_override_options_after_change): Likewise.
7483
7484 2014-02-27  Marek Polacek  <polacek@redhat.com>
7485
7486         PR middle-end/59223
7487         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
7488         -Wmaybe-uninitialized.
7489
7490 2014-02-27  Alan Modra  <amodra@gmail.com>
7491
7492         PR target/57936
7493         * reload1.c (emit_input_reload_insns): When reload_override_in,
7494         set old to rl->in_reg when rl->in_reg is a subreg.
7495
7496 2014-02-26  Richard Biener  <rguenther@suse.de>
7497
7498         PR bootstrap/60343
7499         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
7500
7501 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
7502
7503         * common/config/i386/predicates.md (const1256_operand): Remove.
7504         (const2356_operand): New.
7505         (const_1_to_2_operand): Remove.
7506         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7507         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7508         (*avx512pf_gatherpf<mode>sf): Ditto.
7509         (avx512pf_gatherpf<mode>df): Ditto.
7510         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7511         (*avx512pf_gatherpf<mode>df): Ditto.
7512         (avx512pf_scatterpf<mode>sf): Ditto.
7513         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7514         (*avx512pf_scatterpf<mode>sf): Ditto.
7515         (avx512pf_scatterpf<mode>df): Ditto.
7516         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7517         (*avx512pf_scatterpf<mode>df): Ditto.
7518         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
7519
7520 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
7521
7522         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
7523         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
7524         (_mm512_mask_testn_epi64_mask): Move to ...
7525         * config/i386/avx512cdintrin.h: Here.
7526         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
7527         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
7528         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
7529         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
7530         TARGET_AVX512F from TARGET_AVX512CD.
7531
7532 2014-02-26  Richard Biener  <rguenther@suse.de>
7533
7534         PR ipa/60327
7535         * ipa.c (walk_polymorphic_call_targets): Properly guard
7536         call to inline_update_overall_summary.
7537
7538 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
7539
7540         PR target/60280
7541         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
7542         and latches only if requested.  Fix latch if it is removed.
7543         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
7544         LOOPS_HAVE_PREHEADERS.
7545
7546 2014-02-25  Andrew Pinski  <apinski@cavium.com>
7547
7548         * builtins.c (expand_builtin_thread_pointer): Create a new target
7549         when the target is NULL.
7550
7551 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
7552
7553         PR rtl-optimization/60317
7554         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7555         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7556         * lra-assigns.c: Include params.h.
7557         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
7558         other reload pseudos considerations.
7559
7560 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7561
7562         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
7563         to use canonical form for nor<mode>3.
7564
7565 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7566
7567         PR target/55426
7568         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
7569         conversions.
7570
7571 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
7572
7573         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
7574         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
7575         (ix86_handle_option): Handle OPT_mprefetchwt1.
7576         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
7577         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7578         PREFETCHWT1 CPUID.
7579         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7580         OPTION_MASK_ISA_PREFETCHWT1.
7581         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
7582         (PTA_PREFETCHWT1): New.
7583         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
7584         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
7585         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
7586         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
7587         (*prefetch_avx512pf_<mode>_: Change into ...
7588         (*prefetch_prefetchwt1_<mode>: This.
7589         * config/i386/i386.opt (mprefetchwt1): New.
7590         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
7591         (_mm_prefetch): Handle intent to write.
7592         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
7593
7594 2014-02-25  Richard Biener  <rguenther@suse.de>
7595
7596         PR middle-end/60291
7597         * emit-rtl.c (mem_attrs_htab): Remove.
7598         (mem_attrs_htab_hash): Likewise.
7599         (mem_attrs_htab_eq): Likewise.
7600         (set_mem_attrs): Always allocate new mem-attrs when something changed.
7601         (init_emit_once): Do not allocate mem_attrs_htab.
7602
7603 2014-02-25  Richard Biener  <rguenther@suse.de>
7604
7605         PR lto/60319
7606         * lto-opts.c (lto_write_options): Output non-explicit conservative
7607         -fwrapv, -fno-trapv and -fno-strict-overflow.
7608         * lto-wrapper.c (merge_and_complain): Handle merging those options.
7609         (run_gcc): And pass them through.
7610
7611 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
7612
7613         * sel-sched.c (calculate_new_fences): New parameter ptime.
7614         Calculate it as a maximum over all fence cycles.
7615         (sel_sched_region_2): Adjust the call to calculate_new_fences.
7616         Print the final schedule timing when sched_verbose.
7617
7618 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
7619
7620         PR rtl-optimization/60292
7621         * sel-sched.c (fill_vec_av_set): Do not reset target availability
7622         bit fot the fence instruction.
7623
7624 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
7625
7626         * calls.h: Fix typo in comment.
7627
7628 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
7629
7630         * config/pa/pa.c (pa_output_move_double): Don't valididate when
7631         adjusting offsetable addresses.
7632
7633 2014-02-24  Guozhi Wei  <carrot@google.com>
7634
7635         * sparseset.h (sparseset_pop): Fix the wrong index.
7636
7637 2014-02-24  Walter Lee  <walt@tilera.com>
7638
7639         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
7640         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
7641         triplet.
7642         * common/config/tilegx/tilegx-common.c
7643         (TARGET_DEFAULT_TARGET_FLAGS): Define.
7644         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
7645         (LINK_SPEC): Ditto.
7646         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
7647         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
7648         (tilegx_gimplify_va_arg_expr): Handle big endian.
7649         (tilegx_expand_unaligned_load): Ditto.
7650         (tilegx_expand_unaligned_store): Ditto.
7651         (TARGET_RETURN_IN_MSB): New.
7652         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
7653         (TARGET_ENDIAN_DEFAULT): New.
7654         (TARGET_BIG_ENDIAN): Handle big endian.
7655         (BYTES_BIG_ENDIAN): Ditto.
7656         (WORDS_BIG_ENDIAN): Ditto.
7657         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
7658         (ENDIAN_SPEC): New.
7659         (EXTRA_SPECS): New.
7660         * config/tilegx/tilegx.md (extv): Handle big endian.
7661         (extzv): Ditto.
7662         (insn_st<n>): Ditto.
7663         (insn_st<n>_add<bitsuffix>): Ditto.
7664         (insn_stnt<n>): Ditto.
7665         (insn_stnt<n>_add<bitsuffix>):Ditto.
7666         (vec_interleave_highv8qi): Handle big endian.
7667         (vec_interleave_highv8qi_be): New.
7668         (vec_interleave_highv8qi_le): New.
7669         (insn_v1int_h): Handle big endian.
7670         (vec_interleave_lowv8qi): Handle big endian.
7671         (vec_interleave_lowv8qi_be): New.
7672         (vec_interleave_lowv8qi_le): New.
7673         (insn_v1int_l): Handle big endian.
7674         (vec_interleave_highv4hi): Handle big endian.
7675         (vec_interleave_highv4hi_be): New.
7676         (vec_interleave_highv4hi_le): New.
7677         (insn_v2int_h): Handle big endian.
7678         (vec_interleave_lowv4hi): Handle big endian.
7679         (vec_interleave_lowv4hi_be): New.
7680         (vec_interleave_lowv4hi_le): New.
7681         (insn_v2int_l): Handle big endian.
7682         (vec_interleave_highv2si): Handle big endian.
7683         (vec_interleave_highv2si_be): New.
7684         (vec_interleave_highv2si_le): New.
7685         (insn_v4int_h): Handle big endian.
7686         (vec_interleave_lowv2si): Handle big endian.
7687         (vec_interleave_lowv2si_be): New.
7688         (vec_interleave_lowv2si_le): New.
7689         (insn_v4int_l): Handle big endian.
7690         * config/tilegx/tilegx.opt (mbig-endian): New option.
7691         (mlittle-endian): New option.
7692         * doc/install.texi: Document tilegxbe-linux.
7693         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7694
7695 2014-02-24  Martin Jambor  <mjambor@suse.cz>
7696
7697         PR ipa/60266
7698         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7699         there are no parameter descriptors.
7700
7701 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
7702
7703         PR rtl-optimization/60268
7704         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7705         initialization to ...
7706         (sched_rgn_init): ... here.
7707         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7708
7709 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7710
7711         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7712         names.
7713
7714 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
7715
7716         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7717         definition.
7718
7719 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7720
7721         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7722         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7723
7724 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7725
7726         * config/microblaze/predicates.md: Add cmp_op predicate.
7727         * config/microblaze/microblaze.md: Add branch_compare instruction
7728         which uses cmp_op predicate and emits cmp insn before branch.
7729         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7730         to microblaze_expand_conditional_branch and consolidate logic.
7731         (microblaze_expand_conditional_branch): emit branch_compare
7732         insn instead of handling cmp op separate from branch insn.
7733
7734 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7735
7736         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7737         to permit subregs.
7738
7739 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7740
7741         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7742         define_insn with define_expand and new define_insn
7743         *altivec_lve<VI_char>x_internal.
7744         (altivec_stve<VI_char>x): Replace define_insn with define_expand
7745         and new define_insn *altivec_stve<VI_char>x_internal.
7746         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7747         prototype.
7748         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7749         lve*x built-ins.
7750         (altivec_expand_stvex_be): New function.
7751
7752 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
7753
7754         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7755         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7756         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7757         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7758
7759 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7760
7761         PR target/60298
7762         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7763         instead of emit_move_insn.
7764
7765 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7766
7767         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7768         vspltw with vsldoi.
7769         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7770         gen_altivec_vsumsws.
7771
7772 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7773
7774         * config/rs6000/altivec.md (altivec_lvxl): Rename as
7775         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7776         (altivec_lvxl_<mode>): New define_expand incorporating
7777         -maltivec=be semantics where needed.
7778         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7779         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7780         semantics where needed.
7781         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7782         (altivec_stvx_<mode>): New define_expand incorporating
7783         -maltivec=be semantics where needed.
7784         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7785         VM2 iterator instead of V4SI.
7786         (altivec_stvxl_<mode>): New define_expand incorporating
7787         -maltivec=be semantics where needed.
7788         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7789         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7790         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7791         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7792         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7793         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7794         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7795         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7796         ALTIVEC_BUILTIN_STVXL.
7797         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7798         (altivec_expand_stvx_be): Likewise.
7799         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7800         (altivec_expand_lvx_be): Likewise.
7801         (altivec_expand_stvx_be): Likewise.
7802         (altivec_expand_builtin): Add cases for
7803         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7804         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7805         (altivec_init_builtins): Add definitions for
7806         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7807         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7808
7809 2014-02-21  Catherine Moore  <clm@codesourcery.com>
7810
7811         * doc/invoke.texi (mvirt, mno-virt): Document.
7812         * config/mips/mips.opt (mvirt): New option.
7813         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7814
7815 2014-02-21  Richard Biener  <rguenther@suse.de>
7816
7817         PR tree-optimization/60276
7818         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7819         (STMT_VINFO_MIN_NEG_DIST): New macro.
7820         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7821         STMT_VINFO_MIN_NEG_DIST.
7822         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7823         made for negative dependence distances still hold.
7824
7825 2014-02-21  Richard Biener  <rguenther@suse.de>
7826
7827         PR middle-end/60291
7828         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7829         DECL_INITIAL for globals not in the current function context.
7830
7831 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7832
7833         PR tree-optimization/56490
7834         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7835         * tree-ssa-uninit.c: Include params.h.
7836         (compute_control_dep_chain): Add num_calls argument, return false
7837         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7838         num_calls to recursive call.
7839         (find_predicates): Change dep_chain into normal array,
7840         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7841         variable and adjust compute_control_dep_chain caller.
7842         (find_def_preds): Likewise.
7843
7844 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
7845
7846         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7847         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7848
7849 2014-02-21  Nick Clifton  <nickc@redhat.com>
7850
7851         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7852         (pushhi1): Likewise.
7853         (popqi1): Add mode to pre_dec.
7854         (pophi1): Likewise.
7855
7856 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7857
7858         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7859         mode for mask of V8SFmode permutation.
7860
7861 2014-02-20  Richard Henderson  <rth@redhat.com>
7862
7863         PR c++/60272
7864         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7865         a new pseudo for OLDVAL.
7866
7867 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
7868
7869         PR target/57896
7870         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7871         gen_reg_rtx if d->testing_p.
7872         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7873         if d->testing_p and we will certainly return true.
7874         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
7875         if d->testing_p.
7876
7877 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
7878
7879         * emit-rtl.c (gen_reg_rtx): Assert that
7880         crtl->emit.regno_pointer_align_length is non-zero.
7881
7882 2014-02-20  Richard Henderson  <rth@redhat.com>
7883
7884         PR c++/60272
7885         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7886         on failure the store back into EXPECT.
7887
7888 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
7889             Sandra Loosemore  <sandra@codesourcery.com>
7890
7891         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7892         * config/nios2/nios2.c (nios2_function_profiler): Add
7893         -fPIC (flag_pic == 2) support.
7894         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7895         (nios2_large_offset_p): New function.
7896         (nios2_unspec_reloc_p): Move up position, update to use
7897         nios2_large_offset_p.
7898         (nios2_unspec_address): Remove function.
7899         (nios2_unspec_offset): New function.
7900         (nios2_large_got_address): New function.
7901         (nios2_got_address): Add large offset support.
7902         (nios2_legitimize_tls_address): Update usage of removed and new
7903         functions.
7904         (nios2_symbol_binds_local_p): New function.
7905         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7906         (nios2_legitimize_address): Update to use nios2_large_offset_p.
7907         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7908         (nios2_print_operand): Merge H/L processing, add hiadj/lo
7909         processing for (const (unspec ...)).
7910         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7911
7912 2014-02-20  Richard Biener  <rguenther@suse.de>
7913
7914         * tree-cfg.c (replace_uses_by): Mark altered BBs before
7915         doing the substitution.
7916         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7917
7918 2014-02-20  Martin Jambor  <mjambor@suse.cz>
7919
7920         PR ipa/55260
7921         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7922         info when checking whether lattices are bottom.
7923
7924 2014-02-20  Richard Biener  <rguenther@suse.de>
7925
7926         PR middle-end/60221
7927         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7928         regions at -O0.
7929
7930 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
7931
7932         PR ipa/58555
7933         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7934         parameter specifying the scaling.
7935         (inline_call): Update.
7936         (want_inline_recursively): Guard division by zero.
7937         (recursive_inlining): Update.
7938         * ipa-inline.h (clone_inlined_nodes): Update.
7939
7940 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7941
7942         PR target/60204
7943         * config/i386/i386.c (classify_argument): Pass structures of size
7944         64 bytes or less in register.
7945
7946 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7947             Kirill Yukhin  <kirill.yukhin@intel.com>
7948
7949         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7950         (_mm_rcp28_round_ss): Ditto.
7951         (_mm_rsqrt28_round_sd): Ditto.
7952         (_mm_rsqrt28_round_ss): Ditto.
7953         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7954         (_mm_rcp14_round_ss): Ditto.
7955         (_mm_rsqrt14_round_sd): Ditto.
7956         (_mm_rsqrt14_round_ss): Ditto.
7957         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7958         the first input operand, get rid of match_dup.
7959         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7960         attribute to sse.
7961         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7962         Ditto.
7963         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7964         operand as the first input operand, set type attribute.
7965         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7966         Set type attribute.
7967         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7968         operand as the first input operand, set type attribute.
7969
7970 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7971
7972         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7973         bit of zero.
7974
7975 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7976
7977         PR target/60207
7978         * config/i386/i386.c (construct_container): Remove TFmode check
7979         for X86_64_INTEGER_CLASS.
7980
7981 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
7982
7983         PR target/59794
7984         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7985         only when -Wpsabi is enabled.
7986
7987 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
7988
7989          PR target/59799
7990         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7991         passing arrays in registers are the same as for structs, so remove the
7992         special case for them.
7993
7994 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
7995
7996         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7997         destination type, extract only the valid bits if the source type is not
7998         integral and has a different mode.
7999
8000 2014-02-19  Richard Biener  <rguenther@suse.de>
8001
8002         PR ipa/60243
8003         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
8004         for all calls.
8005
8006 2014-02-19  Richard Biener  <rguenther@suse.de>
8007
8008         PR ipa/60243
8009         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
8010         (ipa_modify_call_arguments): Emit an argument load explicitely and
8011         preserve virtual SSA form there and for the replacement call.
8012         Do not update SSA form nor free dominance info.
8013
8014 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
8015
8016         * ipa.c (function_and_variable_visibility): Also clear WEAK
8017         flag when disolving COMDAT_GROUP.
8018
8019 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
8020
8021         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
8022         * ipa-prop.c (ipa_set_jf_known_type): Return early when
8023         not devirtualizing.
8024         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
8025         do more sanity checks.
8026         (detect_type_change): Return true when giving up early.
8027         (compute_complex_assign_jump_func): Fix type parameter of
8028         ipa_set_ancestor_jf.
8029         (compute_complex_ancestor_jump_func): Likewise.
8030         (update_jump_functions_after_inlining): Fix updating of
8031         ancestor function.
8032         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
8033
8034 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
8035
8036         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
8037         inline clones when edge disappears.
8038
8039 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
8040
8041         PR target/60203
8042         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
8043         Split 64-bit moves into 2 patterns.  Do not allow the use of
8044         direct move for TDmode in little endian, since the decimal value
8045         has little endian bytes within a word, but the 64-bit pieces are
8046         ordered in a big endian fashion, and normal subreg's of TDmode are
8047         not allowed.
8048         (mov<mode>_64bit_dm): Likewise.
8049         (movtd_64bit_nodm): Likewise.
8050
8051 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
8052
8053         PR tree-optimization/60174
8054         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
8055         statement of an SSA_NAME that occurs in an abnormal PHI node.
8056
8057 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
8058
8059         PR sanitizer/60142
8060         * final.c (SEEN_BB): Remove.
8061         (SEEN_NOTE, SEEN_EMITTED): Renumber.
8062         (final_scan_insn): Don't force_source_line on second
8063         NOTE_INSN_BASIC_BLOCK.
8064
8065 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
8066
8067         PR target/60205
8068         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
8069         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
8070         (type_natural_mode): Warn ABI change when %zmm register is not
8071         available for AVX512F vector value passing.
8072
8073 2014-02-18  Kai Tietz  <ktietz@redhat.com>
8074
8075         PR target/60193
8076         * config/i386/i386.c (ix86_expand_prologue): Use value in
8077         rax register as displacement when restoring %r10 or %rax.
8078         Fix wrong offset when restoring both registers.
8079
8080 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
8081
8082         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
8083         assertion with conditional return.
8084
8085 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
8086             Uros Bizjak  <ubizjak@gmail.com>
8087
8088         PR driver/60233
8089         * config/i386/driver-i386.c (host_detect_local_cpu): If
8090         YMM state is not saved by the OS, also clear has_f16c.  Move
8091         CPUID 0x80000001 handling before YMM state saving checking.
8092
8093 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
8094
8095         PR rtl-optimization/58960
8096         * haifa-sched.c (alloc_global_sched_pressure_data): New,
8097         factored out from ...
8098         (sched_init): ... here.
8099         (free_global_sched_pressure_data): New, factored out from ...
8100         (sched_finish): ... here.
8101         * sched-int.h (free_global_sched_pressure_data): Declare.
8102         * sched-rgn.c (nr_regions_initial): New static global.
8103         (haifa_find_rgns): Initialize it.
8104         (schedule_region): Disable sched-pressure for the newly
8105         generated regions.
8106
8107 2014-02-17  Richard Biener  <rguenther@suse.de>
8108
8109         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
8110         release SSA defs of pattern stmts.
8111
8112 2014-02-17  Richard Biener  <rguenther@suse.de>
8113
8114         * tree-inline.c (expand_call_inline): Release the virtual
8115         operand defined by the call we are about to inline.
8116
8117 2014-02-17  Richard Biener  <rguenther@suse.de>
8118
8119         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
8120
8121 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
8122             Ilya Tocar  <ilya.tocar@intel.com>
8123
8124         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
8125         arguments order in builtin.
8126         (_mm512_permutexvar_epi64): Ditto.
8127         (_mm512_mask_permutexvar_epi64): Ditto
8128         (_mm512_maskz_permutexvar_epi32): Ditto
8129         (_mm512_permutexvar_epi32): Ditto
8130         (_mm512_mask_permutexvar_epi32): Ditto
8131
8132 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8133
8134         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
8135         (p8_vmrgow): Likewise.
8136
8137 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8138
8139         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
8140         endian targets.
8141
8142 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
8143
8144         PR target/60203
8145         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
8146         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
8147         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
8148         using direct move instructions on ISA 2.07.  Also adjust
8149         instruction length for 64-bit.
8150         (mov<mode>_64bit, TFmode/TDmode): Likewise.
8151         (mov<mode>_32bit, TFmode/TDmode): Likewise.
8152
8153 2014-02-15  Alan Modra  <amodra@gmail.com>
8154
8155         PR target/58675
8156         PR target/57935
8157         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
8158         find_replacement on parts of insn rtl that might be reloaded.
8159
8160 2014-02-15  Richard Biener  <rguenther@suse.de>
8161
8162         PR tree-optimization/60183
8163         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
8164         (tree_ssa_phiprop): Calculate and free post-dominators.
8165
8166 2014-02-14  Jeff Law  <law@redhat.com>
8167
8168         PR rtl-optimization/60131
8169         * ree.c (get_extended_src_reg): New function.
8170         (combine_reaching_defs): Use it rather than assuming location of REG.
8171         (find_and_remove_re): Verify first operand of extension is
8172         a REG before adding the insns to the copy list.
8173
8174 2014-02-14  Roland McGrath  <mcgrathr@google.com>
8175
8176         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
8177         * configure: Regenerated.
8178         * config.in: Regenerated.
8179         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
8180         instead of ASM_SHORT.
8181
8182 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
8183             Richard Earnshaw  <rearnsha@arm.com>
8184
8185         PR rtl-optimization/59535
8186         * lra-constraints.c (process_alt_operands): Encourage alternative
8187         when unassigned pseudo class is superset of the alternative class.
8188         (inherit_reload_reg): Don't inherit when optimizing for code size.
8189         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
8190         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
8191         modes not less than 4 for Thumb1.
8192
8193 2014-02-14  Kyle McMartin  <kyle@redhat.com>
8194
8195         PR pch/60010
8196         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
8197
8198 2014-02-14  Richard Biener  <rguenther@suse.de>
8199
8200         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
8201         (get_frame_arg): Drop the assert with langhook types_compatible_p.
8202         Do not strip INDIRECT_REFs.
8203
8204 2014-02-14  Richard Biener  <rguenther@suse.de>
8205
8206         PR lto/60179
8207         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
8208         DECL_FUNCTION_SPECIFIC_TARGET.
8209         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
8210         * tree-streamer-out.c (pack_ts_target_option): Remove.
8211         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
8212         (write_ts_function_decl_tree_pointers): Do not stream
8213         DECL_FUNCTION_SPECIFIC_TARGET.
8214         * tree-streamer-in.c (unpack_ts_target_option): Remove.
8215         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
8216         (lto_input_ts_function_decl_tree_pointers): Do not stream
8217         DECL_FUNCTION_SPECIFIC_TARGET.
8218
8219 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
8220
8221         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
8222         (get_initial_def_for_induction, vectorizable_induction): Ignore
8223         debug stmts when looking for exit_phi.
8224         (vectorizable_live_operation): Fix up condition.
8225
8226 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
8227
8228         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
8229         nreverse() because it changes the content of original tree list.
8230
8231 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
8232
8233         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
8234         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
8235
8236 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
8237
8238         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
8239         GNU coding standards.
8240
8241 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
8242
8243         PR debug/60152
8244         * dwarf2out.c (gen_subprogram_die): Don't call
8245         add_calling_convention_attribute if subr_die is old_die.
8246
8247 2014-02-13  Sharad Singhai  <singhai@google.com>
8248
8249         * doc/optinfo.texi: Fix order of nodes.
8250
8251 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
8252
8253         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
8254         operands[2], not operands[3].
8255
8256 2014-02-13  Richard Biener  <rguenther@suse.de>
8257
8258         PR bootstrap/59878
8259         * doc/install.texi (ISL): Update recommended version to 0.12.2,
8260         mention the possibility of an in-tree build.
8261         (CLooG): Update recommended version to 0.18.1, mention the
8262         possibility of an in-tree build and clarify that the ISL
8263         bundled with CLooG does not work.
8264
8265 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
8266
8267         PR target/43546
8268         * expr.c (compress_float_constant): If x is a hard register,
8269         extend into a pseudo and then move to x.
8270
8271 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8272
8273         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
8274         caused by bad second argument to warning_at() with -mhotpatch and
8275         nested functions (e.g. with gfortran).
8276
8277 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
8278
8279         * opts.c (option_name): Remove "enabled by default" rider.
8280
8281 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
8282
8283         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
8284
8285 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8286             Uros Bizjak  <ubizjak@gmail.com>
8287
8288         PR target/60151
8289         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
8290         * configure: Regenerated.
8291
8292 2014-02-12  Richard Biener  <rguenther@suse.de>
8293
8294         * vec.c (vec_prefix::calculate_allocation): Move as
8295         inline variant to vec.h.
8296         (vec_prefix::calculate_allocation_1): New out-of-line version.
8297         * vec.h (vec_prefix::calculate_allocation_1): Declare.
8298         (vec_prefix::m_has_auto_buf): Rename to ...
8299         (vec_prefix::m_using_auto_storage): ... this.
8300         (vec_prefix::calculate_allocation): Inline the easy cases
8301         and dispatch to calculate_allocation_1 which doesn't need the
8302         prefix address.
8303         (va_heap::reserve): Use gcc_checking_assert.
8304         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
8305         m_using_auto_storage.
8306         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
8307         member and adjust.
8308         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
8309         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
8310         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
8311
8312 2014-02-12  Richard Biener  <rguenther@suse.de>
8313
8314         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
8315         when we found a dependence.
8316
8317 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
8318
8319         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
8320         common code...
8321         (maybe_fold_stmt): ... into this new function.
8322         * omp-low.c (lower_omp): Update comment.
8323
8324         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
8325         last use.
8326
8327         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
8328         dereference.
8329
8330 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
8331
8332         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
8333         identifiers in comments.
8334         (cortexa53_extra_costs): Likewise.
8335         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
8336         (cortexa7_extra_costs): Likewise.
8337         (cortexa12_extra_costs): Likewise.
8338         (cortexa15_extra_costs): Likewise.
8339         (v7m_extra_costs): Likewise.
8340
8341 2014-02-12  Richard Biener  <rguenther@suse.de>
8342
8343         PR middle-end/60092
8344         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
8345         of posix_memalign being successful.
8346         (lower_stmt): Restrict lowering of posix_memalign to when
8347         -ftree-bit-ccp is enabled.
8348
8349 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8350
8351         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
8352         arg_loc.
8353         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8354
8355 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
8356
8357         PR rtl-optimization/60116
8358         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
8359         other_insn once the combination has been validated.
8360
8361 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
8362
8363         PR lto/59468
8364         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
8365         and wrapper.
8366         * ipa-devirt.c: Include demangle.h
8367         (odr_violation_reported): New static variable.
8368         (add_type_duplicate): Update odr_violations.
8369         (maybe_record_node): Add completep parameter; update it.
8370         (record_target_from_binfo): Add COMPLETEP parameter;
8371         update it as needed.
8372         (possible_polymorphic_call_targets_1): Likewise.
8373         (struct polymorphic_call_target_d): Add nonconstruction_targets;
8374         rename FINAL to COMPLETE.
8375         (record_targets_from_bases): Sanity check we found the binfo;
8376         fix COMPLETEP updating.
8377         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
8378         parameter, fix computing of COMPLETEP.
8379         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
8380         at LTO time do demangling.
8381         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
8382         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
8383         parameter.
8384         (gimple_get_virt_method_for_binfo): Likewise.
8385         * gimple-fold.h (gimple_get_virt_method_for_binfo,
8386         gimple_get_virt_method_for_vtable): Update prototypes.
8387
8388 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
8389
8390         PR target/49008
8391         * genautomata.c (add_presence_absence): Fix typo with
8392         {final_}presence_list.
8393
8394 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8395
8396         PR target/60137
8397         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
8398         for VSX/Altivec vectors that land in GPR registers.
8399
8400 2014-02-11  Richard Henderson  <rth@redhat.com>
8401             Jakub Jelinek  <jakub@redhat.com>
8402
8403         PR debug/59776
8404         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
8405         around drhs if type conversion to lacc->type is not useless.
8406
8407 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8408
8409         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
8410         tuning struct.
8411         (cortex-a57.cortex-a53): Likewise.
8412         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
8413
8414 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8415
8416         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
8417         arm_restrict_it.
8418
8419 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
8420
8421         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
8422         add_options_for_arm_vfp3.
8423
8424 2014-02-11  Jeff Law  <law@redhat.com>
8425
8426         PR middle-end/54041
8427         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
8428         object with an undesirable mode.
8429
8430 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8431
8432         PR libgomp/60107
8433         * config/i386/sol2-9.h: New file.
8434         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
8435         *-*-solaris2.9*): Use it.
8436
8437 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
8438
8439         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
8440         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
8441
8442 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
8443
8444         * config/microblaze/microblaze.c: Extend mcpu version format
8445
8446 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
8447
8448         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
8449
8450 2014-02-10  Richard Henderson  <rth@redhat.com>
8451
8452         PR target/59927
8453         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
8454         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
8455         ms-abi vs -mno-accumulate-outgoing-args.
8456         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
8457         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
8458         respect to ms-abi.
8459
8460 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8461
8462         PR middle-end/60080
8463         * cfgexpand.c (expand_asm_operands): Attach source location to
8464         ASM_INPUT rtx objects.
8465         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
8466
8467 2014-02-10  Nick Clifton  <nickc@redhat.com>
8468
8469         * config/mn10300/mn10300.c (popcount): New function.
8470         (mn10300_expand_prologue): Include saved registers in stack usage
8471         count.
8472
8473 2014-02-10  Jeff Law  <law@redhat.com>
8474
8475         PR middle-end/52306
8476         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
8477         when changing the SET_DEST of a prior insn to avoid an input reload.
8478
8479 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8480
8481         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
8482         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
8483         -mcall-openbsd, or -mcall-linux.
8484         (CC1_ENDIAN_BIG_SPEC): Remove.
8485         (CC1_ENDIAN_LITTLE_SPEC): Remove.
8486         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8487         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
8488         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
8489         and %cc1_endian_default.
8490         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8491
8492 2014-02-10  Richard Biener  <rguenther@suse.de>
8493
8494         PR tree-optimization/60115
8495         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
8496         MEM_REF handling.  Properly verify that the accesses are not
8497         out of the objects bound.
8498
8499 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8500
8501         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
8502         coretex to cortex.
8503
8504 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8505
8506         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
8507         proper constants and fix formatting.
8508         (possible_polymorphic_call_targets): Fix formatting.
8509
8510 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
8511             Ilya Tocar  <ilya.tocar@intel.com>
8512
8513         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
8514         (_mm512_loadu_epi32): Renamed into...
8515         (_mm512_loadu_si512): This.
8516         (_mm512_storeu_epi32): Renamed into...
8517         (_mm512_storeu_si512): This.
8518         (_mm512_maskz_ceil_ps): Removed.
8519         (_mm512_maskz_ceil_pd): Ditto.
8520         (_mm512_maskz_floor_ps): Ditto.
8521         (_mm512_maskz_floor_pd): Ditto.
8522         (_mm512_floor_round_ps): Ditto.
8523         (_mm512_floor_round_pd): Ditto.
8524         (_mm512_ceil_round_ps): Ditto.
8525         (_mm512_ceil_round_pd): Ditto.
8526         (_mm512_mask_floor_round_ps): Ditto.
8527         (_mm512_mask_floor_round_pd): Ditto.
8528         (_mm512_mask_ceil_round_ps): Ditto.
8529         (_mm512_mask_ceil_round_pd): Ditto.
8530         (_mm512_maskz_floor_round_ps): Ditto.
8531         (_mm512_maskz_floor_round_pd): Ditto.
8532         (_mm512_maskz_ceil_round_ps): Ditto.
8533         (_mm512_maskz_ceil_round_pd): Ditto.
8534         (_mm512_expand_pd): Ditto.
8535         (_mm512_expand_ps): Ditto.
8536         * config/i386/i386.c (ix86_builtins): Remove
8537         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
8538         (bdesc_args): Ditto.
8539         * config/i386/predicates.md (const1256_operand): New.
8540         (const_1_to_2_operand): Ditto.
8541         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
8542         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8543         (*avx512pf_gatherpf<mode>sf): Ditto.
8544         (avx512pf_gatherpf<mode>df): Ditto.
8545         (*avx512pf_gatherpf<mode>df_mask): Ditto.
8546         (*avx512pf_gatherpf<mode>df): Ditto.
8547         (avx512pf_scatterpf<mode>sf): Ditto.
8548         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8549         (*avx512pf_scatterpf<mode>sf): Ditto.
8550         (avx512pf_scatterpf<mode>df): Ditto.
8551         (*avx512pf_scatterpf<mode>df_mask): Ditto.
8552         (*avx512pf_scatterpf<mode>df): Ditto.
8553         (avx512f_expand<mode>): Removed.
8554         (<shift_insn><mode>3<mask_name>): Change predicate type.
8555
8556 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
8557
8558         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
8559         not at the end of datarefs vector use ordered_remove to avoid
8560         reordering datarefs vector.
8561
8562         PR c/59984
8563         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
8564         mark local addressable non-static vars as GOVD_PRIVATE
8565         instead of GOVD_LOCAL.
8566         * omp-low.c (lower_omp_for): Move gimple_bind_vars
8567         and BLOCK_VARS of gimple_bind_block to new_stmt rather
8568         than copying them.
8569
8570         PR middle-end/60092
8571         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
8572         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
8573         assume_aligned or alloc_align attributes.
8574         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
8575         arguments.  Handle also assume_aligned and alloc_align attributes.
8576         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
8577         calls to functions with assume_aligned or alloc_align attributes.
8578         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
8579
8580 2014-02-08  Terry Guo  <terry.guo@arm.com>
8581
8582         * doc/invoke.texi: Document ARM -march=armv7e-m.
8583
8584 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
8585
8586         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
8587         flag on __cilkrts_rethrow builtin.
8588
8589         PR ipa/60026
8590         * ipa-cp.c (determine_versionability): Fail at -O0
8591         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
8592         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
8593
8594         Revert:
8595         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
8596
8597         PR ipa/60026
8598         * tree-inline.c (copy_forbidden): Fail for
8599         __attribute__((optimize (0))) functions.
8600
8601 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
8602
8603         * varpool.c: Include pointer-set.h.
8604         (varpool_remove_unreferenced_decls): Variables in other partitions
8605         will not be output; be however careful to not lose information
8606         about partitioning.
8607
8608 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
8609
8610         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
8611         lookup in the vtable constructor.
8612
8613 2014-02-07  Jeff Law  <law@redhat.com>
8614
8615         PR target/40977
8616         * config/m68k/m68k.md (ashldi_extsi): Turn into a
8617         define_insn_and_split.
8618
8619         * ipa-inline.c (inline_small_functions): Fix typos.
8620
8621 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8622
8623         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
8624         (s390_can_use_return_insn): Declare.
8625         * config/s390/s390.h (EPILOGUE_USES): Define.
8626         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
8627         instructions.
8628         (s390_chunkify_start): Handle return JUMP_LABELs.
8629         (s390_early_mach): Emit a main_pool instruction on the entry edge.
8630         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
8631         (s390_can_use_return_insn): New functions.
8632         (s390_fix_long_loop_prediction): Handle conditional returns.
8633         (TARGET_SET_UP_BY_PROLOGUE): Define.
8634         * config/s390/s390.md (ANY_RETURN): New code iterator.
8635         (*creturn, *csimple_return, return, simple_return): New patterns.
8636
8637 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8638
8639         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
8640         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
8641         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
8642         REG_CFA_RESTORE list when deciding not to restore a register.
8643
8644 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8645
8646         * config/s390/s390.c: Include tree-pass.h and context.h.
8647         (s390_early_mach): New function, split out from...
8648         (s390_emit_prologue): ...here.
8649         (pass_data_s390_early_mach): New pass structure.
8650         (pass_s390_early_mach): New class.
8651         (s390_option_override): Create and register early_mach pass.
8652         Move to end of file.
8653
8654 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8655
8656         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
8657         to match for the exit block.
8658
8659 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8660
8661         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
8662         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
8663         Reject misaligned operands.
8664
8665 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8666
8667         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
8668
8669 2014-02-07  Richard Biener  <rguenther@suse.de>
8670
8671         PR middle-end/60092
8672         * gimple-low.c (lower_builtin_posix_memalign): New function.
8673         (lower_stmt): Call it to lower posix_memalign in a way
8674         to make alignment info accessible.
8675
8676 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
8677
8678         PR c++/60082
8679         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
8680         __builtin_setjmp_receiver.
8681
8682 2014-02-07  Richard Biener  <rguenther@suse.de>
8683
8684         PR middle-end/60092
8685         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
8686         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
8687         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8688         Handle BUILT_IN_POSIX_MEMALIGN.
8689         (find_func_clobbers): Likewise.
8690         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8691         (call_may_clobber_ref_p_1): Likewise.
8692
8693 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8694
8695         PR ipa/59918
8696         * ipa-devirt.c (record_target_from_binfo): Remove overactive
8697         sanity check.
8698
8699 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8700
8701         PR ipa/59469
8702         * lto-cgraph.c (lto_output_node): Use
8703         symtab_get_symbol_partitioning_class.
8704         (lto_output_varpool_node): likewise.
8705         (symtab_get_symbol_partitioning_class): Move here from
8706         lto/lto-partition.c
8707         * cgraph.h (symbol_partitioning_class): Likewise.
8708         (symtab_get_symbol_partitioning_class): Declare.
8709
8710 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8711
8712         * ggc.h (ggc_internal_cleared_alloc): New macro.
8713         * vec.h (vec_safe_copy): Handle memory stats.
8714         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8715         * target-globals.c (save_target_globals): Likewise.
8716
8717 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8718
8719         PR target/60077
8720         * expr.c (emit_move_resolve_push): Export; be bit more selective
8721         on when to clear alias set.
8722         * expr.h (emit_move_resolve_push): Declare.
8723         * function.h (struct function): Add tail_call_marked.
8724         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8725         * config/i386/i386-protos.h (ix86_expand_push): Remove.
8726         * config/i386/i386.md (TImode move expander): De not call
8727         ix86_expand_push.
8728         (FP push expanders): Preserve memory attributes.
8729         * config/i386/sse.md (push<mode>1): Remove.
8730         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8731         (ix86_expand_push): Remove.
8732         * config/i386/mmx.md (push<mode>1): Remove.
8733
8734 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8735
8736         PR rtl-optimization/60030
8737         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8738         lopart with paradoxical subreg before shifting it up by hprec.
8739
8740 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8741
8742         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8743         Remove extra newline at end of file.
8744         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8745         (arm_issue_rate): Handle cortexa57.
8746         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8747         (cortex-a57.cortex-a53): Likewise.
8748
8749 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8750
8751         PR target/59575
8752         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8753         don't record in REG_FRAME_RELATED_EXPR registers not set in that
8754         bitmask.
8755         (arm_expand_prologue): Adjust all callers.
8756         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8757         info, registers also at the lowest numbered registers side.  Use
8758         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8759         XEXP.
8760
8761         PR debug/59992
8762         * var-tracking.c (adjust_mems): Before adding a SET to
8763         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8764
8765 2014-02-06  Alan Modra  <amodra@gmail.com>
8766
8767         PR target/60032
8768         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8769         change SDmode to DDmode when lra_in_progress.
8770
8771 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8772
8773         PR middle-end/59150
8774         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8775         free_data_ref on the dr first, and before goto again also set dr
8776         to the next dr.  For simd_lane_access, free old datarefs[i] before
8777         overwriting it.  For get_vectype_for_scalar_type failure, don't
8778         free_data_ref if simd_lane_access.
8779
8780         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8781
8782         PR target/60062
8783         * tree.h (opts_for_fn): New inline function.
8784         (opt_for_fn): Define.
8785         * config/i386/i386.c (ix86_function_regparm): Use
8786         opt_for_fn (decl, optimize) instead of optimize.
8787
8788 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8789
8790         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8791         for SYMBOL_REF in large memory model.
8792
8793 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8794
8795         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8796         and crypto support.
8797         (cortex-a57): Likewise.
8798         (cortex-a57.cortex-a53): Likewise.
8799
8800 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
8801             Kugan Vivekanandarajah  <kuganv@linaro.org>
8802
8803         * config/arm/arm.c (arm_vector_alignment_reachable): Check
8804         unaligned_access.
8805         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8806
8807 2014-02-06  Richard Biener  <rguenther@suse.de>
8808
8809         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8810         set_loop_copy and initialize_original_copy_tables.
8811
8812 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
8813
8814         * config/aarch64/aarch64-simd.md
8815         (aarch64_ashr_simddi): Change QI to SI.
8816
8817 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8818             Jakub Jelinek  <jakub@redhat.com>
8819
8820         PR middle-end/60013
8821         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8822         of the dataflow.
8823
8824 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8825
8826         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8827         CODE_FOR_altivec_vpku[hw]um to
8828         CODE_FOR_altivec_vpku[hw]um_direct.
8829         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8830         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8831         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8832         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8833
8834 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8835
8836         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8837         generation for -maltivec=be.
8838         (altivec_vsumsws): Simplify redundant test.
8839
8840 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8841
8842         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8843         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8844         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8845         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8846         gen_altivec_vpkuwum.
8847         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8848         BYTES_BIG_ENDIAN.
8849         (altivec_vpks<VI_char>ss): Likewise.
8850         (altivec_vpks<VI_char>us): Likewise.
8851         (altivec_vpku<VI_char>us): Likewise.
8852         (altivec_vpku<VI_char>um): Likewise.
8853         (altivec_vpku<VI_char>um_direct): New (copy of
8854         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8855         internal use).
8856         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8857         target is little endian and -maltivec=be is not specified.
8858         (*altivec_vupkhs<VU_char>_direct): New (copy of
8859         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8860         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8861         target is little endian and -maltivec=be is not specified.
8862         (*altivec_vupkls<VU_char>_direct): New (copy of
8863         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8864         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8865         little endian and -maltivec=be is not specified.
8866         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8867         little endian and -maltivec=be is not specified.
8868
8869 2014-02-05  Richard Henderson  <rth@redhat.com>
8870
8871         PR debug/52727
8872         * combine-stack-adj.c: Revert r206943.
8873         * sched-int.h (struct deps_desc): Add last_args_size.
8874         * sched-deps.c (init_deps): Initialize it.
8875         (sched_analyze_insn): Add OUTPUT dependencies between insns that
8876         contain REG_ARGS_SIZE notes.
8877
8878 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8879
8880         * lto-cgraph.c (asm_nodes_output): Make global.
8881         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8882         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8883         (driver_handle_option): Handle OPT_fwpa.
8884
8885 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
8886
8887         PR ipa/59947
8888         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8889         a comment typo and formatting issue.  If odr_hash hasn't been
8890         created, return vNULL and set *completep to false.
8891
8892         PR middle-end/57499
8893         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8894         bb with no successors.
8895
8896 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
8897
8898         PR target/59718
8899         * doc/invoke.texi (-march): Clarify documentation for ARM.
8900         (-mtune): Likewise.
8901         (-mcpu): Likewise.
8902
8903 2014-02-05  Richard Biener  <rguenther@suse.de>
8904
8905         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8906         when not vectorizing because of too many alias checks.
8907         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8908         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8909
8910 2014-02-05  Nick Clifton  <nickc@redhat.com>
8911
8912         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8913         accept extended registers in any mode when compiling for the MN10300.
8914
8915 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
8916
8917         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8918         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8919         sanitization attributes.
8920         (can_inline_edge_p): Likewise.
8921         (sanitize_attrs_match_for_inline_p): New function.
8922
8923 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8924
8925         * ipa-prop.c (detect_type_change): Shor circuit testing of
8926         type changes on THIS pointer.
8927
8928 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
8929
8930         PR target/59777
8931         * config/pa/pa.c (legitimize_tls_address): Return original address
8932         if not passed a SYMBOL_REF rtx.
8933         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8934         addresses.
8935         (pa_emit_move_sequence): Simplify TLS source operands.
8936         (pa_legitimate_constant_p): Reject all TLS constants.
8937         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8938         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8939
8940 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8941
8942         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8943         groups when we know they are controlled by LTO.
8944         * varasm.c (default_binds_local_p_1): If object is in other partition,
8945         it will be resolved locally.
8946
8947 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8948
8949         * config/host-linux.c (linux_gt_pch_use_address): Don't
8950         use SSIZE_MAX because it is not always defined.
8951
8952 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
8953
8954         PR bootstrap/59913
8955         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8956         threshold for pseudo splitting.
8957         (update_ebb_live_info): Process call argument hard registers and
8958         hard registers from insn definition too.
8959         (max_small_class_regs_num): New constant.
8960         (inherit_in_ebb): Update live hard regs through EBBs.  Update
8961         reloads_num only for small register classes.  Don't split for
8962         outputs of jumps.
8963
8964 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
8965
8966         PR ipa/60058
8967         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8968         is non-null.
8969
8970 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8971
8972         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8973         visibility is safe.
8974
8975 2014-02-04  Marek Polacek  <polacek@redhat.com>
8976
8977         * gdbinit.in (pel): Define.
8978
8979 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8980
8981         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8982         behavior.
8983
8984 2014-02-04  Richard Biener  <rguenther@suse.de>
8985
8986         PR lto/59723
8987         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8988         in function context local.
8989         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8990         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8991         similar to LTO_imported_decl_ref.
8992
8993 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
8994
8995         PR tree-optimization/60002
8996         * cgraphclones.c (build_function_decl_skip_args): Clear
8997         DECL_LANG_SPECIFIC.
8998
8999         PR tree-optimization/60023
9000         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
9001         false to gsi_replace.
9002         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
9003         has been in some EH region and vec_stmt could throw, add
9004         vec_stmt into the same EH region.
9005         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
9006         has no lhs, ignore it.
9007         * internal-fn.c (expand_MASK_LOAD): Likewise.
9008
9009         PR ipa/60026
9010         * tree-inline.c (copy_forbidden): Fail for
9011         __attribute__((optimize (0))) functions.
9012
9013         PR other/58712
9014         * omp-low.c (simd_clone_struct_copy): If from->inbranch
9015         is set, copy one less argument.
9016         (expand_simd_clones): Don't subtract clone_info->inbranch
9017         from simd_clone_struct_alloc argument.
9018
9019         PR rtl-optimization/57915
9020         * recog.c (simplify_while_replacing): If all unary/binary/relational
9021         operation arguments are constant, attempt to simplify those.
9022
9023         PR middle-end/59261
9024         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
9025         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
9026
9027 2014-02-04  Richard Biener  <rguenther@suse.de>
9028
9029         PR tree-optimization/60012
9030         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
9031         TBAA disambiguation to all DDRs.
9032
9033 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9034
9035         PR target/59788
9036         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
9037         (LINK_SPEC): Use it for -shared, -shared-libgcc.
9038
9039 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
9040
9041         PR ipa/59882
9042         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
9043
9044 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
9045
9046         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
9047         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
9048
9049 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
9050
9051         PR ipa/59831
9052         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
9053         to figure out targets of polymorphic calls with known decl.
9054         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9055         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
9056         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
9057         (get_polymorphic_call_info): ... here.
9058         (get_polymorphic_call_info_from_invariant): New function.
9059
9060 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
9061
9062         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
9063         lookup via vtable pointer; check for type consistency
9064         and turn inconsitent facts into UNREACHABLE.
9065         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9066         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
9067         type inconsistent querries; return UNREACHABLE instead.
9068
9069 2014-02-03  Richard Henderson  <rth@twiddle.net>
9070
9071         PR tree-opt/59924
9072         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
9073         already processed this node.
9074         (normalize_one_pred_1): Pass along mark_set.
9075         (normalize_one_pred): Create and destroy a pointer_set_t.
9076         (normalize_one_pred_chain): Likewise.
9077
9078 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
9079
9080         PR gcov-profile/58602
9081         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
9082
9083 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
9084
9085         PR ipa/59831
9086         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
9087         -fno-devirtualize; try to devirtualize by the knowledge of
9088         virtual table pointer given by aggregate propagation.
9089         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9090         (ipa_print_node_jump_functions): Dump also offset that
9091         is relevant for polymorphic calls.
9092         (determine_known_aggregate_parts): Add arg_type parameter; use it
9093         instead of determining the type from pointer type.
9094         (ipa_compute_jump_functions_for_edge): Update call of
9095         determine_known_aggregate_parts.
9096         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
9097         (gimple_get_virt_method_for_binfo): ... here; simplify using
9098         vtable_pointer_value_to_vtable.
9099         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
9100         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
9101         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
9102         (vtable_pointer_value_to_vtable): Break out from ...; handle also
9103         POINTER_PLUS_EXPR.
9104         (vtable_pointer_value_to_binfo): ... here.
9105         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
9106
9107 2014-02-03  Teresa Johnson  <tejohnson@google.com>
9108
9109         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
9110         redef of outer loop index variable.
9111
9112 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
9113
9114         PR c++/53017
9115         PR c++/59211
9116         * doc/extend.texi (Function Attributes): Typo.
9117
9118 2014-02-03  Cong Hou  <congh@google.com>
9119
9120         PR tree-optimization/60000
9121         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
9122         if the vectorized statement is a store.  A store statement can only
9123         appear at the end of pattern statements.
9124
9125 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
9126
9127         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
9128         (ix86_option_override_internal): Default long double to 64-bit for
9129         32-bit Bionic and to 128-bit for 64-bit Bionic.
9130
9131         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
9132         TARGET_LONG_DOUBLE_128 is true.
9133         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
9134
9135         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
9136         (mlong-double-64): Negate -mlong-double-128.
9137         (mlong-double-128): New option.
9138
9139         * config/i386/i386-c.c (ix86_target_macros): Define
9140         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
9141
9142         * doc/invoke.texi: Document -mlong-double-128.
9143
9144 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
9145
9146         PR rtl-optimization/60024
9147         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
9148
9149 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
9150
9151         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
9152
9153 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
9154
9155         PR rtl-optimization/57662
9156         * sel-sched.c (code_motion_path_driver): Do not mark already not
9157         existing blocks in the visiting bitmap.
9158
9159 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
9160
9161         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
9162         on the insn being emitted.
9163
9164 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
9165             Will Deacon  <will.deacon@arm.com>
9166
9167         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
9168
9169 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9170
9171         * config/arm/arm-tables.opt: Regenerate.
9172
9173 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9174
9175         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
9176         for vector types other than V16QImode.
9177         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
9178         define_expand, and call altivec_expand_vec_perm_le when producing
9179         code with little endian element order.
9180         (*altivec_vperm_<mode>_internal): New insn having previous
9181         behavior of altivec_vperm_<mode>.
9182         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
9183         altivec_expand_vec_perm_le when producing code with little endian
9184         element order.
9185         (*altivec_vperm_<mode>_uns_internal): New insn having previous
9186         behavior of altivec_vperm_<mode>_uns.
9187
9188 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9189
9190         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
9191         (altivec_vsumsws): Add handling for -maltivec=be with a little
9192         endian target.
9193         (altivec_vsumsws_direct): New.
9194         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
9195         gen_altivec_vsumsws.
9196
9197 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
9198
9199         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
9200         vtable_pointer_value_to_binfo): New functions.
9201         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
9202         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
9203
9204 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
9205
9206         * config/nios2/nios2.md (load_got_register): Initialize GOT
9207         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
9208         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
9209
9210 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
9211
9212         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
9213         preserverd by passthrough, do not propagate the type.
9214
9215 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9216
9217         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
9218         (mips_atomic_assign_expand_fenv): New function.
9219         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
9220
9221 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9222
9223         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
9224         (__builtin_mips_set_fcsr): Likewise.
9225         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
9226         MIPS_USI_FTYPE_VOID.
9227         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
9228         (mips16_expand_set_fcsr): Likewise.
9229         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
9230         (mips16_set_fcsr_stub): Likewise.
9231         (mips16_get_fcsr_one_only_stub): New class.
9232         (mips16_set_fcsr_one_only_stub): Likewise.
9233         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
9234         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
9235         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
9236         (hard_float): New availability predicate.
9237         (mips_builtins): Add get_fcsr and set_fcsr.
9238         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
9239         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
9240         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
9241         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
9242         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
9243         patterns.
9244
9245 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9246
9247         * config/mips/mips.c (mips_one_only_stub): New class.
9248         (mips_need_mips16_rdhwr_p): Replace with...
9249         (mips16_rdhwr_stub): ...this new variable.
9250         (mips16_stub_call_address): New function.
9251         (mips16_rdhwr_one_only_stub): New class.
9252         (mips_expand_thread_pointer): Use mips16_stub_call_address.
9253         (mips_output_mips16_rdhwr): Delete.
9254         (mips_finish_stub): New function.
9255         (mips_code_end): Use it to handle rdhwr stubs.
9256
9257 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
9258
9259         PR target/60017
9260         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
9261         when calculating size of integer atomic types.
9262
9263 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
9264
9265         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
9266
9267 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
9268
9269         PR tree-optimization/60003
9270         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
9271         * profile.c (branch_prob): Use gimple_call_builtin_p
9272         to check for BUILT_IN_SETJMP_RECEIVER.
9273         * tree-inline.c (copy_bb): Call notice_special_calls.
9274
9275 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
9276
9277         PR bootstrap/59985
9278         * lra-constraints.c (process_alt_operands): Update reload_sum only
9279         on the first pass.
9280
9281 2014-01-31  Richard Henderson  <rth@redhat.com>
9282
9283         PR middle-end/60004
9284         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
9285         until after else_eh is processed.
9286
9287 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
9288
9289         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
9290         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
9291         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
9292         in smmintrin.h, remove them.
9293         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
9294         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
9295         * config/i386/i386.md (ROUND_SAE): Fix value.
9296         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
9297         (const48_operand): New.
9298         * config/i386/subst.md (round), (round_expand): Use
9299         const_4_or_8_to_11_operand.
9300         (round_saeonly), (round_saeonly_expand): Use const48_operand.
9301
9302 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
9303
9304         * config/i386/constraints.md (Yk): Swap meaning with k.
9305         * config/i386/i386.md (movhi_internal): Change Yk to k.
9306         (movqi_internal): Ditto.
9307         (*k<logic><mode>): Ditto.
9308         (*andhi_1): Ditto.
9309         (*andqi_1): Ditto.
9310         (kandn<mode>): Ditto.
9311         (*<code>hi_1): Ditto.
9312         (*<code>qi_1): Ditto.
9313         (kxnor<mode>): Ditto.
9314         (kortestzhi): Ditto.
9315         (kortestchi): Ditto.
9316         (kunpckhi): Ditto.
9317         (*one_cmplhi2_1): Ditto.
9318         (*one_cmplqi2_1): Ditto.
9319         * config/i386/sse.md (): Change k to Yk.
9320         (avx512f_load<mode>_mask): Ditto.
9321         (avx512f_blendm<mode>): Ditto.
9322         (avx512f_store<mode>_mask): Ditto.
9323         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
9324         (avx512f_storedqu<mode>_mask): Ditto.
9325         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
9326         Ditto.
9327         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
9328         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
9329         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
9330         (avx512f_maskcmp<mode>3): Ditto.
9331         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
9332         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
9333         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
9334         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
9335         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
9336         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
9337         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
9338         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
9339         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
9340         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
9341         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
9342         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
9343         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
9344         (vec_extract_lo_<mode>_maskm): Ditto.
9345         (vec_extract_hi_<mode>_maskm): Ditto.
9346         (avx512f_vternlog<mode>_mask): Ditto.
9347         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
9348         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
9349         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
9350         (avx512f_<code>v8div16qi2_mask): Ditto.
9351         (avx512f_<code>v8div16qi2_mask_store): Ditto.
9352         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
9353         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
9354         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
9355         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
9356         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
9357         (*avx512pf_gatherpf<mode>df_mask): Ditto.
9358         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
9359         (*avx512pf_scatterpf<mode>df_mask): Ditto.
9360         (avx512cd_maskb_vec_dupv8di): Ditto.
9361         (avx512cd_maskw_vec_dupv16si): Ditto.
9362         (avx512f_vpermi2var<mode>3_maskz): Ditto.
9363         (avx512f_vpermi2var<mode>3_mask): Ditto.
9364         (avx512f_vpermi2var<mode>3_mask): Ditto.
9365         (avx512f_vpermt2var<mode>3_maskz): Ditto.
9366         (*avx512f_gathersi<mode>): Ditto.
9367         (*avx512f_gathersi<mode>_2): Ditto.
9368         (*avx512f_gatherdi<mode>): Ditto.
9369         (*avx512f_gatherdi<mode>_2): Ditto.
9370         (*avx512f_scattersi<mode>): Ditto.
9371         (*avx512f_scatterdi<mode>): Ditto.
9372         (avx512f_compress<mode>_mask): Ditto.
9373         (avx512f_compressstore<mode>_mask): Ditto.
9374         (avx512f_expand<mode>_mask): Ditto.
9375         * config/i386/subst.md (mask): Change k to Yk.
9376         (mask_scalar_merge): Ditto.
9377         (sd): Ditto.
9378
9379 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
9380
9381         * doc/extend.texi (Vector Extensions): Document ?: in C++.
9382
9383 2014-01-31  Richard Biener  <rguenther@suse.de>
9384
9385         PR middle-end/59990
9386         * builtins.c (fold_builtin_memory_op): Make sure to not
9387         use a floating-point mode or a boolean or enumeral type for
9388         the copy operation.
9389
9390 2014-01-30  DJ Delorie  <dj@redhat.com>
9391
9392         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
9393         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
9394         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
9395         whenever main() has an epilogue.
9396
9397 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9398
9399         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
9400         unused variable "field".
9401         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
9402         (vsx_mergeh_<mode>): Likewise.
9403         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
9404         (altivec_vmrghh): Likewise.
9405         (altivec_vmrghw): Likewise.
9406         (altivec_vmrglb): Likewise.
9407         (altivec_vmrglh): Likewise.
9408         (altivec_vmrglw): Likewise.
9409         (altivec_vspltb): Add missing uses.
9410         (altivec_vsplth): Likewise.
9411         (altivec_vspltw): Likewise.
9412         (altivec_vspltsf): Likewise.
9413
9414 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
9415
9416         PR target/59923
9417         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
9418         frame related instructions.
9419
9420 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
9421
9422         PR rtl-optimization/59959
9423         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
9424         any reload of register whose subreg is invalid.
9425
9426 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
9427
9428         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
9429         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
9430         Add missing return type - void.
9431
9432 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9433
9434         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
9435         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
9436         remove element index adjustment for endian (now handled in vsx.md
9437         and altivec.md).
9438         (altivec_expand_vec_perm_const): Use
9439         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
9440         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
9441         (vsx_xxspltw_<mode>): Adjust element index for little endian.
9442         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
9443         define_expand and a new define_insn *altivec_vspltb_internal;
9444         adjust for -maltivec=be on a little endian target.
9445         (altivec_vspltb_direct): New.
9446         (altivec_vsplth): Divide into a define_expand and a new
9447         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
9448         little endian target.
9449         (altivec_vsplth_direct): New.
9450         (altivec_vspltw): Divide into a define_expand and a new
9451         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
9452         little endian target.
9453         (altivec_vspltw_direct): New.
9454         (altivec_vspltsf): Divide into a define_expand and a new
9455         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
9456         a little endian target.
9457
9458 2014-01-30  Richard Biener  <rguenther@suse.de>
9459
9460         PR tree-optimization/59993
9461         * tree-ssa-forwprop.c (associate_pointerplus): Check we
9462         can propagate form the earlier stmt and avoid the transform
9463         when the intermediate result is needed.
9464
9465 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
9466
9467         * README.Portability: Fix typo.
9468
9469 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
9470
9471         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
9472         comparison_operator with ordered_comparison_operator.
9473
9474 2014-01-30  Nick Clifton  <nickc@redhat.com>
9475
9476         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
9477         Rename to mn10300_store_multiple_regs.
9478         * config/mn10300/mn10300.c: Likewise.
9479         * config/mn10300/mn10300.md (store_movm): Fix typo: call
9480         store_multiple_regs.
9481         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
9482         Call mn10300_store_multiple_regs.
9483
9484 2014-01-30  Nick Clifton  <nickc@redhat.com>
9485             DJ Delorie  <dj@redhat.com>
9486
9487         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
9488         %fp 2 to keep registers after it properly word-aligned.
9489         (rl78_alloc_physical_registers_umul): Handle the case where both
9490         input operands are the same.
9491
9492 2014-01-30  Richard Biener  <rguenther@suse.de>
9493
9494         PR tree-optimization/59903
9495         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
9496         check properly.
9497
9498 2014-01-30  Jason Merrill  <jason@redhat.com>
9499
9500         PR c++/59633
9501         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
9502
9503         PR c++/59645
9504         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
9505
9506 2014-01-30  Richard Biener  <rguenther@suse.de>
9507
9508         PR tree-optimization/59951
9509         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
9510
9511 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
9512
9513         PR target/59784
9514         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
9515         SFmode to DFmode case.
9516
9517 2014-01-29  DJ Delorie  <dj@redhat.com>
9518
9519         * config/msp430/msp430.opt (-minrt): New.
9520         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
9521         if -minrt given.
9522         (ENDFILE_SPEC): Likewise.
9523
9524 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
9525
9526         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
9527         (estimate_function_body_sizes): Use it.
9528
9529 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
9530
9531         PR c++/58561
9532         * dwarf2out.c (is_cxx_auto): New.
9533         (is_base_type): Use it.
9534         (gen_type_die_with_usage): Likewise.
9535
9536 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9537
9538         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
9539         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
9540         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
9541         -maltivec=be with LE targets.
9542         (vsx_mergeh_<mode>): Likewise.
9543         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
9544         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
9545         (altivec_vmrghb): Replace with define_expand and new
9546         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
9547         (altivec_vmrghb_direct): New define_insn.
9548         (altivec_vmrghh): Replace with define_expand and new
9549         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
9550         (altivec_vmrghh_direct): New define_insn.
9551         (altivec_vmrghw): Replace with define_expand and new
9552         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
9553         (altivec_vmrghw_direct): New define_insn.
9554         (*altivec_vmrghsf): Adjust for endianness.
9555         (altivec_vmrglb): Replace with define_expand and new
9556         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
9557         (altivec_vmrglb_direct): New define_insn.
9558         (altivec_vmrglh): Replace with define_expand and new
9559         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
9560         (altivec_vmrglh_direct): New define_insn.
9561         (altivec_vmrglw): Replace with define_expand and new
9562         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
9563         (altivec_vmrglw_direct): New define_insn.
9564         (*altivec_vmrglsf): Adjust for endianness.
9565         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9566         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9567         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9568         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9569         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9570         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9571         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9572         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9573
9574 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9575
9576         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
9577         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
9578         whitespace.
9579
9580 2014-01-29  Richard Biener  <rguenther@suse.de>
9581
9582         PR tree-optimization/58742
9583         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
9584         associate_pointerplus_align.
9585         (associate_pointerplus_diff): New function.
9586         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
9587         and associate_pointerplus_diff.
9588
9589 2014-01-29  Richard Biener  <rguenther@suse.de>
9590
9591         * lto-streamer.h (LTO_major_version): Bump to 3.
9592         (LTO_minor_version): Reset to 0.
9593
9594 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
9595
9596         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
9597         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
9598         (arm_file_start): Generate correct asm header for armv7ve.
9599         * config/arm/bpabi.h: Add multilib support for armv7ve.
9600         * config/arm/driver-arm.c: Change the architectures of cortex-a7
9601         and cortex-a15 to armv7ve.
9602         * config/arm/t-aprofile: Add multilib support for armv7ve.
9603         * doc/invoke.texi: Document -march=armv7ve.
9604
9605 2014-01-29  Richard Biener  <rguenther@suse.de>
9606
9607         PR tree-optimization/58742
9608         * tree-ssa-forwprop.c (associate_plusminus): Return true
9609         if we changed sth, defer EH cleanup to ...
9610         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
9611         (simplify_mult): New function.
9612
9613 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
9614
9615         PR middle-end/59917
9616         PR tree-optimization/59920
9617         * tree.c (build_common_builtin_nodes): Remove
9618         __builtin_setjmp_dispatcher initialization.
9619         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
9620         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
9621         instead of gsi_after_labels + manually skipping debug stmts.
9622         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
9623         ignore bbs with IFN_ABNORMAL_DISPATCHER.
9624         * tree-inline.c (copy_edges_for_bb): Remove
9625         can_make_abnormal_goto argument, instead add abnormal_goto_dest
9626         argument.  Ignore computed_goto_p stmts.  Don't call
9627         make_abnormal_goto_edges.  If a call might need abnormal edges
9628         for non-local gotos, see if it already has an edge to
9629         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
9630         with true argument, don't do anything then, otherwise add
9631         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
9632         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
9633         caller.
9634         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
9635         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
9636         (lower_stmt): Don't set data->calls_builtin_setjmp.
9637         (lower_builtin_setjmp): Adjust comment.
9638         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
9639         * tree-cfg.c (found_computed_goto): Remove.
9640         (factor_computed_gotos): Remove.
9641         (make_goto_expr_edges): Return bool, true for computed gotos.
9642         Don't call make_abnormal_goto_edges.
9643         (build_gimple_cfg): Don't set found_computed_goto, don't call
9644         factor_computed_gotos.
9645         (computed_goto_p): No longer static.
9646         (make_blocks): Don't set found_computed_goto.
9647         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
9648         (make_edges): If make_goto_expr_edges returns true, push bb
9649         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
9650         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
9651         vector.  Record mapping between bbs and OpenMP regions if there
9652         are any, adjust make_gimple_omp_edges caller.  Call
9653         handle_abnormal_edges.
9654         (make_abnormal_goto_edges): Remove.
9655         * tree-cfg.h (make_abnormal_goto_edges): Remove.
9656         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
9657         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
9658         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
9659         * internal-fn.def (ABNORMAL_DISPATCHER): New.
9660         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
9661         filling *region also set *region_idx to (*region)->entry->index.
9662
9663         PR other/58712
9664         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
9665         For REGs set ORIGINAL_REGNO.
9666
9667 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
9668
9669         * doc/md.texi: Mention that a target shouldn't implement
9670         vec_widen_(s|u)mul_even/odd pair if it is less efficient
9671         than hi/lo pair.
9672
9673 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
9674
9675         PR tree-optimization/59594
9676         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
9677         a copy of the datarefs vector rather than the vector itself.
9678
9679 2014-01-28  Jason Merrill  <jason@redhat.com>
9680
9681         PR c++/53756
9682         * dwarf2out.c (auto_die): New static.
9683         (gen_type_die_with_usage): Handle C++1y 'auto'.
9684         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
9685         on definition.
9686
9687 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9688
9689         PR target/59672
9690         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9691         (SPEC_X32): Likewise.
9692         (SPEC_64): Likewise.
9693         * config/i386/i386.c (ix86_option_override_internal): Turn off
9694         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9695         for TARGET_16BIT.
9696         (x86_file_start): Output .code16gcc for TARGET_16BIT.
9697         * config/i386/i386.h (TARGET_16BIT): New macro.
9698         (TARGET_16BIT_P): Likewise.
9699         * config/i386/i386.opt: Add m16.
9700         * doc/invoke.texi: Document -m16.
9701
9702 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
9703
9704         PR preprocessor/59935
9705         * input.c (location_get_source_line): Bail out on when line number
9706         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9707
9708 2014-01-28  Richard Biener  <rguenther@suse.de>
9709
9710         PR tree-optimization/58742
9711         * tree-ssa-forwprop.c (associate_plusminus): Handle
9712         pointer subtraction of the form (T)(P + A) - (T)P.
9713
9714 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9715
9716         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9717         at const_int_cost.
9718
9719 2014-01-28  Richard Biener  <rguenther@suse.de>
9720
9721         Revert
9722         2014-01-28  Richard Biener  <rguenther@suse.de>
9723
9724         PR rtl-optimization/45364
9725         PR rtl-optimization/59890
9726         * var-tracking.c (local_get_addr_clear_given_value): Handle
9727         already cleared slot.
9728         (val_reset): Handle not allocated local_get_addr_cache.
9729         (vt_find_locations): Use post-order on the inverted CFG.
9730
9731 2014-01-28  Richard Biener  <rguenther@suse.de>
9732
9733         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9734
9735 2014-01-28  Richard Biener  <rguenther@suse.de>
9736
9737         PR rtl-optimization/45364
9738         PR rtl-optimization/59890
9739         * var-tracking.c (local_get_addr_clear_given_value): Handle
9740         already cleared slot.
9741         (val_reset): Handle not allocated local_get_addr_cache.
9742         (vt_find_locations): Use post-order on the inverted CFG.
9743
9744 2014-01-28  Alan Modra  <amodra@gmail.com>
9745
9746         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9747         * configure.ac <recursive call for build != host>: Define
9748         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9749         and LD_FOR_BUILD too.
9750         * configure: Regenerate.
9751
9752 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
9753
9754         * config/i386/i386.c (get_builtin_code_for_version): Separate
9755         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9756         Broadwell from Haswell.
9757
9758 2014-01-27  Steve Ellcey  <sellcey@mips.com>
9759
9760         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9761         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9762         * config/mips/mips.c (mips_option_override): Change setting
9763         of TARGET_DSP.
9764         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9765         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9766         Change from Mask to Var.
9767
9768 2014-01-27  Jeff Law  <law@redhat.com>
9769
9770         * ipa-inline.c (inline_small_functions): Fix typo.
9771
9772 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
9773
9774         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9775         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9776         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9777         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9778         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9779         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9780         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9781         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9782         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9783         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9784         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9785         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9786         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9787         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9788         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9789         (_mm512_storeu_epi64): Ditto.
9790         (_mm512_cmpge_epi32_mask): Ditto.
9791         (_mm512_cmpge_epu32_mask): Ditto.
9792         (_mm512_cmpge_epi64_mask): Ditto.
9793         (_mm512_cmpge_epu64_mask): Ditto.
9794         (_mm512_cmple_epi32_mask): Ditto.
9795         (_mm512_cmple_epu32_mask): Ditto.
9796         (_mm512_cmple_epi64_mask): Ditto.
9797         (_mm512_cmple_epu64_mask): Ditto.
9798         (_mm512_cmplt_epi32_mask): Ditto.
9799         (_mm512_cmplt_epu32_mask): Ditto.
9800         (_mm512_cmplt_epi64_mask): Ditto.
9801         (_mm512_cmplt_epu64_mask): Ditto.
9802         (_mm512_cmpneq_epi32_mask): Ditto.
9803         (_mm512_cmpneq_epu32_mask): Ditto.
9804         (_mm512_cmpneq_epi64_mask): Ditto.
9805         (_mm512_cmpneq_epu64_mask): Ditto.
9806         (_mm512_expand_pd): Ditto.
9807         (_mm512_expand_ps): Ditto.
9808         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9809         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9810         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9811         * config/i386/i386.c (ix86_builtins): Add
9812         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9813         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9814         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9815         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9816         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9817         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9818         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9819         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9820         IX86_BUILTIN_PMOVUSQW512_MEM.
9821         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9822         __builtin_ia32_pmovsqd512mem_mask,
9823         __builtin_ia32_pmovqd512mem_mask,
9824         __builtin_ia32_pmovusqw512mem_mask,
9825         __builtin_ia32_pmovsqw512mem_mask,
9826         __builtin_ia32_pmovqw512mem_mask,
9827         __builtin_ia32_pmovusdw512mem_mask,
9828         __builtin_ia32_pmovsdw512mem_mask,
9829         __builtin_ia32_pmovdw512mem_mask,
9830         __builtin_ia32_pmovqb512mem_mask,
9831         __builtin_ia32_pmovusqb512mem_mask,
9832         __builtin_ia32_pmovsqb512mem_mask,
9833         __builtin_ia32_pmovusdb512mem_mask,
9834         __builtin_ia32_pmovsdb512mem_mask,
9835         __builtin_ia32_pmovdb512mem_mask.
9836         (bdesc_args): Add __builtin_ia32_expanddf512,
9837         __builtin_ia32_expandsf512.
9838         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9839         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9840         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9841         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9842         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9843         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9844         (avx512f_<code>v8div16qi2_mask_store): This.
9845         (avx512f_expand<mode>): New.
9846
9847 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
9848
9849         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9850         New.
9851         (_mm512_mask_prefetch_i64gather_pd): Ditto.
9852         (_mm512_prefetch_i32scatter_pd): Ditto.
9853         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9854         (_mm512_prefetch_i64scatter_pd): Ditto.
9855         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9856         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9857         (_mm512_mask_prefetch_i64gather_ps): Ditto.
9858         (_mm512_prefetch_i32scatter_ps): Ditto.
9859         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9860         (_mm512_prefetch_i64scatter_ps): Ditto.
9861         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9862         * config/i386/i386-builtin-types.def: Define
9863         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9864         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9865         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9866         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9867         IX86_BUILTIN_SCATTERPFQPD.
9868         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9869         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9870         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9871         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9872         __builtin_ia32_scatterpfqps.
9873         (ix86_expand_builtin): Expand new built-ins.
9874         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9875         fix memory access data type.
9876         (*avx512pf_gatherpf<mode>_mask): Ditto.
9877         (*avx512pf_gatherpf<mode>): Ditto.
9878         (avx512pf_scatterpf<mode>): Ditto.
9879         (*avx512pf_scatterpf<mode>_mask): Ditto.
9880         (*avx512pf_scatterpf<mode>): Ditto.
9881         (GATHER_SCATTER_SF_MEM_MODE): New.
9882         (avx512pf_gatherpf<mode>df): Ditto.
9883         (*avx512pf_gatherpf<mode>df_mask): Ditto.
9884         (*avx512pf_scatterpf<mode>df): Ditto.
9885
9886 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
9887
9888         PR bootstrap/59934
9889         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9890         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9891         reached.
9892
9893 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9894
9895         * common/config/arm/arm-common.c
9896         (arm_rewrite_mcpu): Handle multiple names.
9897         * config/arm/arm.h
9898         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9899
9900 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9901
9902         * gimple-builder.h (create_gimple_tmp): Delete.
9903
9904 2014-01-27  Christian Bruel  <christian.bruel@st.com>
9905
9906         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9907         words comparisons.
9908
9909 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
9910
9911         * config/pa/pa.md (call): Generate indirect long calls to non-local
9912         functions when outputing 32-bit code.
9913         (call_value): Likewise except for special call to buggy powf function.
9914
9915         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9916         portable runtime and PIC indirect calls.
9917         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9918         and PIC call sequences.  Use ldo instead of blr to set return register
9919         in PIC call sequence.
9920
9921 2014-01-25  Walter Lee  <walt@tilera.com>
9922
9923         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9924         avoid clobbering a live register.
9925
9926 2014-01-25  Walter Lee  <walt@tilera.com>
9927
9928         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9929         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9930         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9931         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9932
9933 2014-01-25  Walter Lee  <walt@tilera.com>
9934
9935         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9936         arguments on even registers.
9937         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9938         STACK_BOUNDARY.
9939         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9940         (BIGGEST_ALIGNMENT): Ditto.
9941         (BIGGEST_FIELD_ALIGNMENT): Ditto.
9942
9943 2014-01-25  Walter Lee  <walt@tilera.com>
9944
9945         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9946         insns before bundling.
9947         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9948
9949 2014-01-25  Walter Lee  <walt@tilera.com>
9950
9951         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9952         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9953         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9954
9955 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9956
9957         * config/mips/constraints.md (kl): Delete.
9958         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9959         define expands, using...
9960         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9961         instructions for MIPS16.
9962         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9963         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9964
9965 2014-01-25  Walter Lee  <walt@tilera.com>
9966
9967         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9968         (clzdi2): Ditto.
9969         (ffsdi2): Ditto.
9970
9971 2014-01-25  Walter Lee  <walt@tilera.com>
9972
9973         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9974         (TARGET_EXPAND_TO_RTL_HOOK): Define.
9975
9976 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9977
9978         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9979         Handle XOR.
9980
9981 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
9982
9983         * print-rtl.c (in_call_function_usage): New var.
9984         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9985         EXPR_LIST mode as mode and not as reg note name.
9986
9987         PR middle-end/59561
9988         * cfgloopmanip.c (copy_loop_info): If
9989         loop->warned_aggressive_loop_optimizations, make sure
9990         the flag is set in target loop too.
9991
9992 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
9993
9994         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9995         flag_cilkplus.
9996         * builtins.def: Likewise.
9997         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9998         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9999         * ira.c (ira_setup_eliminable_regset): Likewise.
10000         * omp-low.c (gate_expand_omp): Likewise.
10001         (execute_lower_omp): Likewise.
10002         (diagnose_sb_0): Likewise.
10003         (gate_diagnose_omp_blocks): Likewise.
10004         (simd_clone_clauses_extract): Likewise.
10005         (gate): Likewise.
10006
10007 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10008
10009         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
10010         correction for little endian...
10011         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
10012         here.
10013
10014 2014-01-24  Jeff Law  <law@redhat.com>
10015
10016         PR tree-optimization/59919
10017         * tree-vrp.c (find_assert_locations_1): Do not register asserts
10018         for non-returning calls.
10019
10020 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
10021
10022         * common/config/aarch64/aarch64-common.c
10023         (aarch64_rewrite_mcpu): Handle multiple names.
10024         * config/aarch64/aarch64.h
10025         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
10026
10027 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
10028
10029         * input.c (add_file_to_cache_tab): Handle the case where fopen
10030         returns NULL.
10031
10032 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
10033
10034         PR target/59929
10035         * config/i386/i386.md (pushsf splitter): Get stack adjustment
10036         from push operand if code of push isn't PRE_DEC.
10037
10038 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
10039
10040         PR target/59909
10041         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10042         -mquad-memory-atomic.  Update -mquad-memory documentation to say
10043         it is only used for non-atomic loads/stores.
10044
10045         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
10046         -mquad-memory or -mquad-memory-atomic switches.
10047
10048         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
10049         -mquad-memory-atomic to ISA 2.07 support.
10050
10051         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
10052         to separate support of normal quad word memory operations (ldq, stq)
10053         from the atomic quad word memory operations.
10054
10055         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10056         support to separate non-atomic quad word operations from atomic
10057         quad word operations.  Disable non-atomic quad word operations in
10058         little endian mode so that we don't have to swap words after the
10059         load and before the store.
10060         (quad_load_store_p): Add comment about atomic quad word support.
10061         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
10062         options printed with -mdebug=reg.
10063
10064         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
10065         -mquad-memory-atomic as the test for whether we have quad word
10066         atomic instructions.
10067         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
10068         or -mp8-vector are used, allow byte/half-word atomic operations.
10069
10070         * config/rs6000/sync.md (load_lockedti): Insure that the address
10071         is a proper indexed or indirect address for the lqarx instruction.
10072         On little endian systems, swap the hi/lo registers after the lqarx
10073         instruction.
10074         (load_lockedpti): Use indexed_or_indirect_operand predicate to
10075         insure the address is valid for the lqarx instruction.
10076         (store_conditionalti): Insure that the address is a proper indexed
10077         or indirect address for the stqcrx. instruction.  On little endian
10078         systems, swap the hi/lo registers before doing the stqcrx.
10079         instruction.
10080         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
10081         insure the address is valid for the stqcrx. instruction.
10082
10083         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
10084         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
10085         type of quad memory support is available.
10086
10087 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
10088
10089         PR regression/59915
10090         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
10091         there is a danger of looping.
10092
10093 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
10094
10095         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10096         force flag_ira_loop_pressure if set via command line.
10097
10098 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
10099
10100         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
10101         (ashr_simd): New builtin handling DI mode.
10102         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
10103         (aarch64_sshr_simddi): New match pattern.
10104         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
10105         (vshrd_n_s64): Likewise.
10106         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
10107
10108 2014-01-23  Nick Clifton  <nickc@redhat.com>
10109
10110         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
10111         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
10112         favour of mcu specific scripts.
10113         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
10114         430x multilibs.
10115
10116 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
10117             Alex Velenko  <Alex.Velenko@arm.com>
10118
10119         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
10120         (vaddv_s16): Likewise.
10121         (vaddv_s32): Likewise.
10122         (vaddv_u8): Likewise.
10123         (vaddv_u16): Likewise.
10124         (vaddv_u32): Likewise.
10125         (vaddvq_s8): Likewise.
10126         (vaddvq_s16): Likewise.
10127         (vaddvq_s32): Likewise.
10128         (vaddvq_s64): Likewise.
10129         (vaddvq_u8): Likewise.
10130         (vaddvq_u16): Likewise.
10131         (vaddvq_u32): Likewise.
10132         (vaddvq_u64): Likewise.
10133         (vaddv_f32): Likewise.
10134         (vaddvq_f32): Likewise.
10135         (vaddvq_f64): Likewise.
10136         (vmaxv_f32): Likewise.
10137         (vmaxv_s8): Likewise.
10138         (vmaxv_s16): Likewise.
10139         (vmaxv_s32): Likewise.
10140         (vmaxv_u8): Likewise.
10141         (vmaxv_u16): Likewise.
10142         (vmaxv_u32): Likewise.
10143         (vmaxvq_f32): Likewise.
10144         (vmaxvq_f64): Likewise.
10145         (vmaxvq_s8): Likewise.
10146         (vmaxvq_s16): Likewise.
10147         (vmaxvq_s32): Likewise.
10148         (vmaxvq_u8): Likewise.
10149         (vmaxvq_u16): Likewise.
10150         (vmaxvq_u32): Likewise.
10151         (vmaxnmv_f32): Likewise.
10152         (vmaxnmvq_f32): Likewise.
10153         (vmaxnmvq_f64): Likewise.
10154         (vminv_f32): Likewise.
10155         (vminv_s8): Likewise.
10156         (vminv_s16): Likewise.
10157         (vminv_s32): Likewise.
10158         (vminv_u8): Likewise.
10159         (vminv_u16): Likewise.
10160         (vminv_u32): Likewise.
10161         (vminvq_f32): Likewise.
10162         (vminvq_f64): Likewise.
10163         (vminvq_s8): Likewise.
10164         (vminvq_s16): Likewise.
10165         (vminvq_s32): Likewise.
10166         (vminvq_u8): Likewise.
10167         (vminvq_u16): Likewise.
10168         (vminvq_u32): Likewise.
10169         (vminnmv_f32): Likewise.
10170         (vminnmvq_f32): Likewise.
10171         (vminnmvq_f64): Likewise.
10172
10173 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
10174
10175         * config/aarch64/aarch64-simd.md
10176         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
10177         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
10178         (*aarch64_mul3_elt<mode>): Likewise.
10179         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
10180         (*aarch64_mul3_elt_to_64v2df): Likewise.
10181         (*aarch64_mla_elt<mode>): Likewise.
10182         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
10183         (*aarch64_mls_elt<mode>): Likewise.
10184         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
10185         (*aarch64_fma4_elt<mode>): Likewise.
10186         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
10187         (*aarch64_fma4_elt_to_64v2df): Likewise.
10188         (*aarch64_fnma4_elt<mode>): Likewise.
10189         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
10190         (*aarch64_fnma4_elt_to_64v2df): Likewise.
10191         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
10192         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
10193         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10194         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10195         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
10196         (aarch64_sqdmull_lane<mode>_internal): Likewise.
10197         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
10198
10199 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
10200
10201         * config/aarch64/aarch64-simd.md
10202         (aarch64_be_checked_get_lane<mode>): New define_expand.
10203         * config/aarch64/aarch64-simd-builtins.def
10204         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
10205         New builtin definition.
10206         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
10207         Use new safe be builtin.
10208
10209 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
10210
10211         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
10212         New define_insn.
10213         (aarch64_be_st1<mode>): Likewise.
10214         (aarch_ld1<VALL:mode>): Define_expand modified.
10215         (aarch_st1<VALL:mode>): Likewise.
10216         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
10217         (UNSPEC_ST1): Likewise.
10218
10219 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
10220
10221         * config/microblaze/microblaze.md: Add trap insn and attribute
10222
10223 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
10224
10225         PR preprocessor/58580
10226         * input.h (location_get_source_line): Take an additional line_size
10227         parameter.
10228         (void diagnostics_file_cache_fini): Declare new function.
10229         * input.c (struct fcache): New type.
10230         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
10231         New static constants.
10232         (diagnostic_file_cache_init, total_lines_num)
10233         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
10234         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
10235         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
10236         (get_next_line, read_next_line, goto_next_line, read_line_num):
10237         New static function definitions.
10238         (diagnostic_file_cache_fini): New function.
10239         (location_get_source_line): Take an additional output line_len
10240         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
10241         read_line_num.
10242         * diagnostic.c (diagnostic_finish): Call
10243         diagnostic_file_cache_fini.
10244         (adjust_line): Take an additional input parameter for the length
10245         of the line, rather than calculating it with strlen.
10246         (diagnostic_show_locus): Adjust the use of
10247         location_get_source_line and adjust_line with respect to their new
10248         signature.  While displaying a line now, do not stop at the first
10249         null byte.  Rather, display the zero byte as a space and keep
10250         going until we reach the size of the line.
10251         * Makefile.in: Add vec.o to OBJS-libcommon
10252
10253 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10254             Ilya Tocar  <ilya.tocar@intel.com>
10255
10256         * config/i386/avx512fintrin.h (_mm512_kmov): New.
10257         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
10258         (__builtin_ia32_kmov16): Ditto.
10259         * config/i386/i386.md (UNSPEC_KMOV): New.
10260         (kmovw): Ditto.
10261
10262 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10263
10264         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
10265         (_mm512_storeu_si512): Ditto.
10266
10267 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
10268
10269         PR target/52125
10270         * rtl.h (get_referenced_operands): Declare.
10271         * recog.c (get_referenced_operands): New function.
10272         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
10273         operands have been referenced when recording LO_SUM references.
10274
10275 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
10276
10277         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
10278
10279 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
10280
10281         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
10282         Enable for generic and recent AMD targets.
10283
10284 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
10285
10286         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
10287         ARG_SIZE note when adjustment was eliminated.
10288
10289 2014-01-22  Jeff Law  <law@redhat.com>
10290
10291         PR tree-optimization/59597
10292         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
10293         in file.  Accept new argument REGISTERING and use it to modify
10294         dump output appropriately.
10295         (register_jump_thread): Corresponding changes.
10296         (mark_threaded_blocks): Reinstate code to cancel unprofitable
10297         thread paths involving joiner blocks.  Add code to dump cancelled
10298         jump threading paths.
10299
10300 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
10301
10302         PR rtl-optimization/59477
10303         * lra-constraints.c (inherit_in_ebb): Process call for living hard
10304         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
10305
10306 2014-01-22  Tom Tromey  <tromey@redhat.com>
10307
10308         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
10309         PARAMS.
10310         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
10311
10312 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10313
10314         PR rtl-optimization/59896
10315         * lra-constraints.c (process_alt_operands): Check unused note for
10316         matched operands of insn with no output reloads.
10317
10318 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
10319
10320         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
10321         (mips_move_from_gpr_cost): Likewise.
10322
10323 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10324
10325         PR rtl-optimization/59858
10326         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
10327         ira_class_hard_regs_num.
10328         (process_alt_operands): Increase reject for dying matched operand.
10329
10330 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
10331
10332         PR target/59003
10333         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
10334         smaller than size, perform several stores or loads and stores
10335         at dst + count - size to store or copy all of size bytes, rather
10336         than just last modesize bytes.
10337
10338 2014-01-20  DJ Delorie  <dj@redhat.com>
10339
10340         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
10341         that CLOBBERs are REGs before propogating their values.
10342
10343 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
10344
10345         PR middle-end/59789
10346         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
10347         (cgraph_inline_failed_type): New function.
10348         * cgraph.h (DEFCIFCODE): Add type.
10349         (cgraph_inline_failed_type_t): New enum.
10350         (cgraph_inline_failed_type): New prototype.
10351         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
10352         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
10353         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
10354         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
10355         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
10356         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
10357         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
10358         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
10359         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
10360         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
10361         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
10362         OPTIMIZATION_MISMATCH.
10363         * tree-inline.c (expand_call_inline): Emit errors during
10364         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
10365
10366 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
10367
10368         PR target/59685
10369         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
10370         mode attribute in insn output.
10371
10372 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
10373
10374         * output.h (output_constant): Delete.
10375         * varasm.c (output_constant): Make private.
10376
10377 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
10378
10379         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
10380
10381 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
10382
10383         PR middle-end/59860
10384         * tree.h (fold_builtin_strcat): New prototype.
10385         * builtins.c (fold_builtin_strcat): No longer static.  Add len
10386         argument, if non-NULL, don't call c_strlen.  Optimize
10387         directly into __builtin_memcpy instead of __builtin_strcpy.
10388         (fold_builtin_2): Adjust fold_builtin_strcat caller.
10389         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
10390
10391 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
10392
10393         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10394         for SImode_address_operand operands, having only a REG argument.
10395
10396 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10397
10398         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
10399         loader name using mbig-endian.
10400         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
10401
10402 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
10403
10404         * doc/invoke.texi (-march): Clarify documentation for AArch64.
10405         (-mtune): Likewise.
10406         (-mcpu): Likewise.
10407
10408 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
10409
10410         * config/aarch64/aarch64-protos.h
10411         (aarch64_cannot_change_mode_class_ptr): Declare.
10412         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
10413         aarch64_cannot_change_mode_class_ptr): New.
10414         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
10415         backend hook aarch64_cannot_change_mode_class.
10416
10417 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
10418
10419         * common/config/aarch64/aarch64-common.c
10420         (aarch64_handle_option): Don't handle any option order logic here.
10421         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
10422         selected_cpu, warn on architecture version mismatch.
10423         (aarch64_override_options): Fix parsing order for option strings.
10424
10425 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10426             Iain Sandoe  <iain@codesourcery.com>
10427
10428         PR bootstrap/59496
10429         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
10430         warning.  Amend comment to reflect current functionality.
10431
10432 2014-01-20  Richard Biener  <rguenther@suse.de>
10433
10434         PR middle-end/59860
10435         * builtins.c (fold_builtin_strcat): Remove case better handled
10436         by tree-ssa-strlen.c.
10437
10438 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
10439
10440         * config/aarch64/aarch64.opt
10441         (mcpu, march, mtune): Make case-insensitive.
10442
10443 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
10444
10445         PR target/59880
10446         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10447         if operands[1] is a REG or ZERO_EXTEND of a REG.
10448
10449 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
10450
10451         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
10452
10453 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
10454
10455         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
10456         long non-pic millicode calls.
10457
10458 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10459
10460         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
10461
10462 2014-01-19  Kito Cheng  <kito@0xlab.org>
10463
10464         * builtins.c (expand_movstr): Check movstr expand done or fail.
10465
10466 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
10467             H.J. Lu  <hongjiu.lu@intel.com>
10468
10469         PR target/59379
10470         * config/i386/i386.md (*lea<mode>): Zero-extend return register
10471         to DImode for zero-extended addresses.
10472
10473 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
10474
10475         PR rtl-optimization/57763
10476         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
10477         on the new indirect jump_insn and increment LABEL_NUSES (label).
10478
10479 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
10480
10481         PR bootstrap/59580
10482         PR bootstrap/59583
10483         * config.gcc (x86_archs): New variable.
10484         (x86_64_archs): Likewise.
10485         (x86_cpus): Likewise.
10486         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
10487         --with-arch/--with-cpu= options.
10488         Support --with-arch=/--with-cpu={nehalem,westmere,
10489         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
10490
10491 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
10492
10493         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
10494         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
10495
10496 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
10497
10498         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
10499
10500 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
10501
10502         PR target/58944
10503         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
10504         clear cpp_get_options (parse_in)->warn_unused_macros for
10505         ix86_target_macros_internal with cpp_define.
10506
10507 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
10508
10509         * jump.c (delete_related_insns): Keep (use (insn))s.
10510         * reorg.c (redundant_insn): Check for barriers too.
10511
10512 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
10513
10514         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
10515
10516 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
10517
10518         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
10519         call to $$dyncall when TARGET_LONG_CALLS is true.
10520
10521 2014-01-17  Jeff Law  <law@redhat.com>
10522
10523         * ree.c (combine_set_extension): Temporarily disable test for
10524         changing number of hard registers.
10525
10526 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
10527
10528         PR middle-end/58125
10529         * ipa-inline-analysis.c (inline_free_summary):
10530         Do not free summary of aliases.
10531
10532 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
10533
10534         PR middle-end/59706
10535         * gimplify.c (gimplify_expr): Use create_tmp_var
10536         instead of create_tmp_var_raw.  If cond doesn't have
10537         integral type, don't add the IFN_ANNOTATE builtin at all.
10538
10539 2014-01-17  Martin Jambor  <mjambor@suse.cz>
10540
10541         PR ipa/59736
10542         * ipa-cp.c (prev_edge_clone): New variable.
10543         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
10544         Also resize prev_edge_clone vector.
10545         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
10546         (ipcp_edge_removal_hook): New function.
10547         (ipcp_driver): Register ipcp_edge_removal_hook.
10548
10549 2014-01-17  Andrew Pinski  <apinski@cavium.com>
10550             Steve Ellcey  <sellcey@mips.com>
10551
10552         PR target/59462
10553         * config/mips/mips.c (mips_print_operand): Check operand mode instead
10554         of operator mode.
10555
10556 2014-01-17  Jeff Law  <law@redhat.com>
10557
10558         PR middle-end/57904
10559         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
10560         so that pass_ccp runs first.
10561
10562 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
10563
10564         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
10565         (ix86_adjust_cost): Use !TARGET_XXX.
10566         (do_reorder_for_imul): Likewise.
10567         (swap_top_of_ready_list): Likewise.
10568         (ix86_sched_reorder): Likewise.
10569
10570 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
10571
10572         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10573         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
10574         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
10575         (intel_memset): New.  Duplicate slm_memset.
10576         (intel_cost): New.  Duplicate slm_cost.
10577         (m_INTEL): New macro.
10578         (processor_target_table): Add "intel".
10579         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
10580         with PROCESSOR_INTEL for "intel".
10581         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
10582         PROCESSOR_SILVERMONT.
10583         (ix86_issue_rate): Likewise.
10584         (ix86_adjust_cost): Likewise.
10585         (ia32_multipass_dfa_lookahead): Likewise.
10586         (swap_top_of_ready_list): Likewise.
10587         (ix86_sched_reorder): Likewise.
10588         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
10589         instead of TARGET_OPT_AGU.
10590         * config/i386/i386.h (TARGET_INTEL): New.
10591         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
10592         (processor_type): Add PROCESSOR_INTEL.
10593         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
10594         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
10595
10596 2014-01-17  Marek Polacek  <polacek@redhat.com>
10597
10598         PR c/58346
10599         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
10600         size is zero.
10601
10602 2014-01-17  Richard Biener  <rguenther@suse.de>
10603
10604         PR tree-optimization/46590
10605         * opts.c (default_options_table): Add entries for
10606         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
10607         all enabled at -O1 but not for -Og.
10608         * common.opt (fbranch-count-reg): Remove Init(1).
10609         (fmove-loop-invariants): Likewise.
10610         (ftree-pta): Likewise.
10611
10612 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
10613
10614         * config/i386/i386.c (ix86_data_alignment): For compatibility with
10615         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
10616         decls to at least the GCC 4.8 used alignments.
10617
10618         PR fortran/59440
10619         * tree-nested.c (convert_nonlocal_reference_stmt,
10620         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
10621         of GIMPLE_BIND stmts, adjust associated decls.
10622
10623 2014-01-17  Richard Biener  <rguenther@suse.de>
10624
10625         PR tree-optimization/46590
10626         * vec.h (vec<>::bseach): New member function implementing
10627         binary search according to C89 bsearch.
10628         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
10629         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
10630         bitmap pointer again.  Make accesses_in_loop a flat array.
10631         (mem_ref_obstack): New global.
10632         (outermost_indep_loop): Adjust for mem_ref->stored changes.
10633         (mark_ref_stored): Likewise.
10634         (ref_indep_loop_p_2): Likewise.
10635         (set_ref_stored_in_loop): New helper function.
10636         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
10637         (memref_free): Adjust.
10638         (record_mem_ref_loc): Simplify.
10639         (gather_mem_refs_stmt): Adjust.
10640         (sort_locs_in_loop_postorder_cmp): New function.
10641         (analyze_memory_references): Sort accesses_in_loop after
10642         loop postorder number.
10643         (find_ref_loc_in_loop_cmp): New function.
10644         (for_all_locs_in_loop): Find relevant cluster of locs in
10645         accesses_in_loop and iterate without recursion.
10646         (execute_sm): Avoid uninit warning.
10647         (struct ref_always_accessed): Simplify.
10648         (ref_always_accessed::operator ()): Likewise.
10649         (ref_always_accessed_p): Likewise.
10650         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
10651         loop postorder numbers here.
10652         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
10653         numbers.
10654
10655 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
10656
10657         PR c++/57945
10658         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
10659         on decls for which assemble_alias has been called.
10660
10661 2014-01-17  Nick Clifton  <nickc@redhat.com>
10662
10663         * config/msp430/msp430.opt: (mcpu): New option.
10664         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
10665         (msp430_option_override): Parse target_cpu.  If the MCU name
10666         matches a generic string, clear target_mcu.
10667         (msp430_attr): Allow numeric interrupt values up to 63.
10668         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
10669         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
10670         option.
10671         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
10672         Add mcpu matches.
10673         * config/msp430/msp430.md (popm): Use %J rather than %I.
10674         (addsi3): Use msp430_nonimmediate_operand for operand 2.
10675         (addhi_cy_i): Use immediate_operand for operand 2.
10676         * doc/invoke.texi: Document -mcpu option.
10677
10678 2014-01-17  Richard Biener  <rguenther@suse.de>
10679
10680         PR rtl-optimization/38518
10681         * df.h (df_analyze_loop): Declare.
10682         * df-core.c: Include cfgloop.h.
10683         (df_analyze_1): Split out main part of df_analyze.
10684         (df_analyze): Adjust.
10685         (loop_inverted_post_order_compute): New function.
10686         (loop_post_order_compute): Likewise.
10687         (df_analyze_loop): New function avoiding whole-function
10688         postorder computes.
10689         * loop-invariant.c (find_defs): Use df_analyze_loop.
10690         (find_invariants): Adjust.
10691         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10692
10693 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10694
10695         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10696         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10697
10698 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
10699
10700         * ipa-ref.c (ipa_remove_stmt_references): Fix references
10701         traversal when removing references.
10702
10703 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
10704
10705         PR ipa/59775
10706         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10707
10708 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
10709
10710         PR middle-end/56791
10711         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10712         pushing a reload for an autoinc when we had previously reloaded an
10713         inner part of the address.
10714
10715 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
10716
10717         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10718         field.
10719         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10720         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10721         when not giving up or versioning for alias only because of
10722         loop->safelen.
10723         (vect_analyze_data_ref_dependences): Set to true.
10724         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10725         is a GIMPLE_PHI.
10726         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10727         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10728         to the condition.
10729
10730         PR middle-end/58344
10731         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10732
10733         PR target/59839
10734         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10735         operand 0 predicate for gathers, use a new pseudo as subtarget.
10736
10737 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10738
10739         PR middle-end/59609
10740         * lra-constraints.c (process_alt_operands): Add printing debug info.
10741         Check absence of input/output reloads for matched operands too.
10742
10743 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10744
10745         PR rtl-optimization/59835
10746         * ira.c (ira_init_register_move_cost): Increase cost for
10747         impossible modes.
10748
10749 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
10750
10751         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10752
10753 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
10754
10755         PR target/59780
10756         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10757         non-register objects.  Use gen_(high/low)part more consistently.
10758         Fix assertions.
10759
10760 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
10761
10762         PR target/59844
10763         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10764         endian support, remove tests for WORDS_BIG_ENDIAN.
10765         (p8_mfvsrd_3_<mode>): Likewise.
10766         (reload_gpr_from_vsx<mode>): Likewise.
10767         (reload_gpr_from_vsxsf): Likewise.
10768         (p8_mfvsrd_4_disf): Likewise.
10769
10770 2014-01-16  Richard Biener  <rguenther@suse.de>
10771
10772         PR rtl-optimization/46590
10773         * lcm.c (compute_antinout_edge): Use postorder iteration.
10774         (compute_laterin): Use inverted postorder iteration.
10775
10776 2014-01-16  Nick Clifton  <nickc@redhat.com>
10777
10778         PR middle-end/28865
10779         * varasm.c (output_constant): Return the number of bytes actually
10780         emitted.
10781         (output_constructor_array_range): Update the field size with the
10782         number of bytes emitted by output_constant.
10783         (output_constructor_regular_field): Likewise.  Also do not
10784         complain if the total number of bytes emitted is now greater
10785         than the expected fieldpos.
10786         * output.h (output_constant): Update prototype and descriptive comment.
10787
10788 2014-01-16  Marek Polacek  <polacek@redhat.com>
10789
10790         PR middle-end/59827
10791         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10792         it is error_mark_node.
10793
10794 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
10795
10796         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10797         VALID_AVX256_REG_OR_OI_MODE.
10798
10799 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
10800
10801         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10802         current procedure should be profiled.
10803
10804 2014-01-15  Andrew Pinski  <apinski@cavium.com>
10805
10806         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10807         of moving from/to the STACK_REG register class.
10808
10809 2014-01-15  Richard Henderson  <rth@redhat.com>
10810
10811         PR debug/54694
10812         * reginfo.c (global_regs_decl): Globalize.
10813         * rtl.h (global_regs_decl): Declare.
10814         * ira.c (do_reload): Diagnose frame_pointer_needed and it
10815         reserved via global_regs.
10816
10817 2014-01-15  Teresa Johnson  <tejohnson@google.com>
10818
10819         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10820
10821 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
10822
10823         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10824         and vmulosh rather than call gen_vec_widen_smult_*.
10825         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10826         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10827         (vec_widen_smult_even_v16qi): Likewise.
10828         (vec_widen_umult_even_v8hi): Likewise.
10829         (vec_widen_smult_even_v8hi): Likewise.
10830         (vec_widen_umult_odd_v16qi): Likewise.
10831         (vec_widen_smult_odd_v16qi): Likewise.
10832         (vec_widen_umult_odd_v8hi): Likewise.
10833         (vec_widen_smult_odd_v8hi): Likewise.
10834         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10835         vmuloub rather than call gen_vec_widen_umult_*.
10836         (vec_widen_umult_lo_v16qi): Likewise.
10837         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10838         vmulosb rather than call gen_vec_widen_smult_*.
10839         (vec_widen_smult_lo_v16qi): Likewise.
10840         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10841         rather than call gen_vec_widen_umult_*.
10842         (vec_widen_umult_lo_v8hi): Likewise.
10843         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10844         rather than call gen_vec_widen_smult_*.
10845         (vec_widen_smult_lo_v8hi): Likewise.
10846
10847 2014-01-15  Jeff Law  <law@redhat.com>
10848
10849         PR tree-optimization/59747
10850         * ree.c (find_and_remove_re): Properly handle case where a second
10851         eliminated extension requires widening a copy created for elimination
10852         of a prior extension.
10853         (combine_set_extension): Ensure that the number of hard regs needed
10854         for a destination register does not change when we widen it.
10855
10856 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10857
10858         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10859         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10860         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10861         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10862         (avr-*-rtems*): Likewise.
10863         (bfin*-rtems*): Likewise.
10864         (moxie-*-rtems*): Likewise.
10865         (h8300-*-rtems*): Likewise.
10866         (i[34567]86-*-rtems*): Likewise.
10867         (lm32-*-rtems*): Likewise.
10868         (m32r-*-rtems*): Likewise.
10869         (m68k-*-rtems*): Likewise.
10870         (microblaze*-*-rtems*): Likewise.
10871         (mips*-*-rtems*): Likewise.
10872         (powerpc-*-rtems*): Likewise.
10873         (sh-*-rtems*): Likewise.
10874         (sparc-*-rtems*): Likewise.
10875         (sparc64-*-rtems*): Likewise.
10876         (v850-*-rtems*): Likewise.
10877         (m32c-*-rtems*): Likewise.
10878
10879 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10880
10881         PR rtl-optimization/59511
10882         * ira.c (ira_init_register_move_cost): Use memory costs for some
10883         cases of register move cost calculations.
10884         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10885         instead of BB frequency.
10886         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10887         * lra-assigns.c (find_hard_regno_for): Ditto.
10888
10889 2014-01-15  Richard Biener  <rguenther@suse.de>
10890
10891         PR tree-optimization/59822
10892         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10893         (vectorizable_load): Use it to hoist defs of uses of invariant
10894         loads out of the loop.
10895
10896 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
10897             Kugan Vivekanandarajah  <kuganv@linaro.org>
10898
10899         PR target/59695
10900         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10901         truncation.
10902
10903 2014-01-15  Richard Biener  <rguenther@suse.de>
10904
10905         PR rtl-optimization/59802
10906         * lcm.c (compute_available): Use inverted postorder to seed
10907         the initial worklist.
10908
10909 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10910
10911         PR target/59803
10912         * config/s390/s390.c (s390_preferred_reload_class): Don't return
10913         ADDR_REGS for invalid symrefs in non-PIC code.
10914
10915 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
10916
10917         PR other/58712
10918         * builtins.c (determine_block_size): Initialize *probable_max_size
10919         even if len_rtx is CONST_INT.
10920
10921 2014-01-14  Andrew Pinski  <apinski@cavium.com>
10922
10923         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10924         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10925         (cortexa53_tunings): Likewise.
10926         (aarch64_sched_issue_rate): New function.
10927         (TARGET_SCHED_ISSUE_RATE): Define.
10928
10929 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10930
10931         * ira-costs.c (find_costs_and_classes): Add missed
10932         ira_init_register_move_cost_if_necessary.
10933
10934 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10935
10936         PR target/59787
10937         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10938
10939 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
10940
10941         PR target/59794
10942         * config/i386/i386.c (type_natural_mode): Add a bool parameter
10943         to indicate if type is used for function return value.  Warn ABI
10944         change if the vector mode isn't available for function return value.
10945         (ix86_function_arg_advance): Pass false to type_natural_mode.
10946         (ix86_function_arg): Likewise.
10947         (ix86_gimplify_va_arg): Likewise.
10948         (function_arg_32): Don't warn ABI change.
10949         (ix86_function_value): Pass true to type_natural_mode.
10950         (ix86_return_in_memory): Likewise.
10951         (ix86_struct_value_rtx): Removed.
10952         (TARGET_STRUCT_VALUE_RTX): Likewise.
10953
10954 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10955
10956         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10957         converting a conditional jump into a conditional return.
10958
10959 2014-01-14  Richard Biener  <rguenther@suse.de>
10960
10961         PR tree-optimization/58921
10962         PR tree-optimization/59006
10963         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10964         hoisting invariant stmts.
10965         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10966         invariant loads on the preheader edge if possible.
10967
10968 2014-01-14  Joey Ye  <joey.ye@arm.com>
10969
10970         * doc/plugin.texi (Building GCC plugins): Update to C++.
10971
10972 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
10973
10974         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10975         (_mm_rcp28_round_ss): Ditto.
10976         (_mm_rsqrt28_round_sd): Ditto.
10977         (_mm_rsqrt28_round_ss): Ditto.
10978         (_mm_rcp28_sd): Ditto.
10979         (_mm_rcp28_ss): Ditto.
10980         (_mm_rsqrt28_sd): Ditto.
10981         (_mm_rsqrt28_ss): Ditto.
10982         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10983         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10984         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10985         (IX86_BUILTIN_RCP28SD): Ditto.
10986         (IX86_BUILTIN_RCP28SS): Ditto.
10987         (IX86_BUILTIN_RSQRT28SD): Ditto.
10988         (IX86_BUILTIN_RSQRT28SS): Ditto.
10989         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10990         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10991         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10992         (ix86_expand_special_args_builtin): Expand new FTYPE.
10993         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10994         (srcp14<mode>): Make insn unary.
10995         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10996         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10997         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10998         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10999         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
11000         Fix rounding: make it SAE only.
11001         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
11002         Ditto.
11003         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
11004         Ditto.
11005         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
11006         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
11007         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
11008         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
11009         (round_saeonly_mask_scalar_operand4): Ditto.
11010         (round_saeonly_mask_scalar_op3): Ditto.
11011         (round_saeonly_mask_scalar_op4): Ditto.
11012
11013 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11014
11015         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11016         Implement -maltivec=be for vec_insert and vec_extract.
11017
11018 2014-01-10  DJ Delorie  <dj@redhat.com>
11019
11020         * config/msp430/msp430.md (call_internal): Don't allow memory
11021         references with SP as the base register.
11022         (call_value_internal): Likewise.
11023         * config/msp430/constraints.md (Yc): New.  For memory references
11024         that don't use SP as a base register.
11025
11026         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
11027         "an integer without a # prefix"
11028         * config/msp430/msp430.md (epilogue_helper): Use it.
11029
11030 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
11031
11032         PR target/59617
11033         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
11034         AVX512F gather builtins.
11035         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
11036         on gather decls with INTEGER_TYPE masktype.
11037         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
11038         directly into the builtin rather than hoisting it before loop.
11039
11040         PR tree-optimization/59387
11041         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
11042         (scev_const_prop): If folded_casts and type has undefined overflow,
11043         use force_gimple_operand instead of force_gimple_operand_gsi and
11044         for each added stmt if it is assign with
11045         arith_code_with_undefined_signed_overflow, call
11046         rewrite_to_defined_overflow.
11047         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
11048         gimple-fold.h instead.
11049         (arith_code_with_undefined_signed_overflow,
11050         rewrite_to_defined_overflow): Moved to ...
11051         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
11052         rewrite_to_defined_overflow): ... here.  No longer static.
11053         Include gimplify-me.h.
11054         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
11055         rewrite_to_defined_overflow): New prototypes.
11056
11057 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11058
11059         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
11060
11061 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
11062
11063         * builtins.c (get_object_alignment_2): Minor tweak.
11064         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
11065
11066 2014-01-13  Christian Bruel  <christian.bruel@st.com>
11067
11068         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
11069         optimized non constant lengths.
11070
11071 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
11072
11073         PR libgomp/59194
11074         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
11075         load as __atomic_load_N if possible.
11076
11077 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
11078
11079         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
11080         target parameter.
11081         (rs6000_expand_builtin): Adjust call.
11082
11083 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
11084
11085         PR target/58115
11086         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
11087         * config/rs6000/rs6000.c: Include target-globals.h.
11088         (rs6000_set_current_function): Instead of doing target_reinit
11089         unconditionally, use save_target_globals_default_opts and
11090         restore_target_globals.
11091
11092         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
11093         FPSCR.
11094         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
11095         (rs6000_expand_builtin): Handle mffs and mtfsf.
11096         (rs6000_init_builtins): Define mffs and mtfsf.
11097         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
11098         (rs6000_mffs): New pattern.
11099         (rs6000_mtfsf): New pattern.
11100
11101 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
11102
11103         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
11104         Start narrowing with START.  Apply candidate-use pair
11105         and check overall cost in narrowing.
11106         (iv_ca_prune): Pass new argument.
11107
11108 2014-01-10  Jeff Law  <law@redhat.com>
11109
11110         PR middle-end/59743
11111         * ree.c (combine_reaching_defs): Ensure the defining statement
11112         occurs before the extension when optimizing extensions with
11113         different source and destination hard registers.
11114
11115 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
11116
11117         PR ipa/58585
11118         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
11119         vtables into the type inheritance graph.
11120
11121 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
11122
11123         PR rtl-optimization/59754
11124         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
11125         modes in the REGNO != REGNO case.
11126
11127 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11128
11129         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
11130
11131 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
11132
11133         PR tree-optimization/59745
11134         * tree-predcom.c (tree_predictive_commoning_loop): Call
11135         free_affine_expand_cache if giving up because components is NULL.
11136
11137         * target-globals.c (save_target_globals): Allocate < 4KB structs using
11138         GC in payload of target_globals struct instead of allocating them on
11139         the heap and the larger structs separately using GC.
11140         * target-globals.h (struct target_globals): Make regs, hard_regs,
11141         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
11142         of GTY((skip)) and change type to void *.
11143         (reset_target_globals): Cast loads from those fields to corresponding
11144         types.
11145
11146 2014-01-10  Steve Ellcey  <sellcey@mips.com>
11147
11148         PR plugins/59335
11149         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
11150         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
11151         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
11152
11153 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
11154
11155         PR target/59744
11156         * aarch64-modes.def (CC_Zmode): New flags mode.
11157         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
11158         represents an equality.
11159         (aarch64_get_condition_code): Handle CC_Zmode.
11160         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
11161
11162 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11163
11164         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
11165         extraction in good case.
11166
11167 2014-01-10  Richard Biener  <rguenther@suse.de>
11168
11169         PR tree-optimization/59374
11170         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
11171         checking after SLP discovery.  Mark stmts not participating
11172         in any SLP instance properly.
11173
11174 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11175
11176         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
11177         when handling a SET rtx.
11178
11179 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11180
11181         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
11182         (cortex-a57): Likewise.
11183         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
11184
11185 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11186
11187         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
11188         non-iwmmxt builtins.
11189
11190 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
11191
11192         PR ipa/58252
11193         PR ipa/59226
11194         * ipa-devirt.c record_target_from_binfo): Take as argument
11195         stack of binfos and lookup matching one for virtual inheritance.
11196         (possible_polymorphic_call_targets_1): Update.
11197
11198 2014-01-10  Huacai Chen  <chenhc@lemote.com>
11199
11200         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
11201         kernel strings for Loongson-2E/2F/3A.
11202
11203 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
11204
11205         PR middle-end/59670
11206         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
11207         is_gimple_call before calling gimple_call_internal_p.
11208
11209 2014-01-09  Steve Ellcey  <sellcey@mips.com>
11210
11211         * Makefile.in (TREE_FLOW_H): Remove.
11212         (TREE_SSA_H): Add file names from tree-flow.h.
11213         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
11214         * tree.h: Remove tree-flow.h reference.
11215         * hash-table.h: Remove tree-flow.h reference.
11216         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
11217         reference with tree-ssa-loop.h.
11218
11219 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11220
11221         * doc/invoke.texi: Add -maltivec={be,le} options, and document
11222         default element-order behavior for -maltivec.
11223         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
11224         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
11225         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
11226         when targeting big endian, at least for now.
11227         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
11228
11229 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
11230
11231         PR middle-end/47735
11232         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
11233         var satisfies use_register_for_decl, just take into account type
11234         alignment, rather than decl alignment.
11235
11236         PR tree-optimization/59622
11237         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
11238         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
11239         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
11240         Don't devirtualize for inplace at all.  For targets.length () == 1,
11241         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
11242
11243 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
11244
11245         * config/i386/i386.md (cpu): Remove the unused btver1.
11246
11247 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
11248
11249         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
11250
11251 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
11252
11253         PR target/58115
11254         * tree-core.h (struct target_globals): New forward declaration.
11255         (struct tree_target_option): Add globals field.
11256         * tree.h (TREE_TARGET_GLOBALS): Define.
11257         (prepare_target_option_nodes_for_pch): New prototype.
11258         * target-globals.h (struct target_globals): Define even if
11259         !SWITCHABLE_TARGET.
11260         * tree.c (prepare_target_option_node_for_pch,
11261         prepare_target_option_nodes_for_pch): New functions.
11262         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
11263         * config/i386/i386.c: Include target-globals.h.
11264         (ix86_set_current_function): Instead of doing target_reinit
11265         unconditionally, use save_target_globals_default_opts and
11266         restore_target_globals.
11267
11268 2014-01-09  Richard Biener  <rguenther@suse.de>
11269
11270         PR tree-optimization/59715
11271         * tree-cfg.h (split_critical_edges): Declare.
11272         * tree-cfg.c (split_critical_edges): Export.
11273         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
11274
11275 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11276
11277         * cfgexpand.c (expand_stack_vars): Optionally disable
11278         asan stack protection.
11279         (expand_used_vars): Likewise.
11280         (partition_stack_vars): Likewise.
11281         * asan.c (asan_emit_stack_protection): Optionally disable
11282         after return stack usage.
11283         (instrument_derefs): Optionally disable memory access instrumentation.
11284         (instrument_builtin_call): Likewise.
11285         (instrument_strlen_call): Likewise.
11286         (asan_protect_global): Optionally disable global variables protection.
11287         * doc/invoke.texi: Added doc for new options.
11288         * params.def: Added new options.
11289         * params.h: Likewise.
11290
11291 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
11292
11293         PR rtl-optimization/59724
11294         * ifcvt.c (cond_exec_process_if_block): Don't call
11295         flow_find_head_matching_sequence with 0 longest_match.
11296         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
11297         non-active insns if !stop_after.
11298         (try_head_merge_bb): Revert 2014-01-07 changes.
11299
11300 2014-01-08  Jeff Law  <law@redhat.com>
11301
11302         * ree.c (get_sub_rtx): New function, extracted from...
11303         (merge_def_and_ext): Here.
11304         (combine_reaching_defs): Use get_sub_rtx.
11305
11306 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
11307
11308         * cgraph.h (varpool_variable_node): Do not choke on null node.
11309
11310 2014-01-08  Catherine Moore  <clm@codesourcery.com>
11311
11312         * config/mips/mips.md (simple_return): Attempt to use JRC
11313         for microMIPS.
11314         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
11315
11316 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
11317
11318         PR rtl-optimization/59137
11319         * reorg.c (steal_delay_list_from_target): Call update_block for
11320         elided insns.
11321         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
11322
11323 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11324
11325         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11326         two duplicate entries.
11327
11328 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
11329
11330         Revert:
11331         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
11332
11333         * config/mips/mips.c (mips_truncated_op_cost): New function.
11334         (mips_rtx_costs): Adjust test for BADDU.
11335         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
11336
11337         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
11338
11339         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
11340         (*baddu_si): ...this new pattern.
11341
11342 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
11343
11344         PR ipa/59722
11345         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
11346
11347 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11348
11349         PR middle-end/57748
11350         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
11351         inner_reference_p.
11352         (expand_expr, expand_normal): Adjust.
11353         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
11354         inner_reference_p. Use inner_reference_p to expand inner references.
11355         (store_expr): Adjust.
11356         * cfgexpand.c (expand_call_stmt): Adjust.
11357
11358 2014-01-08  Rong Xu  <xur@google.com>
11359
11360         * gcov-io.c (gcov_var): Move from gcov-io.h.
11361         (gcov_position): Ditto.
11362         (gcov_is_error): Ditto.
11363         (gcov_rewrite): Ditto.
11364         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
11365         only part to libgcc/libgcov.h.
11366
11367 2014-01-08  Marek Polacek  <polacek@redhat.com>
11368
11369         PR middle-end/59669
11370         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
11371
11372 2014-01-08  Marek Polacek  <polacek@redhat.com>
11373
11374         PR sanitizer/59667
11375         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
11376
11377 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
11378
11379         PR rtl-optimization/59649
11380         * stor-layout.c (get_mode_bounds): For BImode return
11381         0 and STORE_FLAG_VALUE.
11382
11383 2014-01-08  Richard Biener  <rguenther@suse.de>
11384
11385         PR middle-end/59630
11386         * gimple.h (is_gimple_builtin_call): Remove.
11387         (gimple_builtin_call_types_compatible_p): New.
11388         (gimple_call_builtin_p): New overload.
11389         * gimple.c (is_gimple_builtin_call): Remove.
11390         (validate_call): Rename to ...
11391         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
11392         check return types.
11393         (validate_type): New static function.
11394         (gimple_call_builtin_p): New overload and adjust.
11395         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
11396         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
11397         (gimple_fold_stmt_to_constant_1): Likewise.
11398         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
11399
11400 2014-01-08  Richard Biener  <rguenther@suse.de>
11401
11402         PR middle-end/59471
11403         * gimplify.c (gimplify_expr): Gimplify register-register type
11404         VIEW_CONVERT_EXPRs to separate stmts.
11405
11406 2014-01-07  Jeff Law  <law@redhat.com>
11407
11408         PR middle-end/53623
11409         * ree.c (combine_set_extension): Handle case where source
11410         and destination registers in an extension insn are different.
11411         (combine_reaching_defs): Allow source and destination registers
11412         in extension to be different under limited circumstances.
11413         (add_removable_extension): Remove restriction that the
11414         source and destination registers in the extension are the same.
11415         (find_and_remove_re): Emit a copy from the extension's
11416         destination to its source after the defining insn if
11417         the source and destination registers are different.
11418
11419         PR middle-end/59285
11420         * ifcvt.c (merge_if_block): If we are merging a block with more than
11421         one successor with a block with no successors, remove any BARRIER
11422         after the second block.
11423
11424 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
11425
11426         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
11427
11428 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
11429
11430         PR target/59652
11431         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
11432         for 14-bit register offsets when INT14_OK_STRICT is false.
11433
11434 2014-01-07  Roland Stigge  <stigge@antcom.de>
11435             Michael Meissner  <meissner@linux.vnet.ibm.com>
11436
11437         PR 57386/target
11438         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11439         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
11440
11441 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
11442
11443         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
11444         -mcpu.
11445
11446 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
11447
11448         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
11449         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
11450         rtx is const0_rtx or not.
11451
11452 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
11453
11454         PR target/58115
11455         * target-globals.c (save_target_globals): Remove this_fn_optab
11456         handling.
11457         * toplev.c: Include optabs.h.
11458         (target_reinit): Temporarily restore the global options if another
11459         set of options are in force.
11460
11461 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
11462
11463         PR rtl-optimization/58668
11464         * cfgcleanup.c (flow_find_cross_jump): Don't count
11465         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
11466         to determine what is counted.
11467         (flow_find_head_matching_sequence): Use active_insn_p to determine
11468         what is counted.
11469         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
11470         counting change.
11471         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
11472         determine what is counted.
11473
11474         PR tree-optimization/59643
11475         * tree-predcom.c (split_data_refs_to_components): If one dr is
11476         read and one write, determine_offset fails and the write isn't
11477         in the bad component, just put the read into the bad component.
11478
11479 2014-01-07  Mike Stump  <mikestump@comcast.net>
11480             Jakub Jelinek  <jakub@redhat.com>
11481
11482         PR pch/59436
11483         * tree-core.h (struct tree_optimization_option): Change optabs
11484         type from unsigned char * to void *.
11485         * optabs.c (init_tree_optimization_optabs): Adjust
11486         TREE_OPTIMIZATION_OPTABS initialization.
11487
11488 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
11489
11490         PR target/59644
11491         * config/i386/i386.h (struct machine_function): Add
11492         no_drap_save_restore field.
11493         * config/i386/i386.c (ix86_save_reg): Use
11494         !cfun->machine->no_drap_save_restore instead of
11495         crtl->stack_realign_needed.
11496         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
11497         this function clears frame_pointer_needed.  Set
11498         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
11499         and DRAP reg is needed.
11500
11501 2014-01-06  Marek Polacek  <polacek@redhat.com>
11502
11503         PR c/57773
11504         * doc/implement-c.texi: Mention that other integer types are
11505         permitted as bit-field types in strictly conforming mode.
11506
11507 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
11508
11509         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
11510         is newly allocated.
11511
11512 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
11513
11514         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
11515
11516 2014-01-06  Martin Jambor  <mjambor@suse.cz>
11517
11518         PR ipa/59008
11519         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
11520         to int.
11521         * ipa-prop.c (ipa_print_node_params): Fix indentation.
11522
11523 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
11524
11525         PR debug/59350
11526         PR debug/59510
11527         * var-tracking.c (add_stores): Preserve the value of the source even if
11528         we don't record the store.
11529
11530 2014-01-06  Terry Guo  <terry.guo@arm.com>
11531
11532         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
11533
11534 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
11535
11536         PR bootstrap/59541
11537         * config/darwin.c (darwin_function_section): Adjust return values to
11538         correspond to optimisation changes made in r206070.
11539
11540 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
11541
11542         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
11543         from prefetch_block tune setting.
11544         (nocona_cost): Correct size of prefetch block to 64.
11545
11546 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11547
11548         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
11549         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
11550         used to save the static chain register in the computation of the offset
11551         from which the FP registers need to be restored.
11552
11553 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
11554
11555         PR tree-optimization/59519
11556         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
11557         ICE if get_current_def (current_new_name) is already non-NULL, as long
11558         as it is a phi result of some other phi in *new_exit_bb that has
11559         the same argument.
11560
11561         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
11562         or vmovdqu* for misaligned_operand.
11563         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
11564         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
11565         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
11566         aligned_mem for AVX512F masked aligned load and store builtins and for
11567         non-temporal moves.
11568
11569 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
11570
11571         PR tree-optimization/59651
11572         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
11573         Address range for negative step should be added by TYPE_SIZE_UNIT.
11574
11575 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
11576
11577         * config/m68k/m68k.c (handle_move_double): Handle pushes with
11578         overlapping registers also for registers other than the stack pointer.
11579
11580 2014-01-03  Marek Polacek  <polacek@redhat.com>
11581
11582         PR other/59661
11583         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
11584         __builtin_FILE.
11585
11586 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
11587
11588         PR target/59625
11589         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
11590         asm goto as jump.
11591
11592         * config/i386/i386.md (MODE_SIZE): New mode attribute.
11593         (push splitter): Use <P:MODE_SIZE> instead of
11594         GET_MODE_SIZE (<P:MODE>mode).
11595         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
11596         (mov -1, reg peephole2): Likewise.
11597         * config/i386/sse.md (*mov<mode>_internal,
11598         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
11599         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
11600         *<code><mode>3, *andnot<mode>3<mask_name>,
11601         <mask_codefor><code><mode>3<mask_name>): Likewise.
11602         * config/i386/subst.md (mask_mode512bit_condition,
11603         sd_mask_mode512bit_condition): Likewise.
11604
11605 2014-01-02  Xinliang David Li  <davidxl@google.com>
11606
11607         PR tree-optimization/59303
11608         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
11609         (dump_predicates): Better output format.
11610         (pred_equal_p): New function.
11611         (is_neq_relop_p): Ditto.
11612         (is_neq_zero_form_p): Ditto.
11613         (pred_expr_equal_p): Ditto.
11614         (pred_neg_p): Ditto.
11615         (simplify_pred): Ditto.
11616         (simplify_preds_2): Ditto.
11617         (simplify_preds_3): Ditto.
11618         (simplify_preds_4): Ditto.
11619         (simplify_preds): Ditto.
11620         (push_pred): Ditto.
11621         (push_to_worklist): Ditto.
11622         (get_pred_info_from_cmp): Ditto.
11623         (is_degenerated_phi): Ditto.
11624         (normalize_one_pred_1): Ditto.
11625         (normalize_one_pred): Ditto.
11626         (normalize_one_pred_chain): Ditto.
11627         (normalize_preds): Ditto.
11628         (normalize_cond_1): Remove function.
11629         (normalize_cond): Ditto.
11630         (is_gcond_subset_of): Ditto.
11631         (is_subset_of_any): Ditto.
11632         (is_or_set_subset_of): Ditto.
11633         (is_and_set_subset_of): Ditto.
11634         (is_norm_cond_subset_of): Ditto.
11635         (pred_chain_length_cmp): Ditto.
11636         (convert_control_dep_chain_into_preds): Type change.
11637         (find_predicates): Ditto.
11638         (find_def_preds): Ditto.
11639         (destroy_predicates_vecs): Ditto.
11640         (find_matching_predicates_in_rest_chains): Ditto.
11641         (use_pred_not_overlap_with_undef_path_pred): Ditto.
11642         (is_pred_expr_subset): Ditto.
11643         (is_pred_chain_subset_of): Ditto.
11644         (is_included_in): Ditto.
11645         (is_superset_of): Ditto.
11646
11647 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11648
11649         Update copyright years.
11650
11651 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11652
11653         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
11654         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
11655         config/arc/arc.md, config/arc/arc.opt,
11656         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
11657         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
11658         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
11659         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
11660         config/linux-protos.h, config/linux.c, config/winnt-c.c,
11661         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
11662         vtable-verify.c, vtable-verify.h: Use the standard form for the
11663         copyright notice.
11664
11665 2014-01-02  Tobias Burnus  <burnus@net-b.de>
11666
11667         * gcc.c (process_command): Update copyright notice dates.
11668         * gcov-dump.c: Ditto.
11669         * gcov.c: Ditto.
11670         * doc/cpp.texi: Bump @copying's copyright year.
11671         * doc/cppinternals.texi: Ditto.
11672         * doc/gcc.texi: Ditto.
11673         * doc/gccint.texi: Ditto.
11674         * doc/gcov.texi: Ditto.
11675         * doc/install.texi: Ditto.
11676         * doc/invoke.texi: Ditto.
11677
11678 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11679
11680         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
11681
11682 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
11683
11684         * config/i386/sse.md (*mov<mode>_internal): Guard
11685         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
11686
11687         PR rtl-optimization/59647
11688         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
11689         new_rtx into UNSIGNED_FLOAT rtxes.
11690 \f
11691 Copyright (C) 2014 Free Software Foundation, Inc.
11692
11693 Copying and distribution of this file, with or without modification,
11694 are permitted in any medium without royalty provided the copyright
11695 notice and this notice are preserved.