PR target/61060
[official-gcc.git] / gcc / ChangeLog
bloba829af0f9af6eb03cfacbb1bc39efcaf0e1a6b53
1 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
3         PR target/61060
4         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
5         is const0_rtx, return immediately.  Don't test count == 0 when
6         it is always true.
8 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10         * Makefile.in: add shrink-wrap.o.
11         * config/i386/i386.c: include "shrink-wrap.h"
12         * function.c: Likewise.
13         (requires_stack_frame_p, next_block_for_reg,
14         move_insn_for_shrink_wrap, prepare_shrink_wrap,
15         dup_block_and_redirect): Move to shrink-wrap.c
16         (thread_prologue_and_epilogue_insns): Extract three code segments
17         as functions in shrink-wrap.c
18         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
19         shrink-wrap.h
20         * shrink-wrap.c: New file.
21         * shrink-wrap.h: New file.
23 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
26         reference to Solaris.
28 2014-05-12  Mike Stump  <mikestump@comcast.net>
30         PR other/31778
31         * genattrtab.c (filename): Add.
32         (convert_set_attr_alternative): Improve error message.
33         (check_defs): Restore read_md_filename for error messages.
34         (gen_insn): Save filename.
36 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
39         -fno-local-ivars and -fivar-visibility.
40         * c-family/c.opt: Make -Wshadow also implicitly enable
41         -Wshadow-ivar.
43 2014-05-12  David Wohlferd <dw@LimeGreenSocks.com>
45         * doc/tm.texi: Remove reference to deleted macro.
46         * doc/tm.texi.in: Likewise.
48 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
50         PR target/60991
51         * config/avr/avr.c (avr_out_store_psi): Use correct constant
52         to restore Y.
54 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
56         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
57         * config/arm/aout.h (License): Same.
58         * config/arm/bpabi.h (License): Same.
59         * config/arm/elf.h (License): Same.
60         * config/arm/linux-elf.h (License): Same.
61         * config/arm/linux-gas.h (License): Same.
62         * config/arm/netbsd-elf.h (License): Same.
63         * config/arm/uclinux-eabi.h (License): Same.
64         * config/arm/uclinux-elf.h (License): Same.
65         * config/arm/vxworks.h (License): Same.
67 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
69         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
70         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
71         number of operands to 3.
72         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
73         * tree-nested.c (convert_nonlocal_omp_clauses,
74         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
75         * gimplify.c (gimplify_scan_omp_clauses): Handle
76         OMP_CLAUSE_LINEAR_STMT.
77         * omp-low.c (lower_rec_input_clauses): Fix typo.
78         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
79         cast between Fortran boolean_type_node and C _Bool if
80         needed.
82 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
84         PR tree-optimization/61136
85         * wide-int.h (multiple_of_p): Define a version that doesn't return
86         the quotient.
87         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
88         integer_zerop/const_binop pair.
89         (multiple_of_p): Likewise, converting both operands to widest_int
90         precision.
92 2014-05-09  Teresa Johnson  <tejohnson@google.com>
94         * cgraphunit.c (analyze_functions): Use correct dump file.
96 2014-05-09  Florian Weimer  <fweimer@redhat.com>
98         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
99         expand_used_vars.
100         (stack_protect_return_slot_p): New function.
101         (expand_used_vars): Call stack_protect_decl_p and
102         stack_protect_return_slot_p for -fstack-protector-strong.
104 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
106         PR middle-end/61111
107         * fold-const.c (fold_binary_loc): Changed width of mask.
109 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
111         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
112         unsigned int initializers for regno_in, regno_out.
114 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
116         PR target/61055
117         * config/avr/avr.md (cc): Add new attribute set_vzn.
118         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
119         Set cc insn attribute to set_vzn instead of set_zn for alternatives
120         with INC, DEC or NEG.
121         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
122         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
123         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
125 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
127         Revert:
128         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
130         * wide-int.cc (UTItype): Define.
131         (UDWtype): Define for appropriate W_TYPE_SIZE.
133 2014-05-09  Richard Biener  <rguenther@suse.de>
135         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
136         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
137         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
138         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
139         ssa_propagate): Adjust.
141 2014-05-08  Jeff Law  <law@redhat.com>
143         PR tree-optimization/61009
144         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
145         tri-state rather than a boolean.  When a block is too big to
146         thread through, inform caller via negative return value.
147         (thread_across_edge): If a block was too big for normal threading,
148         then it's too big for a joiner too, so remove temporary equivalences
149         and return immediately.
151 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
152             Matthias Klose  <doko@ubuntu.com>
154         PR driver/61106
155         * optc-gen.awk: Fix option handling for -Wunused-parameter.
157 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
159         PR target/59952
160         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
162 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
164         PR target/61092
165         * config/alpha/alpha.c: Include gimple-iterator.h.
166         (alpha_gimple_fold_builtin): New function.  Move
167         ALPHA_BUILTIN_UMULH folding from ...
168         (alpha_fold_builtin): ... here.
169         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
171 2014-05-08  Wei Mi  <wmi@google.com>
173         PR target/58066
174         * config/i386/i386.c (ix86_compute_frame_layout): Update
175         preferred_stack_boundary for call, expanded from tls descriptor.
176         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
177         to depend on SP register.
178         (*tls_local_dynamic_base_32_gnu): Ditto.
179         (*tls_local_dynamic_32_once): Ditto.
180         (tls_global_dynamic_64_<mode>): Set
181         ix86_tls_descriptor_calls_expanded_in_cfun.
182         (tls_local_dynamic_base_64_<mode>): Ditto.
183         (tls_global_dynamic_32): Set
184         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
185         to depend on SP register.
186         (tls_local_dynamic_base_32): Ditto.
188 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
190         * config/arm/arm_neon.h: Update comment.
191         * config/arm/neon-docgen.ml: Delete.
192         * config/arm/neon-gen.ml: Delete.
193         * doc/arm-neon-intrinsics.texi: Update comment.
195 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
197         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
198         and v4sf versions.
199         (vand, vorr, veor, vorn, vbic): Remove.
200         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
201         iterator.
202         (neon_vsub_unspec): Likewise.
203         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
205 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
207         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
208         (vadd_s16): Likewise.
209         (vadd_s32): Likewise.
210         (vadd_f32): Likewise.
211         (vadd_u8): Likewise.
212         (vadd_u16): Likewise.
213         (vadd_u32): Likewise.
214         (vadd_s64): Likewise.
215         (vadd_u64): Likewise.
216         (vaddq_s8): Likewise.
217         (vaddq_s16): Likewise.
218         (vaddq_s32): Likewise.
219         (vaddq_s64): Likewise.
220         (vaddq_f32): Likewise.
221         (vaddq_u8): Likewise.
222         (vaddq_u16): Likewise.
223         (vaddq_u32): Likewise.
224         (vaddq_u64): Likewise.
225         (vmul_s8): Likewise.
226         (vmul_s16): Likewise.
227         (vmul_s32): Likewise.
228         (vmul_f32): Likewise.
229         (vmul_u8): Likewise.
230         (vmul_u16): Likewise.
231         (vmul_u32): Likewise.
232         (vmul_p8): Likewise.
233         (vmulq_s8): Likewise.
234         (vmulq_s16): Likewise.
235         (vmulq_s32): Likewise.
236         (vmulq_f32): Likewise.
237         (vmulq_u8): Likewise.
238         (vmulq_u16): Likewise.
239         (vmulq_u32): Likewise.
240         (vsub_s8): Likewise.
241         (vsub_s16): Likewise.
242         (vsub_s32): Likewise.
243         (vsub_f32): Likewise.
244         (vsub_u8): Likewise.
245         (vsub_u16): Likewise.
246         (vsub_u32): Likewise.
247         (vsub_s64): Likewise.
248         (vsub_u64): Likewise.
249         (vsubq_s8): Likewise.
250         (vsubq_s16): Likewise.
251         (vsubq_s32): Likewise.
252         (vsubq_s64): Likewise.
253         (vsubq_f32): Likewise.
254         (vsubq_u8): Likewise.
255         (vsubq_u16): Likewise.
256         (vsubq_u32): Likewise.
257         (vsubq_u64): Likewise.
258         (vand_s8): Likewise.
259         (vand_s16): Likewise.
260         (vand_s32): Likewise.
261         (vand_u8): Likewise.
262         (vand_u16): Likewise.
263         (vand_u32): Likewise.
264         (vand_s64): Likewise.
265         (vand_u64): Likewise.
266         (vandq_s8): Likewise.
267         (vandq_s16): Likewise.
268         (vandq_s32): Likewise.
269         (vandq_s64): Likewise.
270         (vandq_u8): Likewise.
271         (vandq_u16): Likewise.
272         (vandq_u32): Likewise.
273         (vandq_u64): Likewise.
274         (vorr_s8): Likewise.
275         (vorr_s16): Likewise.
276         (vorr_s32): Likewise.
277         (vorr_u8): Likewise.
278         (vorr_u16): Likewise.
279         (vorr_u32): Likewise.
280         (vorr_s64): Likewise.
281         (vorr_u64): Likewise.
282         (vorrq_s8): Likewise.
283         (vorrq_s16): Likewise.
284         (vorrq_s32): Likewise.
285         (vorrq_s64): Likewise.
286         (vorrq_u8): Likewise.
287         (vorrq_u16): Likewise.
288         (vorrq_u32): Likewise.
289         (vorrq_u64): Likewise.
290         (veor_s8): Likewise.
291         (veor_s16): Likewise.
292         (veor_s32): Likewise.
293         (veor_u8): Likewise.
294         (veor_u16): Likewise.
295         (veor_u32): Likewise.
296         (veor_s64): Likewise.
297         (veor_u64): Likewise.
298         (veorq_s8): Likewise.
299         (veorq_s16): Likewise.
300         (veorq_s32): Likewise.
301         (veorq_s64): Likewise.
302         (veorq_u8): Likewise.
303         (veorq_u16): Likewise.
304         (veorq_u32): Likewise.
305         (veorq_u64): Likewise.
306         (vbic_s8): Likewise.
307         (vbic_s16): Likewise.
308         (vbic_s32): Likewise.
309         (vbic_u8): Likewise.
310         (vbic_u16): Likewise.
311         (vbic_u32): Likewise.
312         (vbic_s64): Likewise.
313         (vbic_u64): Likewise.
314         (vbicq_s8): Likewise.
315         (vbicq_s16): Likewise.
316         (vbicq_s32): Likewise.
317         (vbicq_s64): Likewise.
318         (vbicq_u8): Likewise.
319         (vbicq_u16): Likewise.
320         (vbicq_u32): Likewise.
321         (vbicq_u64): Likewise.
322         (vorn_s8): Likewise.
323         (vorn_s16): Likewise.
324         (vorn_s32): Likewise.
325         (vorn_u8): Likewise.
326         (vorn_u16): Likewise.
327         (vorn_u32): Likewise.
328         (vorn_s64): Likewise.
329         (vorn_u64): Likewise.
330         (vornq_s8): Likewise.
331         (vornq_s16): Likewise.
332         (vornq_s32): Likewise.
333         (vornq_s64): Likewise.
334         (vornq_u8): Likewise.
335         (vornq_u16): Likewise.
336         (vornq_u32): Likewise.
337         (vornq_u64): Likewise.
339 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
341         * wide-int.cc (UTItype): Define.
342         (UDWtype): Define for appropriate W_TYPE_SIZE.
344 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
346         PR tree-optimization/59100
347         * tree-ssa-phiopt.c: Include tree-inline.h.
348         (neutral_element_p, absorbing_element_p): New functions.
349         (value_replacement): Handle conditional binary operations with a
350         neutral or absorbing element.
352 2014-05-08  Richard Biener  <rguenther@suse.de>
354         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
355         folding the expression.
356         (valueize_expr): Remove.
357         (visit_reference_op_load): Do not valueize the result of
358         vn_get_expr_for.
359         (simplify_binary_expression): Likewise.
360         (simplify_unary_expression): Likewise.
362 2014-05-08  Richard Biener  <rguenther@suse.de>
364         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
365         looking at TYPE_ARG_TYPES.
367 2014-05-08  Richard Biener  <rguenther@suse.de>
369         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
370         pointer propagation special-case.
372 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
374         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
375         core part of address expressions.
377 2014-05-08  Alan Modra  <amodra@gmail.com>
379         PR target/60737
380         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
381         loads and stores when -mno-strict-align at any alignment.
382         (expand_block_clear): Similarly.  Also correct calculation of
383         instruction count.
385 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
387         PR middle-end/39246
388         * tree-complex.c (expand_complex_move): Keep line info when expanding
389         complex move.
390         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
391         of complex expression. Use new argument to display correct location
392         for values coming from phi statement.
393         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
394         (warn_uninitialized_phi): Pass location of phi argument to
395         warn_uninit.
396         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
397         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
399 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
401         * config/rs6000/predicates.md (indexed_address_mem): New.
402         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
403         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
404         fpstore_ux, fpstore_u.
405         (sign_extend, indexed, update): New.
406         (cell_micro): Adjust.
407         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
408         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
409         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
410         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
411         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
412         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
413         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
414         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
415         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
416         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
417         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
418         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
419         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
420         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
421         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
423         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
424         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
425         *vsx_extract_<mode>_store): Adjust.
426         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
427         is_cracked_insn, insn_must_be_first_in_group,
428         insn_must_be_last_in_group): Adjust.
430         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
431         Adjust.
432         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
433         ppc440-fpstore): Adjust.
434         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
435         ppc476-fpstore): Adjust.
436         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
437         ppc601-fpstore): Adjust.
438         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
439         Adjust.
440         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
441         Adjust.
442         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
443         ppc7450-fpstore): Adjust.
444         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
445         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
446         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
447         Adjust.
448         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
449         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
450         cell-fpstore, cell-fpstore-update): Adjust.
451         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
452         ppce300c3_store, ppce300c3_fpstore): Adjust.
453         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
454         e500mc_fpstore): Adjust.
455         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
456         e500mc64_store, e500mc64_fpstore): Adjust.
457         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
458         e5500_fpstore): Adjust.
459         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
460         e6500_fpstore): Adjust.
461         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
462         Adjust.
463         * config/rs6000/power4.md (power4-load, power4-load-ext,
464         power4-load-ext-update, power4-load-ext-update-indexed,
465         power4-load-update-indexed, power4-load-update, power4-fpload,
466         power4-fpload-update, power4-store, power4-store-update,
467         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
468         Adjust.
469         * config/rs6000/power5.md (power5-load, power5-load-ext,
470         power5-load-ext-update, power5-load-ext-update-indexed,
471         power5-load-update-indexed, power5-load-update, power5-fpload,
472         power5-fpload-update, power5-store, power5-store-update,
473         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
474         Adjust.
475         * config/rs6000/power6.md (power6-load, power6-load-ext,
476         power6-load-update, power6-load-update-indexed,
477         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
478         power6-fpload-update, power6-store, power6-store-update,
479         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
480         Adjust.
481         * config/rs6000/power7.md (power7-load, power7-load-ext,
482         power7-load-update, power7-load-update-indexed,
483         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
484         power7-fpload-update, power7-store, power7-store-update,
485         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
486         Adjust.
487         * config/rs6000/power8.md (power8-load, power8-load-update,
488         power8-load-ext, power8-load-ext-update, power8-fpload,
489         power8-fpload-update, power8-store, power8-store-update-indexed,
490         power8-fpstore, power8-fpstore-update): Adjust.
491         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
492         Adjust.
493         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
494         titan_lsu_store, titan_lsu_fpstore): Adjust.
495         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
497 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
499         PR target/60884
500         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
501         unrolled byte insns.  Emit address increments after move insns.
503 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
505         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
506         const_gimple, rather than a gimple.
507         (gimple_call_builtin_p): Likewise, for the three variants.
509         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
510         (gimple_call_builtin_p): Likewise, for the three variants.
512 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
514         PR tree-optimization/61095
515         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
517 2014-05-07  Richard Biener  <rguenther@suse.de>
519         PR tree-optimization/61034
520         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
521         (maybe_skip_until): Use translate to take into account
522         lattices when trying to do disambiguations.
523         (get_continuation_for_phi_1): Likewise.
524         (get_continuation_for_phi): Adjust for added translate arguments.
525         (walk_non_aliased_vuses): Likewise.
526         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
527         (walk_non_aliased_vuses): Likewise.
528         (call_may_clobber_ref_p_1): Declare.
529         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
530         calls.  Stop early if we are only supposed to disambiguate.
531         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
533 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
535         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
536         Emit an error when the function has arguments.
538 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
540         * cfgloop.h (unswitch_loops): Remove.
541         * doc/passes.texi: Remove references to loop-unswitch.c
542         * timevar.def (TV_LOOP_UNSWITCH): Remove.
544 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
546         * tree-vect-data-refs.c (vect_grouped_load_supported): New
547         check for loads group of length 3.
548         (vect_permute_load_chain): New permutations for loads group of
549         length 3.
550         * tree-vect-stmts.c (vect_model_load_cost): Change cost
551         of vec_perm_shuffle for the new permutations.
553 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
555         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
556         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
557         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
558         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
559         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
560         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
561         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
562         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
564 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
566         * loop-unswitch.c: Delete.
568 2014-05-07  Richard Biener  <rguenther@suse.de>
570         * config.gcc: Always set need_64bit_hwint to yes.
572 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
574         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
575         of using optimize_size.
577 2014-05-06  Mike Stump  <mikestump@comcast.net>
579         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
581 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
583         * config/i386/sse.md (*mov<mode>_internal)
584         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
585         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
586         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
587         (*<code><mode>3, *andnot<mode>3<mask_name>)
588         (<mask_codefor><code><mode>3<mask_name>): Only consider
589         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
591 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
593         Revert:
594         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
596         * lra-constraints.c (valid_address_p): Move earlier in file.
597         Add a constraint argument to the address_info version.
598         (satisfies_memory_constraint_p): New function.
599         (satisfies_address_constraint_p): Likewise.
600         (process_alt_operands, curr_insn_transform): Use them.
601         (process_address): Pass the constraint to valid_address_p when
602         checking address operands.
604 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
606         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
607         to their respective blocks.  Fix inadvertent use of "node".
609 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
611         * emit-rtl.c (init_derived_machine_modes): New functionm, split
612         out from...
613         (init_emit_once): ...here.
614         * rtl.h (init_derived_machine_modes): Declare.
615         * toplev.c (do_compile): Call it even if no_backend.
617 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
618             Mike Stump  <mikestump@comcast.net>
619             Richard Sandiford  <rdsandiford@googlemail.com>
620             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
622         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
623         (rtx_equal_for_memref_p): Update comment.
624         (adjust_offset_for_component_ref): Use wide-int interfaces.
625         * builtins.c (get_object_alignment_2): Likewise.
626         (c_readstr): Likewise.
627         (target_char_cast): Add comment.
628         (determine_block_size): Use wide-int interfaces.
629         (expand_builtin_signbit): Likewise.
630         (fold_builtin_int_roundingfn): Likewise.
631         (fold_builtin_bitop): Likewise.
632         (fold_builtin_bswap): Likewise.
633         (fold_builtin_logarithm): Use signop.
634         (fold_builtin_pow): Likewise.
635         (fold_builtin_memory_op): Use wide-int interfaces.
636         (fold_builtin_object_size): Likewise.
637         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
638         nb_iterations_estimate.
639         (record_niter_bound): Use wide-int interfaces.
640         (get_estimated_loop_iterations_int): Likewise.
641         (get_estimated_loop_iterations): Likewise.
642         (get_max_loop_iterations): Likewise.
643         * cfgloop.h: Include wide-int.h.
644         (struct nb_iter_bound): Change bound to widest_int.
645         (struct loop): Change nb_iterations_upper_bound and
646         nb_iterations_estimate to widest_int.
647         (record_niter_bound): Switch to use widest_int.
648         (get_estimated_loop_iterations): Likewise.
649         (get_max_loop_iterations): Likewise.
650         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
651         update for wide-int.
652         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
653         * combine.c (try_combine): Likewise.
654         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
655         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
656         interfaces.
657         (aarch64_float_const_representable_p): Likewise.
658         * config/arc/arc.c: Include wide-int.h.
659         (arc_can_use_doloop_p): Use wide-int interfaces.
660         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
661         (vfp3_const_double_index): Likewise.
662         * config/avr/avr.c (avr_out_round): Likewise.
663         (avr_fold_builtin): Likewise.
664         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
665         (bfin_can_use_doloop_p): Likewise.
666         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
667         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
668         * config/i386/i386.c: Include wide-int.h.
669         (ix86_data_alignment): Use wide-int interfaces.
670         (ix86_local_alignment): Likewise.
671         (ix86_emit_swsqrtsf): Update real_from_integer.
672         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
673         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
674         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
675         (zero_constant): Likewise.
676         (input_operand): Likewise.
677         (splat_input_operand): Likewise.
678         (non_logical_cint_operand): Change const_double to const_wide_int.
679         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
680         (easy_altivec_constant): Remove comment.
681         (paired_expand_vector_init): Use CONSTANT_P.
682         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
683         (rs6000_emit_move): Update checks.
684         (rs6000_aggregate_candidate): Use wide-int interfaces.
685         (rs6000_expand_ternop_builtin): Likewise.
686         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
687         (rs6000_assemble_integer): Likewise.
688         (rs6000_hash_constant): Likewise.
689         (output_toc): Likewise.
690         (rs6000_rtx_costs): Likewise.
691         (rs6000_emit_swrsqrt); Update call to real_from_integer.
692         * config/rs6000/rs6000-c.c: Include wide-int.h.
693         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
694         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
695         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
696         Handle CONST_WIDE_INT.
697         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
698         Use tree_fits_uhwi_p.
699         * config/sparc/sparc.c: Include wide-int.h.
700         (sparc_fold_builtin): Use wide-int interfaces.
701         * config/vax/vax.c: Include wide-int.h.
702         (vax_float_literal): Use real_from_integer.
703         * coretypes.h (struct hwivec_def): New.
704         (hwivec): New.
705         (const_hwivec): New.
706         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
707         (equiv_constant): Handle CONST_WIDE_INT.
708         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
709         (cselib_hash_rtx): Handle CONST_WIDE_INT.
710         * dbxout.c (stabstr_U): Use wide-int interfaces.
711         (dbxout_type): Update to use cst_fits_shwi_p.
712         * defaults.h (LOG2_BITS_PER_UNIT): Define.
713         (TARGET_SUPPORTS_WIDE_INT): Add default.
714         * dfp.c: Include wide-int.h.
715         (decimal_real_to_integer2): Use wide-int interfaces and rename to
716         decimal_real_to_integer.
717         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
718         decimal_real_to_integer.
719         * doc/generic.texi (Constant expressions): Update for wide_int.
720         * doc/rtl.texi (const_double): Likewise.
721         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
722         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
723         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
724         (REAL_VALUE_FROM_INT): Remove.
725         (TARGET_SUPPORTS_WIDE_INT): New.
726         * doc/tm.texi: Regenerate.
727         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
728         * double-int.h: Include wide-int.h.
729         (struct wi::int_traits): New.
730         * dwarf2out.c (get_full_len): New.
731         (dw_val_equal_p): Add case dw_val_class_wide_int.
732         (size_of_loc_descr): Likewise.
733         (output_loc_operands): Likewise.
734         (insert_double): Remove.
735         (insert_wide_int): New.
736         (add_AT_wide): New.
737         (print_die): Add case dw_val_class_wide_int.
738         (attr_checksum): Likewise.
739         (attr_checksum_ordered): Likewise.
740         (same_dw_val_p): Likewise.
741         (size_of_die): Likewise.
742         (value_format): Likewise.
743         (output_die): Likewise.
744         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
745         Use wide-int.
746         (clz_loc_descriptor): Use wide-int interfaces.
747         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
748         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
749         (round_up_to_align): Use wide-int interfaces.
750         (field_byte_offset): Likewise.
751         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
752         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
753         CONST_DOUBLE handling.  Use wide-int interfaces.
754         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
755         (gen_enumeration_type_die): Use add_AT_wide.
756         (hash_loc_operands): Add case dw_val_class_wide_int.
757         (compare_loc_operands): Likewise.
758         * dwarf2out.h: Include wide-int.h.
759         (wide_int_ptr): New.
760         (enum dw_val_class): Add dw_val_class_wide_int.
761         (struct dw_val_struct): Add val_wide.
762         * emit-rtl.c (const_wide_int_htab): New.
763         (const_wide_int_htab_hash): New.
764         (const_wide_int_htab_eq): New.
765         (lookup_const_wide_int): New.
766         (const_double_htab_hash): Use wide-int interfaces.
767         (const_double_htab_eq): Likewise.
768         (rtx_to_double_int): Conditionally compile for wide-int.
769         (immed_double_int_const): Rename to immed_wide_int_const and
770         update for wide-int.
771         (immed_double_const): Conditionally compile for wide-int.
772         (init_emit_once): Use wide-int interfaces.
773         * explow.c (plus_constant): Likewise.
774         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
775         (lshift_value): Use wide-int interfaces.
776         (expand_mult): Likewise.
777         (choose_multiplier): Likewise.
778         (expand_smod_pow2): Likewise.
779         (make_tree): Likewise.
780         * expr.c (convert_modes): Consolidate handling of constants.
781         Use wide-int interfaces.
782         (emit_group_load_1): Add note.
783         (store_expr): Update comment.
784         (get_inner_reference): Use wide-int interfaces.
785         (expand_constructor): Update comment.
786         (expand_expr_real_2): Use wide-int interfaces.
787         (expand_expr_real_1): Likewise.
788         (reduce_to_bit_field_precision): Likewise.
789         (const_vector_from_tree): Likewise.
790         * final.c: Include wide-int-print.h.
791         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
792         * fixed-value.c: Include wide-int.h.
793         (fixed_from_string): Use wide-int interfaces.
794         (fixed_to_decimal): Likewise.
795         (fixed_convert_from_real): Likewise.
796         (real_convert_from_fixed): Likewise.
797         * fold-const.h (mem_ref_offset): Return an offset_int.
798         (div_if_zero_remainder): Remove code parameter.
799         * fold-const.c (div_if_zero_remainder): Remove code parameter.
800         Use wide-int interfaces.
801         (may_negate_without_overflow_p): Use wide-int interfaces.
802         (negate_expr_p): Likewise.
803         (fold_negate_expr): Likewise.
804         (int_const_binop_1): Likewise.
805         (const_binop): Likewise.
806         (fold_convert_const_int_from_int): Likewise.
807         (fold_convert_const_int_from_real): Likewise.
808         (fold_convert_const_int_from_fixed): Likewise.
809         (fold_convert_const_fixed_from_int): Likewise.
810         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
811         (sign_bit_p): Use wide-int interfaces.
812         (make_range_step): Likewise.
813         (build_range_check): Likewise.  Pass an integer of the correct type
814         instead of using integer_one_node.
815         (range_predecessor): Pass an integer of the correct type instead
816         of using integer_one_node.
817         (range_successor): Likewise.
818         (merge_ranges): Likewise.
819         (unextend): Use wide-int interfaces.
820         (extract_muldiv_1): Likewise.
821         (fold_div_compare): Likewise.
822         (fold_single_bit_test): Likewise.
823         (fold_sign_changed_comparison): Likewise.
824         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
825         (fold_plusminus_mult_expr): Use wide-int interfaces.
826         (native_encode_int): Likewise.
827         (native_interpret_int): Likewise.
828         (fold_unary_loc): Likewise.
829         (pointer_may_wrap_p): Likewise.
830         (size_low_cst): Likewise.
831         (mask_with_tz): Likewise.
832         (fold_binary_loc): Likewise.
833         (fold_ternary_loc): Likewise.
834         (multiple_of_p): Likewise.
835         (tree_call_nonnegative_warnv_p): Update calls to
836         tree_int_cst_min_precision and real_from_integer.
837         (fold_negate_const): Use wide-int interfaces.
838         (fold_abs_const): Likewise.
839         (fold_relational_const): Use tree_int_cst_lt.
840         (round_up_loc): Use wide-int interfaces.
841         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
842         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
843         * gengtype.c: Remove include of double-int.h.
844         (do_typedef): Use wide-int interfaces.
845         (open_base_files): Add wide-int.h.
846         (main): Add offset_int and widest_int typedefs.
847         * gengtype-lex.l: Handle "^".
848         (CXX_KEYWORD): Add "static".
849         * gengtype-parse.c (require3): New.
850         (require_template_declaration): Handle constant template arguments
851         and nested templates.
852         * gengtype-state.c: Don't include "double-int.h".
853         * genpreds.c (write_one_predicate_function): Update comment.
854         (write_tm_constrs_h): Add check for hval and lval use in
855         CONST_WIDE_INT.
856         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
857         (add_to_sequence): Likewise.
858         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
859         and const_double_operand.
860         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
861         interfaces.
862         * gimple-fold.c (get_base_constructor): Likewise.
863         (fold_array_ctor_reference): Likewise.
864         (fold_nonarray_ctor_reference): Likewise.
865         (fold_const_aggregate_ref_1): Likewise.
866         (gimple_val_nonnegative_real_p): Likewise.
867         (gimple_fold_indirect_ref): Likewise.
868         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
869         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
870         (struct slsr_cand_d): Change index to be widest_int.
871         (struct incr_info_d): Change incr to be widest_int.
872         (alloc_cand_and_find_basis): Use wide-int interfaces.
873         (slsr_process_phi): Likewise.
874         (backtrace_base_for_ref): Likewise.  Return a widest_int.
875         (restructure_reference): Take a widest_int instead of a double_int.
876         (slsr_process_ref): Use wide-int interfaces.
877         (create_mul_ssa_cand): Likewise.
878         (create_mul_imm_cand): Likewise.
879         (create_add_ssa_cand): Likewise.
880         (create_add_imm_cand): Take a widest_int instead of a double_int.
881         (slsr_process_add): Use wide-int interfaces.
882         (slsr_process_cast): Likewise.
883         (slsr_process_copy): Likewise.
884         (dump_candidate): Likewise.
885         (dump_incr_vec): Likewise.
886         (replace_ref): Likewise.
887         (cand_increment): Likewise.  Return a widest_int.
888         (cand_abs_increment): Likewise.
889         (replace_mult_candidate): Take a widest_int instead of a double_int.
890         (replace_unconditional_candidate): Use wide-int interfaces.
891         (incr_vec_index): Take a widest_int instead of a double_int.
892         (create_add_on_incoming_edge): Likewise.
893         (create_phi_basis): Use wide-int interfaces.
894         (replace_conditional_candidate): Likewise.
895         (record_increment): Take a widest_int instead of a double_int.
896         (record_phi_increments): Use wide-int interfaces.
897         (phi_incr_cost): Take a widest_int instead of a double_int.
898         (lowest_cost_path): Likewise.
899         (total_savings): Likewise.
900         (analyze_increments): Use wide-int interfaces.
901         (ncd_with_phi): Take a widest_int instead of a double_int.
902         (ncd_of_cand_and_phis): Likewise.
903         (nearest_common_dominator_for_cands): Likewise.
904         (insert_initializers): Use wide-int interfaces.
905         (all_phi_incrs_profitable): Likewise.
906         (replace_one_candidate): Likewise.
907         (replace_profitable_candidates): Likewise.
908         * godump.c: Include wide-int-print.h.
909         (go_output_typedef): Use wide-int interfaces.
910         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
911         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
912         (build_loop_iteration_domains): Likewise.
913         * hooks.h: Include wide-int.h rather than double-int.h.
914         (hook_bool_dint_dint_uint_bool_true): Delete.
915         (hook_bool_wint_wint_uint_bool_true): Declare.
916         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
917         (hook_bool_wint_wint_uint_bool_true): New.
918         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
919         interfaces.
920         (ubsan_expand_si_overflow_mul_check): Likewise.
921         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
922         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
923         (get_ancestor_addr_info): Likewise.
924         (ipa_modify_call_arguments): Likewise.
925         * loop-doloop.c (doloop_modify): Likewise.
926         (doloop_optimize): Likewise.
927         * loop-iv.c (iv_number_of_iterations): Likewise.
928         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
929         (unroll_loop_constant_iterations): Likewise.
930         (decide_unroll_runtime_iterations): Likewise.
931         (unroll_loop_runtime_iterations): Likewise.
932         (decide_peel_simple): Likewise.
933         (decide_unroll_stupid): Likewise.
934         * lto-streamer-in.c (streamer_read_wi): Add.
935         (input_cfg): Use wide-int interfaces.
936         (lto_input_tree_1): Likewise.
937         * lto-streamer-out.c (streamer_write_wi): Add.
938         (hash_tree): Use wide-int interfaces.
939         (output_cfg): Likewise.
940         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
941         (GTFILES): Add wide-int.h and signop.h.
942         (TAGS): Look for .cc files too.
943         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
944         * optabs.c (expand_subword_shift): Likewise.
945         (expand_doubleword_shift): Likewise.
946         (expand_absneg_bit): Likewise.
947         (expand_copysign_absneg): Likewise.
948         (expand_copysign_bit): Likewise.
949         * postreload.c (reload_cse_simplify_set): Likewise.
950         * predict.c (predict_iv_comparison): Likewise.
951         * pretty-print.h: Include wide-int-print.h.
952         (pp_wide_int) New.
953         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
954         * print-tree.c: Include wide-int-print.h.
955         (print_node_brief): Use wide-int interfaces.
956         (print_node): Likewise.
957         * read-rtl.c (validate_const_wide_int): New.
958         (read_rtx_code): Add CONST_WIDE_INT case.
959         * real.c: Include wide-int.h.
960         (real_to_integer2): Delete.
961         (real_to_integer): New function, returning a wide_int.
962         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
963         (ten_to_ptwo): Update call to real_from_integer.
964         (real_digit): Likewise.
965         * real.h: Include signop.h, wide-int.h and insn-modes.h.
966         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
967         (REAL_VALUE_TO_INT): Delete.
968         (real_to_integer): Declare a wide-int form.
969         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
970         * recog.c (const_int_operand): Improve comment.
971         (const_scalar_int_operand): New.
972         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
973         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
974         (split_double): Likewise.
975         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
976         (rtx_size): Likewise.
977         (rtx_alloc_stat_v): New.
978         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
979         (cwi_output_hex): New.
980         (iterative_hash_rtx): Handle CONST_WIDE_INT.
981         (cwi_check_failed_bounds): New.
982         * rtl.def (CONST_WIDE_INT): New.
983         * rtl.h: Include <utility> and wide-int.h.
984         (struct hwivec_def): New.
985         (CWI_GET_NUM_ELEM): New.
986         (CWI_PUT_NUM_ELEM): New.
987         (struct rtx_def): Add num_elem and hwiv.
988         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
989         (CASE_CONST_UNIQUE): Likewise.
990         (CASE_CONST_ANY): Likewise.
991         (CONST_SCALAR_INT_P): Likewise.
992         (CONST_WIDE_INT_P): New.
993         (CWI_ELT): New.
994         (HWIVEC_CHECK): New.
995         (cwi_check_failed_bounds): New.
996         (CWI_ELT): New.
997         (HWIVEC_CHECK): New.
998         (CONST_WIDE_INT_VEC) New.
999         (CONST_WIDE_INT_NUNITS) New.
1000         (CONST_WIDE_INT_ELT) New.
1001         (rtx_mode_t): New type.
1002         (wi::int_traits <rtx_mode_t>): New.
1003         (wi::shwi): New.
1004         (wi::min_value): New.
1005         (wi::max_value): New.
1006         (rtx_alloc_v) New.
1007         (const_wide_int_alloc): New.
1008         (immed_wide_int_const): New.
1009         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
1010         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
1011         * signop.h: New file.
1012         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
1013         (simplify_const_unary_operation): Use wide-int interfaces.
1014         (simplify_binary_operation_1): Likewise.
1015         (simplify_const_binary_operation): Likewise.
1016         (simplify_const_relational_operation): Likewise.
1017         (simplify_immed_subreg): Likewise.
1018         * stmt.c (expand_case): Likewise.
1019         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
1020         signop rather than a bool.
1021         * stor-layout.c (layout_type): Use wide-int interfaces.
1022         (initialize_sizetypes): Update calls to
1023         set_min_and_max_values_for_integral_type.
1024         (set_min_and_max_values_for_integral_type): Take a signop rather
1025         than a bool.  Use wide-int interfaces.
1026         (fixup_signed_type): Update accordingly.  Remove
1027         HOST_BITS_PER_DOUBLE_INT limit.
1028         (fixup_unsigned_type): Likewise.
1029         * system.h (STATIC_CONSTANT_P): New.
1030         (STATIC_ASSERT): New.
1031         * target.def (can_use_doloop_p): Take widest_ints rather than
1032         double_ints.
1033         * target.h: Include wide-int.h rather than double-int.h.
1034         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
1035         than double_ints.
1036         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
1037         rather than INT_CST_LT_UNSIGNED.
1038         (can_use_doloop_if_innermost): Take widest_ints rather than
1039         double_ints.
1040         * tree-affine.c: Include wide-int-print.h.
1041         (double_int_ext_for_comb): Delete.
1042         (wide_int_ext_for_comb): New.
1043         (aff_combination_zero): Use wide-int interfaces.
1044         (aff_combination_const): Take a widest_int instead of a double_int.
1045         (aff_combination_elt): Use wide-int interfaces.
1046         (aff_combination_scale): Take a widest_int instead of a double_int.
1047         (aff_combination_add_elt): Likewise.
1048         (aff_combination_add_cst): Likewise.
1049         (aff_combination_add): Use wide-int interfaces.
1050         (aff_combination_convert): Likewise.
1051         (tree_to_aff_combination): Likewise.
1052         (add_elt_to_tree): Take a widest_int instead of a double_int.
1053         (aff_combination_to_tree): Use wide-int interfaces.
1054         (aff_combination_remove_elt): Likewise.
1055         (aff_combination_add_product): Take a widest_int instead of
1056         a double_int.
1057         (aff_combination_mult): Use wide-int interfaces.
1058         (aff_combination_expand): Likewise.
1059         (double_int_constant_multiple_p): Delete.
1060         (wide_int_constant_multiple_p): New.
1061         (aff_combination_constant_multiple_p): Take a widest_int pointer
1062         instead of a double_int pointer.
1063         (print_aff): Use wide-int interfaces.
1064         (get_inner_reference_aff): Take a widest_int pointer
1065         instead of a double_int pointer.
1066         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
1067         * tree-affine.h: Include wide-int.h.
1068         (struct aff_comb_elt): Change type of coef to widest_int.
1069         (struct affine_tree_combination): Change type of offset to widest_int.
1070         (double_int_ext_for_comb): Delete.
1071         (wide_int_ext_for_comb): New.
1072         (aff_combination_const): Use widest_int instead of double_int.
1073         (aff_combination_scale): Likewise.
1074         (aff_combination_add_elt): Likewise.
1075         (aff_combination_constant_multiple_p): Likewise.
1076         (get_inner_reference_aff): Likewise.
1077         (aff_comb_cannot_overlap_p): Likewise.
1078         (aff_combination_zero_p): Use wide-int interfaces.
1079         * tree.c: Include tree.h.
1080         (init_ttree): Use make_int_cst.
1081         (tree_code_size): Removed code for INTEGER_CST case.
1082         (tree_size): Add INTEGER_CST case.
1083         (make_node_stat): Update comment.
1084         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
1085         (build_int_cst_type): Use wide-int interfaces.
1086         (double_int_to_tree): Likewise.
1087         (double_int_fits_to_tree_p): Delete.
1088         (force_fit_type_double): Delete.
1089         (force_fit_type): New.
1090         (int_cst_hash_hash): Use wide-int interfaces.
1091         (int_cst_hash_eq): Likewise.
1092         (build_int_cst_wide): Delete.
1093         (wide_int_to_tree): New.
1094         (cache_integer_cst): Use wide-int interfaces.
1095         (build_low_bits_mask): Likewise.
1096         (cst_and_fits_in_hwi): Likewise.
1097         (real_value_from_int_cst): Likewise.
1098         (make_int_cst_stat): New.
1099         (integer_zerop): Use wide_int interfaces.
1100         (integer_onep): Likewise.
1101         (integer_all_onesp): Likewise.
1102         (integer_pow2p): Likewise.
1103         (integer_nonzerop): Likewise.
1104         (tree_log2): Likewise.
1105         (tree_floor_log2): Likewise.
1106         (tree_ctz): Likewise.
1107         (int_size_in_bytes): Likewise.
1108         (mem_ref_offset): Return an offset_int rather than a double_int.
1109         (build_type_attribute_qual_variant): Use wide_int interfaces.
1110         (type_hash_eq): Likewise
1111         (tree_int_cst_equal): Likewise.
1112         (tree_int_cst_lt): Delete.
1113         (tree_int_cst_compare): Likewise.
1114         (tree_fits_shwi_p): Use wide_int interfaces.
1115         (tree_fits_uhwi_p): Likewise.
1116         (tree_int_cst_sign_bit): Likewise.
1117         (tree_int_cst_sgn): Likewise.
1118         (tree_int_cst_min_precision): Take a signop rather than a bool.
1119         (simple_cst_equal): Use wide_int interfaces.
1120         (compare_tree_int): Likewise.
1121         (iterative_hash_expr): Likewise.
1122         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
1123         INT_CST_LT.
1124         (get_type_static_bounds): Use wide_int interfaces.
1125         (tree_int_cst_elt_check_failed): New.
1126         (build_common_tree_nodes): Reordered to set prec before filling in
1127         value.
1128         (int_cst_value): Check cst_and_fits_in_hwi.
1129         (widest_int_cst_value): Use wide_int interfaces.
1130         (upper_bound_in_type): Likewise.
1131         (lower_bound_in_type): Likewise.
1132         (num_ending_zeros): Likewise.
1133         (drop_tree_overflow): Likewise.
1134         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
1135         (gen_conditions_for_pow_cst_base): Likewise.
1136         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
1137         (group_case_labels_stmt): Use wide-int interfaces.
1138         (verify_gimple_assign_binary): Likewise.
1139         (print_loop): Likewise.
1140         * tree-chrec.c (tree_fold_binomial): Likewise.
1141         * tree-core.h (struct tree_base): Add int_length.
1142         (struct tree_int_cst): Change rep of value.
1143         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
1144         (dr_may_alias_p): Likewise.
1145         (max_stmt_executions_tree): Likewise.
1146         * tree.def (INTEGER_CST): Update comment.
1147         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
1148         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
1149         * tree-dump.c: Include wide-int.h and wide-int-print.h.
1150         (dequeue_and_dump): Use wide-int interfaces.
1151         * tree.h: Include wide-int.h.
1152         (NULL_TREE): Moved to earlier loc in file.
1153         (TREE_INT_CST_ELT_CHECK): New.
1154         (tree_int_cst_elt_check_failed): New.
1155         (TYPE_SIGN): New.
1156         (TREE_INT_CST): Delete.
1157         (TREE_INT_CST_LOW): Use wide-int interfaces.
1158         (TREE_INT_CST_HIGH): Delete.
1159         (TREE_INT_CST_NUNITS): New.
1160         (TREE_INT_CST_EXT_NUNITS): Likewise.
1161         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
1162         (TREE_INT_CST_ELT): Likewise.
1163         (INT_CST_LT): Delete.
1164         (tree_int_cst_elt_check): New (two forms).
1165         (type_code_size): Update comment.
1166         (make_int_cst_stat, make_int_cst): New.
1167         (tree_to_double_int): Delete.
1168         (double_int_fits_to_tree_p): Delete.
1169         (force_fit_type_double): Delete.
1170         (build_int_cstu): Replace with out-of-line function.
1171         (build_int_cst_wide): Delete.
1172         (tree_int_cst_lt): Define inline.
1173         (tree_int_cst_le): New.
1174         (tree_int_cst_compare): Define inline.
1175         (tree_int_cst_min_precision): Take a signop rather than a bool.
1176         (wi::int_traits <const_tree>): New.
1177         (wi::int_traits <tree>): New.
1178         (wi::extended_tree): New.
1179         (wi::int_traits <wi::extended_tree>): New.
1180         (wi::to_widest): New.
1181         (wi::to_offset): New.
1182         (wi::fits_to_tree_p): New.
1183         (wi::min_value): New.
1184         (wi::max_value): New.
1185         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
1186         (copy_tree_body_r): Likewise.
1187         * tree-object-size.c (compute_object_offset): Likewise.
1188         (addr_object_size): Likewise.
1189         * tree-predcom.c: Include wide-int-print.h.
1190         (struct dref_d): Change type of offset to widest_int.
1191         (dump_dref): Call wide-int printer.
1192         (aff_combination_dr_offset): Use wide-int interfaces.
1193         (determine_offset): Take a widest_int pointer rather than a
1194         double_int pointer.
1195         (split_data_refs_to_components): Use wide-int interfaces.
1196         (suitable_component_p): Likewise.
1197         (order_drefs): Likewise.
1198         (add_ref_to_chain): Likewise.
1199         (valid_initializer_p): Likewise.
1200         (determine_roots_comp): Likewise.
1201         * tree-pretty-print.c: Include wide-int-print.h.
1202         (dump_generic_node): Use wide-int interfaces.
1203         * tree-sra.c (sra_ipa_modify_expr): Likewise.
1204         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1205         (move_fixed_address_to_symbol): Likewise.
1206         (move_hint_to_base): Likewise.
1207         (move_pointer_to_base): Likewise.
1208         (move_variant_to_index): Likewise.
1209         (most_expensive_mult_to_index): Likewise.
1210         (addr_to_parts): Likewise.
1211         (copy_ref_info): Likewise.
1212         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
1213         (indirect_refs_may_alias_p): Likewise.
1214         (stmt_kills_ref_p_1): Likewise.
1215         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
1216         * tree-ssa-ccp.c: Update comment at top of file.  Include
1217         wide-int-print.h.
1218         (struct prop_value_d): Change type of mask to widest_int.
1219         (extend_mask): New function.
1220         (dump_lattice_value): Use wide-int interfaces.
1221         (get_default_value): Likewise.
1222         (set_constant_value): Likewise.
1223         (set_value_varying): Likewise.
1224         (valid_lattice_transition): Likewise.
1225         (set_lattice_value): Likewise.
1226         (value_to_double_int): Delete.
1227         (value_to_wide_int): New.
1228         (get_value_from_alignment): Use wide-int interfaces.
1229         (get_value_for_expr): Likewise.
1230         (do_dbg_cnt): Likewise.
1231         (ccp_finalize): Likewise.
1232         (ccp_lattice_meet): Likewise.
1233         (bit_value_unop_1): Use widest_ints rather than double_ints.
1234         (bit_value_binop_1): Likewise.
1235         (bit_value_unop): Use wide-int interfaces.
1236         (bit_value_binop): Likewise.
1237         (bit_value_assume_aligned): Likewise.
1238         (evaluate_stmt): Likewise.
1239         (ccp_fold_stmt): Likewise.
1240         (visit_cond_stmt): Likewise.
1241         (ccp_visit_stmt): Likewise.
1242         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1243         (constant_pointer_difference): Likewise.
1244         (associate_pointerplus): Likewise.
1245         (combine_conversions): Likewise.
1246         * tree-ssa-loop.h: Include wide-int.h.
1247         (struct tree_niter_desc): Change type of max to widest_int.
1248         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
1249         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
1250         (remove_redundant_iv_tests): Likewise.
1251         (canonicalize_loop_induction_variables): Likewise.
1252         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
1253         (constant_multiple_of): Take a widest_int pointer instead of
1254         a double_int pointer.
1255         (get_computation_aff): Use wide-int interfaces.
1256         (ptr_difference_cost): Likewise.
1257         (difference_cost): Likewise.
1258         (get_loop_invariant_expr_id): Likewise.
1259         (get_computation_cost_at): Likewise.
1260         (iv_elimination_compare_lt): Likewise.
1261         (may_eliminate_iv): Likewise.
1262         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
1263         instead of double_int.
1264         (max_loop_iterations): Likewise.
1265         (max_stmt_executions): Likewise.
1266         (estimated_stmt_executions): Likewise.
1267         * tree-ssa-loop-niter.c: Include wide-int-print.h.
1268         (split_to_var_and_offset): Use wide-int interfaces.
1269         (determine_value_range): Likewise.
1270         (bound_difference_of_offsetted_base): Likewise.
1271         (bounds_add): Take a widest_int instead of a double_int.
1272         (number_of_iterations_ne_max): Use wide-int interfaces.
1273         (number_of_iterations_ne): Likewise.
1274         (number_of_iterations_lt_to_ne): Likewise.
1275         (assert_loop_rolls_lt): Likewise.
1276         (number_of_iterations_lt): Likewise.
1277         (number_of_iterations_le): Likewise.
1278         (number_of_iterations_cond): Likewise.
1279         (number_of_iterations_exit): Likewise.
1280         (finite_loop_p): Likewise.
1281         (derive_constant_upper_bound_assign): Likewise.
1282         (derive_constant_upper_bound): Return a widest_int.
1283         (derive_constant_upper_bound_ops): Likewise.
1284         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
1285         (record_estimate): Take a widest_int rather than a double_int.
1286         (record_nonwrapping_iv): Use wide-int interfaces.
1287         (double_int_cmp): Delete.
1288         (wide_int_cmp): New.
1289         (bound_index): Take a widest_int rather than a double_int.
1290         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
1291         (maybe_lower_iteration_bound): Likewise.
1292         (estimate_numbers_of_iterations_loop): Likewise.
1293         (estimated_loop_iterations): Take a widest_int pointer than than
1294         a double_int pointer.
1295         (estimated_loop_iterations_int): Use wide-int interfaces.
1296         (max_loop_iterations): Take a widest_int pointer than than
1297         a double_int pointer.
1298         (max_loop_iterations_int): Use wide-int interfaces.
1299         (max_stmt_executions): Take a widest_int pointer than than
1300         a double_int pointer.
1301         (estimated_stmt_executions): Likewise.
1302         (n_of_executions_at_most): Use wide-int interfaces.
1303         (scev_probably_wraps_p): Likewise.
1304         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
1305         to real_to_integer.
1306         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
1307         interfaces.
1308         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
1309         double_ints.  Adjust for trailing_wide_ints <3> representation.
1310         (set_nonzero_bits): Likewise.
1311         (get_range_info): Return wide_ints rather than double_ints.
1312         Adjust for trailing_wide_ints <3> representation.
1313         (get_nonzero_bits): Likewise.
1314         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
1315         representation.
1316         * tree-ssanames.h (struct range_info_def): Replace min, max and
1317         nonzero_bits with a trailing_wide_ints <3>.
1318         (set_range_info): Use wide_int_refs rather than double_ints.
1319         (set_nonzero_bits): Likewise.
1320         (get_range_info): Return wide_ints rather than double_ints.
1321         (get_nonzero_bits): Likewise.
1322         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
1323         * tree-ssa-pre.c (phi_translate_1): Likewise.
1324         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
1325         (acceptable_pow_call): Likewise.
1326         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
1327         interfaces.
1328         (vn_reference_fold_indirect): Likewise.
1329         (vn_reference_maybe_forwprop_address): Likewise.
1330         (valueize_refs_1): Likewise.
1331         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
1332         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
1333         tree_int_cst_lt and tree_int_cst_le.
1334         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
1335         interfaces.
1336         (streamer_alloc_tree): Likewise.
1337         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
1338         (streamer_write_tree_header): Likewise.
1339         (streamer_write_integer_cst): Likewise.
1340         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
1341         (build_constructors): Likewise.
1342         (array_value_type): Likewise.
1343         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
1344         (vect_check_gather): Likewise.
1345         * tree-vect-generic.c (build_replicated_const): Likewise.
1346         (expand_vector_divmod): Likewise.
1347         * tree-vect-loop.c (vect_transform_loop): Likewise.
1348         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
1349         (vect_do_peeling_for_alignment): Likewise.
1350         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
1351         * tree-vrp.c: Include wide-int.h.
1352         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
1353         (extract_range_from_assert): Use wide-int interfaces.
1354         (vrp_int_const_binop): Likewise.
1355         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
1356         double_int pointers.
1357         (ranges_from_anti_range): Use wide-int interfaces.
1358         (quad_int_cmp): Delete.
1359         (quad_int_pair_sort): Likewise.
1360         (extract_range_from_binary_expr_1): Use wide-int interfaces.
1361         (extract_range_from_unary_expr_1): Likewise.
1362         (adjust_range_with_scev): Likewise.
1363         (masked_increment): Take and return wide_ints rather than double_ints.
1364         (register_edge_assert_for_2): Use wide-int interfaces.
1365         (check_array_ref): Likewise.
1366         (search_for_addr_array): Likewise.
1367         (maybe_set_nonzero_bits): Likewise.
1368         (union_ranges): Pass an integer of the correct type instead of
1369         using integer_one_node.
1370         (intersect_ranges): Likewise.
1371         (simplify_truth_ops_using_ranges): Likewise.
1372         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
1373         (range_fits_type_p): Likewise.
1374         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
1375         a bool.
1376         (simplify_conversion_using_ranges): Use wide-int interfaces.
1377         (simplify_float_conversion_using_ranges): Likewise.
1378         (vrp_finalize): Likewise.
1379         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
1380         (gimple_stringops_transform): Likewise.
1381         * varasm.c (decode_addr_const): Likewise.
1382         (const_hash_1): Likewise.
1383         (const_rtx_hash_1): Likewise
1384         (output_constant): Likewise.
1385         (array_size_for_constructor): Likewise.
1386         (output_constructor_regular_field): Likewise.
1387         (output_constructor_bitfield): Likewise.
1388         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
1389         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
1390         GENERATOR_FILEs.
1391         * gencheck.c: Define BITS_PER_UNIT.
1392         * wide-int.cc: New.
1393         * wide-int.h: New.
1394         * wide-int-print.cc: New.
1395         * wide-int-print.h: New.
1397 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1399         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
1401 2014-05-06  Richard Biener  <rguenther@suse.de>
1403         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
1404         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
1405         (TODO_verify_all): Adjust.
1406         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
1407         TODO_verify_stmts and TODO_verify_rtl_sharing.
1408         * bb-reorder.c: Likewise.
1409         * cfgexpand.c: Likewise.
1410         * cprop.c: Likewise.
1411         * cse.c: Likewise.
1412         * function.c: Likewise.
1413         * fwprop.c: Likewise.
1414         * gcse.c: Likewise.
1415         * gimple-ssa-isolate-paths.c: Likewise.
1416         * gimple-ssa-strength-reduction.c: Likewise.
1417         * ipa-split.c: Likewise.
1418         * loop-init.c: Likewise.
1419         * loop-unroll.c: Likewise.
1420         * lower-subreg.c: Likewise.
1421         * modulo-sched.c: Likewise.
1422         * postreload-gcse.c: Likewise.
1423         * predict.c: Likewise.
1424         * recog.c: Likewise.
1425         * sched-rgn.c: Likewise.
1426         * store-motion.c: Likewise.
1427         * tracer.c: Likewise.
1428         * trans-mem.c: Likewise.
1429         * tree-call-cdce.c: Likewise.
1430         * tree-cfg.c: Likewise.
1431         * tree-cfgcleanup.c: Likewise.
1432         * tree-complex.c: Likewise.
1433         * tree-eh.c: Likewise.
1434         * tree-emutls.c: Likewise.
1435         * tree-if-conv.c: Likewise.
1436         * tree-into-ssa.c: Likewise.
1437         * tree-loop-distribution.c: Likewise.
1438         * tree-object-size.c: Likewise.
1439         * tree-parloops.c: Likewise.
1440         * tree-pass.h: Likewise.
1441         * tree-sra.c: Likewise.
1442         * tree-ssa-ccp.c: Likewise.
1443         * tree-ssa-copy.c: Likewise.
1444         * tree-ssa-copyrename.c: Likewise.
1445         * tree-ssa-dce.c: Likewise.
1446         * tree-ssa-dom.c: Likewise.
1447         * tree-ssa-dse.c: Likewise.
1448         * tree-ssa-forwprop.c: Likewise.
1449         * tree-ssa-ifcombine.c: Likewise.
1450         * tree-ssa-loop-ch.c: Likewise.
1451         * tree-ssa-loop-ivcanon.c: Likewise.
1452         * tree-ssa-loop.c: Likewise.
1453         * tree-ssa-math-opts.c: Likewise.
1454         * tree-ssa-phiopt.c: Likewise.
1455         * tree-ssa-phiprop.c: Likewise.
1456         * tree-ssa-pre.c: Likewise.
1457         * tree-ssa-reassoc.c: Likewise.
1458         * tree-ssa-sink.c: Likewise.
1459         * tree-ssa-strlen.c: Likewise.
1460         * tree-ssa-tail-merge.c: Likewise.
1461         * tree-ssa-uncprop.c: Likewise.
1462         * tree-switch-conversion.c: Likewise.
1463         * tree-tailcall.c: Likewise.
1464         * tree-vect-generic.c: Likewise.
1465         * tree-vectorizer.c: Likewise.
1466         * tree-vrp.c: Likewise.
1467         * tsan.c: Likewise.
1468         * var-tracking.c: Likewise.
1469         * bt-load.c: Likewise.
1470         * cfgcleanup.c: Likewise.
1471         * combine-stack-adj.c: Likewise.
1472         * combine.c: Likewise.
1473         * compare-elim.c: Likewise.
1474         * config/epiphany/resolve-sw-modes.c: Likewise.
1475         * config/i386/i386.c: Likewise.
1476         * config/mips/mips.c: Likewise.
1477         * config/s390/s390.c: Likewise.
1478         * config/sh/sh_treg_combine.cc: Likewise.
1479         * config/sparc/sparc.c: Likewise.
1480         * dce.c: Likewise.
1481         * dse.c: Likewise.
1482         * final.c: Likewise.
1483         * ifcvt.c: Likewise.
1484         * mode-switching.c: Likewise.
1485         * passes.c: Likewise.
1486         * postreload.c: Likewise.
1487         * ree.c: Likewise.
1488         * reg-stack.c: Likewise.
1489         * regcprop.c: Likewise.
1490         * regrename.c: Likewise.
1491         * web.c: Likewise.
1493 2014-05-06  Richard Biener  <rguenther@suse.de>
1495         PR middle-end/61070
1496         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
1497         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
1499 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
1501         PR ipa/60965
1502         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
1504 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
1505             Tom de Vries  <tom@codesourcery.com>
1507         * target.def (call_fusage_contains_non_callee_clobbers): New
1508         DEFHOOKPOD.
1509         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
1510         Hooks to @menu.
1511         (@node Miscellaneous Register Hooks): New node.
1512         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
1513         * doc/tm.texi: Regenerate.
1515 2014-05-05  Marek Polacek  <polacek@redhat.com>
1517         PR driver/61065
1518         * opts.c (common_handle_option): Call error_at instead of warning_at.
1520 2014-05-05  Richard Biener  <rguenther@suse.de>
1522         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
1523         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
1524         under the TODO_verify_il umbrella.
1526 2014-05-05  Richard Biener  <rguenther@suse.de>
1528         * passes.c (execute_function_todo): Move TODO_verify_flow under
1529         the TODO_verify_ul umbrella.
1531 2014-05-05  Richard Biener  <rguenther@suse.de>
1533         PR middle-end/61010
1534         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
1535         X & CST away from a CST that is the mask of a mode.
1537 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1539         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
1540         int argument to enum machine_mode.
1541         (picochip_class_max_nregs): Ditto.
1542         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
1543         (picochip_class_max_nregs): Ditto.
1545 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1547         * target.def: Add new target hook.
1548         * doc/tm.texi: Regenerate.
1549         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
1550         * targhooks.c (default_keep_leaf_when_profiled): New function.
1552         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
1553         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
1555 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
1557         PR tree-optimization/60363
1558         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
1559         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
1560         (update_destination_phis): New parameter.
1561         (create_edge_and_update_destination_phis): Ditto.
1562         (ssa_fix_duplicate_block_edges): Pass new arguments.
1563         (thread_single_edge): Ditto.
1565 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
1567         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
1568         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
1569         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
1570         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
1571         Use RS6000_BTM_HARD_FLOAT.
1572         (BU_MISC_2): Likewise.
1573         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
1574         RS6000_BTM_HARD_FLOAT.
1575         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
1576         is explicitly used.
1577         (rs6000_invalid_builtin): Add hard floating builtin support.
1578         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
1579         hard float builtins.
1580         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
1582 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1584         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
1585         Add missing function* argument.
1587 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
1589         * lra-constraints.c (valid_address_p): Move earlier in file.
1590         Add a constraint argument to the address_info version.
1591         (satisfies_memory_constraint_p): New function.
1592         (satisfies_address_constraint_p): Likewise.
1593         (process_alt_operands, curr_insn_transform): Use them.
1594         (process_address): Pass the constraint to valid_address_p when
1595         checking address operands.
1597 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
1599         * config/mips/mips.c (mips_isa_rev): New variable.
1600         (mips_set_architecture): Set it.
1601         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
1602         from mips_isa_rev.
1603         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
1604         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
1605         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
1606         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
1607         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
1608         conditions in terms of mips_isa_rev.
1609         (mips_isa_rev): Declare.
1611 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1613         * config/sh/sh-mem.cc: Use tabs instead of spaces.
1614         (prob_unlikely, prob_likely): Make variables const.
1616 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
1618         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
1620 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1622         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
1624 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1626         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
1627         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
1628         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
1629         functions.
1630         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
1631         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
1632         sh_pass_in_reg_p.
1633         Replace usage of ROUND_REG with sh_round_reg.
1634         Use CEIL instead of ROUND_ADVANCE.
1636 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1638         PR target/61026
1639         * config/sh/sh.c: Include stdlib headers before everything else.
1641 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
1643         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
1644         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
1645         (gimplify_adjust_omp_clauses): Simd region is never
1646         directly nested in combined parallel.  Instead, for linear
1647         with copyin/copyout, if in combined for simd loop, make decl
1648         firstprivate/lastprivate on OMP_FOR.
1649         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
1650         expand_omp_for_static_chunk): When setting endvar, also set
1651         fd->loop.v to the same value.
1653 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
1655         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
1657 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
1659         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
1660         expression.
1662 2014-05-02  Marek Polacek  <polacek@redhat.com>
1664         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
1666 2014-05-02  Kito Cheng  <kito@0xlab.org>
1668         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
1669         to a C expression marco.
1670         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
1671         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
1672         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
1673         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
1674         HONOR_REG_ALLOC_ORDER.
1675         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
1677 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1679         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
1681 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1683         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
1685 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
1687         * tree-if-conv.c (is_cond_scalar_reduction): New function.
1688         (convert_scalar_cond_reduction): Likewise.
1689         (predicate_scalar_phi): Add recognition and transformation
1690         of simple conditioanl reduction to be vectorizable.
1692 2014-05-01  Marek Polacek  <polacek@redhat.com>
1694         PR c/43245
1695         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
1697 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
1699         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
1700         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
1701         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
1702         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
1703         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
1704         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
1705         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
1706         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
1708 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
1710         * config/arc/arc.opt (mlra): Move comment above option name
1711         to avoid mis-parsing as language options.
1713 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1715         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
1716         * config/sol2.h: ... here.
1717         * config/sol2-10.h: Remove.
1719         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
1720         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
1721         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
1722         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
1723         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
1724         * config/sol2.h: ... here.
1725         (SECTION_NAME_FORMAT): Don't redefine.
1726         (STARTFILE_ARCH32_SPEC): Rename to ...
1727         (STARTFILE_ARCH_SPEC): ... this.
1728         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
1729         * config/sparc/sol2.h: ... here.
1730         (SECTION_NAME_FORMAT): Don't undef.
1731         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
1732         (SUBTARGET_EXTRA_SPECS): Remove.
1733         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
1735         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
1736         (MD_STARTFILE_PREFIX): Remove.
1737         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
1738         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
1739         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
1740         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
1741         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
1742         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
1743         * config/i386/sol2.h: ... here.
1744         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
1745         * config/i386/sol2-bi.h: Remove.
1746         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
1747         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
1749         * config/i386/t-sol2-64: Rename to ...
1750         * config/i386/t-sol2: ... this.
1751         * config/sparc/t-sol2-64: Rename to ...
1752         * config/sparc/t-sol2: ... this.
1754         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
1755         sol2_tm_file_head, sol2_tm_file_tail.
1756         Include ${cpu_type}/sol2.h before sol2.h.
1757         Remove sol2-10.h.
1758         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
1759         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
1760         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
1761         Reflect i386/t-sol2-64 renaming.
1762         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
1763         Reflect sparc/t-sol2-64 renaming.
1765 2014-04-30  Richard Biener  <rguenther@suse.de>
1767         * passes.c (execute_function_todo): Move TODO_verify_stmts
1768         and TODO_verify_ssa under the TODO_verify_il umbrella.
1769         * tree-ssa.h (verify_ssa): Adjust prototype.
1770         * tree-ssa.c (verify_ssa): Add parameter to tell whether
1771         we should verify SSA operands.
1772         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
1773         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
1774         whether we should verify whether not throwing stmts have EH info.
1775         * graphite-scop-detection.c (create_sese_edges): Adjust.
1776         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
1777         * tree-eh.c (lower_try_finally_switch): Do not add the
1778         default case label twice.
1780 2014-04-30  Marek Polacek  <polacek@redhat.com>
1782         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
1783         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
1784         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
1785         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
1787 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
1789         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
1790         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
1791         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
1792         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
1793         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
1794         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
1795         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
1796         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
1798 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
1800         * tree-cfg.c (dump_function_to_file): Dump the return type of
1801         functions, in a line to itself before the function body, mimicking
1802         the layout of a C function.
1804 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
1806         PR tree-optimization/60971
1807         * tree-tailcall.c (process_assignment): Reject conversions which
1808         reduce precision.
1810 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
1812         * calls.c (initialize_argument_information): Always treat
1813         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
1814         (expand_call): Likewise.
1815         (emit_library_call_calue_1): Likewise.
1816         * expr.c (PUSH_ARGS_REVERSED): Do not define.
1817         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
1818         code accordingly.
1820 2014-04-29  Nick Clifton  <nickc@redhat.com>
1822         * config/msp430/msp430.md (umulsidi): Fix typo.
1823         (mulhisi3): Enable even inside interrupt handlers.
1824         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
1825         bigger return address pushed in large mode.
1827 2014-04-29  Nick Clifton  <nickc@redhat.com>
1829         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
1830         (arc_init_reg_tables): Use a machine_mode enum to iterate over
1831         available modes.
1832         * config/m32r/m32r.c (init_reg_tables): Likewise.
1833         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
1834         enum to hold the modes.
1836 2014-04-29  Richard Biener  <rguenther@suse.de>
1838         * dominance.c (free_dominance_info): Add overload with
1839         function parameter.
1840         (dom_info_state): Likewise.
1841         (dom_info_available_p): Likewise.
1842         * basic-block.h (free_dominance_info, dom_info_state,
1843         dom_info_available_p): Declare overloads.
1844         * passes.c (execute_function_todo): Verify that verifiers
1845         don't change dominator info state.  Drop dominator info
1846         for IPA pass invocations.
1847         * cgraph.c (release_function_body): Restore asserts that
1848         dominator information is released.
1850 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
1852         * doc/invoke.texi: Fix typo.
1853         * tree-vrp.c: Fix typos.
1854         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
1856 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1858         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
1860 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
1862         * config/aarch64/aarch64-builtins.c
1863         (aarch64_types_storestruct_lane_qualifiers): New.
1864         (TYPES_STORESTRUCT_LANE): Likewise.
1865         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
1866         (st3_lane): Likewise.
1867         (st4_lane): Likewise.
1868         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
1869         (vec_store_lanesci_lane<mode>): Likewise.
1870         (vec_store_lanesxi_lane<mode>): Likewise.
1871         (aarch64_st2_lane<VQ:mode>): Likewise.
1872         (aarch64_st3_lane<VQ:mode>): Likewise.
1873         (aarch64_st4_lane<VQ:mode>): Likewise.
1874         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
1875         * config/aarch64/arm_neon.h
1876         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
1877         use new macro arguments.
1878         (__ST3_LANE_FUNC): Likewise.
1879         (__ST4_LANE_FUNC): Likewise.
1880         * config/aarch64/iterators.md (V_TWO_ELEM): New.
1881         (V_THREE_ELEM): Likewise.
1882         (V_FOUR_ELEM): Likewise.
1884 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
1886         * doc/gimple.texi: Replace the description of the now-defunct
1887         union gimple_statement_d with a diagram showing the
1888         gimple_statement_base class hierarchy and its relationships to
1889         the GSS_ and GIMPLE_ enums.
1891 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
1893         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
1894         * config/aarch64/aarch64.c
1895         (aarch64_cannot_change_mode_class): Weaken conditions.
1896         (aarch64_modes_tieable_p): New.
1897         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
1899 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
1901         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1902         (loadsync_<mode>): Change mode.
1903         (load_quadpti, store_quadpti): New.
1904         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1905         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1907 2014-04-28  Martin Jambor  <mjambor@suse.cz>
1909         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
1910         same alias type as the original statement.
1911         (subreplacement_assignment_data): New type.
1912         (handle_unscalarized_data_in_subtree): New type of parameter,
1913         generate new memory accesses with same alias type as the original
1914         statement.
1915         (load_assign_lhs_subreplacements): Likewise.
1916         (sra_modify_constructor_assign): Generate new memory accesses with
1917         same alias type as the original statement.
1919 2014-04-28  Richard Biener  <rguenther@suse.de>
1921         * tree-pass.h (TODO_verify_il): Define.
1922         (TODO_verify_all): Complete properly.
1923         * passes.c (execute_function_todo): Move existing loop-closed
1924         SSA verification under TODO_verify_il.
1925         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
1926         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
1927         Fix tree sharing issue.
1929 2014-04-28  Richard Biener  <rguenther@suse.de>
1931         PR middle-end/60092
1932         * builtins.def (DEF_C11_BUILTIN): Add.
1933         (BUILT_IN_ALIGNED_ALLOC): Likewise.
1934         * coretypes.h (enum function_class): Add function_c11_misc.
1935         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1936         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
1937         (call_may_clobber_ref_p_1): Likewise.
1938         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1939         (mark_all_reaching_defs_necessary_1): Likewise.
1940         (propagate_necessity): Likewise.
1941         (eliminate_unnecessary_stmts): Likewise.
1942         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
1944 2014-04-28  Richard Biener  <rguenther@suse.de>
1946         * tree-vrp.c (vrp_var_may_overflow): Remove.
1947         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
1948         with overflow immediately bump to one before that value and
1949         let iteration figure out overflow status.
1951 2014-04-28  Richard Biener  <rguenther@suse.de>
1953         * configure.ac: Do valgrind header checks unconditionally.
1954         Add --enable-valgrind-annotations.
1955         * system.h: Guard valgrind header inclusion with
1956         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
1957         * alloc-pool.c (pool_alloc, pool_free): Use
1958         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
1959         to guard possibly dead code.
1960         * config.in: Regenerated.
1961         * configure: Likewise.
1963 2014-04-28  Jeff Law  <law@redhat.com>
1965         PR tree-optimization/60902
1966         * tree-ssa-threadedge.c
1967         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
1968         over real defs when invalidating outputs from statements that do not
1969         produce useful outputs for threading.
1971 2014-04-28  Richard Biener  <rguenther@suse.de>
1973         PR tree-optimization/60979
1974         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
1975         SCOPs that end in a block with a successor with abnormal
1976         predecessors.
1978 2014-04-28  Richard Biener  <rguenther@suse.de>
1980         * tree-pass.h (execute_pass_list): Adjust prototype.
1981         * passes.c (pass_manager::execute_early_local_passes): Adjust.
1982         (do_per_function): Change callback signature, push all actual
1983         work to the callbals.
1984         (do_per_function_toporder): Likewise.
1985         (execute_function_dump): Adjust.
1986         (execute_function_todo): Likewise.
1987         (clear_last_verified): Likewise.
1988         (verify_curr_properties): Likewise.
1989         (update_properties_after_pass): Likewise.
1990         (execute_pass_list_1): Split out from ...
1991         (execute_pass_list): ... here.  Adjust.
1992         (execute_ipa_pass_list): Likewise.
1993         * cgraphunit.c (cgraph_add_new_function): Adjust.
1994         (analyze_function): Likewise.
1995         (expand_function): Likewise.
1996         * cgraph.c (release_function_body): Free dominance info
1997         here instead of asserting it was magically freed elsewhere.
1999 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2001         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
2002         * configure: Regenerate.
2003         * config/sparc/sparc.opt (muser-mode): New option.
2004         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
2005         for LEON3.
2006         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
2007         * doc/invoke.texi (SPARC options): Document -muser-mode.
2009 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2011         * cselib.c (find_slot_memmode): Delete.
2012         (cselib_hasher): Change compare_type to a struct.
2013         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
2014         constants.
2015         (preserve_constants_and_equivs): Adjust for new compare_type.
2016         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
2017         (wrap_constant): Delete.
2018         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
2020 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2022         * doc/install.texi (Building with profile feedback): Remove
2023         outdated sentence.
2025 2014-04-26  Tom de Vries  <tom@codesourcery.com>
2027         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
2028         array accesses.
2030 2014-04-25  Cary Coutant  <ccoutant@google.com>
2032         PR debug/60929
2033         * dwarf2out.c (should_move_die_to_comdat): A type definition
2034         can contain a subprogram definition, but don't move it to a
2035         comdat unit.
2036         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
2037         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
2038         from original DIE.
2039         (clone_tree_hash): Rename to...
2040         (clone_tree_partial): ...this; change callers.  Copy
2041         DW_TAG_subprogram DIEs as declarations.
2042         (copy_decls_walk): Don't copy children of a declaration into a
2043         type unit.
2045 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2047         PR target/60969
2048         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
2049         alternative 12.
2051 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
2053         * config/arm/predicates.md (call_insn_operand): Add long_call check.
2054         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
2055         reg for long_call.
2056         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
2057         restriction.
2059 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2061         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
2063 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2065         PR tree-optimization/60930
2066         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
2067         creating a multiply candidate by folding two constant
2068         multiplicands when the result overflows.
2070 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
2072         PR tree-optimization/60960
2073         * tree-vect-generic.c (expand_vector_operation): Only call
2074         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
2076 2014-04-25  Tom de Vries  <tom@codesourcery.com>
2078         * expr.c (clobber_reg_mode): New function.
2079         * expr.h (clobber_reg): New function.
2081 2014-04-25  Tom de Vries  <tom@codesourcery.com>
2083         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
2084         clobbers.
2086 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
2087             Tom de Vries  <tom@codesourcery.com>
2089         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
2090         handle.
2091         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
2092         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
2093         new argument to find_all_hard_reg_sets call.
2095 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2097         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
2098         Use HOST_WIDE_INT_C for mask literal.
2099         (aarch_rev16_shleft_mask_imm_p): Likewise.
2101 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2103         PR target/60941
2104         * config/sparc/sparc.md (ashlsi3_extend): Delete.
2106 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
2108         PR preprocessor/56540
2109         * config/i386/i386-c.c (ix86_target_macros): Define
2110         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
2112 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2114         * configure.ac (tga_func): Remove.
2115         (LIB_TLS_SPEC): Remove.
2116         * configure: Regenerate.
2117         * config.in: Regenerate.
2118         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
2120 2014-04-25  Richard Biener  <rguenther@suse.de>
2122         PR ipa/60912
2123         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
2124         call stmt use/clobber sets during stmt walk instead of
2125         walking the possibly incomplete set of caller edges.
2127 2014-04-25  Richard Biener  <rguenther@suse.de>
2129         PR ipa/60911
2130         * passes.c (apply_ipa_transforms): Inline into only caller ...
2131         (execute_one_pass): ... here.  Properly bring in function
2132         bodies for nodes we want to apply IPA transforms to.
2134 2014-04-24  Cong Hou  <congh@google.com>
2136         PR tree-optimization/60896
2137         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
2138         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
2139         (vect_mark_pattern_stmts): Set the def type of all statements in
2140         PATTERN_DEF_SEQ as vect_internal_def.
2142 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2144         * doc/extend.texi (PowerPC Built-in Functions): Document new
2145         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
2146         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
2148         * config/rs6000/predicates.md (const_0_to_3_operand): New
2149         predicate to match 0..3 integer constants.
2151         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
2152         to support adding miscellaneous builtin functions.
2153         (BU_DFP_MISC_2): Likewise.
2154         (BU_P7_MISC_1): Likewise.
2155         (BU_P7_MISC_2): Likewise.
2156         (BU_P8V_MISC_3): Likewise.
2157         (BU_MISC_1): Likewise.
2158         (BU_MISC_2): Likewise.
2159         (DIVWE): Add extended divide builtin functions.
2160         (DIVWEO): Likewise.
2161         (DIVWEU): Likewise.
2162         (DIVWEUO): Likewise.
2163         (DIVDE): Likewise.
2164         (DIVDEO): Likewise.
2165         (DIVDEU): Likewise.
2166         (DIVDEUO): Likewise.
2167         (DXEX): Add decimal floating-point builtin functions.
2168         (DXEXQ): Likewise.
2169         (DDEDPD): Likewise.
2170         (DDEDPDQ): Likewise.
2171         (DENBCD): Likewise.
2172         (DENBCDQ): Likewise.
2173         (DIEX): Likewise.
2174         (DIEXQ): Likewise.
2175         (DSCLI): Likewise.
2176         (DSCLIQ): Likewise.
2177         (DSCRI): Likewise.
2178         (DSCRIQ): Likewise.
2179         (CDTBCD): Add new BCD builtin functions.
2180         (CBCDTD): Likewise.
2181         (ADDG6S): Likewise.
2182         (BCDADD): Likewise.
2183         (BCDADD_LT): Likewise.
2184         (BCDADD_EQ): Likewise.
2185         (BCDADD_GT): Likewise.
2186         (BCDADD_OV): Likewise.
2187         (BCDSUB): Likewise.
2188         (BCDSUB_LT): Likewise.
2189         (BCDSUB_EQ): Likewise.
2190         (BCDSUB_GT): Likewise.
2191         (BCDSUB_OV): Likewise.
2192         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
2193         (UNPACK_TD): Likewise.
2194         (PACK_TF): Likewise.
2195         (UNPACK_TF): Likewise.
2196         (UNPACK_TF_0): Likewise.
2197         (UNPACK_TF_1): Likewise.
2198         (PACK_V1TI): Likewise.
2199         (UNPACK_V1TI): Likewise.
2201         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2202         support for decimal floating point builtin functions.
2203         (rs6000_expand_ternop_builtin): Add checks for the new builtin
2204         functions that take constant arguments.
2205         (rs6000_invalid_builtin): Add decimal floating point builtin support.
2206         (rs6000_init_builtins): Setup long double, _Decimal64, and
2207         _Decimal128 types for new builtin functions.
2208         (builtin_function_type): Set the unsigned flags appropriately for
2209         the new builtin functions.
2210         (rs6000_opt_masks): Add support for decimal floating point builtin
2211         functions.
2213         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
2214         floating point builtin functions.
2215         (RS6000_BTM_COMMON): Likewise.
2216         (RS6000_BTI_long_double): Likewise.
2217         (RS6000_BTI_dfloat64): Likewise.
2218         (RS6000_BTI_dfloat128): Likewise.
2219         (long_double_type_internal_node): Likewise.
2220         (dfloat64_type_internal_node): Likewise.
2221         (dfloat128_type_internal_node): Likewise.
2223         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
2224         2.07 bcd arithmetic instructions.
2225         (UNSPEC_BCDSUB): Likewise.
2226         (UNSPEC_BCD_OVERFLOW): Likewise.
2227         (UNSPEC_BCD_ADD_SUB): Likewise.
2228         (bcd_add_sub): Likewise.
2229         (BCD_TEST): Likewise.
2230         (bcd<bcd_add_sub>): Likewise.
2231         (bcd<bcd_add_sub>_test): Likewise.
2232         (bcd<bcd_add_sub>_test2): Likewise.
2233         (bcd<bcd_add_sub>_<code>): Likewise.
2234         (peephole2 for combined bcd ops): Likewise.
2236         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
2237         decimal floating point builtin functions.
2238         (UNSPEC_DENBCD): Likewise.
2239         (UNSPEC_DXEX): Likewise.
2240         (UNSPEC_DIEX): Likewise.
2241         (UNSPEC_DSCLI): Likewise.
2242         (UNSPEC_DSCRI): Likewise.
2243         (D64_D128): Likewise.
2244         (dfp_suffix): Likewise.
2245         (dfp_ddedpd_<mode>): Likewise.
2246         (dfp_denbcd_<mode>): Likewise.
2247         (dfp_dxex_<mode>): Likewise.
2248         (dfp_diex_<mode>): Likewise.
2249         (dfp_dscli_<mode>): Likewise.
2250         (dfp_dscri_<mode>): Likewise.
2252         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
2253         builtin functions.
2254         (UNSPEC_CDTBCD): Likewise.
2255         (UNSPEC_CBCDTD): Likewise.
2256         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
2257         (UNSPEC_DIVEO): Likewise.
2258         (UNSPEC_DIVEU): Likewise.
2259         (UNSPEC_DIVEUO): Likewise.
2260         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
2261         pack/unpack 128-bit types.
2262         (UNSPEC_PACK_128BIT): Likewise.
2263         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
2264         (udiv<mode>3): Use idiv_ldiv mode attribute.
2265         (div<mode>3): Likewise.
2266         (addg6s): Add new BCD builtin functions.
2267         (cdtbcd): Likewise.
2268         (cbcdtd): Likewise.
2269         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
2270         (div_extend): Likewise.
2271         (div<div_extend>_<mode>"): Likewise.
2272         (FP128_64): Add support for new builtin functions to pack/unpack
2273         128-bit types.
2274         (unpack<mode>): Likewise.
2275         (unpacktf_0): Likewise.
2276         (unpacktf_1): Likewise.
2277         (unpack<mode>_dm): Likewise.
2278         (unpack<mode>_nodm): Likewise.
2279         (pack<mode>): Likewise.
2280         (unpackv1ti): Likewise.
2281         (packv1ti): Likewise.
2283 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
2285         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
2286         is disabled.
2288 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2290         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
2291         * gimplify.c (omp_is_private): Change last argument's type to int.
2292         Only diagnose lastprivate if the simd argument is 1, only diagnose
2293         linear if the simd argument is 2.
2294         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
2295         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
2296         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
2297         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
2298         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
2299         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
2300         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
2301         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
2302         * tree-nested.c (convert_nonlocal_omp_clauses,
2303         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
2305 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
2307         PR target/60822
2308         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
2309         operand 1.
2311 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
2313         * flag-types.h (enum ivar_visibility): Add.
2315 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
2317         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
2318         function * argument.
2320 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
2322         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
2324 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
2325             Tom de Vries  <tom@codesourcery.com>
2327         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
2328         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
2329         reg-note.
2330         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
2331         * emit-rtl.c (try_split): Same.
2333 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
2334             Tom de Vries  <tom@codesourcery.com>
2336         * common.opt (fuse-caller-save): New option.
2338 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
2340         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
2341         elements for big-endian.
2343 2014-04-24  Richard Biener  <rguenther@suse.de>
2345         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
2346         during TER and instead use the sepops interface for expanding
2347         non-GIMPLE_SINGLE_RHS.
2349 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2351         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
2352         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
2354 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2356         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
2357         assembler 64-bit option.
2358         * configure: Regenerate.
2360 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2362         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
2363         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
2364         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
2365         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
2366         (TARGET_CRYPTO): Take TARGET_SIMD into account.
2368 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2370         * config/aarch64/aarch64-builtins.c
2371         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
2372         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
2373         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
2374         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
2375         builtins.
2376         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
2377         (Vrevsuff): New mode attribute.
2379 2014-04-24  Terry Guo  <terry.guo@arm.com>
2381         * config/arm/arm.h (machine_function): Define variable
2382         after_arm_reorg here.
2383         * config/arm/arm.c (after_arm_reorg): Remove the definition.
2384         (arm_split_constant): Update the way to access variable
2385         after_arm_reorg.
2386         (arm_reorg): Ditto.
2387         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
2389 2014-04-23  Tom de Vries  <tom@codesourcery.com>
2391         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
2393 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
2395         * is-a.h: Update comments to reflect the following changes to the
2396         "pointerness" of the API, making the template parameter match the
2397         return type, allowing use of is-a.h with typedefs of pointers.
2398         (is_a_helper::cast): Return a T rather then a pointer to a T, so
2399         that the return type matches the parameter to the is_a_helper.
2400         (as_a): Likewise.
2401         (dyn_cast): Likewise.
2403         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
2404         pointer from the is-a.h API.
2406         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
2407         (is_a_helper <cgraph_node *>::test): ...this, matching change to
2408         is-a.h API.
2409         (is_a_helper <varpool_node>::test): Likewise, convert to...
2410         (is_a_helper <varpool_node *>::test): ...this.
2412         (varpool_first_variable): Update for removal of implicit pointer
2413         from the is-a.h API.
2414         (varpool_next_variable): Likewise.
2415         (varpool_first_static_initializer): Likewise.
2416         (varpool_next_static_initializer): Likewise.
2417         (varpool_first_defined_variable): Likewise.
2418         (varpool_next_defined_variable): Likewise.
2419         (cgraph_first_defined_function): Likewise.
2420         (cgraph_next_defined_function): Likewise.
2421         (cgraph_first_function): Likewise.
2422         (cgraph_next_function): Likewise.
2423         (cgraph_first_function_with_gimple_body): Likewise.
2424         (cgraph_next_function_with_gimple_body): Likewise.
2425         (cgraph_alias_target): Likewise.
2426         (varpool_alias_target): Likewise.
2427         (cgraph_function_or_thunk_node): Likewise.
2428         (varpool_variable_node): Likewise.
2429         (symtab_real_symbol_p): Likewise.
2430         * cgraphunit.c (referred_to_p): Likewise.
2431         (analyze_functions): Likewise.
2432         (handle_alias_pairs): Likewise.
2433         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
2434         * gimple-ssa.h (gimple_vuse_op): Likewise.
2435         (gimple_vdef_op): Likewise.
2436         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
2437         * gimple.c (gimple_build_asm_1): Likewise.
2438         (gimple_build_try): Likewise.
2439         (gimple_build_resx): Likewise.
2440         (gimple_build_eh_dispatch): Likewise.
2441         (gimple_build_omp_for): Likewise.
2442         (gimple_omp_for_set_clauses): Likewise.
2444         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
2445         (is_a_helper <gimple_statement_asm *>::test): ...this.
2446         (is_a_helper <gimple_statement_bind>::test): Convert to...
2447         (is_a_helper <gimple_statement_bind *>::test): ...this.
2448         (is_a_helper <gimple_statement_call>::test): Convert to...
2449         (is_a_helper <gimple_statement_call *>::test): ...this.
2450         (is_a_helper <gimple_statement_catch>::test): Convert to...
2451         (is_a_helper <gimple_statement_catch *>::test): ...this.
2452         (is_a_helper <gimple_statement_resx>::test): Convert to...
2453         (is_a_helper <gimple_statement_resx *>::test): ...this.
2454         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
2455         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
2456         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
2457         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
2458         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
2459         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
2460         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
2461         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
2462         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
2463         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
2464         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
2465         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
2466         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
2467         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
2468         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
2469         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
2470         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
2471         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
2472         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
2473         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
2474         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
2475         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
2476         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
2477         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
2478         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
2479         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
2480         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
2481         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
2482         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
2483         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
2484         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
2485         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
2486         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
2487         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
2488         (is_a_helper <gimple_statement_phi>::test): Convert to...
2489         (is_a_helper <gimple_statement_phi *>::test): ...this.
2490         (is_a_helper <gimple_statement_transaction>::test): Convert to...
2491         (is_a_helper <gimple_statement_transaction *>::test): ...this.
2492         (is_a_helper <gimple_statement_try>::test): Convert to...
2493         (is_a_helper <gimple_statement_try *>::test): ...this.
2494         (is_a_helper <gimple_statement_wce>::test): Convert to...
2495         (is_a_helper <gimple_statement_wce *>::test): ...this.
2496         (is_a_helper <const gimple_statement_asm>::test): Convert to...
2497         (is_a_helper <const gimple_statement_asm *>::test): ...this.
2498         (is_a_helper <const gimple_statement_bind>::test): Convert to...
2499         (is_a_helper <const gimple_statement_bind *>::test): ...this.
2500         (is_a_helper <const gimple_statement_call>::test): Convert to...
2501         (is_a_helper <const gimple_statement_call *>::test): ...this.
2502         (is_a_helper <const gimple_statement_catch>::test): Convert to...
2503         (is_a_helper <const gimple_statement_catch *>::test): ...this.
2504         (is_a_helper <const gimple_statement_resx>::test): Convert to...
2505         (is_a_helper <const gimple_statement_resx *>::test): ...this.
2506         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
2507         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
2508         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
2509         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
2510         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
2511         Convert to...
2512         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
2513         ...this.
2514         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
2515         Convert to...
2516         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
2517         ...this.
2518         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
2519         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
2520         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
2521         to...
2522         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
2523         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
2524         to...
2525         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
2526         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
2527         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
2528         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
2529         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
2530         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
2531         to...
2532         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
2533         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
2534         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
2535         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
2536         to...
2537         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
2538         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
2539         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
2540         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
2541         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
2542         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
2543         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
2544         (is_a_helper <const gimple_statement_phi>::test): Convert to...
2545         (is_a_helper <const gimple_statement_phi *>::test): ...this.
2546         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
2547         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
2548         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
2549         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
2550         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
2551         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
2552         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
2553         to...
2554         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
2555         ...this.
2556         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
2557         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
2559         (gimple_use_ops): Update for removal of implicit pointer from the
2560         is-a.h API.
2561         (gimple_set_use_ops): Likewise.
2562         (gimple_vuse): Likewise.
2563         (gimple_vdef): Likewise.
2564         (gimple_vuse_ptr): Likewise.
2565         (gimple_vdef_ptr): Likewise.
2566         (gimple_set_vuse): Likewise.
2567         (gimple_set_vdef): Likewise.
2568         (gimple_omp_return_set_lhs): Likewise.
2569         (gimple_omp_return_lhs): Likewise.
2570         (gimple_omp_return_lhs_ptr): Likewise.
2571         (gimple_call_fntype): Likewise.
2572         (gimple_call_set_fntype): Likewise.
2573         (gimple_call_set_internal_fn): Likewise.
2574         (gimple_call_use_set): Likewise.
2575         (gimple_call_clobber_set): Likewise.
2576         (gimple_bind_vars): Likewise.
2577         (gimple_bind_set_vars): Likewise.
2578         (gimple_bind_body_ptr): Likewise.
2579         (gimple_bind_set_body): Likewise.
2580         (gimple_bind_add_stmt): Likewise.
2581         (gimple_bind_block): Likewise.
2582         (gimple_bind_set_block): Likewise.
2583         (gimple_asm_ninputs): Likewise.
2584         (gimple_asm_noutputs): Likewise.
2585         (gimple_asm_nclobbers): Likewise.
2586         (gimple_asm_nlabels): Likewise.
2587         (gimple_asm_input_op): Likewise.
2588         (gimple_asm_input_op_ptr): Likewise.
2589         (gimple_asm_output_op): Likewise.
2590         (gimple_asm_output_op_ptr): Likewise.
2591         (gimple_asm_set_output_op): Likewise.
2592         (gimple_asm_clobber_op): Likewise.
2593         (gimple_asm_set_clobber_op): Likewise.
2594         (gimple_asm_label_op): Likewise.
2595         (gimple_asm_set_label_op): Likewise.
2596         (gimple_asm_string): Likewise.
2597         (gimple_catch_types): Likewise.
2598         (gimple_catch_types_ptr): Likewise.
2599         (gimple_catch_handler_ptr): Likewise.
2600         (gimple_catch_set_types): Likewise.
2601         (gimple_catch_set_handler): Likewise.
2602         (gimple_eh_filter_types): Likewise.
2603         (gimple_eh_filter_types_ptr): Likewise.
2604         (gimple_eh_filter_failure_ptr): Likewise.
2605         (gimple_eh_filter_set_types): Likewise.
2606         (gimple_eh_filter_set_failure): Likewise.
2607         (gimple_eh_must_not_throw_fndecl): Likewise.
2608         (gimple_eh_must_not_throw_set_fndecl): Likewise.
2609         (gimple_eh_else_n_body_ptr): Likewise.
2610         (gimple_eh_else_e_body_ptr): Likewise.
2611         (gimple_eh_else_set_n_body): Likewise.
2612         (gimple_eh_else_set_e_body): Likewise.
2613         (gimple_try_eval_ptr): Likewise.
2614         (gimple_try_cleanup_ptr): Likewise.
2615         (gimple_try_set_eval): Likewise.
2616         (gimple_try_set_cleanup): Likewise.
2617         (gimple_wce_cleanup_ptr): Likewise.
2618         (gimple_wce_set_cleanup): Likewise.
2619         (gimple_phi_capacity): Likewise.
2620         (gimple_phi_num_args): Likewise.
2621         (gimple_phi_result): Likewise.
2622         (gimple_phi_result_ptr): Likewise.
2623         (gimple_phi_set_result): Likewise.
2624         (gimple_phi_arg): Likewise.
2625         (gimple_phi_set_arg): Likewise.
2626         (gimple_resx_region): Likewise.
2627         (gimple_resx_set_region): Likewise.
2628         (gimple_eh_dispatch_region): Likewise.
2629         (gimple_eh_dispatch_set_region): Likewise.
2630         (gimple_omp_critical_name): Likewise.
2631         (gimple_omp_critical_name_ptr): Likewise.
2632         (gimple_omp_critical_set_name): Likewise.
2633         (gimple_omp_for_clauses): Likewise.
2634         (gimple_omp_for_clauses_ptr): Likewise.
2635         (gimple_omp_for_set_clauses): Likewise.
2636         (gimple_omp_for_collapse): Likewise.
2637         (gimple_omp_for_index): Likewise.
2638         (gimple_omp_for_index_ptr): Likewise.
2639         (gimple_omp_for_set_index): Likewise.
2640         (gimple_omp_for_initial): Likewise.
2641         (gimple_omp_for_initial_ptr): Likewise.
2642         (gimple_omp_for_set_initial): Likewise.
2643         (gimple_omp_for_final): Likewise.
2644         (gimple_omp_for_final_ptr): Likewise.
2645         (gimple_omp_for_set_final): Likewise.
2646         (gimple_omp_for_incr): Likewise.
2647         (gimple_omp_for_incr_ptr): Likewise.
2648         (gimple_omp_for_set_incr): Likewise.
2649         (gimple_omp_for_pre_body_ptr): Likewise.
2650         (gimple_omp_for_set_pre_body): Likewise.
2651         (gimple_omp_parallel_clauses): Likewise.
2652         (gimple_omp_parallel_clauses_ptr): Likewise.
2653         (gimple_omp_parallel_set_clauses): Likewise.
2654         (gimple_omp_parallel_child_fn): Likewise.
2655         (gimple_omp_parallel_child_fn_ptr): Likewise.
2656         (gimple_omp_parallel_set_child_fn): Likewise.
2657         (gimple_omp_parallel_data_arg): Likewise.
2658         (gimple_omp_parallel_data_arg_ptr): Likewise.
2659         (gimple_omp_parallel_set_data_arg): Likewise.
2660         (gimple_omp_task_clauses): Likewise.
2661         (gimple_omp_task_clauses_ptr): Likewise.
2662         (gimple_omp_task_set_clauses): Likewise.
2663         (gimple_omp_task_child_fn): Likewise.
2664         (gimple_omp_task_child_fn_ptr): Likewise.
2665         (gimple_omp_task_set_child_fn): Likewise.
2666         (gimple_omp_task_data_arg): Likewise.
2667         (gimple_omp_task_data_arg_ptr): Likewise.
2668         (gimple_omp_task_set_data_arg): Likewise.
2669         (gimple_omp_taskreg_clauses): Likewise.
2670         (gimple_omp_taskreg_clauses_ptr): Likewise.
2671         (gimple_omp_taskreg_set_clauses): Likewise.
2672         (gimple_omp_taskreg_child_fn): Likewise.
2673         (gimple_omp_taskreg_child_fn_ptr): Likewise.
2674         (gimple_omp_taskreg_set_child_fn): Likewise.
2675         (gimple_omp_taskreg_data_arg): Likewise.
2676         (gimple_omp_taskreg_data_arg_ptr): Likewise.
2677         (gimple_omp_taskreg_set_data_arg): Likewise.
2678         (gimple_omp_task_copy_fn): Likewise.
2679         (gimple_omp_task_copy_fn_ptr): Likewise.
2680         (gimple_omp_task_set_copy_fn): Likewise.
2681         (gimple_omp_task_arg_size): Likewise.
2682         (gimple_omp_task_arg_size_ptr): Likewise.
2683         (gimple_omp_task_set_arg_size): Likewise.
2684         (gimple_omp_task_arg_align): Likewise.
2685         (gimple_omp_task_arg_align_ptr): Likewise.
2686         (gimple_omp_task_set_arg_align): Likewise.
2687         (gimple_omp_single_clauses): Likewise.
2688         (gimple_omp_single_clauses_ptr): Likewise.
2689         (gimple_omp_single_set_clauses): Likewise.
2690         (gimple_omp_target_clauses): Likewise.
2691         (gimple_omp_target_clauses_ptr): Likewise.
2692         (gimple_omp_target_set_clauses): Likewise.
2693         (gimple_omp_target_child_fn): Likewise.
2694         (gimple_omp_target_child_fn_ptr): Likewise.
2695         (gimple_omp_target_set_child_fn): Likewise.
2696         (gimple_omp_target_data_arg): Likewise.
2697         (gimple_omp_target_data_arg_ptr): Likewise.
2698         (gimple_omp_target_set_data_arg): Likewise.
2699         (gimple_omp_teams_clauses): Likewise.
2700         (gimple_omp_teams_clauses_ptr): Likewise.
2701         (gimple_omp_teams_set_clauses): Likewise.
2702         (gimple_omp_sections_clauses): Likewise.
2703         (gimple_omp_sections_clauses_ptr): Likewise.
2704         (gimple_omp_sections_set_clauses): Likewise.
2705         (gimple_omp_sections_control): Likewise.
2706         (gimple_omp_sections_control_ptr): Likewise.
2707         (gimple_omp_sections_set_control): Likewise.
2708         (gimple_omp_for_set_cond): Likewise.
2709         (gimple_omp_for_cond): Likewise.
2710         (gimple_omp_atomic_store_set_val): Likewise.
2711         (gimple_omp_atomic_store_val): Likewise.
2712         (gimple_omp_atomic_store_val_ptr): Likewise.
2713         (gimple_omp_atomic_load_set_lhs): Likewise.
2714         (gimple_omp_atomic_load_lhs): Likewise.
2715         (gimple_omp_atomic_load_lhs_ptr): Likewise.
2716         (gimple_omp_atomic_load_set_rhs): Likewise.
2717         (gimple_omp_atomic_load_rhs): Likewise.
2718         (gimple_omp_atomic_load_rhs_ptr): Likewise.
2719         (gimple_omp_continue_control_def): Likewise.
2720         (gimple_omp_continue_control_def_ptr): Likewise.
2721         (gimple_omp_continue_set_control_def): Likewise.
2722         (gimple_omp_continue_control_use): Likewise.
2723         (gimple_omp_continue_control_use_ptr): Likewise.
2724         (gimple_omp_continue_set_control_use): Likewise.
2725         (gimple_transaction_body_ptr): Likewise.
2726         (gimple_transaction_label): Likewise.
2727         (gimple_transaction_label_ptr): Likewise.
2728         (gimple_transaction_set_body): Likewise.
2729         (gimple_transaction_set_label): Likewise.
2731         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
2732         * ipa-inline-analysis.c (inline_write_summary): Likewise.
2733         * ipa-ref.c (ipa_record_reference): Likewise.
2734         * ipa-reference.c (analyze_function): Likewise.
2735         (ipa_reference_write_optimization_summary): Likewise.
2736         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
2737         (address_taken_from_non_vtable_p): Likewise.
2738         (comdat_can_be_unshared_p_1): Likewise.
2739         * lto-cgraph.c (lto_output_ref): Likewise.
2740         (add_references): Likewise.
2741         (compute_ltrans_boundary): Likewise.
2742         (output_symtab): Likewise.
2743         (input_ref): Likewise.
2744         (input_cgraph_1): Likewise.
2745         (output_cgraph_opt_summary): Likewise.
2746         * lto-streamer-out.c (lto_output): Likewise.
2747         (output_symbol_p): Likewise.
2748         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
2749         (lsei_start_function_in_partition): Likewise.
2750         (lsei_next_variable_in_partition): Likewise.
2751         (lsei_start_variable_in_partition): Likewise.
2752         * symtab.c (insert_to_assembler_name_hash): Likewise.
2753         (unlink_from_assembler_name_hash): Likewise.
2754         (symtab_unregister_node): Likewise.
2755         (symtab_remove_node): Likewise.
2756         (dump_symtab_node): Likewise.
2757         (verify_symtab_base): Likewise.
2758         (verify_symtab_node): Likewise.
2759         (symtab_make_decl_local): Likewise.
2760         (symtab_alias_ultimate_target): Likewise.
2761         (symtab_resolve_alias): Likewise.
2762         (symtab_get_symbol_partitioning_class): Likewise.
2763         * tree-phinodes.c (allocate_phi_node): Likewise.
2764         (reserve_phi_args_for_new_edge): Likewise.
2765         (remove_phi_args): Likewise.
2766         * varpool.c (varpool_node_for_asm): Likewise.
2767         (varpool_remove_unreferenced_decls): Likewise.
2769 2014-04-23  Jeff Law  <law@redhat.com>
2771         PR tree-optimization/60902
2772         * tree-ssa-threadedge.c
2773         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
2774         invalidate outputs from statements that do not produce useful
2775         outputs for threading.
2777 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
2779         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
2780         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
2781         machine descriptions for Stack Smashing Protector.
2783 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
2785         * aarch64.md (<optab>_rol<mode>3): New pattern.
2786         (<optab>_rolsi3_uxtw): Likewise.
2787         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
2789 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
2791         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
2792         (arm_cortex_a12_tune): Likewise.
2794 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2796         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
2798 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2800         * config/arm/arm.md (arm_rev16si2): New pattern.
2801         (arm_rev16si2_alt): Likewise.
2802         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
2804 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2806         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
2807         (rev16<mode>2_alt): Likewise.
2808         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
2809         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
2810         (aarch_rev16_shleft_mask_imm_p): Likewise.
2811         (aarch_rev16_p_1): Likewise.
2812         (aarch_rev16_p): Likewise.
2813         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
2814         (aarch_rev16_shright_mask_imm_p): Likewise.
2815         (aarch_rev16_shleft_mask_imm_p): Likewise.
2817 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2819         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
2820         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
2821         rev cost.
2822         (cortex_a53_extra_costs): Likewise.
2823         (cortex_a57_extra_costs): Likewise.
2824         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
2825         (cortexa7_extra_costs): Likewise.
2826         (cortexa8_extra_costs): Likewise.
2827         (cortexa12_extra_costs): Likewise.
2828         (cortexa15_extra_costs): Likewise.
2829         (v7m_extra_costs): Likewise.
2830         (arm_new_rtx_costs): Handle BSWAP.
2832 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2834         * config/arm/arm.c (cortexa8_extra_costs): New table.
2835         (arm_cortex_a8_tune): New tuning struct.
2836         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
2838 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2840         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
2842 2014-04-23  Richard Biener  <rguenther@suse.de>
2844         * Makefile.in (OBJS): Remove loop-unswitch.o.
2845         * tree-pass.h (make_pass_rtl_unswitch): Remove.
2846         * passes.def (pass_rtl_unswitch): Likewise.
2847         * loop-init.c (gate_rtl_unswitch): Likewise.
2848         (rtl_unswitch): Likewise.
2849         (pass_data_rtl_unswitch): Likewise.
2850         (pass_rtl_unswitch): Likewise.
2851         (make_pass_rtl_unswitch): Likewise.
2852         * rtl.h (reversed_condition): Likewise.
2853         (compare_and_jump_seq): Likewise.
2854         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
2855         and make static.
2856         * loop-unroll.c (compare_and_jump_seq): Likewise.
2858 2014-04-23  Richard Biener  <rguenther@suse.de>
2860         PR tree-optimization/60903
2861         * tree-ssa-loop-im.c (analyze_memory_references): Remove
2862         commented code block.
2863         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
2864         loop flags to newly created BBs and edges.
2866 2014-04-23  Nick Clifton  <nickc@redhat.com>
2868         * config/msp430/msp430.c (msp430_handle_option): Move function
2869         to msp430-common.c
2870         (msp430_option_override): Simplify mcu and mcpu option handling.
2871         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
2872         support for -mhwmult command line option.
2873         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
2874         -mhwmult command line option.
2875         (msp430_hwmult_enabled): Delete.
2876         (msp43o_output_labelref): Add support for -mhwmult command line option.
2877         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
2878         (umulsidi3): Likewise.
2879         * config/msp430/msp430.opt (mmcu): Add Report attribute.
2880         (mcpu, mlarge, msmall): Likewise.
2881         (mhwmult): New option.
2882         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
2883         prototype.
2884         (msp430_is_f5_mcu): Remove prototype.
2885         (msp430_use_f5_series_hwmult): Add prototype.
2886         * config/msp430/msp430-opts.h: New file.
2887         * common/config/msp430: New directory.
2888         * common/config/msp430/msp430-common.c: New file.
2889         * config.gcc (msp430): Remove target_has_targetm_common.
2890         * doc/invoke.texi: Document -mhwmult command line option.
2892 2014-04-23  Nick Clifton  <nickc@redhat.com>
2894         * config/i386/cygwin.h (ENDFILE_SPEC): Include
2895         default-manifest.o if it can be found in the search path.
2896         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
2898 2014-04-23  Terry Guo  <terry.guo@arm.com>
2900         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
2902 2014-04-23  Richard Biener  <rguenther@suse.de>
2904         PR middle-end/60895
2905         * tree-inline.c (declare_return_variable): Use mark_addressable.
2907 2014-04-23  Richard Biener  <rguenther@suse.de>
2909         PR middle-end/60891
2910         * loop-init.c (loop_optimizer_init): Make sure to apply
2911         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
2913 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
2915         PR sanitizer/60275
2916         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
2917         New options.
2918         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
2919         if flag_sanitize_undefined_trap_on_error.
2920         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
2921         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
2922         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
2923         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
2924         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
2925         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
2926         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
2927         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
2928         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
2929         * ubsan.c (ubsan_instrument_unreachable): Return
2930         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
2931         (ubsan_expand_null_ifn): Emit __builtin_trap ()
2932         if flag_sanitize_undefined_trap_on_error and
2933         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
2934         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
2935         instrument_bool_enum_load): Emit __builtin_trap () if
2936         flag_sanitize_undefined_trap_on_error and
2937         __builtin_handle_*_abort () if !flag_sanitize_recover.
2938         * doc/invoke.texi (-fsanitize-recover,
2939         -fsanitize-undefined-trap-on-error): Document.
2941 2014-04-22  Christian Bruel  <christian.bruel@st.com>
2943         * config/sh/sh.md (mov<mode>): Replace movQIHI.
2944          Force immediates to SImode.
2946 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
2948         * config/nios2/nios2.md (UNSPEC_ROUND): New.
2949         (lroundsfsi2): New.
2950         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
2951         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
2952         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
2953         (nios2_fpu_insn): Add entry for round.
2954         (N2FPU_NO_ERRNO_P): Define.
2955         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
2956         flag_errno_math.
2957         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
2959 2014-04-22  Richard Henderson  <rth@redhat.com>
2961         * config/aarch64/aarch64 (addti3, subti3): New expanders.
2962         (add<GPI>3_compare0): Remove leading * from name.
2963         (add<GPI>3_carryin): Likewise.
2964         (sub<GPI>3_compare0): Likewise.
2965         (sub<GPI>3_carryin): Likewise.
2966         (<su_optab>mulditi3): New expander.
2967         (multi3): New expander.
2968         (madd<GPI>): Remove leading * from name.
2970 2014-04-22  Martin Jambor  <mjambor@suse.cz>
2972         * cgraphclones.c (cgraph_function_versioning): Copy
2973         ipa_transforms_to_apply instead of asserting it is empty.
2975 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
2977         PR target/60868
2978         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
2979         on count_exp to get mode.
2981 2014-04-22  Andrew Pinski  <apinski@cavium.com>
2983         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2984         Handle TLS for ILP32.
2985         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
2986         (tlsie_small_<mode>): this and handle PTR.
2987         (tlsie_small_sidi): New pattern.
2988         (tlsle_small): Change to an expand to handle ILP32.
2989         (tlsle_small_<mode>): New pattern.
2990         (tlsdesc_small): Rename to ...
2991         (tlsdesc_small_<mode>): this and handle PTR.
2993 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2995         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
2997 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
2999         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
3000         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
3001         (aarch64_types_signed_poly_qualifiers): Likewise.
3002         (aarch64_types_unsigned_signed_qualifiers): Likewise.
3003         (aarch64_types_poly_signed_qualifiers): Likewise.
3004         (TYPES_REINTERP_SS): Type macro added.
3005         (TYPES_REINTERP_SU): Likewise.
3006         (TYPES_REINTERP_SP): Likewise.
3007         (TYPES_REINTERP_US): Likewise.
3008         (TYPES_REINTERP_PS): Likewise.
3009         (aarch64_fold_builtin): New expression folding added.
3010         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
3011         Declarations removed.
3012         (REINTERP_SS): Declarations added.
3013         (REINTERP_US): Likewise.
3014         (REINTERP_PS): Likewise.
3015         (REINTERP_SU): Likewise.
3016         (REINTERP_SP): Likewise.
3017         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
3018         (vreinterpretq_p8_f64): Likewise.
3019         (vreinterpret_p16_f64): Likewise.
3020         (vreinterpretq_p16_f64): Likewise.
3021         (vreinterpret_f32_f64): Likewise.
3022         (vreinterpretq_f32_f64): Likewise.
3023         (vreinterpret_f64_f32): Likewise.
3024         (vreinterpret_f64_p8): Likewise.
3025         (vreinterpret_f64_p16): Likewise.
3026         (vreinterpret_f64_s8): Likewise.
3027         (vreinterpret_f64_s16): Likewise.
3028         (vreinterpret_f64_s32): Likewise.
3029         (vreinterpret_f64_s64): Likewise.
3030         (vreinterpret_f64_u8): Likewise.
3031         (vreinterpret_f64_u16): Likewise.
3032         (vreinterpret_f64_u32): Likewise.
3033         (vreinterpret_f64_u64): Likewise.
3034         (vreinterpretq_f64_f32): Likewise.
3035         (vreinterpretq_f64_p8): Likewise.
3036         (vreinterpretq_f64_p16): Likewise.
3037         (vreinterpretq_f64_s8): Likewise.
3038         (vreinterpretq_f64_s16): Likewise.
3039         (vreinterpretq_f64_s32): Likewise.
3040         (vreinterpretq_f64_s64): Likewise.
3041         (vreinterpretq_f64_u8): Likewise.
3042         (vreinterpretq_f64_u16): Likewise.
3043         (vreinterpretq_f64_u32): Likewise.
3044         (vreinterpretq_f64_u64): Likewise.
3045         (vreinterpret_s64_f64): Likewise.
3046         (vreinterpretq_s64_f64): Likewise.
3047         (vreinterpret_u64_f64): Likewise.
3048         (vreinterpretq_u64_f64): Likewise.
3049         (vreinterpret_s8_f64): Likewise.
3050         (vreinterpretq_s8_f64): Likewise.
3051         (vreinterpret_s16_f64): Likewise.
3052         (vreinterpretq_s16_f64): Likewise.
3053         (vreinterpret_s32_f64): Likewise.
3054         (vreinterpretq_s32_f64): Likewise.
3055         (vreinterpret_u8_f64): Likewise.
3056         (vreinterpretq_u8_f64): Likewise.
3057         (vreinterpret_u16_f64): Likewise.
3058         (vreinterpretq_u16_f64): Likewise.
3059         (vreinterpret_u32_f64): Likewise.
3060         (vreinterpretq_u32_f64): Likewise.
3062 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3064         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
3065         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
3066         (vreinterpret_p8_s8): Likewise.
3067         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
3068         (vreinterpret_p8_s16): Likewise.
3069         (vreinterpret_p8_s32): Likewise.
3070         (vreinterpret_p8_s64): Likewise.
3071         (vreinterpret_p8_f32): Likewise.
3072         (vreinterpret_p8_u8): Likewise.
3073         (vreinterpret_p8_u16): Likewise.
3074         (vreinterpret_p8_u32): Likewise.
3075         (vreinterpret_p8_u64): Likewise.
3076         (vreinterpret_p8_p16): Likewise.
3077         (vreinterpretq_p8_s8): Likewise.
3078         (vreinterpretq_p8_s16): Likewise.
3079         (vreinterpretq_p8_s32): Likewise.
3080         (vreinterpretq_p8_s64): Likewise.
3081         (vreinterpretq_p8_f32): Likewise.
3082         (vreinterpretq_p8_u8): Likewise.
3083         (vreinterpretq_p8_u16): Likewise.
3084         (vreinterpretq_p8_u32): Likewise.
3085         (vreinterpretq_p8_u64): Likewise.
3086         (vreinterpretq_p8_p16): Likewise.
3087         (vreinterpret_p16_s8): Likewise.
3088         (vreinterpret_p16_s16): Likewise.
3089         (vreinterpret_p16_s32): Likewise.
3090         (vreinterpret_p16_s64): Likewise.
3091         (vreinterpret_p16_f32): Likewise.
3092         (vreinterpret_p16_u8): Likewise.
3093         (vreinterpret_p16_u16): Likewise.
3094         (vreinterpret_p16_u32): Likewise.
3095         (vreinterpret_p16_u64): Likewise.
3096         (vreinterpret_p16_p8): Likewise.
3097         (vreinterpretq_p16_s8): Likewise.
3098         (vreinterpretq_p16_s16): Likewise.
3099         (vreinterpretq_p16_s32): Likewise.
3100         (vreinterpretq_p16_s64): Likewise.
3101         (vreinterpretq_p16_f32): Likewise.
3102         (vreinterpretq_p16_u8): Likewise.
3103         (vreinterpretq_p16_u16): Likewise.
3104         (vreinterpretq_p16_u32): Likewise.
3105         (vreinterpretq_p16_u64): Likewise.
3106         (vreinterpretq_p16_p8): Likewise.
3107         (vreinterpret_f32_s8): Likewise.
3108         (vreinterpret_f32_s16): Likewise.
3109         (vreinterpret_f32_s32): Likewise.
3110         (vreinterpret_f32_s64): Likewise.
3111         (vreinterpret_f32_u8): Likewise.
3112         (vreinterpret_f32_u16): Likewise.
3113         (vreinterpret_f32_u32): Likewise.
3114         (vreinterpret_f32_u64): Likewise.
3115         (vreinterpret_f32_p8): Likewise.
3116         (vreinterpret_f32_p16): Likewise.
3117         (vreinterpretq_f32_s8): Likewise.
3118         (vreinterpretq_f32_s16): Likewise.
3119         (vreinterpretq_f32_s32): Likewise.
3120         (vreinterpretq_f32_s64): Likewise.
3121         (vreinterpretq_f32_u8): Likewise.
3122         (vreinterpretq_f32_u16): Likewise.
3123         (vreinterpretq_f32_u32): Likewise.
3124         (vreinterpretq_f32_u64): Likewise.
3125         (vreinterpretq_f32_p8): Likewise.
3126         (vreinterpretq_f32_p16): Likewise.
3127         (vreinterpret_s64_s8): Likewise.
3128         (vreinterpret_s64_s16): Likewise.
3129         (vreinterpret_s64_s32): Likewise.
3130         (vreinterpret_s64_f32): Likewise.
3131         (vreinterpret_s64_u8): Likewise.
3132         (vreinterpret_s64_u16): Likewise.
3133         (vreinterpret_s64_u32): Likewise.
3134         (vreinterpret_s64_u64): Likewise.
3135         (vreinterpret_s64_p8): Likewise.
3136         (vreinterpret_s64_p16): Likewise.
3137         (vreinterpretq_s64_s8): Likewise.
3138         (vreinterpretq_s64_s16): Likewise.
3139         (vreinterpretq_s64_s32): Likewise.
3140         (vreinterpretq_s64_f32): Likewise.
3141         (vreinterpretq_s64_u8): Likewise.
3142         (vreinterpretq_s64_u16): Likewise.
3143         (vreinterpretq_s64_u32): Likewise.
3144         (vreinterpretq_s64_u64): Likewise.
3145         (vreinterpretq_s64_p8): Likewise.
3146         (vreinterpretq_s64_p16): Likewise.
3147         (vreinterpret_u64_s8): Likewise.
3148         (vreinterpret_u64_s16): Likewise.
3149         (vreinterpret_u64_s32): Likewise.
3150         (vreinterpret_u64_s64): Likewise.
3151         (vreinterpret_u64_f32): Likewise.
3152         (vreinterpret_u64_u8): Likewise.
3153         (vreinterpret_u64_u16): Likewise.
3154         (vreinterpret_u64_u32): Likewise.
3155         (vreinterpret_u64_p8): Likewise.
3156         (vreinterpret_u64_p16): Likewise.
3157         (vreinterpretq_u64_s8): Likewise.
3158         (vreinterpretq_u64_s16): Likewise.
3159         (vreinterpretq_u64_s32): Likewise.
3160         (vreinterpretq_u64_s64): Likewise.
3161         (vreinterpretq_u64_f32): Likewise.
3162         (vreinterpretq_u64_u8): Likewise.
3163         (vreinterpretq_u64_u16): Likewise.
3164         (vreinterpretq_u64_u32): Likewise.
3165         (vreinterpretq_u64_p8): Likewise.
3166         (vreinterpretq_u64_p16): Likewise.
3167         (vreinterpret_s8_s16): Likewise.
3168         (vreinterpret_s8_s32): Likewise.
3169         (vreinterpret_s8_s64): Likewise.
3170         (vreinterpret_s8_f32): Likewise.
3171         (vreinterpret_s8_u8): Likewise.
3172         (vreinterpret_s8_u16): Likewise.
3173         (vreinterpret_s8_u32): Likewise.
3174         (vreinterpret_s8_u64): Likewise.
3175         (vreinterpret_s8_p8): Likewise.
3176         (vreinterpret_s8_p16): Likewise.
3177         (vreinterpretq_s8_s16): Likewise.
3178         (vreinterpretq_s8_s32): Likewise.
3179         (vreinterpretq_s8_s64): Likewise.
3180         (vreinterpretq_s8_f32): Likewise.
3181         (vreinterpretq_s8_u8): Likewise.
3182         (vreinterpretq_s8_u16): Likewise.
3183         (vreinterpretq_s8_u32): Likewise.
3184         (vreinterpretq_s8_u64): Likewise.
3185         (vreinterpretq_s8_p8): Likewise.
3186         (vreinterpretq_s8_p16): Likewise.
3187         (vreinterpret_s16_s8): Likewise.
3188         (vreinterpret_s16_s32): Likewise.
3189         (vreinterpret_s16_s64): Likewise.
3190         (vreinterpret_s16_f32): Likewise.
3191         (vreinterpret_s16_u8): Likewise.
3192         (vreinterpret_s16_u16): Likewise.
3193         (vreinterpret_s16_u32): Likewise.
3194         (vreinterpret_s16_u64): Likewise.
3195         (vreinterpret_s16_p8): Likewise.
3196         (vreinterpret_s16_p16): Likewise.
3197         (vreinterpretq_s16_s8): Likewise.
3198         (vreinterpretq_s16_s32): Likewise.
3199         (vreinterpretq_s16_s64): Likewise.
3200         (vreinterpretq_s16_f32): Likewise.
3201         (vreinterpretq_s16_u8): Likewise.
3202         (vreinterpretq_s16_u16): Likewise.
3203         (vreinterpretq_s16_u32): Likewise.
3204         (vreinterpretq_s16_u64): Likewise.
3205         (vreinterpretq_s16_p8): Likewise.
3206         (vreinterpretq_s16_p16): Likewise.
3207         (vreinterpret_s32_s8): Likewise.
3208         (vreinterpret_s32_s16): Likewise.
3209         (vreinterpret_s32_s64): Likewise.
3210         (vreinterpret_s32_f32): Likewise.
3211         (vreinterpret_s32_u8): Likewise.
3212         (vreinterpret_s32_u16): Likewise.
3213         (vreinterpret_s32_u32): Likewise.
3214         (vreinterpret_s32_u64): Likewise.
3215         (vreinterpret_s32_p8): Likewise.
3216         (vreinterpret_s32_p16): Likewise.
3217         (vreinterpretq_s32_s8): Likewise.
3218         (vreinterpretq_s32_s16): Likewise.
3219         (vreinterpretq_s32_s64): Likewise.
3220         (vreinterpretq_s32_f32): Likewise.
3221         (vreinterpretq_s32_u8): Likewise.
3222         (vreinterpretq_s32_u16): Likewise.
3223         (vreinterpretq_s32_u32): Likewise.
3224         (vreinterpretq_s32_u64): Likewise.
3225         (vreinterpretq_s32_p8): Likewise.
3226         (vreinterpretq_s32_p16): Likewise.
3227         (vreinterpret_u8_s8): Likewise.
3228         (vreinterpret_u8_s16): Likewise.
3229         (vreinterpret_u8_s32): Likewise.
3230         (vreinterpret_u8_s64): Likewise.
3231         (vreinterpret_u8_f32): Likewise.
3232         (vreinterpret_u8_u16): Likewise.
3233         (vreinterpret_u8_u32): Likewise.
3234         (vreinterpret_u8_u64): Likewise.
3235         (vreinterpret_u8_p8): Likewise.
3236         (vreinterpret_u8_p16): Likewise.
3237         (vreinterpretq_u8_s8): Likewise.
3238         (vreinterpretq_u8_s16): Likewise.
3239         (vreinterpretq_u8_s32): Likewise.
3240         (vreinterpretq_u8_s64): Likewise.
3241         (vreinterpretq_u8_f32): Likewise.
3242         (vreinterpretq_u8_u16): Likewise.
3243         (vreinterpretq_u8_u32): Likewise.
3244         (vreinterpretq_u8_u64): Likewise.
3245         (vreinterpretq_u8_p8): Likewise.
3246         (vreinterpretq_u8_p16): Likewise.
3247         (vreinterpret_u16_s8): Likewise.
3248         (vreinterpret_u16_s16): Likewise.
3249         (vreinterpret_u16_s32): Likewise.
3250         (vreinterpret_u16_s64): Likewise.
3251         (vreinterpret_u16_f32): Likewise.
3252         (vreinterpret_u16_u8): Likewise.
3253         (vreinterpret_u16_u32): Likewise.
3254         (vreinterpret_u16_u64): Likewise.
3255         (vreinterpret_u16_p8): Likewise.
3256         (vreinterpret_u16_p16): Likewise.
3257         (vreinterpretq_u16_s8): Likewise.
3258         (vreinterpretq_u16_s16): Likewise.
3259         (vreinterpretq_u16_s32): Likewise.
3260         (vreinterpretq_u16_s64): Likewise.
3261         (vreinterpretq_u16_f32): Likewise.
3262         (vreinterpretq_u16_u8): Likewise.
3263         (vreinterpretq_u16_u32): Likewise.
3264         (vreinterpretq_u16_u64): Likewise.
3265         (vreinterpretq_u16_p8): Likewise.
3266         (vreinterpretq_u16_p16): Likewise.
3267         (vreinterpret_u32_s8): Likewise.
3268         (vreinterpret_u32_s16): Likewise.
3269         (vreinterpret_u32_s32): Likewise.
3270         (vreinterpret_u32_s64): Likewise.
3271         (vreinterpret_u32_f32): Likewise.
3272         (vreinterpret_u32_u8): Likewise.
3273         (vreinterpret_u32_u16): Likewise.
3274         (vreinterpret_u32_u64): Likewise.
3275         (vreinterpret_u32_p8): Likewise.
3276         (vreinterpret_u32_p16): Likewise.
3277         (vreinterpretq_u32_s8): Likewise.
3278         (vreinterpretq_u32_s16): Likewise.
3279         (vreinterpretq_u32_s32): Likewise.
3280         (vreinterpretq_u32_s64): Likewise.
3281         (vreinterpretq_u32_f32): Likewise.
3282         (vreinterpretq_u32_u8): Likewise.
3283         (vreinterpretq_u32_u16): Likewise.
3284         (vreinterpretq_u32_u64): Likewise.
3285         (vreinterpretq_u32_p8): Likewise.
3286         (vreinterpretq_u32_p16): Likewise.
3288 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3290         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
3291         Pattern extended.
3292         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
3293         (sqabs): Likewise.
3294         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
3295         (vqnegd_s64): Likewise.
3296         (vqabs_s64): Likewise.
3297         (vqabsd_s64): Likewise.
3299 2014-04-22  Richard Henderson  <rth@redhat.com>
3301         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
3302         computation to the top of the loop.
3304 2014-04-22  Renlin  <renlin.li@arm.com>
3305             Jiong Wang  <jiong.wang@arm.com>
3307         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
3308         * config/aarch64/aarch64.c (aarch64_layout_frame)
3309         (aarch64_initial_elimination_offset): Likewise.
3311 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3313         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
3314         Fix indentation.
3316 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
3318         * machmode.h (bitwise_mode_for_mode): Declare.
3319         * stor-layout.h (bitwise_type_for_mode): Likewise.
3320         * stor-layout.c (bitwise_mode_for_mode): New function.
3321         (bitwise_type_for_mode): Likewise.
3322         * builtins.c (fold_builtin_memory_op): Use it instead of
3323         int_mode_for_mode and build_nonstandard_integer_type.
3325 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3327         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
3328         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
3329         (*-*-solaris2*): Simplify.
3330         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
3331         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
3332         *-*-solaris2.9* handling.
3334         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
3335         as bug.
3336         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
3337         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
3338         handling, simplify.
3339         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
3340         * configure: Regenerate.
3342         * config/i386/sol2-9.h: Remove.
3344         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
3345         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
3346         Remove Solaris 9 references.
3348 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
3350         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
3351         (floatuns<GPI:mode><GPF:mode>2): Remove.
3352         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
3353         and floatuns conversions.
3354         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
3355         and floatuns conversions.
3356         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
3357         (w1,w2): New mode attributes for inequal width conversions.
3359 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
3361         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
3362         the output asm format.
3364 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
3366         * config/aarch64/aarch64-simd.md
3367         (aarch64_cm<optab>di): Always split.
3368         (*aarch64_cm<optab>di): New.
3369         (aarch64_cmtstdi): Always split.
3370         (*aarch64_cmtstdi): New.
3372 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3374         PR tree-optimization/60823
3375         * omp-low.c (ipa_simd_modify_function_body): Go through
3376         all SSA_NAMEs and for those refering to vector arguments
3377         which are going to be replaced adjust SSA_NAME_VAR and,
3378         if it is a default definition, change it into a non-default
3379         definition assigned at the beginning of function from new_decl.
3380         (ipa_simd_modify_stmt_ops): Rewritten.
3381         * tree-dfa.c (set_ssa_default_def): When removing default def,
3382         check for NULL loc instead of NULL *loc.
3384 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3386         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
3387         restrictions on core registers for DImode values in Thumb2.
3389 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
3391         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
3392         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
3394 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
3396         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
3397         (*iordi_notzesidi_di): Likewise.
3398         (*iordi_notsesidi_di): Likewise.
3400 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
3402         * config/arm/arm-protos.h (tune_params): New struct members.
3403         * config/arm/arm.c: Initialise tune_params per processor.
3404         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
3405         for speed, based on new tune_params.
3407 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3409         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
3410         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
3411         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
3412         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
3413         * config/aarch64/arm_neon.h (vrnd_f64): Added.
3414         (vrnda_f64): Likewise.
3415         (vrndi_f64): Likewise.
3416         (vrndm_f64): Likewise.
3417         (vrndn_f64): Likewise.
3418         (vrndp_f64): Likewise.
3419         (vrndx_f64): Likewise.
3421 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3423         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
3424         GET_MODE_SIZE argument is enum machine_mode.
3426 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3428         PR target/60910
3429         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
3430         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
3432 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
3434         PR middle-end/60281
3435         * asan.c (asan_emit_stack_protection): Force the base to align to
3436         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
3437         appropriate bits if STRICT_ALIGNMENT.
3438         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
3439         when asan is on.
3440         (expand_used_vars): Leave a space in the stack frame for alignment
3441         if STRICT_ALIGNMENT.
3443 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
3445         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
3446         than a gimple.
3447         (gimple_store_p): Likewise.
3448         (gimple_assign_load_p): Likewise.
3449         (gimple_assign_cast_p): Likewise.
3450         (gimple_clobber_p): Likewise.
3452         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
3453         rather than a gimple.
3454         (gimple_assign_cast_p): Likewise.
3456 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3458         PR target/60735
3459         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
3460         If mode is DDmode and TARGET_E500_DOUBLE allow move.
3462         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
3463         more debug information for E500 if -mdebug=reg.
3465 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
3467         PR target/60909
3468         * config/i386/i386.c (ix86_expand_builtin)
3469         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
3470         register for target RTX.
3471         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
3473 2014-04-18  Cong Hou  <congh@google.com>
3475         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
3476         the widen-mult pattern by handling two operands with different sizes,
3477         and operands whose size is smaller than half of the result type.
3479 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
3481         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
3482         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
3483         (do_estimate_edge_time): Compute it.
3484         * ipa-inline.c (want_inline_small_function_p): Bypass
3485         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
3487 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
3489         * ipa-inline.c (spec_rem): New static variable.
3490         (dump_overall_stats): New function.
3491         (dump_inline_stats): New function.
3493 2014-04-18  Richard Henderson  <rth@redhat.com>
3495         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
3496         to GET_MODE_SIZE, not a reg_class_t.
3498 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3500         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
3501         (vsx_xxmrglw_<mode>): Likewise.
3503 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
3505         PR target/60876
3506         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
3507         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
3508         (rs6000_init_hard_regno_mode_ok): Likewise.
3510 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
3512         * ipa-inline.c (inline_small_functions): Account only non-cold
3513         functions.
3514         * doc/invoke.texi (inline-unit-growth): Update documentation.
3516 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
3518         * config/rs6000/rs6000.md (addti3, subti3): New.
3520 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
3522         PR target/60863
3523         * config/i386/i386.c (ix86_expand_clear): Remove outdated
3524         comment.  Check optimize_insn_for_size_p instead of
3525         optimize_insn_for_speed_p.
3527 2014-04-17  Martin Jambor  <mjambor@suse.cz>
3529         * gimple-iterator.c (gsi_start_edge): New function.
3530         * gimple-iterator.h (gsi_start_edge): Declare.
3531         * tree-sra.c (single_non_eh_succ): New function.
3532         (disqualify_ops_if_throwing_stmt): Renamed to
3533         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
3534         having one non-EH successor BB.
3535         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
3536         generate loads into replacements.
3537         (sra_modify_assign): Likewise and and also use the simple path for
3538         such statements.
3539         (sra_modify_function_body): Commit statements on edges.
3541 2014-04-17  Richard Biener  <rguenther@suse.de>
3543         PR middle-end/60849
3544         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
3545         comparison results and add clarifying comment.
3547 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
3549         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
3550         (blank_mode): Initialize it.
3551         (emit_mode_size_inline, emit_mode_nunits_inline,
3552         emit_mode_inner_inline): New functions.
3553         (emit_insn_modes_h): Call them and surround their output with
3554         #if GCC_VERSION >= 4001 ... #endif.
3555         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
3556         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
3557         mode_* arrays if the argument is __builtin_constant_p.
3558         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
3559         is enum machine_mode.
3561 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3563         * passes.c (opt_pass::execute): Adjust.
3564         (pass_manager::execute_pass_mode_switching): Likewise.
3565         (early_local_passes::execute): Likewise.
3566         (execute_one_pass): Pass cfun to the pass's execute method.
3567         * tree-pass.h (opt_pass::execute): Add function * argument.
3568         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
3569         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
3570         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
3571         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
3572         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
3573         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
3574         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
3575         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
3576         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
3577         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
3578         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
3579         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
3580         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
3581         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
3582         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
3583         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
3584         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
3585         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
3586         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
3587         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3588         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
3589         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
3590         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
3591         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3592         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3593         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
3594         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
3595         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
3596         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
3597         Adjust.
3599 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3601         * passes.c (opt_pass::gate): Take function * argument.
3602         (gate_all_early_local_passes): Merge into
3603         (early_local_passes::gate): this.
3604         (gate_all_early_optimizations): Merge into
3605         (all_early_optimizations::gate): this.
3606         (gate_all_optimizations): Mege into
3607         (all_optimizations::gate): this.
3608         (gate_all_optimizations_g): Merge into
3609         (all_optimizations_g::gate): this.
3610         (gate_rest_of_compilation): Mege into
3611         (rest_of_compilation::gate): this.
3612         (gate_postreload): Merge into
3613         (postreload::gate): this.
3614         (dump_one_pass): Pass cfun to the pass's gate method.
3615         (execute_ipa_summary_passes): Likewise.
3616         (execute_one_pass): Likewise.
3617         (ipa_write_summaries_2): Likewise.
3618         (ipa_write_optimization_summaries_1): Likewise.
3619         (ipa_read_summaries_1): Likewise.
3620         (ipa_read_optimization_summaries_1): Likewise.
3621         (execute_ipa_stmt_fixups): Likewise.
3622         * tree-pass.h (opt_pass::gate): Add function * argument.
3623         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
3624         combine-stack-adj.c, combine.c, compare-elim.c,
3625         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
3626         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
3627         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
3628         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
3629         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
3630         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
3631         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
3632         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
3633         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
3634         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
3635         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
3636         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
3637         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
3638         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
3639         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3640         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3641         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
3642         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
3643         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
3644         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3645         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3646         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
3647         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3648         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
3649         var-tracking.c, vtable-verify.c, web.c: Adjust.
3651 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3653         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
3654         * configure: Regenerate.
3656 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3658         * passes.c (dump_one_pass): don't check pass->has_gate.
3659         (execute_ipa_summary_passes): Likewise.
3660         (execute_one_pass): Likewise.
3661         (ipa_write_summaries_2): Likewise.
3662         (ipa_write_optimization_summaries_1): Likewise.
3663         (ipa_read_optimization_summaries_1): Likewise.
3664         (execute_ipa_stmt_fixups): Likewise.
3665         * tree-pass.h (pass_data::has_gate): Remove.
3666         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
3667         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
3668         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
3669         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
3670         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
3671         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
3672         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
3673         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
3674         gimple-low.c, gimple-ssa-isolate-paths.c,
3675         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
3676         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3677         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
3678         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
3679         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
3680         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
3681         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
3682         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
3683         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
3684         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
3685         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
3686         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3687         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3688         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
3689         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
3690         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
3691         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3692         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3693         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
3694         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
3695         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
3696         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
3697         Adjust.
3699 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3701         * pass_manager.h (pass_manager::register_dump_files_1): Remove
3702         declaration.
3703         * passes.c (pass_manager::register_dump_files_1): Merge into
3704         (pass_manager::register_dump_files): this, and remove its handling of
3705         properties since the pass always has the properties anyway.
3706         (pass_manager::pass_manager): Adjust.
3708 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
3710         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
3711         * passes.c (pass_manager::register_dump_files_1): Remove dead code
3712         dealing with properties.
3713         (pass_manager::register_dump_files): Adjust.
3715 2014-03-20  Mark Wielaard  <mjw@redhat.com>
3717         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
3718         then represent the bound as normal constant value.
3720 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
3722         PR target/60847
3723         Forward port from 4.8 branch
3724         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
3726         * config/i386/bmiintrin.h (_blsi_u32): New.
3727         (_blsi_u64): Ditto.
3728         (_blsr_u32): Ditto.
3729         (_blsr_u64): Ditto.
3730         (_blsmsk_u32): Ditto.
3731         (_blsmsk_u64): Ditto.
3732         (_tzcnt_u32): Ditto.
3733         (_tzcnt_u64): Ditto.
3735 2014-04-17  Kito Cheng  <kito@0xlab.org>
3737         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
3739 2014-04-17  Richard Biener  <rguenther@suse.de>
3741         PR middle-end/60849
3742         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
3743         boolean results for comparisons.
3745 2014-04-17  Richard Biener  <rguenther@suse.de>
3747         PR tree-optimization/60836
3748         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
3749         initial PHI args to be gimple values.
3751 2014-04-17   Richard Biener  <rguenther@suse.de>
3753         PR tree-optimization/60841
3754         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
3755         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
3756         of stmts to SLP build.
3757         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
3758         (vect_analyze_slp): Likewise.
3759         (vect_analyze_slp_instance): Likewise.
3760         (vect_build_slp_tree): Limit overall SLP tree growth.
3761         * tree-vectorizer.h (vect_analyze_data_refs,
3762         vect_analyze_slp): Adjust prototypes.
3764 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
3766         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
3767         Silvermont.
3769 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
3771         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
3772         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
3773         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
3774         for TARGET_SLOW_PSHUFB
3776 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
3778         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
3779         * config/i386/i386.c (intel_cost): Ditto.
3781 2014-04-17  Joey Ye  <joey.ye@arm.com>
3783         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
3785 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
3787         * opts.c (common_handle_option): Disable -fipa-reference coorectly
3788         with -fuse-profile.
3790 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
3792         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
3793         (type_all_derivations_known_p): New predicate.
3794         (type_all_ctors_visible_p): New predicate.
3795         (type_possibly_instantiated_p): New predicate.
3796         (get_odr_type): Compute all_derivations_known.
3797         (dump_odr_type): Dump the flag.
3798         (maybe_record_type): Cleanup.
3799         (record_target_from_binfo): Add bases_to_consider array;
3800         record bases for types w/o instances and skip CXX destructor.
3801         (possible_polymorphic_call_targets_1): Add bases_to_consider
3802         and consider_construction parameters; check if type may have instance.
3803         (get_polymorphic_call_info): Set maybe_in_construction to true
3804         when we know nothing.
3805         (record_targets_from_bases): Skip CXX destructors; they are
3806         never called for types in construction.
3807         (possible_polymorphic_call_targets): Do not record target when
3808         type may not have instance.
3810 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
3812         PR ipa/60854
3813         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
3814         external aliases alive, too.
3816 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
3818         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
3819         definition.
3821 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
3823         * final.c (compute_alignments): Do not apply loop alignment to a block
3824         falling through to the exit.
3826 2014-04-16  Catherine Moore  <clm@codesourcery.com>
3828         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
3829         Adjust constraints for microMIPS store patterns.
3831 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
3833         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
3835 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
3837         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
3838         (append_use): Run at -O0.
3839         (append_vdef): Likewise.
3840         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
3841         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
3843 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
3845         PR tree-optimization/60844
3846         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
3847         (propagate_op_to_single_use, remove_visited_stmt_chain,
3848         linearize_expr, repropagate_negates, reassociate_bb): Use it
3849         instead of gsi_remove.
3851 2014-04-16  Martin Jambor  <mjambor@suse.cz>
3853         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
3854         ipa_transforms_to_apply.
3855         (cgraph_function_versioning): Assert that old_node has empty
3856         ipa_transforms_to_apply.
3857         * trans-mem.c (ipa_tm_create_version): Likewise.
3858         * tree-inline.c (tree_function_versioning): Do not duplicate
3859         ipa_transforms_to_apply.
3861 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3863         PR target/60817
3864         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
3865         x86_64-*-* cases.
3866         Pass necessary as flags on 64-bit Solaris/x86.
3867         Use lowercase relocs for x86_64-*-*.
3868         * configure: Regenerate.
3870 2014-04-15  Jan Hubicka  <jh@suse.cz>
3872         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
3873         (maybe_record_node, likely_target_p): Use it.
3875 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3877         PR target/60839
3878         Revert following patch
3880         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3882         PR target/60735
3883         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
3884         software floating point or no floating point registers, do not
3885         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
3886         in GPRs that occurs after we tested for GPRs that would never be
3887         true.
3889         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
3890         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
3891         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
3892         specifically allow DDmode, since that does not use the SPE SIMD
3893         instructions.
3895 2014-03-21  Mark Wielaard  <mjw@redhat.com>
3897         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
3898         as unsigned or int depending on type and value used.
3900 2014-04-15  Richard Biener  <rguenther@suse.de>
3902         PR rtl-optimization/56965
3903         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
3904         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
3905         ... here.
3906         * alias.c (true_dependence_1): Do not call
3907         nonoverlapping_component_refs_p.
3908         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
3909         nonoverlapping_component_refs_p.
3910         (indirect_refs_may_alias_p): Likewise.
3912 2014-04-15  Teresa Johnson  <tejohnson@google.com>
3914         * cfg.c (dump_bb_info): Fix flags check.
3915         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
3917 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3919         PR rtl-optimization/60663
3920         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
3921         avoid 0 cost.
3923 2014-04-15  Richard Biener  <rguenther@suse.de>
3925         * lto-streamer.h (LTO_major_version): Bump to 4.
3927 2014-04-15  Richard Biener  <rguenther@suse.de>
3929         * common.opt (lto_partition_model): New enum.
3930         (flto-partition=): Merge separate options with a single with argument,
3931         add -flto-partition=one support.
3932         * flag-types.h (enum lto_partition_model): Declare.
3933         * opts.c (finish_options): Remove duplicate -flto-partition=
3934         option check.
3935         * lto-wrapper.c (run_gcc): Adjust.
3937 2014-04-15  Richard Biener  <rguenther@suse.de>
3939         * alias.c (ncr_compar): New function.
3940         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
3942 2014-04-15  Richard Biener  <rguenther@suse.de>
3944         * alias.c (record_component_aliases): Do not walk BINFOs.
3946 2014-04-15  Richard Biener  <rguenther@suse.de>
3948         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3949         Add struct function argument and adjust.
3950         (find_func_aliases_for_call): Likewise.
3951         (find_func_aliases): Likewise.
3952         (find_func_clobbers): Likewise.
3953         (intra_create_variable_infos): Likewise.
3954         (compute_points_to_sets): Likewise.
3955         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
3957 2014-04-15  Richard Biener  <rguenther@suse.de>
3959         * tree.c (iterative_hash_expr): Use enum tree_code_class
3960         to store TREE_CODE_CLASS.
3961         (tree_block): Likewise.
3962         (tree_set_block): Likewise.
3963         * tree.h (fold_build_pointer_plus_loc): Use
3964         convert_to_ptrofftype_loc.
3966 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
3968         PR plugins/59335
3969         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
3970         added in 4.9.
3972 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3974         * cfgloop.h (struct loop): Move force_vectorize down.
3975         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
3976         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
3977         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
3978         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
3979         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
3980         * tree-core.h (enum annot_expr_kind): Add new kind values.
3981         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
3982         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
3983         kinds.
3984         * tree.def (ANNOTATE_EXPR): Tweak comment.
3986 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
3988         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
3989         cxa_pure_virtual).
3991 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
3993         * tree.h (TYPE_IDENTIFIER): Declare.
3994         * tree.c (subrange_type_for_debug_p): Use it.
3995         * godump.c (go_format_type): Likewise.
3996         * dwarf2out.c (is_cxx_auto, modified_type_die,
3997         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
3998         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
4000 2014-04-14  Jan Hubicka   <hubicka@ucw.cz>
4002         PR lto/60820
4003         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4005 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
4007         * config/i386/i386.c (examine_argument): Return bool.  Return true if
4008         parameter should be passed in memory.
4009         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
4010         (construct_container): Update calls to examine_argument.
4011         (function_arg_advance_64): Ditto.
4012         (return_in_memory_32): Merge with ix86_return_in_memory.
4013         (return_in_memory_64): Ditto.
4014         (return_in_memory_ms_64): Ditto.
4016 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
4018         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
4019         * coverage.c (coverage_compute_profile_id): Handle externally visible
4020         symbols.
4022 2014-04-14  Martin Jambor  <mjambor@suse.cz>
4024         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
4025         DECL_DISREGARD_INLINE_LIMITS functions.
4027 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4029         PR target/60827
4030         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
4032 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4034         PR target/60827
4035         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
4036         optimize_insn_for_speed_p instead of
4037         optimize_function_for_speed_p.
4039 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
4041         * doc/invoke.texi (free): Document AArch64.
4043 2014-04-14  Richard Biener  <rguenther@suse.de>
4045         PR tree-optimization/60042
4046         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
4047         (insert_into_preds_of_block): Do not prevent PHI insertion
4048         for REFERENCE exprs here ...
4049         (eliminate_dom_walker::before_dom_children): ... but prevent
4050         their use here under similar conditions when applied to the
4051         IL after PRE optimizations.
4053 2014-04-14  Richard Biener  <rguenther@suse.de>
4055         * passes.def: Move early points-to after early SRA.
4057 2014-04-14  Richard Biener  <rguenther@suse.de>
4059         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
4060         check for which sign-changes we allow when forwarding
4061         a converted value into a switch.
4063 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
4065         * stor-layout.c (place_field): Finalize non-constant offset for the
4066         field, if any.
4068 2014-04-14  Richard Biener  <rguenther@suse.de>
4070         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
4071         as argument.
4072         (expand_switch_using_bit_tests_p): Likewise.
4073         (process_switch): Compute and pass on speed_p based on the
4074         switch stmt.
4075         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
4076         optimize_bb_for_speed_p.
4078 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
4080         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
4081         * function.h (struct function): Rename has_force_vect_loops into
4082         has_force_vectorize_loops.
4083         * lto-streamer-in.c (input_cfg): Adjust for renaming.
4084         (input_struct_function_base): Likewise.
4085         * lto-streamer-out.c (output_cfg): Likewise.
4086         (output_struct_function_base): Likewise.
4087         * omp-low.c (expand_omp_simd): Likewise.
4088         * tree-cfg.c (move_sese_region_to_fn): Likewise.
4089         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
4090         (version_loop_for_if_conversion): Likewise.
4091         (tree_if_conversion): Likewise.
4092         (main_tree_if_conversion): Likewise.
4093         (gate_tree_if_conversion): Likewise.
4094         * tree-inline.c (copy_loops): Likewise.
4095         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
4096         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
4097         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4098         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
4099         * tree-vectorizer.c (vectorize_loops): Likewise.
4100         * tree-vectorizer.h (unlimited_cost_model): Likewise.
4102 2014-04-14  Richard Biener  <rguenther@suse.de>
4104         PR lto/60720
4105         * lto-streamer-out.c (wrap_refs): New function.
4106         (lto_output): Wrap symbol references in global initializes in
4107         type-preserving MEM_REFs.
4109 2014-04-14  Christian Bruel  <christian.bruel@st.com>
4111         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
4113 2014-04-14  Christian Bruel  <christian.bruel@st.com>
4115         * config/sh/sh.md (setmemqi): New expand pattern.
4116         * config/sh/sh.h (CLEAR_RATIO): Define.
4117         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
4118         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
4120 2014-04-14  Richard Biener  <rguenther@suse.de>
4122         PR middle-end/55022
4123         * fold-const.c (negate_expr_p): Don't negate directional rounding
4124         division.
4125         (fold_negate_expr): Likewise.
4127 2014-04-14  Richard Biener  <rguenther@suse.de>
4129         PR tree-optimization/59817
4130         PR tree-optimization/60453
4131         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4132         recursion to catch all CHRECs in the scalar evolution and restrict
4133         the predicate for the remains appropriately.
4135 2014-04-12  Catherine Moore  <clm@codesourcery.com>
4137         * config/mips/constraints.md: Add new register constraint "kb".
4138         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
4139         (*movhi_internal): Likewise.
4140         (*movqi_internal): Likewise.
4141         * config/mips/mips.h (M16_STORE_REGS): New register class.
4142         (REG_CLASS_NAMES): Add M16_STORE_REGS.
4143         (REG_CLASS_CONTENTS): Likewise.
4144         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
4146 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4148         PR c/60194
4149         * doc/invoke.texi (-Wformat-signedness): Document it.
4150         (Wformat=2): Mention that this enables -Wformat-signedness.
4152 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4154         * common/config/epiphany/epiphany-common.c
4155         (epiphany_option_optimization_table): Enable section anchors by
4156         default at -O1 or higher.
4157         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
4158         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
4159         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
4160         carries no extra cost.
4161         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
4162         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
4163         * config/epiphany/predicates.md (memclob_operand): New predicate.
4164         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
4165         Use memclob_operand predicate and X constraint for operand 3.
4167 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4169         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
4170         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
4171         its operands.
4173 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4175         PR rtl-optimization/60651
4176         * mode-switching.c (optimize_mode_switching): Make sure to emit
4177         sets of a lower numbered entity before sets of a higher numbered
4178         entity to a mode of the same or lower priority.
4179         When creating a seginfo for a basic block that starts with a code
4180         label, move the insertion point past the code label.
4181         (new_seginfo): Document and enforce requirement that
4182         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
4183         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
4184         * doc/tm.texi: Regenerate.
4186 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4188         PR target/60811
4189         * config/arc/arc.c (arc_save_restore): Fix assert typo.
4191 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
4193         * BASE-VER: Set to 4.10.0.
4195 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4197         PR other/59055
4198         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4199         * doc/gcc.texi (Service): Update description in the @menu
4200         * doc/invoke.texi (Option Summary): Remove misplaced and
4201         duplicated @menu.
4203 2014-04-11  Steve Ellcey  <sellcey@mips.com>
4204             Jakub Jelinek  <jakub@redhat.com>
4206         PR middle-end/60556
4207         * expr.c (convert_move): Use emit_store_flag_force instead of
4208         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
4209         argument to it.
4211 2014-04-11  Richard Biener  <rguenther@suse.de>
4213         PR middle-end/60797
4214         * varasm.c (assemble_alias): Avoid endless error reporting
4215         recursion by setting TREE_ASM_WRITTEN.
4217 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4219         * config/s390/s390.md: Add a splitter for NOT rtx.
4221 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
4223         PR rtl-optimization/60663
4224         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4226 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
4227             Jakub Jelinek  <jakub@redhat.com>
4229         PR lto/60567
4230         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4231         flag from decl_node to node.
4233 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4235         PR debug/60655
4236         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4237         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4238         ameliorating the cases where it can be.
4240 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
4242         Revert
4243         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4245         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4246         (loadsync_<mode>): Change mode.
4247         (load_quadpti, store_quadpti): New.
4248         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4249         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4250         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4252 2014-04-09  Cong Hou  <congh@google.com>
4254         PR testsuite/60773
4255         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4256         documentation.
4258 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4260         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4261         instead of vnor to exploit possible fusion opportunity in the
4262         future.
4263         (altivec_expand_vec_perm_const_le): Likewise.
4265 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4267         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4268         (loadsync_<mode>): Change mode.
4269         (load_quadpti, store_quadpti): New.
4270         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4271         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4273 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
4275         PR target/60763
4276         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4277         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4278         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4280 2014-04-08  Richard Biener  <rguenther@suse.de>
4282         PR middle-end/60706
4283         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4284         a 64bit widest int print double-int similar to on HWI64 hosts.
4286 2014-04-08  Richard Biener  <rguenther@suse.de>
4288         PR tree-optimization/60785
4289         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4290         default defs properly.
4292 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
4294         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4295         (Weffc++): Likewise.
4297 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
4299         * ipa-devirt.c (maybe_record_node): When node is not recorded,
4300         set completep to false rather than true.
4302 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
4304         PR target/60504
4305         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4306         ARM_TARGET2_DWARF_FORMAT.
4308 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
4310         PR target/60609
4311         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
4312         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
4313         ADDR_DIFF_VEC.
4315 2014-04-07  Richard Biener  <rguenther@suse.de>
4317         PR tree-optimization/60766
4318         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
4319         (may_eliminate_iv): Convert cand_value_at result to desired type.
4321 2014-04-07  Jason Merrill  <jason@redhat.com>
4323         PR c++/60731
4324         * common.opt (-fno-gnu-unique): Add.
4325         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
4327 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4329         * haifa-sched.c: Fix outdated function reference and minor
4330         grammar errors in introductory comment.
4332 2014-04-07  Richard Biener  <rguenther@suse.de>
4334         PR middle-end/60750
4335         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
4336         for noreturn calls.
4337         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
4339 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
4341         PR debug/55794
4342         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
4343         size accounting for thunks.
4344         (pa_asm_output_mi_thunk): Use final_start_function() and
4345         final_end_function() to output function start and end directives.
4347 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4349         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
4350         device specific ISA/ feature information. Remove short_sp and
4351         errata_skip ds.  Add avr_device_specific_features enum to have device
4352         specific info.
4353         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
4354         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
4355         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
4356         updated device specific info.
4357         * config/avr/avr-mcus.def: Merge device specific details to
4358         dev_attribute field.
4359         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
4360         errata_skip.
4361         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
4362         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
4363         assembler if RMW isa supported by current device.
4364         * config/avr/genmultilib.awk: Update as device info structure changed.
4365         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
4367 2014-04-04  Cong Hou  <congh@google.com>
4369         PR tree-optimization/60656
4370         * tree-vect-stmts.c (supportable_widening_operation):
4371         Fix a bug that elements in a vector with vect_used_by_reduction
4372         property are incorrectly reordered when the operation on it is not
4373         consistant with the one in reduction operation.
4375 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
4377         PR rtl-optimization/60155
4378         * gcse.c (record_set_data): New function.
4379         (single_set_gcse): New function.
4380         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
4381         (hoist_code): Likewise.
4382         (get_pressure_class_and_nregs): Likewise.
4384 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
4386         * explow.c (probe_stack_range): Emit a final optimization blockage.
4388 2014-04-04  Anthony Green  <green@moxielogic.com>
4390         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
4391         typos.
4393 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
4395         PR ipa/59626
4396         * lto-cgraph.c (input_overwrite_node): Check that partitioning
4397         flags are set only during streaming.
4398         * ipa.c (process_references, walk_polymorphic_call_targets,
4399         symtab_remove_unreachable_nodes): Drop bodies of always inline
4400         after early inlining.
4401         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
4403 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
4404         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4406         PR debug/60655
4407         * dwarf2out.c (const_ok_for_output_1): Reject expressions
4408         containing a NOT.
4410 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4412         PR bootstrap/60743
4413         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
4414         duration.
4415         (cortex_a53_fdivd): Likewise.
4417 2014-04-04  Martin Jambor  <mjambor@suse.cz>
4419         PR ipa/60640
4420         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
4421         Adjust all callers.
4422         * cgraph.c (clone_of_p): Also return true if thunks match.
4423         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
4424         cgraph_function_or_thunk_node and an obsolete comment.
4425         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
4426         file.
4427         (build_function_decl_skip_args): Likewise.
4428         (set_new_clone_decl_and_node_flags): New function.
4429         (duplicate_thunk_for_node): Likewise.
4430         (redirect_edge_duplicating_thunks): Likewise.
4431         (cgraph_clone_node): New parameter args_to_skip, pass it to
4432         redirect_edge_duplicating_thunks which is called instead of
4433         cgraph_redirect_edge_callee.
4434         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
4435         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
4437 2014-04-04  Jeff Law  <law@redhat.com>
4439         PR target/60657
4440         * config/arm/predicates.md (const_int_I_operand): New predicate.
4441         (const_int_M_operand): Similarly.
4442         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
4443         const_int_operand.
4444         (insv_t2, extv_reg, extzv_t2): Likewise.
4445         (load_multiple_with_writeback): Similarly for const_int_I_operand.
4446         (pop_multiple_with_writeback_and_return): Likewise.
4447         (vfp_pop_multiple_with_writeback): Likewise
4449 2014-04-04  Richard Biener  <rguenther@suse.de>
4451         PR ipa/60746
4452         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
4453         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
4454         non-GIMPLE_LABELs.
4455         * gimplify.h (gimple_add_tmp_var_fn): Declare.
4456         * gimplify.c (gimple_add_tmp_var_fn): New function.
4457         * gimple-expr.h (create_tmp_reg_fn): Declare.
4458         * gimple-expr.c (create_tmp_reg_fn): New function.
4459         * gimple-low.c (record_vars_into): Don't change cfun.
4460         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
4461         code generation without cfun.
4463 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
4465         PR bootstrap/60719
4466         * Makefile.in (install-driver): Fix shell scripting.
4468 2014-04-03  Cong Hou  <congh@google.com>
4470         PR tree-optimization/60505
4471         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
4472         threshold of number of iterations below which no vectorization
4473         will be done.
4474         * tree-vect-loop.c (new_loop_vec_info):
4475         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
4476         * tree-vect-loop.c (vect_analyze_loop_operations):
4477         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
4478         * tree-vect-loop.c (vect_transform_loop):
4479         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
4480         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
4481         of iterations of the loop and see if we should build the epilogue.
4483 2014-04-03  Richard Biener  <rguenther@suse.de>
4485         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
4486         (streamer_tree_cache_create): Adjust.
4487         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
4488         to allow optional nodes array.
4489         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
4490         (streamer_tree_cache_append): Likewise.
4491         (streamer_tree_cache_create): Create nodes array optionally
4492         as specified by parameter.
4493         * lto-streamer-out.c (create_output_block): Avoid maintaining
4494         the node array in the writer cache.
4495         (DFS_write_tree): Remove assertion.
4496         (produce_asm_for_decls): Free the out decl state hash table early.
4497         * lto-streamer-in.c (lto_data_in_create): Adjust for
4498         streamer_tree_cache_create prototype change.
4500 2014-04-03  Richard Biener  <rguenther@suse.de>
4502         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
4503         set TREE_CHAIN to NULL_TREE.
4505 2014-04-03  Richard Biener  <rguenther@suse.de>
4507         PR tree-optimization/60740
4508         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
4509         over all GIMPLE_COND operands.
4511 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
4513         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
4514         (Weffc++): Remove Scott's numbering, merge lists and reference
4515         Wnon-virtual-dtor.
4517 2014-04-03  Nick Clifton  <nickc@redhat.com>
4519         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
4520         properly.
4522 2014-04-03  Martin Jambor  <mjambor@suse.cz>
4524         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
4525         mention gcc_unreachable before failing.
4526         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
4527         removed symbols.
4529 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
4531         PR ipa/60659
4532         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
4533         inconsistent code and instead mark the context inconsistent.
4534         (possible_polymorphic_call_targets): For inconsistent contexts
4535         return empty complete list.
4537 2014-04-02  Anthony Green  <green@moxielogic.com>
4539         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
4540         (extendqisi2, extendhisi2): Define.
4541         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
4542         (WCHAR_TYPE): Change to unsigned int.
4544 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4546         PR tree-optimization/60733
4547         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
4548         insertion point for PHI candidates to be the end of the feeding
4549         block for the PHI argument.
4551 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
4553         PR rtl-optimization/60650
4554         * lra-constraints.c (process_alt_operands): Decrease reject for
4555         earlyclobber matching.
4557 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4559         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
4561 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4563         * config/spu/spu.c (pad_bb): Do not crash when the last
4564         insn is CODE_FOR_blockage.
4566 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4568         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
4569         lies outside the target mode.
4571 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4573         PR target/60735
4574         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4575         software floating point or no floating point registers, do not
4576         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
4577         in GPRs that occurs after we tested for GPRs that would never be
4578         true.
4580         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4581         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4582         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
4583         specifically allow DDmode, since that does not use the SPE SIMD
4584         instructions.
4586 2014-04-02  Richard Biener  <rguenther@suse.de>
4588         PR middle-end/60729
4589         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
4590         MODE_INTs.  Properly use negv_optab.
4591         (expand_abs): Likewise.
4593 2014-04-02  Richard Biener  <rguenther@suse.de>
4595         PR bootstrap/60719
4596         * Makefile.in (install-driver): Guard extra installs with special
4597         names properly.
4599 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
4601         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4602         Document vec_vgbbd.
4604 2014-04-01  Richard Henderson  <rth@redhat.com>
4606         PR target/60704
4607         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
4608         alternative enabled before register allocation.
4610 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
4612         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
4613         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
4614         typo.
4615         (nios2_large_got_address): Remove unneeded 'sym' parameter.
4616         (nios2_got_address): Update nios2_large_got_address call site.
4617         (nios2_delegitimize_address): New function.
4618         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
4619         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4620         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
4622 2014-04-01  Martin Husemann  <martin@duskware.de>
4624         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
4625         for -mabi=32.
4627 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
4629         PR rtl-optimization/60604
4630         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
4631         check from register_operand.
4632         (register_operand): Redefine in terms of general_operand.
4633         (nonmemory_operand): Use register_operand for the non-constant cases.
4635 2014-04-01  Richard Biener  <rguenther@suse.de>
4637         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
4639 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4641         * doc/invoke.texi (mapp-regs): Clarify.
4643 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
4645         * config/i386/avx512fintrin.h (__v32hi): Define type.
4646         (__v64qi): Likewise.
4647         (_mm512_set1_epi8): Define.
4648         (_mm512_set1_epi16): Define.
4649         (_mm512_set4_epi32): Define.
4650         (_mm512_set4_epi64): Define.
4651         (_mm512_set4_pd): Define.
4652         (_mm512_set4_ps): Define.
4653         (_mm512_setr4_epi64): Define.
4654         (_mm512_setr4_epi32): Define.
4655         (_mm512_setr4_pd): Define.
4656         (_mm512_setr4_ps): Define.
4657         (_mm512_setzero_epi32): Define.
4659 2014-03-31  Martin Jambor  <mjambor@suse.cz>
4661         PR middle-end/60647
4662         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
4663         callsite_arguments_match_p.  Updated all callers.  Also check types of
4664         corresponding formal parameters and actual arguments.
4665         (not_all_callers_have_enough_arguments_p) Renamed to
4666         some_callers_have_mismatched_arguments_p.
4668 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
4670         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
4672 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
4674         PR target/60034
4675         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
4676         section anchor.
4678 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
4680         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
4681         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
4682         Split out
4683         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
4684         Use FMAMODE_NOVF512 mode iterator.
4685         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
4686         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
4687         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
4688         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
4689         Split out
4690         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
4691         Use VF_128_256 mode iterator.
4692         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
4693         Ditto.
4695 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
4697         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
4698         static chain if needed.
4700 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
4702         PR target/60697
4703         * lra-constraints.c (index_part_to_reg): New.
4704         (process_address): Use it.
4706 2014-03-27  Jeff Law  <law@redhat.com>
4707             Jakub Jelinek  <jakub@redhat.com>
4709         PR target/60648
4710         * expr.c (do_tablejump): Use simplify_gen_binary rather than
4711         gen_rtx_{PLUS,MULT} to build up the address expression.
4713         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
4714         creating non-canonical RTL.
4716 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
4718         PR ipa/60243
4719         * ipa-inline.c (want_inline_small_function_p): Short circuit large
4720         functions; reorganize to make cheap checks first.
4721         (inline_small_functions): Do not estimate growth when dumping;
4722         it is expensive.
4723         * ipa-inline.h (inline_summary): Add min_size.
4724         (growth_likely_positive): New function.
4725         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
4726         (set_cond_stmt_execution_predicate): Cleanup.
4727         (estimate_edge_size_and_time): Compute min_size.
4728         (estimate_calls_size_and_time): Likewise.
4729         (estimate_node_size_and_time): Likewise.
4730         (inline_update_overall_summary): Update min_size.
4731         (do_estimate_edge_time): Likewise.
4732         (do_estimate_edge_size): Update.
4733         (do_estimate_edge_hints): Update.
4734         (growth_likely_positive): New function.
4736 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
4738         PR target/60693
4739         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
4740         also if addr has VOIDmode.
4742 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4744         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
4745         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
4746         Declare extern.
4747         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
4748         instructions as well as AdvancedSIMD loads.
4750 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4752         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
4753         Use crypto_aese type.
4754         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
4755         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
4756         crypto_aese, crypto_aesmc.  Move to types.md.
4757         * config/arm/types.md (crypto_aes): Split into crypto_aese,
4758         crypto_aesmc.
4759         * config/arm/iterators.md (crypto_type): Likewise.
4761 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
4763         * cgraph.c: Include expr.h and tree-dfa.h.
4764         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
4765         remove LHS.
4767 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
4769         PR target/60675
4770         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
4771         regs from checking multi-reg pseudos.
4773 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4775         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
4777 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4779         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
4780         if it would clobber the stack pointer, even temporarily.
4782 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
4784         * mode-switching.c: Make small adjustments to the top comment.
4786 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
4788         * config/rs6000/constraints.md (wD constraint): New constraint to
4789         match the constant integer to get the top DImode/DFmode out of a
4790         vector in a VSX register.
4792         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
4793         match the constant integer to get the top DImode/DFmode out of a
4794         vector in a VSX register.
4796         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
4797         for ISA 2.07.
4799         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4800         vbpermq builtins.
4802         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4803         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
4805         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
4806         Optimize vec_extract of 64-bit values, where the value being
4807         extracted is in the top word, where we can use scalar
4808         instructions.  Add direct move and store support.  Combine the big
4809         endian/little endian vector select load support into a single insn.
4810         (vsx_extract_<mode>_internal1): Likewise.
4811         (vsx_extract_<mode>_internal2): Likewise.
4812         (vsx_extract_<mode>_load): Likewise.
4813         (vsx_extract_<mode>_store): Likewise.
4814         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
4815         combined into vsx_extract_<mode>_load.
4816         (vsx_extract_<mode>_one_le): Likewise.
4818         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
4819         define the top 64-bit vector element.
4821         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
4822         constraint.
4824         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4825         Document vec_vbpermq builtin.
4827         PR target/60672
4828         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
4829         enable use of xxsldwi and xxpermdi builtin functions.
4830         (vec_xxpermdi): Likewise.
4832         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4833         Document use of vec_xxsldwi and vec_xxpermdi builtins.
4835 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
4837         PR rtl-optimization/60650
4838         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
4839         first_p.  Use it.
4840         (find_spills_for): New.
4841         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
4842         Spill all pseudos on the second iteration.
4844 2014-03-27  Marek Polacek  <polacek@redhat.com>
4846         PR c/50347
4847         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
4848         types.
4850 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4852         * config/s390/s390.c (s390_can_use_return_insn): Check for
4853         call-saved FPRs on 31 bit.
4855 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
4857         PR middle-end/60682
4858         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
4859         if they need regimplification, just drop them instead of
4860         calling gimple_regimplify_operands on them.
4862 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4864         PR target/60580
4865         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
4866         (aarch64_frame_pointer_required): Adjust logic.
4867         (aarch64_can_eliminate): Adjust logic.
4868         (aarch64_override_options_after_change): Adjust logic.
4870 2014-03-27  Dehao Chen  <dehao@google.com>
4872         * ipa-inline.c (early_inliner): Update node's inline info.
4874 2014-03-26  Dehao Chen  <dehao@google.com>
4876         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
4877         compiler inserted conditional jumps for NAN float check.
4879 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
4881         * ubsan.h (ubsan_create_data): Change second argument's type
4882         to const location_t *.
4883         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
4884         _("<unknown>").
4885         (ubsan_create_data): Change second argument to const location_t *PLOC.
4886         Create Loc field whenever PLOC is non-NULL.
4887         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
4888         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
4889         callers.
4891         PR other/59545
4892         * real.c (real_to_integer2): Change type of low to UHWI.
4894 2014-03-26  Tobias Burnus  <burnus@net-b.de>
4896         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
4897         (CILK_SELF_SPECS): New define.
4898         (driver_self_specs): Use it.
4900 2014-03-26  Richard Biener  <rguenther@suse.de>
4902         * tree-pretty-print.c (percent_K_format): Implement special
4903         case for LTO and its stripped down BLOCK tree.
4905 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
4907         PR sanitizer/60636
4908         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
4910         * tree-vrp.c (simplify_internal_call_using_ranges): If only
4911         one range is range_int_cst_p, but not both, at least optimize
4912         addition/subtraction of 0 and multiplication by 0 or 1.
4913         * gimple-fold.c (gimple_fold_call): Fold
4914         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
4915         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
4916         INTEGER_CSTs, try to fold at least x * 0 and y - y.
4918 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4920         PR rtl-optimization/60452
4921         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
4922         <case REG>: Return 1 for invalid offsets from the frame pointer.
4924 2014-03-26  Marek Polacek  <polacek@redhat.com>
4926         PR c/37428
4927         * doc/extend.texi (C Extensions): Mention variable-length arrays in
4928         a structure/union.
4930 2014-03-26  Marek Polacek  <polacek@redhat.com>
4932         PR c/39525
4933         * doc/extend.texi (Designated Inits): Describe what happens to omitted
4934         field members.
4936 2014-03-26  Marek Polacek  <polacek@redhat.com>
4938         PR other/59545
4939         * ira-color.c (update_conflict_hard_regno_costs): Perform the
4940         multiplication in unsigned type.
4942 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
4944         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
4946 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
4948         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
4950 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
4952         PR ipa/60315
4953         * cif-code.def (UNREACHABLE) New code.
4954         * ipa-inline.c (inline_small_functions): Skip edges to
4955         __builtlin_unreachable.
4956         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
4957         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
4958         predicate to __bulitin_unreachable.
4959         (set_cond_stmt_execution_predicate): Fix issue when
4960         invert_tree_comparison returns ERROR_MARK.
4961         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
4962         propagate to inline clones.
4963         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
4964         to unreachable.
4965         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
4966         * cgraphclones.c (cgraph_clone_node): If call destination is already
4967         ureachable, do not redirect it back.
4968         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
4969         unreachable.
4971 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
4973         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
4974         Do not modify inline clones.
4976 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
4978         * config/i386/i386.md (general_sext_operand): New mode attr.
4979         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
4980         don't generate (sign_extend (const_int)).
4981         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
4982         operands[2].  Use We constraint instead of <i> and
4983         <general_sext_operand> predicate instead of <general_operand>.
4984         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
4985         * config/i386/constraints.md (We): New constraint.
4986         * config/i386/predicates.md (x86_64_sext_operand,
4987         sext_operand): New predicates.
4989 2014-03-25  Martin Jambor  <mjambor@suse.cz>
4991         PR ipa/60600
4992         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
4993         inconsistent devirtualizations to __builtin_unreachable.
4995 2014-03-25  Marek Polacek  <polacek@redhat.com>
4997         PR c/35449
4998         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
5000 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
5002         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
5003         order of elements for big-endian.
5005 2014-03-25  Richard Biener  <rguenther@suse.de>
5007         PR middle-end/60635
5008         * gimplify-me.c (gimple_regimplify_operands): Update the
5009         re-gimplifed stmt.
5011 2014-03-25  Martin Jambor  <mjambor@suse.cz>
5013         PR ipa/59176
5014         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
5015         (lto_output_varpool_node): Likewise.
5016         (input_overwrite_node): Likewise.
5017         (input_varpool_node): Likewise.
5019 2014-03-25  Richard Biener  <rguenther@suse.de>
5021         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
5022         (run_gcc): Likewise.
5024 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
5026         * combine.c (simplify_compare_const): Add MODE argument.
5027         Handle mode_width 0 as very large mode_width.
5028         (try_combine, simplify_comparison): Adjust callers.
5030         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
5031         type to avoid signed integer overflow.
5032         * explow.c (plus_constant): Likewise.
5034 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5036         * doc/generic.texi: Correct typos.
5038 2014-03-24  Tobias Burnus  <burnus@net-b.de>
5040         * doc/invoke.texi (-flto): Expand section about
5041         using static libraries with LTO.
5043 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5045         PR rtl-optimization/60501
5046         * optabs.def (addptr3_optab): New optab.
5047         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5048         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5049         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5051         * lra.c (emit_add3_insn): Use the addptr pattern if available.
5053         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5055 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
5057         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5058         _mm512_set1_pd.
5060         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5061         (_mm256_undefined_ps): Define.
5062         (_mm256_undefined_pd): Define.
5063         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5064         (_mm_undefined_pd): Define.
5065         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5066         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5067         (_mm512_undefined_ps): Define.
5068         (_mm512_undefined_pd): Define.
5069         Use _mm*_undefined_*.
5070         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5072 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
5074         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5075         (lshr_simd): DI mode added.
5076         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5077         (aarch64_ushr_simddi): Likewise.
5078         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5079         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5080         (vshrd_n_u64): Likewise.
5082 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5084         * Makefile.in (s-macro_list): Depend on cc1.
5086 2014-03-23  Teresa Johnson  <tejohnson@google.com>
5088         * ipa-utils.c (ipa_print_order): Use specified dump file.
5090 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
5092         PR rtl-optimization/60601
5093         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5095         * gcc.c (eval_spec_function): Initialize save_growing_value.
5097 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
5099         PR sanitizer/60613
5100         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5101         code == MINUS_EXPR, never swap op0 with op1.
5103         * toplev.c (init_local_tick): Avoid signed integer multiplication
5104         overflow.
5105         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5106         shift by first operand's bitsize.
5108 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
5110         PR target/60610
5111         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5112         redefine to 1 or 0.
5113         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5114         TARGET_ISA_64BIT_P(x).
5116 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5118         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5119         pattern for vector nor instead of subtract from splat(-1).
5120         (altivec_expand_vec_perm_const_le): Likewise.
5122 2014-03-21  Richard Henderson  <rth@twiddle.net>
5124         PR target/60598
5125         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5126         related insns after epilogue_completed.
5128 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5130         PR ipa/59176
5131         * cgraph.h (symtab_node): New flag body_removed.
5132         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5133         when removing bodies.
5134         * symtab.c (dump_symtab_base): Dump body_removed flag.
5135         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5136         had their bodies removed.
5138 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5140         PR ipa/60419
5141         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5142         in the border.
5144 2014-03-21  Richard Biener  <rguenther@suse.de>
5146         PR tree-optimization/60577
5147         * tree-core.h (struct tree_base): Document nothrow_flag use
5148         in VAR_DECL_NONALIASED.
5149         * tree.h (VAR_DECL_NONALIASED): New.
5150         (may_be_aliased): Adjust.
5151         * coverage.c (build_var): Set VAR_DECL_NONALIASED.
5153 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5155         * expr.c (expand_expr_real_1): Remove outdated comment.
5157 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
5159         PR middle-end/60597
5160         * ira.c (adjust_cleared_regs): Call copy_rtx on
5161         *reg_equiv[REGNO (loc)].src_p before passing it to
5162         simplify_replace_fn_rtx.
5164         PR target/60568
5165         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5166         into CONST, put pic register as first operand of PLUS.  Use
5167         gen_const_mem for both 32-bit and 64-bit PIC got loads.
5169 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5171         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5173 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5175         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5176         around for store forwarding issue in the FPU on the UT699.
5177         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5178         loads and operations if -mfix-ut699 is specified.
5179         (divtf3_hq): Tweak attribute.
5180         (sqrttf2_hq): Likewise.
5182 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5184         * calls.c (store_one_arg): Remove incorrect const qualification on the
5185         type of the temporary.
5186         * cfgexpand.c (expand_return): Likewise.
5187         * expr.c (expand_constructor): Likewise.
5188         (expand_expr_real_1): Likewise.
5190 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5192         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5193         of parts.
5195 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5197         PR target/60039
5198         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5200 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
5202         * config/arm/aarch-common-protos.h
5203         (alu_cost_table): Fix spelling of "extend".
5204         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5206 2014-03-19  Richard Biener  <rguenther@suse.de>
5208         PR middle-end/60553
5209         * tree-core.h (tree_type_common): Re-order pointer members
5210         to reduce recursion depth during GC walks.
5212 2014-03-19  Marek Polacek  <polacek@redhat.com>
5214         PR sanitizer/60569
5215         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5216         before accessing it.
5218 2014-03-19  Richard Biener  <rguenther@suse.de>
5220         PR lto/59543
5221         * lto-streamer-in.c (input_function): In WPA stage do not drop
5222         debug stmts.
5224 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
5226         PR tree-optimization/60559
5227         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5228         with build_zero_cst assignment.
5230 2014-03-18  Kai Tietz  <ktietz@redhat.com>
5232         PR rtl-optimization/56356
5233         * sdbout.c (sdbout_parms): Verify that parms'
5234         incoming argument is valid.
5235         (sdbout_reg_parms): Likewise.
5237 2014-03-18  Richard Henderson  <rth@redhat.com>
5239         PR target/60562
5240         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5241         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
5242         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5244 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
5246         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5247         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5248         Italicize plugin event names in description.  Explain that
5249         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
5250         Remind that no GCC functions should be called after PLUGIN_FINISH.
5251         Explain what pragmas with expansion are.
5253 2014-03-18  Martin Liska  <mliska@suse.cz>
5255         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5256         gimple call statement is update.
5257         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5258         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5260 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5262         PR sanitizer/60557
5263         * ubsan.c (ubsan_instrument_unreachable): Call
5264         initialize_sanitizer_builtins.
5265         (ubsan_pass): Likewise.
5267         PR sanitizer/60535
5268         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5269         varpool_finalize_decl instead of rest_of_decl_compilation.
5271 2014-03-18  Richard Biener  <rguenther@suse.de>
5273         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5274         by using bitmap_and_compl instead of bitmap_and_compl_into.
5275         (df_rd_transfer_function): Likewise.
5277 2014-03-18  Richard Biener  <rguenther@suse.de>
5279         * doc/lto.texi (fresolution): Fix typo.
5281 2014-03-18  Richard Biener  <rguenther@suse.de>
5283         * doc/invoke.texi (flto): Update for changes in 4.9.
5285 2014-03-18  Richard Biener  <rguenther@suse.de>
5287         * doc/loop.texi: Remove section on the removed lambda framework.
5288         Update loop docs with recent changes in preserving loop structure.
5290 2014-03-18  Richard Biener  <rguenther@suse.de>
5292         * doc/lto.texi (-fresolution): Document.
5294 2014-03-18  Richard Biener  <rguenther@suse.de>
5296         * doc/contrib.texi: Adjust my name.
5298 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5300         PR ipa/58721
5301         * internal-fn.c: Include diagnostic-core.h.
5302         (expand_BUILTIN_EXPECT): New function.
5303         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5304         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5305         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5306         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5307         IFN_BUILTIN_EXPECT.
5308         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5309         Revert 3 argument __builtin_expect code.
5310         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
5311         * gimple-fold.c (gimple_fold_call): Likewise.
5312         * tree.h (fold_builtin_expect): New prototype.
5313         * builtins.c (build_builtin_expect_predicate): Add predictor
5314         argument, if non-NULL, create 3 argument __builtin_expect.
5315         (fold_builtin_expect): No longer static.  Add ARG2 argument,
5316         pass it through to build_builtin_expect_predicate.
5317         (fold_builtin_2): Adjust caller.
5318         (fold_builtin_3): Handle BUILT_IN_EXPECT.
5319         * internal-fn.def (BUILTIN_EXPECT): New.
5321 2014-03-18  Tobias Burnus  <burnus@net-b.de>
5323         PR ipa/58721
5324         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
5325         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
5326         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
5328 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
5330         PR ipa/58721
5331         * predict.c (combine_predictions_for_bb): Fix up formatting.
5332         (expr_expected_value_1, expr_expected_value): Add predictor argument,
5333         fill what it points to if non-NULL.
5334         (tree_predict_by_opcode): Adjust caller, use the predictor.
5335         * predict.def (PRED_COMPARE_AND_SWAP): Add.
5337 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
5339         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5340         proper constant for the store mode.
5342 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
5344         * symtab.c (change_decl_assembler_name): Fix transparent alias
5345         chain construction.
5347 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
5349         * config/aarch64/aarch64.c: Correct the comments about the
5350         aarch64 stack layout.
5352 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
5354         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
5355         check for GF_OMP_FOR_KIND_FOR.
5357 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5359         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
5360         ymm and zmm register names.
5362 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
5364         PR target/60516
5365         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
5366         note creation for the 2010-08-31 changes.
5368 2014-03-17  Marek Polacek  <polacek@redhat.com>
5370         PR middle-end/60534
5371         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
5372         as -fno-tree-loop-vectorize.
5373         (expand_omp_simd): Likewise.
5375 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5377         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5378         (eligible_for_call_delay): New prototype.
5379         * config/sparc/sparc.c (tls_call_delay): Rename into...
5380         (eligible_for_call_delay): ...this.  Return false if the instruction
5381         cannot be put in the delay slot of a branch.
5382         (eligible_for_restore_insn): Simplify.
5383         (eligible_for_return_delay): Return false if the instruction cannot be
5384         put in the delay slot of a branch and simplify.
5385         (eligible_for_sibcall_delay): Return false if the instruction cannot be
5386         put in the delay slot of a branch.
5387         * config/sparc/sparc.md (fix_ut699): New attribute.
5388         (tls_call_delay): Delete.
5389         (in_call_delay): Reimplement.
5390         (eligible_for_sibcall_delay): Rename into...
5391         (in_sibcall_delay): ...this.
5392         (eligible_for_return_delay): Rename into...
5393         (in_return_delay): ...this.
5394         (in_branch_delay): Reimplement.
5395         (in_uncond_branch_delay): Delete.
5396         (in_annul_branch_delay): Delete.
5398 2014-03-14  Richard Henderson  <rth@redhat.com>
5400         PR target/60525
5401         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
5402         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
5403         (*floathi<X87MODEF>2_i387_with_temp): Remove.
5404         (floathi splitters): Remove.
5405         (float<SWI48x>xf2): New pattern.
5406         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
5407         code that tried to handle DImode for 32-bit, but which was excluded
5408         by the pattern's condition.  Drop allocation of stack temporary.
5409         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
5410         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
5411         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
5412         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
5413         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
5414         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
5415         (*float<SWI48><MODEF>2_sse_interunit): Remove.
5416         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
5417         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
5418         (*float<SWI48x><X87MODEF>2_i387): Remove.
5419         (all float _with_temp splitters): Remove.
5420         (*float<SWI48x><MODEF>2_i387): New pattern.
5421         (*float<SWI48><MODEF>2_sse): New pattern.
5422         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
5423         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
5425 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
5426             Marek Polacek  <polacek@redhat.com>
5428         PR middle-end/60484
5429         * common.opt (dump_base_name_prefixed): New Variable.
5430         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
5431         if x_dump_base_name_prefixed is already set, set it at the end.
5433 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
5435         PR rtl-optimization/60508
5436         * lra-constraints.c (get_reload_reg): Add new parameter
5437         in_subreg_p.
5438         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
5439         Pass the new parameter values.
5441 2014-03-14  Richard Biener  <rguenther@suse.de>
5443         * common.opt: Revert unintented changes from r205065.
5444         * opts.c: Likewise.
5446 2014-03-14  Richard Biener  <rguenther@suse.de>
5448         PR middle-end/60518
5449         * cfghooks.c (split_block): Properly adjust all loops the
5450         block was a latch of.
5452 2014-03-14  Martin Jambor  <mjambor@suse.cz>
5454         PR lto/60461
5455         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
5456         and simplify it.
5458 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
5460         PR target/59396
5461         * config/avr/avr.c (avr_set_current_function): Pass function name
5462         through default_strip_name_encoding before sanity checking instead
5463         of skipping the first char of the assembler name.
5465 2014-03-13  Richard Henderson  <rth@redhat.com>
5467         PR debug/60438
5468         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
5469         (ix86_force_to_memory, ix86_free_from_memory): Remove.
5470         * config/i386/i386-protos.h: Likewise.
5471         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
5472         in the expander instead of a splitter.
5473         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
5474         any possibility of requiring a memory.
5475         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
5476         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
5477         (fp branch splitters): Update for ix86_split_fp_branch.
5478         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
5479         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
5480         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
5481         (*fop_<MODEF>_2_i387): Remove f/r alternative.
5482         (*fop_<MODEF>_3_i387): Likewise.
5483         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
5484         (splitters for the fop_* register patterns): Remove.
5485         (fscalexf4_i387): Rename from *fscalexf4_i387.
5486         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
5488 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
5490         PR tree-optimization/59779
5491         * tree-dfa.c (get_ref_base_and_extent): Use double_int
5492         type for bitsize and maxsize instead of HOST_WIDE_INT.
5494 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
5496         PR rtl-optimization/57320
5497         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
5498         the CFG after thread_prologue_and_epilogue_insns.
5500 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
5502         PR rtl-optimization/57189
5503         * lra-constraints.c (process_alt_operands): Disfavor spilling
5504         vector pseudos.
5506 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
5508         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
5510 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
5512         PR tree-optimization/59025
5513         PR middle-end/60418
5514         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
5515         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
5517 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
5519         PR target/60486
5520         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
5521         calls of avr_out_plus_1.
5523 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
5525         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
5526         BB's single pred and update the father loop's latch info later.
5528 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5530         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
5531         (VEC_M): Likewise.
5532         (VEC_N): Likewise.
5533         (VEC_R): Likewise.
5534         (VEC_base): Likewise.
5535         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
5536         registers, we need to swap double words in little endian mode.
5538         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
5539         to be a container mode for 128-bit integer operations added in ISA
5540         2.07.  Unlike TImode and PTImode, the preferred register set is
5541         the Altivec/VMX registers for the 128-bit operations.
5543         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
5544         declarations.
5545         (rs6000_split_128bit_ok_p): Likewise.
5547         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
5548         macros for creating ISA 2.07 normal and overloaded builtin
5549         functions with 3 arguments.
5550         (BU_P8V_OVERLOAD_3): Likewise.
5551         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
5552         for use as overloaded functions.
5553         (VPERM_1TI_UNS): Likewise.
5554         (VSEL_1TI): Likewise.
5555         (VSEL_1TI_UNS): Likewise.
5556         (ST_INTERNAL_1ti): Likewise.
5557         (LD_INTERNAL_1ti): Likewise.
5558         (XXSEL_1TI): Likewise.
5559         (XXSEL_1TI_UNS): Likewise.
5560         (VPERM_1TI): Likewise.
5561         (VPERM_1TI_UNS): Likewise.
5562         (XXPERMDI_1TI): Likewise.
5563         (SET_1TI): Likewise.
5564         (LXVD2X_V1TI): Likewise.
5565         (STXVD2X_V1TI): Likewise.
5566         (VEC_INIT_V1TI): Likewise.
5567         (VEC_SET_V1TI): Likewise.
5568         (VEC_EXT_V1TI): Likewise.
5569         (EQV_V1TI): Likewise.
5570         (NAND_V1TI): Likewise.
5571         (ORC_V1TI): Likewise.
5572         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
5573         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
5574         overloaded builtin.
5575         (VADDUQM): Likewise.
5576         (VSUBCUQ): Likewise.
5577         (VADDEUQM): Likewise.
5578         (VADDECUQ): Likewise.
5579         (VSUBEUQM): Likewise.
5580         (VSUBECUQ): Likewise.
5582         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
5583         __int128_t and __uint128_t types.
5584         (__uint128_type): Likewise.
5585         (altivec_categorize_keyword): Add support for vector __int128_t,
5586         vector __uint128_t, vector __int128, and vector unsigned __int128
5587         as a container type for TImode operations that need to be done in
5588         VSX/Altivec registers.
5589         (rs6000_macro_to_expand): Likewise.
5590         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
5591         to support 128-bit integer instructions vaddcuq, vadduqm,
5592         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
5593         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
5595         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
5596         for V1TImode, and set up preferences to use VSX/Altivec registers.
5597         Setup VSX reload handlers.
5598         (rs6000_debug_reg_global): Likewise.
5599         (rs6000_init_hard_regno_mode_ok): Likewise.
5600         (rs6000_preferred_simd_mode): Likewise.
5601         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
5602         (easy_altivec_constant): Likewise.
5603         (output_vec_const_move): Likewise.
5604         (rs6000_expand_vector_set): Convert V1TImode set and extract to
5605         simple move.
5606         (rs6000_expand_vector_extract): Likewise.
5607         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
5608         addressing.
5609         (rs6000_const_vec): Add support for V1TImode.
5610         (rs6000_emit_le_vsx_load): Swap double words when loading or
5611         storing TImode/V1TImode.
5612         (rs6000_emit_le_vsx_store): Likewise.
5613         (rs6000_emit_le_vsx_move): Likewise.
5614         (rs6000_emit_move): Add support for V1TImode.
5615         (altivec_expand_ld_builtin): Likewise.
5616         (altivec_expand_st_builtin): Likewise.
5617         (altivec_expand_vec_init_builtin): Likewise.
5618         (altivec_expand_builtin): Likewise.
5619         (rs6000_init_builtins): Add support for V1TImode type.  Add
5620         support for ISA 2.07 128-bit integer builtins.  Define type names
5621         for the VSX/Altivec vector types.
5622         (altivec_init_builtins): Add support for overloaded vector
5623         functions with V1TImode type.
5624         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
5625         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
5626         external function.
5627         (rs6000_split_128bit_ok_p): Likewise.
5628         (rs6000_handle_altivec_attribute): Create V1TImode from vector
5629         __int128_t and vector __uint128_t.
5631         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
5632         and mode attributes.
5633         (VSX_M): Likewise.
5634         (VSX_M2): Likewise.
5635         (VSm): Likewise.
5636         (VSs): Likewise.
5637         (VSr): Likewise.
5638         (VSv): Likewise.
5639         (VS_scalar): Likewise.
5640         (VS_double): Likewise.
5641         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
5643         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
5644         we support the ISA 2.07 128-bit integer arithmetic instructions.
5645         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
5646         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
5647         and TImode types for use with the builtin functions.
5648         (V1TI_type_node): Likewise.
5649         (unsigned_V1TI_type_node): Likewise.
5650         (intTI_type_internal_node): Likewise.
5651         (uintTI_type_internal_node): Likewise.
5653         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
5654         128-bit builtin functions.
5655         (UNSPEC_VADDEUQM): Likewise.
5656         (UNSPEC_VADDECUQ): Likewise.
5657         (UNSPEC_VSUBCUQ): Likewise.
5658         (UNSPEC_VSUBEUQM): Likewise.
5659         (UNSPEC_VSUBECUQ): Likewise.
5660         (VM): Add V1TImode to vector mode iterators.
5661         (VM2): Likewise.
5662         (VI_unit): Likewise.
5663         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
5664         (altivec_vaddcuq): Likewise.
5665         (altivec_vsubuqm): Likewise.
5666         (altivec_vsubcuq): Likewise.
5667         (altivec_vaddeuqm): Likewise.
5668         (altivec_vaddecuq): Likewise.
5669         (altivec_vsubeuqm): Likewise.
5670         (altivec_vsubecuq): Likewise.
5672         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
5673         mode iterators.
5674         (BOOL_128): Likewise.
5675         (BOOL_REGS_OUTPUT): Likewise.
5676         (BOOL_REGS_OP1): Likewise.
5677         (BOOL_REGS_OP2): Likewise.
5678         (BOOL_REGS_UNARY): Likewise.
5679         (BOOL_REGS_AND_CR0): Likewise.
5681         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
5682         128-bit integer builtin support.
5683         (vec_vadduqm): Likewise.
5684         (vec_vaddecuq): Likewise.
5685         (vec_vaddeuqm): Likewise.
5686         (vec_vsubecuq): Likewise.
5687         (vec_vsubeuqm): Likewise.
5688         (vec_vsubcuq): Likewise.
5689         (vec_vsubuqm): Likewise.
5691         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5692         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
5693         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
5694         128-bit integer add/subtract to ISA 2.07.
5696 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
5698         * config/arc/arc.c (arc_predicate_delay_insns):
5699         Fix third argument passed to conditionalize_nonjump.
5701 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
5703         * config/aarch64/aarch64-builtins.c
5704         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
5705         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
5706         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
5707         instead of __builtin_lfloor.
5708         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
5710 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
5712         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
5713         (tree_ssa_ifcombine_bb_1): New function.
5714         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
5715         is an empty forwarder block to then_bb or vice versa and then_bb
5716         and else_bb are effectively swapped.
5718 2014-03-12  Christian Bruel  <christian.bruel@st.com>
5720         PR target/60264
5721         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
5722         REG_CFA_DEF_CFA note.
5723         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
5724         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
5726 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5728         PR tree-optimization/60454
5729         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
5731 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5733         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
5734         Do not define target_cpu_default2 to generic.
5735         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
5736         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
5737         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
5739 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
5740             Marc Glisse  <marc.glisse@inria.fr>
5742         PR tree-optimization/60502
5743         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
5744         instead of build_low_bits_mask.
5746 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
5748         PR middle-end/60482
5749         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
5750         if there are multiple uses, but op doesn't live on E edge.
5751         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
5752         clobber stmts before __builtin_unreachable.
5754 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
5756         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
5757         hard_frame_pointer_rtx.
5758         * cse.c (cse_insn): Remove volatile check.
5759         * cselib.c (cselib_process_insn): Likewise.
5760         * dse.c (scan_insn): Likewise.
5762 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
5764         * config/arc/arc.c (conditionalize_nonjump): New function,
5765         broken out of ...
5766         (arc_ifcvt): ... this.
5767         (arc_predicate_delay_insns): Use it.
5769 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
5771         * config/arc/predicates.md (extend_operand): During/after reload,
5772         allow const_int_operand.
5773         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
5774         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
5775         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
5776         to "i".
5777         (umulsi3_highpart_i): Likewise.
5779 2014-03-11  Richard Biener  <rguenther@suse.de>
5781         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
5782         Add asserts to guard possible wrong-code bugs.
5784 2014-03-11  Richard Biener  <rguenther@suse.de>
5786         PR tree-optimization/60429
5787         PR tree-optimization/60485
5788         * tree-ssa-structalias.c (set_union_with_increment): Properly
5789         take into account all fields that overlap the shifted vars.
5790         (do_sd_constraint): Likewise.
5791         (do_ds_constraint): Likewise.
5792         (get_constraint_for_ptr_offset): Likewise.
5794 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
5796         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
5797         (nios2_compute_frame_layout):
5798         Add calculation of cfun->machine->fp_save_offset.
5799         (nios2_expand_prologue): Correct setting of frame pointer register
5800         in prologue.
5801         (nios2_expand_epilogue): Update recovery of stack pointer from
5802         frame pointer accordingly.
5803         (nios2_initial_elimination_offset): Update calculation of offset
5804         for eliminating to HARD_FRAME_POINTER_REGNUM.
5806 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
5808         PR ipa/60457
5809         * ipa.c (symtab_remove_unreachable_nodes): Don't call
5810         cgraph_get_create_node on VAR_DECLs.
5812 2014-03-10  Richard Biener  <rguenther@suse.de>
5814         PR middle-end/60474
5815         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
5817 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
5819         * config/vms/vms.opt (vms_float_format): New variable.
5821 2014-03-08  Tobias Burnus  <burnus@net-b.de>
5823         * doc/invoke.texi (-fcilkplus): Update implementation status.
5825 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
5826             Richard Biener  <rguenther@suse.de>
5828         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
5829         consistently accross all TUs.
5830         (run_gcc): Enable -fshort-double automatically at link at link-time
5831         and disallow override.
5833 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
5835         PR target/58271
5836         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
5837         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
5838         if they can't be used.
5840 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5842         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
5843         for Solaris 11/x86 ld.
5844         * configure: Regenerate.
5846 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5848         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
5849         (LIB_TLS_SPEC): Save as ld_tls_libs.
5850         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
5851         (HAVE_AS_IX86_TLSLDM): New test.
5852         * configure, config.in: Regenerate.
5853         * config/i386/i386.c (legitimize_tls_address): Fall back to
5854         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
5855         cannot support TLS_MODEL_LOCAL_DYNAMIC.
5856         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
5857         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
5859 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
5861         * common.opt (fira-loop-pressure): Mark as optimization.
5863 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
5865         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
5866         an OpenMP mappable type.
5868 2014-03-06  Matthias Klose  <doko@ubuntu.com>
5870         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
5871         MULTILIB_OSDIRNAMES is not defined.
5873 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
5874             Meador Inge  <meadori@codesourcery.com>
5876         PR target/58595
5877         * config/arm/arm.c (arm_tls_symbol_p): Remove.
5878         (arm_legitimize_address): Call legitimize_tls_address for any
5879         arm_tls_referenced_p expression, handle constant addend.  Call it
5880         before testing for !TARGET_ARM.
5881         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
5883 2014-03-06  Richard Biener  <rguenther@suse.de>
5885         PR middle-end/60445
5886         PR lto/60424
5887         PR lto/60427
5888         Revert
5889         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
5891         * tree-streamer.c (record_common_node): Assert we don't record
5892         nodes with type double.
5893         (preload_common_node): Skip type double, complex double and double
5894         pointer since it is now frontend dependent due to fshort-double option.
5896 2014-03-06  Richard Biener  <rguenther@suse.de>
5898         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
5899         or -fno-lto is specified and the linker has full plugin support.
5900         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
5901         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
5902         * lto-wrapper.c (merge_and_complain): Merge compile-time
5903         optimization levels.
5904         (run_gcc): And pass it through to the link options.
5906 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
5908         PR debug/60381
5909         Revert:
5910         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
5911         PR debug/59992
5912         * cselib.c (remove_useless_values): Skip to avoid quadratic
5913         behavior if the condition moved from...
5914         (cselib_process_insn): ... here holds.
5916 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
5918         PR plugins/59335
5919         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
5920         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
5922         PR plugins/59335
5923         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
5924         (TM_H): Add x86-tune.def.
5926 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5928         * config/aarch64/aarch64.c (generic_tunings):
5929         Use cortexa57_extra_costs.
5931 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
5933         PR lto/60404
5934         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
5935         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
5936         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
5937         cost for in_lto_p.
5939 2014-03-04  Heiher  <r@hev.cc>
5941         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
5942         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
5944 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
5946         * config/i386/predicates.md (const2356_operand): Change to ...
5947         (const2367_operand): ... this.
5948         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
5949         const2367_operand.
5950         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
5951         (*avx512pf_scatterpf<mode>sf): Ditto.
5952         (avx512pf_scatterpf<mode>df): Ditto.
5953         (*avx512pf_scatterpf<mode>df_mask): Ditto.
5954         (*avx512pf_scatterpf<mode>df): Ditto.
5955         * config/i386/i386.c (ix86_expand_builtin): Update
5956         incorrect hint operand error message.
5958 2014-03-04  Richard Biener  <rguenther@suse.de>
5960         * lto-section-in.c (lto_get_section_data): Fix const cast.
5962 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
5964         * tree-streamer.c (record_common_node): Assert we don't record
5965         nodes with type double.
5966         (preload_common_node): Skip type double, complex double and double
5967         pointer since it is now frontend dependent due to fshort-double option.
5969 2014-03-04  Richard Biener  <rguenther@suse.de>
5971         PR lto/60405
5972         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
5973         (lto_input_toplevel_asms): Likewise.
5974         * lto-section-in.c (lto_get_section_data): Instead do it here
5975         for every section.
5977 2014-03-04  Richard Biener  <rguenther@suse.de>
5979         PR tree-optimization/60382
5980         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
5981         dead PHIs a reduction.
5983 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
5985         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
5986         hint value.
5987         (_mm_prefetch): Move out of GCC target("sse") pragma.
5988         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
5989         GCC target("prfchw") pragma.
5990         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
5991         for locality <= 2.
5992         * config/i386/i386.c (ix86_option_override_internal): Enable
5993         -mprfchw with -mprefetchwt1.
5995 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5997         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
5998         Mark as varying.
6000 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6002         * opts.h (CL_PCH_IGNORE): Define.
6003         * targhooks.c (option_affects_pch_p):
6004         Return false for options that have CL_PCH_IGNORE set.
6005         * opt-functions.awk: Process PchIgnore.
6006         * doc/options.texi: Document PchIgnore.
6008         * config/arc/arc.opt (misize): Add PchIgnore property.
6010 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6012         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
6013         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
6014         constraint on constants to permit them being loaded into
6015         GENERAL_REGS or BASE_REGS.
6017 2014-03-03  Nick Clifton  <nickc@redhat.com>
6019         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
6020         anti-cacnonical alternatives.
6021         (negandhi3_real): New pattern.
6022         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
6024 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6026         * config/avr/avr-mcus.def: Remove atxmega16x1.
6027         * config/avr/avr-tables.opt: Regenerate.
6028         * config/avr/t-multilib: Regenerate.
6029         * doc/avr-mmcu.texi: Regenerate.
6031 2014-03-03  Tobias Grosser  <tobias@grosser.es>
6032             Mircea Namolaru  <mircea.namolaru@inria.fr>
6034         PR tree-optimization/58028
6035         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6036         scalar dimensions.
6038 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6040         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6041         not handled by recognizers.
6043 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
6045         PR middle-end/60175
6046         * function.c (expand_function_end): Don't emit
6047         clobber_return_register sequence if clobber_after is a BARRIER.
6048         * cfgexpand.c (construct_exit_block): Append instructions before
6049         return_label to prev_bb.
6051 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6053         * config/rs6000/constraints.md: Document reserved use of "wc".
6055 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6057         PR ipa/60150
6058         * ipa.c (function_and_variable_visibility): When dissolving comdat
6059         group, also set all symbols to local.
6061 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6063         PR ipa/60306
6065         Revert:
6066         2013-12-14   Jan Hubicka  <jh@suse.cz>
6067         PR middle-end/58477
6068         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6070 2014-03-02  Jon Beniston  <jon@beniston.com>
6072         PR bootstrap/48230
6073         PR bootstrap/50927
6074         PR bootstrap/52466
6075         PR target/46898
6076         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6077           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6078         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6079         (simple_return, *simple_return): New patterns
6080         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6081         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6083 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
6085         * dwarf2out.c (gen_subprogram_die): Tidy.
6087 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
6089         PR target/60071
6090         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6091         (*mov_t_msb_neg_negc): ... this new insn.
6093 2014-02-28  Jason Merrill  <jason@redhat.com>
6095         PR c++/58678
6096         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6097         function.
6099 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
6101         PR c++/60314
6102         * dwarf2out.c (decltype_auto_die): New static.
6103         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6104         (gen_type_die_with_usage): Handle 'decltype(auto)'.
6105         (is_cxx_auto): Likewise.
6107 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
6109         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6110         we are not using general regs only.
6112 2014-02-28  Richard Biener  <rguenther@suse.de>
6114         PR target/60280
6115         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6116         previous fix and only allow to remove trivial pre-headers
6117         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6118         (remove_forwarder_block): Properly update the latch of a loop.
6120 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6122         PR debug/59992
6123         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6124         (cselib_preserved_hash_table): New.
6125         (preserve_constants_and_equivs): Move preserved vals to it.
6126         (cselib_find_slot): Look it up first.
6127         (cselib_init): Initialize it.
6128         (cselib_finish): Release it.
6129         (dump_cselib_table): Dump it.
6131 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6133         PR debug/59992
6134         * cselib.c (remove_useless_values): Skip to avoid quadratic
6135         behavior if the condition moved from...
6136         (cselib_process_insn): ... here holds.
6138 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6140         PR debug/57232
6141         * var-tracking.c (vt_initialize): Apply the same condition to
6142         preserve the CFA base value.
6144 2014-02-28  Joey Ye  <joey.ye@arm.com>
6146         PR target/PR60169
6147         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6148         if reload in progress or completed.
6150 2014-02-28  Tobias Burnus  <burnus@net-b.de>
6152         PR middle-end/60147
6153         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6154         NAMELIST_DECL.
6156 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6158         * doc/tm.texi.in (Condition Code Status): Update documention for
6159         relative locations of cc0-setter and cc0-user.
6161 2014-02-27  Jeff Law  <law@redhat.com>
6163         PR rtl-optimization/52714
6164         * combine.c (try_combine): When splitting an unrecognized PARALLEL
6165         into two independent simple sets, if I3 is a jump, ensure the
6166         pattern we place into I3 is a (set (pc) ...).
6168 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
6169             Jeff Law  <law@redhat.com>
6171         PR rtl-optimization/49847
6172         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6173         are in different blocks.
6174         * doc/tm.texi (Condition Code Status): Update documention for
6175         relative locations of cc0-setter and cc0-user.
6177 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
6179         PR target/59222
6180         * lra.c (lra_emit_add): Check SUBREG too.
6182 2014-02-27  Andreas Schwab  <schwab@suse.de>
6184         * config/m68k/m68k.c (m68k_option_override): Disable
6185         -flive-range-shrinkage for classic m68k.
6186         (m68k_override_options_after_change): Likewise.
6188 2014-02-27  Marek Polacek  <polacek@redhat.com>
6190         PR middle-end/59223
6191         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6192         -Wmaybe-uninitialized.
6194 2014-02-27  Alan Modra  <amodra@gmail.com>
6196         PR target/57936
6197         * reload1.c (emit_input_reload_insns): When reload_override_in,
6198         set old to rl->in_reg when rl->in_reg is a subreg.
6200 2014-02-26  Richard Biener  <rguenther@suse.de>
6202         PR bootstrap/60343
6203         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6205 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6207         * common/config/i386/predicates.md (const1256_operand): Remove.
6208         (const2356_operand): New.
6209         (const_1_to_2_operand): Remove.
6210         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6211         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6212         (*avx512pf_gatherpf<mode>sf): Ditto.
6213         (avx512pf_gatherpf<mode>df): Ditto.
6214         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6215         (*avx512pf_gatherpf<mode>df): Ditto.
6216         (avx512pf_scatterpf<mode>sf): Ditto.
6217         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6218         (*avx512pf_scatterpf<mode>sf): Ditto.
6219         (avx512pf_scatterpf<mode>df): Ditto.
6220         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6221         (*avx512pf_scatterpf<mode>df): Ditto.
6222         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6224 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
6226         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6227         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6228         (_mm512_mask_testn_epi64_mask): Move to ...
6229         * config/i386/avx512cdintrin.h: Here.
6230         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6231         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6232         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6233         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6234         TARGET_AVX512F from TARGET_AVX512CD.
6236 2014-02-26  Richard Biener  <rguenther@suse.de>
6238         PR ipa/60327
6239         * ipa.c (walk_polymorphic_call_targets): Properly guard
6240         call to inline_update_overall_summary.
6242 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
6244         PR target/60280
6245         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6246         and latches only if requested.  Fix latch if it is removed.
6247         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6248         LOOPS_HAVE_PREHEADERS.
6250 2014-02-25  Andrew Pinski  <apinski@cavium.com>
6252         * builtins.c (expand_builtin_thread_pointer): Create a new target
6253         when the target is NULL.
6255 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
6257         PR rtl-optimization/60317
6258         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6259         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6260         * lra-assigns.c: Include params.h.
6261         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6262         other reload pseudos considerations.
6264 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6266         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6267         to use canonical form for nor<mode>3.
6269 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6271         PR target/55426
6272         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6273         conversions.
6275 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6277         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6278         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6279         (ix86_handle_option): Handle OPT_mprefetchwt1.
6280         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6281         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6282         PREFETCHWT1 CPUID.
6283         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6284         OPTION_MASK_ISA_PREFETCHWT1.
6285         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6286         (PTA_PREFETCHWT1): New.
6287         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6288         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6289         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6290         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6291         (*prefetch_avx512pf_<mode>_: Change into ...
6292         (*prefetch_prefetchwt1_<mode>: This.
6293         * config/i386/i386.opt (mprefetchwt1): New.
6294         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6295         (_mm_prefetch): Handle intent to write.
6296         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6298 2014-02-25  Richard Biener  <rguenther@suse.de>
6300         PR middle-end/60291
6301         * emit-rtl.c (mem_attrs_htab): Remove.
6302         (mem_attrs_htab_hash): Likewise.
6303         (mem_attrs_htab_eq): Likewise.
6304         (set_mem_attrs): Always allocate new mem-attrs when something changed.
6305         (init_emit_once): Do not allocate mem_attrs_htab.
6307 2014-02-25  Richard Biener  <rguenther@suse.de>
6309         PR lto/60319
6310         * lto-opts.c (lto_write_options): Output non-explicit conservative
6311         -fwrapv, -fno-trapv and -fno-strict-overflow.
6312         * lto-wrapper.c (merge_and_complain): Handle merging those options.
6313         (run_gcc): And pass them through.
6315 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
6317         * sel-sched.c (calculate_new_fences): New parameter ptime.
6318         Calculate it as a maximum over all fence cycles.
6319         (sel_sched_region_2): Adjust the call to calculate_new_fences.
6320         Print the final schedule timing when sched_verbose.
6322 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
6324         PR rtl-optimization/60292
6325         * sel-sched.c (fill_vec_av_set): Do not reset target availability
6326         bit fot the fence instruction.
6328 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
6330         * calls.h: Fix typo in comment.
6332 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
6334         * config/pa/pa.c (pa_output_move_double): Don't valididate when
6335         adjusting offsetable addresses.
6337 2014-02-24  Guozhi Wei  <carrot@google.com>
6339         * sparseset.h (sparseset_pop): Fix the wrong index.
6341 2014-02-24  Walter Lee  <walt@tilera.com>
6343         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
6344         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
6345         triplet.
6346         * common/config/tilegx/tilegx-common.c
6347         (TARGET_DEFAULT_TARGET_FLAGS): Define.
6348         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
6349         (LINK_SPEC): Ditto.
6350         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
6351         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
6352         (tilegx_gimplify_va_arg_expr): Handle big endian.
6353         (tilegx_expand_unaligned_load): Ditto.
6354         (tilegx_expand_unaligned_store): Ditto.
6355         (TARGET_RETURN_IN_MSB): New.
6356         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
6357         (TARGET_ENDIAN_DEFAULT): New.
6358         (TARGET_BIG_ENDIAN): Handle big endian.
6359         (BYTES_BIG_ENDIAN): Ditto.
6360         (WORDS_BIG_ENDIAN): Ditto.
6361         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
6362         (ENDIAN_SPEC): New.
6363         (EXTRA_SPECS): New.
6364         * config/tilegx/tilegx.md (extv): Handle big endian.
6365         (extzv): Ditto.
6366         (insn_st<n>): Ditto.
6367         (insn_st<n>_add<bitsuffix>): Ditto.
6368         (insn_stnt<n>): Ditto.
6369         (insn_stnt<n>_add<bitsuffix>):Ditto.
6370         (vec_interleave_highv8qi): Handle big endian.
6371         (vec_interleave_highv8qi_be): New.
6372         (vec_interleave_highv8qi_le): New.
6373         (insn_v1int_h): Handle big endian.
6374         (vec_interleave_lowv8qi): Handle big endian.
6375         (vec_interleave_lowv8qi_be): New.
6376         (vec_interleave_lowv8qi_le): New.
6377         (insn_v1int_l): Handle big endian.
6378         (vec_interleave_highv4hi): Handle big endian.
6379         (vec_interleave_highv4hi_be): New.
6380         (vec_interleave_highv4hi_le): New.
6381         (insn_v2int_h): Handle big endian.
6382         (vec_interleave_lowv4hi): Handle big endian.
6383         (vec_interleave_lowv4hi_be): New.
6384         (vec_interleave_lowv4hi_le): New.
6385         (insn_v2int_l): Handle big endian.
6386         (vec_interleave_highv2si): Handle big endian.
6387         (vec_interleave_highv2si_be): New.
6388         (vec_interleave_highv2si_le): New.
6389         (insn_v4int_h): Handle big endian.
6390         (vec_interleave_lowv2si): Handle big endian.
6391         (vec_interleave_lowv2si_be): New.
6392         (vec_interleave_lowv2si_le): New.
6393         (insn_v4int_l): Handle big endian.
6394         * config/tilegx/tilegx.opt (mbig-endian): New option.
6395         (mlittle-endian): New option.
6396         * doc/install.texi: Document tilegxbe-linux.
6397         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
6399 2014-02-24  Martin Jambor  <mjambor@suse.cz>
6401         PR ipa/60266
6402         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
6403         there are no parameter descriptors.
6405 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
6407         PR rtl-optimization/60268
6408         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
6409         initialization to ...
6410         (sched_rgn_init): ... here.
6411         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
6413 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
6415         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
6416         names.
6418 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
6420         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
6421         definition.
6423 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
6425         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
6426         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
6428 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
6430         * config/microblaze/predicates.md: Add cmp_op predicate.
6431         * config/microblaze/microblaze.md: Add branch_compare instruction
6432         which uses cmp_op predicate and emits cmp insn before branch.
6433         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
6434         to microblaze_expand_conditional_branch and consolidate logic.
6435         (microblaze_expand_conditional_branch): emit branch_compare
6436         insn instead of handling cmp op separate from branch insn.
6438 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6440         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
6441         to permit subregs.
6443 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6445         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
6446         define_insn with define_expand and new define_insn
6447         *altivec_lve<VI_char>x_internal.
6448         (altivec_stve<VI_char>x): Replace define_insn with define_expand
6449         and new define_insn *altivec_stve<VI_char>x_internal.
6450         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
6451         prototype.
6452         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
6453         lve*x built-ins.
6454         (altivec_expand_stvex_be): New function.
6456 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
6458         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
6459         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
6460         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
6461         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
6463 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
6465         PR target/60298
6466         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
6467         instead of emit_move_insn.
6469 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6471         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
6472         vspltw with vsldoi.
6473         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
6474         gen_altivec_vsumsws.
6476 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6478         * config/rs6000/altivec.md (altivec_lvxl): Rename as
6479         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
6480         (altivec_lvxl_<mode>): New define_expand incorporating
6481         -maltivec=be semantics where needed.
6482         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
6483         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
6484         semantics where needed.
6485         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
6486         (altivec_stvx_<mode>): New define_expand incorporating
6487         -maltivec=be semantics where needed.
6488         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
6489         VM2 iterator instead of V4SI.
6490         (altivec_stvxl_<mode>): New define_expand incorporating
6491         -maltivec=be semantics where needed.
6492         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
6493         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
6494         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
6495         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
6496         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
6497         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
6498         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
6499         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
6500         ALTIVEC_BUILTIN_STVXL.
6501         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
6502         (altivec_expand_stvx_be): Likewise.
6503         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
6504         (altivec_expand_lvx_be): Likewise.
6505         (altivec_expand_stvx_be): Likewise.
6506         (altivec_expand_builtin): Add cases for
6507         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
6508         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
6509         (altivec_init_builtins): Add definitions for
6510         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
6511         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
6513 2014-02-21  Catherine Moore  <clm@codesourcery.com>
6515         * doc/invoke.texi (mvirt, mno-virt): Document.
6516         * config/mips/mips.opt (mvirt): New option.
6517         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
6519 2014-02-21  Richard Biener  <rguenther@suse.de>
6521         PR tree-optimization/60276
6522         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
6523         (STMT_VINFO_MIN_NEG_DIST): New macro.
6524         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
6525         STMT_VINFO_MIN_NEG_DIST.
6526         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
6527         made for negative dependence distances still hold.
6529 2014-02-21  Richard Biener  <rguenther@suse.de>
6531         PR middle-end/60291
6532         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
6533         DECL_INITIAL for globals not in the current function context.
6535 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
6537         PR tree-optimization/56490
6538         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
6539         * tree-ssa-uninit.c: Include params.h.
6540         (compute_control_dep_chain): Add num_calls argument, return false
6541         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
6542         num_calls to recursive call.
6543         (find_predicates): Change dep_chain into normal array,
6544         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
6545         variable and adjust compute_control_dep_chain caller.
6546         (find_def_preds): Likewise.
6548 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
6550         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
6551         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
6553 2014-02-21  Nick Clifton  <nickc@redhat.com>
6555         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
6556         (pushhi1): Likewise.
6557         (popqi1): Add mode to pre_dec.
6558         (pophi1): Likewise.
6560 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
6562         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
6563         mode for mask of V8SFmode permutation.
6565 2014-02-20  Richard Henderson  <rth@redhat.com>
6567         PR c++/60272
6568         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
6569         a new pseudo for OLDVAL.
6571 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
6573         PR target/57896
6574         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
6575         gen_reg_rtx if d->testing_p.
6576         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
6577         if d->testing_p and we will certainly return true.
6578         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
6579         if d->testing_p.
6581 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
6583         * emit-rtl.c (gen_reg_rtx): Assert that
6584         crtl->emit.regno_pointer_align_length is non-zero.
6586 2014-02-20  Richard Henderson  <rth@redhat.com>
6588         PR c++/60272
6589         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
6590         on failure the store back into EXPECT.
6592 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
6593             Sandra Loosemore  <sandra@codesourcery.com>
6595         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
6596         * config/nios2/nios2.c (nios2_function_profiler): Add
6597         -fPIC (flag_pic == 2) support.
6598         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
6599         (nios2_large_offset_p): New function.
6600         (nios2_unspec_reloc_p): Move up position, update to use
6601         nios2_large_offset_p.
6602         (nios2_unspec_address): Remove function.
6603         (nios2_unspec_offset): New function.
6604         (nios2_large_got_address): New function.
6605         (nios2_got_address): Add large offset support.
6606         (nios2_legitimize_tls_address): Update usage of removed and new
6607         functions.
6608         (nios2_symbol_binds_local_p): New function.
6609         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
6610         (nios2_legitimize_address): Update to use nios2_large_offset_p.
6611         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
6612         (nios2_print_operand): Merge H/L processing, add hiadj/lo
6613         processing for (const (unspec ...)).
6614         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
6616 2014-02-20  Richard Biener  <rguenther@suse.de>
6618         * tree-cfg.c (replace_uses_by): Mark altered BBs before
6619         doing the substitution.
6620         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
6622 2014-02-20  Martin Jambor  <mjambor@suse.cz>
6624         PR ipa/55260
6625         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
6626         info when checking whether lattices are bottom.
6628 2014-02-20  Richard Biener  <rguenther@suse.de>
6630         PR middle-end/60221
6631         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
6632         regions at -O0.
6634 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
6636         PR ipa/58555
6637         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
6638         parameter specifying the scaling.
6639         (inline_call): Update.
6640         (want_inline_recursively): Guard division by zero.
6641         (recursive_inlining): Update.
6642         * ipa-inline.h (clone_inlined_nodes): Update.
6644 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
6646         PR target/60204
6647         * config/i386/i386.c (classify_argument): Pass structures of size
6648         64 bytes or less in register.
6650 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
6651             Kirill Yukhin  <kirill.yukhin@intel.com>
6653         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
6654         (_mm_rcp28_round_ss): Ditto.
6655         (_mm_rsqrt28_round_sd): Ditto.
6656         (_mm_rsqrt28_round_ss): Ditto.
6657         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
6658         (_mm_rcp14_round_ss): Ditto.
6659         (_mm_rsqrt14_round_sd): Ditto.
6660         (_mm_rsqrt14_round_ss): Ditto.
6661         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
6662         the first input operand, get rid of match_dup.
6663         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
6664         attribute to sse.
6665         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
6666         Ditto.
6667         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
6668         operand as the first input operand, set type attribute.
6669         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
6670         Set type attribute.
6671         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
6672         operand as the first input operand, set type attribute.
6674 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6676         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
6677         bit of zero.
6679 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6681         PR target/60207
6682         * config/i386/i386.c (construct_container): Remove TFmode check
6683         for X86_64_INTEGER_CLASS.
6685 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
6687         PR target/59794
6688         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
6689         only when -Wpsabi is enabled.
6691 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
6693          PR target/59799
6694         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
6695         passing arrays in registers are the same as for structs, so remove the
6696         special case for them.
6698 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
6700         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
6701         destination type, extract only the valid bits if the source type is not
6702         integral and has a different mode.
6704 2014-02-19  Richard Biener  <rguenther@suse.de>
6706         PR ipa/60243
6707         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
6708         for all calls.
6710 2014-02-19  Richard Biener  <rguenther@suse.de>
6712         PR ipa/60243
6713         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
6714         (ipa_modify_call_arguments): Emit an argument load explicitely and
6715         preserve virtual SSA form there and for the replacement call.
6716         Do not update SSA form nor free dominance info.
6718 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
6720         * ipa.c (function_and_variable_visibility): Also clear WEAK
6721         flag when disolving COMDAT_GROUP.
6723 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
6725         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
6726         * ipa-prop.c (ipa_set_jf_known_type): Return early when
6727         not devirtualizing.
6728         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
6729         do more sanity checks.
6730         (detect_type_change): Return true when giving up early.
6731         (compute_complex_assign_jump_func): Fix type parameter of
6732         ipa_set_ancestor_jf.
6733         (compute_complex_ancestor_jump_func): Likewise.
6734         (update_jump_functions_after_inlining): Fix updating of
6735         ancestor function.
6736         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
6738 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
6740         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
6741         inline clones when edge disappears.
6743 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6745         PR target/60203
6746         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
6747         Split 64-bit moves into 2 patterns.  Do not allow the use of
6748         direct move for TDmode in little endian, since the decimal value
6749         has little endian bytes within a word, but the 64-bit pieces are
6750         ordered in a big endian fashion, and normal subreg's of TDmode are
6751         not allowed.
6752         (mov<mode>_64bit_dm): Likewise.
6753         (movtd_64bit_nodm): Likewise.
6755 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
6757         PR tree-optimization/60174
6758         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
6759         statement of an SSA_NAME that occurs in an abnormal PHI node.
6761 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
6763         PR sanitizer/60142
6764         * final.c (SEEN_BB): Remove.
6765         (SEEN_NOTE, SEEN_EMITTED): Renumber.
6766         (final_scan_insn): Don't force_source_line on second
6767         NOTE_INSN_BASIC_BLOCK.
6769 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
6771         PR target/60205
6772         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
6773         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
6774         (type_natural_mode): Warn ABI change when %zmm register is not
6775         available for AVX512F vector value passing.
6777 2014-02-18  Kai Tietz  <ktietz@redhat.com>
6779         PR target/60193
6780         * config/i386/i386.c (ix86_expand_prologue): Use value in
6781         rax register as displacement when restoring %r10 or %rax.
6782         Fix wrong offset when restoring both registers.
6784 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
6786         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
6787         assertion with conditional return.
6789 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
6790             Uros Bizjak  <ubizjak@gmail.com>
6792         PR driver/60233
6793         * config/i386/driver-i386.c (host_detect_local_cpu): If
6794         YMM state is not saved by the OS, also clear has_f16c.  Move
6795         CPUID 0x80000001 handling before YMM state saving checking.
6797 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
6799         PR rtl-optimization/58960
6800         * haifa-sched.c (alloc_global_sched_pressure_data): New,
6801         factored out from ...
6802         (sched_init): ... here.
6803         (free_global_sched_pressure_data): New, factored out from ...
6804         (sched_finish): ... here.
6805         * sched-int.h (free_global_sched_pressure_data): Declare.
6806         * sched-rgn.c (nr_regions_initial): New static global.
6807         (haifa_find_rgns): Initialize it.
6808         (schedule_region): Disable sched-pressure for the newly
6809         generated regions.
6811 2014-02-17  Richard Biener  <rguenther@suse.de>
6813         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
6814         release SSA defs of pattern stmts.
6816 2014-02-17  Richard Biener  <rguenther@suse.de>
6818         * tree-inline.c (expand_call_inline): Release the virtual
6819         operand defined by the call we are about to inline.
6821 2014-02-17  Richard Biener  <rguenther@suse.de>
6823         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
6825 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
6826             Ilya Tocar  <ilya.tocar@intel.com>
6828         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
6829         arguments order in builtin.
6830         (_mm512_permutexvar_epi64): Ditto.
6831         (_mm512_mask_permutexvar_epi64): Ditto
6832         (_mm512_maskz_permutexvar_epi32): Ditto
6833         (_mm512_permutexvar_epi32): Ditto
6834         (_mm512_mask_permutexvar_epi32): Ditto
6836 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6838         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
6839         (p8_vmrgow): Likewise.
6841 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6843         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
6844         endian targets.
6846 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6848         PR target/60203
6849         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
6850         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
6851         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
6852         using direct move instructions on ISA 2.07.  Also adjust
6853         instruction length for 64-bit.
6854         (mov<mode>_64bit, TFmode/TDmode): Likewise.
6855         (mov<mode>_32bit, TFmode/TDmode): Likewise.
6857 2014-02-15  Alan Modra  <amodra@gmail.com>
6859         PR target/58675
6860         PR target/57935
6861         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
6862         find_replacement on parts of insn rtl that might be reloaded.
6864 2014-02-15  Richard Biener  <rguenther@suse.de>
6866         PR tree-optimization/60183
6867         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
6868         (tree_ssa_phiprop): Calculate and free post-dominators.
6870 2014-02-14  Jeff Law  <law@redhat.com>
6872         PR rtl-optimization/60131
6873         * ree.c (get_extended_src_reg): New function.
6874         (combine_reaching_defs): Use it rather than assuming location of REG.
6875         (find_and_remove_re): Verify first operand of extension is
6876         a REG before adding the insns to the copy list.
6878 2014-02-14  Roland McGrath  <mcgrathr@google.com>
6880         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
6881         * configure: Regenerated.
6882         * config.in: Regenerated.
6883         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
6884         instead of ASM_SHORT.
6886 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
6887             Richard Earnshaw  <rearnsha@arm.com>
6889         PR rtl-optimization/59535
6890         * lra-constraints.c (process_alt_operands): Encourage alternative
6891         when unassigned pseudo class is superset of the alternative class.
6892         (inherit_reload_reg): Don't inherit when optimizing for code size.
6893         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
6894         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
6895         modes not less than 4 for Thumb1.
6897 2014-02-14  Kyle McMartin  <kyle@redhat.com>
6899         PR pch/60010
6900         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
6902 2014-02-14  Richard Biener  <rguenther@suse.de>
6904         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
6905         (get_frame_arg): Drop the assert with langhook types_compatible_p.
6906         Do not strip INDIRECT_REFs.
6908 2014-02-14  Richard Biener  <rguenther@suse.de>
6910         PR lto/60179
6911         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
6912         DECL_FUNCTION_SPECIFIC_TARGET.
6913         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
6914         * tree-streamer-out.c (pack_ts_target_option): Remove.
6915         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
6916         (write_ts_function_decl_tree_pointers): Do not stream
6917         DECL_FUNCTION_SPECIFIC_TARGET.
6918         * tree-streamer-in.c (unpack_ts_target_option): Remove.
6919         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
6920         (lto_input_ts_function_decl_tree_pointers): Do not stream
6921         DECL_FUNCTION_SPECIFIC_TARGET.
6923 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
6925         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
6926         (get_initial_def_for_induction, vectorizable_induction): Ignore
6927         debug stmts when looking for exit_phi.
6928         (vectorizable_live_operation): Fix up condition.
6930 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6932         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
6933         nreverse() because it changes the content of original tree list.
6935 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6937         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
6938         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
6940 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6942         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
6943         GNU coding standards.
6945 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
6947         PR debug/60152
6948         * dwarf2out.c (gen_subprogram_die): Don't call
6949         add_calling_convention_attribute if subr_die is old_die.
6951 2014-02-13  Sharad Singhai  <singhai@google.com>
6953         * doc/optinfo.texi: Fix order of nodes.
6955 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
6957         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
6958         operands[2], not operands[3].
6960 2014-02-13  Richard Biener  <rguenther@suse.de>
6962         PR bootstrap/59878
6963         * doc/install.texi (ISL): Update recommended version to 0.12.2,
6964         mention the possibility of an in-tree build.
6965         (CLooG): Update recommended version to 0.18.1, mention the
6966         possibility of an in-tree build and clarify that the ISL
6967         bundled with CLooG does not work.
6969 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
6971         PR target/43546
6972         * expr.c (compress_float_constant): If x is a hard register,
6973         extend into a pseudo and then move to x.
6975 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6977         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
6978         caused by bad second argument to warning_at() with -mhotpatch and
6979         nested functions (e.g. with gfortran).
6981 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
6983         * opts.c (option_name): Remove "enabled by default" rider.
6985 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
6987         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
6989 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6990             Uros Bizjak  <ubizjak@gmail.com>
6992         PR target/60151
6993         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
6994         * configure: Regenerated.
6996 2014-02-12  Richard Biener  <rguenther@suse.de>
6998         * vec.c (vec_prefix::calculate_allocation): Move as
6999         inline variant to vec.h.
7000         (vec_prefix::calculate_allocation_1): New out-of-line version.
7001         * vec.h (vec_prefix::calculate_allocation_1): Declare.
7002         (vec_prefix::m_has_auto_buf): Rename to ...
7003         (vec_prefix::m_using_auto_storage): ... this.
7004         (vec_prefix::calculate_allocation): Inline the easy cases
7005         and dispatch to calculate_allocation_1 which doesn't need the
7006         prefix address.
7007         (va_heap::reserve): Use gcc_checking_assert.
7008         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
7009         m_using_auto_storage.
7010         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
7011         member and adjust.
7012         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
7013         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
7014         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
7016 2014-02-12  Richard Biener  <rguenther@suse.de>
7018         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
7019         when we found a dependence.
7021 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
7023         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
7024         common code...
7025         (maybe_fold_stmt): ... into this new function.
7026         * omp-low.c (lower_omp): Update comment.
7028         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
7029         last use.
7031         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
7032         dereference.
7034 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
7036         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
7037         identifiers in comments.
7038         (cortexa53_extra_costs): Likewise.
7039         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7040         (cortexa7_extra_costs): Likewise.
7041         (cortexa12_extra_costs): Likewise.
7042         (cortexa15_extra_costs): Likewise.
7043         (v7m_extra_costs): Likewise.
7045 2014-02-12  Richard Biener  <rguenther@suse.de>
7047         PR middle-end/60092
7048         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7049         of posix_memalign being successful.
7050         (lower_stmt): Restrict lowering of posix_memalign to when
7051         -ftree-bit-ccp is enabled.
7053 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7055         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7056         arg_loc.
7057         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7059 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7061         PR rtl-optimization/60116
7062         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7063         other_insn once the combination has been validated.
7065 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
7067         PR lto/59468
7068         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7069         and wrapper.
7070         * ipa-devirt.c: Include demangle.h
7071         (odr_violation_reported): New static variable.
7072         (add_type_duplicate): Update odr_violations.
7073         (maybe_record_node): Add completep parameter; update it.
7074         (record_target_from_binfo): Add COMPLETEP parameter;
7075         update it as needed.
7076         (possible_polymorphic_call_targets_1): Likewise.
7077         (struct polymorphic_call_target_d): Add nonconstruction_targets;
7078         rename FINAL to COMPLETE.
7079         (record_targets_from_bases): Sanity check we found the binfo;
7080         fix COMPLETEP updating.
7081         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7082         parameter, fix computing of COMPLETEP.
7083         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7084         at LTO time do demangling.
7085         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7086         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7087         parameter.
7088         (gimple_get_virt_method_for_binfo): Likewise.
7089         * gimple-fold.h (gimple_get_virt_method_for_binfo,
7090         gimple_get_virt_method_for_vtable): Update prototypes.
7092 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
7094         PR target/49008
7095         * genautomata.c (add_presence_absence): Fix typo with
7096         {final_}presence_list.
7098 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
7100         PR target/60137
7101         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7102         for VSX/Altivec vectors that land in GPR registers.
7104 2014-02-11  Richard Henderson  <rth@redhat.com>
7105             Jakub Jelinek  <jakub@redhat.com>
7107         PR debug/59776
7108         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7109         around drhs if type conversion to lacc->type is not useless.
7111 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7113         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7114         tuning struct.
7115         (cortex-a57.cortex-a53): Likewise.
7116         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7118 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7120         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7121         arm_restrict_it.
7123 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
7125         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7126         add_options_for_arm_vfp3.
7128 2014-02-11  Jeff Law  <law@redhat.com>
7130         PR middle-end/54041
7131         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7132         object with an undesirable mode.
7134 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7136         PR libgomp/60107
7137         * config/i386/sol2-9.h: New file.
7138         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7139         *-*-solaris2.9*): Use it.
7141 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7143         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7144         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7146 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7148         * config/microblaze/microblaze.c: Extend mcpu version format
7150 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
7152         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7154 2014-02-10  Richard Henderson  <rth@redhat.com>
7156         PR target/59927
7157         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7158         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7159         ms-abi vs -mno-accumulate-outgoing-args.
7160         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7161         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7162         respect to ms-abi.
7164 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7166         PR middle-end/60080
7167         * cfgexpand.c (expand_asm_operands): Attach source location to
7168         ASM_INPUT rtx objects.
7169         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7171 2014-02-10  Nick Clifton  <nickc@redhat.com>
7173         * config/mn10300/mn10300.c (popcount): New function.
7174         (mn10300_expand_prologue): Include saved registers in stack usage
7175         count.
7177 2014-02-10  Jeff Law  <law@redhat.com>
7179         PR middle-end/52306
7180         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7181         when changing the SET_DEST of a prior insn to avoid an input reload.
7183 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7185         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7186         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7187         -mcall-openbsd, or -mcall-linux.
7188         (CC1_ENDIAN_BIG_SPEC): Remove.
7189         (CC1_ENDIAN_LITTLE_SPEC): Remove.
7190         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7191         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7192         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7193         and %cc1_endian_default.
7194         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7196 2014-02-10  Richard Biener  <rguenther@suse.de>
7198         PR tree-optimization/60115
7199         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7200         MEM_REF handling.  Properly verify that the accesses are not
7201         out of the objects bound.
7203 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7205         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7206         coretex to cortex.
7208 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7210         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7211         proper constants and fix formatting.
7212         (possible_polymorphic_call_targets): Fix formatting.
7214 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
7215             Ilya Tocar  <ilya.tocar@intel.com>
7217         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7218         (_mm512_loadu_epi32): Renamed into...
7219         (_mm512_loadu_si512): This.
7220         (_mm512_storeu_epi32): Renamed into...
7221         (_mm512_storeu_si512): This.
7222         (_mm512_maskz_ceil_ps): Removed.
7223         (_mm512_maskz_ceil_pd): Ditto.
7224         (_mm512_maskz_floor_ps): Ditto.
7225         (_mm512_maskz_floor_pd): Ditto.
7226         (_mm512_floor_round_ps): Ditto.
7227         (_mm512_floor_round_pd): Ditto.
7228         (_mm512_ceil_round_ps): Ditto.
7229         (_mm512_ceil_round_pd): Ditto.
7230         (_mm512_mask_floor_round_ps): Ditto.
7231         (_mm512_mask_floor_round_pd): Ditto.
7232         (_mm512_mask_ceil_round_ps): Ditto.
7233         (_mm512_mask_ceil_round_pd): Ditto.
7234         (_mm512_maskz_floor_round_ps): Ditto.
7235         (_mm512_maskz_floor_round_pd): Ditto.
7236         (_mm512_maskz_ceil_round_ps): Ditto.
7237         (_mm512_maskz_ceil_round_pd): Ditto.
7238         (_mm512_expand_pd): Ditto.
7239         (_mm512_expand_ps): Ditto.
7240         * config/i386/i386.c (ix86_builtins): Remove
7241         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7242         (bdesc_args): Ditto.
7243         * config/i386/predicates.md (const1256_operand): New.
7244         (const_1_to_2_operand): Ditto.
7245         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7246         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7247         (*avx512pf_gatherpf<mode>sf): Ditto.
7248         (avx512pf_gatherpf<mode>df): Ditto.
7249         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7250         (*avx512pf_gatherpf<mode>df): Ditto.
7251         (avx512pf_scatterpf<mode>sf): Ditto.
7252         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7253         (*avx512pf_scatterpf<mode>sf): Ditto.
7254         (avx512pf_scatterpf<mode>df): Ditto.
7255         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7256         (*avx512pf_scatterpf<mode>df): Ditto.
7257         (avx512f_expand<mode>): Removed.
7258         (<shift_insn><mode>3<mask_name>): Change predicate type.
7260 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7262         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7263         not at the end of datarefs vector use ordered_remove to avoid
7264         reordering datarefs vector.
7266         PR c/59984
7267         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7268         mark local addressable non-static vars as GOVD_PRIVATE
7269         instead of GOVD_LOCAL.
7270         * omp-low.c (lower_omp_for): Move gimple_bind_vars
7271         and BLOCK_VARS of gimple_bind_block to new_stmt rather
7272         than copying them.
7274         PR middle-end/60092
7275         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7276         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7277         assume_aligned or alloc_align attributes.
7278         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7279         arguments.  Handle also assume_aligned and alloc_align attributes.
7280         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
7281         calls to functions with assume_aligned or alloc_align attributes.
7282         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7284 2014-02-08  Terry Guo  <terry.guo@arm.com>
7286         * doc/invoke.texi: Document ARM -march=armv7e-m.
7288 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7290         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7291         flag on __cilkrts_rethrow builtin.
7293         PR ipa/60026
7294         * ipa-cp.c (determine_versionability): Fail at -O0
7295         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7296         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7298         Revert:
7299         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
7301         PR ipa/60026
7302         * tree-inline.c (copy_forbidden): Fail for
7303         __attribute__((optimize (0))) functions.
7305 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
7307         * varpool.c: Include pointer-set.h.
7308         (varpool_remove_unreferenced_decls): Variables in other partitions
7309         will not be output; be however careful to not lose information
7310         about partitioning.
7312 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
7314         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
7315         lookup in the vtable constructor.
7317 2014-02-07  Jeff Law  <law@redhat.com>
7319         PR target/40977
7320         * config/m68k/m68k.md (ashldi_extsi): Turn into a
7321         define_insn_and_split.
7323         * ipa-inline.c (inline_small_functions): Fix typos.
7325 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7327         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
7328         (s390_can_use_return_insn): Declare.
7329         * config/s390/s390.h (EPILOGUE_USES): Define.
7330         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
7331         instructions.
7332         (s390_chunkify_start): Handle return JUMP_LABELs.
7333         (s390_early_mach): Emit a main_pool instruction on the entry edge.
7334         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
7335         (s390_can_use_return_insn): New functions.
7336         (s390_fix_long_loop_prediction): Handle conditional returns.
7337         (TARGET_SET_UP_BY_PROLOGUE): Define.
7338         * config/s390/s390.md (ANY_RETURN): New code iterator.
7339         (*creturn, *csimple_return, return, simple_return): New patterns.
7341 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7343         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
7344         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
7345         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
7346         REG_CFA_RESTORE list when deciding not to restore a register.
7348 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7350         * config/s390/s390.c: Include tree-pass.h and context.h.
7351         (s390_early_mach): New function, split out from...
7352         (s390_emit_prologue): ...here.
7353         (pass_data_s390_early_mach): New pass structure.
7354         (pass_s390_early_mach): New class.
7355         (s390_option_override): Create and register early_mach pass.
7356         Move to end of file.
7358 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7360         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
7361         to match for the exit block.
7363 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7365         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
7366         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
7367         Reject misaligned operands.
7369 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7371         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
7373 2014-02-07  Richard Biener  <rguenther@suse.de>
7375         PR middle-end/60092
7376         * gimple-low.c (lower_builtin_posix_memalign): New function.
7377         (lower_stmt): Call it to lower posix_memalign in a way
7378         to make alignment info accessible.
7380 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
7382         PR c++/60082
7383         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
7384         __builtin_setjmp_receiver.
7386 2014-02-07  Richard Biener  <rguenther@suse.de>
7388         PR middle-end/60092
7389         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
7390         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
7391         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7392         Handle BUILT_IN_POSIX_MEMALIGN.
7393         (find_func_clobbers): Likewise.
7394         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7395         (call_may_clobber_ref_p_1): Likewise.
7397 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
7399         PR ipa/59918
7400         * ipa-devirt.c (record_target_from_binfo): Remove overactive
7401         sanity check.
7403 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
7405         PR ipa/59469
7406         * lto-cgraph.c (lto_output_node): Use
7407         symtab_get_symbol_partitioning_class.
7408         (lto_output_varpool_node): likewise.
7409         (symtab_get_symbol_partitioning_class): Move here from
7410         lto/lto-partition.c
7411         * cgraph.h (symbol_partitioning_class): Likewise.
7412         (symtab_get_symbol_partitioning_class): Declare.
7414 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
7416         * ggc.h (ggc_internal_cleared_alloc): New macro.
7417         * vec.h (vec_safe_copy): Handle memory stats.
7418         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
7419         * target-globals.c (save_target_globals): Likewise.
7421 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
7423         PR target/60077
7424         * expr.c (emit_move_resolve_push): Export; be bit more selective
7425         on when to clear alias set.
7426         * expr.h (emit_move_resolve_push): Declare.
7427         * function.h (struct function): Add tail_call_marked.
7428         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
7429         * config/i386/i386-protos.h (ix86_expand_push): Remove.
7430         * config/i386/i386.md (TImode move expander): De not call
7431         ix86_expand_push.
7432         (FP push expanders): Preserve memory attributes.
7433         * config/i386/sse.md (push<mode>1): Remove.
7434         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
7435         (ix86_expand_push): Remove.
7436         * config/i386/mmx.md (push<mode>1): Remove.
7438 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
7440         PR rtl-optimization/60030
7441         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
7442         lopart with paradoxical subreg before shifting it up by hprec.
7444 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7446         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
7447         Remove extra newline at end of file.
7448         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
7449         (arm_issue_rate): Handle cortexa57.
7450         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
7451         (cortex-a57.cortex-a53): Likewise.
7453 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
7455         PR target/59575
7456         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
7457         don't record in REG_FRAME_RELATED_EXPR registers not set in that
7458         bitmask.
7459         (arm_expand_prologue): Adjust all callers.
7460         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
7461         info, registers also at the lowest numbered registers side.  Use
7462         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
7463         XEXP.
7465         PR debug/59992
7466         * var-tracking.c (adjust_mems): Before adding a SET to
7467         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
7469 2014-02-06  Alan Modra  <amodra@gmail.com>
7471         PR target/60032
7472         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
7473         change SDmode to DDmode when lra_in_progress.
7475 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
7477         PR middle-end/59150
7478         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
7479         free_data_ref on the dr first, and before goto again also set dr
7480         to the next dr.  For simd_lane_access, free old datarefs[i] before
7481         overwriting it.  For get_vectype_for_scalar_type failure, don't
7482         free_data_ref if simd_lane_access.
7484         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
7486         PR target/60062
7487         * tree.h (opts_for_fn): New inline function.
7488         (opt_for_fn): Define.
7489         * config/i386/i386.c (ix86_function_regparm): Use
7490         opt_for_fn (decl, optimize) instead of optimize.
7492 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7494         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
7495         for SYMBOL_REF in large memory model.
7497 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7499         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
7500         and crypto support.
7501         (cortex-a57): Likewise.
7502         (cortex-a57.cortex-a53): Likewise.
7504 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
7505             Kugan Vivekanandarajah  <kuganv@linaro.org>
7507         * config/arm/arm.c (arm_vector_alignment_reachable): Check
7508         unaligned_access.
7509         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
7511 2014-02-06  Richard Biener  <rguenther@suse.de>
7513         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
7514         set_loop_copy and initialize_original_copy_tables.
7516 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
7518         * config/aarch64/aarch64-simd.md
7519         (aarch64_ashr_simddi): Change QI to SI.
7521 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
7522             Jakub Jelinek  <jakub@redhat.com>
7524         PR middle-end/60013
7525         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
7526         of the dataflow.
7528 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7530         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
7531         CODE_FOR_altivec_vpku[hw]um to
7532         CODE_FOR_altivec_vpku[hw]um_direct.
7533         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
7534         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
7535         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
7536         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
7538 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7540         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
7541         generation for -maltivec=be.
7542         (altivec_vsumsws): Simplify redundant test.
7544 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7546         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
7547         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
7548         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
7549         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
7550         gen_altivec_vpkuwum.
7551         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
7552         BYTES_BIG_ENDIAN.
7553         (altivec_vpks<VI_char>ss): Likewise.
7554         (altivec_vpks<VI_char>us): Likewise.
7555         (altivec_vpku<VI_char>us): Likewise.
7556         (altivec_vpku<VI_char>um): Likewise.
7557         (altivec_vpku<VI_char>um_direct): New (copy of
7558         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
7559         internal use).
7560         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
7561         target is little endian and -maltivec=be is not specified.
7562         (*altivec_vupkhs<VU_char>_direct): New (copy of
7563         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
7564         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
7565         target is little endian and -maltivec=be is not specified.
7566         (*altivec_vupkls<VU_char>_direct): New (copy of
7567         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
7568         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
7569         little endian and -maltivec=be is not specified.
7570         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
7571         little endian and -maltivec=be is not specified.
7573 2014-02-05  Richard Henderson  <rth@redhat.com>
7575         PR debug/52727
7576         * combine-stack-adj.c: Revert r206943.
7577         * sched-int.h (struct deps_desc): Add last_args_size.
7578         * sched-deps.c (init_deps): Initialize it.
7579         (sched_analyze_insn): Add OUTPUT dependencies between insns that
7580         contain REG_ARGS_SIZE notes.
7582 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
7584         * lto-cgraph.c (asm_nodes_output): Make global.
7585         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
7586         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
7587         (driver_handle_option): Handle OPT_fwpa.
7589 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
7591         PR ipa/59947
7592         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
7593         a comment typo and formatting issue.  If odr_hash hasn't been
7594         created, return vNULL and set *completep to false.
7596         PR middle-end/57499
7597         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
7598         bb with no successors.
7600 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
7602         PR target/59718
7603         * doc/invoke.texi (-march): Clarify documentation for ARM.
7604         (-mtune): Likewise.
7605         (-mcpu): Likewise.
7607 2014-02-05  Richard Biener  <rguenther@suse.de>
7609         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
7610         when not vectorizing because of too many alias checks.
7611         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7612         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
7614 2014-02-05  Nick Clifton  <nickc@redhat.com>
7616         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
7617         accept extended registers in any mode when compiling for the MN10300.
7619 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
7621         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
7622         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
7623         sanitization attributes.
7624         (can_inline_edge_p): Likewise.
7625         (sanitize_attrs_match_for_inline_p): New function.
7627 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
7629         * ipa-prop.c (detect_type_change): Shor circuit testing of
7630         type changes on THIS pointer.
7632 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
7634         PR target/59777
7635         * config/pa/pa.c (legitimize_tls_address): Return original address
7636         if not passed a SYMBOL_REF rtx.
7637         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
7638         addresses.
7639         (pa_emit_move_sequence): Simplify TLS source operands.
7640         (pa_legitimate_constant_p): Reject all TLS constants.
7641         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
7642         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
7644 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
7646         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
7647         groups when we know they are controlled by LTO.
7648         * varasm.c (default_binds_local_p_1): If object is in other partition,
7649         it will be resolved locally.
7651 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7653         * config/host-linux.c (linux_gt_pch_use_address): Don't
7654         use SSIZE_MAX because it is not always defined.
7656 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
7658         PR bootstrap/59913
7659         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
7660         threshold for pseudo splitting.
7661         (update_ebb_live_info): Process call argument hard registers and
7662         hard registers from insn definition too.
7663         (max_small_class_regs_num): New constant.
7664         (inherit_in_ebb): Update live hard regs through EBBs.  Update
7665         reloads_num only for small register classes.  Don't split for
7666         outputs of jumps.
7668 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
7670         PR ipa/60058
7671         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
7672         is non-null.
7674 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
7676         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
7677         visibility is safe.
7679 2014-02-04  Marek Polacek  <polacek@redhat.com>
7681         * gdbinit.in (pel): Define.
7683 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7685         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
7686         behavior.
7688 2014-02-04  Richard Biener  <rguenther@suse.de>
7690         PR lto/59723
7691         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
7692         in function context local.
7693         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
7694         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
7695         similar to LTO_imported_decl_ref.
7697 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
7699         PR tree-optimization/60002
7700         * cgraphclones.c (build_function_decl_skip_args): Clear
7701         DECL_LANG_SPECIFIC.
7703         PR tree-optimization/60023
7704         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
7705         false to gsi_replace.
7706         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
7707         has been in some EH region and vec_stmt could throw, add
7708         vec_stmt into the same EH region.
7709         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
7710         has no lhs, ignore it.
7711         * internal-fn.c (expand_MASK_LOAD): Likewise.
7713         PR ipa/60026
7714         * tree-inline.c (copy_forbidden): Fail for
7715         __attribute__((optimize (0))) functions.
7717         PR other/58712
7718         * omp-low.c (simd_clone_struct_copy): If from->inbranch
7719         is set, copy one less argument.
7720         (expand_simd_clones): Don't subtract clone_info->inbranch
7721         from simd_clone_struct_alloc argument.
7723         PR rtl-optimization/57915
7724         * recog.c (simplify_while_replacing): If all unary/binary/relational
7725         operation arguments are constant, attempt to simplify those.
7727         PR middle-end/59261
7728         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
7729         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
7731 2014-02-04  Richard Biener  <rguenther@suse.de>
7733         PR tree-optimization/60012
7734         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
7735         TBAA disambiguation to all DDRs.
7737 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7739         PR target/59788
7740         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
7741         (LINK_SPEC): Use it for -shared, -shared-libgcc.
7743 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
7745         PR ipa/59882
7746         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
7748 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
7750         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
7751         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
7753 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
7755         PR ipa/59831
7756         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
7757         to figure out targets of polymorphic calls with known decl.
7758         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7759         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
7760         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
7761         (get_polymorphic_call_info): ... here.
7762         (get_polymorphic_call_info_from_invariant): New function.
7764 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
7766         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
7767         lookup via vtable pointer; check for type consistency
7768         and turn inconsitent facts into UNREACHABLE.
7769         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7770         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
7771         type inconsistent querries; return UNREACHABLE instead.
7773 2014-02-03  Richard Henderson  <rth@twiddle.net>
7775         PR tree-opt/59924
7776         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
7777         already processed this node.
7778         (normalize_one_pred_1): Pass along mark_set.
7779         (normalize_one_pred): Create and destroy a pointer_set_t.
7780         (normalize_one_pred_chain): Likewise.
7782 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
7784         PR gcov-profile/58602
7785         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
7787 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
7789         PR ipa/59831
7790         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
7791         -fno-devirtualize; try to devirtualize by the knowledge of
7792         virtual table pointer given by aggregate propagation.
7793         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7794         (ipa_print_node_jump_functions): Dump also offset that
7795         is relevant for polymorphic calls.
7796         (determine_known_aggregate_parts): Add arg_type parameter; use it
7797         instead of determining the type from pointer type.
7798         (ipa_compute_jump_functions_for_edge): Update call of
7799         determine_known_aggregate_parts.
7800         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
7801         (gimple_get_virt_method_for_binfo): ... here; simplify using
7802         vtable_pointer_value_to_vtable.
7803         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
7804         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
7805         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
7806         (vtable_pointer_value_to_vtable): Break out from ...; handle also
7807         POINTER_PLUS_EXPR.
7808         (vtable_pointer_value_to_binfo): ... here.
7809         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
7811 2014-02-03  Teresa Johnson  <tejohnson@google.com>
7813         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
7814         redef of outer loop index variable.
7816 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
7818         PR c++/53017
7819         PR c++/59211
7820         * doc/extend.texi (Function Attributes): Typo.
7822 2014-02-03  Cong Hou  <congh@google.com>
7824         PR tree-optimization/60000
7825         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
7826         if the vectorized statement is a store.  A store statement can only
7827         appear at the end of pattern statements.
7829 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
7831         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
7832         (ix86_option_override_internal): Default long double to 64-bit for
7833         32-bit Bionic and to 128-bit for 64-bit Bionic.
7835         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
7836         TARGET_LONG_DOUBLE_128 is true.
7837         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
7839         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
7840         (mlong-double-64): Negate -mlong-double-128.
7841         (mlong-double-128): New option.
7843         * config/i386/i386-c.c (ix86_target_macros): Define
7844         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
7846         * doc/invoke.texi: Document -mlong-double-128.
7848 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
7850         PR rtl-optimization/60024
7851         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
7853 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
7855         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
7857 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
7859         PR rtl-optimization/57662
7860         * sel-sched.c (code_motion_path_driver): Do not mark already not
7861         existing blocks in the visiting bitmap.
7863 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
7865         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
7866         on the insn being emitted.
7868 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
7869             Will Deacon  <will.deacon@arm.com>
7871         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
7873 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7875         * config/arm/arm-tables.opt: Regenerate.
7877 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7879         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
7880         for vector types other than V16QImode.
7881         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
7882         define_expand, and call altivec_expand_vec_perm_le when producing
7883         code with little endian element order.
7884         (*altivec_vperm_<mode>_internal): New insn having previous
7885         behavior of altivec_vperm_<mode>.
7886         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
7887         altivec_expand_vec_perm_le when producing code with little endian
7888         element order.
7889         (*altivec_vperm_<mode>_uns_internal): New insn having previous
7890         behavior of altivec_vperm_<mode>_uns.
7892 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7894         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
7895         (altivec_vsumsws): Add handling for -maltivec=be with a little
7896         endian target.
7897         (altivec_vsumsws_direct): New.
7898         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
7899         gen_altivec_vsumsws.
7901 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
7903         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
7904         vtable_pointer_value_to_binfo): New functions.
7905         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
7906         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
7908 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
7910         * config/nios2/nios2.md (load_got_register): Initialize GOT
7911         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
7912         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
7914 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
7916         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
7917         preserverd by passthrough, do not propagate the type.
7919 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7921         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
7922         (mips_atomic_assign_expand_fenv): New function.
7923         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
7925 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7927         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
7928         (__builtin_mips_set_fcsr): Likewise.
7929         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
7930         MIPS_USI_FTYPE_VOID.
7931         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
7932         (mips16_expand_set_fcsr): Likewise.
7933         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
7934         (mips16_set_fcsr_stub): Likewise.
7935         (mips16_get_fcsr_one_only_stub): New class.
7936         (mips16_set_fcsr_one_only_stub): Likewise.
7937         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
7938         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
7939         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
7940         (hard_float): New availability predicate.
7941         (mips_builtins): Add get_fcsr and set_fcsr.
7942         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
7943         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
7944         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
7945         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
7946         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
7947         patterns.
7949 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7951         * config/mips/mips.c (mips_one_only_stub): New class.
7952         (mips_need_mips16_rdhwr_p): Replace with...
7953         (mips16_rdhwr_stub): ...this new variable.
7954         (mips16_stub_call_address): New function.
7955         (mips16_rdhwr_one_only_stub): New class.
7956         (mips_expand_thread_pointer): Use mips16_stub_call_address.
7957         (mips_output_mips16_rdhwr): Delete.
7958         (mips_finish_stub): New function.
7959         (mips_code_end): Use it to handle rdhwr stubs.
7961 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
7963         PR target/60017
7964         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
7965         when calculating size of integer atomic types.
7967 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
7969         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
7971 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
7973         PR tree-optimization/60003
7974         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
7975         * profile.c (branch_prob): Use gimple_call_builtin_p
7976         to check for BUILT_IN_SETJMP_RECEIVER.
7977         * tree-inline.c (copy_bb): Call notice_special_calls.
7979 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
7981         PR bootstrap/59985
7982         * lra-constraints.c (process_alt_operands): Update reload_sum only
7983         on the first pass.
7985 2014-01-31  Richard Henderson  <rth@redhat.com>
7987         PR middle-end/60004
7988         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
7989         until after else_eh is processed.
7991 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
7993         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
7994         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
7995         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
7996         in smmintrin.h, remove them.
7997         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
7998         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
7999         * config/i386/i386.md (ROUND_SAE): Fix value.
8000         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
8001         (const48_operand): New.
8002         * config/i386/subst.md (round), (round_expand): Use
8003         const_4_or_8_to_11_operand.
8004         (round_saeonly), (round_saeonly_expand): Use const48_operand.
8006 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
8008         * config/i386/constraints.md (Yk): Swap meaning with k.
8009         * config/i386/i386.md (movhi_internal): Change Yk to k.
8010         (movqi_internal): Ditto.
8011         (*k<logic><mode>): Ditto.
8012         (*andhi_1): Ditto.
8013         (*andqi_1): Ditto.
8014         (kandn<mode>): Ditto.
8015         (*<code>hi_1): Ditto.
8016         (*<code>qi_1): Ditto.
8017         (kxnor<mode>): Ditto.
8018         (kortestzhi): Ditto.
8019         (kortestchi): Ditto.
8020         (kunpckhi): Ditto.
8021         (*one_cmplhi2_1): Ditto.
8022         (*one_cmplqi2_1): Ditto.
8023         * config/i386/sse.md (): Change k to Yk.
8024         (avx512f_load<mode>_mask): Ditto.
8025         (avx512f_blendm<mode>): Ditto.
8026         (avx512f_store<mode>_mask): Ditto.
8027         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8028         (avx512f_storedqu<mode>_mask): Ditto.
8029         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
8030         Ditto.
8031         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
8032         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
8033         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
8034         (avx512f_maskcmp<mode>3): Ditto.
8035         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
8036         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
8037         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8038         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8039         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8040         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8041         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8042         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8043         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8044         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8045         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8046         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8047         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8048         (vec_extract_lo_<mode>_maskm): Ditto.
8049         (vec_extract_hi_<mode>_maskm): Ditto.
8050         (avx512f_vternlog<mode>_mask): Ditto.
8051         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8052         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8053         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8054         (avx512f_<code>v8div16qi2_mask): Ditto.
8055         (avx512f_<code>v8div16qi2_mask_store): Ditto.
8056         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8057         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8058         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8059         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8060         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8061         (*avx512pf_gatherpf<mode>df_mask): Ditto.
8062         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8063         (*avx512pf_scatterpf<mode>df_mask): Ditto.
8064         (avx512cd_maskb_vec_dupv8di): Ditto.
8065         (avx512cd_maskw_vec_dupv16si): Ditto.
8066         (avx512f_vpermi2var<mode>3_maskz): Ditto.
8067         (avx512f_vpermi2var<mode>3_mask): Ditto.
8068         (avx512f_vpermi2var<mode>3_mask): Ditto.
8069         (avx512f_vpermt2var<mode>3_maskz): Ditto.
8070         (*avx512f_gathersi<mode>): Ditto.
8071         (*avx512f_gathersi<mode>_2): Ditto.
8072         (*avx512f_gatherdi<mode>): Ditto.
8073         (*avx512f_gatherdi<mode>_2): Ditto.
8074         (*avx512f_scattersi<mode>): Ditto.
8075         (*avx512f_scatterdi<mode>): Ditto.
8076         (avx512f_compress<mode>_mask): Ditto.
8077         (avx512f_compressstore<mode>_mask): Ditto.
8078         (avx512f_expand<mode>_mask): Ditto.
8079         * config/i386/subst.md (mask): Change k to Yk.
8080         (mask_scalar_merge): Ditto.
8081         (sd): Ditto.
8083 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
8085         * doc/extend.texi (Vector Extensions): Document ?: in C++.
8087 2014-01-31  Richard Biener  <rguenther@suse.de>
8089         PR middle-end/59990
8090         * builtins.c (fold_builtin_memory_op): Make sure to not
8091         use a floating-point mode or a boolean or enumeral type for
8092         the copy operation.
8094 2014-01-30  DJ Delorie  <dj@redhat.com>
8096         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8097         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8098         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8099         whenever main() has an epilogue.
8101 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8103         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8104         unused variable "field".
8105         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8106         (vsx_mergeh_<mode>): Likewise.
8107         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8108         (altivec_vmrghh): Likewise.
8109         (altivec_vmrghw): Likewise.
8110         (altivec_vmrglb): Likewise.
8111         (altivec_vmrglh): Likewise.
8112         (altivec_vmrglw): Likewise.
8113         (altivec_vspltb): Add missing uses.
8114         (altivec_vsplth): Likewise.
8115         (altivec_vspltw): Likewise.
8116         (altivec_vspltsf): Likewise.
8118 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8120         PR target/59923
8121         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8122         frame related instructions.
8124 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
8126         PR rtl-optimization/59959
8127         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8128         any reload of register whose subreg is invalid.
8130 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8132         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8133         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8134         Add missing return type - void.
8136 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8138         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8139         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8140         remove element index adjustment for endian (now handled in vsx.md
8141         and altivec.md).
8142         (altivec_expand_vec_perm_const): Use
8143         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8144         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8145         (vsx_xxspltw_<mode>): Adjust element index for little endian.
8146         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8147         define_expand and a new define_insn *altivec_vspltb_internal;
8148         adjust for -maltivec=be on a little endian target.
8149         (altivec_vspltb_direct): New.
8150         (altivec_vsplth): Divide into a define_expand and a new
8151         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8152         little endian target.
8153         (altivec_vsplth_direct): New.
8154         (altivec_vspltw): Divide into a define_expand and a new
8155         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8156         little endian target.
8157         (altivec_vspltw_direct): New.
8158         (altivec_vspltsf): Divide into a define_expand and a new
8159         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8160         a little endian target.
8162 2014-01-30  Richard Biener  <rguenther@suse.de>
8164         PR tree-optimization/59993
8165         * tree-ssa-forwprop.c (associate_pointerplus): Check we
8166         can propagate form the earlier stmt and avoid the transform
8167         when the intermediate result is needed.
8169 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
8171         * README.Portability: Fix typo.
8173 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
8175         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8176         comparison_operator with ordered_comparison_operator.
8178 2014-01-30  Nick Clifton  <nickc@redhat.com>
8180         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8181         Rename to mn10300_store_multiple_regs.
8182         * config/mn10300/mn10300.c: Likewise.
8183         * config/mn10300/mn10300.md (store_movm): Fix typo: call
8184         store_multiple_regs.
8185         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8186         Call mn10300_store_multiple_regs.
8188 2014-01-30  Nick Clifton  <nickc@redhat.com>
8189             DJ Delorie  <dj@redhat.com>
8191         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8192         %fp 2 to keep registers after it properly word-aligned.
8193         (rl78_alloc_physical_registers_umul): Handle the case where both
8194         input operands are the same.
8196 2014-01-30  Richard Biener  <rguenther@suse.de>
8198         PR tree-optimization/59903
8199         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8200         check properly.
8202 2014-01-30  Jason Merrill  <jason@redhat.com>
8204         PR c++/59633
8205         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8207         PR c++/59645
8208         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8210 2014-01-30  Richard Biener  <rguenther@suse.de>
8212         PR tree-optimization/59951
8213         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8215 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
8217         PR target/59784
8218         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8219         SFmode to DFmode case.
8221 2014-01-29  DJ Delorie  <dj@redhat.com>
8223         * config/msp430/msp430.opt (-minrt): New.
8224         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8225         if -minrt given.
8226         (ENDFILE_SPEC): Likewise.
8228 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
8230         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8231         (estimate_function_body_sizes): Use it.
8233 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
8235         PR c++/58561
8236         * dwarf2out.c (is_cxx_auto): New.
8237         (is_base_type): Use it.
8238         (gen_type_die_with_usage): Likewise.
8240 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8242         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
8243         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8244         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8245         -maltivec=be with LE targets.
8246         (vsx_mergeh_<mode>): Likewise.
8247         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8248         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8249         (altivec_vmrghb): Replace with define_expand and new
8250         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8251         (altivec_vmrghb_direct): New define_insn.
8252         (altivec_vmrghh): Replace with define_expand and new
8253         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8254         (altivec_vmrghh_direct): New define_insn.
8255         (altivec_vmrghw): Replace with define_expand and new
8256         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8257         (altivec_vmrghw_direct): New define_insn.
8258         (*altivec_vmrghsf): Adjust for endianness.
8259         (altivec_vmrglb): Replace with define_expand and new
8260         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8261         (altivec_vmrglb_direct): New define_insn.
8262         (altivec_vmrglh): Replace with define_expand and new
8263         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8264         (altivec_vmrglh_direct): New define_insn.
8265         (altivec_vmrglw): Replace with define_expand and new
8266         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8267         (altivec_vmrglw_direct): New define_insn.
8268         (*altivec_vmrglsf): Adjust for endianness.
8269         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8270         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8271         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8272         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8273         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8274         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8275         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8276         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8278 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8280         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8281         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8282         whitespace.
8284 2014-01-29  Richard Biener  <rguenther@suse.de>
8286         PR tree-optimization/58742
8287         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8288         associate_pointerplus_align.
8289         (associate_pointerplus_diff): New function.
8290         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
8291         and associate_pointerplus_diff.
8293 2014-01-29  Richard Biener  <rguenther@suse.de>
8295         * lto-streamer.h (LTO_major_version): Bump to 3.
8296         (LTO_minor_version): Reset to 0.
8298 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
8300         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8301         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8302         (arm_file_start): Generate correct asm header for armv7ve.
8303         * config/arm/bpabi.h: Add multilib support for armv7ve.
8304         * config/arm/driver-arm.c: Change the architectures of cortex-a7
8305         and cortex-a15 to armv7ve.
8306         * config/arm/t-aprofile: Add multilib support for armv7ve.
8307         * doc/invoke.texi: Document -march=armv7ve.
8309 2014-01-29  Richard Biener  <rguenther@suse.de>
8311         PR tree-optimization/58742
8312         * tree-ssa-forwprop.c (associate_plusminus): Return true
8313         if we changed sth, defer EH cleanup to ...
8314         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
8315         (simplify_mult): New function.
8317 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
8319         PR middle-end/59917
8320         PR tree-optimization/59920
8321         * tree.c (build_common_builtin_nodes): Remove
8322         __builtin_setjmp_dispatcher initialization.
8323         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
8324         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
8325         instead of gsi_after_labels + manually skipping debug stmts.
8326         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
8327         ignore bbs with IFN_ABNORMAL_DISPATCHER.
8328         * tree-inline.c (copy_edges_for_bb): Remove
8329         can_make_abnormal_goto argument, instead add abnormal_goto_dest
8330         argument.  Ignore computed_goto_p stmts.  Don't call
8331         make_abnormal_goto_edges.  If a call might need abnormal edges
8332         for non-local gotos, see if it already has an edge to
8333         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
8334         with true argument, don't do anything then, otherwise add
8335         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
8336         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
8337         caller.
8338         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
8339         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
8340         (lower_stmt): Don't set data->calls_builtin_setjmp.
8341         (lower_builtin_setjmp): Adjust comment.
8342         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
8343         * tree-cfg.c (found_computed_goto): Remove.
8344         (factor_computed_gotos): Remove.
8345         (make_goto_expr_edges): Return bool, true for computed gotos.
8346         Don't call make_abnormal_goto_edges.
8347         (build_gimple_cfg): Don't set found_computed_goto, don't call
8348         factor_computed_gotos.
8349         (computed_goto_p): No longer static.
8350         (make_blocks): Don't set found_computed_goto.
8351         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
8352         (make_edges): If make_goto_expr_edges returns true, push bb
8353         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
8354         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
8355         vector.  Record mapping between bbs and OpenMP regions if there
8356         are any, adjust make_gimple_omp_edges caller.  Call
8357         handle_abnormal_edges.
8358         (make_abnormal_goto_edges): Remove.
8359         * tree-cfg.h (make_abnormal_goto_edges): Remove.
8360         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
8361         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
8362         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
8363         * internal-fn.def (ABNORMAL_DISPATCHER): New.
8364         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
8365         filling *region also set *region_idx to (*region)->entry->index.
8367         PR other/58712
8368         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
8369         For REGs set ORIGINAL_REGNO.
8371 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
8373         * doc/md.texi: Mention that a target shouldn't implement
8374         vec_widen_(s|u)mul_even/odd pair if it is less efficient
8375         than hi/lo pair.
8377 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
8379         PR tree-optimization/59594
8380         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
8381         a copy of the datarefs vector rather than the vector itself.
8383 2014-01-28  Jason Merrill  <jason@redhat.com>
8385         PR c++/53756
8386         * dwarf2out.c (auto_die): New static.
8387         (gen_type_die_with_usage): Handle C++1y 'auto'.
8388         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
8389         on definition.
8391 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
8393         PR target/59672
8394         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
8395         (SPEC_X32): Likewise.
8396         (SPEC_64): Likewise.
8397         * config/i386/i386.c (ix86_option_override_internal): Turn off
8398         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
8399         for TARGET_16BIT.
8400         (x86_file_start): Output .code16gcc for TARGET_16BIT.
8401         * config/i386/i386.h (TARGET_16BIT): New macro.
8402         (TARGET_16BIT_P): Likewise.
8403         * config/i386/i386.opt: Add m16.
8404         * doc/invoke.texi: Document -m16.
8406 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
8408         PR preprocessor/59935
8409         * input.c (location_get_source_line): Bail out on when line number
8410         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
8412 2014-01-28  Richard Biener  <rguenther@suse.de>
8414         PR tree-optimization/58742
8415         * tree-ssa-forwprop.c (associate_plusminus): Handle
8416         pointer subtraction of the form (T)(P + A) - (T)P.
8418 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8420         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
8421         at const_int_cost.
8423 2014-01-28  Richard Biener  <rguenther@suse.de>
8425         Revert
8426         2014-01-28  Richard Biener  <rguenther@suse.de>
8428         PR rtl-optimization/45364
8429         PR rtl-optimization/59890
8430         * var-tracking.c (local_get_addr_clear_given_value): Handle
8431         already cleared slot.
8432         (val_reset): Handle not allocated local_get_addr_cache.
8433         (vt_find_locations): Use post-order on the inverted CFG.
8435 2014-01-28  Richard Biener  <rguenther@suse.de>
8437         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
8439 2014-01-28  Richard Biener  <rguenther@suse.de>
8441         PR rtl-optimization/45364
8442         PR rtl-optimization/59890
8443         * var-tracking.c (local_get_addr_clear_given_value): Handle
8444         already cleared slot.
8445         (val_reset): Handle not allocated local_get_addr_cache.
8446         (vt_find_locations): Use post-order on the inverted CFG.
8448 2014-01-28  Alan Modra  <amodra@gmail.com>
8450         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
8451         * configure.ac <recursive call for build != host>: Define
8452         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
8453         and LD_FOR_BUILD too.
8454         * configure: Regenerate.
8456 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
8458         * config/i386/i386.c (get_builtin_code_for_version): Separate
8459         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
8460         Broadwell from Haswell.
8462 2014-01-27  Steve Ellcey  <sellcey@mips.com>
8464         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
8465         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
8466         * config/mips/mips.c (mips_option_override): Change setting
8467         of TARGET_DSP.
8468         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
8469         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
8470         Change from Mask to Var.
8472 2014-01-27  Jeff Law  <law@redhat.com>
8474         * ipa-inline.c (inline_small_functions): Fix typo.
8476 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
8478         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
8479         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
8480         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
8481         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
8482         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
8483         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
8484         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
8485         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
8486         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
8487         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
8488         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
8489         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
8490         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
8491         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
8492         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
8493         (_mm512_storeu_epi64): Ditto.
8494         (_mm512_cmpge_epi32_mask): Ditto.
8495         (_mm512_cmpge_epu32_mask): Ditto.
8496         (_mm512_cmpge_epi64_mask): Ditto.
8497         (_mm512_cmpge_epu64_mask): Ditto.
8498         (_mm512_cmple_epi32_mask): Ditto.
8499         (_mm512_cmple_epu32_mask): Ditto.
8500         (_mm512_cmple_epi64_mask): Ditto.
8501         (_mm512_cmple_epu64_mask): Ditto.
8502         (_mm512_cmplt_epi32_mask): Ditto.
8503         (_mm512_cmplt_epu32_mask): Ditto.
8504         (_mm512_cmplt_epi64_mask): Ditto.
8505         (_mm512_cmplt_epu64_mask): Ditto.
8506         (_mm512_cmpneq_epi32_mask): Ditto.
8507         (_mm512_cmpneq_epu32_mask): Ditto.
8508         (_mm512_cmpneq_epi64_mask): Ditto.
8509         (_mm512_cmpneq_epu64_mask): Ditto.
8510         (_mm512_expand_pd): Ditto.
8511         (_mm512_expand_ps): Ditto.
8512         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
8513         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
8514         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
8515         * config/i386/i386.c (ix86_builtins): Add
8516         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
8517         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
8518         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
8519         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
8520         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
8521         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
8522         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
8523         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
8524         IX86_BUILTIN_PMOVUSQW512_MEM.
8525         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
8526         __builtin_ia32_pmovsqd512mem_mask,
8527         __builtin_ia32_pmovqd512mem_mask,
8528         __builtin_ia32_pmovusqw512mem_mask,
8529         __builtin_ia32_pmovsqw512mem_mask,
8530         __builtin_ia32_pmovqw512mem_mask,
8531         __builtin_ia32_pmovusdw512mem_mask,
8532         __builtin_ia32_pmovsdw512mem_mask,
8533         __builtin_ia32_pmovdw512mem_mask,
8534         __builtin_ia32_pmovqb512mem_mask,
8535         __builtin_ia32_pmovusqb512mem_mask,
8536         __builtin_ia32_pmovsqb512mem_mask,
8537         __builtin_ia32_pmovusdb512mem_mask,
8538         __builtin_ia32_pmovsdb512mem_mask,
8539         __builtin_ia32_pmovdb512mem_mask.
8540         (bdesc_args): Add __builtin_ia32_expanddf512,
8541         __builtin_ia32_expandsf512.
8542         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
8543         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
8544         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
8545         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
8546         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
8547         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
8548         (avx512f_<code>v8div16qi2_mask_store): This.
8549         (avx512f_expand<mode>): New.
8551 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
8553         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
8554         New.
8555         (_mm512_mask_prefetch_i64gather_pd): Ditto.
8556         (_mm512_prefetch_i32scatter_pd): Ditto.
8557         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
8558         (_mm512_prefetch_i64scatter_pd): Ditto.
8559         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
8560         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
8561         (_mm512_mask_prefetch_i64gather_ps): Ditto.
8562         (_mm512_prefetch_i32scatter_ps): Ditto.
8563         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
8564         (_mm512_prefetch_i64scatter_ps): Ditto.
8565         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
8566         * config/i386/i386-builtin-types.def: Define
8567         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
8568         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
8569         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
8570         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
8571         IX86_BUILTIN_SCATTERPFQPD.
8572         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
8573         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
8574         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
8575         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
8576         __builtin_ia32_scatterpfqps.
8577         (ix86_expand_builtin): Expand new built-ins.
8578         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
8579         fix memory access data type.
8580         (*avx512pf_gatherpf<mode>_mask): Ditto.
8581         (*avx512pf_gatherpf<mode>): Ditto.
8582         (avx512pf_scatterpf<mode>): Ditto.
8583         (*avx512pf_scatterpf<mode>_mask): Ditto.
8584         (*avx512pf_scatterpf<mode>): Ditto.
8585         (GATHER_SCATTER_SF_MEM_MODE): New.
8586         (avx512pf_gatherpf<mode>df): Ditto.
8587         (*avx512pf_gatherpf<mode>df_mask): Ditto.
8588         (*avx512pf_scatterpf<mode>df): Ditto.
8590 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
8592         PR bootstrap/59934
8593         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
8594         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
8595         reached.
8597 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
8599         * common/config/arm/arm-common.c
8600         (arm_rewrite_mcpu): Handle multiple names.
8601         * config/arm/arm.h
8602         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8604 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
8606         * gimple-builder.h (create_gimple_tmp): Delete.
8608 2014-01-27  Christian Bruel  <christian.bruel@st.com>
8610         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
8611         words comparisons.
8613 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
8615         * config/pa/pa.md (call): Generate indirect long calls to non-local
8616         functions when outputing 32-bit code.
8617         (call_value): Likewise except for special call to buggy powf function.
8619         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
8620         portable runtime and PIC indirect calls.
8621         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
8622         and PIC call sequences.  Use ldo instead of blr to set return register
8623         in PIC call sequence.
8625 2014-01-25  Walter Lee  <walt@tilera.com>
8627         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
8628         avoid clobbering a live register.
8630 2014-01-25  Walter Lee  <walt@tilera.com>
8632         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
8633         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
8634         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
8635         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
8637 2014-01-25  Walter Lee  <walt@tilera.com>
8639         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
8640         arguments on even registers.
8641         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
8642         STACK_BOUNDARY.
8643         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
8644         (BIGGEST_ALIGNMENT): Ditto.
8645         (BIGGEST_FIELD_ALIGNMENT): Ditto.
8647 2014-01-25  Walter Lee  <walt@tilera.com>
8649         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
8650         insns before bundling.
8651         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
8653 2014-01-25  Walter Lee  <walt@tilera.com>
8655         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
8656         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
8657         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
8659 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
8661         * config/mips/constraints.md (kl): Delete.
8662         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
8663         define expands, using...
8664         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
8665         instructions for MIPS16.
8666         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
8667         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
8669 2014-01-25  Walter Lee  <walt@tilera.com>
8671         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
8672         (clzdi2): Ditto.
8673         (ffsdi2): Ditto.
8675 2014-01-25  Walter Lee  <walt@tilera.com>
8677         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
8678         (TARGET_EXPAND_TO_RTL_HOOK): Define.
8680 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
8682         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
8683         Handle XOR.
8685 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
8687         * print-rtl.c (in_call_function_usage): New var.
8688         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
8689         EXPR_LIST mode as mode and not as reg note name.
8691         PR middle-end/59561
8692         * cfgloopmanip.c (copy_loop_info): If
8693         loop->warned_aggressive_loop_optimizations, make sure
8694         the flag is set in target loop too.
8696 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
8698         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
8699         flag_cilkplus.
8700         * builtins.def: Likewise.
8701         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
8702         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
8703         * ira.c (ira_setup_eliminable_regset): Likewise.
8704         * omp-low.c (gate_expand_omp): Likewise.
8705         (execute_lower_omp): Likewise.
8706         (diagnose_sb_0): Likewise.
8707         (gate_diagnose_omp_blocks): Likewise.
8708         (simd_clone_clauses_extract): Likewise.
8709         (gate): Likewise.
8711 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8713         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
8714         correction for little endian...
8715         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
8716         here.
8718 2014-01-24  Jeff Law  <law@redhat.com>
8720         PR tree-optimization/59919
8721         * tree-vrp.c (find_assert_locations_1): Do not register asserts
8722         for non-returning calls.
8724 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
8726         * common/config/aarch64/aarch64-common.c
8727         (aarch64_rewrite_mcpu): Handle multiple names.
8728         * config/aarch64/aarch64.h
8729         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8731 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
8733         * input.c (add_file_to_cache_tab): Handle the case where fopen
8734         returns NULL.
8736 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
8738         PR target/59929
8739         * config/i386/i386.md (pushsf splitter): Get stack adjustment
8740         from push operand if code of push isn't PRE_DEC.
8742 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8744         PR target/59909
8745         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8746         -mquad-memory-atomic.  Update -mquad-memory documentation to say
8747         it is only used for non-atomic loads/stores.
8749         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
8750         -mquad-memory or -mquad-memory-atomic switches.
8752         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
8753         -mquad-memory-atomic to ISA 2.07 support.
8755         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
8756         to separate support of normal quad word memory operations (ldq, stq)
8757         from the atomic quad word memory operations.
8759         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8760         support to separate non-atomic quad word operations from atomic
8761         quad word operations.  Disable non-atomic quad word operations in
8762         little endian mode so that we don't have to swap words after the
8763         load and before the store.
8764         (quad_load_store_p): Add comment about atomic quad word support.
8765         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
8766         options printed with -mdebug=reg.
8768         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
8769         -mquad-memory-atomic as the test for whether we have quad word
8770         atomic instructions.
8771         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
8772         or -mp8-vector are used, allow byte/half-word atomic operations.
8774         * config/rs6000/sync.md (load_lockedti): Insure that the address
8775         is a proper indexed or indirect address for the lqarx instruction.
8776         On little endian systems, swap the hi/lo registers after the lqarx
8777         instruction.
8778         (load_lockedpti): Use indexed_or_indirect_operand predicate to
8779         insure the address is valid for the lqarx instruction.
8780         (store_conditionalti): Insure that the address is a proper indexed
8781         or indirect address for the stqcrx. instruction.  On little endian
8782         systems, swap the hi/lo registers before doing the stqcrx.
8783         instruction.
8784         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
8785         insure the address is valid for the stqcrx. instruction.
8787         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
8788         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
8789         type of quad memory support is available.
8791 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
8793         PR regression/59915
8794         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
8795         there is a danger of looping.
8797 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
8799         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8800         force flag_ira_loop_pressure if set via command line.
8802 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
8804         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
8805         (ashr_simd): New builtin handling DI mode.
8806         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
8807         (aarch64_sshr_simddi): New match pattern.
8808         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
8809         (vshrd_n_s64): Likewise.
8810         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
8812 2014-01-23  Nick Clifton  <nickc@redhat.com>
8814         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
8815         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
8816         favour of mcu specific scripts.
8817         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
8818         430x multilibs.
8820 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
8821             Alex Velenko  <Alex.Velenko@arm.com>
8823         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
8824         (vaddv_s16): Likewise.
8825         (vaddv_s32): Likewise.
8826         (vaddv_u8): Likewise.
8827         (vaddv_u16): Likewise.
8828         (vaddv_u32): Likewise.
8829         (vaddvq_s8): Likewise.
8830         (vaddvq_s16): Likewise.
8831         (vaddvq_s32): Likewise.
8832         (vaddvq_s64): Likewise.
8833         (vaddvq_u8): Likewise.
8834         (vaddvq_u16): Likewise.
8835         (vaddvq_u32): Likewise.
8836         (vaddvq_u64): Likewise.
8837         (vaddv_f32): Likewise.
8838         (vaddvq_f32): Likewise.
8839         (vaddvq_f64): Likewise.
8840         (vmaxv_f32): Likewise.
8841         (vmaxv_s8): Likewise.
8842         (vmaxv_s16): Likewise.
8843         (vmaxv_s32): Likewise.
8844         (vmaxv_u8): Likewise.
8845         (vmaxv_u16): Likewise.
8846         (vmaxv_u32): Likewise.
8847         (vmaxvq_f32): Likewise.
8848         (vmaxvq_f64): Likewise.
8849         (vmaxvq_s8): Likewise.
8850         (vmaxvq_s16): Likewise.
8851         (vmaxvq_s32): Likewise.
8852         (vmaxvq_u8): Likewise.
8853         (vmaxvq_u16): Likewise.
8854         (vmaxvq_u32): Likewise.
8855         (vmaxnmv_f32): Likewise.
8856         (vmaxnmvq_f32): Likewise.
8857         (vmaxnmvq_f64): Likewise.
8858         (vminv_f32): Likewise.
8859         (vminv_s8): Likewise.
8860         (vminv_s16): Likewise.
8861         (vminv_s32): Likewise.
8862         (vminv_u8): Likewise.
8863         (vminv_u16): Likewise.
8864         (vminv_u32): Likewise.
8865         (vminvq_f32): Likewise.
8866         (vminvq_f64): Likewise.
8867         (vminvq_s8): Likewise.
8868         (vminvq_s16): Likewise.
8869         (vminvq_s32): Likewise.
8870         (vminvq_u8): Likewise.
8871         (vminvq_u16): Likewise.
8872         (vminvq_u32): Likewise.
8873         (vminnmv_f32): Likewise.
8874         (vminnmvq_f32): Likewise.
8875         (vminnmvq_f64): Likewise.
8877 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
8879         * config/aarch64/aarch64-simd.md
8880         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
8881         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
8882         (*aarch64_mul3_elt<mode>): Likewise.
8883         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
8884         (*aarch64_mul3_elt_to_64v2df): Likewise.
8885         (*aarch64_mla_elt<mode>): Likewise.
8886         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
8887         (*aarch64_mls_elt<mode>): Likewise.
8888         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
8889         (*aarch64_fma4_elt<mode>): Likewise.
8890         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
8891         (*aarch64_fma4_elt_to_64v2df): Likewise.
8892         (*aarch64_fnma4_elt<mode>): Likewise.
8893         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
8894         (*aarch64_fnma4_elt_to_64v2df): Likewise.
8895         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
8896         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
8897         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8898         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8899         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8900         (aarch64_sqdmull_lane<mode>_internal): Likewise.
8901         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8903 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
8905         * config/aarch64/aarch64-simd.md
8906         (aarch64_be_checked_get_lane<mode>): New define_expand.
8907         * config/aarch64/aarch64-simd-builtins.def
8908         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
8909         New builtin definition.
8910         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
8911         Use new safe be builtin.
8913 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
8915         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
8916         New define_insn.
8917         (aarch64_be_st1<mode>): Likewise.
8918         (aarch_ld1<VALL:mode>): Define_expand modified.
8919         (aarch_st1<VALL:mode>): Likewise.
8920         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
8921         (UNSPEC_ST1): Likewise.
8923 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
8925         * config/microblaze/microblaze.md: Add trap insn and attribute
8927 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
8929         PR preprocessor/58580
8930         * input.h (location_get_source_line): Take an additional line_size
8931         parameter.
8932         (void diagnostics_file_cache_fini): Declare new function.
8933         * input.c (struct fcache): New type.
8934         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
8935         New static constants.
8936         (diagnostic_file_cache_init, total_lines_num)
8937         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
8938         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
8939         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
8940         (get_next_line, read_next_line, goto_next_line, read_line_num):
8941         New static function definitions.
8942         (diagnostic_file_cache_fini): New function.
8943         (location_get_source_line): Take an additional output line_len
8944         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
8945         read_line_num.
8946         * diagnostic.c (diagnostic_finish): Call
8947         diagnostic_file_cache_fini.
8948         (adjust_line): Take an additional input parameter for the length
8949         of the line, rather than calculating it with strlen.
8950         (diagnostic_show_locus): Adjust the use of
8951         location_get_source_line and adjust_line with respect to their new
8952         signature.  While displaying a line now, do not stop at the first
8953         null byte.  Rather, display the zero byte as a space and keep
8954         going until we reach the size of the line.
8955         * Makefile.in: Add vec.o to OBJS-libcommon
8957 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
8958             Ilya Tocar     <ilya.tocar@intel.com>
8960         * config/i386/avx512fintrin.h (_mm512_kmov): New.
8961         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
8962         (__builtin_ia32_kmov16): Ditto.
8963         * config/i386/i386.md (UNSPEC_KMOV): New.
8964         (kmovw): Ditto.
8966 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
8968         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
8969         (_mm512_storeu_si512): Ditto.
8971 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
8973         PR target/52125
8974         * rtl.h (get_referenced_operands): Declare.
8975         * recog.c (get_referenced_operands): New function.
8976         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
8977         operands have been referenced when recording LO_SUM references.
8979 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
8981         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
8983 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
8985         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
8986         Enable for generic and recent AMD targets.
8988 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
8990         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
8991         ARG_SIZE note when adjustment was eliminated.
8993 2014-01-22  Jeff Law  <law@redhat.com>
8995         PR tree-optimization/59597
8996         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
8997         in file.  Accept new argument REGISTERING and use it to modify
8998         dump output appropriately.
8999         (register_jump_thread): Corresponding changes.
9000         (mark_threaded_blocks): Reinstate code to cancel unprofitable
9001         thread paths involving joiner blocks.  Add code to dump cancelled
9002         jump threading paths.
9004 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
9006         PR rtl-optimization/59477
9007         * lra-constraints.c (inherit_in_ebb): Process call for living hard
9008         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
9010 2014-01-22  Tom Tromey  <tromey@redhat.com>
9012         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
9013         PARAMS.
9014         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
9016 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9018         PR rtl-optimization/59896
9019         * lra-constraints.c (process_alt_operands): Check unused note for
9020         matched operands of insn with no output reloads.
9022 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
9024         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
9025         (mips_move_from_gpr_cost): Likewise.
9027 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9029         PR rtl-optimization/59858
9030         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
9031         ira_class_hard_regs_num.
9032         (process_alt_operands): Increase reject for dying matched operand.
9034 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
9036         PR target/59003
9037         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9038         smaller than size, perform several stores or loads and stores
9039         at dst + count - size to store or copy all of size bytes, rather
9040         than just last modesize bytes.
9042 2014-01-20  DJ Delorie  <dj@redhat.com>
9044         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9045         that CLOBBERs are REGs before propogating their values.
9047 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
9049         PR middle-end/59789
9050         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9051         (cgraph_inline_failed_type): New function.
9052         * cgraph.h (DEFCIFCODE): Add type.
9053         (cgraph_inline_failed_type_t): New enum.
9054         (cgraph_inline_failed_type): New prototype.
9055         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9056         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9057         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9058         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9059         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9060         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9061         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9062         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9063         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9064         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9065         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9066         OPTIMIZATION_MISMATCH.
9067         * tree-inline.c (expand_call_inline): Emit errors during
9068         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9070 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9072         PR target/59685
9073         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9074         mode attribute in insn output.
9076 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
9078         * output.h (output_constant): Delete.
9079         * varasm.c (output_constant): Make private.
9081 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
9083         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9085 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9087         PR middle-end/59860
9088         * tree.h (fold_builtin_strcat): New prototype.
9089         * builtins.c (fold_builtin_strcat): No longer static.  Add len
9090         argument, if non-NULL, don't call c_strlen.  Optimize
9091         directly into __builtin_memcpy instead of __builtin_strcpy.
9092         (fold_builtin_2): Adjust fold_builtin_strcat caller.
9093         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9095 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9097         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9098         for SImode_address_operand operands, having only a REG argument.
9100 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9102         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9103         loader name using mbig-endian.
9104         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9106 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9108         * doc/invoke.texi (-march): Clarify documentation for AArch64.
9109         (-mtune): Likewise.
9110         (-mcpu): Likewise.
9112 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
9114         * config/aarch64/aarch64-protos.h
9115         (aarch64_cannot_change_mode_class_ptr): Declare.
9116         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9117         aarch64_cannot_change_mode_class_ptr): New.
9118         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9119         backend hook aarch64_cannot_change_mode_class.
9121 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9123         * common/config/aarch64/aarch64-common.c
9124         (aarch64_handle_option): Don't handle any option order logic here.
9125         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9126         selected_cpu, warn on architecture version mismatch.
9127         (aarch64_override_options): Fix parsing order for option strings.
9129 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9130             Iain Sandoe  <iain@codesourcery.com>
9132         PR bootstrap/59496
9133         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9134         warning.  Amend comment to reflect current functionality.
9136 2014-01-20  Richard Biener  <rguenther@suse.de>
9138         PR middle-end/59860
9139         * builtins.c (fold_builtin_strcat): Remove case better handled
9140         by tree-ssa-strlen.c.
9142 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
9144         * config/aarch64/aarch64.opt
9145         (mcpu, march, mtune): Make case-insensitive.
9147 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9149         PR target/59880
9150         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9151         if operands[1] is a REG or ZERO_EXTEND of a REG.
9153 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
9155         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9157 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
9159         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9160         long non-pic millicode calls.
9162 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9164         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9166 2014-01-19  Kito Cheng  <kito@0xlab.org>
9168         * builtins.c (expand_movstr): Check movstr expand done or fail.
9170 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9171             H.J. Lu  <hongjiu.lu@intel.com>
9173         PR target/59379
9174         * config/i386/i386.md (*lea<mode>): Zero-extend return register
9175         to DImode for zero-extended addresses.
9177 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
9179         PR rtl-optimization/57763
9180         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9181         on the new indirect jump_insn and increment LABEL_NUSES (label).
9183 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9185         PR bootstrap/59580
9186         PR bootstrap/59583
9187         * config.gcc (x86_archs): New variable.
9188         (x86_64_archs): Likewise.
9189         (x86_cpus): Likewise.
9190         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9191         --with-arch/--with-cpu= options.
9192         Support --with-arch=/--with-cpu={nehalem,westmere,
9193         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9195 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9197         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9198         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
9200 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9202         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9204 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
9206         PR target/58944
9207         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9208         clear cpp_get_options (parse_in)->warn_unused_macros for
9209         ix86_target_macros_internal with cpp_define.
9211 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
9213         * jump.c (delete_related_insns): Keep (use (insn))s.
9214         * reorg.c (redundant_insn): Check for barriers too.
9216 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9218         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9220 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
9222         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9223         call to $$dyncall when TARGET_LONG_CALLS is true.
9225 2014-01-17  Jeff Law  <law@redhat.com>
9227         * ree.c (combine_set_extension): Temporarily disable test for
9228         changing number of hard registers.
9230 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
9232         PR middle-end/58125
9233         * ipa-inline-analysis.c (inline_free_summary):
9234         Do not free summary of aliases.
9236 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
9238         PR middle-end/59706
9239         * gimplify.c (gimplify_expr): Use create_tmp_var
9240         instead of create_tmp_var_raw.  If cond doesn't have
9241         integral type, don't add the IFN_ANNOTATE builtin at all.
9243 2014-01-17  Martin Jambor  <mjambor@suse.cz>
9245         PR ipa/59736
9246         * ipa-cp.c (prev_edge_clone): New variable.
9247         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9248         Also resize prev_edge_clone vector.
9249         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9250         (ipcp_edge_removal_hook): New function.
9251         (ipcp_driver): Register ipcp_edge_removal_hook.
9253 2014-01-17  Andrew Pinski  <apinski@cavium.com>
9254             Steve Ellcey  <sellcey@mips.com>
9256         PR target/59462
9257         * config/mips/mips.c (mips_print_operand): Check operand mode instead
9258         of operator mode.
9260 2014-01-17  Jeff Law  <law@redhat.com>
9262         PR middle-end/57904
9263         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9264         so that pass_ccp runs first.
9266 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9268         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9269         (ix86_adjust_cost): Use !TARGET_XXX.
9270         (do_reorder_for_imul): Likewise.
9271         (swap_top_of_ready_list): Likewise.
9272         (ix86_sched_reorder): Likewise.
9274 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9276         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9277         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
9278         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
9279         (intel_memset): New.  Duplicate slm_memset.
9280         (intel_cost): New.  Duplicate slm_cost.
9281         (m_INTEL): New macro.
9282         (processor_target_table): Add "intel".
9283         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9284         with PROCESSOR_INTEL for "intel".
9285         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
9286         PROCESSOR_SILVERMONT.
9287         (ix86_issue_rate): Likewise.
9288         (ix86_adjust_cost): Likewise.
9289         (ia32_multipass_dfa_lookahead): Likewise.
9290         (swap_top_of_ready_list): Likewise.
9291         (ix86_sched_reorder): Likewise.
9292         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9293         instead of TARGET_OPT_AGU.
9294         * config/i386/i386.h (TARGET_INTEL): New.
9295         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9296         (processor_type): Add PROCESSOR_INTEL.
9297         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9298         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9300 2014-01-17  Marek Polacek  <polacek@redhat.com>
9302         PR c/58346
9303         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9304         size is zero.
9306 2014-01-17  Richard Biener  <rguenther@suse.de>
9308         PR tree-optimization/46590
9309         * opts.c (default_options_table): Add entries for
9310         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
9311         all enabled at -O1 but not for -Og.
9312         * common.opt (fbranch-count-reg): Remove Init(1).
9313         (fmove-loop-invariants): Likewise.
9314         (ftree-pta): Likewise.
9316 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
9318         * config/i386/i386.c (ix86_data_alignment): For compatibility with
9319         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
9320         decls to at least the GCC 4.8 used alignments.
9322         PR fortran/59440
9323         * tree-nested.c (convert_nonlocal_reference_stmt,
9324         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
9325         of GIMPLE_BIND stmts, adjust associated decls.
9327 2014-01-17  Richard Biener  <rguenther@suse.de>
9329         PR tree-optimization/46590
9330         * vec.h (vec<>::bseach): New member function implementing
9331         binary search according to C89 bsearch.
9332         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
9333         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
9334         bitmap pointer again.  Make accesses_in_loop a flat array.
9335         (mem_ref_obstack): New global.
9336         (outermost_indep_loop): Adjust for mem_ref->stored changes.
9337         (mark_ref_stored): Likewise.
9338         (ref_indep_loop_p_2): Likewise.
9339         (set_ref_stored_in_loop): New helper function.
9340         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
9341         (memref_free): Adjust.
9342         (record_mem_ref_loc): Simplify.
9343         (gather_mem_refs_stmt): Adjust.
9344         (sort_locs_in_loop_postorder_cmp): New function.
9345         (analyze_memory_references): Sort accesses_in_loop after
9346         loop postorder number.
9347         (find_ref_loc_in_loop_cmp): New function.
9348         (for_all_locs_in_loop): Find relevant cluster of locs in
9349         accesses_in_loop and iterate without recursion.
9350         (execute_sm): Avoid uninit warning.
9351         (struct ref_always_accessed): Simplify.
9352         (ref_always_accessed::operator ()): Likewise.
9353         (ref_always_accessed_p): Likewise.
9354         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
9355         loop postorder numbers here.
9356         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
9357         numbers.
9359 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
9361         PR c++/57945
9362         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
9363         on decls for which assemble_alias has been called.
9365 2014-01-17  Nick Clifton  <nickc@redhat.com>
9367         * config/msp430/msp430.opt: (mcpu): New option.
9368         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
9369         (msp430_option_override): Parse target_cpu.  If the MCU name
9370         matches a generic string, clear target_mcu.
9371         (msp430_attr): Allow numeric interrupt values up to 63.
9372         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
9373         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
9374         option.
9375         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
9376         Add mcpu matches.
9377         * config/msp430/msp430.md (popm): Use %J rather than %I.
9378         (addsi3): Use msp430_nonimmediate_operand for operand 2.
9379         (addhi_cy_i): Use immediate_operand for operand 2.
9380         * doc/invoke.texi: Document -mcpu option.
9382 2014-01-17  Richard Biener  <rguenther@suse.de>
9384         PR rtl-optimization/38518
9385         * df.h (df_analyze_loop): Declare.
9386         * df-core.c: Include cfgloop.h.
9387         (df_analyze_1): Split out main part of df_analyze.
9388         (df_analyze): Adjust.
9389         (loop_inverted_post_order_compute): New function.
9390         (loop_post_order_compute): Likewise.
9391         (df_analyze_loop): New function avoiding whole-function
9392         postorder computes.
9393         * loop-invariant.c (find_defs): Use df_analyze_loop.
9394         (find_invariants): Adjust.
9395         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
9397 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9399         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
9400         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
9402 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
9404         * ipa-ref.c (ipa_remove_stmt_references): Fix references
9405         traversal when removing references.
9407 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
9409         PR ipa/59775
9410         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
9412 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
9414         PR middle-end/56791
9415         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
9416         pushing a reload for an autoinc when we had previously reloaded an
9417         inner part of the address.
9419 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
9421         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
9422         field.
9423         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
9424         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
9425         when not giving up or versioning for alias only because of
9426         loop->safelen.
9427         (vect_analyze_data_ref_dependences): Set to true.
9428         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
9429         is a GIMPLE_PHI.
9430         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
9431         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
9432         to the condition.
9434         PR middle-end/58344
9435         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
9437         PR target/59839
9438         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
9439         operand 0 predicate for gathers, use a new pseudo as subtarget.
9441 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
9443         PR middle-end/59609
9444         * lra-constraints.c (process_alt_operands): Add printing debug info.
9445         Check absence of input/output reloads for matched operands too.
9447 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
9449         PR rtl-optimization/59835
9450         * ira.c (ira_init_register_move_cost): Increase cost for
9451         impossible modes.
9453 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
9455         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
9457 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
9459         PR target/59780
9460         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
9461         non-register objects.  Use gen_(high/low)part more consistently.
9462         Fix assertions.
9464 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
9466         PR target/59844
9467         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
9468         endian support, remove tests for WORDS_BIG_ENDIAN.
9469         (p8_mfvsrd_3_<mode>): Likewise.
9470         (reload_gpr_from_vsx<mode>): Likewise.
9471         (reload_gpr_from_vsxsf): Likewise.
9472         (p8_mfvsrd_4_disf): Likewise.
9474 2014-01-16  Richard Biener  <rguenther@suse.de>
9476         PR rtl-optimization/46590
9477         * lcm.c (compute_antinout_edge): Use postorder iteration.
9478         (compute_laterin): Use inverted postorder iteration.
9480 2014-01-16  Nick Clifton  <nickc@redhat.com>
9482         PR middle-end/28865
9483         * varasm.c (output_constant): Return the number of bytes actually
9484         emitted.
9485         (output_constructor_array_range): Update the field size with the
9486         number of bytes emitted by output_constant.
9487         (output_constructor_regular_field): Likewise.  Also do not
9488         complain if the total number of bytes emitted is now greater
9489         than the expected fieldpos.
9490         * output.h (output_constant): Update prototype and descriptive comment.
9492 2014-01-16  Marek Polacek  <polacek@redhat.com>
9494         PR middle-end/59827
9495         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
9496         it is error_mark_node.
9498 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
9500         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
9501         VALID_AVX256_REG_OR_OI_MODE.
9503 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
9505         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
9506         current procedure should be profiled.
9508 2014-01-15  Andrew Pinski  <apinski@cavium.com>
9510         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
9511         of moving from/to the STACK_REG register class.
9513 2014-01-15  Richard Henderson  <rth@redhat.com>
9515         PR debug/54694
9516         * reginfo.c (global_regs_decl): Globalize.
9517         * rtl.h (global_regs_decl): Declare.
9518         * ira.c (do_reload): Diagnose frame_pointer_needed and it
9519         reserved via global_regs.
9521 2014-01-15  Teresa Johnson  <tejohnson@google.com>
9523         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
9525 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
9527         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
9528         and vmulosh rather than call gen_vec_widen_smult_*.
9529         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
9530         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
9531         (vec_widen_smult_even_v16qi): Likewise.
9532         (vec_widen_umult_even_v8hi): Likewise.
9533         (vec_widen_smult_even_v8hi): Likewise.
9534         (vec_widen_umult_odd_v16qi): Likewise.
9535         (vec_widen_smult_odd_v16qi): Likewise.
9536         (vec_widen_umult_odd_v8hi): Likewise.
9537         (vec_widen_smult_odd_v8hi): Likewise.
9538         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
9539         vmuloub rather than call gen_vec_widen_umult_*.
9540         (vec_widen_umult_lo_v16qi): Likewise.
9541         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
9542         vmulosb rather than call gen_vec_widen_smult_*.
9543         (vec_widen_smult_lo_v16qi): Likewise.
9544         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
9545         rather than call gen_vec_widen_umult_*.
9546         (vec_widen_umult_lo_v8hi): Likewise.
9547         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
9548         rather than call gen_vec_widen_smult_*.
9549         (vec_widen_smult_lo_v8hi): Likewise.
9551 2014-01-15  Jeff Law  <law@redhat.com>
9553         PR tree-optimization/59747
9554         * ree.c (find_and_remove_re): Properly handle case where a second
9555         eliminated extension requires widening a copy created for elimination
9556         of a prior extension.
9557         (combine_set_extension): Ensure that the number of hard regs needed
9558         for a destination register does not change when we widen it.
9560 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9562         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
9563         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
9564         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
9565         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
9566         (avr-*-rtems*): Likewise.
9567         (bfin*-rtems*): Likewise.
9568         (moxie-*-rtems*): Likewise.
9569         (h8300-*-rtems*): Likewise.
9570         (i[34567]86-*-rtems*): Likewise.
9571         (lm32-*-rtems*): Likewise.
9572         (m32r-*-rtems*): Likewise.
9573         (m68k-*-rtems*): Likewise.
9574         (microblaze*-*-rtems*): Likewise.
9575         (mips*-*-rtems*): Likewise.
9576         (powerpc-*-rtems*): Likewise.
9577         (sh-*-rtems*): Likewise.
9578         (sparc-*-rtems*): Likewise.
9579         (sparc64-*-rtems*): Likewise.
9580         (v850-*-rtems*): Likewise.
9581         (m32c-*-rtems*): Likewise.
9583 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
9585         PR rtl-optimization/59511
9586         * ira.c (ira_init_register_move_cost): Use memory costs for some
9587         cases of register move cost calculations.
9588         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
9589         instead of BB frequency.
9590         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
9591         * lra-assigns.c (find_hard_regno_for): Ditto.
9593 2014-01-15  Richard Biener  <rguenther@suse.de>
9595         PR tree-optimization/59822
9596         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
9597         (vectorizable_load): Use it to hoist defs of uses of invariant
9598         loads out of the loop.
9600 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
9601             Kugan Vivekanandarajah  <kuganv@linaro.org>
9603         PR target/59695
9604         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
9605         truncation.
9607 2014-01-15  Richard Biener  <rguenther@suse.de>
9609         PR rtl-optimization/59802
9610         * lcm.c (compute_available): Use inverted postorder to seed
9611         the initial worklist.
9613 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9615         PR target/59803
9616         * config/s390/s390.c (s390_preferred_reload_class): Don't return
9617         ADDR_REGS for invalid symrefs in non-PIC code.
9619 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
9621         PR other/58712
9622         * builtins.c (determine_block_size): Initialize *probable_max_size
9623         even if len_rtx is CONST_INT.
9625 2014-01-14  Andrew Pinski  <apinski@cavium.com>
9627         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
9628         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
9629         (cortexa53_tunings): Likewise.
9630         (aarch64_sched_issue_rate): New function.
9631         (TARGET_SCHED_ISSUE_RATE): Define.
9633 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
9635         * ira-costs.c (find_costs_and_classes): Add missed
9636         ira_init_register_move_cost_if_necessary.
9638 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
9640         PR target/59787
9641         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
9643 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
9645         PR target/59794
9646         * config/i386/i386.c (type_natural_mode): Add a bool parameter
9647         to indicate if type is used for function return value.  Warn ABI
9648         change if the vector mode isn't available for function return value.
9649         (ix86_function_arg_advance): Pass false to type_natural_mode.
9650         (ix86_function_arg): Likewise.
9651         (ix86_gimplify_va_arg): Likewise.
9652         (function_arg_32): Don't warn ABI change.
9653         (ix86_function_value): Pass true to type_natural_mode.
9654         (ix86_return_in_memory): Likewise.
9655         (ix86_struct_value_rtx): Removed.
9656         (TARGET_STRUCT_VALUE_RTX): Likewise.
9658 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
9660         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
9661         converting a conditional jump into a conditional return.
9663 2014-01-14  Richard Biener  <rguenther@suse.de>
9665         PR tree-optimization/58921
9666         PR tree-optimization/59006
9667         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
9668         hoisting invariant stmts.
9669         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
9670         invariant loads on the preheader edge if possible.
9672 2014-01-14  Joey Ye  <joey.ye@arm.com>
9674         * doc/plugin.texi (Building GCC plugins): Update to C++.
9676 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
9678         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
9679         (_mm_rcp28_round_ss): Ditto.
9680         (_mm_rsqrt28_round_sd): Ditto.
9681         (_mm_rsqrt28_round_ss): Ditto.
9682         (_mm_rcp28_sd): Ditto.
9683         (_mm_rcp28_ss): Ditto.
9684         (_mm_rsqrt28_sd): Ditto.
9685         (_mm_rsqrt28_ss): Ditto.
9686         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
9687         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
9688         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
9689         (IX86_BUILTIN_RCP28SD): Ditto.
9690         (IX86_BUILTIN_RCP28SS): Ditto.
9691         (IX86_BUILTIN_RSQRT28SD): Ditto.
9692         (IX86_BUILTIN_RSQRT28SS): Ditto.
9693         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
9694         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
9695         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
9696         (ix86_expand_special_args_builtin): Expand new FTYPE.
9697         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
9698         (srcp14<mode>): Make insn unary.
9699         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
9700         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
9701         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
9702         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
9703         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
9704         Fix rounding: make it SAE only.
9705         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
9706         Ditto.
9707         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
9708         Ditto.
9709         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
9710         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
9711         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
9712         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
9713         (round_saeonly_mask_scalar_operand4): Ditto.
9714         (round_saeonly_mask_scalar_op3): Ditto.
9715         (round_saeonly_mask_scalar_op4): Ditto.
9717 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9719         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9720         Implement -maltivec=be for vec_insert and vec_extract.
9722 2014-01-10  DJ Delorie  <dj@redhat.com>
9724         * config/msp430/msp430.md (call_internal): Don't allow memory
9725         references with SP as the base register.
9726         (call_value_internal): Likewise.
9727         * config/msp430/constraints.md (Yc): New.  For memory references
9728         that don't use SP as a base register.
9730         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
9731         "an integer without a # prefix"
9732         * config/msp430/msp430.md (epilogue_helper): Use it.
9734 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
9736         PR target/59617
9737         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
9738         AVX512F gather builtins.
9739         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
9740         on gather decls with INTEGER_TYPE masktype.
9741         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
9742         directly into the builtin rather than hoisting it before loop.
9744         PR tree-optimization/59387
9745         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
9746         (scev_const_prop): If folded_casts and type has undefined overflow,
9747         use force_gimple_operand instead of force_gimple_operand_gsi and
9748         for each added stmt if it is assign with
9749         arith_code_with_undefined_signed_overflow, call
9750         rewrite_to_defined_overflow.
9751         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
9752         gimple-fold.h instead.
9753         (arith_code_with_undefined_signed_overflow,
9754         rewrite_to_defined_overflow): Moved to ...
9755         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
9756         rewrite_to_defined_overflow): ... here.  No longer static.
9757         Include gimplify-me.h.
9758         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
9759         rewrite_to_defined_overflow): New prototypes.
9761 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9763         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
9765 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
9767         * builtins.c (get_object_alignment_2): Minor tweak.
9768         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
9770 2014-01-13  Christian Bruel  <christian.bruel@st.com>
9772         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
9773         optimized non constant lengths.
9775 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
9777         PR libgomp/59194
9778         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
9779         load as __atomic_load_N if possible.
9781 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
9783         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
9784         target parameter.
9785         (rs6000_expand_builtin): Adjust call.
9787 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
9789         PR target/58115
9790         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
9791         * config/rs6000/rs6000.c: Include target-globals.h.
9792         (rs6000_set_current_function): Instead of doing target_reinit
9793         unconditionally, use save_target_globals_default_opts and
9794         restore_target_globals.
9796         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
9797         FPSCR.
9798         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
9799         (rs6000_expand_builtin): Handle mffs and mtfsf.
9800         (rs6000_init_builtins): Define mffs and mtfsf.
9801         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
9802         (rs6000_mffs): New pattern.
9803         (rs6000_mtfsf): New pattern.
9805 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
9807         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
9808         Start narrowing with START.  Apply candidate-use pair
9809         and check overall cost in narrowing.
9810         (iv_ca_prune): Pass new argument.
9812 2014-01-10  Jeff Law  <law@redhat.com>
9814         PR middle-end/59743
9815         * ree.c (combine_reaching_defs): Ensure the defining statement
9816         occurs before the extension when optimizing extensions with
9817         different source and destination hard registers.
9819 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
9821         PR ipa/58585
9822         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
9823         vtables into the type inheritance graph.
9825 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
9827         PR rtl-optimization/59754
9828         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
9829         modes in the REGNO != REGNO case.
9831 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9833         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
9835 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
9837         PR tree-optimization/59745
9838         * tree-predcom.c (tree_predictive_commoning_loop): Call
9839         free_affine_expand_cache if giving up because components is NULL.
9841         * target-globals.c (save_target_globals): Allocate < 4KB structs using
9842         GC in payload of target_globals struct instead of allocating them on
9843         the heap and the larger structs separately using GC.
9844         * target-globals.h (struct target_globals): Make regs, hard_regs,
9845         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
9846         of GTY((skip)) and change type to void *.
9847         (reset_target_globals): Cast loads from those fields to corresponding
9848         types.
9850 2014-01-10  Steve Ellcey  <sellcey@mips.com>
9852         PR plugins/59335
9853         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
9854         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
9855         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
9857 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
9859         PR target/59744
9860         * aarch64-modes.def (CC_Zmode): New flags mode.
9861         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
9862         represents an equality.
9863         (aarch64_get_condition_code): Handle CC_Zmode.
9864         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
9866 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9868         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
9869         extraction in good case.
9871 2014-01-10  Richard Biener  <rguenther@suse.de>
9873         PR tree-optimization/59374
9874         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
9875         checking after SLP discovery.  Mark stmts not participating
9876         in any SLP instance properly.
9878 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9880         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
9881         when handling a SET rtx.
9883 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9885         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
9886         (cortex-a57): Likewise.
9887         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
9889 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9891         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
9892         non-iwmmxt builtins.
9894 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
9896         PR ipa/58252
9897         PR ipa/59226
9898         * ipa-devirt.c record_target_from_binfo): Take as argument
9899         stack of binfos and lookup matching one for virtual inheritance.
9900         (possible_polymorphic_call_targets_1): Update.
9902 2014-01-10  Huacai Chen  <chenhc@lemote.com>
9904         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
9905         kernel strings for Loongson-2E/2F/3A.
9907 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
9909         PR middle-end/59670
9910         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
9911         is_gimple_call before calling gimple_call_internal_p.
9913 2014-01-09  Steve Ellcey  <sellcey@mips.com>
9915         * Makefile.in (TREE_FLOW_H): Remove.
9916         (TREE_SSA_H): Add file names from tree-flow.h.
9917         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
9918         * tree.h: Remove tree-flow.h reference.
9919         * hash-table.h: Remove tree-flow.h reference.
9920         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
9921         reference with tree-ssa-loop.h.
9923 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9925         * doc/invoke.texi: Add -maltivec={be,le} options, and document
9926         default element-order behavior for -maltivec.
9927         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
9928         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
9929         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
9930         when targeting big endian, at least for now.
9931         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
9933 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9935         PR middle-end/47735
9936         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
9937         var satisfies use_register_for_decl, just take into account type
9938         alignment, rather than decl alignment.
9940         PR tree-optimization/59622
9941         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
9942         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
9943         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
9944         Don't devirtualize for inplace at all.  For targets.length () == 1,
9945         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
9947 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
9949         * config/i386/i386.md (cpu): Remove the unused btver1.
9951 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
9953         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
9955 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9957         PR target/58115
9958         * tree-core.h (struct target_globals): New forward declaration.
9959         (struct tree_target_option): Add globals field.
9960         * tree.h (TREE_TARGET_GLOBALS): Define.
9961         (prepare_target_option_nodes_for_pch): New prototype.
9962         * target-globals.h (struct target_globals): Define even if
9963         !SWITCHABLE_TARGET.
9964         * tree.c (prepare_target_option_node_for_pch,
9965         prepare_target_option_nodes_for_pch): New functions.
9966         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
9967         * config/i386/i386.c: Include target-globals.h.
9968         (ix86_set_current_function): Instead of doing target_reinit
9969         unconditionally, use save_target_globals_default_opts and
9970         restore_target_globals.
9972 2014-01-09  Richard Biener  <rguenther@suse.de>
9974         PR tree-optimization/59715
9975         * tree-cfg.h (split_critical_edges): Declare.
9976         * tree-cfg.c (split_critical_edges): Export.
9977         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
9979 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9981         * cfgexpand.c (expand_stack_vars): Optionally disable
9982         asan stack protection.
9983         (expand_used_vars): Likewise.
9984         (partition_stack_vars): Likewise.
9985         * asan.c (asan_emit_stack_protection): Optionally disable
9986         after return stack usage.
9987         (instrument_derefs): Optionally disable memory access instrumentation.
9988         (instrument_builtin_call): Likewise.
9989         (instrument_strlen_call): Likewise.
9990         (asan_protect_global): Optionally disable global variables protection.
9991         * doc/invoke.texi: Added doc for new options.
9992         * params.def: Added new options.
9993         * params.h: Likewise.
9995 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9997         PR rtl-optimization/59724
9998         * ifcvt.c (cond_exec_process_if_block): Don't call
9999         flow_find_head_matching_sequence with 0 longest_match.
10000         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
10001         non-active insns if !stop_after.
10002         (try_head_merge_bb): Revert 2014-01-07 changes.
10004 2014-01-08  Jeff Law  <law@redhat.com>
10006         * ree.c (get_sub_rtx): New function, extracted from...
10007         (merge_def_and_ext): Here.
10008         (combine_reaching_defs): Use get_sub_rtx.
10010 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
10012         * cgraph.h (varpool_variable_node): Do not choke on null node.
10014 2014-01-08  Catherine Moore  <clm@codesourcery.com>
10016         * config/mips/mips.md (simple_return): Attempt to use JRC
10017         for microMIPS.
10018         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
10020 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10022         PR rtl-optimization/59137
10023         * reorg.c (steal_delay_list_from_target): Call update_block for
10024         elided insns.
10025         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
10027 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10029         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10030         two duplicate entries.
10032 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10034         Revert:
10035         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
10037         * config/mips/mips.c (mips_truncated_op_cost): New function.
10038         (mips_rtx_costs): Adjust test for BADDU.
10039         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10041         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
10043         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10044         (*baddu_si): ...this new pattern.
10046 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10048         PR ipa/59722
10049         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10051 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10053         PR middle-end/57748
10054         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10055         inner_reference_p.
10056         (expand_expr, expand_normal): Adjust.
10057         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10058         inner_reference_p. Use inner_reference_p to expand inner references.
10059         (store_expr): Adjust.
10060         * cfgexpand.c (expand_call_stmt): Adjust.
10062 2014-01-08  Rong Xu  <xur@google.com>
10064         * gcov-io.c (gcov_var): Move from gcov-io.h.
10065         (gcov_position): Ditto.
10066         (gcov_is_error): Ditto.
10067         (gcov_rewrite): Ditto.
10068         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10069         only part to libgcc/libgcov.h.
10071 2014-01-08  Marek Polacek  <polacek@redhat.com>
10073         PR middle-end/59669
10074         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10076 2014-01-08  Marek Polacek  <polacek@redhat.com>
10078         PR sanitizer/59667
10079         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10081 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10083         PR rtl-optimization/59649
10084         * stor-layout.c (get_mode_bounds): For BImode return
10085         0 and STORE_FLAG_VALUE.
10087 2014-01-08  Richard Biener  <rguenther@suse.de>
10089         PR middle-end/59630
10090         * gimple.h (is_gimple_builtin_call): Remove.
10091         (gimple_builtin_call_types_compatible_p): New.
10092         (gimple_call_builtin_p): New overload.
10093         * gimple.c (is_gimple_builtin_call): Remove.
10094         (validate_call): Rename to ...
10095         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
10096         check return types.
10097         (validate_type): New static function.
10098         (gimple_call_builtin_p): New overload and adjust.
10099         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10100         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
10101         (gimple_fold_stmt_to_constant_1): Likewise.
10102         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10104 2014-01-08  Richard Biener  <rguenther@suse.de>
10106         PR middle-end/59471
10107         * gimplify.c (gimplify_expr): Gimplify register-register type
10108         VIEW_CONVERT_EXPRs to separate stmts.
10110 2014-01-07  Jeff Law  <law@redhat.com>
10112         PR middle-end/53623
10113         * ree.c (combine_set_extension): Handle case where source
10114         and destination registers in an extension insn are different.
10115         (combine_reaching_defs): Allow source and destination registers
10116         in extension to be different under limited circumstances.
10117         (add_removable_extension): Remove restriction that the
10118         source and destination registers in the extension are the same.
10119         (find_and_remove_re): Emit a copy from the extension's
10120         destination to its source after the defining insn if
10121         the source and destination registers are different.
10123         PR middle-end/59285
10124         * ifcvt.c (merge_if_block): If we are merging a block with more than
10125         one successor with a block with no successors, remove any BARRIER
10126         after the second block.
10128 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
10130         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10132 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
10134         PR target/59652
10135         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10136         for 14-bit register offsets when INT14_OK_STRICT is false.
10138 2014-01-07  Roland Stigge  <stigge@antcom.de>
10139             Michael Meissner  <meissner@linux.vnet.ibm.com>
10141         PR 57386/target
10142         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10143         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
10145 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
10147         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10148         -mcpu.
10150 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
10152         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10153         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10154         rtx is const0_rtx or not.
10156 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
10158         PR target/58115
10159         * target-globals.c (save_target_globals): Remove this_fn_optab
10160         handling.
10161         * toplev.c: Include optabs.h.
10162         (target_reinit): Temporarily restore the global options if another
10163         set of options are in force.
10165 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
10167         PR rtl-optimization/58668
10168         * cfgcleanup.c (flow_find_cross_jump): Don't count
10169         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
10170         to determine what is counted.
10171         (flow_find_head_matching_sequence): Use active_insn_p to determine
10172         what is counted.
10173         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10174         counting change.
10175         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10176         determine what is counted.
10178         PR tree-optimization/59643
10179         * tree-predcom.c (split_data_refs_to_components): If one dr is
10180         read and one write, determine_offset fails and the write isn't
10181         in the bad component, just put the read into the bad component.
10183 2014-01-07  Mike Stump  <mikestump@comcast.net>
10184             Jakub Jelinek  <jakub@redhat.com>
10186         PR pch/59436
10187         * tree-core.h (struct tree_optimization_option): Change optabs
10188         type from unsigned char * to void *.
10189         * optabs.c (init_tree_optimization_optabs): Adjust
10190         TREE_OPTIMIZATION_OPTABS initialization.
10192 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
10194         PR target/59644
10195         * config/i386/i386.h (struct machine_function): Add
10196         no_drap_save_restore field.
10197         * config/i386/i386.c (ix86_save_reg): Use
10198         !cfun->machine->no_drap_save_restore instead of
10199         crtl->stack_realign_needed.
10200         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10201         this function clears frame_pointer_needed.  Set
10202         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10203         and DRAP reg is needed.
10205 2014-01-06  Marek Polacek  <polacek@redhat.com>
10207         PR c/57773
10208         * doc/implement-c.texi: Mention that other integer types are
10209         permitted as bit-field types in strictly conforming mode.
10211 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
10213         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10214         is newly allocated.
10216 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
10218         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10220 2014-01-06  Martin Jambor  <mjambor@suse.cz>
10222         PR ipa/59008
10223         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10224         to int.
10225         * ipa-prop.c (ipa_print_node_params): Fix indentation.
10227 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10229         PR debug/59350
10230         PR debug/59510
10231         * var-tracking.c (add_stores): Preserve the value of the source even if
10232         we don't record the store.
10234 2014-01-06  Terry Guo  <terry.guo@arm.com>
10236         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10238 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
10240         PR bootstrap/59541
10241         * config/darwin.c (darwin_function_section): Adjust return values to
10242         correspond to optimisation changes made in r206070.
10244 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
10246         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10247         from prefetch_block tune setting.
10248         (nocona_cost): Correct size of prefetch block to 64.
10250 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10252         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10253         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10254         used to save the static chain register in the computation of the offset
10255         from which the FP registers need to be restored.
10257 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
10259         PR tree-optimization/59519
10260         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10261         ICE if get_current_def (current_new_name) is already non-NULL, as long
10262         as it is a phi result of some other phi in *new_exit_bb that has
10263         the same argument.
10265         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10266         or vmovdqu* for misaligned_operand.
10267         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10268         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10269         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10270         aligned_mem for AVX512F masked aligned load and store builtins and for
10271         non-temporal moves.
10273 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
10275         PR tree-optimization/59651
10276         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10277         Address range for negative step should be added by TYPE_SIZE_UNIT.
10279 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
10281         * config/m68k/m68k.c (handle_move_double): Handle pushes with
10282         overlapping registers also for registers other than the stack pointer.
10284 2014-01-03  Marek Polacek  <polacek@redhat.com>
10286         PR other/59661
10287         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10288         __builtin_FILE.
10290 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
10292         PR target/59625
10293         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10294         asm goto as jump.
10296         * config/i386/i386.md (MODE_SIZE): New mode attribute.
10297         (push splitter): Use <P:MODE_SIZE> instead of
10298         GET_MODE_SIZE (<P:MODE>mode).
10299         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10300         (mov -1, reg peephole2): Likewise.
10301         * config/i386/sse.md (*mov<mode>_internal,
10302         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10303         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10304         *<code><mode>3, *andnot<mode>3<mask_name>,
10305         <mask_codefor><code><mode>3<mask_name>): Likewise.
10306         * config/i386/subst.md (mask_mode512bit_condition,
10307         sd_mask_mode512bit_condition): Likewise.
10309 2014-01-02  Xinliang David Li  <davidxl@google.com>
10311         PR tree-optimization/59303
10312         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
10313         (dump_predicates): Better output format.
10314         (pred_equal_p): New function.
10315         (is_neq_relop_p): Ditto.
10316         (is_neq_zero_form_p): Ditto.
10317         (pred_expr_equal_p): Ditto.
10318         (pred_neg_p): Ditto.
10319         (simplify_pred): Ditto.
10320         (simplify_preds_2): Ditto.
10321         (simplify_preds_3): Ditto.
10322         (simplify_preds_4): Ditto.
10323         (simplify_preds): Ditto.
10324         (push_pred): Ditto.
10325         (push_to_worklist): Ditto.
10326         (get_pred_info_from_cmp): Ditto.
10327         (is_degenerated_phi): Ditto.
10328         (normalize_one_pred_1): Ditto.
10329         (normalize_one_pred): Ditto.
10330         (normalize_one_pred_chain): Ditto.
10331         (normalize_preds): Ditto.
10332         (normalize_cond_1): Remove function.
10333         (normalize_cond): Ditto.
10334         (is_gcond_subset_of): Ditto.
10335         (is_subset_of_any): Ditto.
10336         (is_or_set_subset_of): Ditto.
10337         (is_and_set_subset_of): Ditto.
10338         (is_norm_cond_subset_of): Ditto.
10339         (pred_chain_length_cmp): Ditto.
10340         (convert_control_dep_chain_into_preds): Type change.
10341         (find_predicates): Ditto.
10342         (find_def_preds): Ditto.
10343         (destroy_predicates_vecs): Ditto.
10344         (find_matching_predicates_in_rest_chains): Ditto.
10345         (use_pred_not_overlap_with_undef_path_pred): Ditto.
10346         (is_pred_expr_subset): Ditto.
10347         (is_pred_chain_subset_of): Ditto.
10348         (is_included_in): Ditto.
10349         (is_superset_of): Ditto.
10351 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10353         Update copyright years.
10355 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10357         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
10358         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10359         config/arc/arc.md, config/arc/arc.opt,
10360         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
10361         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
10362         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
10363         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
10364         config/linux-protos.h, config/linux.c, config/winnt-c.c,
10365         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
10366         vtable-verify.c, vtable-verify.h: Use the standard form for the
10367         copyright notice.
10369 2014-01-02  Tobias Burnus  <burnus@net-b.de>
10371         * gcc.c (process_command): Update copyright notice dates.
10372         * gcov-dump.c: Ditto.
10373         * gcov.c: Ditto.
10374         * doc/cpp.texi: Bump @copying's copyright year.
10375         * doc/cppinternals.texi: Ditto.
10376         * doc/gcc.texi: Ditto.
10377         * doc/gccint.texi: Ditto.
10378         * doc/gcov.texi: Ditto.
10379         * doc/install.texi: Ditto.
10380         * doc/invoke.texi: Ditto.
10382 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10384         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
10386 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
10388         * config/i386/sse.md (*mov<mode>_internal): Guard
10389         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
10391         PR rtl-optimization/59647
10392         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
10393         new_rtx into UNSIGNED_FLOAT rtxes.
10395 Copyright (C) 2014 Free Software Foundation, Inc.
10397 Copying and distribution of this file, with or without modification,
10398 are permitted in any medium without royalty provided the copyright
10399 notice and this notice are preserved.