PR ipa/60243
[official-gcc.git] / gcc / ChangeLog
bloba4108ad12782de1bc52d7025d223a385563ae217
1 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
3         PR ipa/60243
4         * ipa-inline.c (want_inline_small_function_p): Short circuit large
5         functions; reorganize to make cheap checks first.
6         (inline_small_functions): Do not estimate growth when dumping;
7         it is expensive.
8         * ipa-inline.h (inline_summary): Add min_size.
9         (growth_likely_positive): New function.
10         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
11         (set_cond_stmt_execution_predicate): Cleanup.
12         (estimate_edge_size_and_time): Compute min_size.
13         (estimate_calls_size_and_time): Likewise.
14         (estimate_node_size_and_time): Likewise.
15         (inline_update_overall_summary): Update min_size.
16         (do_estimate_edge_time): Likewise.
17         (do_estimate_edge_size): Update.
18         (do_estimate_edge_hints): Update.
19         (growth_likely_positive): New function.
21 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
23         PR target/60693
24         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
25         also if addr has VOIDmode.
27 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
31         Declare extern.
32         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
33         instructions as well as AdvancedSIMD loads.
35 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
38         Use crypto_aese type.
39         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
40         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
41         crypto_aese, crypto_aesmc.  Move to types.md.
42         * config/arm/types.md (crypto_aes): Split into crypto_aese,
43         crypto_aesmc.
44         * config/arm/iterators.md (crypto_type): Likewise.
46 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
48         * cgraph.c: Include expr.h and tree-dfa.h.
49         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn; remove LHS.
51 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
53         PR target/60675
54         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
55         regs from checking multi-reg pseudos.
57 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
59         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
61 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
63         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
64         if it would clobber the stack pointer, even temporarily.
66 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
68         * mode-switching.c: Make small adjustments to the top comment.
70 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
72         * config/rs6000/constraints.md (wD constraint): New constraint to
73         match the constant integer to get the top DImode/DFmode out of a
74         vector in a VSX register.
76         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
77         match the constant integer to get the top DImode/DFmode out of a
78         vector in a VSX register.
80         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
81         for ISA 2.07.
83         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
84         vbpermq builtins.
86         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
87         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
89         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
90         Optimize vec_extract of 64-bit values, where the value being
91         extracted is in the top word, where we can use scalar
92         instructions.  Add direct move and store support.  Combine the big
93         endian/little endian vector select load support into a single
94         insn.
95         (vsx_extract_<mode>_internal1): Likewise.
96         (vsx_extract_<mode>_internal2): Likewise.
97         (vsx_extract_<mode>_load): Likewise.
98         (vsx_extract_<mode>_store): Likewise.
99         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
100         combined into vsx_extract_<mode>_load.
101         (vsx_extract_<mode>_one_le): Likewise.
103         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
104         define the top 64-bit vector element.
106         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
107         constraint.
109         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
110         Document vec_vbpermq builtin.
112         PR target/60672
113         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
114         enable use of xxsldwi and xxpermdi builtin functions.
115         (vec_xxpermdi): Likewise.
117         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
118         Document use of vec_xxsldwi and vec_xxpermdi builtins.
120 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
122         PR rtl-optimization/60650
123         * lra-asign.c (find_hard_regno_for, spill_for): Add parameter
124         first_p.  Use it.
125         (find_spills_for): New.
126         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
127         Spill all pseudos on the second iteration.
129 2014-03-27  Marek Polacek  <polacek@redhat.com>
131         PR c/50347
132         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
133         types.
135 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
137         * config/s390/s390.c (s390_can_use_return_insn): Check for
138         call-saved FPRs on 31 bit.
140 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
142         PR middle-end/60682
143         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
144         if they need regimplification, just drop them instead of
145         calling gimple_regimplify_operands on them.
147 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
149         PR target/60580
150         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
151         (aarch64_frame_pointer_required): Adjust logic.
152         (aarch64_can_eliminate): Adjust logic.
153         (aarch64_override_options_after_change): Adjust logic.
155 2014-03-27  Dehao Chen  <dehao@google.com>
157         * ipa-inline.c (early_inliner): Update node's inline info.
159 2014-03-26  Dehao Chen  <dehao@google.com>
161         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
162         compiler inserted conditional jumps for NAN float check.
164 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
166         * ubsan.h (ubsan_create_data): Change second argument's type
167         to const location_t *.
168         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
169         _("<unknown>").
170         (ubsan_create_data): Change second argument to const location_t *PLOC.
171         Create Loc field whenever PLOC is non-NULL.
172         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
173         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
174         callers.
176         PR other/59545
177         * real.c (real_to_integer2): Change type of low to UHWI.
179 2014-03-26  Tobias Burnus  <burnus@net-b.de>
181         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
182         (CILK_SELF_SPECS): New define.
183         (driver_self_specs): Use it.
185 2014-03-26  Richard Biener  <rguenther@suse.de>
187         * tree-pretty-print.c (percent_K_format): Implement special
188         case for LTO and its stripped down BLOCK tree.
190 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
192         PR sanitizer/60636
193         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
195         * tree-vrp.c (simplify_internal_call_using_ranges): If only
196         one range is range_int_cst_p, but not both, at least optimize
197         addition/subtraction of 0 and multiplication by 0 or 1.
198         * gimple-fold.c (gimple_fold_call): Fold
199         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
200         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
201         INTEGER_CSTs, try to fold at least x * 0 and y - y.
203 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
205         PR rtl-optimization/60452
206         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
207         <case REG>: Return 1 for invalid offsets from the frame pointer.
209 2014-03-26  Marek Polacek  <polacek@redhat.com>
211         PR c/37428
212         * doc/extend.texi (C Extensions): Mention variable-length arrays in
213         a structure/union.
215 2014-03-26  Marek Polacek  <polacek@redhat.com>
217         PR c/39525
218         * doc/extend.texi (Designated Inits): Describe what happens to omitted
219         field members.
221 2014-03-26  Marek Polacek  <polacek@redhat.com>
223         PR other/59545
224         * ira-color.c (update_conflict_hard_regno_costs): Perform the
225         multiplication in unsigned type.
227 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
229         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
231 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
233         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
235 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
237         PR ipa/60315
238         * cif-code.def (UNREACHABLE) New code.
239         * ipa-inline.c (inline_small_functions): Skip edges to __builtlin_unreachable.
240         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
241         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
242         predicate to __bulitin_unreachable.
243         (set_cond_stmt_execution_predicate): Fix issue when invert_tree_comparison
244         returns ERROR_MARK.
245         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
246         propagate to inline clones.
247         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
248         to unreachable.
249         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
250         * cgraphclones.c (cgraph_clone_node): If call destination is already
251         ureachable, do not redirect it back.
252         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
253         unreachable.
255 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
257         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
258         Do not modify inline clones.
260 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
262         * config/i386/i386.md (general_sext_operand): New mode attr.
263         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
264         don't generate (sign_extend (const_int)).
265         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
266         operands[2].  Use We constraint instead of <i> and <general_sext_operand>
267         predicate instead of <general_operand>.
268         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
269         * config/i386/constraints.md (We): New constraint.
270         * config/i386/predicates.md (x86_64_sext_operand,
271         sext_operand): New predicates.
273 2014-03-25  Martin Jambor  <mjambor@suse.cz>
275         PR ipa/60600
276         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
277         inconsistent devirtualizations to __builtin_unreachable.
279 2014-03-25  Marek Polacek  <polacek@redhat.com>
281         PR c/35449
282         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
284 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
286         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
287         order of elements for big-endian.
289 2014-03-25  Richard Biener  <rguenther@suse.de>
291         PR middle-end/60635
292         * gimplify-me.c (gimple_regimplify_operands): Update the
293         re-gimplifed stmt.
295 2014-03-25  Martin Jambor  <mjambor@suse.cz>
297         PR ipa/59176
298         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
299         (lto_output_varpool_node): Likewise.
300         (input_overwrite_node): Likewise.
301         (input_varpool_node): Likewise.
303 2014-03-25  Richard Biener  <rguenther@suse.de>
305         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like
306         OPT_fpie.
307         (run_gcc): Likewise.
309 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
311         * combine.c (simplify_compare_const): Add MODE argument.
312         Handle mode_width 0 as very large mode_width.
313         (try_combine, simplify_comparison): Adjust callers.
315         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
316         type to avoid signed integer overflow.
317         * explow.c (plus_constant): Likewise.
319 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
321         * doc/generic.texi: Correct typos.
323 2014-03-24  Tobias Burnus  <burnus@net-b.de>
325         * doc/invoke.texi (-flto): Expand section about
326         using static libraries with LTO.
328 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
330         PR rtl-optimization/60501
331         * optabs.def (addptr3_optab): New optab.
332         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
333         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
334         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
336         * lra.c (emit_add3_insn): Use the addptr pattern if available.
338         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
340 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
342         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
343         _mm512_set1_pd.
345         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
346         (_mm256_undefined_ps): Define.
347         (_mm256_undefined_pd): Define.
348         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
349         (_mm_undefined_pd): Define.
350         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
351         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
352         (_mm512_undefined_ps): Define.
353         (_mm512_undefined_pd): Define.
354         Use _mm*_undefined_*.
355         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
357 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
359         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
360         (lshr_simd): DI mode added.
361         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
362         (aarch64_ushr_simddi): Likewise.
363         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
364         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
365         (vshrd_n_u64): Likewise.
367 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
369         * Makefile.in (s-macro_list): Depend on cc1.
371 2014-03-23  Teresa Johnson  <tejohnson@google.com>
373         * ipa-utils.c (ipa_print_order): Use specified dump file.
375 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
377         PR rtl-optimization/60601
378         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
380         * gcc.c (eval_spec_function): Initialize save_growing_value.
382 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
384         PR sanitizer/60613
385         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
386         code == MINUS_EXPR, never swap op0 with op1.
388         * toplev.c (init_local_tick): Avoid signed integer multiplication
389         overflow.
390         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
391         shift by first operand's bitsize.
393 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
395         PR target/60610
396         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
397         redefine to 1 or 0.
398         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
399         TARGET_ISA_64BIT_P(x).
401 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
403         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
404         pattern for vector nor instead of subtract from splat(-1).
405         (altivec_expand_vec_perm_const_le): Likewise.
407 2014-03-21  Richard Henderson  <rth@twiddle.net>
409         PR target/60598
410         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
411         related insns after epilogue_completed.
413 2014-03-21  Martin Jambor  <mjambor@suse.cz>
415         PR ipa/59176
416         * cgraph.h (symtab_node): New flag body_removed.
417         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
418         when removing bodies.
419         * symtab.c (dump_symtab_base): Dump body_removed flag.
420         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
421         had their bodies removed.
423 2014-03-21  Martin Jambor  <mjambor@suse.cz>
425         PR ipa/60419
426         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
427         in the border.
429 2014-03-21  Richard Biener  <rguenther@suse.de>
431         PR tree-optimization/60577
432         * tree-core.h (struct tree_base): Document nothrow_flag use
433         in VAR_DECL_NONALIASED.
434         * tree.h (VAR_DECL_NONALIASED): New.
435         (may_be_aliased): Adjust.
436         * coverage.c (build_var): Set VAR_DECL_NONALIASED.
438 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
440         * expr.c (expand_expr_real_1): Remove outdated comment.
442 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
444         PR middle-end/60597
445         * ira.c (adjust_cleared_regs): Call copy_rtx on
446         *reg_equiv[REGNO (loc)].src_p before passing it to
447         simplify_replace_fn_rtx.
449         PR target/60568
450         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
451         into CONST, put pic register as first operand of PLUS.  Use
452         gen_const_mem for both 32-bit and 64-bit PIC got loads.
454 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
456         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
458 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
460         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
461         around for store forwarding issue in the FPU on the UT699.
462         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
463         loads and operations if -mfix-ut699 is specified.
464         (divtf3_hq): Tweak attribute.
465         (sqrttf2_hq): Likewise.
467 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
469         * calls.c (store_one_arg): Remove incorrect const qualification on the
470         type of the temporary.
471         * cfgexpand.c (expand_return): Likewise.
472         * expr.c (expand_constructor): Likewise.
473         (expand_expr_real_1): Likewise.
475 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
477         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
478         of parts.
480 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
482         PR target/60039
483         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
485 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
487         * config/arm/aarch-common-protos.h
488         (alu_cost_table): Fix spelling of "extend".
489         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
491 2014-03-19  Richard Biener  <rguenther@suse.de>
493         PR middle-end/60553
494         * tree-core.h (tree_type_common): Re-order pointer members
495         to reduce recursion depth during GC walks.
497 2014-03-19  Marek Polacek  <polacek@redhat.com>
499         PR sanitizer/60569
500         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
501         before accessing it.
503 2014-03-19  Richard Biener  <rguenther@suse.de>
505         PR lto/59543
506         * lto-streamer-in.c (input_function): In WPA stage do not drop
507         debug stmts.
509 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
511         PR tree-optimization/60559
512         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
513         with build_zero_cst assignment.
515 2014-03-18  Kai Tietz  <ktietz@redhat.com>
517         PR rtl-optimization/56356
518         * sdbout.c (sdbout_parms): Verify that parms'
519         incoming argument is valid.
520         (sdbout_reg_parms): Likewise.
522 2014-03-18  Richard Henderson  <rth@redhat.com>
524         PR target/60562
525         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
526         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
527         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
529 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
531         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
532         * doc/plugins.texi (Plugin callbacks): Mention
533         PLUGIN_INCLUDE_FILE.
534         Italicize plugin event names in description.  Explain that
535         PLUGIN_PRAGMAS has no sense for lto1. Explain
536         PLUGIN_INCLUDE_FILE.
537         Remind that no GCC functions should be called after
538         PLUGIN_FINISH.
539         Explain what pragmas with expansion are.
541 2014-03-18  Martin Liska  <mliska@suse.cz>
543         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
544         gimple call statement is update.
545         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
546         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
548 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
550         PR sanitizer/60557
551         * ubsan.c (ubsan_instrument_unreachable): Call
552         initialize_sanitizer_builtins.
553         (ubsan_pass): Likewise.
555         PR sanitizer/60535
556         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
557         varpool_finalize_decl instead of rest_of_decl_compilation.
559 2014-03-18  Richard Biener  <rguenther@suse.de>
561         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
562         by using bitmap_and_compl instead of bitmap_and_compl_into.
563         (df_rd_transfer_function): Likewise.
565 2014-03-18  Richard Biener  <rguenther@suse.de>
567         * doc/lto.texi (fresolution): Fix typo.
569 2014-03-18  Richard Biener  <rguenther@suse.de>
571         * doc/invoke.texi (flto): Update for changes in 4.9.
573 2014-03-18  Richard Biener  <rguenther@suse.de>
575         * doc/loop.texi: Remove section on the removed lambda framework.
576         Update loop docs with recent changes in preserving loop structure.
578 2014-03-18  Richard Biener  <rguenther@suse.de>
580         * doc/lto.texi (-fresolution): Document.
582 2014-03-18  Richard Biener  <rguenther@suse.de>
584         * doc/contrib.texi: Adjust my name.
586 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
588         PR ipa/58721
589         * internal-fn.c: Include diagnostic-core.h.
590         (expand_BUILTIN_EXPECT): New function.
591         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
592         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
593         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
594         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
595         IFN_BUILTIN_EXPECT.
596         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
597         Revert 3 argument __builtin_expect code.
598         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
599         * gimple-fold.c (gimple_fold_call): Likewise.
600         * tree.h (fold_builtin_expect): New prototype.
601         * builtins.c (build_builtin_expect_predicate): Add predictor
602         argument, if non-NULL, create 3 argument __builtin_expect.
603         (fold_builtin_expect): No longer static.  Add ARG2 argument,
604         pass it through to build_builtin_expect_predicate.
605         (fold_builtin_2): Adjust caller.
606         (fold_builtin_3): Handle BUILT_IN_EXPECT.
607         * internal-fn.def (BUILTIN_EXPECT): New.
609 2014-03-18  Tobias Burnus  <burnus@net-b.de>
611         PR ipa/58721
612         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
613         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
614         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
616 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
618         PR ipa/58721
619         * predict.c (combine_predictions_for_bb): Fix up formatting.
620         (expr_expected_value_1, expr_expected_value): Add predictor argument,
621         fill what it points to if non-NULL.
622         (tree_predict_by_opcode): Adjust caller, use the predictor.
623         * predict.def (PRED_COMPARE_AND_SWAP): Add.
625 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
627         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
628         proper constant for the store mode.
630 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
632         * symtab.c (change_decl_assembler_name): Fix transparent alias
633         chain construction.
635 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
637         * config/aarch64/aarch64.c: Correct the comments about the
638         aarch64 stack layout.
640 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
642         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
643         check for GF_OMP_FOR_KIND_FOR.
645 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
647         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
648         ymm and zmm register names.
650 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
652         PR target/60516
653         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
654         note creation for the 2010-08-31 changes.
656 2014-03-17  Marek Polacek  <polacek@redhat.com>
658         PR middle-end/60534
659         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
660         as -fno-tree-loop-vectorize.
661         (expand_omp_simd): Likewise.
663 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
665         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
666         (eligible_for_call_delay): New prototype.
667         * config/sparc/sparc.c (tls_call_delay): Rename into...
668         (eligible_for_call_delay): ...this.  Return false if the instruction
669         cannot be put in the delay slot of a branch.
670         (eligible_for_restore_insn): Simplify.
671         (eligible_for_return_delay): Return false if the instruction cannot be
672         put in the delay slot of a branch and simplify.
673         (eligible_for_sibcall_delay): Return false if the instruction cannot be
674         put in the delay slot of a branch.
675         * config/sparc/sparc.md (fix_ut699): New attribute.
676         (tls_call_delay): Delete.
677         (in_call_delay): Reimplement.
678         (eligible_for_sibcall_delay): Rename into...
679         (in_sibcall_delay): ...this.
680         (eligible_for_return_delay): Rename into...
681         (in_return_delay): ...this.
682         (in_branch_delay): Reimplement.
683         (in_uncond_branch_delay): Delete.
684         (in_annul_branch_delay): Delete.
686 2014-03-14  Richard Henderson  <rth@redhat.com>
688         PR target/60525
689         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
690         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
691         (*floathi<X87MODEF>2_i387_with_temp): Remove.
692         (floathi splitters): Remove.
693         (float<SWI48x>xf2): New pattern.
694         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
695         code that tried to handle DImode for 32-bit, but which was excluded
696         by the pattern's condition.  Drop allocation of stack temporary.
697         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
698         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
699         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
700         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
701         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
702         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
703         (*float<SWI48><MODEF>2_sse_interunit): Remove.
704         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
705         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
706         (*float<SWI48x><X87MODEF>2_i387): Remove.
707         (all float _with_temp splitters): Remove.
708         (*float<SWI48x><MODEF>2_i387): New pattern.
709         (*float<SWI48><MODEF>2_sse): New pattern.
710         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
711         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
713 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
714             Marek Polacek  <polacek@redhat.com>
716         PR middle-end/60484
717         * common.opt (dump_base_name_prefixed): New Variable.
718         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
719         if x_dump_base_name_prefixed is already set, set it at the end.
721 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
723         PR rtl-optimization/60508
724         * lra-constraints.c (get_reload_reg): Add new parameter
725         in_subreg_p.
726         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
727         Pass the new parameter values.
729 2014-03-14  Richard Biener  <rguenther@suse.de>
731         * common.opt: Revert unintented changes from r205065.
732         * opts.c: Likewise.
734 2014-03-14  Richard Biener  <rguenther@suse.de>
736         PR middle-end/60518
737         * cfghooks.c (split_block): Properly adjust all loops the
738         block was a latch of.
740 2014-03-14  Martin Jambor  <mjambor@suse.cz>
742         PR lto/60461
743         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
744         and simplify it.
746 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
748         PR target/59396
749         * config/avr/avr.c (avr_set_current_function): Pass function name
750         through default_strip_name_encoding before sanity checking instead
751         of skipping the first char of the assembler name.
753 2014-03-13  Richard Henderson  <rth@redhat.com>
755         PR debug/60438
756         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
757         (ix86_force_to_memory, ix86_free_from_memory): Remove.
758         * config/i386/i386-protos.h: Likewise.
759         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
760         in the expander instead of a splitter.
761         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
762         any possibility of requiring a memory.
763         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
764         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
765         (fp branch splitters): Update for ix86_split_fp_branch.
766         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
767         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
768         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
769         (*fop_<MODEF>_2_i387): Remove f/r alternative.
770         (*fop_<MODEF>_3_i387): Likewise.
771         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
772         (splitters for the fop_* register patterns): Remove.
773         (fscalexf4_i387): Rename from *fscalexf4_i387.
774         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
775         
776 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
778         PR tree-optimization/59779
779         * tree-dfa.c (get_ref_base_and_extent): Use double_int
780         type for bitsize and maxsize instead of HOST_WIDE_INT.
782 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
784         PR rtl-optimization/57320
785         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
786         the CFG after thread_prologue_and_epilogue_insns.
788 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
790         PR rtl-optimization/57189
791         * lra-constraints.c (process_alt_operands): Disfavor spilling
792         vector pseudos.
794 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
796         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic
797         messages.
799 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
801         PR tree-optimization/59025
802         PR middle-end/60418
803         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
804         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
806 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
808         PR target/60486
809         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
810         calls of avr_out_plus_1.
812 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
814         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
815         BB's single pred and update the father loop's latch info later.
817 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
819         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
820         (VEC_M): Likewise.
821         (VEC_N): Likewise.
822         (VEC_R): Likewise.
823         (VEC_base): Likewise.
824         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
825         registers, we need to swap double words in little endian mode.
827         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
828         to be a container mode for 128-bit integer operations added in ISA
829         2.07.  Unlike TImode and PTImode, the preferred register set is
830         the Altivec/VMX registers for the 128-bit operations.
832         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
833         declarations.
834         (rs6000_split_128bit_ok_p): Likewise.
836         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
837         macros for creating ISA 2.07 normal and overloaded builtin
838         functions with 3 arguments.
839         (BU_P8V_OVERLOAD_3): Likewise.
840         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
841         for use as overloaded functions.
842         (VPERM_1TI_UNS): Likewise.
843         (VSEL_1TI): Likewise.
844         (VSEL_1TI_UNS): Likewise.
845         (ST_INTERNAL_1ti): Likewise.
846         (LD_INTERNAL_1ti): Likewise.
847         (XXSEL_1TI): Likewise.
848         (XXSEL_1TI_UNS): Likewise.
849         (VPERM_1TI): Likewise.
850         (VPERM_1TI_UNS): Likewise.
851         (XXPERMDI_1TI): Likewise.
852         (SET_1TI): Likewise.
853         (LXVD2X_V1TI): Likewise.
854         (STXVD2X_V1TI): Likewise.
855         (VEC_INIT_V1TI): Likewise.
856         (VEC_SET_V1TI): Likewise.
857         (VEC_EXT_V1TI): Likewise.
858         (EQV_V1TI): Likewise.
859         (NAND_V1TI): Likewise.
860         (ORC_V1TI): Likewise.
861         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
862         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
863         overloaded builtin.
864         (VADDUQM): Likewise.
865         (VSUBCUQ): Likewise.
866         (VADDEUQM): Likewise.
867         (VADDECUQ): Likewise.
868         (VSUBEUQM): Likewise.
869         (VSUBECUQ): Likewise.
871         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
872         __int128_t and __uint128_t types.
873         (__uint128_type): Likewise.
874         (altivec_categorize_keyword): Add support for vector __int128_t,
875         vector __uint128_t, vector __int128, and vector unsigned __int128
876         as a container type for TImode operations that need to be done in
877         VSX/Altivec registers.
878         (rs6000_macro_to_expand): Likewise.
879         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
880         to support 128-bit integer instructions vaddcuq, vadduqm,
881         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
882         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
884         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
885         for V1TImode, and set up preferences to use VSX/Altivec registers.
886         Setup VSX reload handlers.
887         (rs6000_debug_reg_global): Likewise.
888         (rs6000_init_hard_regno_mode_ok): Likewise.
889         (rs6000_preferred_simd_mode): Likewise.
890         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
891         (easy_altivec_constant): Likewise.
892         (output_vec_const_move): Likewise.
893         (rs6000_expand_vector_set): Convert V1TImode set and extract to
894         simple move.
895         (rs6000_expand_vector_extract): Likewise.
896         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
897         addressing.
898         (rs6000_const_vec): Add support for V1TImode.
899         (rs6000_emit_le_vsx_load): Swap double words when loading or
900         storing TImode/V1TImode.
901         (rs6000_emit_le_vsx_store): Likewise.
902         (rs6000_emit_le_vsx_move): Likewise.
903         (rs6000_emit_move): Add support for V1TImode.
904         (altivec_expand_ld_builtin): Likewise.
905         (altivec_expand_st_builtin): Likewise.
906         (altivec_expand_vec_init_builtin): Likewise.
907         (altivec_expand_builtin): Likewise.
908         (rs6000_init_builtins): Add support for V1TImode type.  Add
909         support for ISA 2.07 128-bit integer builtins.  Define type names
910         for the VSX/Altivec vector types.
911         (altivec_init_builtins): Add support for overloaded vector
912         functions with V1TImode type.
913         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
914         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
915         external function.
916         (rs6000_split_128bit_ok_p): Likewise.
917         (rs6000_handle_altivec_attribute): Create V1TImode from vector
918         __int128_t and vector __uint128_t.
920         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
921         and mode attributes.
922         (VSX_M): Likewise.
923         (VSX_M2): Likewise.
924         (VSm): Likewise.
925         (VSs): Likewise.
926         (VSr): Likewise.
927         (VSv): Likewise.
928         (VS_scalar): Likewise.
929         (VS_double): Likewise.
930         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
932         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
933         we support the ISA 2.07 128-bit integer arithmetic instructions.
934         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
935         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
936         and TImode types for use with the builtin functions.
937         (V1TI_type_node): Likewise.
938         (unsigned_V1TI_type_node): Likewise.
939         (intTI_type_internal_node): Likewise.
940         (uintTI_type_internal_node): Likewise.
942         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
943         128-bit builtin functions.
944         (UNSPEC_VADDEUQM): Likewise.
945         (UNSPEC_VADDECUQ): Likewise.
946         (UNSPEC_VSUBCUQ): Likewise.
947         (UNSPEC_VSUBEUQM): Likewise.
948         (UNSPEC_VSUBECUQ): Likewise.
949         (VM): Add V1TImode to vector mode iterators.
950         (VM2): Likewise.
951         (VI_unit): Likewise.
952         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
953         (altivec_vaddcuq): Likewise.
954         (altivec_vsubuqm): Likewise.
955         (altivec_vsubcuq): Likewise.
956         (altivec_vaddeuqm): Likewise.
957         (altivec_vaddecuq): Likewise.
958         (altivec_vsubeuqm): Likewise.
959         (altivec_vsubecuq): Likewise.
961         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
962         mode iterators.
963         (BOOL_128): Likewise.
964         (BOOL_REGS_OUTPUT): Likewise.
965         (BOOL_REGS_OP1): Likewise.
966         (BOOL_REGS_OP2): Likewise.
967         (BOOL_REGS_UNARY): Likewise.
968         (BOOL_REGS_AND_CR0): Likewise.
970         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
971         128-bit integer builtin support.
972         (vec_vadduqm): Likewise.
973         (vec_vaddecuq): Likewise.
974         (vec_vaddeuqm): Likewise.
975         (vec_vsubecuq): Likewise.
976         (vec_vsubeuqm): Likewise.
977         (vec_vsubcuq): Likewise.
978         (vec_vsubuqm): Likewise.
980         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
981         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
982         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
983         128-bit integer add/subtract to ISA 2.07.
985 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
987         * config/arc/arc.c (arc_predicate_delay_insns):
988         Fix third argument passed to conditionalize_nonjump.
990 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
992         * config/aarch64/aarch64-builtins.c
993         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
994         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
995         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
996         instead of __builtin_lfloor.
997         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
999 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
1001         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
1002         (tree_ssa_ifcombine_bb_1): New function.
1003         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
1004         is an empty forwarder block to then_bb or vice versa and then_bb
1005         and else_bb are effectively swapped.
1007 2014-03-12  Christian Bruel  <christian.bruel@st.com>
1009         PR target/60264
1010         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
1011         REG_CFA_DEF_CFA note.
1012         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
1013         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
1015 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1017         PR tree-optimization/60454
1018         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
1020 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1022         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
1023         Do not define target_cpu_default2 to generic.
1024         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
1025         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
1026         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
1028 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
1029             Marc Glisse  <marc.glisse@inria.fr>
1031         PR tree-optimization/60502
1032         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
1033         instead of build_low_bits_mask.
1035 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
1037         PR middle-end/60482
1038         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
1039         if there are multiple uses, but op doesn't live on E edge.
1040         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
1041         clobber stmts before __builtin_unreachable.
1043 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
1045         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
1046         hard_frame_pointer_rtx.
1047         * cse.c (cse_insn): Remove volatile check.
1048         * cselib.c (cselib_process_insn): Likewise.
1049         * dse.c (scan_insn): Likewise.
1051 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
1053         * config/arc/arc.c (conditionalize_nonjump): New function,
1054         broken out of ...
1055         (arc_ifcvt): ... this.
1056         (arc_predicate_delay_insns): Use it.
1058 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
1060         * config/arc/predicates.md (extend_operand): During/after reload,
1061         allow const_int_operand.
1062         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
1063         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
1064         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
1065         to "i".
1066         (umulsi3_highpart_i): Likewise.
1068 2014-03-11  Richard Biener  <rguenther@suse.de>
1070         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1071         Add asserts to guard possible wrong-code bugs.
1073 2014-03-11  Richard Biener  <rguenther@suse.de>
1075         PR tree-optimization/60429
1076         PR tree-optimization/60485
1077         * tree-ssa-structalias.c (set_union_with_increment): Properly
1078         take into account all fields that overlap the shifted vars.
1079         (do_sd_constraint): Likewise.
1080         (do_ds_constraint): Likewise.
1081         (get_constraint_for_ptr_offset): Likewise.
1083 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
1085         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
1086         (nios2_compute_frame_layout):
1087         Add calculation of cfun->machine->fp_save_offset.
1088         (nios2_expand_prologue): Correct setting of frame pointer register
1089         in prologue.
1090         (nios2_expand_epilogue): Update recovery of stack pointer from
1091         frame pointer accordingly.
1092         (nios2_initial_elimination_offset): Update calculation of offset
1093         for eliminating to HARD_FRAME_POINTER_REGNUM.
1095 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
1097         PR ipa/60457
1098         * ipa.c (symtab_remove_unreachable_nodes): Don't call
1099         cgraph_get_create_node on VAR_DECLs.
1101 2014-03-10  Richard Biener  <rguenther@suse.de>
1103         PR middle-end/60474
1104         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
1106 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
1108         * config/vms/vms.opt (vms_float_format): New variable.
1110 2014-03-08  Tobias Burnus  <burnus@net-b.de>
1112         * doc/invoke.texi (-fcilkplus): Update implementation status.
1114 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
1115             Richard Biener  <rguenther@suse.de>
1117         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
1118         consistently accross all TUs.
1119         (run_gcc): Enable -fshort-double automatically at link at link-time
1120         and disallow override.
1122 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
1124         PR target/58271
1125         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
1126         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
1127         if they can't be used.
1129 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1131         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
1132         for Solaris 11/x86 ld.
1133         * configure: Regenerate.
1135 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1137         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
1138         (LIB_TLS_SPEC): Save as ld_tls_libs.
1139         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
1140         (HAVE_AS_IX86_TLSLDM): New test.
1141         * configure, config.in: Regenerate.
1142         * config/i386/i386.c (legitimize_tls_address): Fall back to
1143         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
1144         cannot support TLS_MODEL_LOCAL_DYNAMIC.
1145         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
1146         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
1148 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
1150         * common.opt (fira-loop-pressure): Mark as optimization.
1152 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
1154         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
1155         an OpenMP mappable type.
1157 2014-03-06  Matthias Klose  <doko@ubuntu.com>
1159         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
1160         MULTILIB_OSDIRNAMES is not defined.
1162 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
1163             Meador Inge  <meadori@codesourcery.com>
1165         PR target/58595
1166         * config/arm/arm.c (arm_tls_symbol_p): Remove.
1167         (arm_legitimize_address): Call legitimize_tls_address for any
1168         arm_tls_referenced_p expression, handle constant addend.  Call it
1169         before testing for !TARGET_ARM.
1170         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
1172 2014-03-06  Richard Biener  <rguenther@suse.de>
1174         PR middle-end/60445
1175         PR lto/60424
1176         PR lto/60427
1177         Revert
1178         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
1180         * tree-streamer.c (record_common_node): Assert we don't record
1181         nodes with type double.
1182         (preload_common_node): Skip type double, complex double and double
1183         pointer since it is now frontend dependent due to fshort-double option.
1185 2014-03-06  Richard Biener  <rguenther@suse.de>
1187         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
1188         or -fno-lto is specified and the linker has full plugin support.
1189         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
1190         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
1191         * lto-wrapper.c (merge_and_complain): Merge compile-time
1192         optimization levels.
1193         (run_gcc): And pass it through to the link options.
1195 2014-03-06  Alexandre Oliva <aoliva@redhat.com>
1197         PR debug/60381
1198         Revert:
1199         2014-02-28  Alexandre Oliva <aoliva@redhat.com>
1200         PR debug/59992
1201         * cselib.c (remove_useless_values): Skip to avoid quadratic
1202         behavior if the condition moved from...
1203         (cselib_process_insn): ... here holds.
1205 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
1207         PR plugins/59335
1208         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
1209         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
1211         PR plugins/59335
1212         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
1213         (TM_H): Add x86-tune.def.
1215 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1217         * config/aarch64/aarch64.c (generic_tunings):
1218         Use cortexa57_extra_costs.
1220 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
1222         PR lto/60404
1223         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
1224         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
1225         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
1226         cost for in_lto_p.
1228 2014-03-04  Heiher  <r@hev.cc>
1230         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
1231         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
1233 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
1235         * config/i386/predicates.md (const2356_operand): Change to ...
1236         (const2367_operand): ... this.
1237         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
1238         const2367_operand.
1239         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1240         (*avx512pf_scatterpf<mode>sf): Ditto.
1241         (avx512pf_scatterpf<mode>df): Ditto.
1242         (*avx512pf_scatterpf<mode>df_mask): Ditto.
1243         (*avx512pf_scatterpf<mode>df): Ditto.
1244         * config/i386/i386.c (ix86_expand_builtin): Update
1245         incorrect hint operand error message.
1247 2014-03-04  Richard Biener  <rguenther@suse.de>
1249         * lto-section-in.c (lto_get_section_data): Fix const cast.
1251 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
1253         * tree-streamer.c (record_common_node): Assert we don't record
1254         nodes with type double.
1255         (preload_common_node): Skip type double, complex double and double
1256         pointer since it is now frontend dependent due to fshort-double option.
1258 2014-03-04  Richard Biener  <rguenther@suse.de>
1260         PR lto/60405
1261         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
1262         (lto_input_toplevel_asms): Likewise.
1263         * lto-section-in.c (lto_get_section_data): Instead do it here
1264         for every section.
1266 2014-03-04  Richard Biener  <rguenther@suse.de>
1268         PR tree-optimization/60382
1269         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
1270         dead PHIs a reduction.
1272 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
1274         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
1275         hint value.
1276         (_mm_prefetch): Move out of GCC target("sse") pragma.
1277         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
1278         GCC target("prfchw") pragma.
1279         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
1280         for locality <= 2.
1281         * config/i386/i386.c (ix86_option_override_internal): Enable
1282         -mprfchw with -mprefetchwt1.
1284 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1286         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
1287         Mark as varying.
1289 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1291         * opts.h (CL_PCH_IGNORE): Define.
1292         * targhooks.c (option_affects_pch_p):
1293         Return false for options that have CL_PCH_IGNORE set.
1294         * opt-functions.awk: Process PchIgnore.
1295         * doc/options.texi: Document PchIgnore.
1297         * config/arc/arc.opt (misize): Add PchIgnore property.
1299 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1301         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
1302         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
1303         constraint on constants to permit them being loaded into
1304         GENERAL_REGS or BASE_REGS.
1306 2014-03-03  Nick Clifton  <nickc@redhat.com>
1308         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
1309         anti-cacnonical alternatives.
1310         (negandhi3_real): New pattern.
1311         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
1313 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1315         * config/avr/avr-mcus.def: Remove atxmega16x1.
1316         * config/avr/avr-tables.opt: Regenerate.
1317         * config/avr/t-multilib: Regenerate.
1318         * doc/avr-mmcu.texi: Regenerate.
1320 2014-03-03  Tobias Grosser  <tobias@grosser.es>
1321             Mircea Namolaru  <mircea.namolaru@inria.fr>
1323         PR tree-optimization/58028
1324         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
1325         scalar dimensions.
1327 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1329         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
1330         not handled by recognizers.
1332 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
1334         PR middle-end/60175
1335         * function.c (expand_function_end): Don't emit
1336         clobber_return_register sequence if clobber_after is a BARRIER.
1337         * cfgexpand.c (construct_exit_block): Append instructions before
1338         return_label to prev_bb.
1340 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1342         * config/rs6000/constraints.md: Document reserved use of "wc".
1344 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
1346         PR ipa/60150
1347         * ipa.c (function_and_variable_visibility): When dissolving comdat
1348         group, also set all symbols to local.
1350 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
1352         PR ipa/60306
1354         Revert:
1355         2013-12-14   Jan Hubicka  <jh@suse.cz>
1356         PR middle-end/58477
1357         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
1359 2014-03-02  Jon Beniston  <jon@beniston.com>
1361         PR bootstrap/48230
1362         PR bootstrap/50927
1363         PR bootstrap/52466
1364         PR target/46898
1365         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
1366           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
1367         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
1368         (simple_return, *simple_return): New patterns
1369         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
1370         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
1372 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
1374         * dwarf2out.c (gen_subprogram_die): Tidy.
1376 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
1378         PR target/60071
1379         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
1380         (*mov_t_msb_neg_negc): ... this new insn.
1382 2014-02-28  Jason Merrill  <jason@redhat.com>
1384         PR c++/58678
1385         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
1386         function.
1388 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
1390         PR c++/60314
1391         * dwarf2out.c (decltype_auto_die): New static.
1392         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
1393         (gen_type_die_with_usage): Handle 'decltype(auto)'.
1394         (is_cxx_auto): Likewise.
1396 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
1398         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
1399         we are not using general regs only.
1401 2014-02-28  Richard Biener  <rguenther@suse.de>
1403         PR target/60280
1404         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
1405         previous fix and only allow to remove trivial pre-headers
1406         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
1407         (remove_forwarder_block): Properly update the latch of a loop.
1409 2014-02-28  Alexandre Oliva <aoliva@redhat.com>
1411         PR debug/59992
1412         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
1413         (cselib_preserved_hash_table): New.
1414         (preserve_constants_and_equivs): Move preserved vals to it.
1415         (cselib_find_slot): Look it up first.
1416         (cselib_init): Initialize it.
1417         (cselib_finish): Release it.
1418         (dump_cselib_table): Dump it.
1420 2014-02-28  Alexandre Oliva <aoliva@redhat.com>
1422         PR debug/59992
1423         * cselib.c (remove_useless_values): Skip to avoid quadratic
1424         behavior if the condition moved from...
1425         (cselib_process_insn): ... here holds.
1427 2014-02-28  Alexandre Oliva <aoliva@redhat.com>
1429         PR debug/57232
1430         * var-tracking.c (vt_initialize): Apply the same condition to
1431         preserve the CFA base value.
1433 2014-02-28  Joey Ye  <joey.ye@arm.com>
1435         PR target/PR60169
1436         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
1437         if reload in progress or completed.
1439 2014-02-28  Tobias Burnus  <burnus@net-b.de>
1441         PR middle-end/60147
1442         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
1443         NAMELIST_DECL.
1445 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
1447         * doc/tm.texi.in (Condition Code Status): Update documention for
1448         relative locations of cc0-setter and cc0-user.
1450 2014-02-27  Jeff Law  <law@redhat.com>
1452         PR rtl-optimization/52714
1453         * combine.c (try_combine): When splitting an unrecognized PARALLEL
1454         into two independent simple sets, if I3 is a jump, ensure the
1455         pattern we place into I3 is a (set (pc) ...).
1457 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
1458             Jeff Law  <law@redhat.com>
1460         PR rtl-optimization/49847
1461         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
1462         are in different blocks.
1463         * doc/tm.texi (Condition Code Status): Update documention for
1464         relative locations of cc0-setter and cc0-user.
1466 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
1468         PR target/59222
1469         * lra.c (lra_emit_add): Check SUBREG too.
1471 2014-02-27  Andreas Schwab  <schwab@suse.de>
1473         * config/m68k/m68k.c (m68k_option_override): Disable
1474         -flive-range-shrinkage for classic m68k.
1475         (m68k_override_options_after_change): Likewise.
1477 2014-02-27  Marek Polacek  <polacek@redhat.com>
1479         PR middle-end/59223
1480         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
1481         -Wmaybe-uninitialized.
1483 2014-02-27  Alan Modra  <amodra@gmail.com>
1485         PR target/57936
1486         * reload1.c (emit_input_reload_insns): When reload_override_in,
1487         set old to rl->in_reg when rl->in_reg is a subreg.
1489 2014-02-26  Richard Biener  <rguenther@suse.de>
1491         PR bootstrap/60343
1492         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
1494 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
1496         * common/config/i386/predicates.md (const1256_operand): Remove.
1497         (const2356_operand): New.
1498         (const_1_to_2_operand): Remove.
1499         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
1500         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
1501         (*avx512pf_gatherpf<mode>sf): Ditto.
1502         (avx512pf_gatherpf<mode>df): Ditto.
1503         (*avx512pf_gatherpf<mode>df_mask): Ditto.
1504         (*avx512pf_gatherpf<mode>df): Ditto.
1505         (avx512pf_scatterpf<mode>sf): Ditto.
1506         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1507         (*avx512pf_scatterpf<mode>sf): Ditto.
1508         (avx512pf_scatterpf<mode>df): Ditto.
1509         (*avx512pf_scatterpf<mode>df_mask): Ditto.
1510         (*avx512pf_scatterpf<mode>df): Ditto.
1511         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
1513 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
1515         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
1516         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
1517         (_mm512_mask_testn_epi64_mask): Move to ...
1518         * config/i386/avx512cdintrin.h: Here.
1519         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
1520         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
1521         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
1522         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
1523         TARGET_AVX512F from TARGET_AVX512CD.
1525 2014-02-26  Richard Biener  <rguenther@suse.de>
1527         PR ipa/60327
1528         * ipa.c (walk_polymorphic_call_targets): Properly guard
1529         call to inline_update_overall_summary.
1531 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
1533         PR target/60280
1534         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
1535         and latches only if requested.  Fix latch if it is removed.
1536         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
1537         LOOPS_HAVE_PREHEADERS.
1539 2014-02-25  Andrew Pinski  <apinski@cavium.com>
1541         * builtins.c (expand_builtin_thread_pointer): Create a new target
1542         when the target is NULL.
1544 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
1546         PR rtl-optimization/60317
1547         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
1548         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
1549         * lra-assigns.c: Include params.h.
1550         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
1551         other reload pseudos considerations.
1553 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1555         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
1556         to use canonical form for nor<mode>3.
1558 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1560         PR target/55426
1561         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
1562         conversions.
1564 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
1566         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
1567         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
1568         (ix86_handle_option): Handle OPT_mprefetchwt1.
1569         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
1570         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1571         PREFETCHWT1 CPUID.
1572         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
1573         OPTION_MASK_ISA_PREFETCHWT1.
1574         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
1575         (PTA_PREFETCHWT1): New.
1576         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
1577         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
1578         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
1579         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
1580         (*prefetch_avx512pf_<mode>_: Change into ...
1581         (*prefetch_prefetchwt1_<mode>: This.
1582         * config/i386/i386.opt (mprefetchwt1): New.
1583         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
1584         (_mm_prefetch): Handle intent to write.
1585         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
1587 2014-02-25  Richard Biener  <rguenther@suse.de>
1589         PR middle-end/60291
1590         * emit-rtl.c (mem_attrs_htab): Remove.
1591         (mem_attrs_htab_hash): Likewise.
1592         (mem_attrs_htab_eq): Likewise.
1593         (set_mem_attrs): Always allocate new mem-attrs when something changed.
1594         (init_emit_once): Do not allocate mem_attrs_htab.
1596 2014-02-25  Richard Biener  <rguenther@suse.de>
1598         PR lto/60319
1599         * lto-opts.c (lto_write_options): Output non-explicit conservative
1600         -fwrapv, -fno-trapv and -fno-strict-overflow.
1601         * lto-wrapper.c (merge_and_complain): Handle merging those options.
1602         (run_gcc): And pass them through.
1604 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
1606         * sel-sched.c (calculate_new_fences): New parameter ptime.
1607         Calculate it as a maximum over all fence cycles.
1608         (sel_sched_region_2): Adjust the call to calculate_new_fences.
1609         Print the final schedule timing when sched_verbose.
1611 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
1613         PR rtl-optimization/60292
1614         * sel-sched.c (fill_vec_av_set): Do not reset target availability
1615         bit fot the fence instruction.
1617 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
1619         * calls.h: Fix typo in comment.
1621 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
1623         * config/pa/pa.c (pa_output_move_double): Don't valididate when
1624         adjusting offsetable addresses.
1626 2014-02-24  Guozhi Wei  <carrot@google.com>
1628         * sparseset.h (sparseset_pop): Fix the wrong index.
1630 2014-02-24  Walter Lee  <walt@tilera.com>
1632         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
1633         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
1634         triplet.
1635         * common/config/tilegx/tilegx-common.c
1636         (TARGET_DEFAULT_TARGET_FLAGS): Define.
1637         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
1638         (LINK_SPEC): Ditto.
1639         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
1640         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
1641         (tilegx_gimplify_va_arg_expr): Handle big endian.
1642         (tilegx_expand_unaligned_load): Ditto.
1643         (tilegx_expand_unaligned_store): Ditto.
1644         (TARGET_RETURN_IN_MSB): New.
1645         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
1646         (TARGET_ENDIAN_DEFAULT): New.
1647         (TARGET_BIG_ENDIAN): Handle big endian.
1648         (BYTES_BIG_ENDIAN): Ditto.
1649         (WORDS_BIG_ENDIAN): Ditto.
1650         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
1651         (ENDIAN_SPEC): New.
1652         (EXTRA_SPECS): New.
1653         * config/tilegx/tilegx.md (extv): Handle big endian.
1654         (extzv): Ditto.
1655         (insn_st<n>): Ditto.
1656         (insn_st<n>_add<bitsuffix>): Ditto.
1657         (insn_stnt<n>): Ditto.
1658         (insn_stnt<n>_add<bitsuffix>):Ditto.
1659         (vec_interleave_highv8qi): Handle big endian.
1660         (vec_interleave_highv8qi_be): New.
1661         (vec_interleave_highv8qi_le): New.
1662         (insn_v1int_h): Handle big endian.
1663         (vec_interleave_lowv8qi): Handle big endian.
1664         (vec_interleave_lowv8qi_be): New.
1665         (vec_interleave_lowv8qi_le): New.
1666         (insn_v1int_l): Handle big endian.
1667         (vec_interleave_highv4hi): Handle big endian.
1668         (vec_interleave_highv4hi_be): New.
1669         (vec_interleave_highv4hi_le): New.
1670         (insn_v2int_h): Handle big endian.
1671         (vec_interleave_lowv4hi): Handle big endian.
1672         (vec_interleave_lowv4hi_be): New.
1673         (vec_interleave_lowv4hi_le): New.
1674         (insn_v2int_l): Handle big endian.
1675         (vec_interleave_highv2si): Handle big endian.
1676         (vec_interleave_highv2si_be): New.
1677         (vec_interleave_highv2si_le): New.
1678         (insn_v4int_h): Handle big endian.
1679         (vec_interleave_lowv2si): Handle big endian.
1680         (vec_interleave_lowv2si_be): New.
1681         (vec_interleave_lowv2si_le): New.
1682         (insn_v4int_l): Handle big endian.
1683         * config/tilegx/tilegx.opt (mbig-endian): New option.
1684         (mlittle-endian): New option.
1685         * doc/install.texi: Document tilegxbe-linux.
1686         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
1688 2014-02-24  Martin Jambor  <mjambor@suse.cz>
1690         PR ipa/60266
1691         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
1692         there are no parameter descriptors.
1694 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
1696         PR rtl-optimization/60268
1697         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
1698         initialization to ...
1699         (sched_rgn_init): ... here.
1700         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
1702 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
1704         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
1705         names.
1707 2014-02-23  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
1709         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
1710         definition.
1712 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
1714         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
1715         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
1717 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
1719         * config/microblaze/predicates.md: Add cmp_op predicate.
1720         * config/microblaze/microblaze.md: Add branch_compare instruction
1721         which uses cmp_op predicate and emits cmp insn before branch.
1722         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
1723         to microblaze_expand_conditional_branch and consolidate logic.
1724         (microblaze_expand_conditional_branch): emit branch_compare
1725         insn instead of handling cmp op separate from branch insn.
1727 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1729         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
1730         to permit subregs.
1732 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1734         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
1735         define_insn with define_expand and new define_insn
1736         *altivec_lve<VI_char>x_internal.
1737         (altivec_stve<VI_char>x): Replace define_insn with define_expand
1738         and new define_insn *altivec_stve<VI_char>x_internal.
1739         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
1740         prototype.
1741         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
1742         lve*x built-ins.
1743         (altivec_expand_stvex_be): New function.
1745 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
1747         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
1748         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
1749         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
1750         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
1752 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
1754         PR target/60298
1755         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
1756         instead of emit_move_insn.
1758 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1760         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
1761         vspltw with vsldoi.
1762         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
1763         gen_altivec_vsumsws.
1765 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1767         * config/rs6000/altivec.md (altivec_lvxl): Rename as
1768         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
1769         (altivec_lvxl_<mode>): New define_expand incorporating
1770         -maltivec=be semantics where needed.
1771         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
1772         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
1773         semantics where needed.
1774         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
1775         (altivec_stvx_<mode>): New define_expand incorporating
1776         -maltivec=be semantics where needed.
1777         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
1778         VM2 iterator instead of V4SI.
1779         (altivec_stvxl_<mode>): New define_expand incorporating
1780         -maltivec=be semantics where needed.
1781         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
1782         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
1783         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
1784         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
1785         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
1786         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
1787         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
1788         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
1789         ALTIVEC_BUILTIN_STVXL.
1790         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
1791         (altivec_expand_stvx_be): Likewise.
1792         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
1793         (altivec_expand_lvx_be): Likewise.
1794         (altivec_expand_stvx_be): Likewise.
1795         (altivec_expand_builtin): Add cases for
1796         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
1797         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
1798         (altivec_init_builtins): Add definitions for
1799         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
1800         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
1802 2014-02-21  Catherine Moore  <clm@codesourcery.com>
1804         * doc/invoke.texi (mvirt, mno-virt): Document.
1805         * config/mips/mips.opt (mvirt): New option.
1806         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
1808 2014-02-21  Richard Biener  <rguenther@suse.de>
1810         PR tree-optimization/60276
1811         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
1812         (STMT_VINFO_MIN_NEG_DIST): New macro.
1813         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
1814         STMT_VINFO_MIN_NEG_DIST.
1815         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
1816         made for negative dependence distances still hold.
1818 2014-02-21  Richard Biener  <rguenther@suse.de>
1820         PR middle-end/60291
1821         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
1822         DECL_INITIAL for globals not in the current function context.
1824 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
1826         PR tree-optimization/56490
1827         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
1828         * tree-ssa-uninit.c: Include params.h.
1829         (compute_control_dep_chain): Add num_calls argument, return false
1830         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
1831         num_calls to recursive call.
1832         (find_predicates): Change dep_chain into normal array,
1833         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
1834         variable and adjust compute_control_dep_chain caller.
1835         (find_def_preds): Likewise.
1837 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
1839         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
1840         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
1842 2014-02-21  Nick Clifton  <nickc@redhat.com>
1844         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
1845         (pushhi1): Likewise.
1846         (popqi1): Add mode to pre_dec.
1847         (pophi1): Likewise.
1849 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
1851         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
1852         mode for mask of V8SFmode permutation.
1854 2014-02-20  Richard Henderson  <rth@redhat.com>
1856         PR c++/60272
1857         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
1858         a new pseudo for OLDVAL.
1860 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
1862         PR target/57896
1863         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
1864         gen_reg_rtx if d->testing_p.
1865         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
1866         if d->testing_p and we will certainly return true.
1867         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
1868         if d->testing_p.
1870 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
1872         * emit-rtl.c (gen_reg_rtx): Assert that
1873         crtl->emit.regno_pointer_align_length is non-zero.
1875 2014-02-20  Richard Henderson  <rth@redhat.com>
1877         PR c++/60272
1878         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
1879         on failure the store back into EXPECT.
1881 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
1882             Sandra Loosemore  <sandra@codesourcery.com>
1884         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
1885         * config/nios2/nios2.c (nios2_function_profiler): Add
1886         -fPIC (flag_pic == 2) support.
1887         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
1888         (nios2_large_offset_p): New function.
1889         (nios2_unspec_reloc_p): Move up position, update to use
1890         nios2_large_offset_p.
1891         (nios2_unspec_address): Remove function.
1892         (nios2_unspec_offset): New function.
1893         (nios2_large_got_address): New function.
1894         (nios2_got_address): Add large offset support.
1895         (nios2_legitimize_tls_address): Update usage of removed and new
1896         functions.
1897         (nios2_symbol_binds_local_p): New function.
1898         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
1899         (nios2_legitimize_address): Update to use nios2_large_offset_p.
1900         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
1901         (nios2_print_operand): Merge H/L processing, add hiadj/lo
1902         processing for (const (unspec ...)).
1903         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
1905 2014-02-20  Richard Biener  <rguenther@suse.de>
1907         * tree-cfg.c (replace_uses_by): Mark altered BBs before
1908         doing the substitution.
1909         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
1911 2014-02-20  Martin Jambor  <mjambor@suse.cz>
1913         PR ipa/55260
1914         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
1915         info when checking whether lattices are bottom.
1917 2014-02-20  Richard Biener  <rguenther@suse.de>
1919         PR middle-end/60221
1920         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
1921         regions at -O0.
1923 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
1925         PR ipa/58555
1926         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
1927         parameter specifying the scaling.
1928         (inline_call): Update.
1929         (want_inline_recursively): Guard division by zero.
1930         (recursive_inlining): Update.
1931         * ipa-inline.h (clone_inlined_nodes): Update.
1933 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
1935         PR target/60204
1936         * config/i386/i386.c (classify_argument): Pass structures of size
1937         64 bytes or less in register.
1939 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
1940             Kirill Yukhin  <kirill.yukhin@intel.com>
1942         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
1943         (_mm_rcp28_round_ss): Ditto.
1944         (_mm_rsqrt28_round_sd): Ditto.
1945         (_mm_rsqrt28_round_ss): Ditto.
1946         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
1947         (_mm_rcp14_round_ss): Ditto.
1948         (_mm_rsqrt14_round_sd): Ditto.
1949         (_mm_rsqrt14_round_ss): Ditto.
1950         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
1951         the first input operand, get rid of match_dup.
1952         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
1953         attribute to sse.
1954         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
1955         Ditto.
1956         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
1957         operand as the first input operand, set type attribute.
1958         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
1959         Set type attribute.
1960         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
1961         operand as the first input operand, set type attribute.
1963 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1965         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
1966         bit of zero.
1968 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
1970         PR target/60207
1971         * config/i386/i386.c (construct_container): Remove TFmode check
1972         for X86_64_INTEGER_CLASS.
1974 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
1976         PR target/59794
1977         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
1978         only when -Wpsabi is enabled.
1980 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
1982          PR target/59799
1983         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
1984         passing arrays in registers are the same as for structs, so remove the
1985         special case for them.
1987 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
1989         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
1990         destination type, extract only the valid bits if the source type is not
1991         integral and has a different mode.
1993 2014-02-19  Richard Biener  <rguenther@suse.de>
1995         PR ipa/60243
1996         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
1997         for all calls.
1999 2014-02-19  Richard Biener  <rguenther@suse.de>
2001         PR ipa/60243
2002         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
2003         (ipa_modify_call_arguments): Emit an argument load explicitely and
2004         preserve virtual SSA form there and for the replacement call.
2005         Do not update SSA form nor free dominance info.
2007 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
2009         * ipa.c (function_and_variable_visibility): Also clear WEAK
2010         flag when disolving COMDAT_GROUP.
2012 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
2014         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
2015         * ipa-prop.c (ipa_set_jf_known_type): Return early when
2016         not devirtualizing.
2017         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
2018         do more sanity checks.
2019         (detect_type_change): Return true when giving up early.
2020         (compute_complex_assign_jump_func): Fix type parameter of
2021         ipa_set_ancestor_jf.
2022         (compute_complex_ancestor_jump_func): Likewise.
2023         (update_jump_functions_after_inlining): Fix updating of
2024         ancestor function.
2025         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
2027 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
2029         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
2030         inline clones when edge disappears.
2032 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2034         PR target/60203
2035         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
2036         Split 64-bit moves into 2 patterns.  Do not allow the use of
2037         direct move for TDmode in little endian, since the decimal value
2038         has little endian bytes within a word, but the 64-bit pieces are
2039         ordered in a big endian fashion, and normal subreg's of TDmode are
2040         not allowed.
2041         (mov<mode>_64bit_dm): Likewise.
2042         (movtd_64bit_nodm): Likewise.
2044 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2046         PR tree-optimization/60174
2047         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
2048         statement of an SSA_NAME that occurs in an abnormal PHI node.
2050 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
2052         PR sanitizer/60142
2053         * final.c (SEEN_BB): Remove.
2054         (SEEN_NOTE, SEEN_EMITTED): Renumber.
2055         (final_scan_insn): Don't force_source_line on second
2056         NOTE_INSN_BASIC_BLOCK.
2058 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
2060         PR target/60205
2061         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
2062         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
2063         (type_natural_mode): Warn ABI change when %zmm register is not
2064         available for AVX512F vector value passing.
2066 2014-02-18  Kai Tietz  <ktietz@redhat.com>
2068         PR target/60193
2069         * config/i386/i386.c (ix86_expand_prologue): Use value in
2070         rax register as displacement when restoring %r10 or %rax.
2071         Fix wrong offset when restoring both registers.
2073 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2075         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
2076         assertion with conditional return.
2078 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
2079             Uros Bizjak  <ubizjak@gmail.com>
2081         PR driver/60233
2082         * config/i386/driver-i386.c (host_detect_local_cpu): If
2083         YMM state is not saved by the OS, also clear has_f16c.  Move
2084         CPUID 0x80000001 handling before YMM state saving checking.
2086 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
2088         PR rtl-optimization/58960
2089         * haifa-sched.c (alloc_global_sched_pressure_data): New,
2090         factored out from ...
2091         (sched_init): ... here.
2092         (free_global_sched_pressure_data): New, factored out from ...
2093         (sched_finish): ... here.
2094         * sched-int.h (free_global_sched_pressure_data): Declare.
2095         * sched-rgn.c (nr_regions_initial): New static global.
2096         (haifa_find_rgns): Initialize it.
2097         (schedule_region): Disable sched-pressure for the newly
2098         generated regions.
2100 2014-02-17  Richard Biener  <rguenther@suse.de>
2102         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
2103         release SSA defs of pattern stmts.
2105 2014-02-17  Richard Biener  <rguenther@suse.de>
2107         * tree-inline.c (expand_call_inline): Release the virtual
2108         operand defined by the call we are about to inline.
2110 2014-02-17  Richard Biener  <rguenther@suse.de>
2112         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
2114 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
2115             Ilya Tocar  <ilya.tocar@intel.com>
2117         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
2118         arguments order in builtin.
2119         (_mm512_permutexvar_epi64): Ditto.
2120         (_mm512_mask_permutexvar_epi64): Ditto
2121         (_mm512_maskz_permutexvar_epi32): Ditto
2122         (_mm512_permutexvar_epi32): Ditto
2123         (_mm512_mask_permutexvar_epi32): Ditto
2125 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2127         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
2128         (p8_vmrgow): Likewise.
2130 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2132         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
2133         endian targets.
2135 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2137         PR target/60203
2138         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
2139         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
2140         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
2141         using direct move instructions on ISA 2.07.  Also adjust
2142         instruction length for 64-bit.
2143         (mov<mode>_64bit, TFmode/TDmode): Likewise.
2144         (mov<mode>_32bit, TFmode/TDmode): Likewise.
2146 2014-02-15  Alan Modra  <amodra@gmail.com>
2148         PR target/58675
2149         PR target/57935
2150         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
2151         find_replacement on parts of insn rtl that might be reloaded.
2153 2014-02-15  Richard Biener  <rguenther@suse.de>
2155         PR tree-optimization/60183
2156         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
2157         (tree_ssa_phiprop): Calculate and free post-dominators.
2159 2014-02-14  Jeff Law  <law@redhat.com>
2161         PR rtl-optimization/60131
2162         * ree.c (get_extended_src_reg): New function.
2163         (combine_reaching_defs): Use it rather than assuming location of REG.
2164         (find_and_remove_re): Verify first operand of extension is
2165         a REG before adding the insns to the copy list.
2167 2014-02-14  Roland McGrath  <mcgrathr@google.com>
2169         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
2170         * configure: Regenerated.
2171         * config.in: Regenerated.
2172         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
2173         instead of ASM_SHORT.
2175 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
2176             Richard Earnshaw  <rearnsha@arm.com>
2178         PR rtl-optimization/59535
2179         * lra-constraints.c (process_alt_operands): Encourage alternative
2180         when unassigned pseudo class is superset of the alternative class.
2181         (inherit_reload_reg): Don't inherit when optimizing for code size.
2182         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
2183         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
2184         modes not less than 4 for Thumb1.
2186 2014-02-14  Kyle McMartin  <kyle@redhat.com>
2188         PR pch/60010
2189         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
2191 2014-02-14  Richard Biener  <rguenther@suse.de>
2193         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
2194         (get_frame_arg): Drop the assert with langhook types_compatible_p.
2195         Do not strip INDIRECT_REFs.
2197 2014-02-14  Richard Biener  <rguenther@suse.de>
2199         PR lto/60179
2200         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
2201         DECL_FUNCTION_SPECIFIC_TARGET.
2202         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
2203         * tree-streamer-out.c (pack_ts_target_option): Remove.
2204         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
2205         (write_ts_function_decl_tree_pointers): Do not stream
2206         DECL_FUNCTION_SPECIFIC_TARGET.
2207         * tree-streamer-in.c (unpack_ts_target_option): Remove.
2208         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
2209         (lto_input_ts_function_decl_tree_pointers): Do not stream
2210         DECL_FUNCTION_SPECIFIC_TARGET.
2212 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
2214         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
2215         (get_initial_def_for_induction, vectorizable_induction): Ignore
2216         debug stmts when looking for exit_phi.
2217         (vectorizable_live_operation): Fix up condition.
2219 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
2221         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
2222         nreverse() because it changes the content of original tree list.
2224 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
2226         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
2227         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
2229 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
2231         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
2232         GNU coding standards.
2234 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
2236         PR debug/60152
2237         * dwarf2out.c (gen_subprogram_die): Don't call
2238         add_calling_convention_attribute if subr_die is old_die.
2240 2014-02-13  Sharad Singhai  <singhai@google.com>
2242         * doc/optinfo.texi: Fix order of nodes.
2244 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
2246         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
2247         operands[2], not operands[3].
2249 2014-02-13  Richard Biener  <rguenther@suse.de>
2251         PR bootstrap/59878
2252         * doc/install.texi (ISL): Update recommended version to 0.12.2,
2253         mention the possibility of an in-tree build.
2254         (CLooG): Update recommended version to 0.18.1, mention the
2255         possibility of an in-tree build and clarify that the ISL
2256         bundled with CLooG does not work.
2258 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
2260         PR target/43546
2261         * expr.c (compress_float_constant): If x is a hard register,
2262         extend into a pseudo and then move to x.
2264 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2266         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
2267         caused by bad second argument to warning_at() with -mhotpatch and
2268         nested functions (e.g. with gfortran).
2270 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
2272         * opts.c (option_name): Remove "enabled by default" rider.
2274 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
2276         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
2278 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2279             Uros Bizjak  <ubizjak@gmail.com>
2281         PR target/60151
2282         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
2283         * configure: Regenerated.
2285 2014-02-12  Richard Biener  <rguenther@suse.de>
2287         * vec.c (vec_prefix::calculate_allocation): Move as
2288         inline variant to vec.h.
2289         (vec_prefix::calculate_allocation_1): New out-of-line version.
2290         * vec.h (vec_prefix::calculate_allocation_1): Declare.
2291         (vec_prefix::m_has_auto_buf): Rename to ...
2292         (vec_prefix::m_using_auto_storage): ... this.
2293         (vec_prefix::calculate_allocation): Inline the easy cases
2294         and dispatch to calculate_allocation_1 which doesn't need the
2295         prefix address.
2296         (va_heap::reserve): Use gcc_checking_assert.
2297         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
2298         m_using_auto_storage.
2299         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
2300         member and adjust.
2301         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
2302         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
2303         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
2305 2014-02-12  Richard Biener  <rguenther@suse.de>
2307         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
2308         when we found a dependence.
2310 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
2312         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
2313         common code...
2314         (maybe_fold_stmt): ... into this new function.
2315         * omp-low.c (lower_omp): Update comment.
2317         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
2318         last use.
2320         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
2321         dereference.
2323 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
2325         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
2326         identifiers in comments.
2327         (cortexa53_extra_costs): Likewise.
2328         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
2329         (cortexa7_extra_costs): Likewise.
2330         (cortexa12_extra_costs): Likewise.
2331         (cortexa15_extra_costs): Likewise.
2332         (v7m_extra_costs): Likewise.
2334 2014-02-12  Richard Biener  <rguenther@suse.de>
2336         PR middle-end/60092
2337         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
2338         of posix_memalign being successful.
2339         (lower_stmt): Restrict lowering of posix_memalign to when
2340         -ftree-bit-ccp is enabled.
2342 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2344         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
2345         arg_loc.
2346         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2348 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
2350         PR rtl-optimization/60116
2351         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
2352         other_insn once the combination has been validated.
2354 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
2356         PR lto/59468
2357         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
2358         and wrapper.
2359         * ipa-devirt.c: Include demangle.h
2360         (odr_violation_reported): New static variable.
2361         (add_type_duplicate): Update odr_violations.
2362         (maybe_record_node): Add completep parameter; update it.
2363         (record_target_from_binfo): Add COMPLETEP parameter;
2364         update it as needed.
2365         (possible_polymorphic_call_targets_1): Likewise.
2366         (struct polymorphic_call_target_d): Add nonconstruction_targets;
2367         rename FINAL to COMPLETE.
2368         (record_targets_from_bases): Sanity check we found the binfo;
2369         fix COMPLETEP updating.
2370         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
2371         parameter, fix computing of COMPLETEP.
2372         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
2373         at LTO time do demangling.
2374         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
2375         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
2376         parameter.
2377         (gimple_get_virt_method_for_binfo): Likewise.
2378         * gimple-fold.h (gimple_get_virt_method_for_binfo,
2379         gimple_get_virt_method_for_vtable): Update prototypes.
2381 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
2383         PR target/49008
2384         * genautomata.c (add_presence_absence): Fix typo with
2385         {final_}presence_list.
2387 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2389         PR target/60137
2390         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
2391         for VSX/Altivec vectors that land in GPR registers.
2393 2014-02-11  Richard Henderson  <rth@redhat.com>
2394             Jakub Jelinek  <jakub@redhat.com>
2396         PR debug/59776
2397         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
2398         around drhs if type conversion to lacc->type is not useless.
2400 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2402         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
2403         tuning struct.
2404         (cortex-a57.cortex-a53): Likewise.
2405         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
2407 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2409         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
2410         arm_restrict_it.
2412 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
2414         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
2415         add_options_for_arm_vfp3.
2417 2014-02-11  Jeff Law  <law@redhat.com>
2419         PR middle-end/54041
2420         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
2421         object with an undesirable mode.
2423 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2425         PR libgomp/60107
2426         * config/i386/sol2-9.h: New file.
2427         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
2428         *-*-solaris2.9*): Use it.
2430 2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
2432         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
2433         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
2435 2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
2437         * config/microblaze/microblaze.c: Extend mcpu version format
2439 2014-02-10  David Holsgrove <david.holsgrove@xilinx.com>
2441         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
2443 2014-02-10  Richard Henderson  <rth@redhat.com>
2445         PR target/59927
2446         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
2447         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
2448         ms-abi vs -mno-accumulate-outgoing-args.
2449         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
2450         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
2451         respect to ms-abi.
2453 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2455         PR middle-end/60080
2456         * cfgexpand.c (expand_asm_operands): Attach source location to
2457         ASM_INPUT rtx objects.
2458         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
2460 2014-02-10  Nick Clifton  <nickc@redhat.com>
2462         * config/mn10300/mn10300.c (popcount): New function.
2463         (mn10300_expand_prologue): Include saved registers in stack usage
2464         count.
2466 2014-02-10  Jeff Law  <law@redhat.com>
2468         PR middle-end/52306
2469         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
2470         when changing the SET_DEST of a prior insn to avoid an input reload.
2472 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2474         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
2475         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
2476         -mcall-openbsd, or -mcall-linux.
2477         (CC1_ENDIAN_BIG_SPEC): Remove.
2478         (CC1_ENDIAN_LITTLE_SPEC): Remove.
2479         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2480         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
2481         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
2482         and %cc1_endian_default.
2483         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2485 2014-02-10  Richard Biener  <rguenther@suse.de>
2487         PR tree-optimization/60115
2488         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
2489         MEM_REF handling.  Properly verify that the accesses are not
2490         out of the objects bound.
2492 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2494         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
2495         coretex to cortex.
2497 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
2499         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
2500         proper constants and fix formatting.
2501         (possible_polymorphic_call_targets): Fix formatting.
2503 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
2504             Ilya Tocar  <ilya.tocar@intel.com>
2506         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
2507         (_mm512_loadu_epi32): Renamed into...
2508         (_mm512_loadu_si512): This.
2509         (_mm512_storeu_epi32): Renamed into...
2510         (_mm512_storeu_si512): This.
2511         (_mm512_maskz_ceil_ps): Removed.
2512         (_mm512_maskz_ceil_pd): Ditto.
2513         (_mm512_maskz_floor_ps): Ditto.
2514         (_mm512_maskz_floor_pd): Ditto.
2515         (_mm512_floor_round_ps): Ditto.
2516         (_mm512_floor_round_pd): Ditto.
2517         (_mm512_ceil_round_ps): Ditto.
2518         (_mm512_ceil_round_pd): Ditto.
2519         (_mm512_mask_floor_round_ps): Ditto.
2520         (_mm512_mask_floor_round_pd): Ditto.
2521         (_mm512_mask_ceil_round_ps): Ditto.
2522         (_mm512_mask_ceil_round_pd): Ditto.
2523         (_mm512_maskz_floor_round_ps): Ditto.
2524         (_mm512_maskz_floor_round_pd): Ditto.
2525         (_mm512_maskz_ceil_round_ps): Ditto.
2526         (_mm512_maskz_ceil_round_pd): Ditto.
2527         (_mm512_expand_pd): Ditto.
2528         (_mm512_expand_ps): Ditto.
2529         * config/i386/i386.c (ix86_builtins): Remove
2530         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
2531         (bdesc_args): Ditto.
2532         * config/i386/predicates.md (const1256_operand): New.
2533         (const_1_to_2_operand): Ditto.
2534         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
2535         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
2536         (*avx512pf_gatherpf<mode>sf): Ditto.
2537         (avx512pf_gatherpf<mode>df): Ditto.
2538         (*avx512pf_gatherpf<mode>df_mask): Ditto.
2539         (*avx512pf_gatherpf<mode>df): Ditto.
2540         (avx512pf_scatterpf<mode>sf): Ditto.
2541         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
2542         (*avx512pf_scatterpf<mode>sf): Ditto.
2543         (avx512pf_scatterpf<mode>df): Ditto.
2544         (*avx512pf_scatterpf<mode>df_mask): Ditto.
2545         (*avx512pf_scatterpf<mode>df): Ditto.
2546         (avx512f_expand<mode>): Removed.
2547         (<shift_insn><mode>3<mask_name>): Change predicate type.
2549 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
2551         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
2552         not at the end of datarefs vector use ordered_remove to avoid
2553         reordering datarefs vector.
2555         PR c/59984
2556         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
2557         mark local addressable non-static vars as GOVD_PRIVATE
2558         instead of GOVD_LOCAL.
2559         * omp-low.c (lower_omp_for): Move gimple_bind_vars
2560         and BLOCK_VARS of gimple_bind_block to new_stmt rather
2561         than copying them.
2563         PR middle-end/60092
2564         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
2565         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
2566         assume_aligned or alloc_align attributes.
2567         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
2568         arguments.  Handle also assume_aligned and alloc_align attributes.
2569         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
2570         calls to functions with assume_aligned or alloc_align attributes.
2571         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
2573 2014-02-08  Terry Guo  <terry.guo@arm.com>
2575         * doc/invoke.texi: Document ARM -march=armv7e-m.
2577 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
2579         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
2580         flag on __cilkrts_rethrow builtin.
2582         PR ipa/60026
2583         * ipa-cp.c (determine_versionability): Fail at -O0
2584         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
2585         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
2587         Revert:
2588         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
2590         PR ipa/60026
2591         * tree-inline.c (copy_forbidden): Fail for
2592         __attribute__((optimize (0))) functions.
2594 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
2596         * varpool.c: Include pointer-set.h.
2597         (varpool_remove_unreferenced_decls): Variables in other partitions
2598         will not be output; be however careful to not lose information
2599         about partitioning.
2601 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
2603         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
2604         lookup in the vtable constructor.
2606 2014-02-07  Jeff Law  <law@redhat.com>
2608         PR target/40977
2609         * config/m68k/m68k.md (ashldi_extsi): Turn into a
2610         define_insn_and_split.
2612         * ipa-inline.c (inline_small_functions): Fix typos.
2614 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2616         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
2617         (s390_can_use_return_insn): Declare.
2618         * config/s390/s390.h (EPILOGUE_USES): Define.
2619         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
2620         instructions.
2621         (s390_chunkify_start): Handle return JUMP_LABELs.
2622         (s390_early_mach): Emit a main_pool instruction on the entry edge.
2623         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
2624         (s390_can_use_return_insn): New functions.
2625         (s390_fix_long_loop_prediction): Handle conditional returns.
2626         (TARGET_SET_UP_BY_PROLOGUE): Define.
2627         * config/s390/s390.md (ANY_RETURN): New code iterator.
2628         (*creturn, *csimple_return, return, simple_return): New patterns.
2630 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2632         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
2633         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
2634         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
2635         REG_CFA_RESTORE list when deciding not to restore a register.
2637 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2639         * config/s390/s390.c: Include tree-pass.h and context.h.
2640         (s390_early_mach): New function, split out from...
2641         (s390_emit_prologue): ...here.
2642         (pass_data_s390_early_mach): New pass structure.
2643         (pass_s390_early_mach): New class.
2644         (s390_option_override): Create and register early_mach pass.
2645         Move to end of file.
2647 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2649         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
2650         to match for the exit block.
2652 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2654         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
2655         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
2656         Reject misaligned operands.
2658 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2660         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
2662 2014-02-07  Richard Biener  <rguenther@suse.de>
2664         PR middle-end/60092
2665         * gimple-low.c (lower_builtin_posix_memalign): New function.
2666         (lower_stmt): Call it to lower posix_memalign in a way
2667         to make alignment info accessible.
2669 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
2671         PR c++/60082
2672         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
2673         __builtin_setjmp_receiver.
2675 2014-02-07  Richard Biener  <rguenther@suse.de>
2677         PR middle-end/60092
2678         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
2679         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
2680         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2681         Handle BUILT_IN_POSIX_MEMALIGN.
2682         (find_func_clobbers): Likewise.
2683         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2684         (call_may_clobber_ref_p_1): Likewise.
2686 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
2688         PR ipa/59918
2689         * ipa-devirt.c (record_target_from_binfo): Remove overactive
2690         sanity check.
2692 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
2694         PR ipa/59469
2695         * lto-cgraph.c (lto_output_node): Use
2696         symtab_get_symbol_partitioning_class.
2697         (lto_output_varpool_node): likewise.
2698         (symtab_get_symbol_partitioning_class): Move here from
2699         lto/lto-partition.c
2700         * cgraph.h (symbol_partitioning_class): Likewise.
2701         (symtab_get_symbol_partitioning_class): Declare.
2703 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
2705         * ggc.h (ggc_internal_cleared_alloc): New macro.
2706         * vec.h (vec_safe_copy): Handle memory stats.
2707         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
2708         * target-globals.c (save_target_globals): Likewise.
2710 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
2712         PR target/60077
2713         * expr.c (emit_move_resolve_push): Export; be bit more selective
2714         on when to clear alias set.
2715         * expr.h (emit_move_resolve_push): Declare.
2716         * function.h (struct function): Add tail_call_marked.
2717         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
2718         * config/i386/i386-protos.h (ix86_expand_push): Remove.
2719         * config/i386/i386.md (TImode move expander): De not call
2720         ix86_expand_push.
2721         (FP push expanders): Preserve memory attributes.
2722         * config/i386/sse.md (push<mode>1): Remove.
2723         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
2724         (ix86_expand_push): Remove.
2725         * config/i386/mmx.md (push<mode>1): Remove.
2727 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
2729         PR rtl-optimization/60030
2730         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
2731         lopart with paradoxical subreg before shifting it up by hprec.
2733 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2735         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
2736         Remove extra newline at end of file.
2737         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
2738         (arm_issue_rate): Handle cortexa57.
2739         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
2740         (cortex-a57.cortex-a53): Likewise.
2742 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
2744         PR target/59575
2745         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
2746         don't record in REG_FRAME_RELATED_EXPR registers not set in that
2747         bitmask.
2748         (arm_expand_prologue): Adjust all callers.
2749         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
2750         info, registers also at the lowest numbered registers side.  Use
2751         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
2752         XEXP.
2754         PR debug/59992
2755         * var-tracking.c (adjust_mems): Before adding a SET to
2756         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
2758 2014-02-06  Alan Modra  <amodra@gmail.com>
2760         PR target/60032
2761         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
2762         change SDmode to DDmode when lra_in_progress.
2764 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
2766         PR middle-end/59150
2767         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
2768         free_data_ref on the dr first, and before goto again also set dr
2769         to the next dr.  For simd_lane_access, free old datarefs[i] before
2770         overwriting it.  For get_vectype_for_scalar_type failure, don't
2771         free_data_ref if simd_lane_access.
2773         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
2775         PR target/60062
2776         * tree.h (opts_for_fn): New inline function.
2777         (opt_for_fn): Define.
2778         * config/i386/i386.c (ix86_function_regparm): Use
2779         opt_for_fn (decl, optimize) instead of optimize.
2781 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2783         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
2784         for SYMBOL_REF in large memory model.
2786 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2788         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
2789         and crypto support.
2790         (cortex-a57): Likewise.
2791         (cortex-a57.cortex-a53): Likewise.
2793 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
2794             Kugan Vivekanandarajah  <kuganv@linaro.org>
2796         * config/arm/arm.c (arm_vector_alignment_reachable): Check
2797         unaligned_access.
2798         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
2800 2014-02-06  Richard Biener  <rguenther@suse.de>
2802         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
2803         set_loop_copy and initialize_original_copy_tables.
2805 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
2807         * config/aarch64/aarch64-simd.md
2808         (aarch64_ashr_simddi): Change QI to SI.
2810 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
2811             Jakub Jelinek  <jakub@redhat.com>
2813         PR middle-end/60013
2814         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
2815         of the dataflow.
2817 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2819         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
2820         CODE_FOR_altivec_vpku[hw]um to
2821         CODE_FOR_altivec_vpku[hw]um_direct.
2822         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
2823         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
2824         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
2825         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
2827 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2829         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
2830         generation for -maltivec=be.
2831         (altivec_vsumsws): Simplify redundant test.
2833 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2835         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
2836         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
2837         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
2838         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
2839         gen_altivec_vpkuwum.
2840         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
2841         BYTES_BIG_ENDIAN.
2842         (altivec_vpks<VI_char>ss): Likewise.
2843         (altivec_vpks<VI_char>us): Likewise.
2844         (altivec_vpku<VI_char>us): Likewise.
2845         (altivec_vpku<VI_char>um): Likewise.
2846         (altivec_vpku<VI_char>um_direct): New (copy of
2847         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
2848         internal use).
2849         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
2850         target is little endian and -maltivec=be is not specified.
2851         (*altivec_vupkhs<VU_char>_direct): New (copy of
2852         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
2853         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
2854         target is little endian and -maltivec=be is not specified.
2855         (*altivec_vupkls<VU_char>_direct): New (copy of
2856         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
2857         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
2858         little endian and -maltivec=be is not specified.
2859         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
2860         little endian and -maltivec=be is not specified.
2862 2014-02-05  Richard Henderson  <rth@redhat.com>
2864         PR debug/52727
2865         * combine-stack-adj.c: Revert r206943.
2866         * sched-int.h (struct deps_desc): Add last_args_size.
2867         * sched-deps.c (init_deps): Initialize it.
2868         (sched_analyze_insn): Add OUTPUT dependencies between insns that
2869         contain REG_ARGS_SIZE notes.
2871 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
2873         * lto-cgraph.c (asm_nodes_output): Make global.
2874         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
2875         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
2876         (driver_handle_option): Handle OPT_fwpa.
2878 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
2880         PR ipa/59947
2881         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
2882         a comment typo and formatting issue.  If odr_hash hasn't been
2883         created, return vNULL and set *completep to false.
2885         PR middle-end/57499
2886         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
2887         bb with no successors.
2889 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
2891         PR target/59718
2892         * doc/invoke.texi (-march): Clarify documentation for ARM.
2893         (-mtune): Likewise.
2894         (-mcpu): Likewise.
2896 2014-02-05  Richard Biener  <rguenther@suse.de>
2898         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
2899         when not vectorizing because of too many alias checks.
2900         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2901         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
2903 2014-02-05  Nick Clifton  <nickc@redhat.com>
2905         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
2906         accept extended registers in any mode when compiling for the MN10300.
2908 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
2910         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
2911         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
2912         sanitization attributes.
2913         (can_inline_edge_p): Likewise.
2914         (sanitize_attrs_match_for_inline_p): New function.
2916 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
2918         * ipa-prop.c (detect_type_change): Shor circuit testing of
2919         type changes on THIS pointer.
2921 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
2923         PR target/59777
2924         * config/pa/pa.c (legitimize_tls_address): Return original address
2925         if not passed a SYMBOL_REF rtx.
2926         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
2927         addresses.
2928         (pa_emit_move_sequence): Simplify TLS source operands.
2929         (pa_legitimate_constant_p): Reject all TLS constants.
2930         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
2931         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
2933 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
2935         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
2936         groups when we know they are controlled by LTO.
2937         * varasm.c (default_binds_local_p_1): If object is in other partition,
2938         it will be resolved locally.
2940 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2942         * config/host-linux.c (linux_gt_pch_use_address): Don't
2943         use SSIZE_MAX because it is not always defined.
2945 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
2947         PR bootstrap/59913
2948         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
2949         threshold for pseudo splitting.
2950         (update_ebb_live_info): Process call argument hard registers and
2951         hard registers from insn definition too.
2952         (max_small_class_regs_num): New constant.
2953         (inherit_in_ebb): Update live hard regs through EBBs.  Update
2954         reloads_num only for small register classes.  Don't split for
2955         outputs of jumps.
2957 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
2959         PR ipa/60058
2960         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
2961         is non-null.
2963 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
2965         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
2966         visibility is safe.
2968 2014-02-04  Marek Polacek  <polacek@redhat.com>
2970         * gdbinit.in (pel): Define.
2972 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2974         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
2975         behavior.
2977 2014-02-04  Richard Biener  <rguenther@suse.de>
2979         PR lto/59723
2980         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
2981         in function context local.
2982         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
2983         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
2984         similar to LTO_imported_decl_ref.
2986 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
2988         PR tree-optimization/60002
2989         * cgraphclones.c (build_function_decl_skip_args): Clear
2990         DECL_LANG_SPECIFIC.
2992         PR tree-optimization/60023
2993         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
2994         false to gsi_replace.
2995         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
2996         has been in some EH region and vec_stmt could throw, add
2997         vec_stmt into the same EH region.
2998         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
2999         has no lhs, ignore it.
3000         * internal-fn.c (expand_MASK_LOAD): Likewise.
3002         PR ipa/60026
3003         * tree-inline.c (copy_forbidden): Fail for
3004         __attribute__((optimize (0))) functions.
3006         PR other/58712
3007         * omp-low.c (simd_clone_struct_copy): If from->inbranch
3008         is set, copy one less argument.
3009         (expand_simd_clones): Don't subtract clone_info->inbranch
3010         from simd_clone_struct_alloc argument.
3012         PR rtl-optimization/57915
3013         * recog.c (simplify_while_replacing): If all unary/binary/relational
3014         operation arguments are constant, attempt to simplify those.
3016         PR middle-end/59261
3017         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
3018         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
3020 2014-02-04  Richard Biener  <rguenther@suse.de>
3022         PR tree-optimization/60012
3023         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
3024         TBAA disambiguation to all DDRs.
3026 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3028         PR target/59788
3029         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
3030         (LINK_SPEC): Use it for -shared, -shared-libgcc.
3032 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
3034         PR ipa/59882
3035         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
3037 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
3039         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
3040         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
3042 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
3044         PR ipa/59831
3045         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
3046         to figure out targets of polymorphic calls with known decl.
3047         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3048         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
3049         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
3050         (get_polymorphic_call_info): ... here.
3051         (get_polymorphic_call_info_from_invariant): New function.
3053 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
3055         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
3056         lookup via vtable pointer; check for type consistency
3057         and turn inconsitent facts into UNREACHABLE.
3058         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3059         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
3060         type inconsistent querries; return UNREACHABLE instead.
3062 2014-02-03  Richard Henderson  <rth@twiddle.net>
3064         PR tree-opt/59924
3065         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
3066         already processed this node.
3067         (normalize_one_pred_1): Pass along mark_set.
3068         (normalize_one_pred): Create and destroy a pointer_set_t.
3069         (normalize_one_pred_chain): Likewise.
3071 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
3073         PR gcov-profile/58602
3074         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
3076 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
3078         PR ipa/59831
3079         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
3080         -fno-devirtualize; try to devirtualize by the knowledge of
3081         virtual table pointer given by aggregate propagation.
3082         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3083         (ipa_print_node_jump_functions): Dump also offset that
3084         is relevant for polymorphic calls.
3085         (determine_known_aggregate_parts): Add arg_type parameter; use it
3086         instead of determining the type from pointer type.
3087         (ipa_compute_jump_functions_for_edge): Update call of
3088         determine_known_aggregate_parts.
3089         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
3090         (gimple_get_virt_method_for_binfo): ... here; simplify using
3091         vtable_pointer_value_to_vtable.
3092         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
3093         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
3094         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
3095         (vtable_pointer_value_to_vtable): Break out from ...; handle also
3096         POINTER_PLUS_EXPR.
3097         (vtable_pointer_value_to_binfo): ... here.
3098         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
3100 2014-02-03  Teresa Johnson  <tejohnson@google.com>
3102         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
3103         redef of outer loop index variable.
3105 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
3107         PR c++/53017
3108         PR c++/59211
3109         * doc/extend.texi (Function Attributes): Typo.
3111 2014-02-03  Cong Hou  <congh@google.com>
3113         PR tree-optimization/60000
3114         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
3115         if the vectorized statement is a store.  A store statement can only
3116         appear at the end of pattern statements.
3118 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3120         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
3121         (ix86_option_override_internal): Default long double to 64-bit for
3122         32-bit Bionic and to 128-bit for 64-bit Bionic.
3124         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
3125         TARGET_LONG_DOUBLE_128 is true.
3126         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3128         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
3129         (mlong-double-64): Negate -mlong-double-128.
3130         (mlong-double-128): New option.
3132         * config/i386/i386-c.c (ix86_target_macros): Define
3133         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
3135         * doc/invoke.texi: Document -mlong-double-128.
3137 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3139         PR rtl-optimization/60024
3140         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
3142 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
3144         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
3146 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
3148         PR rtl-optimization/57662
3149         * sel-sched.c (code_motion_path_driver): Do not mark already not
3150         existing blocks in the visiting bitmap.
3152 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
3154         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
3155         on the insn being emitted.
3157 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
3158             Will Deacon  <will.deacon@arm.com>
3160         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
3162 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3164         * config/arm/arm-tables.opt: Regenerate.
3166 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3168         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
3169         for vector types other than V16QImode.
3170         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
3171         define_expand, and call altivec_expand_vec_perm_le when producing
3172         code with little endian element order.
3173         (*altivec_vperm_<mode>_internal): New insn having previous
3174         behavior of altivec_vperm_<mode>.
3175         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
3176         altivec_expand_vec_perm_le when producing code with little endian
3177         element order.
3178         (*altivec_vperm_<mode>_uns_internal): New insn having previous
3179         behavior of altivec_vperm_<mode>_uns.
3181 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3183         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
3184         (altivec_vsumsws): Add handling for -maltivec=be with a little
3185         endian target.
3186         (altivec_vsumsws_direct): New.
3187         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
3188         gen_altivec_vsumsws.
3190 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
3192         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
3193         vtable_pointer_value_to_binfo): New functions.
3194         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
3195         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
3197 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
3199         * config/nios2/nios2.md (load_got_register): Initialize GOT
3200         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
3201         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
3203 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
3205         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
3206         preserverd by passthrough, do not propagate the type.
3208 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3210         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
3211         (mips_atomic_assign_expand_fenv): New function.
3212         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
3214 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3216         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
3217         (__builtin_mips_set_fcsr): Likewise.
3218         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
3219         MIPS_USI_FTYPE_VOID.
3220         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
3221         (mips16_expand_set_fcsr): Likewise.
3222         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
3223         (mips16_set_fcsr_stub): Likewise.
3224         (mips16_get_fcsr_one_only_stub): New class.
3225         (mips16_set_fcsr_one_only_stub): Likewise.
3226         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
3227         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
3228         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
3229         (hard_float): New availability predicate.
3230         (mips_builtins): Add get_fcsr and set_fcsr.
3231         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
3232         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
3233         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
3234         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
3235         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
3236         patterns.
3238 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3240         * config/mips/mips.c (mips_one_only_stub): New class.
3241         (mips_need_mips16_rdhwr_p): Replace with...
3242         (mips16_rdhwr_stub): ...this new variable.
3243         (mips16_stub_call_address): New function.
3244         (mips16_rdhwr_one_only_stub): New class.
3245         (mips_expand_thread_pointer): Use mips16_stub_call_address.
3246         (mips_output_mips16_rdhwr): Delete.
3247         (mips_finish_stub): New function.
3248         (mips_code_end): Use it to handle rdhwr stubs.
3250 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
3252         PR target/60017
3253         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
3254         when calculating size of integer atomic types.
3256 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
3258         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
3260 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
3262         PR tree-optimization/60003
3263         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
3264         * profile.c (branch_prob): Use gimple_call_builtin_p
3265         to check for BUILT_IN_SETJMP_RECEIVER.
3266         * tree-inline.c (copy_bb): Call notice_special_calls.
3268 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
3270         PR bootstrap/59985
3271         * lra-constraints.c (process_alt_operands): Update reload_sum only
3272         on the first pass.
3274 2014-01-31  Richard Henderson  <rth@redhat.com>
3276         PR middle-end/60004
3277         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
3278         until after else_eh is processed.
3280 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
3282         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
3283         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
3284         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
3285         in smmintrin.h, remove them.
3286         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
3287         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
3288         * config/i386/i386.md (ROUND_SAE): Fix value.
3289         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
3290         (const48_operand): New.
3291         * config/i386/subst.md (round), (round_expand): Use
3292         const_4_or_8_to_11_operand.
3293         (round_saeonly), (round_saeonly_expand): Use const48_operand.
3295 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
3297         * config/i386/constraints.md (Yk): Swap meaning with k.
3298         * config/i386/i386.md (movhi_internal): Change Yk to k.
3299         (movqi_internal): Ditto.
3300         (*k<logic><mode>): Ditto.
3301         (*andhi_1): Ditto.
3302         (*andqi_1): Ditto.
3303         (kandn<mode>): Ditto.
3304         (*<code>hi_1): Ditto.
3305         (*<code>qi_1): Ditto.
3306         (kxnor<mode>): Ditto.
3307         (kortestzhi): Ditto.
3308         (kortestchi): Ditto.
3309         (kunpckhi): Ditto.
3310         (*one_cmplhi2_1): Ditto.
3311         (*one_cmplqi2_1): Ditto.
3312         * config/i386/sse.md (): Change k to Yk.
3313         (avx512f_load<mode>_mask): Ditto.
3314         (avx512f_blendm<mode>): Ditto.
3315         (avx512f_store<mode>_mask): Ditto.
3316         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
3317         (avx512f_storedqu<mode>_mask): Ditto.
3318         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
3319         Ditto.
3320         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
3321         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
3322         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
3323         (avx512f_maskcmp<mode>3): Ditto.
3324         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
3325         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
3326         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
3327         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
3328         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
3329         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
3330         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
3331         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
3332         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
3333         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
3334         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
3335         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
3336         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
3337         (vec_extract_lo_<mode>_maskm): Ditto.
3338         (vec_extract_hi_<mode>_maskm): Ditto.
3339         (avx512f_vternlog<mode>_mask): Ditto.
3340         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
3341         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
3342         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
3343         (avx512f_<code>v8div16qi2_mask): Ditto.
3344         (avx512f_<code>v8div16qi2_mask_store): Ditto.
3345         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
3346         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
3347         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
3348         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
3349         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
3350         (*avx512pf_gatherpf<mode>df_mask): Ditto.
3351         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
3352         (*avx512pf_scatterpf<mode>df_mask): Ditto.
3353         (avx512cd_maskb_vec_dupv8di): Ditto.
3354         (avx512cd_maskw_vec_dupv16si): Ditto.
3355         (avx512f_vpermi2var<mode>3_maskz): Ditto.
3356         (avx512f_vpermi2var<mode>3_mask): Ditto.
3357         (avx512f_vpermi2var<mode>3_mask): Ditto.
3358         (avx512f_vpermt2var<mode>3_maskz): Ditto.
3359         (*avx512f_gathersi<mode>): Ditto.
3360         (*avx512f_gathersi<mode>_2): Ditto.
3361         (*avx512f_gatherdi<mode>): Ditto.
3362         (*avx512f_gatherdi<mode>_2): Ditto.
3363         (*avx512f_scattersi<mode>): Ditto.
3364         (*avx512f_scatterdi<mode>): Ditto.
3365         (avx512f_compress<mode>_mask): Ditto.
3366         (avx512f_compressstore<mode>_mask): Ditto.
3367         (avx512f_expand<mode>_mask): Ditto.
3368         * config/i386/subst.md (mask): Change k to Yk.
3369         (mask_scalar_merge): Ditto.
3370         (sd): Ditto.
3372 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
3374         * doc/extend.texi (Vector Extensions): Document ?: in C++.
3376 2014-01-31  Richard Biener  <rguenther@suse.de>
3378         PR middle-end/59990
3379         * builtins.c (fold_builtin_memory_op): Make sure to not
3380         use a floating-point mode or a boolean or enumeral type for
3381         the copy operation.
3383 2014-01-30  DJ Delorie  <dj@redhat.com>
3385         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
3386         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
3387         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
3388         whenever main() has an epilogue.
3390 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3392         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
3393         unused variable "field".
3394         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
3395         (vsx_mergeh_<mode>): Likewise.
3396         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
3397         (altivec_vmrghh): Likewise.
3398         (altivec_vmrghw): Likewise.
3399         (altivec_vmrglb): Likewise.
3400         (altivec_vmrglh): Likewise.
3401         (altivec_vmrglw): Likewise.
3402         (altivec_vspltb): Add missing uses.
3403         (altivec_vsplth): Likewise.
3404         (altivec_vspltw): Likewise.
3405         (altivec_vspltsf): Likewise.
3407 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
3409         PR target/59923
3410         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
3411         frame related instructions.
3413 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
3415         PR rtl-optimization/59959
3416         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
3417         any reload of register whose subreg is invalid.
3419 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
3421         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
3422         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
3423         Add missing return type - void.
3425 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3427         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
3428         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
3429         remove element index adjustment for endian (now handled in vsx.md
3430         and altivec.md).
3431         (altivec_expand_vec_perm_const): Use
3432         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
3433         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
3434         (vsx_xxspltw_<mode>): Adjust element index for little endian.
3435         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
3436         define_expand and a new define_insn *altivec_vspltb_internal;
3437         adjust for -maltivec=be on a little endian target.
3438         (altivec_vspltb_direct): New.
3439         (altivec_vsplth): Divide into a define_expand and a new
3440         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
3441         little endian target.
3442         (altivec_vsplth_direct): New.
3443         (altivec_vspltw): Divide into a define_expand and a new
3444         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
3445         little endian target.
3446         (altivec_vspltw_direct): New.
3447         (altivec_vspltsf): Divide into a define_expand and a new
3448         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
3449         a little endian target.
3451 2014-01-30  Richard Biener  <rguenther@suse.de>
3453         PR tree-optimization/59993
3454         * tree-ssa-forwprop.c (associate_pointerplus): Check we
3455         can propagate form the earlier stmt and avoid the transform
3456         when the intermediate result is needed.
3458 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
3460         * README.Portability: Fix typo.
3462 2014-01-30  David Holsgrove <david.holsgrove@xilinx.com>
3464         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
3465         comparison_operator with ordered_comparison_operator.
3467 2014-01-30  Nick Clifton  <nickc@redhat.com>
3469         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
3470         Rename to mn10300_store_multiple_regs.
3471         * config/mn10300/mn10300.c: Likewise.
3472         * config/mn10300/mn10300.md (store_movm): Fix typo: call
3473         store_multiple_regs.
3474         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
3475         Call mn10300_store_multiple_regs.
3477 2014-01-30  Nick Clifton  <nickc@redhat.com>
3478             DJ Delorie  <dj@redhat.com>
3480         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
3481         %fp 2 to keep registers after it properly word-aligned.
3482         (rl78_alloc_physical_registers_umul): Handle the case where both
3483         input operands are the same.
3485 2014-01-30  Richard Biener  <rguenther@suse.de>
3487         PR tree-optimization/59903
3488         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
3489         check properly.
3491 2014-01-30  Jason Merrill  <jason@redhat.com>
3493         PR c++/59633
3494         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
3496         PR c++/59645
3497         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
3499 2014-01-30  Richard Biener  <rguenther@suse.de>
3501         PR tree-optimization/59951
3502         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
3504 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
3506         PR target/59784
3507         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
3508         SFmode to DFmode case.
3510 2014-01-29  DJ Delorie  <dj@redhat.com>
3512         * config/msp430/msp430.opt (-minrt): New.
3513         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
3514         if -minrt given.
3515         (ENDFILE_SPEC): Likewise.
3517 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
3519         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
3520         (estimate_function_body_sizes): Use it.
3522 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
3524         PR c++/58561
3525         * dwarf2out.c (is_cxx_auto): New.
3526         (is_base_type): Use it.
3527         (gen_type_die_with_usage): Likewise.
3529 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3531         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
3532         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
3533         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
3534         -maltivec=be with LE targets.
3535         (vsx_mergeh_<mode>): Likewise.
3536         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
3537         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
3538         (altivec_vmrghb): Replace with define_expand and new
3539         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
3540         (altivec_vmrghb_direct): New define_insn.
3541         (altivec_vmrghh): Replace with define_expand and new
3542         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
3543         (altivec_vmrghh_direct): New define_insn.
3544         (altivec_vmrghw): Replace with define_expand and new
3545         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
3546         (altivec_vmrghw_direct): New define_insn.
3547         (*altivec_vmrghsf): Adjust for endianness.
3548         (altivec_vmrglb): Replace with define_expand and new
3549         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
3550         (altivec_vmrglb_direct): New define_insn.
3551         (altivec_vmrglh): Replace with define_expand and new
3552         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
3553         (altivec_vmrglh_direct): New define_insn.
3554         (altivec_vmrglw): Replace with define_expand and new
3555         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
3556         (altivec_vmrglw_direct): New define_insn.
3557         (*altivec_vmrglsf): Adjust for endianness.
3558         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
3559         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
3560         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
3561         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
3562         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
3563         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
3564         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
3565         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
3567 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3569         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
3570         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
3571         whitespace.
3573 2014-01-29  Richard Biener  <rguenther@suse.de>
3575         PR tree-optimization/58742
3576         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
3577         associate_pointerplus_align.
3578         (associate_pointerplus_diff): New function.
3579         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
3580         and associate_pointerplus_diff.
3582 2014-01-29  Richard Biener  <rguenther@suse.de>
3584         * lto-streamer.h (LTO_major_version): Bump to 3.
3585         (LTO_minor_version): Reset to 0.
3587 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
3589         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
3590         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
3591         (arm_file_start): Generate correct asm header for armv7ve.
3592         * config/arm/bpabi.h: Add multilib support for armv7ve.
3593         * config/arm/driver-arm.c: Change the architectures of cortex-a7
3594         and cortex-a15 to armv7ve.
3595         * config/arm/t-aprofile: Add multilib support for armv7ve.
3596         * doc/invoke.texi: Document -march=armv7ve.
3598 2014-01-29  Richard Biener  <rguenther@suse.de>
3600         PR tree-optimization/58742
3601         * tree-ssa-forwprop.c (associate_plusminus): Return true
3602         if we changed sth, defer EH cleanup to ...
3603         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
3604         (simplify_mult): New function.
3606 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
3608         PR middle-end/59917
3609         PR tree-optimization/59920
3610         * tree.c (build_common_builtin_nodes): Remove
3611         __builtin_setjmp_dispatcher initialization.
3612         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
3613         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
3614         instead of gsi_after_labels + manually skipping debug stmts.
3615         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
3616         ignore bbs with IFN_ABNORMAL_DISPATCHER.
3617         * tree-inline.c (copy_edges_for_bb): Remove
3618         can_make_abnormal_goto argument, instead add abnormal_goto_dest
3619         argument.  Ignore computed_goto_p stmts.  Don't call
3620         make_abnormal_goto_edges.  If a call might need abnormal edges
3621         for non-local gotos, see if it already has an edge to
3622         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
3623         with true argument, don't do anything then, otherwise add
3624         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
3625         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
3626         caller.
3627         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
3628         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
3629         (lower_stmt): Don't set data->calls_builtin_setjmp.
3630         (lower_builtin_setjmp): Adjust comment.
3631         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
3632         * tree-cfg.c (found_computed_goto): Remove.
3633         (factor_computed_gotos): Remove.
3634         (make_goto_expr_edges): Return bool, true for computed gotos.
3635         Don't call make_abnormal_goto_edges.
3636         (build_gimple_cfg): Don't set found_computed_goto, don't call
3637         factor_computed_gotos.
3638         (computed_goto_p): No longer static.
3639         (make_blocks): Don't set found_computed_goto.
3640         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
3641         (make_edges): If make_goto_expr_edges returns true, push bb
3642         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
3643         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
3644         vector.  Record mapping between bbs and OpenMP regions if there
3645         are any, adjust make_gimple_omp_edges caller.  Call
3646         handle_abnormal_edges.
3647         (make_abnormal_goto_edges): Remove.
3648         * tree-cfg.h (make_abnormal_goto_edges): Remove.
3649         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
3650         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
3651         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
3652         * internal-fn.def (ABNORMAL_DISPATCHER): New.
3653         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
3654         filling *region also set *region_idx to (*region)->entry->index.
3656         PR other/58712
3657         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
3658         For REGs set ORIGINAL_REGNO.
3660 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
3662         * doc/md.texi: Mention that a target shouldn't implement
3663         vec_widen_(s|u)mul_even/odd pair if it is less efficient
3664         than hi/lo pair.
3666 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
3668         PR tree-optimization/59594
3669         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
3670         a copy of the datarefs vector rather than the vector itself.
3672 2014-01-28  Jason Merrill  <jason@redhat.com>
3674         PR c++/53756
3675         * dwarf2out.c (auto_die): New static.
3676         (gen_type_die_with_usage): Handle C++1y 'auto'.
3677         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
3678         on definition.
3680 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
3682         PR target/59672
3683         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
3684         (SPEC_X32): Likewise.
3685         (SPEC_64): Likewise.
3686         * config/i386/i386.c (ix86_option_override_internal): Turn off
3687         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
3688         for TARGET_16BIT.
3689         (x86_file_start): Output .code16gcc for TARGET_16BIT.
3690         * config/i386/i386.h (TARGET_16BIT): New macro.
3691         (TARGET_16BIT_P): Likewise.
3692         * config/i386/i386.opt: Add m16.
3693         * doc/invoke.texi: Document -m16.
3695 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
3697         PR preprocessor/59935
3698         * input.c (location_get_source_line): Bail out on when line number
3699         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
3701 2014-01-28  Richard Biener  <rguenther@suse.de>
3703         PR tree-optimization/58742
3704         * tree-ssa-forwprop.c (associate_plusminus): Handle
3705         pointer subtraction of the form (T)(P + A) - (T)P.
3707 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3709         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
3710         at const_int_cost.
3712 2014-01-28  Richard Biener  <rguenther@suse.de>
3714         Revert
3715         2014-01-28  Richard Biener  <rguenther@suse.de>
3717         PR rtl-optimization/45364
3718         PR rtl-optimization/59890
3719         * var-tracking.c (local_get_addr_clear_given_value): Handle
3720         already cleared slot.
3721         (val_reset): Handle not allocated local_get_addr_cache.
3722         (vt_find_locations): Use post-order on the inverted CFG.
3724 2014-01-28  Richard Biener  <rguenther@suse.de>
3726         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
3728 2014-01-28  Richard Biener  <rguenther@suse.de>
3730         PR rtl-optimization/45364
3731         PR rtl-optimization/59890
3732         * var-tracking.c (local_get_addr_clear_given_value): Handle
3733         already cleared slot.
3734         (val_reset): Handle not allocated local_get_addr_cache.
3735         (vt_find_locations): Use post-order on the inverted CFG.
3737 2014-01-28  Alan Modra  <amodra@gmail.com>
3739         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
3740         * configure.ac <recursive call for build != host>: Define
3741         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
3742         and LD_FOR_BUILD too.
3743         * configure: Regenerate.
3745 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
3747         * config/i386/i386.c (get_builtin_code_for_version): Separate
3748         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
3749         Broadwell from Haswell.
3751 2014-01-27  Steve Ellcey  <sellcey@mips.com>
3753         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
3754         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
3755         * config/mips/mips.c (mips_option_override): Change setting
3756         of TARGET_DSP.
3757         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
3758         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
3759         Change from Mask to Var.
3761 2014-01-27  Jeff Law  <law@redhat.com>
3763         * ipa-inline.c (inline_small_functions): Fix typo.
3765 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
3767         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
3768         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
3769         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
3770         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
3771         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
3772         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
3773         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
3774         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
3775         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
3776         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
3777         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
3778         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
3779         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
3780         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
3781         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
3782         (_mm512_storeu_epi64): Ditto.
3783         (_mm512_cmpge_epi32_mask): Ditto.
3784         (_mm512_cmpge_epu32_mask): Ditto.
3785         (_mm512_cmpge_epi64_mask): Ditto.
3786         (_mm512_cmpge_epu64_mask): Ditto.
3787         (_mm512_cmple_epi32_mask): Ditto.
3788         (_mm512_cmple_epu32_mask): Ditto.
3789         (_mm512_cmple_epi64_mask): Ditto.
3790         (_mm512_cmple_epu64_mask): Ditto.
3791         (_mm512_cmplt_epi32_mask): Ditto.
3792         (_mm512_cmplt_epu32_mask): Ditto.
3793         (_mm512_cmplt_epi64_mask): Ditto.
3794         (_mm512_cmplt_epu64_mask): Ditto.
3795         (_mm512_cmpneq_epi32_mask): Ditto.
3796         (_mm512_cmpneq_epu32_mask): Ditto.
3797         (_mm512_cmpneq_epi64_mask): Ditto.
3798         (_mm512_cmpneq_epu64_mask): Ditto.
3799         (_mm512_expand_pd): Ditto.
3800         (_mm512_expand_ps): Ditto.
3801         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
3802         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
3803         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
3804         * config/i386/i386.c (ix86_builtins): Add
3805         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
3806         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
3807         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
3808         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
3809         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
3810         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
3811         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
3812         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
3813         IX86_BUILTIN_PMOVUSQW512_MEM.
3814         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
3815         __builtin_ia32_pmovsqd512mem_mask,
3816         __builtin_ia32_pmovqd512mem_mask,
3817         __builtin_ia32_pmovusqw512mem_mask,
3818         __builtin_ia32_pmovsqw512mem_mask,
3819         __builtin_ia32_pmovqw512mem_mask,
3820         __builtin_ia32_pmovusdw512mem_mask,
3821         __builtin_ia32_pmovsdw512mem_mask,
3822         __builtin_ia32_pmovdw512mem_mask,
3823         __builtin_ia32_pmovqb512mem_mask,
3824         __builtin_ia32_pmovusqb512mem_mask,
3825         __builtin_ia32_pmovsqb512mem_mask,
3826         __builtin_ia32_pmovusdb512mem_mask,
3827         __builtin_ia32_pmovsdb512mem_mask,
3828         __builtin_ia32_pmovdb512mem_mask.
3829         (bdesc_args): Add __builtin_ia32_expanddf512,
3830         __builtin_ia32_expandsf512.
3831         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
3832         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
3833         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
3834         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
3835         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
3836         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
3837         (avx512f_<code>v8div16qi2_mask_store): This.
3838         (avx512f_expand<mode>): New.
3840 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
3842         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
3843         New.
3844         (_mm512_mask_prefetch_i64gather_pd): Ditto.
3845         (_mm512_prefetch_i32scatter_pd): Ditto.
3846         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
3847         (_mm512_prefetch_i64scatter_pd): Ditto.
3848         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
3849         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
3850         (_mm512_mask_prefetch_i64gather_ps): Ditto.
3851         (_mm512_prefetch_i32scatter_ps): Ditto.
3852         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
3853         (_mm512_prefetch_i64scatter_ps): Ditto.
3854         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
3855         * config/i386/i386-builtin-types.def: Define
3856         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
3857         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
3858         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
3859         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
3860         IX86_BUILTIN_SCATTERPFQPD.
3861         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
3862         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
3863         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
3864         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
3865         __builtin_ia32_scatterpfqps.
3866         (ix86_expand_builtin): Expand new built-ins.
3867         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
3868         fix memory access data type.
3869         (*avx512pf_gatherpf<mode>_mask): Ditto.
3870         (*avx512pf_gatherpf<mode>): Ditto.
3871         (avx512pf_scatterpf<mode>): Ditto.
3872         (*avx512pf_scatterpf<mode>_mask): Ditto.
3873         (*avx512pf_scatterpf<mode>): Ditto.
3874         (GATHER_SCATTER_SF_MEM_MODE): New.
3875         (avx512pf_gatherpf<mode>df): Ditto.
3876         (*avx512pf_gatherpf<mode>df_mask): Ditto.
3877         (*avx512pf_scatterpf<mode>df): Ditto.
3879 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
3881         PR bootstrap/59934
3882         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
3883         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
3884         reached.
3886 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
3888         * common/config/arm/arm-common.c
3889         (arm_rewrite_mcpu): Handle multiple names.
3890         * config/arm/arm.h
3891         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
3893 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
3895         * gimple-builder.h (create_gimple_tmp): Delete.
3897 2014-01-27  Christian Bruel  <christian.bruel@st.com>
3899         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
3900         words comparisons.
3902 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
3904         * config/pa/pa.md (call): Generate indirect long calls to non-local
3905         functions when outputing 32-bit code.
3906         (call_value): Likewise except for special call to buggy powf function.
3908         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
3909         portable runtime and PIC indirect calls.
3910         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
3911         and PIC call sequences.  Use ldo instead of blr to set return register
3912         in PIC call sequence.
3914 2014-01-25  Walter Lee  <walt@tilera.com>
3916         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
3917         avoid clobbering a live register.
3919 2014-01-25  Walter Lee  <walt@tilera.com>
3921         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
3922         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
3923         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
3924         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
3926 2014-01-25  Walter Lee  <walt@tilera.com>
3928         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
3929         arguments on even registers.
3930         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
3931         STACK_BOUNDARY.
3932         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
3933         (BIGGEST_ALIGNMENT): Ditto.
3934         (BIGGEST_FIELD_ALIGNMENT): Ditto.
3936 2014-01-25  Walter Lee  <walt@tilera.com>
3938         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
3939         insns before bundling.
3940         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
3942 2014-01-25  Walter Lee  <walt@tilera.com>
3944         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
3945         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
3946         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
3948 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
3950         * config/mips/constraints.md (kl): Delete.
3951         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
3952         define expands, using...
3953         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
3954         instructions for MIPS16.
3955         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
3956         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
3958 2014-01-25  Walter Lee  <walt@tilera.com>
3960         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
3961         (clzdi2): Ditto.
3962         (ffsdi2): Ditto.
3964 2014-01-25  Walter Lee  <walt@tilera.com>
3966         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
3967         (TARGET_EXPAND_TO_RTL_HOOK): Define.
3969 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
3971         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
3972         Handle XOR.
3974 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
3976         * print-rtl.c (in_call_function_usage): New var.
3977         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
3978         EXPR_LIST mode as mode and not as reg note name.
3980         PR middle-end/59561
3981         * cfgloopmanip.c (copy_loop_info): If
3982         loop->warned_aggressive_loop_optimizations, make sure
3983         the flag is set in target loop too.
3985 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3987         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
3988         flag_cilkplus.
3989         * builtins.def: Likewise.
3990         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
3991         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
3992         * ira.c (ira_setup_eliminable_regset): Likewise.
3993         * omp-low.c (gate_expand_omp): Likewise.
3994         (execute_lower_omp): Likewise.
3995         (diagnose_sb_0): Likewise.
3996         (gate_diagnose_omp_blocks): Likewise.
3997         (simd_clone_clauses_extract): Likewise.
3998         (gate): Likewise.
4000 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4002         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
4003         correction for little endian...
4004         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
4005         here.
4007 2014-01-24  Jeff Law  <law@redhat.com>
4009         PR tree-optimization/59919
4010         * tree-vrp.c (find_assert_locations_1): Do not register asserts
4011         for non-returning calls.
4013 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
4015         * common/config/aarch64/aarch64-common.c
4016         (aarch64_rewrite_mcpu): Handle multiple names.
4017         * config/aarch64/aarch64.h
4018         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
4020 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
4022         * input.c (add_file_to_cache_tab): Handle the case where fopen
4023         returns NULL.
4025 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
4027         PR target/59929
4028         * config/i386/i386.md (pushsf splitter): Get stack adjustment
4029         from push operand if code of push isn't PRE_DEC.
4031 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4033         PR target/59909
4034         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4035         -mquad-memory-atomic.  Update -mquad-memory documentation to say
4036         it is only used for non-atomic loads/stores.
4038         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
4039         -mquad-memory or -mquad-memory-atomic switches.
4041         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
4042         -mquad-memory-atomic to ISA 2.07 support.
4044         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
4045         to separate support of normal quad word memory operations (ldq, stq)
4046         from the atomic quad word memory operations.
4048         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4049         support to separate non-atomic quad word operations from atomic
4050         quad word operations.  Disable non-atomic quad word operations in
4051         little endian mode so that we don't have to swap words after the
4052         load and before the store.
4053         (quad_load_store_p): Add comment about atomic quad word support.
4054         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
4055         options printed with -mdebug=reg.
4057         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
4058         -mquad-memory-atomic as the test for whether we have quad word
4059         atomic instructions.
4060         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
4061         or -mp8-vector are used, allow byte/half-word atomic operations.
4063         * config/rs6000/sync.md (load_lockedti): Insure that the address
4064         is a proper indexed or indirect address for the lqarx instruction.
4065         On little endian systems, swap the hi/lo registers after the lqarx
4066         instruction.
4067         (load_lockedpti): Use indexed_or_indirect_operand predicate to
4068         insure the address is valid for the lqarx instruction.
4069         (store_conditionalti): Insure that the address is a proper indexed
4070         or indirect address for the stqcrx. instruction.  On little endian
4071         systems, swap the hi/lo registers before doing the stqcrx.
4072         instruction.
4073         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
4074         insure the address is valid for the stqcrx. instruction.
4076         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
4077         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
4078         type of quad memory support is available.
4080 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
4082         PR regression/59915
4083         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
4084         there is a danger of looping.
4086 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
4088         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4089         force flag_ira_loop_pressure if set via command line.
4091 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
4093         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
4094         (ashr_simd): New builtin handling DI mode.
4095         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
4096         (aarch64_sshr_simddi): New match pattern.
4097         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
4098         (vshrd_n_s64): Likewise.
4099         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
4101 2014-01-23  Nick Clifton  <nickc@redhat.com>
4103         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
4104         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
4105         favour of mcu specific scripts.
4106         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
4107         430x multilibs.
4109 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
4110             Alex Velenko  <Alex.Velenko@arm.com>
4112         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
4113         (vaddv_s16): Likewise.
4114         (vaddv_s32): Likewise.
4115         (vaddv_u8): Likewise.
4116         (vaddv_u16): Likewise.
4117         (vaddv_u32): Likewise.
4118         (vaddvq_s8): Likewise.
4119         (vaddvq_s16): Likewise.
4120         (vaddvq_s32): Likewise.
4121         (vaddvq_s64): Likewise.
4122         (vaddvq_u8): Likewise.
4123         (vaddvq_u16): Likewise.
4124         (vaddvq_u32): Likewise.
4125         (vaddvq_u64): Likewise.
4126         (vaddv_f32): Likewise.
4127         (vaddvq_f32): Likewise.
4128         (vaddvq_f64): Likewise.
4129         (vmaxv_f32): Likewise.
4130         (vmaxv_s8): Likewise.
4131         (vmaxv_s16): Likewise.
4132         (vmaxv_s32): Likewise.
4133         (vmaxv_u8): Likewise.
4134         (vmaxv_u16): Likewise.
4135         (vmaxv_u32): Likewise.
4136         (vmaxvq_f32): Likewise.
4137         (vmaxvq_f64): Likewise.
4138         (vmaxvq_s8): Likewise.
4139         (vmaxvq_s16): Likewise.
4140         (vmaxvq_s32): Likewise.
4141         (vmaxvq_u8): Likewise.
4142         (vmaxvq_u16): Likewise.
4143         (vmaxvq_u32): Likewise.
4144         (vmaxnmv_f32): Likewise.
4145         (vmaxnmvq_f32): Likewise.
4146         (vmaxnmvq_f64): Likewise.
4147         (vminv_f32): Likewise.
4148         (vminv_s8): Likewise.
4149         (vminv_s16): Likewise.
4150         (vminv_s32): Likewise.
4151         (vminv_u8): Likewise.
4152         (vminv_u16): Likewise.
4153         (vminv_u32): Likewise.
4154         (vminvq_f32): Likewise.
4155         (vminvq_f64): Likewise.
4156         (vminvq_s8): Likewise.
4157         (vminvq_s16): Likewise.
4158         (vminvq_s32): Likewise.
4159         (vminvq_u8): Likewise.
4160         (vminvq_u16): Likewise.
4161         (vminvq_u32): Likewise.
4162         (vminnmv_f32): Likewise.
4163         (vminnmvq_f32): Likewise.
4164         (vminnmvq_f64): Likewise.
4166 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
4168         * config/aarch64/aarch64-simd.md
4169         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
4170         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
4171         (*aarch64_mul3_elt<mode>): Likewise.
4172         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
4173         (*aarch64_mul3_elt_to_64v2df): Likewise.
4174         (*aarch64_mla_elt<mode>): Likewise.
4175         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4176         (*aarch64_mls_elt<mode>): Likewise.
4177         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4178         (*aarch64_fma4_elt<mode>): Likewise.
4179         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4180         (*aarch64_fma4_elt_to_64v2df): Likewise.
4181         (*aarch64_fnma4_elt<mode>): Likewise.
4182         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4183         (*aarch64_fnma4_elt_to_64v2df): Likewise.
4184         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
4185         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
4186         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
4187         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
4188         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4189         (aarch64_sqdmull_lane<mode>_internal): Likewise.
4190         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4192 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
4194         * config/aarch64/aarch64-simd.md
4195         (aarch64_be_checked_get_lane<mode>): New define_expand.
4196         * config/aarch64/aarch64-simd-builtins.def
4197         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
4198         New builtin definition.
4199         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
4200         Use new safe be builtin.
4202 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
4204         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
4205         New define_insn.
4206         (aarch64_be_st1<mode>): Likewise.
4207         (aarch_ld1<VALL:mode>): Define_expand modified.
4208         (aarch_st1<VALL:mode>): Likewise.
4209         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
4210         (UNSPEC_ST1): Likewise.
4212 2014-01-23  David Holsgrove <david.holsgrove@xilinx.com>
4214         * config/microblaze/microblaze.md: Add trap insn and attribute
4216 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
4218         PR preprocessor/58580
4219         * input.h (location_get_source_line): Take an additional line_size
4220         parameter.
4221         (void diagnostics_file_cache_fini): Declare new function.
4222         * input.c (struct fcache): New type.
4223         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
4224         New static constants.
4225         (diagnostic_file_cache_init, total_lines_num)
4226         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
4227         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
4228         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
4229         (get_next_line, read_next_line, goto_next_line, read_line_num):
4230         New static function definitions.
4231         (diagnostic_file_cache_fini): New function.
4232         (location_get_source_line): Take an additional output line_len
4233         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
4234         read_line_num.
4235         * diagnostic.c (diagnostic_finish): Call
4236         diagnostic_file_cache_fini.
4237         (adjust_line): Take an additional input parameter for the length
4238         of the line, rather than calculating it with strlen.
4239         (diagnostic_show_locus): Adjust the use of
4240         location_get_source_line and adjust_line with respect to their new
4241         signature.  While displaying a line now, do not stop at the first
4242         null byte.  Rather, display the zero byte as a space and keep
4243         going until we reach the size of the line.
4244         * Makefile.in: Add vec.o to OBJS-libcommon
4246 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4247             Ilya Tocar     <ilya.tocar@intel.com>
4249         * config/i386/avx512fintrin.h (_mm512_kmov): New.
4250         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
4251         (__builtin_ia32_kmov16): Ditto.
4252         * config/i386/i386.md (UNSPEC_KMOV): New.
4253         (kmovw): Ditto.
4255 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4257         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
4258         (_mm512_storeu_si512): Ditto.
4260 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
4262         PR target/52125
4263         * rtl.h (get_referenced_operands): Declare.
4264         * recog.c (get_referenced_operands): New function.
4265         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
4266         operands have been referenced when recording LO_SUM references.
4268 2014-01-22  David Holsgrove <david.holsgrove@xilinx.com>
4270         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
4272 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
4274         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
4275         Enable for generic and recent AMD targets.
4277 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
4279         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
4280         ARG_SIZE note when adjustment was eliminated.
4282 2014-01-22  Jeff Law  <law@redhat.com>
4284         PR tree-optimization/59597
4285         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
4286         in file.  Accept new argument REGISTERING and use it to modify
4287         dump output appropriately.
4288         (register_jump_thread): Corresponding changes.
4289         (mark_threaded_blocks): Reinstate code to cancel unprofitable
4290         thread paths involving joiner blocks.  Add code to dump cancelled
4291         jump threading paths.
4293 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
4295         PR rtl-optimization/59477
4296         * lra-constraints.c (inherit_in_ebb): Process call for living hard
4297         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
4299 2014-01-22  Tom Tromey  <tromey@redhat.com>
4301         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
4302         PARAMS.
4303         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
4305 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
4307         PR rtl-optimization/59896
4308         * lra-constraints.c (process_alt_operands): Check unused note for
4309         matched operands of insn with no output reloads.
4311 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
4313         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
4314         (mips_move_from_gpr_cost): Likewise.
4316 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
4318         PR rtl-optimization/59858
4319         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
4320         ira_class_hard_regs_num.
4321         (process_alt_operands): Increase reject for dying matched operand.
4323 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
4325         PR target/59003
4326         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
4327         smaller than size, perform several stores or loads and stores
4328         at dst + count - size to store or copy all of size bytes, rather
4329         than just last modesize bytes.
4331 2014-01-20  DJ Delorie  <dj@redhat.com>
4333         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
4334         that CLOBBERs are REGs before propogating their values.
4336 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
4338         PR middle-end/59789
4339         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
4340         (cgraph_inline_failed_type): New function.
4341         * cgraph.h (DEFCIFCODE): Add type.
4342         (cgraph_inline_failed_type_t): New enum.
4343         (cgraph_inline_failed_type): New prototype.
4344         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
4345         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
4346         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
4347         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
4348         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
4349         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
4350         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
4351         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
4352         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
4353         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
4354         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
4355         OPTIMIZATION_MISMATCH.
4356         * tree-inline.c (expand_call_inline): Emit errors during
4357         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
4359 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
4361         PR target/59685
4362         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
4363         mode attribute in insn output.
4365 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
4367         * output.h (output_constant): Delete.
4368         * varasm.c (output_constant): Make private.
4370 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
4372         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
4374 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
4376         PR middle-end/59860
4377         * tree.h (fold_builtin_strcat): New prototype.
4378         * builtins.c (fold_builtin_strcat): No longer static.  Add len
4379         argument, if non-NULL, don't call c_strlen.  Optimize
4380         directly into __builtin_memcpy instead of __builtin_strcpy.
4381         (fold_builtin_2): Adjust fold_builtin_strcat caller.
4382         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
4384 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
4386         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4387         for SImode_address_operand operands, having only a REG argument.
4389 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4391         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
4392         loader name using mbig-endian.
4393         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
4395 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
4397         * doc/invoke.texi (-march): Clarify documentation for AArch64.
4398         (-mtune): Likewise.
4399         (-mcpu): Likewise.
4401 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
4403         * config/aarch64/aarch64-protos.h
4404         (aarch64_cannot_change_mode_class_ptr): Declare.
4405         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
4406         aarch64_cannot_change_mode_class_ptr): New.
4407         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
4408         backend hook aarch64_cannot_change_mode_class.
4410 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
4412         * common/config/aarch64/aarch64-common.c
4413         (aarch64_handle_option): Don't handle any option order logic here.
4414         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
4415         selected_cpu, warn on architecture version mismatch.
4416         (aarch64_override_options): Fix parsing order for option strings.
4418 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4419             Iain Sandoe  <iain@codesourcery.com>
4421         PR bootstrap/59496
4422         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
4423         warning.  Amend comment to reflect current functionality.
4425 2014-01-20  Richard Biener  <rguenther@suse.de>
4427         PR middle-end/59860
4428         * builtins.c (fold_builtin_strcat): Remove case better handled
4429         by tree-ssa-strlen.c.
4431 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
4433         * config/aarch64/aarch64.opt
4434         (mcpu, march, mtune): Make case-insensitive.
4436 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
4438         PR target/59880
4439         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4440         if operands[1] is a REG or ZERO_EXTEND of a REG.
4442 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
4444         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
4446 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
4448         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
4449         long non-pic millicode calls.
4451 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4453         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
4455 2014-01-19  Kito Cheng  <kito@0xlab.org>
4457         * builtins.c (expand_movstr): Check movstr expand done or fail.
4459 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
4460             H.J. Lu  <hongjiu.lu@intel.com>
4462         PR target/59379
4463         * config/i386/i386.md (*lea<mode>): Zero-extend return register
4464         to DImode for zero-extended addresses.
4466 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
4468         PR rtl-optimization/57763
4469         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
4470         on the new indirect jump_insn and increment LABEL_NUSES (label).
4472 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
4474         PR bootstrap/59580
4475         PR bootstrap/59583
4476         * config.gcc (x86_archs): New variable.
4477         (x86_64_archs): Likewise.
4478         (x86_cpus): Likewise.
4479         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
4480         --with-arch/--with-cpu= options.
4481         Support --with-arch=/--with-cpu={nehalem,westmere,
4482         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
4484 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
4486         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
4487         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
4489 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
4491         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
4493 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
4495         PR target/58944
4496         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
4497         clear cpp_get_options (parse_in)->warn_unused_macros for
4498         ix86_target_macros_internal with cpp_define.
4500 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
4502         * jump.c (delete_related_insns): Keep (use (insn))s.
4503         * reorg.c (redundant_insn): Check for barriers too.
4505 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
4507         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
4509 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
4511         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
4512         call to $$dyncall when TARGET_LONG_CALLS is true.
4514 2014-01-17  Jeff Law  <law@redhat.com>
4516         * ree.c (combine_set_extension): Temporarily disable test for
4517         changing number of hard registers.
4519 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
4521         PR middle-end/58125
4522         * ipa-inline-analysis.c (inline_free_summary):
4523         Do not free summary of aliases.
4525 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
4527         PR middle-end/59706
4528         * gimplify.c (gimplify_expr): Use create_tmp_var
4529         instead of create_tmp_var_raw.  If cond doesn't have
4530         integral type, don't add the IFN_ANNOTATE builtin at all.
4532 2014-01-17  Martin Jambor  <mjambor@suse.cz>
4534         PR ipa/59736
4535         * ipa-cp.c (prev_edge_clone): New variable.
4536         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
4537         Also resize prev_edge_clone vector.
4538         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
4539         (ipcp_edge_removal_hook): New function.
4540         (ipcp_driver): Register ipcp_edge_removal_hook.
4542 2014-01-17  Andrew Pinski <apinski@cavium.com>
4543             Steve Ellcey  <sellcey@mips.com>
4545         PR target/59462
4546         * config/mips/mips.c (mips_print_operand): Check operand mode instead
4547         of operator mode.
4549 2014-01-17  Jeff Law  <law@redhat.com>
4551         PR middle-end/57904
4552         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
4553         so that pass_ccp runs first.
4555 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
4557         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
4558         (ix86_adjust_cost): Use !TARGET_XXX.
4559         (do_reorder_for_imul): Likewise.
4560         (swap_top_of_ready_list): Likewise.
4561         (ix86_sched_reorder): Likewise.
4563 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
4565         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4566         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
4567         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
4568         (intel_memset): New.  Duplicate slm_memset.
4569         (intel_cost): New.  Duplicate slm_cost.
4570         (m_INTEL): New macro.
4571         (processor_target_table): Add "intel".
4572         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
4573         with PROCESSOR_INTEL for "intel".
4574         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
4575         PROCESSOR_SILVERMONT.
4576         (ix86_issue_rate): Likewise.
4577         (ix86_adjust_cost): Likewise.
4578         (ia32_multipass_dfa_lookahead): Likewise.
4579         (swap_top_of_ready_list): Likewise.
4580         (ix86_sched_reorder): Likewise.
4581         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
4582         instead of TARGET_OPT_AGU.
4583         * config/i386/i386.h (TARGET_INTEL): New.
4584         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
4585         (processor_type): Add PROCESSOR_INTEL.
4586         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
4587         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
4589 2014-01-17  Marek Polacek  <polacek@redhat.com>
4591         PR c/58346
4592         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
4593         size is zero.
4595 2014-01-17  Richard Biener  <rguenther@suse.de>
4597         PR tree-optimization/46590
4598         * opts.c (default_options_table): Add entries for
4599         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
4600         all enabled at -O1 but not for -Og.
4601         * common.opt (fbranch-count-reg): Remove Init(1).
4602         (fmove-loop-invariants): Likewise.
4603         (ftree-pta): Likewise.
4605 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
4607         * config/i386/i386.c (ix86_data_alignment): For compatibility with
4608         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
4609         decls to at least the GCC 4.8 used alignments.
4611         PR fortran/59440
4612         * tree-nested.c (convert_nonlocal_reference_stmt,
4613         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
4614         of GIMPLE_BIND stmts, adjust associated decls.
4616 2014-01-17  Richard Biener  <rguenther@suse.de>
4618         PR tree-optimization/46590
4619         * vec.h (vec<>::bseach): New member function implementing
4620         binary search according to C89 bsearch.
4621         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
4622         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
4623         bitmap pointer again.  Make accesses_in_loop a flat array.
4624         (mem_ref_obstack): New global.
4625         (outermost_indep_loop): Adjust for mem_ref->stored changes.
4626         (mark_ref_stored): Likewise.
4627         (ref_indep_loop_p_2): Likewise.
4628         (set_ref_stored_in_loop): New helper function.
4629         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
4630         (memref_free): Adjust.
4631         (record_mem_ref_loc): Simplify.
4632         (gather_mem_refs_stmt): Adjust.
4633         (sort_locs_in_loop_postorder_cmp): New function.
4634         (analyze_memory_references): Sort accesses_in_loop after
4635         loop postorder number.
4636         (find_ref_loc_in_loop_cmp): New function.
4637         (for_all_locs_in_loop): Find relevant cluster of locs in
4638         accesses_in_loop and iterate without recursion.
4639         (execute_sm): Avoid uninit warning.
4640         (struct ref_always_accessed): Simplify.
4641         (ref_always_accessed::operator ()): Likewise.
4642         (ref_always_accessed_p): Likewise.
4643         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
4644         loop postorder numbers here.
4645         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
4646         numbers.
4648 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
4650         PR c++/57945
4651         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
4652         on decls for which assemble_alias has been called.
4654 2014-01-17  Nick Clifton  <nickc@redhat.com>
4656         * config/msp430/msp430.opt: (mcpu): New option.
4657         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
4658         (msp430_option_override): Parse target_cpu.  If the MCU name
4659         matches a generic string, clear target_mcu.
4660         (msp430_attr): Allow numeric interrupt values up to 63.
4661         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
4662         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
4663         option.
4664         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
4665         Add mcpu matches.
4666         * config/msp430/msp430.md (popm): Use %J rather than %I.
4667         (addsi3): Use msp430_nonimmediate_operand for operand 2.
4668         (addhi_cy_i): Use immediate_operand for operand 2.
4669         * doc/invoke.texi: Document -mcpu option.
4671 2014-01-17  Richard Biener  <rguenther@suse.de>
4673         PR rtl-optimization/38518
4674         * df.h (df_analyze_loop): Declare.
4675         * df-core.c: Include cfgloop.h.
4676         (df_analyze_1): Split out main part of df_analyze.
4677         (df_analyze): Adjust.
4678         (loop_inverted_post_order_compute): New function.
4679         (loop_post_order_compute): Likewise.
4680         (df_analyze_loop): New function avoiding whole-function
4681         postorder computes.
4682         * loop-invariant.c (find_defs): Use df_analyze_loop.
4683         (find_invariants): Adjust.
4684         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
4686 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4688         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
4689         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
4691 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
4693         * ipa-ref.c (ipa_remove_stmt_references): Fix references
4694         traversal when removing references.
4696 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
4698         PR ipa/59775
4699         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
4701 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
4703         PR middle-end/56791
4704         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
4705         pushing a reload for an autoinc when we had previously reloaded an
4706         inner part of the address.
4708 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
4710         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
4711         field.
4712         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
4713         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
4714         when not giving up or versioning for alias only because of
4715         loop->safelen.
4716         (vect_analyze_data_ref_dependences): Set to true.
4717         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
4718         is a GIMPLE_PHI.
4719         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
4720         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
4721         to the condition.
4723         PR middle-end/58344
4724         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
4726         PR target/59839
4727         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
4728         operand 0 predicate for gathers, use a new pseudo as subtarget.
4730 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
4732         PR middle-end/59609
4733         * lra-constraints.c (process_alt_operands): Add printing debug info.
4734         Check absence of input/output reloads for matched operands too.
4736 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
4738         PR rtl-optimization/59835
4739         * ira.c (ira_init_register_move_cost): Increase cost for
4740         impossible modes.
4742 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
4744         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
4746 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
4748         PR target/59780
4749         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
4750         non-register objects.  Use gen_(high/low)part more consistently.
4751         Fix assertions.
4753 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
4755         PR target/59844
4756         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
4757         endian support, remove tests for WORDS_BIG_ENDIAN.
4758         (p8_mfvsrd_3_<mode>): Likewise.
4759         (reload_gpr_from_vsx<mode>): Likewise.
4760         (reload_gpr_from_vsxsf): Likewise.
4761         (p8_mfvsrd_4_disf): Likewise.
4763 2014-01-16  Richard Biener  <rguenther@suse.de>
4765         PR rtl-optimization/46590
4766         * lcm.c (compute_antinout_edge): Use postorder iteration.
4767         (compute_laterin): Use inverted postorder iteration.
4769 2014-01-16  Nick Clifton  <nickc@redhat.com>
4771         PR middle-end/28865
4772         * varasm.c (output_constant): Return the number of bytes actually
4773         emitted.
4774         (output_constructor_array_range): Update the field size with the
4775         number of bytes emitted by output_constant.
4776         (output_constructor_regular_field): Likewise.  Also do not
4777         complain if the total number of bytes emitted is now greater
4778         than the expected fieldpos.
4779         * output.h (output_constant): Update prototype and descriptive comment.
4781 2014-01-16  Marek Polacek  <polacek@redhat.com>
4783         PR middle-end/59827
4784         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
4785         it is error_mark_node.
4787 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
4789         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
4790         VALID_AVX256_REG_OR_OI_MODE.
4792 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
4794         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
4795         current procedure should be profiled.
4797 2014-01-15  Andrew Pinski  <apinski@cavium.com>
4799         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
4800         of moving from/to the STACK_REG register class.
4802 2014-01-15  Richard Henderson  <rth@redhat.com>
4804         PR debug/54694
4805         * reginfo.c (global_regs_decl): Globalize.
4806         * rtl.h (global_regs_decl): Declare.
4807         * ira.c (do_reload): Diagnose frame_pointer_needed and it
4808         reserved via global_regs.
4810 2014-01-15  Teresa Johnson  <tejohnson@google.com>
4812         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
4814 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
4816         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
4817         and vmulosh rather than call gen_vec_widen_smult_*.
4818         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
4819         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
4820         (vec_widen_smult_even_v16qi): Likewise.
4821         (vec_widen_umult_even_v8hi): Likewise.
4822         (vec_widen_smult_even_v8hi): Likewise.
4823         (vec_widen_umult_odd_v16qi): Likewise.
4824         (vec_widen_smult_odd_v16qi): Likewise.
4825         (vec_widen_umult_odd_v8hi): Likewise.
4826         (vec_widen_smult_odd_v8hi): Likewise.
4827         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
4828         vmuloub rather than call gen_vec_widen_umult_*.
4829         (vec_widen_umult_lo_v16qi): Likewise.
4830         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
4831         vmulosb rather than call gen_vec_widen_smult_*.
4832         (vec_widen_smult_lo_v16qi): Likewise.
4833         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
4834         rather than call gen_vec_widen_umult_*.
4835         (vec_widen_umult_lo_v8hi): Likewise.
4836         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
4837         rather than call gen_vec_widen_smult_*.
4838         (vec_widen_smult_lo_v8hi): Likewise.
4840 2014-01-15  Jeff Law  <law@redhat.com>
4842         PR tree-optimization/59747
4843         * ree.c (find_and_remove_re): Properly handle case where a second
4844         eliminated extension requires widening a copy created for elimination
4845         of a prior extension.
4846         (combine_set_extension): Ensure that the number of hard regs needed
4847         for a destination register does not change when we widen it.
4849 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4851         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
4852         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
4853         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
4854         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
4855         (avr-*-rtems*): Likewise.
4856         (bfin*-rtems*): Likewise.
4857         (moxie-*-rtems*): Likewise.
4858         (h8300-*-rtems*): Likewise.
4859         (i[34567]86-*-rtems*): Likewise.
4860         (lm32-*-rtems*): Likewise.
4861         (m32r-*-rtems*): Likewise.
4862         (m68k-*-rtems*): Likewise.
4863         (microblaze*-*-rtems*): Likewise.
4864         (mips*-*-rtems*): Likewise.
4865         (powerpc-*-rtems*): Likewise.
4866         (sh-*-rtems*): Likewise.
4867         (sparc-*-rtems*): Likewise.
4868         (sparc64-*-rtems*): Likewise.
4869         (v850-*-rtems*): Likewise.
4870         (m32c-*-rtems*): Likewise.
4872 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
4874         PR rtl-optimization/59511
4875         * ira.c (ira_init_register_move_cost): Use memory costs for some
4876         cases of register move cost calculations.
4877         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
4878         instead of BB frequency.
4879         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
4880         * lra-assigns.c (find_hard_regno_for): Ditto.
4882 2014-01-15  Richard Biener  <rguenther@suse.de>
4884         PR tree-optimization/59822
4885         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
4886         (vectorizable_load): Use it to hoist defs of uses of invariant
4887         loads out of the loop.
4889 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
4890             Kugan Vivekanandarajah  <kuganv@linaro.org>
4892         PR target/59695
4893         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
4894         truncation.
4896 2014-01-15  Richard Biener  <rguenther@suse.de>
4898         PR rtl-optimization/59802
4899         * lcm.c (compute_available): Use inverted postorder to seed
4900         the initial worklist.
4902 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4904         PR target/59803
4905         * config/s390/s390.c (s390_preferred_reload_class): Don't return
4906         ADDR_REGS for invalid symrefs in non-PIC code.
4908 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
4910         PR other/58712
4911         * builtins.c (determine_block_size): Initialize *probable_max_size
4912         even if len_rtx is CONST_INT.
4914 2014-01-14  Andrew Pinski  <apinski@cavium.com>
4916         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
4917         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
4918         (cortexa53_tunings): Likewise.
4919         (aarch64_sched_issue_rate): New function.
4920         (TARGET_SCHED_ISSUE_RATE): Define.
4922 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
4924         * ira-costs.c (find_costs_and_classes): Add missed
4925         ira_init_register_move_cost_if_necessary.
4927 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
4929         PR target/59787
4930         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
4932 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
4934         PR target/59794
4935         * config/i386/i386.c (type_natural_mode): Add a bool parameter
4936         to indicate if type is used for function return value.  Warn ABI
4937         change if the vector mode isn't available for function return value.
4938         (ix86_function_arg_advance): Pass false to type_natural_mode.
4939         (ix86_function_arg): Likewise.
4940         (ix86_gimplify_va_arg): Likewise.
4941         (function_arg_32): Don't warn ABI change.
4942         (ix86_function_value): Pass true to type_natural_mode.
4943         (ix86_return_in_memory): Likewise.
4944         (ix86_struct_value_rtx): Removed.
4945         (TARGET_STRUCT_VALUE_RTX): Likewise.
4947 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
4949         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
4950         converting a conditional jump into a conditional return.
4952 2014-01-14  Richard Biener  <rguenther@suse.de>
4954         PR tree-optimization/58921
4955         PR tree-optimization/59006
4956         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
4957         hoisting invariant stmts.
4958         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
4959         invariant loads on the preheader edge if possible.
4961 2014-01-14  Joey Ye  <joey.ye@arm.com>
4963         * doc/plugin.texi (Building GCC plugins): Update to C++.
4965 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
4967         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
4968         (_mm_rcp28_round_ss): Ditto.
4969         (_mm_rsqrt28_round_sd): Ditto.
4970         (_mm_rsqrt28_round_ss): Ditto.
4971         (_mm_rcp28_sd): Ditto.
4972         (_mm_rcp28_ss): Ditto.
4973         (_mm_rsqrt28_sd): Ditto.
4974         (_mm_rsqrt28_ss): Ditto.
4975         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
4976         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
4977         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
4978         (IX86_BUILTIN_RCP28SD): Ditto.
4979         (IX86_BUILTIN_RCP28SS): Ditto.
4980         (IX86_BUILTIN_RSQRT28SD): Ditto.
4981         (IX86_BUILTIN_RSQRT28SS): Ditto.
4982         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
4983         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
4984         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
4985         (ix86_expand_special_args_builtin): Expand new FTYPE.
4986         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
4987         (srcp14<mode>): Make insn unary.
4988         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
4989         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
4990         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
4991         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
4992         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
4993         Fix rounding: make it SAE only.
4994         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
4995         Ditto.
4996         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
4997         Ditto.
4998         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
4999         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
5000         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
5001         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
5002         (round_saeonly_mask_scalar_operand4): Ditto.
5003         (round_saeonly_mask_scalar_op3): Ditto.
5004         (round_saeonly_mask_scalar_op4): Ditto.
5006 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5008         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5009         Implement -maltivec=be for vec_insert and vec_extract.
5011 2014-01-10  DJ Delorie  <dj@redhat.com>
5013         * config/msp430/msp430.md (call_internal): Don't allow memory
5014         references with SP as the base register.
5015         (call_value_internal): Likewise.
5016         * config/msp430/constraints.md (Yc): New.  For memory references
5017         that don't use SP as a base register.
5019         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
5020         "an integer without a # prefix"
5021         * config/msp430/msp430.md (epilogue_helper): Use it.
5023 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
5025         PR target/59617
5026         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
5027         AVX512F gather builtins.
5028         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
5029         on gather decls with INTEGER_TYPE masktype.
5030         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
5031         directly into the builtin rather than hoisting it before loop.
5033         PR tree-optimization/59387
5034         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
5035         (scev_const_prop): If folded_casts and type has undefined overflow,
5036         use force_gimple_operand instead of force_gimple_operand_gsi and
5037         for each added stmt if it is assign with
5038         arith_code_with_undefined_signed_overflow, call
5039         rewrite_to_defined_overflow.
5040         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
5041         gimple-fold.h instead.
5042         (arith_code_with_undefined_signed_overflow,
5043         rewrite_to_defined_overflow): Moved to ...
5044         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
5045         rewrite_to_defined_overflow): ... here.  No longer static.
5046         Include gimplify-me.h.
5047         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
5048         rewrite_to_defined_overflow): New prototypes.
5050 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5052         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
5054 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
5056         * builtins.c (get_object_alignment_2): Minor tweak.
5057         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
5059 2014-01-13  Christian Bruel  <christian.bruel@st.com>
5061         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
5062         optimized non constant lengths.
5064 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
5066         PR libgomp/59194
5067         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
5068         load as __atomic_load_N if possible.
5070 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
5072         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
5073         target parameter.
5074         (rs6000_expand_builtin): Adjust call.
5076 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
5078         PR target/58115
5079         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
5080         * config/rs6000/rs6000.c: Include target-globals.h.
5081         (rs6000_set_current_function): Instead of doing target_reinit
5082         unconditionally, use save_target_globals_default_opts and
5083         restore_target_globals.
5085         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
5086         FPSCR.
5087         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
5088         (rs6000_expand_builtin): Handle mffs and mtfsf.
5089         (rs6000_init_builtins): Define mffs and mtfsf.
5090         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
5091         (rs6000_mffs): New pattern.
5092         (rs6000_mtfsf): New pattern.
5094 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
5096         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
5097         Start narrowing with START.  Apply candidate-use pair
5098         and check overall cost in narrowing.
5099         (iv_ca_prune): Pass new argument.
5101 2014-01-10  Jeff Law  <law@redhat.com>
5103         PR middle-end/59743
5104         * ree.c (combine_reaching_defs): Ensure the defining statement
5105         occurs before the extension when optimizing extensions with
5106         different source and destination hard registers.
5108 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
5110         PR ipa/58585
5111         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
5112         vtables into the type inheritance graph.
5114 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
5116         PR rtl-optimization/59754
5117         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
5118         modes in the REGNO != REGNO case.
5120 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5122         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
5124 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
5126         PR tree-optimization/59745
5127         * tree-predcom.c (tree_predictive_commoning_loop): Call
5128         free_affine_expand_cache if giving up because components is NULL.
5130         * target-globals.c (save_target_globals): Allocate < 4KB structs using
5131         GC in payload of target_globals struct instead of allocating them on
5132         the heap and the larger structs separately using GC.
5133         * target-globals.h (struct target_globals): Make regs, hard_regs,
5134         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
5135         of GTY((skip)) and change type to void *.
5136         (reset_target_globals): Cast loads from those fields to corresponding
5137         types.
5139 2014-01-10  Steve Ellcey  <sellcey@mips.com>
5141         PR plugins/59335
5142         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
5143         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
5144         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
5146 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
5148         PR target/59744
5149         * aarch64-modes.def (CC_Zmode): New flags mode.
5150         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
5151         represents an equality.
5152         (aarch64_get_condition_code): Handle CC_Zmode.
5153         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
5155 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5157         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
5158         extraction in good case.
5160 2014-01-10  Richard Biener  <rguenther@suse.de>
5162         PR tree-optimization/59374
5163         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
5164         checking after SLP discovery.  Mark stmts not participating
5165         in any SLP instance properly.
5167 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5169         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
5170         when handling a SET rtx.
5172 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5174         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
5175         (cortex-a57): Likewise.
5176         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
5178 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5180         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
5181         non-iwmmxt builtins.
5183 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
5185         PR ipa/58252
5186         PR ipa/59226
5187         * ipa-devirt.c record_target_from_binfo): Take as argument
5188         stack of binfos and lookup matching one for virtual inheritance.
5189         (possible_polymorphic_call_targets_1): Update.
5191 2014-01-10  Huacai Chen  <chenhc@lemote.com>
5193         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
5194         kernel strings for Loongson-2E/2F/3A.
5196 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
5198         PR middle-end/59670
5199         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
5200         is_gimple_call before calling gimple_call_internal_p.
5202 2014-01-09  Steve Ellcey  <sellcey@mips.com>
5204         * Makefile.in (TREE_FLOW_H): Remove.
5205         (TREE_SSA_H): Add file names from tree-flow.h.
5206         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
5207         * tree.h: Remove tree-flow.h reference.
5208         * hash-table.h: Remove tree-flow.h reference.
5209         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
5210         reference with tree-ssa-loop.h.
5212 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5214         * doc/invoke.texi: Add -maltivec={be,le} options, and document
5215         default element-order behavior for -maltivec.
5216         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
5217         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
5218         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
5219         when targeting big endian, at least for now.
5220         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
5222 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
5224         PR middle-end/47735
5225         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
5226         var satisfies use_register_for_decl, just take into account type
5227         alignment, rather than decl alignment.
5229         PR tree-optimization/59622
5230         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
5231         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
5232         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
5233         Don't devirtualize for inplace at all.  For targets.length () == 1,
5234         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
5236 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
5238         * config/i386/i386.md (cpu): Remove the unused btver1.
5240 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
5242         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
5244 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
5246         PR target/58115
5247         * tree-core.h (struct target_globals): New forward declaration.
5248         (struct tree_target_option): Add globals field.
5249         * tree.h (TREE_TARGET_GLOBALS): Define.
5250         (prepare_target_option_nodes_for_pch): New prototype.
5251         * target-globals.h (struct target_globals): Define even if
5252         !SWITCHABLE_TARGET.
5253         * tree.c (prepare_target_option_node_for_pch,
5254         prepare_target_option_nodes_for_pch): New functions.
5255         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
5256         * config/i386/i386.c: Include target-globals.h.
5257         (ix86_set_current_function): Instead of doing target_reinit
5258         unconditionally, use save_target_globals_default_opts and
5259         restore_target_globals.
5261 2014-01-09  Richard Biener  <rguenther@suse.de>
5263         PR tree-optimization/59715
5264         * tree-cfg.h (split_critical_edges): Declare.
5265         * tree-cfg.c (split_critical_edges): Export.
5266         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
5268 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
5270         * cfgexpand.c (expand_stack_vars): Optionally disable
5271         asan stack protection.
5272         (expand_used_vars): Likewise.
5273         (partition_stack_vars): Likewise.
5274         * asan.c (asan_emit_stack_protection): Optionally disable
5275         after return stack usage.
5276         (instrument_derefs): Optionally disable memory access instrumentation.
5277         (instrument_builtin_call): Likewise.
5278         (instrument_strlen_call): Likewise.
5279         (asan_protect_global): Optionally disable global variables protection.
5280         * doc/invoke.texi: Added doc for new options.
5281         * params.def: Added new options.
5282         * params.h: Likewise.
5284 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
5286         PR rtl-optimization/59724
5287         * ifcvt.c (cond_exec_process_if_block): Don't call
5288         flow_find_head_matching_sequence with 0 longest_match.
5289         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
5290         non-active insns if !stop_after.
5291         (try_head_merge_bb): Revert 2014-01-07 changes.
5293 2014-01-08  Jeff Law  <law@redhat.com>
5295         * ree.c (get_sub_rtx): New function, extracted from...
5296         (merge_def_and_ext): Here.
5297         (combine_reaching_defs): Use get_sub_rtx.
5299 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
5301         * cgraph.h (varpool_variable_node): Do not choke on null node.
5303 2014-01-08  Catherine Moore  <clm@codesourcery.com>
5305         * config/mips/mips.md (simple_return): Attempt to use JRC
5306         for microMIPS.
5307         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
5309 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
5311         PR rtl-optimization/59137
5312         * reorg.c (steal_delay_list_from_target): Call update_block for
5313         elided insns.
5314         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
5316 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5318         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
5319         two duplicate entries.
5321 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
5323         Revert:
5324         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
5326         * config/mips/mips.c (mips_truncated_op_cost): New function.
5327         (mips_rtx_costs): Adjust test for BADDU.
5328         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
5330         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
5332         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
5333         (*baddu_si): ...this new pattern.
5335 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
5337         PR ipa/59722
5338         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
5340 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5342         PR middle-end/57748
5343         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
5344         inner_reference_p.
5345         (expand_expr, expand_normal): Adjust.
5346         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
5347         inner_reference_p. Use inner_reference_p to expand inner references.
5348         (store_expr): Adjust.
5349         * cfgexpand.c (expand_call_stmt): Adjust.
5351 2014-01-08  Rong Xu  <xur@google.com>
5353         * gcov-io.c (gcov_var): Move from gcov-io.h.
5354         (gcov_position): Ditto.
5355         (gcov_is_error): Ditto.
5356         (gcov_rewrite): Ditto.
5357         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
5358         only part to libgcc/libgcov.h.
5360 2014-01-08  Marek Polacek  <polacek@redhat.com>
5362         PR middle-end/59669
5363         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
5365 2014-01-08  Marek Polacek  <polacek@redhat.com>
5367         PR sanitizer/59667
5368         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
5370 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
5372         PR rtl-optimization/59649
5373         * stor-layout.c (get_mode_bounds): For BImode return
5374         0 and STORE_FLAG_VALUE.
5376 2014-01-08  Richard Biener  <rguenther@suse.de>
5378         PR middle-end/59630
5379         * gimple.h (is_gimple_builtin_call): Remove.
5380         (gimple_builtin_call_types_compatible_p): New.
5381         (gimple_call_builtin_p): New overload.
5382         * gimple.c (is_gimple_builtin_call): Remove.
5383         (validate_call): Rename to ...
5384         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
5385         check return types.
5386         (validate_type): New static function.
5387         (gimple_call_builtin_p): New overload and adjust.
5388         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
5389         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
5390         (gimple_fold_stmt_to_constant_1): Likewise.
5391         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
5393 2014-01-08  Richard Biener  <rguenther@suse.de>
5395         PR middle-end/59471
5396         * gimplify.c (gimplify_expr): Gimplify register-register type
5397         VIEW_CONVERT_EXPRs to separate stmts.
5399 2014-01-07  Jeff Law  <law@redhat.com>
5401         PR middle-end/53623
5402         * ree.c (combine_set_extension): Handle case where source
5403         and destination registers in an extension insn are different.
5404         (combine_reaching_defs): Allow source and destination registers
5405         in extension to be different under limited circumstances.
5406         (add_removable_extension): Remove restriction that the
5407         source and destination registers in the extension are the same.
5408         (find_and_remove_re): Emit a copy from the extension's
5409         destination to its source after the defining insn if
5410         the source and destination registers are different.
5412         PR middle-end/59285
5413         * ifcvt.c (merge_if_block): If we are merging a block with more than
5414         one successor with a block with no successors, remove any BARRIER
5415         after the second block.
5417 2014-01-07  Dan Xio Qiang <ziyan01@163.com>
5419         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
5421 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
5423         PR target/59652
5424         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
5425         for 14-bit register offsets when INT14_OK_STRICT is false.
5427 2014-01-07  Roland Stigge  <stigge@antcom.de>
5428             Michael Meissner  <meissner@linux.vnet.ibm.com>
5430         PR 57386/target
5431         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
5432         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
5434 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
5436         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
5437         -mcpu.
5439 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
5441         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
5442         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
5443         rtx is const0_rtx or not.
5445 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
5447         PR target/58115
5448         * target-globals.c (save_target_globals): Remove this_fn_optab
5449         handling.
5450         * toplev.c: Include optabs.h.
5451         (target_reinit): Temporarily restore the global options if another
5452         set of options are in force.
5454 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
5456         PR rtl-optimization/58668
5457         * cfgcleanup.c (flow_find_cross_jump): Don't count
5458         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
5459         to determine what is counted.
5460         (flow_find_head_matching_sequence): Use active_insn_p to determine
5461         what is counted.
5462         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
5463         counting change.
5464         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
5465         determine what is counted.
5467         PR tree-optimization/59643
5468         * tree-predcom.c (split_data_refs_to_components): If one dr is
5469         read and one write, determine_offset fails and the write isn't
5470         in the bad component, just put the read into the bad component.
5472 2014-01-07  Mike Stump  <mikestump@comcast.net>
5473             Jakub Jelinek  <jakub@redhat.com>
5475         PR pch/59436
5476         * tree-core.h (struct tree_optimization_option): Change optabs
5477         type from unsigned char * to void *.
5478         * optabs.c (init_tree_optimization_optabs): Adjust
5479         TREE_OPTIMIZATION_OPTABS initialization.
5481 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
5483         PR target/59644
5484         * config/i386/i386.h (struct machine_function): Add
5485         no_drap_save_restore field.
5486         * config/i386/i386.c (ix86_save_reg): Use
5487         !cfun->machine->no_drap_save_restore instead of
5488         crtl->stack_realign_needed.
5489         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
5490         this function clears frame_pointer_needed.  Set
5491         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
5492         and DRAP reg is needed.
5494 2014-01-06  Marek Polacek  <polacek@redhat.com>
5496         PR c/57773
5497         * doc/implement-c.texi: Mention that other integer types are
5498         permitted as bit-field types in strictly conforming mode.
5500 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
5502         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
5503         is newly allocated.
5505 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
5507         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
5509 2014-01-06  Martin Jambor  <mjambor@suse.cz>
5511         PR ipa/59008
5512         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
5513         to int.
5514         * ipa-prop.c (ipa_print_node_params): Fix indentation.
5516 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
5518         PR debug/59350
5519         PR debug/59510
5520         * var-tracking.c (add_stores): Preserve the value of the source even if
5521         we don't record the store.
5523 2014-01-06  Terry Guo  <terry.guo@arm.com>
5525         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
5527 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
5529         PR bootstrap/59541
5530         * config/darwin.c (darwin_function_section): Adjust return values to
5531         correspond to optimisation changes made in r206070.
5533 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
5535         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5536         from prefetch_block tune setting.
5537         (nocona_cost): Correct size of prefetch block to 64.
5539 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
5541         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
5542         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
5543         used to save the static chain register in the computation of the offset
5544         from which the FP registers need to be restored.
5546 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
5548         PR tree-optimization/59519
5549         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
5550         ICE if get_current_def (current_new_name) is already non-NULL, as long
5551         as it is a phi result of some other phi in *new_exit_bb that has
5552         the same argument.
5554         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
5555         or vmovdqu* for misaligned_operand.
5556         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
5557         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
5558         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
5559         aligned_mem for AVX512F masked aligned load and store builtins and for
5560         non-temporal moves.
5562 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
5564         PR tree-optimization/59651
5565         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5566         Address range for negative step should be added by TYPE_SIZE_UNIT.
5568 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
5570         * config/m68k/m68k.c (handle_move_double): Handle pushes with
5571         overlapping registers also for registers other than the stack pointer.
5573 2014-01-03  Marek Polacek  <polacek@redhat.com>
5575         PR other/59661
5576         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
5577         __builtin_FILE.
5579 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
5581         PR target/59625
5582         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
5583         asm goto as jump.
5585         * config/i386/i386.md (MODE_SIZE): New mode attribute.
5586         (push splitter): Use <P:MODE_SIZE> instead of
5587         GET_MODE_SIZE (<P:MODE>mode).
5588         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
5589         (mov -1, reg peephole2): Likewise.
5590         * config/i386/sse.md (*mov<mode>_internal,
5591         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
5592         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
5593         *<code><mode>3, *andnot<mode>3<mask_name>,
5594         <mask_codefor><code><mode>3<mask_name>): Likewise.
5595         * config/i386/subst.md (mask_mode512bit_condition,
5596         sd_mask_mode512bit_condition): Likewise.
5598 2014-01-02  Xinliang David Li  <davidxl@google.com>
5600         PR tree-optimization/59303
5601         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
5602         (dump_predicates): Better output format.
5603         (pred_equal_p): New function.
5604         (is_neq_relop_p): Ditto.
5605         (is_neq_zero_form_p): Ditto.
5606         (pred_expr_equal_p): Ditto.
5607         (pred_neg_p): Ditto.
5608         (simplify_pred): Ditto.
5609         (simplify_preds_2): Ditto.
5610         (simplify_preds_3): Ditto.
5611         (simplify_preds_4): Ditto.
5612         (simplify_preds): Ditto.
5613         (push_pred): Ditto.
5614         (push_to_worklist): Ditto.
5615         (get_pred_info_from_cmp): Ditto.
5616         (is_degenerated_phi): Ditto.
5617         (normalize_one_pred_1): Ditto.
5618         (normalize_one_pred): Ditto.
5619         (normalize_one_pred_chain): Ditto.
5620         (normalize_preds): Ditto.
5621         (normalize_cond_1): Remove function.
5622         (normalize_cond): Ditto.
5623         (is_gcond_subset_of): Ditto.
5624         (is_subset_of_any): Ditto.
5625         (is_or_set_subset_of): Ditto.
5626         (is_and_set_subset_of): Ditto.
5627         (is_norm_cond_subset_of): Ditto.
5628         (pred_chain_length_cmp): Ditto.
5629         (convert_control_dep_chain_into_preds): Type change.
5630         (find_predicates): Ditto.
5631         (find_def_preds): Ditto.
5632         (destroy_predicates_vecs): Ditto.
5633         (find_matching_predicates_in_rest_chains): Ditto.
5634         (use_pred_not_overlap_with_undef_path_pred): Ditto.
5635         (is_pred_expr_subset): Ditto.
5636         (is_pred_chain_subset_of): Ditto.
5637         (is_included_in): Ditto.
5638         (is_superset_of): Ditto.
5640 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
5642         Update copyright years.
5644 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
5646         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
5647         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
5648         config/arc/arc.md, config/arc/arc.opt,
5649         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
5650         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
5651         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
5652         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
5653         config/linux-protos.h, config/linux.c, config/winnt-c.c,
5654         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
5655         vtable-verify.c, vtable-verify.h: Use the standard form for the
5656         copyright notice.
5658 2014-01-02  Tobias Burnus  <burnus@net-b.de>
5660         * gcc.c (process_command): Update copyright notice dates.
5661         * gcov-dump.c: Ditto.
5662         * gcov.c: Ditto.
5663         * doc/cpp.texi: Bump @copying's copyright year.
5664         * doc/cppinternals.texi: Ditto.
5665         * doc/gcc.texi: Ditto.
5666         * doc/gccint.texi: Ditto.
5667         * doc/gcov.texi: Ditto.
5668         * doc/install.texi: Ditto.
5669         * doc/invoke.texi: Ditto.
5671 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5673         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
5675 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
5677         * config/i386/sse.md (*mov<mode>_internal): Guard
5678         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
5680         PR rtl-optimization/59647
5681         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
5682         new_rtx into UNSIGNED_FLOAT rtxes.
5684 Copyright (C) 2014 Free Software Foundation, Inc.
5686 Copying and distribution of this file, with or without modification,
5687 are permitted in any medium without royalty provided the copyright
5688 notice and this notice are preserved.