* doc/extend.texi (Size of an asm): Move node text according
[official-gcc.git] / gcc / ChangeLog
blob22c52a6dc5b2acc67a95391dc99779734d80fdf7
1 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
3         * doc/extend.texi (Size of an asm): Move node text according
4         to its @menu entry position.
6 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
8         PR tree-optimization/61140
9         PR tree-optimization/61150
10         PR tree-optimization/61197
11         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
13 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
15         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
17 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
19         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
20         __SIZEOF_INT128__ is defined.
22 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25         (rs6000_delegitimize_address): Use it.
27 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
29         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
30         inplace argument.  Store the new address in the original MEM when true.
31         * emit-rtl.c (change_address_1): Likewise.
32         (adjust_address_1, adjust_automodify_address_1, offset_address):
33         Update accordingly.
34         * rtl.h (plus_constant): Add an inplace argument.
35         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
36         when true.  Avoid generating (plus X (const_int 0)).
37         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
38         in-place.  Pass true to plus_constant.
39         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
41 2014-05-16  Dehao Chen  <dehao@google.com>
43         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
45 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
47         PR target/54089
48         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
49         patterns.
50         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
52 2014-05-16  Dehao Chen  <dehao@google.com>
54         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
55         optimize_function_for_size_p.
56         * regs.h (REG_FREQ_FROM_BB): Likewise.
58 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
60         PR target/51244
61         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
62         negt_reg_operand cases.
63         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
64         predicate.
65         * config/sh/predicates.md (cbranch_treg_value): Simplify.
67 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
69         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
70         target variants.
72 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
74         Revert:
75         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
77         * tree-cfg.c (dump_function_to_file): Dump the return type of
78         functions, in a line to itself before the function body, mimicking
79         the layout of a C function.
81 2014-05-16  Dehao Chen  <dehao@google.com>
83         * cfghooks.c (make_forwarder_block): Use direct computation to
84         get fall-through edge's count and frequency.
86 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
88         * config/arc/arc.c (arc_init): Fix typo in error message.
89         * config/i386/i386.c (ix86_expand_builtin): Likewise.
90         (split_stack_prologue_scratch_regno): Likewise.
91         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
92         word from error message.
94 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
96         * ira-costs.c: Fix typo in comment.
98 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
100         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
102 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
104         * varpool.c (dump_varpool_node): Dump write-only flag.
105         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
106         write-only flag.
107         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
108         write-only variables.
109         * ipa.c (process_references): New function.
110         (set_readonly_bit): New function.
111         (set_writeonly_bit): New function.
112         (clear_addressable_bit): New function.
113         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
114         fix handling of aliases.
115         * cgraph.h (struct varpool_node): Add writeonly flag.
117 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
119         PR rtl-optimization/60969
120         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
121         Calculate costs for this case.
123 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
125         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
126         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
128 2014-05-16  Richard Biener  <rguenther@suse.de>
130         PR tree-optimization/61194
131         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
132         bool patterns ending in a COND_EXPR.
134 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
136         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
138 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
140         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
141         where we were unable to cost an RTX.
143 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
145         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
146         HIGH, LO_SUM.
148 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
149             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
151         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
153 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
154             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
156         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
157         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
159 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
160             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
162         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
163         operators.
165 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
166             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
168         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
169         DIV/MOD.
171 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
172             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
174         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
175         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
177 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
178             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
180         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
181         rotates and shifts.
183 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
184             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
186         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
187         ZERO_EXTEND and SIGN_EXTEND better.
189 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
190             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
192         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
193         logical operations.
195 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
196             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
198         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
199         costs when costing loads and stores to memory.
201 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
202             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
204         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
205         for SET RTX.
207 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
209         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
211 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
212             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
214         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
215         to...
216         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
217         well formed.
218         (aarch64_rtx_mult_cost): New.
219         (aarch64_rtx_costs): Use it, refactor as appropriate.
221 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
222             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
224         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
225         emit instructions, return number of instructions which would
226         be emitted.
227         (aarch64_add_constant): Update call to aarch64_build_constant.
228         (aarch64_output_mi_thunk): Likewise.
229         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
230         a CONST_DOUBLE.
232 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
234         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
235         (TARGET_RTX_COSTS): Call it.
237 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
239         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
240         (cortexa57_vector_cost): Likewise.
241         (cortexa57_tunings): Use them.
243 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
245         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
246         (cpu_addrcost_table): Use it.
247         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
248         (aarch64_address_cost): Rewrite using aarch64_classify_address,
249         move it.
251 2014-05-16  Richard Biener  <rguenther@suse.de>
253         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
254         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
255         (visit_phi): Ignore edges marked as not executable.
256         (class cond_dom_walker): New.
257         (cond_dom_walker::before_dom_children): Value-number
258         control statements and mark successor edges as not
259         executable if possible.
260         (run_scc_vn): First walk all control statements in
261         dominator order, marking edges as not executable.
262         * tree-inline.c (copy_edges_for_bb): Be not confused
263         about random edge flags.
265 2014-05-16  Richard Biener  <rguenther@suse.de>
267         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
269 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
271         PR target/61193
272         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
273         (__TM_simple_begin): Use it.
274         (__TM_begin): Likewise.
276 2014-05-15  Martin Jambor  <mjambor@suse.cz>
278         PR ipa/61085
279         * ipa-prop.c (update_indirect_edges_after_inlining): Check
280         type_preserved flag when the indirect edge is polymorphic.
282 2014-05-15  Martin Jambor  <mjambor@suse.cz>
284         PR tree-optimization/61090
285         * tree-sra.c (sra_modify_expr): Pass the current gsi to
286         build_ref_for_model.
288 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
290         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
291         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
293 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
295         PR tree-optimization/61158
296         * fold-const.c (fold_binary_loc): If X is zero-extended and
297         shiftc >= prec, make sure zerobits is all ones instead of
298         invoking undefined behavior.
300 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
302         * regcprop.h: New file.
303         * regcprop.c (skip_debug_insn_p): New decl.
304         (replace_oldest_value_reg): Check skip_debug_insn_p.
305         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
306         * shrink-wrap.c: Include regcprop.h.
307         (prepare_shrink_wrap): Call
308         copyprop_hardreg_forward_bb_without_debug_insn.
310 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
312         * shrink-wrap.h: Update comment.
313         * shrink-wrap.c: Update comment.
314         (next_block_for_reg): Rename to live_edge_for_reg.
315         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
316         (move_insn_for_shrink_wrap): Split live_edge.
317         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
319 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
321         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
322         Delete.
323         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
324         * config/sparc/sparc.md (fptype_ut699): New attribute.
325         (in_branch_delay): Return false if -mfix-ut699 is specified and
326         fptype_ut699 is set to single.
327         (truncdfsf2): Add fptype_ut699 attribute.
328         (fix_truncdfsi2): Likewise.
329         (floatsisf2): Change fptype attribute.
330         (fix_truncsfsi2): Likewise.
331         (negtf2_notv9): Delete.
332         (negtf2_v9): Likewise.
333         (negtf2_hq): New instruction.
334         (negtf2): New instruction and splitter.
335         (negdf2_notv9): Rewrite.
336         (abstf2_notv9): Delete.
337         (abstf2_hq_v9): Likewise.
338         (abstf2_v9): Likewise.
339         (abstf2_hq): New instruction.
340         (abstf2): New instruction and splitter.
341         (absdf2_notv9): Rewrite.
343 2014-05-14  Cary Coutant  <ccoutant@google.com>
345         PR debug/61013
346         * opts.c (common_handle_option): Don't special-case "-g".
347         (set_debug_level): Default to at least level 2 with "-g".
349 2014-05-14  DJ Delorie  <dj@redhat.com>
351         * config/msp430/msp430.c (msp430_builtin): Add
352         MSP430_BUILTIN_DELAY_CYCLES.
353         (msp430_init_builtins): Register void __delay_cycles(long long).
354         (msp430_builtin_decl): Add it.
355         (cg_magic_constant): New.
356         (msp430_expand_delay_cycles): New.
357         (msp430_expand_builtin): Call it.
358         (msp430_print_operand_raw): Change integer printing from "int" to
359         HOST_WIDE_INT.
360         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
361         (delay_cycles_start): New.
362         (delay_cycles_end): New.
363         (delay_cycles_32): New.
364         (delay_cycles_32x): New.
365         (delay_cycles_16): New.
366         (delay_cycles_16x): New.
367         (delay_cycles_2): New.
368         (delay_cycles_1): New.
369         * doc/extend.texi: Document __delay_cycles().
371 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
373         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
374         length attribute computation.
376 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
378         PR debug/61188
379         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
381 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
383         PR target/61084
384         * config/sparc/sparc.md: Fix types of low and high in DI constant
385         splitter.  Use gen_int_mode in some other splitters.
387 2014-05-14  Martin Jambor  <mjambor@suse.cz>
389         PR ipa/60897
390         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
392 2014-05-14  James Norris  <jnorris@codesourcery.com>
394         * omp-low.c (expand_parallel_call): Remove shadow variable.
395         (expand_omp_taskreg): Likewise.
397 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
399         * common/config/i386/i386-common.c
400         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
401         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
402         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
403         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
404         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
405         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
406         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
407         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
408         xsavecintrin.h, xsavesintrin.h.
409         (x86_64-*-*): Ditto.
410         * config/i386/clflushoptintrin.h: New.
411         * config/i386/xsavecintrin.h: Ditto.
412         * config/i386/xsavesintrin.h: Ditto.
413         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
414         (bit_XSAVES): Ditto.
415         (bit_XSAVES): Ditto.
416         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
417         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
418         -mno-clflushopt.
419         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
420         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
421         OPTION_MASK_ISA_XSAVES.
422         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
423         -mxsavec, -mxsaves.
424         (PTA_CLFLUSHOPT) Define.
425         (PTA_XSAVEC): Ditto.
426         (PTA_XSAVES): Ditto.
427         (ix86_option_override_internal): Handle new options.
428         (ix86_valid_target_attribute_inner_p): Ditto.
429         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
430         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
431         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
432         (bdesc_special_args): Add __builtin_ia32_xsaves,
433         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
434         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
435         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
436         (ix86_expand_builtin): Handle new builtins.
437         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
438         (TARGET_CLFLUSHOPT_P): Ditto.
439         (TARGET_XSAVEC): Ditto.
440         (TARGET_XSAVEC_P): Ditto.
441         (TARGET_XSAVES): Ditto.
442         (TARGET_XSAVES_P): Ditto.
443         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
444         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
445         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
446         (ANY_XRSTOR): New.
447         (ANY_XRSTOR64): Ditto.
448         (xrstor): Ditto.
449         (xrstor): Change into <xrstor>.
450         (xrstor_rex64): Change into <xrstor>_rex64.
451         (xrstor64): Change into <xrstor>64
452         (clflushopt): New.
453         * config/i386/i386.opt (mclflushopt): New.
454         (mxsavec): Ditto.
455         (mxsaves): Ditto.
456         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
457         xsavecintrin.h.
458         * doc/invoke.texi: Document new options.
460 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
462         PR rtl-optimization/60866
463         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
464         Default it to -1.  Pass it down to init_simplejump_data.
465         (init_simplejump_data): New parameter old_seqno.  Pass it down
466         to get_seqno_for_a_jump.
467         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
468         initializing new jump seqno as a last resort.  Add comment.
469         (sel_redirect_edge_and_branch): Save old seqno of the conditional
470         jump and pass it down to sel_init_new_insn.
471         (sel_redirect_edge_and_branch_force): Likewise.
473 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
475         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
476         shifted values to avoid build warning.
478 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
480         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
481         * cfgrtl.c (rtl_merge_blocks): Fix comment.
482         (cfg_layout_merge_blocks): Likewise.
483         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
485 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
487         PR rtl-optimization/60901
488         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
489         bb predecessor belongs to the same scheduling region.  Adjust comment.
491 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
493         * doc/sourcebuild.texi: (dfp_hw): Document.
494         (p8vector_hw): Likewise.
495         (powerpc_eabi_ok): Likewise.
496         (powerpc_elfv2): Likewise.
497         (powerpc_htm_ok): Likewise.
498         (ppc_recip_hw): Likewise.
499         (vsx_hw): Likewise.
501 2014-05-13  Cary Coutant  <ccoutant@google.com>
503         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
505 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
507         * gengtype-parse.c (require3): Eliminate in favor of...
508         (require4): New.
509         (require_template_declaration): Update to support optional single *
510         on a type.
512         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
513         (create_user_defined_type): Handle a single level of explicit
514         pointerness within template arguments.
515         (struct write_types_data): Add field "kind".
516         (filter_type_name): Handle "*" character.
517         (write_user_func_for_structure_ptr): Require a write_types_data
518         rather than just a prefix string, so that we can look up the kind
519         of the wtd and use it as an index into wrote_user_func_for_ptr,
520         ensuring that such functions are written at most once.  Support
521         subclasses by invoking the marking function of the ultimate base class.
522         (write_user_func_for_structure_body): Require a write_types_data
523         rather than just a prefix string, so that we can pass this to
524         write_user_func_for_structure_ptr.
525         (write_func_for_structure): Likewise.
526         (ggc_wtd): Add initializer of new "kind" field.
527         (pch_wtd): Likewise.
529         * gengtype.h (enum write_types_kinds): New.
530         (struct type): Add field wrote_user_func_for_ptr to the "s"
531         union member.
533 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
535         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
536         instead of const_binop.
537         (fold_binary_loc): Likewise.
539 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
541         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
542         calculation to match get_ref_base_and_extent.
544 2014-05-13  Catherine Moore  <clm@codesourcery.com>
545             Sandra Loosemore  <sandra@codesourcery.com>
547         * configure.ac: Fix assembly for explicit JALR relocation check.
548         * configure: Regenerate.
550 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
552         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
553         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
554         Remove associated type declarations and initialisations.
555         (arm_expand_neon_builtin): Likewise.
556         (neon_emit_pair_result_insn): Delete.
557         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
558         * config/arm/neon.md (neon_vtrn<mode>): Delete.
559         (neon_vzip<mode>): Likewise.
560         (neon_vuzp<mode>): Likewise.
562 2014-05-13  Richard Biener  <rguenther@suse.de>
564         PR ipa/60973
565         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
566         it needs revisiting whether the call still may be tail-called.
568 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
570         * rtl.def (SYMBOL_REF): Remove middle "0" field.
571         * rtl.h (block_symbol): Reduce number of fields to 2.
572         (rtx_def): Add u2.symbol_ref_flags.
573         (SYMBOL_REF_FLAGS): Use it.
574         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
575         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
576         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
577         Lower index of SYMBOL_REF_DATA.
578         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
579         Print SYMBOL_REF_FLAGS at the same time.
580         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
582 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
584         * rtl.def (VAR_LOCATION): Remove "i" field.
585         * rtl.h (rtx_def): Add u2.var_location_status.
586         (PAT_VAR_LOCATION_STATUS): Use it.
587         (gen_rtx_VAR_LOCATION): Declare.
588         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
589         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
590         * var-tracking.c (emit_note_insn_var_location): Remove casts.
592 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
594         * rtl.def (scratch): Fix outdated comment and remove "0" field.
595         * gengtype.c (adjust_field_rtx_def): Update accordingly.
597 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
599         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
600         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
601         * rtl.h (rtx_def): Add insn_uid to u2 field.
602         (RTX_FLAG_CHECK8): Delete in favor of...
603         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
604         (INSN_DELETED_P): Update accordingly.
605         (INSN_UID): Use u2.insn_uid.
606         (INSN_CHAIN_CODE_P): Define.
607         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
608         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
609         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
610         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
611         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
612         indices accordingly.
613         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
614         Update indices for insn-chain rtxes.
615         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
616         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
617         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
618         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
619         * combine.c (try_combine): Likewise.
620         * ira.c (setup_prohibited_mode_move_regs): Likewise.
622 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
624         * rtl.def (REG): Remove middle field.
625         * rtl.h (rtx_def): Add orignal_regno to u2.
626         (ORIGINAL_REGNO): Use it instead of field 1.
627         (REG_ATTRS): Lower field index accordingly.
628         * gengtype.c (adjust_field_rtx_def): Remove handling of
629         ORIGINAL_REGNO.  Move REG_ATTRS index down.
630         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
631         code that prints the REGNO.
633 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
635         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
636         GENERATOR_FILE.
638 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
640         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
642 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
644         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
645         (alloc_iv): Lower base expressions containing ADDR_EXPR.
647 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
649         * config/aarch64/aarch64-protos.h
650         (aarch64_hard_regno_caller_save_mode): New prototype.
651         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
652         New function.
653         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
655 2014-05-13  Christian Bruel  <christian.bruel@st.com>
657         * target.def (mode_switching): New hook vector.
658         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
659         (mode_exit, modepriority_to_mode): Likewise.
660         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
661         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
662         * target.h: Include tm.h and hard-reg-set.h.
663         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
664         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
665         * doc/tm.texi Regenerate.
666         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
667         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
668         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
669         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
670         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
671         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
672         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
673         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
674         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
675         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
676         (ix86_emit_mode_set): Hookify.
677         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
678         Delete.
679         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
680         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
681         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
682         (epiphany_mode_priority_to_mode): Remove declaration.
683         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
684         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
685         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
686         Likewise.
687         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
688         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
689         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
691 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
693         PR target/61060
694         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
695         is const0_rtx, return immediately.  Don't test count == 0 when
696         it is always true.
698 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
700         * Makefile.in: add shrink-wrap.o.
701         * config/i386/i386.c: include "shrink-wrap.h"
702         * function.c: Likewise.
703         (requires_stack_frame_p, next_block_for_reg,
704         move_insn_for_shrink_wrap, prepare_shrink_wrap,
705         dup_block_and_redirect): Move to shrink-wrap.c
706         (thread_prologue_and_epilogue_insns): Extract three code segments
707         as functions in shrink-wrap.c
708         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
709         shrink-wrap.h
710         * shrink-wrap.c: New file.
711         * shrink-wrap.h: New file.
713 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
715         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
716         reference to Solaris.
718 2014-05-12  Mike Stump  <mikestump@comcast.net>
720         PR other/31778
721         * genattrtab.c (filename): Add.
722         (convert_set_attr_alternative): Improve error message.
723         (check_defs): Restore read_md_filename for error messages.
724         (gen_insn): Save filename.
726 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
728         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
729         -fno-local-ivars and -fivar-visibility.
730         * c-family/c.opt: Make -Wshadow also implicitly enable
731         -Wshadow-ivar.
733 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
735         * doc/tm.texi: Remove reference to deleted macro.
736         * doc/tm.texi.in: Likewise.
738 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
740         PR target/60991
741         * config/avr/avr.c (avr_out_store_psi): Use correct constant
742         to restore Y.
744 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
746         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
747         * config/arm/aout.h (License): Same.
748         * config/arm/bpabi.h (License): Same.
749         * config/arm/elf.h (License): Same.
750         * config/arm/linux-elf.h (License): Same.
751         * config/arm/linux-gas.h (License): Same.
752         * config/arm/netbsd-elf.h (License): Same.
753         * config/arm/uclinux-eabi.h (License): Same.
754         * config/arm/uclinux-elf.h (License): Same.
755         * config/arm/vxworks.h (License): Same.
757 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
759         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
760         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
761         number of operands to 3.
762         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
763         * tree-nested.c (convert_nonlocal_omp_clauses,
764         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
765         * gimplify.c (gimplify_scan_omp_clauses): Handle
766         OMP_CLAUSE_LINEAR_STMT.
767         * omp-low.c (lower_rec_input_clauses): Fix typo.
768         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
769         cast between Fortran boolean_type_node and C _Bool if
770         needed.
772 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
774         PR tree-optimization/61136
775         * wide-int.h (multiple_of_p): Define a version that doesn't return
776         the quotient.
777         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
778         integer_zerop/const_binop pair.
779         (multiple_of_p): Likewise, converting both operands to widest_int
780         precision.
782 2014-05-09  Teresa Johnson  <tejohnson@google.com>
784         * cgraphunit.c (analyze_functions): Use correct dump file.
786 2014-05-09  Florian Weimer  <fweimer@redhat.com>
788         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
789         expand_used_vars.
790         (stack_protect_return_slot_p): New function.
791         (expand_used_vars): Call stack_protect_decl_p and
792         stack_protect_return_slot_p for -fstack-protector-strong.
794 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
796         PR middle-end/61111
797         * fold-const.c (fold_binary_loc): Changed width of mask.
799 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
801         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
802         unsigned int initializers for regno_in, regno_out.
804 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
806         PR target/61055
807         * config/avr/avr.md (cc): Add new attribute set_vzn.
808         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
809         Set cc insn attribute to set_vzn instead of set_zn for alternatives
810         with INC, DEC or NEG.
811         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
812         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
813         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
815 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
817         Revert:
818         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
820         * wide-int.cc (UTItype): Define.
821         (UDWtype): Define for appropriate W_TYPE_SIZE.
823 2014-05-09  Richard Biener  <rguenther@suse.de>
825         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
826         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
827         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
828         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
829         ssa_propagate): Adjust.
831 2014-05-08  Jeff Law  <law@redhat.com>
833         PR tree-optimization/61009
834         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
835         tri-state rather than a boolean.  When a block is too big to
836         thread through, inform caller via negative return value.
837         (thread_across_edge): If a block was too big for normal threading,
838         then it's too big for a joiner too, so remove temporary equivalences
839         and return immediately.
841 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
842             Matthias Klose  <doko@ubuntu.com>
844         PR driver/61106
845         * optc-gen.awk: Fix option handling for -Wunused-parameter.
847 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
849         PR target/59952
850         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
852 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
854         PR target/61092
855         * config/alpha/alpha.c: Include gimple-iterator.h.
856         (alpha_gimple_fold_builtin): New function.  Move
857         ALPHA_BUILTIN_UMULH folding from ...
858         (alpha_fold_builtin): ... here.
859         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
861 2014-05-08  Wei Mi  <wmi@google.com>
863         PR target/58066
864         * config/i386/i386.c (ix86_compute_frame_layout): Update
865         preferred_stack_boundary for call, expanded from tls descriptor.
866         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
867         to depend on SP register.
868         (*tls_local_dynamic_base_32_gnu): Ditto.
869         (*tls_local_dynamic_32_once): Ditto.
870         (tls_global_dynamic_64_<mode>): Set
871         ix86_tls_descriptor_calls_expanded_in_cfun.
872         (tls_local_dynamic_base_64_<mode>): Ditto.
873         (tls_global_dynamic_32): Set
874         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
875         to depend on SP register.
876         (tls_local_dynamic_base_32): Ditto.
878 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
880         * config/arm/arm_neon.h: Update comment.
881         * config/arm/neon-docgen.ml: Delete.
882         * config/arm/neon-gen.ml: Delete.
883         * doc/arm-neon-intrinsics.texi: Update comment.
885 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
887         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
888         and v4sf versions.
889         (vand, vorr, veor, vorn, vbic): Remove.
890         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
891         iterator.
892         (neon_vsub_unspec): Likewise.
893         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
895 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
897         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
898         (vadd_s16): Likewise.
899         (vadd_s32): Likewise.
900         (vadd_f32): Likewise.
901         (vadd_u8): Likewise.
902         (vadd_u16): Likewise.
903         (vadd_u32): Likewise.
904         (vadd_s64): Likewise.
905         (vadd_u64): Likewise.
906         (vaddq_s8): Likewise.
907         (vaddq_s16): Likewise.
908         (vaddq_s32): Likewise.
909         (vaddq_s64): Likewise.
910         (vaddq_f32): Likewise.
911         (vaddq_u8): Likewise.
912         (vaddq_u16): Likewise.
913         (vaddq_u32): Likewise.
914         (vaddq_u64): Likewise.
915         (vmul_s8): Likewise.
916         (vmul_s16): Likewise.
917         (vmul_s32): Likewise.
918         (vmul_f32): Likewise.
919         (vmul_u8): Likewise.
920         (vmul_u16): Likewise.
921         (vmul_u32): Likewise.
922         (vmul_p8): Likewise.
923         (vmulq_s8): Likewise.
924         (vmulq_s16): Likewise.
925         (vmulq_s32): Likewise.
926         (vmulq_f32): Likewise.
927         (vmulq_u8): Likewise.
928         (vmulq_u16): Likewise.
929         (vmulq_u32): Likewise.
930         (vsub_s8): Likewise.
931         (vsub_s16): Likewise.
932         (vsub_s32): Likewise.
933         (vsub_f32): Likewise.
934         (vsub_u8): Likewise.
935         (vsub_u16): Likewise.
936         (vsub_u32): Likewise.
937         (vsub_s64): Likewise.
938         (vsub_u64): Likewise.
939         (vsubq_s8): Likewise.
940         (vsubq_s16): Likewise.
941         (vsubq_s32): Likewise.
942         (vsubq_s64): Likewise.
943         (vsubq_f32): Likewise.
944         (vsubq_u8): Likewise.
945         (vsubq_u16): Likewise.
946         (vsubq_u32): Likewise.
947         (vsubq_u64): Likewise.
948         (vand_s8): Likewise.
949         (vand_s16): Likewise.
950         (vand_s32): Likewise.
951         (vand_u8): Likewise.
952         (vand_u16): Likewise.
953         (vand_u32): Likewise.
954         (vand_s64): Likewise.
955         (vand_u64): Likewise.
956         (vandq_s8): Likewise.
957         (vandq_s16): Likewise.
958         (vandq_s32): Likewise.
959         (vandq_s64): Likewise.
960         (vandq_u8): Likewise.
961         (vandq_u16): Likewise.
962         (vandq_u32): Likewise.
963         (vandq_u64): Likewise.
964         (vorr_s8): Likewise.
965         (vorr_s16): Likewise.
966         (vorr_s32): Likewise.
967         (vorr_u8): Likewise.
968         (vorr_u16): Likewise.
969         (vorr_u32): Likewise.
970         (vorr_s64): Likewise.
971         (vorr_u64): Likewise.
972         (vorrq_s8): Likewise.
973         (vorrq_s16): Likewise.
974         (vorrq_s32): Likewise.
975         (vorrq_s64): Likewise.
976         (vorrq_u8): Likewise.
977         (vorrq_u16): Likewise.
978         (vorrq_u32): Likewise.
979         (vorrq_u64): Likewise.
980         (veor_s8): Likewise.
981         (veor_s16): Likewise.
982         (veor_s32): Likewise.
983         (veor_u8): Likewise.
984         (veor_u16): Likewise.
985         (veor_u32): Likewise.
986         (veor_s64): Likewise.
987         (veor_u64): Likewise.
988         (veorq_s8): Likewise.
989         (veorq_s16): Likewise.
990         (veorq_s32): Likewise.
991         (veorq_s64): Likewise.
992         (veorq_u8): Likewise.
993         (veorq_u16): Likewise.
994         (veorq_u32): Likewise.
995         (veorq_u64): Likewise.
996         (vbic_s8): Likewise.
997         (vbic_s16): Likewise.
998         (vbic_s32): Likewise.
999         (vbic_u8): Likewise.
1000         (vbic_u16): Likewise.
1001         (vbic_u32): Likewise.
1002         (vbic_s64): Likewise.
1003         (vbic_u64): Likewise.
1004         (vbicq_s8): Likewise.
1005         (vbicq_s16): Likewise.
1006         (vbicq_s32): Likewise.
1007         (vbicq_s64): Likewise.
1008         (vbicq_u8): Likewise.
1009         (vbicq_u16): Likewise.
1010         (vbicq_u32): Likewise.
1011         (vbicq_u64): Likewise.
1012         (vorn_s8): Likewise.
1013         (vorn_s16): Likewise.
1014         (vorn_s32): Likewise.
1015         (vorn_u8): Likewise.
1016         (vorn_u16): Likewise.
1017         (vorn_u32): Likewise.
1018         (vorn_s64): Likewise.
1019         (vorn_u64): Likewise.
1020         (vornq_s8): Likewise.
1021         (vornq_s16): Likewise.
1022         (vornq_s32): Likewise.
1023         (vornq_s64): Likewise.
1024         (vornq_u8): Likewise.
1025         (vornq_u16): Likewise.
1026         (vornq_u32): Likewise.
1027         (vornq_u64): Likewise.
1029 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1031         * wide-int.cc (UTItype): Define.
1032         (UDWtype): Define for appropriate W_TYPE_SIZE.
1034 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
1036         PR tree-optimization/59100
1037         * tree-ssa-phiopt.c: Include tree-inline.h.
1038         (neutral_element_p, absorbing_element_p): New functions.
1039         (value_replacement): Handle conditional binary operations with a
1040         neutral or absorbing element.
1042 2014-05-08  Richard Biener  <rguenther@suse.de>
1044         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
1045         folding the expression.
1046         (valueize_expr): Remove.
1047         (visit_reference_op_load): Do not valueize the result of
1048         vn_get_expr_for.
1049         (simplify_binary_expression): Likewise.
1050         (simplify_unary_expression): Likewise.
1052 2014-05-08  Richard Biener  <rguenther@suse.de>
1054         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
1055         looking at TYPE_ARG_TYPES.
1057 2014-05-08  Richard Biener  <rguenther@suse.de>
1059         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
1060         pointer propagation special-case.
1062 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
1064         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
1065         core part of address expressions.
1067 2014-05-08  Alan Modra  <amodra@gmail.com>
1069         PR target/60737
1070         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
1071         loads and stores when -mno-strict-align at any alignment.
1072         (expand_block_clear): Similarly.  Also correct calculation of
1073         instruction count.
1075 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1077         PR middle-end/39246
1078         * tree-complex.c (expand_complex_move): Keep line info when expanding
1079         complex move.
1080         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
1081         of complex expression. Use new argument to display correct location
1082         for values coming from phi statement.
1083         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
1084         (warn_uninitialized_phi): Pass location of phi argument to
1085         warn_uninit.
1086         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
1087         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
1089 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
1091         * config/rs6000/predicates.md (indexed_address_mem): New.
1092         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
1093         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
1094         fpstore_ux, fpstore_u.
1095         (sign_extend, indexed, update): New.
1096         (cell_micro): Adjust.
1097         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
1098         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
1099         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
1100         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
1101         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1102         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
1103         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
1104         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
1105         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
1106         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
1107         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
1108         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
1109         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
1110         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
1111         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
1113         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
1114         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
1115         *vsx_extract_<mode>_store): Adjust.
1116         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
1117         is_cracked_insn, insn_must_be_first_in_group,
1118         insn_must_be_last_in_group): Adjust.
1120         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
1121         Adjust.
1122         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
1123         ppc440-fpstore): Adjust.
1124         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
1125         ppc476-fpstore): Adjust.
1126         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
1127         ppc601-fpstore): Adjust.
1128         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
1129         Adjust.
1130         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
1131         Adjust.
1132         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
1133         ppc7450-fpstore): Adjust.
1134         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
1135         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
1136         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
1137         Adjust.
1138         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
1139         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
1140         cell-fpstore, cell-fpstore-update): Adjust.
1141         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
1142         ppce300c3_store, ppce300c3_fpstore): Adjust.
1143         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
1144         e500mc_fpstore): Adjust.
1145         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
1146         e500mc64_store, e500mc64_fpstore): Adjust.
1147         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
1148         e5500_fpstore): Adjust.
1149         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
1150         e6500_fpstore): Adjust.
1151         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
1152         Adjust.
1153         * config/rs6000/power4.md (power4-load, power4-load-ext,
1154         power4-load-ext-update, power4-load-ext-update-indexed,
1155         power4-load-update-indexed, power4-load-update, power4-fpload,
1156         power4-fpload-update, power4-store, power4-store-update,
1157         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
1158         Adjust.
1159         * config/rs6000/power5.md (power5-load, power5-load-ext,
1160         power5-load-ext-update, power5-load-ext-update-indexed,
1161         power5-load-update-indexed, power5-load-update, power5-fpload,
1162         power5-fpload-update, power5-store, power5-store-update,
1163         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
1164         Adjust.
1165         * config/rs6000/power6.md (power6-load, power6-load-ext,
1166         power6-load-update, power6-load-update-indexed,
1167         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
1168         power6-fpload-update, power6-store, power6-store-update,
1169         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
1170         Adjust.
1171         * config/rs6000/power7.md (power7-load, power7-load-ext,
1172         power7-load-update, power7-load-update-indexed,
1173         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
1174         power7-fpload-update, power7-store, power7-store-update,
1175         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
1176         Adjust.
1177         * config/rs6000/power8.md (power8-load, power8-load-update,
1178         power8-load-ext, power8-load-ext-update, power8-fpload,
1179         power8-fpload-update, power8-store, power8-store-update-indexed,
1180         power8-fpstore, power8-fpstore-update): Adjust.
1181         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
1182         Adjust.
1183         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
1184         titan_lsu_store, titan_lsu_fpstore): Adjust.
1185         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
1187 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1189         PR target/60884
1190         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
1191         unrolled byte insns.  Emit address increments after move insns.
1193 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
1195         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
1196         const_gimple, rather than a gimple.
1197         (gimple_call_builtin_p): Likewise, for the three variants.
1199         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
1200         (gimple_call_builtin_p): Likewise, for the three variants.
1202 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
1204         PR tree-optimization/61095
1205         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
1207 2014-05-07  Richard Biener  <rguenther@suse.de>
1209         PR tree-optimization/61034
1210         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
1211         (maybe_skip_until): Use translate to take into account
1212         lattices when trying to do disambiguations.
1213         (get_continuation_for_phi_1): Likewise.
1214         (get_continuation_for_phi): Adjust for added translate arguments.
1215         (walk_non_aliased_vuses): Likewise.
1216         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
1217         (walk_non_aliased_vuses): Likewise.
1218         (call_may_clobber_ref_p_1): Declare.
1219         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
1220         calls.  Stop early if we are only supposed to disambiguate.
1221         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
1223 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
1225         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
1226         Emit an error when the function has arguments.
1228 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
1230         * cfgloop.h (unswitch_loops): Remove.
1231         * doc/passes.texi: Remove references to loop-unswitch.c
1232         * timevar.def (TV_LOOP_UNSWITCH): Remove.
1234 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
1236         * tree-vect-data-refs.c (vect_grouped_load_supported): New
1237         check for loads group of length 3.
1238         (vect_permute_load_chain): New permutations for loads group of
1239         length 3.
1240         * tree-vect-stmts.c (vect_model_load_cost): Change cost
1241         of vec_perm_shuffle for the new permutations.
1243 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
1245         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
1246         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
1247         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
1248         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
1249         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
1250         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
1251         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
1252         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
1254 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
1256         * loop-unswitch.c: Delete.
1258 2014-05-07  Richard Biener  <rguenther@suse.de>
1260         * config.gcc: Always set need_64bit_hwint to yes.
1262 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
1264         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
1265         of using optimize_size.
1267 2014-05-06  Mike Stump  <mikestump@comcast.net>
1269         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
1271 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
1273         * config/i386/sse.md (*mov<mode>_internal)
1274         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
1275         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
1276         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
1277         (*<code><mode>3, *andnot<mode>3<mask_name>)
1278         (<mask_codefor><code><mode>3<mask_name>): Only consider
1279         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
1281 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
1283         Revert:
1284         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
1286         * lra-constraints.c (valid_address_p): Move earlier in file.
1287         Add a constraint argument to the address_info version.
1288         (satisfies_memory_constraint_p): New function.
1289         (satisfies_address_constraint_p): Likewise.
1290         (process_alt_operands, curr_insn_transform): Use them.
1291         (process_address): Pass the constraint to valid_address_p when
1292         checking address operands.
1294 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
1296         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
1297         to their respective blocks.  Fix inadvertent use of "node".
1299 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
1301         * emit-rtl.c (init_derived_machine_modes): New functionm, split
1302         out from...
1303         (init_emit_once): ...here.
1304         * rtl.h (init_derived_machine_modes): Declare.
1305         * toplev.c (do_compile): Call it even if no_backend.
1307 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
1308             Mike Stump  <mikestump@comcast.net>
1309             Richard Sandiford  <rdsandiford@googlemail.com>
1310             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1312         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
1313         (rtx_equal_for_memref_p): Update comment.
1314         (adjust_offset_for_component_ref): Use wide-int interfaces.
1315         * builtins.c (get_object_alignment_2): Likewise.
1316         (c_readstr): Likewise.
1317         (target_char_cast): Add comment.
1318         (determine_block_size): Use wide-int interfaces.
1319         (expand_builtin_signbit): Likewise.
1320         (fold_builtin_int_roundingfn): Likewise.
1321         (fold_builtin_bitop): Likewise.
1322         (fold_builtin_bswap): Likewise.
1323         (fold_builtin_logarithm): Use signop.
1324         (fold_builtin_pow): Likewise.
1325         (fold_builtin_memory_op): Use wide-int interfaces.
1326         (fold_builtin_object_size): Likewise.
1327         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
1328         nb_iterations_estimate.
1329         (record_niter_bound): Use wide-int interfaces.
1330         (get_estimated_loop_iterations_int): Likewise.
1331         (get_estimated_loop_iterations): Likewise.
1332         (get_max_loop_iterations): Likewise.
1333         * cfgloop.h: Include wide-int.h.
1334         (struct nb_iter_bound): Change bound to widest_int.
1335         (struct loop): Change nb_iterations_upper_bound and
1336         nb_iterations_estimate to widest_int.
1337         (record_niter_bound): Switch to use widest_int.
1338         (get_estimated_loop_iterations): Likewise.
1339         (get_max_loop_iterations): Likewise.
1340         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
1341         update for wide-int.
1342         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
1343         * combine.c (try_combine): Likewise.
1344         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
1345         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
1346         interfaces.
1347         (aarch64_float_const_representable_p): Likewise.
1348         * config/arc/arc.c: Include wide-int.h.
1349         (arc_can_use_doloop_p): Use wide-int interfaces.
1350         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
1351         (vfp3_const_double_index): Likewise.
1352         * config/avr/avr.c (avr_out_round): Likewise.
1353         (avr_fold_builtin): Likewise.
1354         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
1355         (bfin_can_use_doloop_p): Likewise.
1356         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
1357         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
1358         * config/i386/i386.c: Include wide-int.h.
1359         (ix86_data_alignment): Use wide-int interfaces.
1360         (ix86_local_alignment): Likewise.
1361         (ix86_emit_swsqrtsf): Update real_from_integer.
1362         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
1363         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
1364         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
1365         (zero_constant): Likewise.
1366         (input_operand): Likewise.
1367         (splat_input_operand): Likewise.
1368         (non_logical_cint_operand): Change const_double to const_wide_int.
1369         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
1370         (easy_altivec_constant): Remove comment.
1371         (paired_expand_vector_init): Use CONSTANT_P.
1372         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
1373         (rs6000_emit_move): Update checks.
1374         (rs6000_aggregate_candidate): Use wide-int interfaces.
1375         (rs6000_expand_ternop_builtin): Likewise.
1376         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
1377         (rs6000_assemble_integer): Likewise.
1378         (rs6000_hash_constant): Likewise.
1379         (output_toc): Likewise.
1380         (rs6000_rtx_costs): Likewise.
1381         (rs6000_emit_swrsqrt); Update call to real_from_integer.
1382         * config/rs6000/rs6000-c.c: Include wide-int.h.
1383         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
1384         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
1385         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
1386         Handle CONST_WIDE_INT.
1387         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
1388         Use tree_fits_uhwi_p.
1389         * config/sparc/sparc.c: Include wide-int.h.
1390         (sparc_fold_builtin): Use wide-int interfaces.
1391         * config/vax/vax.c: Include wide-int.h.
1392         (vax_float_literal): Use real_from_integer.
1393         * coretypes.h (struct hwivec_def): New.
1394         (hwivec): New.
1395         (const_hwivec): New.
1396         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
1397         (equiv_constant): Handle CONST_WIDE_INT.
1398         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
1399         (cselib_hash_rtx): Handle CONST_WIDE_INT.
1400         * dbxout.c (stabstr_U): Use wide-int interfaces.
1401         (dbxout_type): Update to use cst_fits_shwi_p.
1402         * defaults.h (LOG2_BITS_PER_UNIT): Define.
1403         (TARGET_SUPPORTS_WIDE_INT): Add default.
1404         * dfp.c: Include wide-int.h.
1405         (decimal_real_to_integer2): Use wide-int interfaces and rename to
1406         decimal_real_to_integer.
1407         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
1408         decimal_real_to_integer.
1409         * doc/generic.texi (Constant expressions): Update for wide_int.
1410         * doc/rtl.texi (const_double): Likewise.
1411         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
1412         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
1413         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
1414         (REAL_VALUE_FROM_INT): Remove.
1415         (TARGET_SUPPORTS_WIDE_INT): New.
1416         * doc/tm.texi: Regenerate.
1417         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
1418         * double-int.h: Include wide-int.h.
1419         (struct wi::int_traits): New.
1420         * dwarf2out.c (get_full_len): New.
1421         (dw_val_equal_p): Add case dw_val_class_wide_int.
1422         (size_of_loc_descr): Likewise.
1423         (output_loc_operands): Likewise.
1424         (insert_double): Remove.
1425         (insert_wide_int): New.
1426         (add_AT_wide): New.
1427         (print_die): Add case dw_val_class_wide_int.
1428         (attr_checksum): Likewise.
1429         (attr_checksum_ordered): Likewise.
1430         (same_dw_val_p): Likewise.
1431         (size_of_die): Likewise.
1432         (value_format): Likewise.
1433         (output_die): Likewise.
1434         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
1435         Use wide-int.
1436         (clz_loc_descriptor): Use wide-int interfaces.
1437         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
1438         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
1439         (round_up_to_align): Use wide-int interfaces.
1440         (field_byte_offset): Likewise.
1441         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
1442         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
1443         CONST_DOUBLE handling.  Use wide-int interfaces.
1444         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
1445         (gen_enumeration_type_die): Use add_AT_wide.
1446         (hash_loc_operands): Add case dw_val_class_wide_int.
1447         (compare_loc_operands): Likewise.
1448         * dwarf2out.h: Include wide-int.h.
1449         (wide_int_ptr): New.
1450         (enum dw_val_class): Add dw_val_class_wide_int.
1451         (struct dw_val_struct): Add val_wide.
1452         * emit-rtl.c (const_wide_int_htab): New.
1453         (const_wide_int_htab_hash): New.
1454         (const_wide_int_htab_eq): New.
1455         (lookup_const_wide_int): New.
1456         (const_double_htab_hash): Use wide-int interfaces.
1457         (const_double_htab_eq): Likewise.
1458         (rtx_to_double_int): Conditionally compile for wide-int.
1459         (immed_double_int_const): Rename to immed_wide_int_const and
1460         update for wide-int.
1461         (immed_double_const): Conditionally compile for wide-int.
1462         (init_emit_once): Use wide-int interfaces.
1463         * explow.c (plus_constant): Likewise.
1464         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
1465         (lshift_value): Use wide-int interfaces.
1466         (expand_mult): Likewise.
1467         (choose_multiplier): Likewise.
1468         (expand_smod_pow2): Likewise.
1469         (make_tree): Likewise.
1470         * expr.c (convert_modes): Consolidate handling of constants.
1471         Use wide-int interfaces.
1472         (emit_group_load_1): Add note.
1473         (store_expr): Update comment.
1474         (get_inner_reference): Use wide-int interfaces.
1475         (expand_constructor): Update comment.
1476         (expand_expr_real_2): Use wide-int interfaces.
1477         (expand_expr_real_1): Likewise.
1478         (reduce_to_bit_field_precision): Likewise.
1479         (const_vector_from_tree): Likewise.
1480         * final.c: Include wide-int-print.h.
1481         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
1482         * fixed-value.c: Include wide-int.h.
1483         (fixed_from_string): Use wide-int interfaces.
1484         (fixed_to_decimal): Likewise.
1485         (fixed_convert_from_real): Likewise.
1486         (real_convert_from_fixed): Likewise.
1487         * fold-const.h (mem_ref_offset): Return an offset_int.
1488         (div_if_zero_remainder): Remove code parameter.
1489         * fold-const.c (div_if_zero_remainder): Remove code parameter.
1490         Use wide-int interfaces.
1491         (may_negate_without_overflow_p): Use wide-int interfaces.
1492         (negate_expr_p): Likewise.
1493         (fold_negate_expr): Likewise.
1494         (int_const_binop_1): Likewise.
1495         (const_binop): Likewise.
1496         (fold_convert_const_int_from_int): Likewise.
1497         (fold_convert_const_int_from_real): Likewise.
1498         (fold_convert_const_int_from_fixed): Likewise.
1499         (fold_convert_const_fixed_from_int): Likewise.
1500         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
1501         (sign_bit_p): Use wide-int interfaces.
1502         (make_range_step): Likewise.
1503         (build_range_check): Likewise.  Pass an integer of the correct type
1504         instead of using integer_one_node.
1505         (range_predecessor): Pass an integer of the correct type instead
1506         of using integer_one_node.
1507         (range_successor): Likewise.
1508         (merge_ranges): Likewise.
1509         (unextend): Use wide-int interfaces.
1510         (extract_muldiv_1): Likewise.
1511         (fold_div_compare): Likewise.
1512         (fold_single_bit_test): Likewise.
1513         (fold_sign_changed_comparison): Likewise.
1514         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
1515         (fold_plusminus_mult_expr): Use wide-int interfaces.
1516         (native_encode_int): Likewise.
1517         (native_interpret_int): Likewise.
1518         (fold_unary_loc): Likewise.
1519         (pointer_may_wrap_p): Likewise.
1520         (size_low_cst): Likewise.
1521         (mask_with_tz): Likewise.
1522         (fold_binary_loc): Likewise.
1523         (fold_ternary_loc): Likewise.
1524         (multiple_of_p): Likewise.
1525         (tree_call_nonnegative_warnv_p): Update calls to
1526         tree_int_cst_min_precision and real_from_integer.
1527         (fold_negate_const): Use wide-int interfaces.
1528         (fold_abs_const): Likewise.
1529         (fold_relational_const): Use tree_int_cst_lt.
1530         (round_up_loc): Use wide-int interfaces.
1531         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
1532         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
1533         * gengtype.c: Remove include of double-int.h.
1534         (do_typedef): Use wide-int interfaces.
1535         (open_base_files): Add wide-int.h.
1536         (main): Add offset_int and widest_int typedefs.
1537         * gengtype-lex.l: Handle "^".
1538         (CXX_KEYWORD): Add "static".
1539         * gengtype-parse.c (require3): New.
1540         (require_template_declaration): Handle constant template arguments
1541         and nested templates.
1542         * gengtype-state.c: Don't include "double-int.h".
1543         * genpreds.c (write_one_predicate_function): Update comment.
1544         (write_tm_constrs_h): Add check for hval and lval use in
1545         CONST_WIDE_INT.
1546         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
1547         (add_to_sequence): Likewise.
1548         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
1549         and const_double_operand.
1550         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
1551         interfaces.
1552         * gimple-fold.c (get_base_constructor): Likewise.
1553         (fold_array_ctor_reference): Likewise.
1554         (fold_nonarray_ctor_reference): Likewise.
1555         (fold_const_aggregate_ref_1): Likewise.
1556         (gimple_val_nonnegative_real_p): Likewise.
1557         (gimple_fold_indirect_ref): Likewise.
1558         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
1559         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
1560         (struct slsr_cand_d): Change index to be widest_int.
1561         (struct incr_info_d): Change incr to be widest_int.
1562         (alloc_cand_and_find_basis): Use wide-int interfaces.
1563         (slsr_process_phi): Likewise.
1564         (backtrace_base_for_ref): Likewise.  Return a widest_int.
1565         (restructure_reference): Take a widest_int instead of a double_int.
1566         (slsr_process_ref): Use wide-int interfaces.
1567         (create_mul_ssa_cand): Likewise.
1568         (create_mul_imm_cand): Likewise.
1569         (create_add_ssa_cand): Likewise.
1570         (create_add_imm_cand): Take a widest_int instead of a double_int.
1571         (slsr_process_add): Use wide-int interfaces.
1572         (slsr_process_cast): Likewise.
1573         (slsr_process_copy): Likewise.
1574         (dump_candidate): Likewise.
1575         (dump_incr_vec): Likewise.
1576         (replace_ref): Likewise.
1577         (cand_increment): Likewise.  Return a widest_int.
1578         (cand_abs_increment): Likewise.
1579         (replace_mult_candidate): Take a widest_int instead of a double_int.
1580         (replace_unconditional_candidate): Use wide-int interfaces.
1581         (incr_vec_index): Take a widest_int instead of a double_int.
1582         (create_add_on_incoming_edge): Likewise.
1583         (create_phi_basis): Use wide-int interfaces.
1584         (replace_conditional_candidate): Likewise.
1585         (record_increment): Take a widest_int instead of a double_int.
1586         (record_phi_increments): Use wide-int interfaces.
1587         (phi_incr_cost): Take a widest_int instead of a double_int.
1588         (lowest_cost_path): Likewise.
1589         (total_savings): Likewise.
1590         (analyze_increments): Use wide-int interfaces.
1591         (ncd_with_phi): Take a widest_int instead of a double_int.
1592         (ncd_of_cand_and_phis): Likewise.
1593         (nearest_common_dominator_for_cands): Likewise.
1594         (insert_initializers): Use wide-int interfaces.
1595         (all_phi_incrs_profitable): Likewise.
1596         (replace_one_candidate): Likewise.
1597         (replace_profitable_candidates): Likewise.
1598         * godump.c: Include wide-int-print.h.
1599         (go_output_typedef): Use wide-int interfaces.
1600         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
1601         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
1602         (build_loop_iteration_domains): Likewise.
1603         * hooks.h: Include wide-int.h rather than double-int.h.
1604         (hook_bool_dint_dint_uint_bool_true): Delete.
1605         (hook_bool_wint_wint_uint_bool_true): Declare.
1606         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
1607         (hook_bool_wint_wint_uint_bool_true): New.
1608         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
1609         interfaces.
1610         (ubsan_expand_si_overflow_mul_check): Likewise.
1611         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
1612         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
1613         (get_ancestor_addr_info): Likewise.
1614         (ipa_modify_call_arguments): Likewise.
1615         * loop-doloop.c (doloop_modify): Likewise.
1616         (doloop_optimize): Likewise.
1617         * loop-iv.c (iv_number_of_iterations): Likewise.
1618         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
1619         (unroll_loop_constant_iterations): Likewise.
1620         (decide_unroll_runtime_iterations): Likewise.
1621         (unroll_loop_runtime_iterations): Likewise.
1622         (decide_peel_simple): Likewise.
1623         (decide_unroll_stupid): Likewise.
1624         * lto-streamer-in.c (streamer_read_wi): Add.
1625         (input_cfg): Use wide-int interfaces.
1626         (lto_input_tree_1): Likewise.
1627         * lto-streamer-out.c (streamer_write_wi): Add.
1628         (hash_tree): Use wide-int interfaces.
1629         (output_cfg): Likewise.
1630         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
1631         (GTFILES): Add wide-int.h and signop.h.
1632         (TAGS): Look for .cc files too.
1633         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
1634         * optabs.c (expand_subword_shift): Likewise.
1635         (expand_doubleword_shift): Likewise.
1636         (expand_absneg_bit): Likewise.
1637         (expand_copysign_absneg): Likewise.
1638         (expand_copysign_bit): Likewise.
1639         * postreload.c (reload_cse_simplify_set): Likewise.
1640         * predict.c (predict_iv_comparison): Likewise.
1641         * pretty-print.h: Include wide-int-print.h.
1642         (pp_wide_int) New.
1643         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
1644         * print-tree.c: Include wide-int-print.h.
1645         (print_node_brief): Use wide-int interfaces.
1646         (print_node): Likewise.
1647         * read-rtl.c (validate_const_wide_int): New.
1648         (read_rtx_code): Add CONST_WIDE_INT case.
1649         * real.c: Include wide-int.h.
1650         (real_to_integer2): Delete.
1651         (real_to_integer): New function, returning a wide_int.
1652         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
1653         (ten_to_ptwo): Update call to real_from_integer.
1654         (real_digit): Likewise.
1655         * real.h: Include signop.h, wide-int.h and insn-modes.h.
1656         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
1657         (REAL_VALUE_TO_INT): Delete.
1658         (real_to_integer): Declare a wide-int form.
1659         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
1660         * recog.c (const_int_operand): Improve comment.
1661         (const_scalar_int_operand): New.
1662         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
1663         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
1664         (split_double): Likewise.
1665         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
1666         (rtx_size): Likewise.
1667         (rtx_alloc_stat_v): New.
1668         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
1669         (cwi_output_hex): New.
1670         (iterative_hash_rtx): Handle CONST_WIDE_INT.
1671         (cwi_check_failed_bounds): New.
1672         * rtl.def (CONST_WIDE_INT): New.
1673         * rtl.h: Include <utility> and wide-int.h.
1674         (struct hwivec_def): New.
1675         (CWI_GET_NUM_ELEM): New.
1676         (CWI_PUT_NUM_ELEM): New.
1677         (struct rtx_def): Add num_elem and hwiv.
1678         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
1679         (CASE_CONST_UNIQUE): Likewise.
1680         (CASE_CONST_ANY): Likewise.
1681         (CONST_SCALAR_INT_P): Likewise.
1682         (CONST_WIDE_INT_P): New.
1683         (CWI_ELT): New.
1684         (HWIVEC_CHECK): New.
1685         (cwi_check_failed_bounds): New.
1686         (CWI_ELT): New.
1687         (HWIVEC_CHECK): New.
1688         (CONST_WIDE_INT_VEC) New.
1689         (CONST_WIDE_INT_NUNITS) New.
1690         (CONST_WIDE_INT_ELT) New.
1691         (rtx_mode_t): New type.
1692         (wi::int_traits <rtx_mode_t>): New.
1693         (wi::shwi): New.
1694         (wi::min_value): New.
1695         (wi::max_value): New.
1696         (rtx_alloc_v) New.
1697         (const_wide_int_alloc): New.
1698         (immed_wide_int_const): New.
1699         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
1700         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
1701         * signop.h: New file.
1702         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
1703         (simplify_const_unary_operation): Use wide-int interfaces.
1704         (simplify_binary_operation_1): Likewise.
1705         (simplify_const_binary_operation): Likewise.
1706         (simplify_const_relational_operation): Likewise.
1707         (simplify_immed_subreg): Likewise.
1708         * stmt.c (expand_case): Likewise.
1709         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
1710         signop rather than a bool.
1711         * stor-layout.c (layout_type): Use wide-int interfaces.
1712         (initialize_sizetypes): Update calls to
1713         set_min_and_max_values_for_integral_type.
1714         (set_min_and_max_values_for_integral_type): Take a signop rather
1715         than a bool.  Use wide-int interfaces.
1716         (fixup_signed_type): Update accordingly.  Remove
1717         HOST_BITS_PER_DOUBLE_INT limit.
1718         (fixup_unsigned_type): Likewise.
1719         * system.h (STATIC_CONSTANT_P): New.
1720         (STATIC_ASSERT): New.
1721         * target.def (can_use_doloop_p): Take widest_ints rather than
1722         double_ints.
1723         * target.h: Include wide-int.h rather than double-int.h.
1724         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
1725         than double_ints.
1726         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
1727         rather than INT_CST_LT_UNSIGNED.
1728         (can_use_doloop_if_innermost): Take widest_ints rather than
1729         double_ints.
1730         * tree-affine.c: Include wide-int-print.h.
1731         (double_int_ext_for_comb): Delete.
1732         (wide_int_ext_for_comb): New.
1733         (aff_combination_zero): Use wide-int interfaces.
1734         (aff_combination_const): Take a widest_int instead of a double_int.
1735         (aff_combination_elt): Use wide-int interfaces.
1736         (aff_combination_scale): Take a widest_int instead of a double_int.
1737         (aff_combination_add_elt): Likewise.
1738         (aff_combination_add_cst): Likewise.
1739         (aff_combination_add): Use wide-int interfaces.
1740         (aff_combination_convert): Likewise.
1741         (tree_to_aff_combination): Likewise.
1742         (add_elt_to_tree): Take a widest_int instead of a double_int.
1743         (aff_combination_to_tree): Use wide-int interfaces.
1744         (aff_combination_remove_elt): Likewise.
1745         (aff_combination_add_product): Take a widest_int instead of
1746         a double_int.
1747         (aff_combination_mult): Use wide-int interfaces.
1748         (aff_combination_expand): Likewise.
1749         (double_int_constant_multiple_p): Delete.
1750         (wide_int_constant_multiple_p): New.
1751         (aff_combination_constant_multiple_p): Take a widest_int pointer
1752         instead of a double_int pointer.
1753         (print_aff): Use wide-int interfaces.
1754         (get_inner_reference_aff): Take a widest_int pointer
1755         instead of a double_int pointer.
1756         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
1757         * tree-affine.h: Include wide-int.h.
1758         (struct aff_comb_elt): Change type of coef to widest_int.
1759         (struct affine_tree_combination): Change type of offset to widest_int.
1760         (double_int_ext_for_comb): Delete.
1761         (wide_int_ext_for_comb): New.
1762         (aff_combination_const): Use widest_int instead of double_int.
1763         (aff_combination_scale): Likewise.
1764         (aff_combination_add_elt): Likewise.
1765         (aff_combination_constant_multiple_p): Likewise.
1766         (get_inner_reference_aff): Likewise.
1767         (aff_comb_cannot_overlap_p): Likewise.
1768         (aff_combination_zero_p): Use wide-int interfaces.
1769         * tree.c: Include tree.h.
1770         (init_ttree): Use make_int_cst.
1771         (tree_code_size): Removed code for INTEGER_CST case.
1772         (tree_size): Add INTEGER_CST case.
1773         (make_node_stat): Update comment.
1774         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
1775         (build_int_cst_type): Use wide-int interfaces.
1776         (double_int_to_tree): Likewise.
1777         (double_int_fits_to_tree_p): Delete.
1778         (force_fit_type_double): Delete.
1779         (force_fit_type): New.
1780         (int_cst_hash_hash): Use wide-int interfaces.
1781         (int_cst_hash_eq): Likewise.
1782         (build_int_cst_wide): Delete.
1783         (wide_int_to_tree): New.
1784         (cache_integer_cst): Use wide-int interfaces.
1785         (build_low_bits_mask): Likewise.
1786         (cst_and_fits_in_hwi): Likewise.
1787         (real_value_from_int_cst): Likewise.
1788         (make_int_cst_stat): New.
1789         (integer_zerop): Use wide_int interfaces.
1790         (integer_onep): Likewise.
1791         (integer_all_onesp): Likewise.
1792         (integer_pow2p): Likewise.
1793         (integer_nonzerop): Likewise.
1794         (tree_log2): Likewise.
1795         (tree_floor_log2): Likewise.
1796         (tree_ctz): Likewise.
1797         (int_size_in_bytes): Likewise.
1798         (mem_ref_offset): Return an offset_int rather than a double_int.
1799         (build_type_attribute_qual_variant): Use wide_int interfaces.
1800         (type_hash_eq): Likewise
1801         (tree_int_cst_equal): Likewise.
1802         (tree_int_cst_lt): Delete.
1803         (tree_int_cst_compare): Likewise.
1804         (tree_fits_shwi_p): Use wide_int interfaces.
1805         (tree_fits_uhwi_p): Likewise.
1806         (tree_int_cst_sign_bit): Likewise.
1807         (tree_int_cst_sgn): Likewise.
1808         (tree_int_cst_min_precision): Take a signop rather than a bool.
1809         (simple_cst_equal): Use wide_int interfaces.
1810         (compare_tree_int): Likewise.
1811         (iterative_hash_expr): Likewise.
1812         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
1813         INT_CST_LT.
1814         (get_type_static_bounds): Use wide_int interfaces.
1815         (tree_int_cst_elt_check_failed): New.
1816         (build_common_tree_nodes): Reordered to set prec before filling in
1817         value.
1818         (int_cst_value): Check cst_and_fits_in_hwi.
1819         (widest_int_cst_value): Use wide_int interfaces.
1820         (upper_bound_in_type): Likewise.
1821         (lower_bound_in_type): Likewise.
1822         (num_ending_zeros): Likewise.
1823         (drop_tree_overflow): Likewise.
1824         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
1825         (gen_conditions_for_pow_cst_base): Likewise.
1826         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
1827         (group_case_labels_stmt): Use wide-int interfaces.
1828         (verify_gimple_assign_binary): Likewise.
1829         (print_loop): Likewise.
1830         * tree-chrec.c (tree_fold_binomial): Likewise.
1831         * tree-core.h (struct tree_base): Add int_length.
1832         (struct tree_int_cst): Change rep of value.
1833         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
1834         (dr_may_alias_p): Likewise.
1835         (max_stmt_executions_tree): Likewise.
1836         * tree.def (INTEGER_CST): Update comment.
1837         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
1838         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
1839         * tree-dump.c: Include wide-int.h and wide-int-print.h.
1840         (dequeue_and_dump): Use wide-int interfaces.
1841         * tree.h: Include wide-int.h.
1842         (NULL_TREE): Moved to earlier loc in file.
1843         (TREE_INT_CST_ELT_CHECK): New.
1844         (tree_int_cst_elt_check_failed): New.
1845         (TYPE_SIGN): New.
1846         (TREE_INT_CST): Delete.
1847         (TREE_INT_CST_LOW): Use wide-int interfaces.
1848         (TREE_INT_CST_HIGH): Delete.
1849         (TREE_INT_CST_NUNITS): New.
1850         (TREE_INT_CST_EXT_NUNITS): Likewise.
1851         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
1852         (TREE_INT_CST_ELT): Likewise.
1853         (INT_CST_LT): Delete.
1854         (tree_int_cst_elt_check): New (two forms).
1855         (type_code_size): Update comment.
1856         (make_int_cst_stat, make_int_cst): New.
1857         (tree_to_double_int): Delete.
1858         (double_int_fits_to_tree_p): Delete.
1859         (force_fit_type_double): Delete.
1860         (build_int_cstu): Replace with out-of-line function.
1861         (build_int_cst_wide): Delete.
1862         (tree_int_cst_lt): Define inline.
1863         (tree_int_cst_le): New.
1864         (tree_int_cst_compare): Define inline.
1865         (tree_int_cst_min_precision): Take a signop rather than a bool.
1866         (wi::int_traits <const_tree>): New.
1867         (wi::int_traits <tree>): New.
1868         (wi::extended_tree): New.
1869         (wi::int_traits <wi::extended_tree>): New.
1870         (wi::to_widest): New.
1871         (wi::to_offset): New.
1872         (wi::fits_to_tree_p): New.
1873         (wi::min_value): New.
1874         (wi::max_value): New.
1875         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
1876         (copy_tree_body_r): Likewise.
1877         * tree-object-size.c (compute_object_offset): Likewise.
1878         (addr_object_size): Likewise.
1879         * tree-predcom.c: Include wide-int-print.h.
1880         (struct dref_d): Change type of offset to widest_int.
1881         (dump_dref): Call wide-int printer.
1882         (aff_combination_dr_offset): Use wide-int interfaces.
1883         (determine_offset): Take a widest_int pointer rather than a
1884         double_int pointer.
1885         (split_data_refs_to_components): Use wide-int interfaces.
1886         (suitable_component_p): Likewise.
1887         (order_drefs): Likewise.
1888         (add_ref_to_chain): Likewise.
1889         (valid_initializer_p): Likewise.
1890         (determine_roots_comp): Likewise.
1891         * tree-pretty-print.c: Include wide-int-print.h.
1892         (dump_generic_node): Use wide-int interfaces.
1893         * tree-sra.c (sra_ipa_modify_expr): Likewise.
1894         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1895         (move_fixed_address_to_symbol): Likewise.
1896         (move_hint_to_base): Likewise.
1897         (move_pointer_to_base): Likewise.
1898         (move_variant_to_index): Likewise.
1899         (most_expensive_mult_to_index): Likewise.
1900         (addr_to_parts): Likewise.
1901         (copy_ref_info): Likewise.
1902         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
1903         (indirect_refs_may_alias_p): Likewise.
1904         (stmt_kills_ref_p_1): Likewise.
1905         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
1906         * tree-ssa-ccp.c: Update comment at top of file.  Include
1907         wide-int-print.h.
1908         (struct prop_value_d): Change type of mask to widest_int.
1909         (extend_mask): New function.
1910         (dump_lattice_value): Use wide-int interfaces.
1911         (get_default_value): Likewise.
1912         (set_constant_value): Likewise.
1913         (set_value_varying): Likewise.
1914         (valid_lattice_transition): Likewise.
1915         (set_lattice_value): Likewise.
1916         (value_to_double_int): Delete.
1917         (value_to_wide_int): New.
1918         (get_value_from_alignment): Use wide-int interfaces.
1919         (get_value_for_expr): Likewise.
1920         (do_dbg_cnt): Likewise.
1921         (ccp_finalize): Likewise.
1922         (ccp_lattice_meet): Likewise.
1923         (bit_value_unop_1): Use widest_ints rather than double_ints.
1924         (bit_value_binop_1): Likewise.
1925         (bit_value_unop): Use wide-int interfaces.
1926         (bit_value_binop): Likewise.
1927         (bit_value_assume_aligned): Likewise.
1928         (evaluate_stmt): Likewise.
1929         (ccp_fold_stmt): Likewise.
1930         (visit_cond_stmt): Likewise.
1931         (ccp_visit_stmt): Likewise.
1932         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1933         (constant_pointer_difference): Likewise.
1934         (associate_pointerplus): Likewise.
1935         (combine_conversions): Likewise.
1936         * tree-ssa-loop.h: Include wide-int.h.
1937         (struct tree_niter_desc): Change type of max to widest_int.
1938         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
1939         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
1940         (remove_redundant_iv_tests): Likewise.
1941         (canonicalize_loop_induction_variables): Likewise.
1942         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
1943         (constant_multiple_of): Take a widest_int pointer instead of
1944         a double_int pointer.
1945         (get_computation_aff): Use wide-int interfaces.
1946         (ptr_difference_cost): Likewise.
1947         (difference_cost): Likewise.
1948         (get_loop_invariant_expr_id): Likewise.
1949         (get_computation_cost_at): Likewise.
1950         (iv_elimination_compare_lt): Likewise.
1951         (may_eliminate_iv): Likewise.
1952         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
1953         instead of double_int.
1954         (max_loop_iterations): Likewise.
1955         (max_stmt_executions): Likewise.
1956         (estimated_stmt_executions): Likewise.
1957         * tree-ssa-loop-niter.c: Include wide-int-print.h.
1958         (split_to_var_and_offset): Use wide-int interfaces.
1959         (determine_value_range): Likewise.
1960         (bound_difference_of_offsetted_base): Likewise.
1961         (bounds_add): Take a widest_int instead of a double_int.
1962         (number_of_iterations_ne_max): Use wide-int interfaces.
1963         (number_of_iterations_ne): Likewise.
1964         (number_of_iterations_lt_to_ne): Likewise.
1965         (assert_loop_rolls_lt): Likewise.
1966         (number_of_iterations_lt): Likewise.
1967         (number_of_iterations_le): Likewise.
1968         (number_of_iterations_cond): Likewise.
1969         (number_of_iterations_exit): Likewise.
1970         (finite_loop_p): Likewise.
1971         (derive_constant_upper_bound_assign): Likewise.
1972         (derive_constant_upper_bound): Return a widest_int.
1973         (derive_constant_upper_bound_ops): Likewise.
1974         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
1975         (record_estimate): Take a widest_int rather than a double_int.
1976         (record_nonwrapping_iv): Use wide-int interfaces.
1977         (double_int_cmp): Delete.
1978         (wide_int_cmp): New.
1979         (bound_index): Take a widest_int rather than a double_int.
1980         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
1981         (maybe_lower_iteration_bound): Likewise.
1982         (estimate_numbers_of_iterations_loop): Likewise.
1983         (estimated_loop_iterations): Take a widest_int pointer than than
1984         a double_int pointer.
1985         (estimated_loop_iterations_int): Use wide-int interfaces.
1986         (max_loop_iterations): Take a widest_int pointer than than
1987         a double_int pointer.
1988         (max_loop_iterations_int): Use wide-int interfaces.
1989         (max_stmt_executions): Take a widest_int pointer than than
1990         a double_int pointer.
1991         (estimated_stmt_executions): Likewise.
1992         (n_of_executions_at_most): Use wide-int interfaces.
1993         (scev_probably_wraps_p): Likewise.
1994         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
1995         to real_to_integer.
1996         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
1997         interfaces.
1998         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
1999         double_ints.  Adjust for trailing_wide_ints <3> representation.
2000         (set_nonzero_bits): Likewise.
2001         (get_range_info): Return wide_ints rather than double_ints.
2002         Adjust for trailing_wide_ints <3> representation.
2003         (get_nonzero_bits): Likewise.
2004         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
2005         representation.
2006         * tree-ssanames.h (struct range_info_def): Replace min, max and
2007         nonzero_bits with a trailing_wide_ints <3>.
2008         (set_range_info): Use wide_int_refs rather than double_ints.
2009         (set_nonzero_bits): Likewise.
2010         (get_range_info): Return wide_ints rather than double_ints.
2011         (get_nonzero_bits): Likewise.
2012         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
2013         * tree-ssa-pre.c (phi_translate_1): Likewise.
2014         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
2015         (acceptable_pow_call): Likewise.
2016         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
2017         interfaces.
2018         (vn_reference_fold_indirect): Likewise.
2019         (vn_reference_maybe_forwprop_address): Likewise.
2020         (valueize_refs_1): Likewise.
2021         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2022         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
2023         tree_int_cst_lt and tree_int_cst_le.
2024         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
2025         interfaces.
2026         (streamer_alloc_tree): Likewise.
2027         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
2028         (streamer_write_tree_header): Likewise.
2029         (streamer_write_integer_cst): Likewise.
2030         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2031         (build_constructors): Likewise.
2032         (array_value_type): Likewise.
2033         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
2034         (vect_check_gather): Likewise.
2035         * tree-vect-generic.c (build_replicated_const): Likewise.
2036         (expand_vector_divmod): Likewise.
2037         * tree-vect-loop.c (vect_transform_loop): Likewise.
2038         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
2039         (vect_do_peeling_for_alignment): Likewise.
2040         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
2041         * tree-vrp.c: Include wide-int.h.
2042         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
2043         (extract_range_from_assert): Use wide-int interfaces.
2044         (vrp_int_const_binop): Likewise.
2045         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
2046         double_int pointers.
2047         (ranges_from_anti_range): Use wide-int interfaces.
2048         (quad_int_cmp): Delete.
2049         (quad_int_pair_sort): Likewise.
2050         (extract_range_from_binary_expr_1): Use wide-int interfaces.
2051         (extract_range_from_unary_expr_1): Likewise.
2052         (adjust_range_with_scev): Likewise.
2053         (masked_increment): Take and return wide_ints rather than double_ints.
2054         (register_edge_assert_for_2): Use wide-int interfaces.
2055         (check_array_ref): Likewise.
2056         (search_for_addr_array): Likewise.
2057         (maybe_set_nonzero_bits): Likewise.
2058         (union_ranges): Pass an integer of the correct type instead of
2059         using integer_one_node.
2060         (intersect_ranges): Likewise.
2061         (simplify_truth_ops_using_ranges): Likewise.
2062         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
2063         (range_fits_type_p): Likewise.
2064         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
2065         a bool.
2066         (simplify_conversion_using_ranges): Use wide-int interfaces.
2067         (simplify_float_conversion_using_ranges): Likewise.
2068         (vrp_finalize): Likewise.
2069         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
2070         (gimple_stringops_transform): Likewise.
2071         * varasm.c (decode_addr_const): Likewise.
2072         (const_hash_1): Likewise.
2073         (const_rtx_hash_1): Likewise
2074         (output_constant): Likewise.
2075         (array_size_for_constructor): Likewise.
2076         (output_constructor_regular_field): Likewise.
2077         (output_constructor_bitfield): Likewise.
2078         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
2079         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
2080         GENERATOR_FILEs.
2081         * gencheck.c: Define BITS_PER_UNIT.
2082         * wide-int.cc: New.
2083         * wide-int.h: New.
2084         * wide-int-print.cc: New.
2085         * wide-int-print.h: New.
2087 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2089         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
2091 2014-05-06  Richard Biener  <rguenther@suse.de>
2093         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
2094         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
2095         (TODO_verify_all): Adjust.
2096         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
2097         TODO_verify_stmts and TODO_verify_rtl_sharing.
2098         * bb-reorder.c: Likewise.
2099         * cfgexpand.c: Likewise.
2100         * cprop.c: Likewise.
2101         * cse.c: Likewise.
2102         * function.c: Likewise.
2103         * fwprop.c: Likewise.
2104         * gcse.c: Likewise.
2105         * gimple-ssa-isolate-paths.c: Likewise.
2106         * gimple-ssa-strength-reduction.c: Likewise.
2107         * ipa-split.c: Likewise.
2108         * loop-init.c: Likewise.
2109         * loop-unroll.c: Likewise.
2110         * lower-subreg.c: Likewise.
2111         * modulo-sched.c: Likewise.
2112         * postreload-gcse.c: Likewise.
2113         * predict.c: Likewise.
2114         * recog.c: Likewise.
2115         * sched-rgn.c: Likewise.
2116         * store-motion.c: Likewise.
2117         * tracer.c: Likewise.
2118         * trans-mem.c: Likewise.
2119         * tree-call-cdce.c: Likewise.
2120         * tree-cfg.c: Likewise.
2121         * tree-cfgcleanup.c: Likewise.
2122         * tree-complex.c: Likewise.
2123         * tree-eh.c: Likewise.
2124         * tree-emutls.c: Likewise.
2125         * tree-if-conv.c: Likewise.
2126         * tree-into-ssa.c: Likewise.
2127         * tree-loop-distribution.c: Likewise.
2128         * tree-object-size.c: Likewise.
2129         * tree-parloops.c: Likewise.
2130         * tree-pass.h: Likewise.
2131         * tree-sra.c: Likewise.
2132         * tree-ssa-ccp.c: Likewise.
2133         * tree-ssa-copy.c: Likewise.
2134         * tree-ssa-copyrename.c: Likewise.
2135         * tree-ssa-dce.c: Likewise.
2136         * tree-ssa-dom.c: Likewise.
2137         * tree-ssa-dse.c: Likewise.
2138         * tree-ssa-forwprop.c: Likewise.
2139         * tree-ssa-ifcombine.c: Likewise.
2140         * tree-ssa-loop-ch.c: Likewise.
2141         * tree-ssa-loop-ivcanon.c: Likewise.
2142         * tree-ssa-loop.c: Likewise.
2143         * tree-ssa-math-opts.c: Likewise.
2144         * tree-ssa-phiopt.c: Likewise.
2145         * tree-ssa-phiprop.c: Likewise.
2146         * tree-ssa-pre.c: Likewise.
2147         * tree-ssa-reassoc.c: Likewise.
2148         * tree-ssa-sink.c: Likewise.
2149         * tree-ssa-strlen.c: Likewise.
2150         * tree-ssa-tail-merge.c: Likewise.
2151         * tree-ssa-uncprop.c: Likewise.
2152         * tree-switch-conversion.c: Likewise.
2153         * tree-tailcall.c: Likewise.
2154         * tree-vect-generic.c: Likewise.
2155         * tree-vectorizer.c: Likewise.
2156         * tree-vrp.c: Likewise.
2157         * tsan.c: Likewise.
2158         * var-tracking.c: Likewise.
2159         * bt-load.c: Likewise.
2160         * cfgcleanup.c: Likewise.
2161         * combine-stack-adj.c: Likewise.
2162         * combine.c: Likewise.
2163         * compare-elim.c: Likewise.
2164         * config/epiphany/resolve-sw-modes.c: Likewise.
2165         * config/i386/i386.c: Likewise.
2166         * config/mips/mips.c: Likewise.
2167         * config/s390/s390.c: Likewise.
2168         * config/sh/sh_treg_combine.cc: Likewise.
2169         * config/sparc/sparc.c: Likewise.
2170         * dce.c: Likewise.
2171         * dse.c: Likewise.
2172         * final.c: Likewise.
2173         * ifcvt.c: Likewise.
2174         * mode-switching.c: Likewise.
2175         * passes.c: Likewise.
2176         * postreload.c: Likewise.
2177         * ree.c: Likewise.
2178         * reg-stack.c: Likewise.
2179         * regcprop.c: Likewise.
2180         * regrename.c: Likewise.
2181         * web.c: Likewise.
2183 2014-05-06  Richard Biener  <rguenther@suse.de>
2185         PR middle-end/61070
2186         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
2187         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
2189 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
2191         PR ipa/60965
2192         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
2194 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
2195             Tom de Vries  <tom@codesourcery.com>
2197         * target.def (call_fusage_contains_non_callee_clobbers): New
2198         DEFHOOKPOD.
2199         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
2200         Hooks to @menu.
2201         (@node Miscellaneous Register Hooks): New node.
2202         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
2203         * doc/tm.texi: Regenerate.
2205 2014-05-05  Marek Polacek  <polacek@redhat.com>
2207         PR driver/61065
2208         * opts.c (common_handle_option): Call error_at instead of warning_at.
2210 2014-05-05  Richard Biener  <rguenther@suse.de>
2212         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
2213         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
2214         under the TODO_verify_il umbrella.
2216 2014-05-05  Richard Biener  <rguenther@suse.de>
2218         * passes.c (execute_function_todo): Move TODO_verify_flow under
2219         the TODO_verify_ul umbrella.
2221 2014-05-05  Richard Biener  <rguenther@suse.de>
2223         PR middle-end/61010
2224         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
2225         X & CST away from a CST that is the mask of a mode.
2227 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2229         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
2230         int argument to enum machine_mode.
2231         (picochip_class_max_nregs): Ditto.
2232         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
2233         (picochip_class_max_nregs): Ditto.
2235 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2237         * target.def: Add new target hook.
2238         * doc/tm.texi: Regenerate.
2239         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
2240         * targhooks.c (default_keep_leaf_when_profiled): New function.
2242         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
2243         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
2245 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
2247         PR tree-optimization/60363
2248         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
2249         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
2250         (update_destination_phis): New parameter.
2251         (create_edge_and_update_destination_phis): Ditto.
2252         (ssa_fix_duplicate_block_edges): Pass new arguments.
2253         (thread_single_edge): Ditto.
2255 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
2257         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
2258         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
2259         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
2260         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
2261         Use RS6000_BTM_HARD_FLOAT.
2262         (BU_MISC_2): Likewise.
2263         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
2264         RS6000_BTM_HARD_FLOAT.
2265         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
2266         is explicitly used.
2267         (rs6000_invalid_builtin): Add hard floating builtin support.
2268         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
2269         hard float builtins.
2270         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
2272 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2274         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
2275         Add missing function* argument.
2277 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
2279         * lra-constraints.c (valid_address_p): Move earlier in file.
2280         Add a constraint argument to the address_info version.
2281         (satisfies_memory_constraint_p): New function.
2282         (satisfies_address_constraint_p): Likewise.
2283         (process_alt_operands, curr_insn_transform): Use them.
2284         (process_address): Pass the constraint to valid_address_p when
2285         checking address operands.
2287 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
2289         * config/mips/mips.c (mips_isa_rev): New variable.
2290         (mips_set_architecture): Set it.
2291         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
2292         from mips_isa_rev.
2293         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
2294         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
2295         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
2296         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
2297         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
2298         conditions in terms of mips_isa_rev.
2299         (mips_isa_rev): Declare.
2301 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2303         * config/sh/sh-mem.cc: Use tabs instead of spaces.
2304         (prob_unlikely, prob_likely): Make variables const.
2306 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
2308         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
2310 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2312         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
2314 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2316         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
2317         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
2318         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
2319         functions.
2320         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
2321         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
2322         sh_pass_in_reg_p.
2323         Replace usage of ROUND_REG with sh_round_reg.
2324         Use CEIL instead of ROUND_ADVANCE.
2326 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2328         PR target/61026
2329         * config/sh/sh.c: Include stdlib headers before everything else.
2331 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
2333         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
2334         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
2335         (gimplify_adjust_omp_clauses): Simd region is never
2336         directly nested in combined parallel.  Instead, for linear
2337         with copyin/copyout, if in combined for simd loop, make decl
2338         firstprivate/lastprivate on OMP_FOR.
2339         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
2340         expand_omp_for_static_chunk): When setting endvar, also set
2341         fd->loop.v to the same value.
2343 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2345         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
2347 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
2349         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
2350         expression.
2352 2014-05-02  Marek Polacek  <polacek@redhat.com>
2354         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
2356 2014-05-02  Kito Cheng  <kito@0xlab.org>
2358         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
2359         to a C expression marco.
2360         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
2361         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
2362         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
2363         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
2364         HONOR_REG_ALLOC_ORDER.
2365         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
2367 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2369         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
2371 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2373         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
2375 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2377         * tree-if-conv.c (is_cond_scalar_reduction): New function.
2378         (convert_scalar_cond_reduction): Likewise.
2379         (predicate_scalar_phi): Add recognition and transformation
2380         of simple conditioanl reduction to be vectorizable.
2382 2014-05-01  Marek Polacek  <polacek@redhat.com>
2384         PR c/43245
2385         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
2387 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
2389         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
2390         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
2391         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
2392         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
2393         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
2394         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
2395         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
2396         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
2398 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
2400         * config/arc/arc.opt (mlra): Move comment above option name
2401         to avoid mis-parsing as language options.
2403 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2405         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
2406         * config/sol2.h: ... here.
2407         * config/sol2-10.h: Remove.
2409         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
2410         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
2411         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
2412         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
2413         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
2414         * config/sol2.h: ... here.
2415         (SECTION_NAME_FORMAT): Don't redefine.
2416         (STARTFILE_ARCH32_SPEC): Rename to ...
2417         (STARTFILE_ARCH_SPEC): ... this.
2418         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
2419         * config/sparc/sol2.h: ... here.
2420         (SECTION_NAME_FORMAT): Don't undef.
2421         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
2422         (SUBTARGET_EXTRA_SPECS): Remove.
2423         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2425         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
2426         (MD_STARTFILE_PREFIX): Remove.
2427         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
2428         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
2429         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
2430         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
2431         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
2432         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
2433         * config/i386/sol2.h: ... here.
2434         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
2435         * config/i386/sol2-bi.h: Remove.
2436         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
2437         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
2439         * config/i386/t-sol2-64: Rename to ...
2440         * config/i386/t-sol2: ... this.
2441         * config/sparc/t-sol2-64: Rename to ...
2442         * config/sparc/t-sol2: ... this.
2444         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
2445         sol2_tm_file_head, sol2_tm_file_tail.
2446         Include ${cpu_type}/sol2.h before sol2.h.
2447         Remove sol2-10.h.
2448         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
2449         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
2450         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
2451         Reflect i386/t-sol2-64 renaming.
2452         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
2453         Reflect sparc/t-sol2-64 renaming.
2455 2014-04-30  Richard Biener  <rguenther@suse.de>
2457         * passes.c (execute_function_todo): Move TODO_verify_stmts
2458         and TODO_verify_ssa under the TODO_verify_il umbrella.
2459         * tree-ssa.h (verify_ssa): Adjust prototype.
2460         * tree-ssa.c (verify_ssa): Add parameter to tell whether
2461         we should verify SSA operands.
2462         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
2463         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
2464         whether we should verify whether not throwing stmts have EH info.
2465         * graphite-scop-detection.c (create_sese_edges): Adjust.
2466         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
2467         * tree-eh.c (lower_try_finally_switch): Do not add the
2468         default case label twice.
2470 2014-04-30  Marek Polacek  <polacek@redhat.com>
2472         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
2473         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
2474         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
2475         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
2477 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
2479         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
2480         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
2481         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
2482         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
2483         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
2484         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
2485         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
2486         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
2488 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
2490         * tree-cfg.c (dump_function_to_file): Dump the return type of
2491         functions, in a line to itself before the function body, mimicking
2492         the layout of a C function.
2494 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
2496         PR tree-optimization/60971
2497         * tree-tailcall.c (process_assignment): Reject conversions which
2498         reduce precision.
2500 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2502         * calls.c (initialize_argument_information): Always treat
2503         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
2504         (expand_call): Likewise.
2505         (emit_library_call_calue_1): Likewise.
2506         * expr.c (PUSH_ARGS_REVERSED): Do not define.
2507         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
2508         code accordingly.
2510 2014-04-29  Nick Clifton  <nickc@redhat.com>
2512         * config/msp430/msp430.md (umulsidi): Fix typo.
2513         (mulhisi3): Enable even inside interrupt handlers.
2514         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
2515         bigger return address pushed in large mode.
2517 2014-04-29  Nick Clifton  <nickc@redhat.com>
2519         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
2520         (arc_init_reg_tables): Use a machine_mode enum to iterate over
2521         available modes.
2522         * config/m32r/m32r.c (init_reg_tables): Likewise.
2523         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
2524         enum to hold the modes.
2526 2014-04-29  Richard Biener  <rguenther@suse.de>
2528         * dominance.c (free_dominance_info): Add overload with
2529         function parameter.
2530         (dom_info_state): Likewise.
2531         (dom_info_available_p): Likewise.
2532         * basic-block.h (free_dominance_info, dom_info_state,
2533         dom_info_available_p): Declare overloads.
2534         * passes.c (execute_function_todo): Verify that verifiers
2535         don't change dominator info state.  Drop dominator info
2536         for IPA pass invocations.
2537         * cgraph.c (release_function_body): Restore asserts that
2538         dominator information is released.
2540 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
2542         * doc/invoke.texi: Fix typo.
2543         * tree-vrp.c: Fix typos.
2544         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
2546 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2548         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
2550 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
2552         * config/aarch64/aarch64-builtins.c
2553         (aarch64_types_storestruct_lane_qualifiers): New.
2554         (TYPES_STORESTRUCT_LANE): Likewise.
2555         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
2556         (st3_lane): Likewise.
2557         (st4_lane): Likewise.
2558         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
2559         (vec_store_lanesci_lane<mode>): Likewise.
2560         (vec_store_lanesxi_lane<mode>): Likewise.
2561         (aarch64_st2_lane<VQ:mode>): Likewise.
2562         (aarch64_st3_lane<VQ:mode>): Likewise.
2563         (aarch64_st4_lane<VQ:mode>): Likewise.
2564         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
2565         * config/aarch64/arm_neon.h
2566         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
2567         use new macro arguments.
2568         (__ST3_LANE_FUNC): Likewise.
2569         (__ST4_LANE_FUNC): Likewise.
2570         * config/aarch64/iterators.md (V_TWO_ELEM): New.
2571         (V_THREE_ELEM): Likewise.
2572         (V_FOUR_ELEM): Likewise.
2574 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
2576         * doc/gimple.texi: Replace the description of the now-defunct
2577         union gimple_statement_d with a diagram showing the
2578         gimple_statement_base class hierarchy and its relationships to
2579         the GSS_ and GIMPLE_ enums.
2581 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
2583         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
2584         * config/aarch64/aarch64.c
2585         (aarch64_cannot_change_mode_class): Weaken conditions.
2586         (aarch64_modes_tieable_p): New.
2587         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
2589 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
2591         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
2592         (loadsync_<mode>): Change mode.
2593         (load_quadpti, store_quadpti): New.
2594         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
2595         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
2597 2014-04-28  Martin Jambor  <mjambor@suse.cz>
2599         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
2600         same alias type as the original statement.
2601         (subreplacement_assignment_data): New type.
2602         (handle_unscalarized_data_in_subtree): New type of parameter,
2603         generate new memory accesses with same alias type as the original
2604         statement.
2605         (load_assign_lhs_subreplacements): Likewise.
2606         (sra_modify_constructor_assign): Generate new memory accesses with
2607         same alias type as the original statement.
2609 2014-04-28  Richard Biener  <rguenther@suse.de>
2611         * tree-pass.h (TODO_verify_il): Define.
2612         (TODO_verify_all): Complete properly.
2613         * passes.c (execute_function_todo): Move existing loop-closed
2614         SSA verification under TODO_verify_il.
2615         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
2616         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
2617         Fix tree sharing issue.
2619 2014-04-28  Richard Biener  <rguenther@suse.de>
2621         PR middle-end/60092
2622         * builtins.def (DEF_C11_BUILTIN): Add.
2623         (BUILT_IN_ALIGNED_ALLOC): Likewise.
2624         * coretypes.h (enum function_class): Add function_c11_misc.
2625         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2626         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
2627         (call_may_clobber_ref_p_1): Likewise.
2628         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2629         (mark_all_reaching_defs_necessary_1): Likewise.
2630         (propagate_necessity): Likewise.
2631         (eliminate_unnecessary_stmts): Likewise.
2632         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
2634 2014-04-28  Richard Biener  <rguenther@suse.de>
2636         * tree-vrp.c (vrp_var_may_overflow): Remove.
2637         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
2638         with overflow immediately bump to one before that value and
2639         let iteration figure out overflow status.
2641 2014-04-28  Richard Biener  <rguenther@suse.de>
2643         * configure.ac: Do valgrind header checks unconditionally.
2644         Add --enable-valgrind-annotations.
2645         * system.h: Guard valgrind header inclusion with
2646         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
2647         * alloc-pool.c (pool_alloc, pool_free): Use
2648         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
2649         to guard possibly dead code.
2650         * config.in: Regenerated.
2651         * configure: Likewise.
2653 2014-04-28  Jeff Law  <law@redhat.com>
2655         PR tree-optimization/60902
2656         * tree-ssa-threadedge.c
2657         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
2658         over real defs when invalidating outputs from statements that do not
2659         produce useful outputs for threading.
2661 2014-04-28  Richard Biener  <rguenther@suse.de>
2663         PR tree-optimization/60979
2664         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
2665         SCOPs that end in a block with a successor with abnormal
2666         predecessors.
2668 2014-04-28  Richard Biener  <rguenther@suse.de>
2670         * tree-pass.h (execute_pass_list): Adjust prototype.
2671         * passes.c (pass_manager::execute_early_local_passes): Adjust.
2672         (do_per_function): Change callback signature, push all actual
2673         work to the callbals.
2674         (do_per_function_toporder): Likewise.
2675         (execute_function_dump): Adjust.
2676         (execute_function_todo): Likewise.
2677         (clear_last_verified): Likewise.
2678         (verify_curr_properties): Likewise.
2679         (update_properties_after_pass): Likewise.
2680         (execute_pass_list_1): Split out from ...
2681         (execute_pass_list): ... here.  Adjust.
2682         (execute_ipa_pass_list): Likewise.
2683         * cgraphunit.c (cgraph_add_new_function): Adjust.
2684         (analyze_function): Likewise.
2685         (expand_function): Likewise.
2686         * cgraph.c (release_function_body): Free dominance info
2687         here instead of asserting it was magically freed elsewhere.
2689 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2691         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
2692         * configure: Regenerate.
2693         * config/sparc/sparc.opt (muser-mode): New option.
2694         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
2695         for LEON3.
2696         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
2697         * doc/invoke.texi (SPARC options): Document -muser-mode.
2699 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2701         * cselib.c (find_slot_memmode): Delete.
2702         (cselib_hasher): Change compare_type to a struct.
2703         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
2704         constants.
2705         (preserve_constants_and_equivs): Adjust for new compare_type.
2706         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
2707         (wrap_constant): Delete.
2708         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
2710 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2712         * doc/install.texi (Building with profile feedback): Remove
2713         outdated sentence.
2715 2014-04-26  Tom de Vries  <tom@codesourcery.com>
2717         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
2718         array accesses.
2720 2014-04-25  Cary Coutant  <ccoutant@google.com>
2722         PR debug/60929
2723         * dwarf2out.c (should_move_die_to_comdat): A type definition
2724         can contain a subprogram definition, but don't move it to a
2725         comdat unit.
2726         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
2727         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
2728         from original DIE.
2729         (clone_tree_hash): Rename to...
2730         (clone_tree_partial): ...this; change callers.  Copy
2731         DW_TAG_subprogram DIEs as declarations.
2732         (copy_decls_walk): Don't copy children of a declaration into a
2733         type unit.
2735 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2737         PR target/60969
2738         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
2739         alternative 12.
2741 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
2743         * config/arm/predicates.md (call_insn_operand): Add long_call check.
2744         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
2745         reg for long_call.
2746         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
2747         restriction.
2749 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2751         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
2753 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2755         PR tree-optimization/60930
2756         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
2757         creating a multiply candidate by folding two constant
2758         multiplicands when the result overflows.
2760 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
2762         PR tree-optimization/60960
2763         * tree-vect-generic.c (expand_vector_operation): Only call
2764         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
2766 2014-04-25  Tom de Vries  <tom@codesourcery.com>
2768         * expr.c (clobber_reg_mode): New function.
2769         * expr.h (clobber_reg): New function.
2771 2014-04-25  Tom de Vries  <tom@codesourcery.com>
2773         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
2774         clobbers.
2776 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
2777             Tom de Vries  <tom@codesourcery.com>
2779         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
2780         handle.
2781         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
2782         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
2783         new argument to find_all_hard_reg_sets call.
2785 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2787         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
2788         Use HOST_WIDE_INT_C for mask literal.
2789         (aarch_rev16_shleft_mask_imm_p): Likewise.
2791 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2793         PR target/60941
2794         * config/sparc/sparc.md (ashlsi3_extend): Delete.
2796 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
2798         PR preprocessor/56540
2799         * config/i386/i386-c.c (ix86_target_macros): Define
2800         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
2802 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2804         * configure.ac (tga_func): Remove.
2805         (LIB_TLS_SPEC): Remove.
2806         * configure: Regenerate.
2807         * config.in: Regenerate.
2808         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
2810 2014-04-25  Richard Biener  <rguenther@suse.de>
2812         PR ipa/60912
2813         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
2814         call stmt use/clobber sets during stmt walk instead of
2815         walking the possibly incomplete set of caller edges.
2817 2014-04-25  Richard Biener  <rguenther@suse.de>
2819         PR ipa/60911
2820         * passes.c (apply_ipa_transforms): Inline into only caller ...
2821         (execute_one_pass): ... here.  Properly bring in function
2822         bodies for nodes we want to apply IPA transforms to.
2824 2014-04-24  Cong Hou  <congh@google.com>
2826         PR tree-optimization/60896
2827         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
2828         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
2829         (vect_mark_pattern_stmts): Set the def type of all statements in
2830         PATTERN_DEF_SEQ as vect_internal_def.
2832 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2834         * doc/extend.texi (PowerPC Built-in Functions): Document new
2835         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
2836         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
2838         * config/rs6000/predicates.md (const_0_to_3_operand): New
2839         predicate to match 0..3 integer constants.
2841         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
2842         to support adding miscellaneous builtin functions.
2843         (BU_DFP_MISC_2): Likewise.
2844         (BU_P7_MISC_1): Likewise.
2845         (BU_P7_MISC_2): Likewise.
2846         (BU_P8V_MISC_3): Likewise.
2847         (BU_MISC_1): Likewise.
2848         (BU_MISC_2): Likewise.
2849         (DIVWE): Add extended divide builtin functions.
2850         (DIVWEO): Likewise.
2851         (DIVWEU): Likewise.
2852         (DIVWEUO): Likewise.
2853         (DIVDE): Likewise.
2854         (DIVDEO): Likewise.
2855         (DIVDEU): Likewise.
2856         (DIVDEUO): Likewise.
2857         (DXEX): Add decimal floating-point builtin functions.
2858         (DXEXQ): Likewise.
2859         (DDEDPD): Likewise.
2860         (DDEDPDQ): Likewise.
2861         (DENBCD): Likewise.
2862         (DENBCDQ): Likewise.
2863         (DIEX): Likewise.
2864         (DIEXQ): Likewise.
2865         (DSCLI): Likewise.
2866         (DSCLIQ): Likewise.
2867         (DSCRI): Likewise.
2868         (DSCRIQ): Likewise.
2869         (CDTBCD): Add new BCD builtin functions.
2870         (CBCDTD): Likewise.
2871         (ADDG6S): Likewise.
2872         (BCDADD): Likewise.
2873         (BCDADD_LT): Likewise.
2874         (BCDADD_EQ): Likewise.
2875         (BCDADD_GT): Likewise.
2876         (BCDADD_OV): Likewise.
2877         (BCDSUB): Likewise.
2878         (BCDSUB_LT): Likewise.
2879         (BCDSUB_EQ): Likewise.
2880         (BCDSUB_GT): Likewise.
2881         (BCDSUB_OV): Likewise.
2882         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
2883         (UNPACK_TD): Likewise.
2884         (PACK_TF): Likewise.
2885         (UNPACK_TF): Likewise.
2886         (UNPACK_TF_0): Likewise.
2887         (UNPACK_TF_1): Likewise.
2888         (PACK_V1TI): Likewise.
2889         (UNPACK_V1TI): Likewise.
2891         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2892         support for decimal floating point builtin functions.
2893         (rs6000_expand_ternop_builtin): Add checks for the new builtin
2894         functions that take constant arguments.
2895         (rs6000_invalid_builtin): Add decimal floating point builtin support.
2896         (rs6000_init_builtins): Setup long double, _Decimal64, and
2897         _Decimal128 types for new builtin functions.
2898         (builtin_function_type): Set the unsigned flags appropriately for
2899         the new builtin functions.
2900         (rs6000_opt_masks): Add support for decimal floating point builtin
2901         functions.
2903         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
2904         floating point builtin functions.
2905         (RS6000_BTM_COMMON): Likewise.
2906         (RS6000_BTI_long_double): Likewise.
2907         (RS6000_BTI_dfloat64): Likewise.
2908         (RS6000_BTI_dfloat128): Likewise.
2909         (long_double_type_internal_node): Likewise.
2910         (dfloat64_type_internal_node): Likewise.
2911         (dfloat128_type_internal_node): Likewise.
2913         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
2914         2.07 bcd arithmetic instructions.
2915         (UNSPEC_BCDSUB): Likewise.
2916         (UNSPEC_BCD_OVERFLOW): Likewise.
2917         (UNSPEC_BCD_ADD_SUB): Likewise.
2918         (bcd_add_sub): Likewise.
2919         (BCD_TEST): Likewise.
2920         (bcd<bcd_add_sub>): Likewise.
2921         (bcd<bcd_add_sub>_test): Likewise.
2922         (bcd<bcd_add_sub>_test2): Likewise.
2923         (bcd<bcd_add_sub>_<code>): Likewise.
2924         (peephole2 for combined bcd ops): Likewise.
2926         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
2927         decimal floating point builtin functions.
2928         (UNSPEC_DENBCD): Likewise.
2929         (UNSPEC_DXEX): Likewise.
2930         (UNSPEC_DIEX): Likewise.
2931         (UNSPEC_DSCLI): Likewise.
2932         (UNSPEC_DSCRI): Likewise.
2933         (D64_D128): Likewise.
2934         (dfp_suffix): Likewise.
2935         (dfp_ddedpd_<mode>): Likewise.
2936         (dfp_denbcd_<mode>): Likewise.
2937         (dfp_dxex_<mode>): Likewise.
2938         (dfp_diex_<mode>): Likewise.
2939         (dfp_dscli_<mode>): Likewise.
2940         (dfp_dscri_<mode>): Likewise.
2942         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
2943         builtin functions.
2944         (UNSPEC_CDTBCD): Likewise.
2945         (UNSPEC_CBCDTD): Likewise.
2946         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
2947         (UNSPEC_DIVEO): Likewise.
2948         (UNSPEC_DIVEU): Likewise.
2949         (UNSPEC_DIVEUO): Likewise.
2950         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
2951         pack/unpack 128-bit types.
2952         (UNSPEC_PACK_128BIT): Likewise.
2953         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
2954         (udiv<mode>3): Use idiv_ldiv mode attribute.
2955         (div<mode>3): Likewise.
2956         (addg6s): Add new BCD builtin functions.
2957         (cdtbcd): Likewise.
2958         (cbcdtd): Likewise.
2959         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
2960         (div_extend): Likewise.
2961         (div<div_extend>_<mode>"): Likewise.
2962         (FP128_64): Add support for new builtin functions to pack/unpack
2963         128-bit types.
2964         (unpack<mode>): Likewise.
2965         (unpacktf_0): Likewise.
2966         (unpacktf_1): Likewise.
2967         (unpack<mode>_dm): Likewise.
2968         (unpack<mode>_nodm): Likewise.
2969         (pack<mode>): Likewise.
2970         (unpackv1ti): Likewise.
2971         (packv1ti): Likewise.
2973 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
2975         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
2976         is disabled.
2978 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2980         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
2981         * gimplify.c (omp_is_private): Change last argument's type to int.
2982         Only diagnose lastprivate if the simd argument is 1, only diagnose
2983         linear if the simd argument is 2.
2984         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
2985         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
2986         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
2987         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
2988         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
2989         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
2990         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
2991         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
2992         * tree-nested.c (convert_nonlocal_omp_clauses,
2993         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
2995 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
2997         PR target/60822
2998         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
2999         operand 1.
3001 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
3003         * flag-types.h (enum ivar_visibility): Add.
3005 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
3007         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
3008         function * argument.
3010 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
3012         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
3014 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
3015             Tom de Vries  <tom@codesourcery.com>
3017         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
3018         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
3019         reg-note.
3020         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
3021         * emit-rtl.c (try_split): Same.
3023 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
3024             Tom de Vries  <tom@codesourcery.com>
3026         * common.opt (fuse-caller-save): New option.
3028 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
3030         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
3031         elements for big-endian.
3033 2014-04-24  Richard Biener  <rguenther@suse.de>
3035         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
3036         during TER and instead use the sepops interface for expanding
3037         non-GIMPLE_SINGLE_RHS.
3039 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3041         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
3042         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
3044 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3046         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
3047         assembler 64-bit option.
3048         * configure: Regenerate.
3050 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3052         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
3053         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
3054         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
3055         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
3056         (TARGET_CRYPTO): Take TARGET_SIMD into account.
3058 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3060         * config/aarch64/aarch64-builtins.c
3061         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
3062         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
3063         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
3064         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
3065         builtins.
3066         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
3067         (Vrevsuff): New mode attribute.
3069 2014-04-24  Terry Guo  <terry.guo@arm.com>
3071         * config/arm/arm.h (machine_function): Define variable
3072         after_arm_reorg here.
3073         * config/arm/arm.c (after_arm_reorg): Remove the definition.
3074         (arm_split_constant): Update the way to access variable
3075         after_arm_reorg.
3076         (arm_reorg): Ditto.
3077         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
3079 2014-04-23  Tom de Vries  <tom@codesourcery.com>
3081         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
3083 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
3085         * is-a.h: Update comments to reflect the following changes to the
3086         "pointerness" of the API, making the template parameter match the
3087         return type, allowing use of is-a.h with typedefs of pointers.
3088         (is_a_helper::cast): Return a T rather then a pointer to a T, so
3089         that the return type matches the parameter to the is_a_helper.
3090         (as_a): Likewise.
3091         (dyn_cast): Likewise.
3093         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
3094         pointer from the is-a.h API.
3096         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
3097         (is_a_helper <cgraph_node *>::test): ...this, matching change to
3098         is-a.h API.
3099         (is_a_helper <varpool_node>::test): Likewise, convert to...
3100         (is_a_helper <varpool_node *>::test): ...this.
3102         (varpool_first_variable): Update for removal of implicit pointer
3103         from the is-a.h API.
3104         (varpool_next_variable): Likewise.
3105         (varpool_first_static_initializer): Likewise.
3106         (varpool_next_static_initializer): Likewise.
3107         (varpool_first_defined_variable): Likewise.
3108         (varpool_next_defined_variable): Likewise.
3109         (cgraph_first_defined_function): Likewise.
3110         (cgraph_next_defined_function): Likewise.
3111         (cgraph_first_function): Likewise.
3112         (cgraph_next_function): Likewise.
3113         (cgraph_first_function_with_gimple_body): Likewise.
3114         (cgraph_next_function_with_gimple_body): Likewise.
3115         (cgraph_alias_target): Likewise.
3116         (varpool_alias_target): Likewise.
3117         (cgraph_function_or_thunk_node): Likewise.
3118         (varpool_variable_node): Likewise.
3119         (symtab_real_symbol_p): Likewise.
3120         * cgraphunit.c (referred_to_p): Likewise.
3121         (analyze_functions): Likewise.
3122         (handle_alias_pairs): Likewise.
3123         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
3124         * gimple-ssa.h (gimple_vuse_op): Likewise.
3125         (gimple_vdef_op): Likewise.
3126         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3127         * gimple.c (gimple_build_asm_1): Likewise.
3128         (gimple_build_try): Likewise.
3129         (gimple_build_resx): Likewise.
3130         (gimple_build_eh_dispatch): Likewise.
3131         (gimple_build_omp_for): Likewise.
3132         (gimple_omp_for_set_clauses): Likewise.
3134         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
3135         (is_a_helper <gimple_statement_asm *>::test): ...this.
3136         (is_a_helper <gimple_statement_bind>::test): Convert to...
3137         (is_a_helper <gimple_statement_bind *>::test): ...this.
3138         (is_a_helper <gimple_statement_call>::test): Convert to...
3139         (is_a_helper <gimple_statement_call *>::test): ...this.
3140         (is_a_helper <gimple_statement_catch>::test): Convert to...
3141         (is_a_helper <gimple_statement_catch *>::test): ...this.
3142         (is_a_helper <gimple_statement_resx>::test): Convert to...
3143         (is_a_helper <gimple_statement_resx *>::test): ...this.
3144         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
3145         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
3146         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
3147         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
3148         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
3149         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
3150         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
3151         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
3152         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
3153         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
3154         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
3155         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
3156         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
3157         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
3158         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
3159         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
3160         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
3161         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
3162         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
3163         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
3164         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
3165         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
3166         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
3167         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
3168         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
3169         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
3170         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
3171         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
3172         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
3173         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
3174         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
3175         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
3176         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
3177         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
3178         (is_a_helper <gimple_statement_phi>::test): Convert to...
3179         (is_a_helper <gimple_statement_phi *>::test): ...this.
3180         (is_a_helper <gimple_statement_transaction>::test): Convert to...
3181         (is_a_helper <gimple_statement_transaction *>::test): ...this.
3182         (is_a_helper <gimple_statement_try>::test): Convert to...
3183         (is_a_helper <gimple_statement_try *>::test): ...this.
3184         (is_a_helper <gimple_statement_wce>::test): Convert to...
3185         (is_a_helper <gimple_statement_wce *>::test): ...this.
3186         (is_a_helper <const gimple_statement_asm>::test): Convert to...
3187         (is_a_helper <const gimple_statement_asm *>::test): ...this.
3188         (is_a_helper <const gimple_statement_bind>::test): Convert to...
3189         (is_a_helper <const gimple_statement_bind *>::test): ...this.
3190         (is_a_helper <const gimple_statement_call>::test): Convert to...
3191         (is_a_helper <const gimple_statement_call *>::test): ...this.
3192         (is_a_helper <const gimple_statement_catch>::test): Convert to...
3193         (is_a_helper <const gimple_statement_catch *>::test): ...this.
3194         (is_a_helper <const gimple_statement_resx>::test): Convert to...
3195         (is_a_helper <const gimple_statement_resx *>::test): ...this.
3196         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
3197         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
3198         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
3199         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
3200         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
3201         Convert to...
3202         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3203         ...this.
3204         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
3205         Convert to...
3206         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3207         ...this.
3208         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
3209         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
3210         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
3211         to...
3212         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
3213         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
3214         to...
3215         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
3216         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
3217         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
3218         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
3219         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
3220         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
3221         to...
3222         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
3223         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
3224         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
3225         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
3226         to...
3227         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
3228         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
3229         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
3230         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
3231         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
3232         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
3233         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
3234         (is_a_helper <const gimple_statement_phi>::test): Convert to...
3235         (is_a_helper <const gimple_statement_phi *>::test): ...this.
3236         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
3237         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
3238         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
3239         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
3240         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
3241         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
3242         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
3243         to...
3244         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
3245         ...this.
3246         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
3247         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
3249         (gimple_use_ops): Update for removal of implicit pointer from the
3250         is-a.h API.
3251         (gimple_set_use_ops): Likewise.
3252         (gimple_vuse): Likewise.
3253         (gimple_vdef): Likewise.
3254         (gimple_vuse_ptr): Likewise.
3255         (gimple_vdef_ptr): Likewise.
3256         (gimple_set_vuse): Likewise.
3257         (gimple_set_vdef): Likewise.
3258         (gimple_omp_return_set_lhs): Likewise.
3259         (gimple_omp_return_lhs): Likewise.
3260         (gimple_omp_return_lhs_ptr): Likewise.
3261         (gimple_call_fntype): Likewise.
3262         (gimple_call_set_fntype): Likewise.
3263         (gimple_call_set_internal_fn): Likewise.
3264         (gimple_call_use_set): Likewise.
3265         (gimple_call_clobber_set): Likewise.
3266         (gimple_bind_vars): Likewise.
3267         (gimple_bind_set_vars): Likewise.
3268         (gimple_bind_body_ptr): Likewise.
3269         (gimple_bind_set_body): Likewise.
3270         (gimple_bind_add_stmt): Likewise.
3271         (gimple_bind_block): Likewise.
3272         (gimple_bind_set_block): Likewise.
3273         (gimple_asm_ninputs): Likewise.
3274         (gimple_asm_noutputs): Likewise.
3275         (gimple_asm_nclobbers): Likewise.
3276         (gimple_asm_nlabels): Likewise.
3277         (gimple_asm_input_op): Likewise.
3278         (gimple_asm_input_op_ptr): Likewise.
3279         (gimple_asm_output_op): Likewise.
3280         (gimple_asm_output_op_ptr): Likewise.
3281         (gimple_asm_set_output_op): Likewise.
3282         (gimple_asm_clobber_op): Likewise.
3283         (gimple_asm_set_clobber_op): Likewise.
3284         (gimple_asm_label_op): Likewise.
3285         (gimple_asm_set_label_op): Likewise.
3286         (gimple_asm_string): Likewise.
3287         (gimple_catch_types): Likewise.
3288         (gimple_catch_types_ptr): Likewise.
3289         (gimple_catch_handler_ptr): Likewise.
3290         (gimple_catch_set_types): Likewise.
3291         (gimple_catch_set_handler): Likewise.
3292         (gimple_eh_filter_types): Likewise.
3293         (gimple_eh_filter_types_ptr): Likewise.
3294         (gimple_eh_filter_failure_ptr): Likewise.
3295         (gimple_eh_filter_set_types): Likewise.
3296         (gimple_eh_filter_set_failure): Likewise.
3297         (gimple_eh_must_not_throw_fndecl): Likewise.
3298         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3299         (gimple_eh_else_n_body_ptr): Likewise.
3300         (gimple_eh_else_e_body_ptr): Likewise.
3301         (gimple_eh_else_set_n_body): Likewise.
3302         (gimple_eh_else_set_e_body): Likewise.
3303         (gimple_try_eval_ptr): Likewise.
3304         (gimple_try_cleanup_ptr): Likewise.
3305         (gimple_try_set_eval): Likewise.
3306         (gimple_try_set_cleanup): Likewise.
3307         (gimple_wce_cleanup_ptr): Likewise.
3308         (gimple_wce_set_cleanup): Likewise.
3309         (gimple_phi_capacity): Likewise.
3310         (gimple_phi_num_args): Likewise.
3311         (gimple_phi_result): Likewise.
3312         (gimple_phi_result_ptr): Likewise.
3313         (gimple_phi_set_result): Likewise.
3314         (gimple_phi_arg): Likewise.
3315         (gimple_phi_set_arg): Likewise.
3316         (gimple_resx_region): Likewise.
3317         (gimple_resx_set_region): Likewise.
3318         (gimple_eh_dispatch_region): Likewise.
3319         (gimple_eh_dispatch_set_region): Likewise.
3320         (gimple_omp_critical_name): Likewise.
3321         (gimple_omp_critical_name_ptr): Likewise.
3322         (gimple_omp_critical_set_name): Likewise.
3323         (gimple_omp_for_clauses): Likewise.
3324         (gimple_omp_for_clauses_ptr): Likewise.
3325         (gimple_omp_for_set_clauses): Likewise.
3326         (gimple_omp_for_collapse): Likewise.
3327         (gimple_omp_for_index): Likewise.
3328         (gimple_omp_for_index_ptr): Likewise.
3329         (gimple_omp_for_set_index): Likewise.
3330         (gimple_omp_for_initial): Likewise.
3331         (gimple_omp_for_initial_ptr): Likewise.
3332         (gimple_omp_for_set_initial): Likewise.
3333         (gimple_omp_for_final): Likewise.
3334         (gimple_omp_for_final_ptr): Likewise.
3335         (gimple_omp_for_set_final): Likewise.
3336         (gimple_omp_for_incr): Likewise.
3337         (gimple_omp_for_incr_ptr): Likewise.
3338         (gimple_omp_for_set_incr): Likewise.
3339         (gimple_omp_for_pre_body_ptr): Likewise.
3340         (gimple_omp_for_set_pre_body): Likewise.
3341         (gimple_omp_parallel_clauses): Likewise.
3342         (gimple_omp_parallel_clauses_ptr): Likewise.
3343         (gimple_omp_parallel_set_clauses): Likewise.
3344         (gimple_omp_parallel_child_fn): Likewise.
3345         (gimple_omp_parallel_child_fn_ptr): Likewise.
3346         (gimple_omp_parallel_set_child_fn): Likewise.
3347         (gimple_omp_parallel_data_arg): Likewise.
3348         (gimple_omp_parallel_data_arg_ptr): Likewise.
3349         (gimple_omp_parallel_set_data_arg): Likewise.
3350         (gimple_omp_task_clauses): Likewise.
3351         (gimple_omp_task_clauses_ptr): Likewise.
3352         (gimple_omp_task_set_clauses): Likewise.
3353         (gimple_omp_task_child_fn): Likewise.
3354         (gimple_omp_task_child_fn_ptr): Likewise.
3355         (gimple_omp_task_set_child_fn): Likewise.
3356         (gimple_omp_task_data_arg): Likewise.
3357         (gimple_omp_task_data_arg_ptr): Likewise.
3358         (gimple_omp_task_set_data_arg): Likewise.
3359         (gimple_omp_taskreg_clauses): Likewise.
3360         (gimple_omp_taskreg_clauses_ptr): Likewise.
3361         (gimple_omp_taskreg_set_clauses): Likewise.
3362         (gimple_omp_taskreg_child_fn): Likewise.
3363         (gimple_omp_taskreg_child_fn_ptr): Likewise.
3364         (gimple_omp_taskreg_set_child_fn): Likewise.
3365         (gimple_omp_taskreg_data_arg): Likewise.
3366         (gimple_omp_taskreg_data_arg_ptr): Likewise.
3367         (gimple_omp_taskreg_set_data_arg): Likewise.
3368         (gimple_omp_task_copy_fn): Likewise.
3369         (gimple_omp_task_copy_fn_ptr): Likewise.
3370         (gimple_omp_task_set_copy_fn): Likewise.
3371         (gimple_omp_task_arg_size): Likewise.
3372         (gimple_omp_task_arg_size_ptr): Likewise.
3373         (gimple_omp_task_set_arg_size): Likewise.
3374         (gimple_omp_task_arg_align): Likewise.
3375         (gimple_omp_task_arg_align_ptr): Likewise.
3376         (gimple_omp_task_set_arg_align): Likewise.
3377         (gimple_omp_single_clauses): Likewise.
3378         (gimple_omp_single_clauses_ptr): Likewise.
3379         (gimple_omp_single_set_clauses): Likewise.
3380         (gimple_omp_target_clauses): Likewise.
3381         (gimple_omp_target_clauses_ptr): Likewise.
3382         (gimple_omp_target_set_clauses): Likewise.
3383         (gimple_omp_target_child_fn): Likewise.
3384         (gimple_omp_target_child_fn_ptr): Likewise.
3385         (gimple_omp_target_set_child_fn): Likewise.
3386         (gimple_omp_target_data_arg): Likewise.
3387         (gimple_omp_target_data_arg_ptr): Likewise.
3388         (gimple_omp_target_set_data_arg): Likewise.
3389         (gimple_omp_teams_clauses): Likewise.
3390         (gimple_omp_teams_clauses_ptr): Likewise.
3391         (gimple_omp_teams_set_clauses): Likewise.
3392         (gimple_omp_sections_clauses): Likewise.
3393         (gimple_omp_sections_clauses_ptr): Likewise.
3394         (gimple_omp_sections_set_clauses): Likewise.
3395         (gimple_omp_sections_control): Likewise.
3396         (gimple_omp_sections_control_ptr): Likewise.
3397         (gimple_omp_sections_set_control): Likewise.
3398         (gimple_omp_for_set_cond): Likewise.
3399         (gimple_omp_for_cond): Likewise.
3400         (gimple_omp_atomic_store_set_val): Likewise.
3401         (gimple_omp_atomic_store_val): Likewise.
3402         (gimple_omp_atomic_store_val_ptr): Likewise.
3403         (gimple_omp_atomic_load_set_lhs): Likewise.
3404         (gimple_omp_atomic_load_lhs): Likewise.
3405         (gimple_omp_atomic_load_lhs_ptr): Likewise.
3406         (gimple_omp_atomic_load_set_rhs): Likewise.
3407         (gimple_omp_atomic_load_rhs): Likewise.
3408         (gimple_omp_atomic_load_rhs_ptr): Likewise.
3409         (gimple_omp_continue_control_def): Likewise.
3410         (gimple_omp_continue_control_def_ptr): Likewise.
3411         (gimple_omp_continue_set_control_def): Likewise.
3412         (gimple_omp_continue_control_use): Likewise.
3413         (gimple_omp_continue_control_use_ptr): Likewise.
3414         (gimple_omp_continue_set_control_use): Likewise.
3415         (gimple_transaction_body_ptr): Likewise.
3416         (gimple_transaction_label): Likewise.
3417         (gimple_transaction_label_ptr): Likewise.
3418         (gimple_transaction_set_body): Likewise.
3419         (gimple_transaction_set_label): Likewise.
3421         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
3422         * ipa-inline-analysis.c (inline_write_summary): Likewise.
3423         * ipa-ref.c (ipa_record_reference): Likewise.
3424         * ipa-reference.c (analyze_function): Likewise.
3425         (ipa_reference_write_optimization_summary): Likewise.
3426         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
3427         (address_taken_from_non_vtable_p): Likewise.
3428         (comdat_can_be_unshared_p_1): Likewise.
3429         * lto-cgraph.c (lto_output_ref): Likewise.
3430         (add_references): Likewise.
3431         (compute_ltrans_boundary): Likewise.
3432         (output_symtab): Likewise.
3433         (input_ref): Likewise.
3434         (input_cgraph_1): Likewise.
3435         (output_cgraph_opt_summary): Likewise.
3436         * lto-streamer-out.c (lto_output): Likewise.
3437         (output_symbol_p): Likewise.
3438         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
3439         (lsei_start_function_in_partition): Likewise.
3440         (lsei_next_variable_in_partition): Likewise.
3441         (lsei_start_variable_in_partition): Likewise.
3442         * symtab.c (insert_to_assembler_name_hash): Likewise.
3443         (unlink_from_assembler_name_hash): Likewise.
3444         (symtab_unregister_node): Likewise.
3445         (symtab_remove_node): Likewise.
3446         (dump_symtab_node): Likewise.
3447         (verify_symtab_base): Likewise.
3448         (verify_symtab_node): Likewise.
3449         (symtab_make_decl_local): Likewise.
3450         (symtab_alias_ultimate_target): Likewise.
3451         (symtab_resolve_alias): Likewise.
3452         (symtab_get_symbol_partitioning_class): Likewise.
3453         * tree-phinodes.c (allocate_phi_node): Likewise.
3454         (reserve_phi_args_for_new_edge): Likewise.
3455         (remove_phi_args): Likewise.
3456         * varpool.c (varpool_node_for_asm): Likewise.
3457         (varpool_remove_unreferenced_decls): Likewise.
3459 2014-04-23  Jeff Law  <law@redhat.com>
3461         PR tree-optimization/60902
3462         * tree-ssa-threadedge.c
3463         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
3464         invalidate outputs from statements that do not produce useful
3465         outputs for threading.
3467 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
3469         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
3470         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
3471         machine descriptions for Stack Smashing Protector.
3473 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
3475         * aarch64.md (<optab>_rol<mode>3): New pattern.
3476         (<optab>_rolsi3_uxtw): Likewise.
3477         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
3479 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
3481         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
3482         (arm_cortex_a12_tune): Likewise.
3484 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3486         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
3488 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3490         * config/arm/arm.md (arm_rev16si2): New pattern.
3491         (arm_rev16si2_alt): Likewise.
3492         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
3494 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3496         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
3497         (rev16<mode>2_alt): Likewise.
3498         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
3499         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
3500         (aarch_rev16_shleft_mask_imm_p): Likewise.
3501         (aarch_rev16_p_1): Likewise.
3502         (aarch_rev16_p): Likewise.
3503         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
3504         (aarch_rev16_shright_mask_imm_p): Likewise.
3505         (aarch_rev16_shleft_mask_imm_p): Likewise.
3507 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3509         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
3510         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
3511         rev cost.
3512         (cortex_a53_extra_costs): Likewise.
3513         (cortex_a57_extra_costs): Likewise.
3514         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
3515         (cortexa7_extra_costs): Likewise.
3516         (cortexa8_extra_costs): Likewise.
3517         (cortexa12_extra_costs): Likewise.
3518         (cortexa15_extra_costs): Likewise.
3519         (v7m_extra_costs): Likewise.
3520         (arm_new_rtx_costs): Handle BSWAP.
3522 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3524         * config/arm/arm.c (cortexa8_extra_costs): New table.
3525         (arm_cortex_a8_tune): New tuning struct.
3526         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
3528 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3530         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
3532 2014-04-23  Richard Biener  <rguenther@suse.de>
3534         * Makefile.in (OBJS): Remove loop-unswitch.o.
3535         * tree-pass.h (make_pass_rtl_unswitch): Remove.
3536         * passes.def (pass_rtl_unswitch): Likewise.
3537         * loop-init.c (gate_rtl_unswitch): Likewise.
3538         (rtl_unswitch): Likewise.
3539         (pass_data_rtl_unswitch): Likewise.
3540         (pass_rtl_unswitch): Likewise.
3541         (make_pass_rtl_unswitch): Likewise.
3542         * rtl.h (reversed_condition): Likewise.
3543         (compare_and_jump_seq): Likewise.
3544         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
3545         and make static.
3546         * loop-unroll.c (compare_and_jump_seq): Likewise.
3548 2014-04-23  Richard Biener  <rguenther@suse.de>
3550         PR tree-optimization/60903
3551         * tree-ssa-loop-im.c (analyze_memory_references): Remove
3552         commented code block.
3553         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
3554         loop flags to newly created BBs and edges.
3556 2014-04-23  Nick Clifton  <nickc@redhat.com>
3558         * config/msp430/msp430.c (msp430_handle_option): Move function
3559         to msp430-common.c
3560         (msp430_option_override): Simplify mcu and mcpu option handling.
3561         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
3562         support for -mhwmult command line option.
3563         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
3564         -mhwmult command line option.
3565         (msp430_hwmult_enabled): Delete.
3566         (msp43o_output_labelref): Add support for -mhwmult command line option.
3567         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
3568         (umulsidi3): Likewise.
3569         * config/msp430/msp430.opt (mmcu): Add Report attribute.
3570         (mcpu, mlarge, msmall): Likewise.
3571         (mhwmult): New option.
3572         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
3573         prototype.
3574         (msp430_is_f5_mcu): Remove prototype.
3575         (msp430_use_f5_series_hwmult): Add prototype.
3576         * config/msp430/msp430-opts.h: New file.
3577         * common/config/msp430: New directory.
3578         * common/config/msp430/msp430-common.c: New file.
3579         * config.gcc (msp430): Remove target_has_targetm_common.
3580         * doc/invoke.texi: Document -mhwmult command line option.
3582 2014-04-23  Nick Clifton  <nickc@redhat.com>
3584         * config/i386/cygwin.h (ENDFILE_SPEC): Include
3585         default-manifest.o if it can be found in the search path.
3586         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
3588 2014-04-23  Terry Guo  <terry.guo@arm.com>
3590         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
3592 2014-04-23  Richard Biener  <rguenther@suse.de>
3594         PR middle-end/60895
3595         * tree-inline.c (declare_return_variable): Use mark_addressable.
3597 2014-04-23  Richard Biener  <rguenther@suse.de>
3599         PR middle-end/60891
3600         * loop-init.c (loop_optimizer_init): Make sure to apply
3601         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
3603 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3605         PR sanitizer/60275
3606         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
3607         New options.
3608         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
3609         if flag_sanitize_undefined_trap_on_error.
3610         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
3611         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
3612         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
3613         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
3614         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
3615         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
3616         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
3617         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
3618         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
3619         * ubsan.c (ubsan_instrument_unreachable): Return
3620         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
3621         (ubsan_expand_null_ifn): Emit __builtin_trap ()
3622         if flag_sanitize_undefined_trap_on_error and
3623         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
3624         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
3625         instrument_bool_enum_load): Emit __builtin_trap () if
3626         flag_sanitize_undefined_trap_on_error and
3627         __builtin_handle_*_abort () if !flag_sanitize_recover.
3628         * doc/invoke.texi (-fsanitize-recover,
3629         -fsanitize-undefined-trap-on-error): Document.
3631 2014-04-22  Christian Bruel  <christian.bruel@st.com>
3633         * config/sh/sh.md (mov<mode>): Replace movQIHI.
3634          Force immediates to SImode.
3636 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
3638         * config/nios2/nios2.md (UNSPEC_ROUND): New.
3639         (lroundsfsi2): New.
3640         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
3641         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
3642         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
3643         (nios2_fpu_insn): Add entry for round.
3644         (N2FPU_NO_ERRNO_P): Define.
3645         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
3646         flag_errno_math.
3647         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
3649 2014-04-22  Richard Henderson  <rth@redhat.com>
3651         * config/aarch64/aarch64 (addti3, subti3): New expanders.
3652         (add<GPI>3_compare0): Remove leading * from name.
3653         (add<GPI>3_carryin): Likewise.
3654         (sub<GPI>3_compare0): Likewise.
3655         (sub<GPI>3_carryin): Likewise.
3656         (<su_optab>mulditi3): New expander.
3657         (multi3): New expander.
3658         (madd<GPI>): Remove leading * from name.
3660 2014-04-22  Martin Jambor  <mjambor@suse.cz>
3662         * cgraphclones.c (cgraph_function_versioning): Copy
3663         ipa_transforms_to_apply instead of asserting it is empty.
3665 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
3667         PR target/60868
3668         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
3669         on count_exp to get mode.
3671 2014-04-22  Andrew Pinski  <apinski@cavium.com>
3673         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
3674         Handle TLS for ILP32.
3675         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
3676         (tlsie_small_<mode>): this and handle PTR.
3677         (tlsie_small_sidi): New pattern.
3678         (tlsle_small): Change to an expand to handle ILP32.
3679         (tlsle_small_<mode>): New pattern.
3680         (tlsdesc_small): Rename to ...
3681         (tlsdesc_small_<mode>): this and handle PTR.
3683 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3685         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
3687 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3689         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
3690         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
3691         (aarch64_types_signed_poly_qualifiers): Likewise.
3692         (aarch64_types_unsigned_signed_qualifiers): Likewise.
3693         (aarch64_types_poly_signed_qualifiers): Likewise.
3694         (TYPES_REINTERP_SS): Type macro added.
3695         (TYPES_REINTERP_SU): Likewise.
3696         (TYPES_REINTERP_SP): Likewise.
3697         (TYPES_REINTERP_US): Likewise.
3698         (TYPES_REINTERP_PS): Likewise.
3699         (aarch64_fold_builtin): New expression folding added.
3700         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
3701         Declarations removed.
3702         (REINTERP_SS): Declarations added.
3703         (REINTERP_US): Likewise.
3704         (REINTERP_PS): Likewise.
3705         (REINTERP_SU): Likewise.
3706         (REINTERP_SP): Likewise.
3707         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
3708         (vreinterpretq_p8_f64): Likewise.
3709         (vreinterpret_p16_f64): Likewise.
3710         (vreinterpretq_p16_f64): Likewise.
3711         (vreinterpret_f32_f64): Likewise.
3712         (vreinterpretq_f32_f64): Likewise.
3713         (vreinterpret_f64_f32): Likewise.
3714         (vreinterpret_f64_p8): Likewise.
3715         (vreinterpret_f64_p16): Likewise.
3716         (vreinterpret_f64_s8): Likewise.
3717         (vreinterpret_f64_s16): Likewise.
3718         (vreinterpret_f64_s32): Likewise.
3719         (vreinterpret_f64_s64): Likewise.
3720         (vreinterpret_f64_u8): Likewise.
3721         (vreinterpret_f64_u16): Likewise.
3722         (vreinterpret_f64_u32): Likewise.
3723         (vreinterpret_f64_u64): Likewise.
3724         (vreinterpretq_f64_f32): Likewise.
3725         (vreinterpretq_f64_p8): Likewise.
3726         (vreinterpretq_f64_p16): Likewise.
3727         (vreinterpretq_f64_s8): Likewise.
3728         (vreinterpretq_f64_s16): Likewise.
3729         (vreinterpretq_f64_s32): Likewise.
3730         (vreinterpretq_f64_s64): Likewise.
3731         (vreinterpretq_f64_u8): Likewise.
3732         (vreinterpretq_f64_u16): Likewise.
3733         (vreinterpretq_f64_u32): Likewise.
3734         (vreinterpretq_f64_u64): Likewise.
3735         (vreinterpret_s64_f64): Likewise.
3736         (vreinterpretq_s64_f64): Likewise.
3737         (vreinterpret_u64_f64): Likewise.
3738         (vreinterpretq_u64_f64): Likewise.
3739         (vreinterpret_s8_f64): Likewise.
3740         (vreinterpretq_s8_f64): Likewise.
3741         (vreinterpret_s16_f64): Likewise.
3742         (vreinterpretq_s16_f64): Likewise.
3743         (vreinterpret_s32_f64): Likewise.
3744         (vreinterpretq_s32_f64): Likewise.
3745         (vreinterpret_u8_f64): Likewise.
3746         (vreinterpretq_u8_f64): Likewise.
3747         (vreinterpret_u16_f64): Likewise.
3748         (vreinterpretq_u16_f64): Likewise.
3749         (vreinterpret_u32_f64): Likewise.
3750         (vreinterpretq_u32_f64): Likewise.
3752 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3754         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
3755         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
3756         (vreinterpret_p8_s8): Likewise.
3757         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
3758         (vreinterpret_p8_s16): Likewise.
3759         (vreinterpret_p8_s32): Likewise.
3760         (vreinterpret_p8_s64): Likewise.
3761         (vreinterpret_p8_f32): Likewise.
3762         (vreinterpret_p8_u8): Likewise.
3763         (vreinterpret_p8_u16): Likewise.
3764         (vreinterpret_p8_u32): Likewise.
3765         (vreinterpret_p8_u64): Likewise.
3766         (vreinterpret_p8_p16): Likewise.
3767         (vreinterpretq_p8_s8): Likewise.
3768         (vreinterpretq_p8_s16): Likewise.
3769         (vreinterpretq_p8_s32): Likewise.
3770         (vreinterpretq_p8_s64): Likewise.
3771         (vreinterpretq_p8_f32): Likewise.
3772         (vreinterpretq_p8_u8): Likewise.
3773         (vreinterpretq_p8_u16): Likewise.
3774         (vreinterpretq_p8_u32): Likewise.
3775         (vreinterpretq_p8_u64): Likewise.
3776         (vreinterpretq_p8_p16): Likewise.
3777         (vreinterpret_p16_s8): Likewise.
3778         (vreinterpret_p16_s16): Likewise.
3779         (vreinterpret_p16_s32): Likewise.
3780         (vreinterpret_p16_s64): Likewise.
3781         (vreinterpret_p16_f32): Likewise.
3782         (vreinterpret_p16_u8): Likewise.
3783         (vreinterpret_p16_u16): Likewise.
3784         (vreinterpret_p16_u32): Likewise.
3785         (vreinterpret_p16_u64): Likewise.
3786         (vreinterpret_p16_p8): Likewise.
3787         (vreinterpretq_p16_s8): Likewise.
3788         (vreinterpretq_p16_s16): Likewise.
3789         (vreinterpretq_p16_s32): Likewise.
3790         (vreinterpretq_p16_s64): Likewise.
3791         (vreinterpretq_p16_f32): Likewise.
3792         (vreinterpretq_p16_u8): Likewise.
3793         (vreinterpretq_p16_u16): Likewise.
3794         (vreinterpretq_p16_u32): Likewise.
3795         (vreinterpretq_p16_u64): Likewise.
3796         (vreinterpretq_p16_p8): Likewise.
3797         (vreinterpret_f32_s8): Likewise.
3798         (vreinterpret_f32_s16): Likewise.
3799         (vreinterpret_f32_s32): Likewise.
3800         (vreinterpret_f32_s64): Likewise.
3801         (vreinterpret_f32_u8): Likewise.
3802         (vreinterpret_f32_u16): Likewise.
3803         (vreinterpret_f32_u32): Likewise.
3804         (vreinterpret_f32_u64): Likewise.
3805         (vreinterpret_f32_p8): Likewise.
3806         (vreinterpret_f32_p16): Likewise.
3807         (vreinterpretq_f32_s8): Likewise.
3808         (vreinterpretq_f32_s16): Likewise.
3809         (vreinterpretq_f32_s32): Likewise.
3810         (vreinterpretq_f32_s64): Likewise.
3811         (vreinterpretq_f32_u8): Likewise.
3812         (vreinterpretq_f32_u16): Likewise.
3813         (vreinterpretq_f32_u32): Likewise.
3814         (vreinterpretq_f32_u64): Likewise.
3815         (vreinterpretq_f32_p8): Likewise.
3816         (vreinterpretq_f32_p16): Likewise.
3817         (vreinterpret_s64_s8): Likewise.
3818         (vreinterpret_s64_s16): Likewise.
3819         (vreinterpret_s64_s32): Likewise.
3820         (vreinterpret_s64_f32): Likewise.
3821         (vreinterpret_s64_u8): Likewise.
3822         (vreinterpret_s64_u16): Likewise.
3823         (vreinterpret_s64_u32): Likewise.
3824         (vreinterpret_s64_u64): Likewise.
3825         (vreinterpret_s64_p8): Likewise.
3826         (vreinterpret_s64_p16): Likewise.
3827         (vreinterpretq_s64_s8): Likewise.
3828         (vreinterpretq_s64_s16): Likewise.
3829         (vreinterpretq_s64_s32): Likewise.
3830         (vreinterpretq_s64_f32): Likewise.
3831         (vreinterpretq_s64_u8): Likewise.
3832         (vreinterpretq_s64_u16): Likewise.
3833         (vreinterpretq_s64_u32): Likewise.
3834         (vreinterpretq_s64_u64): Likewise.
3835         (vreinterpretq_s64_p8): Likewise.
3836         (vreinterpretq_s64_p16): Likewise.
3837         (vreinterpret_u64_s8): Likewise.
3838         (vreinterpret_u64_s16): Likewise.
3839         (vreinterpret_u64_s32): Likewise.
3840         (vreinterpret_u64_s64): Likewise.
3841         (vreinterpret_u64_f32): Likewise.
3842         (vreinterpret_u64_u8): Likewise.
3843         (vreinterpret_u64_u16): Likewise.
3844         (vreinterpret_u64_u32): Likewise.
3845         (vreinterpret_u64_p8): Likewise.
3846         (vreinterpret_u64_p16): Likewise.
3847         (vreinterpretq_u64_s8): Likewise.
3848         (vreinterpretq_u64_s16): Likewise.
3849         (vreinterpretq_u64_s32): Likewise.
3850         (vreinterpretq_u64_s64): Likewise.
3851         (vreinterpretq_u64_f32): Likewise.
3852         (vreinterpretq_u64_u8): Likewise.
3853         (vreinterpretq_u64_u16): Likewise.
3854         (vreinterpretq_u64_u32): Likewise.
3855         (vreinterpretq_u64_p8): Likewise.
3856         (vreinterpretq_u64_p16): Likewise.
3857         (vreinterpret_s8_s16): Likewise.
3858         (vreinterpret_s8_s32): Likewise.
3859         (vreinterpret_s8_s64): Likewise.
3860         (vreinterpret_s8_f32): Likewise.
3861         (vreinterpret_s8_u8): Likewise.
3862         (vreinterpret_s8_u16): Likewise.
3863         (vreinterpret_s8_u32): Likewise.
3864         (vreinterpret_s8_u64): Likewise.
3865         (vreinterpret_s8_p8): Likewise.
3866         (vreinterpret_s8_p16): Likewise.
3867         (vreinterpretq_s8_s16): Likewise.
3868         (vreinterpretq_s8_s32): Likewise.
3869         (vreinterpretq_s8_s64): Likewise.
3870         (vreinterpretq_s8_f32): Likewise.
3871         (vreinterpretq_s8_u8): Likewise.
3872         (vreinterpretq_s8_u16): Likewise.
3873         (vreinterpretq_s8_u32): Likewise.
3874         (vreinterpretq_s8_u64): Likewise.
3875         (vreinterpretq_s8_p8): Likewise.
3876         (vreinterpretq_s8_p16): Likewise.
3877         (vreinterpret_s16_s8): Likewise.
3878         (vreinterpret_s16_s32): Likewise.
3879         (vreinterpret_s16_s64): Likewise.
3880         (vreinterpret_s16_f32): Likewise.
3881         (vreinterpret_s16_u8): Likewise.
3882         (vreinterpret_s16_u16): Likewise.
3883         (vreinterpret_s16_u32): Likewise.
3884         (vreinterpret_s16_u64): Likewise.
3885         (vreinterpret_s16_p8): Likewise.
3886         (vreinterpret_s16_p16): Likewise.
3887         (vreinterpretq_s16_s8): Likewise.
3888         (vreinterpretq_s16_s32): Likewise.
3889         (vreinterpretq_s16_s64): Likewise.
3890         (vreinterpretq_s16_f32): Likewise.
3891         (vreinterpretq_s16_u8): Likewise.
3892         (vreinterpretq_s16_u16): Likewise.
3893         (vreinterpretq_s16_u32): Likewise.
3894         (vreinterpretq_s16_u64): Likewise.
3895         (vreinterpretq_s16_p8): Likewise.
3896         (vreinterpretq_s16_p16): Likewise.
3897         (vreinterpret_s32_s8): Likewise.
3898         (vreinterpret_s32_s16): Likewise.
3899         (vreinterpret_s32_s64): Likewise.
3900         (vreinterpret_s32_f32): Likewise.
3901         (vreinterpret_s32_u8): Likewise.
3902         (vreinterpret_s32_u16): Likewise.
3903         (vreinterpret_s32_u32): Likewise.
3904         (vreinterpret_s32_u64): Likewise.
3905         (vreinterpret_s32_p8): Likewise.
3906         (vreinterpret_s32_p16): Likewise.
3907         (vreinterpretq_s32_s8): Likewise.
3908         (vreinterpretq_s32_s16): Likewise.
3909         (vreinterpretq_s32_s64): Likewise.
3910         (vreinterpretq_s32_f32): Likewise.
3911         (vreinterpretq_s32_u8): Likewise.
3912         (vreinterpretq_s32_u16): Likewise.
3913         (vreinterpretq_s32_u32): Likewise.
3914         (vreinterpretq_s32_u64): Likewise.
3915         (vreinterpretq_s32_p8): Likewise.
3916         (vreinterpretq_s32_p16): Likewise.
3917         (vreinterpret_u8_s8): Likewise.
3918         (vreinterpret_u8_s16): Likewise.
3919         (vreinterpret_u8_s32): Likewise.
3920         (vreinterpret_u8_s64): Likewise.
3921         (vreinterpret_u8_f32): Likewise.
3922         (vreinterpret_u8_u16): Likewise.
3923         (vreinterpret_u8_u32): Likewise.
3924         (vreinterpret_u8_u64): Likewise.
3925         (vreinterpret_u8_p8): Likewise.
3926         (vreinterpret_u8_p16): Likewise.
3927         (vreinterpretq_u8_s8): Likewise.
3928         (vreinterpretq_u8_s16): Likewise.
3929         (vreinterpretq_u8_s32): Likewise.
3930         (vreinterpretq_u8_s64): Likewise.
3931         (vreinterpretq_u8_f32): Likewise.
3932         (vreinterpretq_u8_u16): Likewise.
3933         (vreinterpretq_u8_u32): Likewise.
3934         (vreinterpretq_u8_u64): Likewise.
3935         (vreinterpretq_u8_p8): Likewise.
3936         (vreinterpretq_u8_p16): Likewise.
3937         (vreinterpret_u16_s8): Likewise.
3938         (vreinterpret_u16_s16): Likewise.
3939         (vreinterpret_u16_s32): Likewise.
3940         (vreinterpret_u16_s64): Likewise.
3941         (vreinterpret_u16_f32): Likewise.
3942         (vreinterpret_u16_u8): Likewise.
3943         (vreinterpret_u16_u32): Likewise.
3944         (vreinterpret_u16_u64): Likewise.
3945         (vreinterpret_u16_p8): Likewise.
3946         (vreinterpret_u16_p16): Likewise.
3947         (vreinterpretq_u16_s8): Likewise.
3948         (vreinterpretq_u16_s16): Likewise.
3949         (vreinterpretq_u16_s32): Likewise.
3950         (vreinterpretq_u16_s64): Likewise.
3951         (vreinterpretq_u16_f32): Likewise.
3952         (vreinterpretq_u16_u8): Likewise.
3953         (vreinterpretq_u16_u32): Likewise.
3954         (vreinterpretq_u16_u64): Likewise.
3955         (vreinterpretq_u16_p8): Likewise.
3956         (vreinterpretq_u16_p16): Likewise.
3957         (vreinterpret_u32_s8): Likewise.
3958         (vreinterpret_u32_s16): Likewise.
3959         (vreinterpret_u32_s32): Likewise.
3960         (vreinterpret_u32_s64): Likewise.
3961         (vreinterpret_u32_f32): Likewise.
3962         (vreinterpret_u32_u8): Likewise.
3963         (vreinterpret_u32_u16): Likewise.
3964         (vreinterpret_u32_u64): Likewise.
3965         (vreinterpret_u32_p8): Likewise.
3966         (vreinterpret_u32_p16): Likewise.
3967         (vreinterpretq_u32_s8): Likewise.
3968         (vreinterpretq_u32_s16): Likewise.
3969         (vreinterpretq_u32_s32): Likewise.
3970         (vreinterpretq_u32_s64): Likewise.
3971         (vreinterpretq_u32_f32): Likewise.
3972         (vreinterpretq_u32_u8): Likewise.
3973         (vreinterpretq_u32_u16): Likewise.
3974         (vreinterpretq_u32_u64): Likewise.
3975         (vreinterpretq_u32_p8): Likewise.
3976         (vreinterpretq_u32_p16): Likewise.
3978 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
3980         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
3981         Pattern extended.
3982         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
3983         (sqabs): Likewise.
3984         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
3985         (vqnegd_s64): Likewise.
3986         (vqabs_s64): Likewise.
3987         (vqabsd_s64): Likewise.
3989 2014-04-22  Richard Henderson  <rth@redhat.com>
3991         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
3992         computation to the top of the loop.
3994 2014-04-22  Renlin  <renlin.li@arm.com>
3995             Jiong Wang  <jiong.wang@arm.com>
3997         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
3998         * config/aarch64/aarch64.c (aarch64_layout_frame)
3999         (aarch64_initial_elimination_offset): Likewise.
4001 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4003         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
4004         Fix indentation.
4006 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
4008         * machmode.h (bitwise_mode_for_mode): Declare.
4009         * stor-layout.h (bitwise_type_for_mode): Likewise.
4010         * stor-layout.c (bitwise_mode_for_mode): New function.
4011         (bitwise_type_for_mode): Likewise.
4012         * builtins.c (fold_builtin_memory_op): Use it instead of
4013         int_mode_for_mode and build_nonstandard_integer_type.
4015 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4017         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
4018         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
4019         (*-*-solaris2*): Simplify.
4020         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
4021         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
4022         *-*-solaris2.9* handling.
4024         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
4025         as bug.
4026         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
4027         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
4028         handling, simplify.
4029         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
4030         * configure: Regenerate.
4032         * config/i386/sol2-9.h: Remove.
4034         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
4035         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
4036         Remove Solaris 9 references.
4038 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
4040         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
4041         (floatuns<GPI:mode><GPF:mode>2): Remove.
4042         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
4043         and floatuns conversions.
4044         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
4045         and floatuns conversions.
4046         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
4047         (w1,w2): New mode attributes for inequal width conversions.
4049 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
4051         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
4052         the output asm format.
4054 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
4056         * config/aarch64/aarch64-simd.md
4057         (aarch64_cm<optab>di): Always split.
4058         (*aarch64_cm<optab>di): New.
4059         (aarch64_cmtstdi): Always split.
4060         (*aarch64_cmtstdi): New.
4062 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4064         PR tree-optimization/60823
4065         * omp-low.c (ipa_simd_modify_function_body): Go through
4066         all SSA_NAMEs and for those refering to vector arguments
4067         which are going to be replaced adjust SSA_NAME_VAR and,
4068         if it is a default definition, change it into a non-default
4069         definition assigned at the beginning of function from new_decl.
4070         (ipa_simd_modify_stmt_ops): Rewritten.
4071         * tree-dfa.c (set_ssa_default_def): When removing default def,
4072         check for NULL loc instead of NULL *loc.
4074 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4076         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
4077         restrictions on core registers for DImode values in Thumb2.
4079 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
4081         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
4082         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
4084 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
4086         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
4087         (*iordi_notzesidi_di): Likewise.
4088         (*iordi_notsesidi_di): Likewise.
4090 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
4092         * config/arm/arm-protos.h (tune_params): New struct members.
4093         * config/arm/arm.c: Initialise tune_params per processor.
4094         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
4095         for speed, based on new tune_params.
4097 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
4099         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
4100         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
4101         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
4102         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
4103         * config/aarch64/arm_neon.h (vrnd_f64): Added.
4104         (vrnda_f64): Likewise.
4105         (vrndi_f64): Likewise.
4106         (vrndm_f64): Likewise.
4107         (vrndn_f64): Likewise.
4108         (vrndp_f64): Likewise.
4109         (vrndx_f64): Likewise.
4111 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4113         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
4114         GET_MODE_SIZE argument is enum machine_mode.
4116 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4118         PR target/60910
4119         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
4120         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
4122 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
4124         PR middle-end/60281
4125         * asan.c (asan_emit_stack_protection): Force the base to align to
4126         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
4127         appropriate bits if STRICT_ALIGNMENT.
4128         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
4129         when asan is on.
4130         (expand_used_vars): Leave a space in the stack frame for alignment
4131         if STRICT_ALIGNMENT.
4133 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
4135         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
4136         than a gimple.
4137         (gimple_store_p): Likewise.
4138         (gimple_assign_load_p): Likewise.
4139         (gimple_assign_cast_p): Likewise.
4140         (gimple_clobber_p): Likewise.
4142         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
4143         rather than a gimple.
4144         (gimple_assign_cast_p): Likewise.
4146 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4148         PR target/60735
4149         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
4150         If mode is DDmode and TARGET_E500_DOUBLE allow move.
4152         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
4153         more debug information for E500 if -mdebug=reg.
4155 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
4157         PR target/60909
4158         * config/i386/i386.c (ix86_expand_builtin)
4159         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
4160         register for target RTX.
4161         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
4163 2014-04-18  Cong Hou  <congh@google.com>
4165         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
4166         the widen-mult pattern by handling two operands with different sizes,
4167         and operands whose size is smaller than half of the result type.
4169 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
4171         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
4172         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
4173         (do_estimate_edge_time): Compute it.
4174         * ipa-inline.c (want_inline_small_function_p): Bypass
4175         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
4177 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
4179         * ipa-inline.c (spec_rem): New static variable.
4180         (dump_overall_stats): New function.
4181         (dump_inline_stats): New function.
4183 2014-04-18  Richard Henderson  <rth@redhat.com>
4185         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
4186         to GET_MODE_SIZE, not a reg_class_t.
4188 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4190         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
4191         (vsx_xxmrglw_<mode>): Likewise.
4193 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
4195         PR target/60876
4196         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
4197         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
4198         (rs6000_init_hard_regno_mode_ok): Likewise.
4200 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
4202         * ipa-inline.c (inline_small_functions): Account only non-cold
4203         functions.
4204         * doc/invoke.texi (inline-unit-growth): Update documentation.
4206 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
4208         * config/rs6000/rs6000.md (addti3, subti3): New.
4210 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4212         PR target/60863
4213         * config/i386/i386.c (ix86_expand_clear): Remove outdated
4214         comment.  Check optimize_insn_for_size_p instead of
4215         optimize_insn_for_speed_p.
4217 2014-04-17  Martin Jambor  <mjambor@suse.cz>
4219         * gimple-iterator.c (gsi_start_edge): New function.
4220         * gimple-iterator.h (gsi_start_edge): Declare.
4221         * tree-sra.c (single_non_eh_succ): New function.
4222         (disqualify_ops_if_throwing_stmt): Renamed to
4223         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
4224         having one non-EH successor BB.
4225         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
4226         generate loads into replacements.
4227         (sra_modify_assign): Likewise and and also use the simple path for
4228         such statements.
4229         (sra_modify_function_body): Commit statements on edges.
4231 2014-04-17  Richard Biener  <rguenther@suse.de>
4233         PR middle-end/60849
4234         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
4235         comparison results and add clarifying comment.
4237 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
4239         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
4240         (blank_mode): Initialize it.
4241         (emit_mode_size_inline, emit_mode_nunits_inline,
4242         emit_mode_inner_inline): New functions.
4243         (emit_insn_modes_h): Call them and surround their output with
4244         #if GCC_VERSION >= 4001 ... #endif.
4245         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
4246         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
4247         mode_* arrays if the argument is __builtin_constant_p.
4248         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
4249         is enum machine_mode.
4251 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4253         * passes.c (opt_pass::execute): Adjust.
4254         (pass_manager::execute_pass_mode_switching): Likewise.
4255         (early_local_passes::execute): Likewise.
4256         (execute_one_pass): Pass cfun to the pass's execute method.
4257         * tree-pass.h (opt_pass::execute): Add function * argument.
4258         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
4259         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
4260         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
4261         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
4262         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
4263         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
4264         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
4265         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
4266         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
4267         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
4268         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
4269         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
4270         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
4271         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
4272         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
4273         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
4274         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
4275         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
4276         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
4277         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
4278         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
4279         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
4280         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
4281         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
4282         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
4283         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
4284         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
4285         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
4286         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
4287         Adjust.
4289 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4291         * passes.c (opt_pass::gate): Take function * argument.
4292         (gate_all_early_local_passes): Merge into
4293         (early_local_passes::gate): this.
4294         (gate_all_early_optimizations): Merge into
4295         (all_early_optimizations::gate): this.
4296         (gate_all_optimizations): Mege into
4297         (all_optimizations::gate): this.
4298         (gate_all_optimizations_g): Merge into
4299         (all_optimizations_g::gate): this.
4300         (gate_rest_of_compilation): Mege into
4301         (rest_of_compilation::gate): this.
4302         (gate_postreload): Merge into
4303         (postreload::gate): this.
4304         (dump_one_pass): Pass cfun to the pass's gate method.
4305         (execute_ipa_summary_passes): Likewise.
4306         (execute_one_pass): Likewise.
4307         (ipa_write_summaries_2): Likewise.
4308         (ipa_write_optimization_summaries_1): Likewise.
4309         (ipa_read_summaries_1): Likewise.
4310         (ipa_read_optimization_summaries_1): Likewise.
4311         (execute_ipa_stmt_fixups): Likewise.
4312         * tree-pass.h (opt_pass::gate): Add function * argument.
4313         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
4314         combine-stack-adj.c, combine.c, compare-elim.c,
4315         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
4316         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
4317         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
4318         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
4319         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
4320         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
4321         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
4322         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
4323         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
4324         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
4325         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
4326         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
4327         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
4328         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
4329         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
4330         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
4331         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
4332         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
4333         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
4334         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
4335         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
4336         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
4337         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
4338         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
4339         var-tracking.c, vtable-verify.c, web.c: Adjust.
4341 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4343         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
4344         * configure: Regenerate.
4346 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4348         * passes.c (dump_one_pass): don't check pass->has_gate.
4349         (execute_ipa_summary_passes): Likewise.
4350         (execute_one_pass): Likewise.
4351         (ipa_write_summaries_2): Likewise.
4352         (ipa_write_optimization_summaries_1): Likewise.
4353         (ipa_read_optimization_summaries_1): Likewise.
4354         (execute_ipa_stmt_fixups): Likewise.
4355         * tree-pass.h (pass_data::has_gate): Remove.
4356         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
4357         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
4358         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
4359         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
4360         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
4361         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
4362         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
4363         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
4364         gimple-low.c, gimple-ssa-isolate-paths.c,
4365         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
4366         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
4367         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
4368         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
4369         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
4370         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
4371         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
4372         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
4373         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
4374         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
4375         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
4376         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
4377         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
4378         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
4379         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
4380         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
4381         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
4382         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
4383         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
4384         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
4385         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
4386         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
4387         Adjust.
4389 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4391         * pass_manager.h (pass_manager::register_dump_files_1): Remove
4392         declaration.
4393         * passes.c (pass_manager::register_dump_files_1): Merge into
4394         (pass_manager::register_dump_files): this, and remove its handling of
4395         properties since the pass always has the properties anyway.
4396         (pass_manager::pass_manager): Adjust.
4398 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
4400         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
4401         * passes.c (pass_manager::register_dump_files_1): Remove dead code
4402         dealing with properties.
4403         (pass_manager::register_dump_files): Adjust.
4405 2014-03-20  Mark Wielaard  <mjw@redhat.com>
4407         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
4408         then represent the bound as normal constant value.
4410 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
4412         PR target/60847
4413         Forward port from 4.8 branch
4414         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
4416         * config/i386/bmiintrin.h (_blsi_u32): New.
4417         (_blsi_u64): Ditto.
4418         (_blsr_u32): Ditto.
4419         (_blsr_u64): Ditto.
4420         (_blsmsk_u32): Ditto.
4421         (_blsmsk_u64): Ditto.
4422         (_tzcnt_u32): Ditto.
4423         (_tzcnt_u64): Ditto.
4425 2014-04-17  Kito Cheng  <kito@0xlab.org>
4427         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
4429 2014-04-17  Richard Biener  <rguenther@suse.de>
4431         PR middle-end/60849
4432         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
4433         boolean results for comparisons.
4435 2014-04-17  Richard Biener  <rguenther@suse.de>
4437         PR tree-optimization/60836
4438         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
4439         initial PHI args to be gimple values.
4441 2014-04-17   Richard Biener  <rguenther@suse.de>
4443         PR tree-optimization/60841
4444         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
4445         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
4446         of stmts to SLP build.
4447         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
4448         (vect_analyze_slp): Likewise.
4449         (vect_analyze_slp_instance): Likewise.
4450         (vect_build_slp_tree): Limit overall SLP tree growth.
4451         * tree-vectorizer.h (vect_analyze_data_refs,
4452         vect_analyze_slp): Adjust prototypes.
4454 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
4456         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
4457         Silvermont.
4459 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
4461         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
4462         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
4463         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
4464         for TARGET_SLOW_PSHUFB
4466 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
4468         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
4469         * config/i386/i386.c (intel_cost): Ditto.
4471 2014-04-17  Joey Ye  <joey.ye@arm.com>
4473         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4475 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
4477         * opts.c (common_handle_option): Disable -fipa-reference coorectly
4478         with -fuse-profile.
4480 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
4482         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
4483         (type_all_derivations_known_p): New predicate.
4484         (type_all_ctors_visible_p): New predicate.
4485         (type_possibly_instantiated_p): New predicate.
4486         (get_odr_type): Compute all_derivations_known.
4487         (dump_odr_type): Dump the flag.
4488         (maybe_record_type): Cleanup.
4489         (record_target_from_binfo): Add bases_to_consider array;
4490         record bases for types w/o instances and skip CXX destructor.
4491         (possible_polymorphic_call_targets_1): Add bases_to_consider
4492         and consider_construction parameters; check if type may have instance.
4493         (get_polymorphic_call_info): Set maybe_in_construction to true
4494         when we know nothing.
4495         (record_targets_from_bases): Skip CXX destructors; they are
4496         never called for types in construction.
4497         (possible_polymorphic_call_targets): Do not record target when
4498         type may not have instance.
4500 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
4502         PR ipa/60854
4503         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4504         external aliases alive, too.
4506 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
4508         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
4509         definition.
4511 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
4513         * final.c (compute_alignments): Do not apply loop alignment to a block
4514         falling through to the exit.
4516 2014-04-16  Catherine Moore  <clm@codesourcery.com>
4518         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
4519         Adjust constraints for microMIPS store patterns.
4521 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
4523         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4525 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
4527         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
4528         (append_use): Run at -O0.
4529         (append_vdef): Likewise.
4530         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
4531         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
4533 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
4535         PR tree-optimization/60844
4536         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
4537         (propagate_op_to_single_use, remove_visited_stmt_chain,
4538         linearize_expr, repropagate_negates, reassociate_bb): Use it
4539         instead of gsi_remove.
4541 2014-04-16  Martin Jambor  <mjambor@suse.cz>
4543         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
4544         ipa_transforms_to_apply.
4545         (cgraph_function_versioning): Assert that old_node has empty
4546         ipa_transforms_to_apply.
4547         * trans-mem.c (ipa_tm_create_version): Likewise.
4548         * tree-inline.c (tree_function_versioning): Do not duplicate
4549         ipa_transforms_to_apply.
4551 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4553         PR target/60817
4554         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
4555         x86_64-*-* cases.
4556         Pass necessary as flags on 64-bit Solaris/x86.
4557         Use lowercase relocs for x86_64-*-*.
4558         * configure: Regenerate.
4560 2014-04-15  Jan Hubicka  <jh@suse.cz>
4562         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
4563         (maybe_record_node, likely_target_p): Use it.
4565 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4567         PR target/60839
4568         Revert following patch
4570         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4572         PR target/60735
4573         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4574         software floating point or no floating point registers, do not
4575         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
4576         in GPRs that occurs after we tested for GPRs that would never be
4577         true.
4579         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4580         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4581         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
4582         specifically allow DDmode, since that does not use the SPE SIMD
4583         instructions.
4585 2014-03-21  Mark Wielaard  <mjw@redhat.com>
4587         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
4588         as unsigned or int depending on type and value used.
4590 2014-04-15  Richard Biener  <rguenther@suse.de>
4592         PR rtl-optimization/56965
4593         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
4594         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
4595         ... here.
4596         * alias.c (true_dependence_1): Do not call
4597         nonoverlapping_component_refs_p.
4598         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
4599         nonoverlapping_component_refs_p.
4600         (indirect_refs_may_alias_p): Likewise.
4602 2014-04-15  Teresa Johnson  <tejohnson@google.com>
4604         * cfg.c (dump_bb_info): Fix flags check.
4605         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
4607 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4609         PR rtl-optimization/60663
4610         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
4611         avoid 0 cost.
4613 2014-04-15  Richard Biener  <rguenther@suse.de>
4615         * lto-streamer.h (LTO_major_version): Bump to 4.
4617 2014-04-15  Richard Biener  <rguenther@suse.de>
4619         * common.opt (lto_partition_model): New enum.
4620         (flto-partition=): Merge separate options with a single with argument,
4621         add -flto-partition=one support.
4622         * flag-types.h (enum lto_partition_model): Declare.
4623         * opts.c (finish_options): Remove duplicate -flto-partition=
4624         option check.
4625         * lto-wrapper.c (run_gcc): Adjust.
4627 2014-04-15  Richard Biener  <rguenther@suse.de>
4629         * alias.c (ncr_compar): New function.
4630         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
4632 2014-04-15  Richard Biener  <rguenther@suse.de>
4634         * alias.c (record_component_aliases): Do not walk BINFOs.
4636 2014-04-15  Richard Biener  <rguenther@suse.de>
4638         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4639         Add struct function argument and adjust.
4640         (find_func_aliases_for_call): Likewise.
4641         (find_func_aliases): Likewise.
4642         (find_func_clobbers): Likewise.
4643         (intra_create_variable_infos): Likewise.
4644         (compute_points_to_sets): Likewise.
4645         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
4647 2014-04-15  Richard Biener  <rguenther@suse.de>
4649         * tree.c (iterative_hash_expr): Use enum tree_code_class
4650         to store TREE_CODE_CLASS.
4651         (tree_block): Likewise.
4652         (tree_set_block): Likewise.
4653         * tree.h (fold_build_pointer_plus_loc): Use
4654         convert_to_ptrofftype_loc.
4656 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
4658         PR plugins/59335
4659         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
4660         added in 4.9.
4662 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4664         * cfgloop.h (struct loop): Move force_vectorize down.
4665         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
4666         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
4667         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
4668         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
4669         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
4670         * tree-core.h (enum annot_expr_kind): Add new kind values.
4671         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
4672         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
4673         kinds.
4674         * tree.def (ANNOTATE_EXPR): Tweak comment.
4676 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
4678         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
4679         cxa_pure_virtual).
4681 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
4683         * tree.h (TYPE_IDENTIFIER): Declare.
4684         * tree.c (subrange_type_for_debug_p): Use it.
4685         * godump.c (go_format_type): Likewise.
4686         * dwarf2out.c (is_cxx_auto, modified_type_die,
4687         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
4688         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
4690 2014-04-14  Jan Hubicka   <hubicka@ucw.cz>
4692         PR lto/60820
4693         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4695 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
4697         * config/i386/i386.c (examine_argument): Return bool.  Return true if
4698         parameter should be passed in memory.
4699         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
4700         (construct_container): Update calls to examine_argument.
4701         (function_arg_advance_64): Ditto.
4702         (return_in_memory_32): Merge with ix86_return_in_memory.
4703         (return_in_memory_64): Ditto.
4704         (return_in_memory_ms_64): Ditto.
4706 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
4708         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
4709         * coverage.c (coverage_compute_profile_id): Handle externally visible
4710         symbols.
4712 2014-04-14  Martin Jambor  <mjambor@suse.cz>
4714         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
4715         DECL_DISREGARD_INLINE_LIMITS functions.
4717 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4719         PR target/60827
4720         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
4722 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4724         PR target/60827
4725         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
4726         optimize_insn_for_speed_p instead of
4727         optimize_function_for_speed_p.
4729 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
4731         * doc/invoke.texi (free): Document AArch64.
4733 2014-04-14  Richard Biener  <rguenther@suse.de>
4735         PR tree-optimization/60042
4736         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
4737         (insert_into_preds_of_block): Do not prevent PHI insertion
4738         for REFERENCE exprs here ...
4739         (eliminate_dom_walker::before_dom_children): ... but prevent
4740         their use here under similar conditions when applied to the
4741         IL after PRE optimizations.
4743 2014-04-14  Richard Biener  <rguenther@suse.de>
4745         * passes.def: Move early points-to after early SRA.
4747 2014-04-14  Richard Biener  <rguenther@suse.de>
4749         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
4750         check for which sign-changes we allow when forwarding
4751         a converted value into a switch.
4753 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
4755         * stor-layout.c (place_field): Finalize non-constant offset for the
4756         field, if any.
4758 2014-04-14  Richard Biener  <rguenther@suse.de>
4760         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
4761         as argument.
4762         (expand_switch_using_bit_tests_p): Likewise.
4763         (process_switch): Compute and pass on speed_p based on the
4764         switch stmt.
4765         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
4766         optimize_bb_for_speed_p.
4768 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
4770         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
4771         * function.h (struct function): Rename has_force_vect_loops into
4772         has_force_vectorize_loops.
4773         * lto-streamer-in.c (input_cfg): Adjust for renaming.
4774         (input_struct_function_base): Likewise.
4775         * lto-streamer-out.c (output_cfg): Likewise.
4776         (output_struct_function_base): Likewise.
4777         * omp-low.c (expand_omp_simd): Likewise.
4778         * tree-cfg.c (move_sese_region_to_fn): Likewise.
4779         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
4780         (version_loop_for_if_conversion): Likewise.
4781         (tree_if_conversion): Likewise.
4782         (main_tree_if_conversion): Likewise.
4783         (gate_tree_if_conversion): Likewise.
4784         * tree-inline.c (copy_loops): Likewise.
4785         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
4786         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
4787         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4788         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
4789         * tree-vectorizer.c (vectorize_loops): Likewise.
4790         * tree-vectorizer.h (unlimited_cost_model): Likewise.
4792 2014-04-14  Richard Biener  <rguenther@suse.de>
4794         PR lto/60720
4795         * lto-streamer-out.c (wrap_refs): New function.
4796         (lto_output): Wrap symbol references in global initializes in
4797         type-preserving MEM_REFs.
4799 2014-04-14  Christian Bruel  <christian.bruel@st.com>
4801         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
4803 2014-04-14  Christian Bruel  <christian.bruel@st.com>
4805         * config/sh/sh.md (setmemqi): New expand pattern.
4806         * config/sh/sh.h (CLEAR_RATIO): Define.
4807         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
4808         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
4810 2014-04-14  Richard Biener  <rguenther@suse.de>
4812         PR middle-end/55022
4813         * fold-const.c (negate_expr_p): Don't negate directional rounding
4814         division.
4815         (fold_negate_expr): Likewise.
4817 2014-04-14  Richard Biener  <rguenther@suse.de>
4819         PR tree-optimization/59817
4820         PR tree-optimization/60453
4821         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4822         recursion to catch all CHRECs in the scalar evolution and restrict
4823         the predicate for the remains appropriately.
4825 2014-04-12  Catherine Moore  <clm@codesourcery.com>
4827         * config/mips/constraints.md: Add new register constraint "kb".
4828         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
4829         (*movhi_internal): Likewise.
4830         (*movqi_internal): Likewise.
4831         * config/mips/mips.h (M16_STORE_REGS): New register class.
4832         (REG_CLASS_NAMES): Add M16_STORE_REGS.
4833         (REG_CLASS_CONTENTS): Likewise.
4834         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
4836 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4838         PR c/60194
4839         * doc/invoke.texi (-Wformat-signedness): Document it.
4840         (Wformat=2): Mention that this enables -Wformat-signedness.
4842 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4844         * common/config/epiphany/epiphany-common.c
4845         (epiphany_option_optimization_table): Enable section anchors by
4846         default at -O1 or higher.
4847         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
4848         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
4849         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
4850         carries no extra cost.
4851         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
4852         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
4853         * config/epiphany/predicates.md (memclob_operand): New predicate.
4854         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
4855         Use memclob_operand predicate and X constraint for operand 3.
4857 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4859         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
4860         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
4861         its operands.
4863 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4865         PR rtl-optimization/60651
4866         * mode-switching.c (optimize_mode_switching): Make sure to emit
4867         sets of a lower numbered entity before sets of a higher numbered
4868         entity to a mode of the same or lower priority.
4869         When creating a seginfo for a basic block that starts with a code
4870         label, move the insertion point past the code label.
4871         (new_seginfo): Document and enforce requirement that
4872         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
4873         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
4874         * doc/tm.texi: Regenerate.
4876 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4878         PR target/60811
4879         * config/arc/arc.c (arc_save_restore): Fix assert typo.
4881 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
4883         * BASE-VER: Set to 4.10.0.
4885 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4887         PR other/59055
4888         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4889         * doc/gcc.texi (Service): Update description in the @menu
4890         * doc/invoke.texi (Option Summary): Remove misplaced and
4891         duplicated @menu.
4893 2014-04-11  Steve Ellcey  <sellcey@mips.com>
4894             Jakub Jelinek  <jakub@redhat.com>
4896         PR middle-end/60556
4897         * expr.c (convert_move): Use emit_store_flag_force instead of
4898         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
4899         argument to it.
4901 2014-04-11  Richard Biener  <rguenther@suse.de>
4903         PR middle-end/60797
4904         * varasm.c (assemble_alias): Avoid endless error reporting
4905         recursion by setting TREE_ASM_WRITTEN.
4907 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4909         * config/s390/s390.md: Add a splitter for NOT rtx.
4911 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
4913         PR rtl-optimization/60663
4914         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4916 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
4917             Jakub Jelinek  <jakub@redhat.com>
4919         PR lto/60567
4920         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4921         flag from decl_node to node.
4923 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4925         PR debug/60655
4926         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4927         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4928         ameliorating the cases where it can be.
4930 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
4932         Revert
4933         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4935         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4936         (loadsync_<mode>): Change mode.
4937         (load_quadpti, store_quadpti): New.
4938         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4939         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4940         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4942 2014-04-09  Cong Hou  <congh@google.com>
4944         PR testsuite/60773
4945         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4946         documentation.
4948 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4950         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4951         instead of vnor to exploit possible fusion opportunity in the
4952         future.
4953         (altivec_expand_vec_perm_const_le): Likewise.
4955 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
4957         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4958         (loadsync_<mode>): Change mode.
4959         (load_quadpti, store_quadpti): New.
4960         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4961         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4963 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
4965         PR target/60763
4966         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4967         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4968         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4970 2014-04-08  Richard Biener  <rguenther@suse.de>
4972         PR middle-end/60706
4973         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4974         a 64bit widest int print double-int similar to on HWI64 hosts.
4976 2014-04-08  Richard Biener  <rguenther@suse.de>
4978         PR tree-optimization/60785
4979         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4980         default defs properly.
4982 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
4984         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4985         (Weffc++): Likewise.
4987 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
4989         * ipa-devirt.c (maybe_record_node): When node is not recorded,
4990         set completep to false rather than true.
4992 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
4994         PR target/60504
4995         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4996         ARM_TARGET2_DWARF_FORMAT.
4998 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
5000         PR target/60609
5001         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
5002         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
5003         ADDR_DIFF_VEC.
5005 2014-04-07  Richard Biener  <rguenther@suse.de>
5007         PR tree-optimization/60766
5008         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
5009         (may_eliminate_iv): Convert cand_value_at result to desired type.
5011 2014-04-07  Jason Merrill  <jason@redhat.com>
5013         PR c++/60731
5014         * common.opt (-fno-gnu-unique): Add.
5015         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
5017 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5019         * haifa-sched.c: Fix outdated function reference and minor
5020         grammar errors in introductory comment.
5022 2014-04-07  Richard Biener  <rguenther@suse.de>
5024         PR middle-end/60750
5025         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
5026         for noreturn calls.
5027         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
5029 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
5031         PR debug/55794
5032         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
5033         size accounting for thunks.
5034         (pa_asm_output_mi_thunk): Use final_start_function() and
5035         final_end_function() to output function start and end directives.
5037 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
5039         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
5040         device specific ISA/ feature information. Remove short_sp and
5041         errata_skip ds.  Add avr_device_specific_features enum to have device
5042         specific info.
5043         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
5044         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
5045         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
5046         updated device specific info.
5047         * config/avr/avr-mcus.def: Merge device specific details to
5048         dev_attribute field.
5049         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
5050         errata_skip.
5051         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
5052         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
5053         assembler if RMW isa supported by current device.
5054         * config/avr/genmultilib.awk: Update as device info structure changed.
5055         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
5057 2014-04-04  Cong Hou  <congh@google.com>
5059         PR tree-optimization/60656
5060         * tree-vect-stmts.c (supportable_widening_operation):
5061         Fix a bug that elements in a vector with vect_used_by_reduction
5062         property are incorrectly reordered when the operation on it is not
5063         consistant with the one in reduction operation.
5065 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
5067         PR rtl-optimization/60155
5068         * gcse.c (record_set_data): New function.
5069         (single_set_gcse): New function.
5070         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
5071         (hoist_code): Likewise.
5072         (get_pressure_class_and_nregs): Likewise.
5074 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
5076         * explow.c (probe_stack_range): Emit a final optimization blockage.
5078 2014-04-04  Anthony Green  <green@moxielogic.com>
5080         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
5081         typos.
5083 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
5085         PR ipa/59626
5086         * lto-cgraph.c (input_overwrite_node): Check that partitioning
5087         flags are set only during streaming.
5088         * ipa.c (process_references, walk_polymorphic_call_targets,
5089         symtab_remove_unreachable_nodes): Drop bodies of always inline
5090         after early inlining.
5091         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5093 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
5094         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5096         PR debug/60655
5097         * dwarf2out.c (const_ok_for_output_1): Reject expressions
5098         containing a NOT.
5100 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5102         PR bootstrap/60743
5103         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5104         duration.
5105         (cortex_a53_fdivd): Likewise.
5107 2014-04-04  Martin Jambor  <mjambor@suse.cz>
5109         PR ipa/60640
5110         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5111         Adjust all callers.
5112         * cgraph.c (clone_of_p): Also return true if thunks match.
5113         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5114         cgraph_function_or_thunk_node and an obsolete comment.
5115         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5116         file.
5117         (build_function_decl_skip_args): Likewise.
5118         (set_new_clone_decl_and_node_flags): New function.
5119         (duplicate_thunk_for_node): Likewise.
5120         (redirect_edge_duplicating_thunks): Likewise.
5121         (cgraph_clone_node): New parameter args_to_skip, pass it to
5122         redirect_edge_duplicating_thunks which is called instead of
5123         cgraph_redirect_edge_callee.
5124         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5125         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5127 2014-04-04  Jeff Law  <law@redhat.com>
5129         PR target/60657
5130         * config/arm/predicates.md (const_int_I_operand): New predicate.
5131         (const_int_M_operand): Similarly.
5132         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5133         const_int_operand.
5134         (insv_t2, extv_reg, extzv_t2): Likewise.
5135         (load_multiple_with_writeback): Similarly for const_int_I_operand.
5136         (pop_multiple_with_writeback_and_return): Likewise.
5137         (vfp_pop_multiple_with_writeback): Likewise
5139 2014-04-04  Richard Biener  <rguenther@suse.de>
5141         PR ipa/60746
5142         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5143         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5144         non-GIMPLE_LABELs.
5145         * gimplify.h (gimple_add_tmp_var_fn): Declare.
5146         * gimplify.c (gimple_add_tmp_var_fn): New function.
5147         * gimple-expr.h (create_tmp_reg_fn): Declare.
5148         * gimple-expr.c (create_tmp_reg_fn): New function.
5149         * gimple-low.c (record_vars_into): Don't change cfun.
5150         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5151         code generation without cfun.
5153 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
5155         PR bootstrap/60719
5156         * Makefile.in (install-driver): Fix shell scripting.
5158 2014-04-03  Cong Hou  <congh@google.com>
5160         PR tree-optimization/60505
5161         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5162         threshold of number of iterations below which no vectorization
5163         will be done.
5164         * tree-vect-loop.c (new_loop_vec_info):
5165         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5166         * tree-vect-loop.c (vect_analyze_loop_operations):
5167         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5168         * tree-vect-loop.c (vect_transform_loop):
5169         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5170         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5171         of iterations of the loop and see if we should build the epilogue.
5173 2014-04-03  Richard Biener  <rguenther@suse.de>
5175         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5176         (streamer_tree_cache_create): Adjust.
5177         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5178         to allow optional nodes array.
5179         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5180         (streamer_tree_cache_append): Likewise.
5181         (streamer_tree_cache_create): Create nodes array optionally
5182         as specified by parameter.
5183         * lto-streamer-out.c (create_output_block): Avoid maintaining
5184         the node array in the writer cache.
5185         (DFS_write_tree): Remove assertion.
5186         (produce_asm_for_decls): Free the out decl state hash table early.
5187         * lto-streamer-in.c (lto_data_in_create): Adjust for
5188         streamer_tree_cache_create prototype change.
5190 2014-04-03  Richard Biener  <rguenther@suse.de>
5192         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5193         set TREE_CHAIN to NULL_TREE.
5195 2014-04-03  Richard Biener  <rguenther@suse.de>
5197         PR tree-optimization/60740
5198         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5199         over all GIMPLE_COND operands.
5201 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
5203         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5204         (Weffc++): Remove Scott's numbering, merge lists and reference
5205         Wnon-virtual-dtor.
5207 2014-04-03  Nick Clifton  <nickc@redhat.com>
5209         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5210         properly.
5212 2014-04-03  Martin Jambor  <mjambor@suse.cz>
5214         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5215         mention gcc_unreachable before failing.
5216         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5217         removed symbols.
5219 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
5221         PR ipa/60659
5222         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5223         inconsistent code and instead mark the context inconsistent.
5224         (possible_polymorphic_call_targets): For inconsistent contexts
5225         return empty complete list.
5227 2014-04-02  Anthony Green  <green@moxielogic.com>
5229         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5230         (extendqisi2, extendhisi2): Define.
5231         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5232         (WCHAR_TYPE): Change to unsigned int.
5234 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5236         PR tree-optimization/60733
5237         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5238         insertion point for PHI candidates to be the end of the feeding
5239         block for the PHI argument.
5241 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5243         PR rtl-optimization/60650
5244         * lra-constraints.c (process_alt_operands): Decrease reject for
5245         earlyclobber matching.
5247 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5249         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5251 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5253         * config/spu/spu.c (pad_bb): Do not crash when the last
5254         insn is CODE_FOR_blockage.
5256 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5258         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5259         lies outside the target mode.
5261 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5263         PR target/60735
5264         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5265         software floating point or no floating point registers, do not
5266         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
5267         in GPRs that occurs after we tested for GPRs that would never be
5268         true.
5270         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5271         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5272         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
5273         specifically allow DDmode, since that does not use the SPE SIMD
5274         instructions.
5276 2014-04-02  Richard Biener  <rguenther@suse.de>
5278         PR middle-end/60729
5279         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5280         MODE_INTs.  Properly use negv_optab.
5281         (expand_abs): Likewise.
5283 2014-04-02  Richard Biener  <rguenther@suse.de>
5285         PR bootstrap/60719
5286         * Makefile.in (install-driver): Guard extra installs with special
5287         names properly.
5289 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5291         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5292         Document vec_vgbbd.
5294 2014-04-01  Richard Henderson  <rth@redhat.com>
5296         PR target/60704
5297         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5298         alternative enabled before register allocation.
5300 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
5302         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5303         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5304         typo.
5305         (nios2_large_got_address): Remove unneeded 'sym' parameter.
5306         (nios2_got_address): Update nios2_large_got_address call site.
5307         (nios2_delegitimize_address): New function.
5308         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5309         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5310         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5312 2014-04-01  Martin Husemann  <martin@duskware.de>
5314         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5315         for -mabi=32.
5317 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
5319         PR rtl-optimization/60604
5320         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5321         check from register_operand.
5322         (register_operand): Redefine in terms of general_operand.
5323         (nonmemory_operand): Use register_operand for the non-constant cases.
5325 2014-04-01  Richard Biener  <rguenther@suse.de>
5327         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5329 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5331         * doc/invoke.texi (mapp-regs): Clarify.
5333 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
5335         * config/i386/avx512fintrin.h (__v32hi): Define type.
5336         (__v64qi): Likewise.
5337         (_mm512_set1_epi8): Define.
5338         (_mm512_set1_epi16): Define.
5339         (_mm512_set4_epi32): Define.
5340         (_mm512_set4_epi64): Define.
5341         (_mm512_set4_pd): Define.
5342         (_mm512_set4_ps): Define.
5343         (_mm512_setr4_epi64): Define.
5344         (_mm512_setr4_epi32): Define.
5345         (_mm512_setr4_pd): Define.
5346         (_mm512_setr4_ps): Define.
5347         (_mm512_setzero_epi32): Define.
5349 2014-03-31  Martin Jambor  <mjambor@suse.cz>
5351         PR middle-end/60647
5352         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5353         callsite_arguments_match_p.  Updated all callers.  Also check types of
5354         corresponding formal parameters and actual arguments.
5355         (not_all_callers_have_enough_arguments_p) Renamed to
5356         some_callers_have_mismatched_arguments_p.
5358 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
5360         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5362 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
5364         PR target/60034
5365         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5366         section anchor.
5368 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
5370         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5371         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5372         Split out
5373         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5374         Use FMAMODE_NOVF512 mode iterator.
5375         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5376         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5377         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5378         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5379         Split out
5380         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5381         Use VF_128_256 mode iterator.
5382         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5383         Ditto.
5385 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5387         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5388         static chain if needed.
5390 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5392         PR target/60697
5393         * lra-constraints.c (index_part_to_reg): New.
5394         (process_address): Use it.
5396 2014-03-27  Jeff Law  <law@redhat.com>
5397             Jakub Jelinek  <jakub@redhat.com>
5399         PR target/60648
5400         * expr.c (do_tablejump): Use simplify_gen_binary rather than
5401         gen_rtx_{PLUS,MULT} to build up the address expression.
5403         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
5404         creating non-canonical RTL.
5406 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5408         PR ipa/60243
5409         * ipa-inline.c (want_inline_small_function_p): Short circuit large
5410         functions; reorganize to make cheap checks first.
5411         (inline_small_functions): Do not estimate growth when dumping;
5412         it is expensive.
5413         * ipa-inline.h (inline_summary): Add min_size.
5414         (growth_likely_positive): New function.
5415         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
5416         (set_cond_stmt_execution_predicate): Cleanup.
5417         (estimate_edge_size_and_time): Compute min_size.
5418         (estimate_calls_size_and_time): Likewise.
5419         (estimate_node_size_and_time): Likewise.
5420         (inline_update_overall_summary): Update min_size.
5421         (do_estimate_edge_time): Likewise.
5422         (do_estimate_edge_size): Update.
5423         (do_estimate_edge_hints): Update.
5424         (growth_likely_positive): New function.
5426 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
5428         PR target/60693
5429         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
5430         also if addr has VOIDmode.
5432 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5434         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
5435         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5436         Declare extern.
5437         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
5438         instructions as well as AdvancedSIMD loads.
5440 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5442         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
5443         Use crypto_aese type.
5444         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
5445         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
5446         crypto_aese, crypto_aesmc.  Move to types.md.
5447         * config/arm/types.md (crypto_aes): Split into crypto_aese,
5448         crypto_aesmc.
5449         * config/arm/iterators.md (crypto_type): Likewise.
5451 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
5453         * cgraph.c: Include expr.h and tree-dfa.h.
5454         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
5455         remove LHS.
5457 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5459         PR target/60675
5460         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
5461         regs from checking multi-reg pseudos.
5463 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5465         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
5467 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5469         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
5470         if it would clobber the stack pointer, even temporarily.
5472 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
5474         * mode-switching.c: Make small adjustments to the top comment.
5476 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5478         * config/rs6000/constraints.md (wD constraint): New constraint to
5479         match the constant integer to get the top DImode/DFmode out of a
5480         vector in a VSX register.
5482         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
5483         match the constant integer to get the top DImode/DFmode out of a
5484         vector in a VSX register.
5486         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
5487         for ISA 2.07.
5489         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5490         vbpermq builtins.
5492         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
5493         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
5495         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
5496         Optimize vec_extract of 64-bit values, where the value being
5497         extracted is in the top word, where we can use scalar
5498         instructions.  Add direct move and store support.  Combine the big
5499         endian/little endian vector select load support into a single insn.
5500         (vsx_extract_<mode>_internal1): Likewise.
5501         (vsx_extract_<mode>_internal2): Likewise.
5502         (vsx_extract_<mode>_load): Likewise.
5503         (vsx_extract_<mode>_store): Likewise.
5504         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
5505         combined into vsx_extract_<mode>_load.
5506         (vsx_extract_<mode>_one_le): Likewise.
5508         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
5509         define the top 64-bit vector element.
5511         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
5512         constraint.
5514         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5515         Document vec_vbpermq builtin.
5517         PR target/60672
5518         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
5519         enable use of xxsldwi and xxpermdi builtin functions.
5520         (vec_xxpermdi): Likewise.
5522         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5523         Document use of vec_xxsldwi and vec_xxpermdi builtins.
5525 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5527         PR rtl-optimization/60650
5528         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
5529         first_p.  Use it.
5530         (find_spills_for): New.
5531         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
5532         Spill all pseudos on the second iteration.
5534 2014-03-27  Marek Polacek  <polacek@redhat.com>
5536         PR c/50347
5537         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
5538         types.
5540 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5542         * config/s390/s390.c (s390_can_use_return_insn): Check for
5543         call-saved FPRs on 31 bit.
5545 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
5547         PR middle-end/60682
5548         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
5549         if they need regimplification, just drop them instead of
5550         calling gimple_regimplify_operands on them.
5552 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5554         PR target/60580
5555         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
5556         (aarch64_frame_pointer_required): Adjust logic.
5557         (aarch64_can_eliminate): Adjust logic.
5558         (aarch64_override_options_after_change): Adjust logic.
5560 2014-03-27  Dehao Chen  <dehao@google.com>
5562         * ipa-inline.c (early_inliner): Update node's inline info.
5564 2014-03-26  Dehao Chen  <dehao@google.com>
5566         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
5567         compiler inserted conditional jumps for NAN float check.
5569 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
5571         * ubsan.h (ubsan_create_data): Change second argument's type
5572         to const location_t *.
5573         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
5574         _("<unknown>").
5575         (ubsan_create_data): Change second argument to const location_t *PLOC.
5576         Create Loc field whenever PLOC is non-NULL.
5577         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
5578         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
5579         callers.
5581         PR other/59545
5582         * real.c (real_to_integer2): Change type of low to UHWI.
5584 2014-03-26  Tobias Burnus  <burnus@net-b.de>
5586         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
5587         (CILK_SELF_SPECS): New define.
5588         (driver_self_specs): Use it.
5590 2014-03-26  Richard Biener  <rguenther@suse.de>
5592         * tree-pretty-print.c (percent_K_format): Implement special
5593         case for LTO and its stripped down BLOCK tree.
5595 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
5597         PR sanitizer/60636
5598         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
5600         * tree-vrp.c (simplify_internal_call_using_ranges): If only
5601         one range is range_int_cst_p, but not both, at least optimize
5602         addition/subtraction of 0 and multiplication by 0 or 1.
5603         * gimple-fold.c (gimple_fold_call): Fold
5604         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
5605         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
5606         INTEGER_CSTs, try to fold at least x * 0 and y - y.
5608 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5610         PR rtl-optimization/60452
5611         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
5612         <case REG>: Return 1 for invalid offsets from the frame pointer.
5614 2014-03-26  Marek Polacek  <polacek@redhat.com>
5616         PR c/37428
5617         * doc/extend.texi (C Extensions): Mention variable-length arrays in
5618         a structure/union.
5620 2014-03-26  Marek Polacek  <polacek@redhat.com>
5622         PR c/39525
5623         * doc/extend.texi (Designated Inits): Describe what happens to omitted
5624         field members.
5626 2014-03-26  Marek Polacek  <polacek@redhat.com>
5628         PR other/59545
5629         * ira-color.c (update_conflict_hard_regno_costs): Perform the
5630         multiplication in unsigned type.
5632 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
5634         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
5636 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
5638         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
5640 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
5642         PR ipa/60315
5643         * cif-code.def (UNREACHABLE) New code.
5644         * ipa-inline.c (inline_small_functions): Skip edges to
5645         __builtlin_unreachable.
5646         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
5647         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
5648         predicate to __bulitin_unreachable.
5649         (set_cond_stmt_execution_predicate): Fix issue when
5650         invert_tree_comparison returns ERROR_MARK.
5651         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
5652         propagate to inline clones.
5653         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
5654         to unreachable.
5655         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
5656         * cgraphclones.c (cgraph_clone_node): If call destination is already
5657         ureachable, do not redirect it back.
5658         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
5659         unreachable.
5661 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
5663         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
5664         Do not modify inline clones.
5666 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
5668         * config/i386/i386.md (general_sext_operand): New mode attr.
5669         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
5670         don't generate (sign_extend (const_int)).
5671         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
5672         operands[2].  Use We constraint instead of <i> and
5673         <general_sext_operand> predicate instead of <general_operand>.
5674         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
5675         * config/i386/constraints.md (We): New constraint.
5676         * config/i386/predicates.md (x86_64_sext_operand,
5677         sext_operand): New predicates.
5679 2014-03-25  Martin Jambor  <mjambor@suse.cz>
5681         PR ipa/60600
5682         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
5683         inconsistent devirtualizations to __builtin_unreachable.
5685 2014-03-25  Marek Polacek  <polacek@redhat.com>
5687         PR c/35449
5688         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
5690 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
5692         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
5693         order of elements for big-endian.
5695 2014-03-25  Richard Biener  <rguenther@suse.de>
5697         PR middle-end/60635
5698         * gimplify-me.c (gimple_regimplify_operands): Update the
5699         re-gimplifed stmt.
5701 2014-03-25  Martin Jambor  <mjambor@suse.cz>
5703         PR ipa/59176
5704         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
5705         (lto_output_varpool_node): Likewise.
5706         (input_overwrite_node): Likewise.
5707         (input_varpool_node): Likewise.
5709 2014-03-25  Richard Biener  <rguenther@suse.de>
5711         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
5712         (run_gcc): Likewise.
5714 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
5716         * combine.c (simplify_compare_const): Add MODE argument.
5717         Handle mode_width 0 as very large mode_width.
5718         (try_combine, simplify_comparison): Adjust callers.
5720         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
5721         type to avoid signed integer overflow.
5722         * explow.c (plus_constant): Likewise.
5724 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5726         * doc/generic.texi: Correct typos.
5728 2014-03-24  Tobias Burnus  <burnus@net-b.de>
5730         * doc/invoke.texi (-flto): Expand section about
5731         using static libraries with LTO.
5733 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5735         PR rtl-optimization/60501
5736         * optabs.def (addptr3_optab): New optab.
5737         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5738         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5739         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5741         * lra.c (emit_add3_insn): Use the addptr pattern if available.
5743         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5745 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
5747         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5748         _mm512_set1_pd.
5750         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5751         (_mm256_undefined_ps): Define.
5752         (_mm256_undefined_pd): Define.
5753         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5754         (_mm_undefined_pd): Define.
5755         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5756         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5757         (_mm512_undefined_ps): Define.
5758         (_mm512_undefined_pd): Define.
5759         Use _mm*_undefined_*.
5760         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5762 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
5764         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5765         (lshr_simd): DI mode added.
5766         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5767         (aarch64_ushr_simddi): Likewise.
5768         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5769         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5770         (vshrd_n_u64): Likewise.
5772 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5774         * Makefile.in (s-macro_list): Depend on cc1.
5776 2014-03-23  Teresa Johnson  <tejohnson@google.com>
5778         * ipa-utils.c (ipa_print_order): Use specified dump file.
5780 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
5782         PR rtl-optimization/60601
5783         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5785         * gcc.c (eval_spec_function): Initialize save_growing_value.
5787 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
5789         PR sanitizer/60613
5790         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5791         code == MINUS_EXPR, never swap op0 with op1.
5793         * toplev.c (init_local_tick): Avoid signed integer multiplication
5794         overflow.
5795         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5796         shift by first operand's bitsize.
5798 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
5800         PR target/60610
5801         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5802         redefine to 1 or 0.
5803         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5804         TARGET_ISA_64BIT_P(x).
5806 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5808         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5809         pattern for vector nor instead of subtract from splat(-1).
5810         (altivec_expand_vec_perm_const_le): Likewise.
5812 2014-03-21  Richard Henderson  <rth@twiddle.net>
5814         PR target/60598
5815         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5816         related insns after epilogue_completed.
5818 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5820         PR ipa/59176
5821         * cgraph.h (symtab_node): New flag body_removed.
5822         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5823         when removing bodies.
5824         * symtab.c (dump_symtab_base): Dump body_removed flag.
5825         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5826         had their bodies removed.
5828 2014-03-21  Martin Jambor  <mjambor@suse.cz>
5830         PR ipa/60419
5831         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5832         in the border.
5834 2014-03-21  Richard Biener  <rguenther@suse.de>
5836         PR tree-optimization/60577
5837         * tree-core.h (struct tree_base): Document nothrow_flag use
5838         in VAR_DECL_NONALIASED.
5839         * tree.h (VAR_DECL_NONALIASED): New.
5840         (may_be_aliased): Adjust.
5841         * coverage.c (build_var): Set VAR_DECL_NONALIASED.
5843 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5845         * expr.c (expand_expr_real_1): Remove outdated comment.
5847 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
5849         PR middle-end/60597
5850         * ira.c (adjust_cleared_regs): Call copy_rtx on
5851         *reg_equiv[REGNO (loc)].src_p before passing it to
5852         simplify_replace_fn_rtx.
5854         PR target/60568
5855         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5856         into CONST, put pic register as first operand of PLUS.  Use
5857         gen_const_mem for both 32-bit and 64-bit PIC got loads.
5859 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5861         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5863 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5865         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5866         around for store forwarding issue in the FPU on the UT699.
5867         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5868         loads and operations if -mfix-ut699 is specified.
5869         (divtf3_hq): Tweak attribute.
5870         (sqrttf2_hq): Likewise.
5872 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5874         * calls.c (store_one_arg): Remove incorrect const qualification on the
5875         type of the temporary.
5876         * cfgexpand.c (expand_return): Likewise.
5877         * expr.c (expand_constructor): Likewise.
5878         (expand_expr_real_1): Likewise.
5880 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5882         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5883         of parts.
5885 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5887         PR target/60039
5888         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5890 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
5892         * config/arm/aarch-common-protos.h
5893         (alu_cost_table): Fix spelling of "extend".
5894         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5896 2014-03-19  Richard Biener  <rguenther@suse.de>
5898         PR middle-end/60553
5899         * tree-core.h (tree_type_common): Re-order pointer members
5900         to reduce recursion depth during GC walks.
5902 2014-03-19  Marek Polacek  <polacek@redhat.com>
5904         PR sanitizer/60569
5905         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5906         before accessing it.
5908 2014-03-19  Richard Biener  <rguenther@suse.de>
5910         PR lto/59543
5911         * lto-streamer-in.c (input_function): In WPA stage do not drop
5912         debug stmts.
5914 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
5916         PR tree-optimization/60559
5917         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5918         with build_zero_cst assignment.
5920 2014-03-18  Kai Tietz  <ktietz@redhat.com>
5922         PR rtl-optimization/56356
5923         * sdbout.c (sdbout_parms): Verify that parms'
5924         incoming argument is valid.
5925         (sdbout_reg_parms): Likewise.
5927 2014-03-18  Richard Henderson  <rth@redhat.com>
5929         PR target/60562
5930         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5931         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
5932         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5934 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
5936         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5937         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5938         Italicize plugin event names in description.  Explain that
5939         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
5940         Remind that no GCC functions should be called after PLUGIN_FINISH.
5941         Explain what pragmas with expansion are.
5943 2014-03-18  Martin Liska  <mliska@suse.cz>
5945         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5946         gimple call statement is update.
5947         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5948         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5950 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5952         PR sanitizer/60557
5953         * ubsan.c (ubsan_instrument_unreachable): Call
5954         initialize_sanitizer_builtins.
5955         (ubsan_pass): Likewise.
5957         PR sanitizer/60535
5958         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5959         varpool_finalize_decl instead of rest_of_decl_compilation.
5961 2014-03-18  Richard Biener  <rguenther@suse.de>
5963         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5964         by using bitmap_and_compl instead of bitmap_and_compl_into.
5965         (df_rd_transfer_function): Likewise.
5967 2014-03-18  Richard Biener  <rguenther@suse.de>
5969         * doc/lto.texi (fresolution): Fix typo.
5971 2014-03-18  Richard Biener  <rguenther@suse.de>
5973         * doc/invoke.texi (flto): Update for changes in 4.9.
5975 2014-03-18  Richard Biener  <rguenther@suse.de>
5977         * doc/loop.texi: Remove section on the removed lambda framework.
5978         Update loop docs with recent changes in preserving loop structure.
5980 2014-03-18  Richard Biener  <rguenther@suse.de>
5982         * doc/lto.texi (-fresolution): Document.
5984 2014-03-18  Richard Biener  <rguenther@suse.de>
5986         * doc/contrib.texi: Adjust my name.
5988 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
5990         PR ipa/58721
5991         * internal-fn.c: Include diagnostic-core.h.
5992         (expand_BUILTIN_EXPECT): New function.
5993         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5994         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5995         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5996         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5997         IFN_BUILTIN_EXPECT.
5998         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5999         Revert 3 argument __builtin_expect code.
6000         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
6001         * gimple-fold.c (gimple_fold_call): Likewise.
6002         * tree.h (fold_builtin_expect): New prototype.
6003         * builtins.c (build_builtin_expect_predicate): Add predictor
6004         argument, if non-NULL, create 3 argument __builtin_expect.
6005         (fold_builtin_expect): No longer static.  Add ARG2 argument,
6006         pass it through to build_builtin_expect_predicate.
6007         (fold_builtin_2): Adjust caller.
6008         (fold_builtin_3): Handle BUILT_IN_EXPECT.
6009         * internal-fn.def (BUILTIN_EXPECT): New.
6011 2014-03-18  Tobias Burnus  <burnus@net-b.de>
6013         PR ipa/58721
6014         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
6015         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
6016         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
6018 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
6020         PR ipa/58721
6021         * predict.c (combine_predictions_for_bb): Fix up formatting.
6022         (expr_expected_value_1, expr_expected_value): Add predictor argument,
6023         fill what it points to if non-NULL.
6024         (tree_predict_by_opcode): Adjust caller, use the predictor.
6025         * predict.def (PRED_COMPARE_AND_SWAP): Add.
6027 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
6029         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
6030         proper constant for the store mode.
6032 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6034         * symtab.c (change_decl_assembler_name): Fix transparent alias
6035         chain construction.
6037 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
6039         * config/aarch64/aarch64.c: Correct the comments about the
6040         aarch64 stack layout.
6042 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
6044         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
6045         check for GF_OMP_FOR_KIND_FOR.
6047 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
6049         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
6050         ymm and zmm register names.
6052 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
6054         PR target/60516
6055         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
6056         note creation for the 2010-08-31 changes.
6058 2014-03-17  Marek Polacek  <polacek@redhat.com>
6060         PR middle-end/60534
6061         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
6062         as -fno-tree-loop-vectorize.
6063         (expand_omp_simd): Likewise.
6065 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6067         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
6068         (eligible_for_call_delay): New prototype.
6069         * config/sparc/sparc.c (tls_call_delay): Rename into...
6070         (eligible_for_call_delay): ...this.  Return false if the instruction
6071         cannot be put in the delay slot of a branch.
6072         (eligible_for_restore_insn): Simplify.
6073         (eligible_for_return_delay): Return false if the instruction cannot be
6074         put in the delay slot of a branch and simplify.
6075         (eligible_for_sibcall_delay): Return false if the instruction cannot be
6076         put in the delay slot of a branch.
6077         * config/sparc/sparc.md (fix_ut699): New attribute.
6078         (tls_call_delay): Delete.
6079         (in_call_delay): Reimplement.
6080         (eligible_for_sibcall_delay): Rename into...
6081         (in_sibcall_delay): ...this.
6082         (eligible_for_return_delay): Rename into...
6083         (in_return_delay): ...this.
6084         (in_branch_delay): Reimplement.
6085         (in_uncond_branch_delay): Delete.
6086         (in_annul_branch_delay): Delete.
6088 2014-03-14  Richard Henderson  <rth@redhat.com>
6090         PR target/60525
6091         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6092         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6093         (*floathi<X87MODEF>2_i387_with_temp): Remove.
6094         (floathi splitters): Remove.
6095         (float<SWI48x>xf2): New pattern.
6096         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
6097         code that tried to handle DImode for 32-bit, but which was excluded
6098         by the pattern's condition.  Drop allocation of stack temporary.
6099         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6100         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6101         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6102         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6103         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6104         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6105         (*float<SWI48><MODEF>2_sse_interunit): Remove.
6106         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6107         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6108         (*float<SWI48x><X87MODEF>2_i387): Remove.
6109         (all float _with_temp splitters): Remove.
6110         (*float<SWI48x><MODEF>2_i387): New pattern.
6111         (*float<SWI48><MODEF>2_sse): New pattern.
6112         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6113         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6115 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
6116             Marek Polacek  <polacek@redhat.com>
6118         PR middle-end/60484
6119         * common.opt (dump_base_name_prefixed): New Variable.
6120         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6121         if x_dump_base_name_prefixed is already set, set it at the end.
6123 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
6125         PR rtl-optimization/60508
6126         * lra-constraints.c (get_reload_reg): Add new parameter
6127         in_subreg_p.
6128         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6129         Pass the new parameter values.
6131 2014-03-14  Richard Biener  <rguenther@suse.de>
6133         * common.opt: Revert unintented changes from r205065.
6134         * opts.c: Likewise.
6136 2014-03-14  Richard Biener  <rguenther@suse.de>
6138         PR middle-end/60518
6139         * cfghooks.c (split_block): Properly adjust all loops the
6140         block was a latch of.
6142 2014-03-14  Martin Jambor  <mjambor@suse.cz>
6144         PR lto/60461
6145         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6146         and simplify it.
6148 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
6150         PR target/59396
6151         * config/avr/avr.c (avr_set_current_function): Pass function name
6152         through default_strip_name_encoding before sanity checking instead
6153         of skipping the first char of the assembler name.
6155 2014-03-13  Richard Henderson  <rth@redhat.com>
6157         PR debug/60438
6158         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6159         (ix86_force_to_memory, ix86_free_from_memory): Remove.
6160         * config/i386/i386-protos.h: Likewise.
6161         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6162         in the expander instead of a splitter.
6163         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6164         any possibility of requiring a memory.
6165         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6166         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6167         (fp branch splitters): Update for ix86_split_fp_branch.
6168         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6169         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6170         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6171         (*fop_<MODEF>_2_i387): Remove f/r alternative.
6172         (*fop_<MODEF>_3_i387): Likewise.
6173         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6174         (splitters for the fop_* register patterns): Remove.
6175         (fscalexf4_i387): Rename from *fscalexf4_i387.
6176         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6178 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6180         PR tree-optimization/59779
6181         * tree-dfa.c (get_ref_base_and_extent): Use double_int
6182         type for bitsize and maxsize instead of HOST_WIDE_INT.
6184 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
6186         PR rtl-optimization/57320
6187         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6188         the CFG after thread_prologue_and_epilogue_insns.
6190 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
6192         PR rtl-optimization/57189
6193         * lra-constraints.c (process_alt_operands): Disfavor spilling
6194         vector pseudos.
6196 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
6198         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6200 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
6202         PR tree-optimization/59025
6203         PR middle-end/60418
6204         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6205         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6207 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
6209         PR target/60486
6210         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6211         calls of avr_out_plus_1.
6213 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
6215         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6216         BB's single pred and update the father loop's latch info later.
6218 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6220         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6221         (VEC_M): Likewise.
6222         (VEC_N): Likewise.
6223         (VEC_R): Likewise.
6224         (VEC_base): Likewise.
6225         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6226         registers, we need to swap double words in little endian mode.
6228         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6229         to be a container mode for 128-bit integer operations added in ISA
6230         2.07.  Unlike TImode and PTImode, the preferred register set is
6231         the Altivec/VMX registers for the 128-bit operations.
6233         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6234         declarations.
6235         (rs6000_split_128bit_ok_p): Likewise.
6237         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6238         macros for creating ISA 2.07 normal and overloaded builtin
6239         functions with 3 arguments.
6240         (BU_P8V_OVERLOAD_3): Likewise.
6241         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6242         for use as overloaded functions.
6243         (VPERM_1TI_UNS): Likewise.
6244         (VSEL_1TI): Likewise.
6245         (VSEL_1TI_UNS): Likewise.
6246         (ST_INTERNAL_1ti): Likewise.
6247         (LD_INTERNAL_1ti): Likewise.
6248         (XXSEL_1TI): Likewise.
6249         (XXSEL_1TI_UNS): Likewise.
6250         (VPERM_1TI): Likewise.
6251         (VPERM_1TI_UNS): Likewise.
6252         (XXPERMDI_1TI): Likewise.
6253         (SET_1TI): Likewise.
6254         (LXVD2X_V1TI): Likewise.
6255         (STXVD2X_V1TI): Likewise.
6256         (VEC_INIT_V1TI): Likewise.
6257         (VEC_SET_V1TI): Likewise.
6258         (VEC_EXT_V1TI): Likewise.
6259         (EQV_V1TI): Likewise.
6260         (NAND_V1TI): Likewise.
6261         (ORC_V1TI): Likewise.
6262         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6263         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
6264         overloaded builtin.
6265         (VADDUQM): Likewise.
6266         (VSUBCUQ): Likewise.
6267         (VADDEUQM): Likewise.
6268         (VADDECUQ): Likewise.
6269         (VSUBEUQM): Likewise.
6270         (VSUBECUQ): Likewise.
6272         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6273         __int128_t and __uint128_t types.
6274         (__uint128_type): Likewise.
6275         (altivec_categorize_keyword): Add support for vector __int128_t,
6276         vector __uint128_t, vector __int128, and vector unsigned __int128
6277         as a container type for TImode operations that need to be done in
6278         VSX/Altivec registers.
6279         (rs6000_macro_to_expand): Likewise.
6280         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6281         to support 128-bit integer instructions vaddcuq, vadduqm,
6282         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6283         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6285         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6286         for V1TImode, and set up preferences to use VSX/Altivec registers.
6287         Setup VSX reload handlers.
6288         (rs6000_debug_reg_global): Likewise.
6289         (rs6000_init_hard_regno_mode_ok): Likewise.
6290         (rs6000_preferred_simd_mode): Likewise.
6291         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6292         (easy_altivec_constant): Likewise.
6293         (output_vec_const_move): Likewise.
6294         (rs6000_expand_vector_set): Convert V1TImode set and extract to
6295         simple move.
6296         (rs6000_expand_vector_extract): Likewise.
6297         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6298         addressing.
6299         (rs6000_const_vec): Add support for V1TImode.
6300         (rs6000_emit_le_vsx_load): Swap double words when loading or
6301         storing TImode/V1TImode.
6302         (rs6000_emit_le_vsx_store): Likewise.
6303         (rs6000_emit_le_vsx_move): Likewise.
6304         (rs6000_emit_move): Add support for V1TImode.
6305         (altivec_expand_ld_builtin): Likewise.
6306         (altivec_expand_st_builtin): Likewise.
6307         (altivec_expand_vec_init_builtin): Likewise.
6308         (altivec_expand_builtin): Likewise.
6309         (rs6000_init_builtins): Add support for V1TImode type.  Add
6310         support for ISA 2.07 128-bit integer builtins.  Define type names
6311         for the VSX/Altivec vector types.
6312         (altivec_init_builtins): Add support for overloaded vector
6313         functions with V1TImode type.
6314         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6315         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6316         external function.
6317         (rs6000_split_128bit_ok_p): Likewise.
6318         (rs6000_handle_altivec_attribute): Create V1TImode from vector
6319         __int128_t and vector __uint128_t.
6321         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6322         and mode attributes.
6323         (VSX_M): Likewise.
6324         (VSX_M2): Likewise.
6325         (VSm): Likewise.
6326         (VSs): Likewise.
6327         (VSr): Likewise.
6328         (VSv): Likewise.
6329         (VS_scalar): Likewise.
6330         (VS_double): Likewise.
6331         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6333         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6334         we support the ISA 2.07 128-bit integer arithmetic instructions.
6335         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6336         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6337         and TImode types for use with the builtin functions.
6338         (V1TI_type_node): Likewise.
6339         (unsigned_V1TI_type_node): Likewise.
6340         (intTI_type_internal_node): Likewise.
6341         (uintTI_type_internal_node): Likewise.
6343         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6344         128-bit builtin functions.
6345         (UNSPEC_VADDEUQM): Likewise.
6346         (UNSPEC_VADDECUQ): Likewise.
6347         (UNSPEC_VSUBCUQ): Likewise.
6348         (UNSPEC_VSUBEUQM): Likewise.
6349         (UNSPEC_VSUBECUQ): Likewise.
6350         (VM): Add V1TImode to vector mode iterators.
6351         (VM2): Likewise.
6352         (VI_unit): Likewise.
6353         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6354         (altivec_vaddcuq): Likewise.
6355         (altivec_vsubuqm): Likewise.
6356         (altivec_vsubcuq): Likewise.
6357         (altivec_vaddeuqm): Likewise.
6358         (altivec_vaddecuq): Likewise.
6359         (altivec_vsubeuqm): Likewise.
6360         (altivec_vsubecuq): Likewise.
6362         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6363         mode iterators.
6364         (BOOL_128): Likewise.
6365         (BOOL_REGS_OUTPUT): Likewise.
6366         (BOOL_REGS_OP1): Likewise.
6367         (BOOL_REGS_OP2): Likewise.
6368         (BOOL_REGS_UNARY): Likewise.
6369         (BOOL_REGS_AND_CR0): Likewise.
6371         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6372         128-bit integer builtin support.
6373         (vec_vadduqm): Likewise.
6374         (vec_vaddecuq): Likewise.
6375         (vec_vaddeuqm): Likewise.
6376         (vec_vsubecuq): Likewise.
6377         (vec_vsubeuqm): Likewise.
6378         (vec_vsubcuq): Likewise.
6379         (vec_vsubuqm): Likewise.
6381         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6382         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6383         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6384         128-bit integer add/subtract to ISA 2.07.
6386 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6388         * config/arc/arc.c (arc_predicate_delay_insns):
6389         Fix third argument passed to conditionalize_nonjump.
6391 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
6393         * config/aarch64/aarch64-builtins.c
6394         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
6395         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
6396         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
6397         instead of __builtin_lfloor.
6398         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
6400 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6402         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
6403         (tree_ssa_ifcombine_bb_1): New function.
6404         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
6405         is an empty forwarder block to then_bb or vice versa and then_bb
6406         and else_bb are effectively swapped.
6408 2014-03-12  Christian Bruel  <christian.bruel@st.com>
6410         PR target/60264
6411         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
6412         REG_CFA_DEF_CFA note.
6413         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
6414         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
6416 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6418         PR tree-optimization/60454
6419         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
6421 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6423         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
6424         Do not define target_cpu_default2 to generic.
6425         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
6426         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
6427         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
6429 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6430             Marc Glisse  <marc.glisse@inria.fr>
6432         PR tree-optimization/60502
6433         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
6434         instead of build_low_bits_mask.
6436 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
6438         PR middle-end/60482
6439         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
6440         if there are multiple uses, but op doesn't live on E edge.
6441         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
6442         clobber stmts before __builtin_unreachable.
6444 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
6446         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
6447         hard_frame_pointer_rtx.
6448         * cse.c (cse_insn): Remove volatile check.
6449         * cselib.c (cselib_process_insn): Likewise.
6450         * dse.c (scan_insn): Likewise.
6452 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
6454         * config/arc/arc.c (conditionalize_nonjump): New function,
6455         broken out of ...
6456         (arc_ifcvt): ... this.
6457         (arc_predicate_delay_insns): Use it.
6459 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
6461         * config/arc/predicates.md (extend_operand): During/after reload,
6462         allow const_int_operand.
6463         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
6464         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
6465         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
6466         to "i".
6467         (umulsi3_highpart_i): Likewise.
6469 2014-03-11  Richard Biener  <rguenther@suse.de>
6471         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
6472         Add asserts to guard possible wrong-code bugs.
6474 2014-03-11  Richard Biener  <rguenther@suse.de>
6476         PR tree-optimization/60429
6477         PR tree-optimization/60485
6478         * tree-ssa-structalias.c (set_union_with_increment): Properly
6479         take into account all fields that overlap the shifted vars.
6480         (do_sd_constraint): Likewise.
6481         (do_ds_constraint): Likewise.
6482         (get_constraint_for_ptr_offset): Likewise.
6484 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
6486         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
6487         (nios2_compute_frame_layout):
6488         Add calculation of cfun->machine->fp_save_offset.
6489         (nios2_expand_prologue): Correct setting of frame pointer register
6490         in prologue.
6491         (nios2_expand_epilogue): Update recovery of stack pointer from
6492         frame pointer accordingly.
6493         (nios2_initial_elimination_offset): Update calculation of offset
6494         for eliminating to HARD_FRAME_POINTER_REGNUM.
6496 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
6498         PR ipa/60457
6499         * ipa.c (symtab_remove_unreachable_nodes): Don't call
6500         cgraph_get_create_node on VAR_DECLs.
6502 2014-03-10  Richard Biener  <rguenther@suse.de>
6504         PR middle-end/60474
6505         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
6507 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
6509         * config/vms/vms.opt (vms_float_format): New variable.
6511 2014-03-08  Tobias Burnus  <burnus@net-b.de>
6513         * doc/invoke.texi (-fcilkplus): Update implementation status.
6515 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
6516             Richard Biener  <rguenther@suse.de>
6518         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
6519         consistently accross all TUs.
6520         (run_gcc): Enable -fshort-double automatically at link at link-time
6521         and disallow override.
6523 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
6525         PR target/58271
6526         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
6527         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
6528         if they can't be used.
6530 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6532         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
6533         for Solaris 11/x86 ld.
6534         * configure: Regenerate.
6536 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6538         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
6539         (LIB_TLS_SPEC): Save as ld_tls_libs.
6540         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
6541         (HAVE_AS_IX86_TLSLDM): New test.
6542         * configure, config.in: Regenerate.
6543         * config/i386/i386.c (legitimize_tls_address): Fall back to
6544         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
6545         cannot support TLS_MODEL_LOCAL_DYNAMIC.
6546         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
6547         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
6549 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
6551         * common.opt (fira-loop-pressure): Mark as optimization.
6553 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
6555         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
6556         an OpenMP mappable type.
6558 2014-03-06  Matthias Klose  <doko@ubuntu.com>
6560         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
6561         MULTILIB_OSDIRNAMES is not defined.
6563 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
6564             Meador Inge  <meadori@codesourcery.com>
6566         PR target/58595
6567         * config/arm/arm.c (arm_tls_symbol_p): Remove.
6568         (arm_legitimize_address): Call legitimize_tls_address for any
6569         arm_tls_referenced_p expression, handle constant addend.  Call it
6570         before testing for !TARGET_ARM.
6571         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
6573 2014-03-06  Richard Biener  <rguenther@suse.de>
6575         PR middle-end/60445
6576         PR lto/60424
6577         PR lto/60427
6578         Revert
6579         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
6581         * tree-streamer.c (record_common_node): Assert we don't record
6582         nodes with type double.
6583         (preload_common_node): Skip type double, complex double and double
6584         pointer since it is now frontend dependent due to fshort-double option.
6586 2014-03-06  Richard Biener  <rguenther@suse.de>
6588         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
6589         or -fno-lto is specified and the linker has full plugin support.
6590         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
6591         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
6592         * lto-wrapper.c (merge_and_complain): Merge compile-time
6593         optimization levels.
6594         (run_gcc): And pass it through to the link options.
6596 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
6598         PR debug/60381
6599         Revert:
6600         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6601         PR debug/59992
6602         * cselib.c (remove_useless_values): Skip to avoid quadratic
6603         behavior if the condition moved from...
6604         (cselib_process_insn): ... here holds.
6606 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
6608         PR plugins/59335
6609         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
6610         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
6612         PR plugins/59335
6613         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
6614         (TM_H): Add x86-tune.def.
6616 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6618         * config/aarch64/aarch64.c (generic_tunings):
6619         Use cortexa57_extra_costs.
6621 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
6623         PR lto/60404
6624         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
6625         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
6626         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
6627         cost for in_lto_p.
6629 2014-03-04  Heiher  <r@hev.cc>
6631         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
6632         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
6634 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
6636         * config/i386/predicates.md (const2356_operand): Change to ...
6637         (const2367_operand): ... this.
6638         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
6639         const2367_operand.
6640         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6641         (*avx512pf_scatterpf<mode>sf): Ditto.
6642         (avx512pf_scatterpf<mode>df): Ditto.
6643         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6644         (*avx512pf_scatterpf<mode>df): Ditto.
6645         * config/i386/i386.c (ix86_expand_builtin): Update
6646         incorrect hint operand error message.
6648 2014-03-04  Richard Biener  <rguenther@suse.de>
6650         * lto-section-in.c (lto_get_section_data): Fix const cast.
6652 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
6654         * tree-streamer.c (record_common_node): Assert we don't record
6655         nodes with type double.
6656         (preload_common_node): Skip type double, complex double and double
6657         pointer since it is now frontend dependent due to fshort-double option.
6659 2014-03-04  Richard Biener  <rguenther@suse.de>
6661         PR lto/60405
6662         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
6663         (lto_input_toplevel_asms): Likewise.
6664         * lto-section-in.c (lto_get_section_data): Instead do it here
6665         for every section.
6667 2014-03-04  Richard Biener  <rguenther@suse.de>
6669         PR tree-optimization/60382
6670         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
6671         dead PHIs a reduction.
6673 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
6675         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
6676         hint value.
6677         (_mm_prefetch): Move out of GCC target("sse") pragma.
6678         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
6679         GCC target("prfchw") pragma.
6680         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
6681         for locality <= 2.
6682         * config/i386/i386.c (ix86_option_override_internal): Enable
6683         -mprfchw with -mprefetchwt1.
6685 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6687         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
6688         Mark as varying.
6690 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6692         * opts.h (CL_PCH_IGNORE): Define.
6693         * targhooks.c (option_affects_pch_p):
6694         Return false for options that have CL_PCH_IGNORE set.
6695         * opt-functions.awk: Process PchIgnore.
6696         * doc/options.texi: Document PchIgnore.
6698         * config/arc/arc.opt (misize): Add PchIgnore property.
6700 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6702         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
6703         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
6704         constraint on constants to permit them being loaded into
6705         GENERAL_REGS or BASE_REGS.
6707 2014-03-03  Nick Clifton  <nickc@redhat.com>
6709         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
6710         anti-cacnonical alternatives.
6711         (negandhi3_real): New pattern.
6712         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
6714 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6716         * config/avr/avr-mcus.def: Remove atxmega16x1.
6717         * config/avr/avr-tables.opt: Regenerate.
6718         * config/avr/t-multilib: Regenerate.
6719         * doc/avr-mmcu.texi: Regenerate.
6721 2014-03-03  Tobias Grosser  <tobias@grosser.es>
6722             Mircea Namolaru  <mircea.namolaru@inria.fr>
6724         PR tree-optimization/58028
6725         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6726         scalar dimensions.
6728 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6730         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6731         not handled by recognizers.
6733 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
6735         PR middle-end/60175
6736         * function.c (expand_function_end): Don't emit
6737         clobber_return_register sequence if clobber_after is a BARRIER.
6738         * cfgexpand.c (construct_exit_block): Append instructions before
6739         return_label to prev_bb.
6741 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6743         * config/rs6000/constraints.md: Document reserved use of "wc".
6745 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6747         PR ipa/60150
6748         * ipa.c (function_and_variable_visibility): When dissolving comdat
6749         group, also set all symbols to local.
6751 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
6753         PR ipa/60306
6755         Revert:
6756         2013-12-14   Jan Hubicka  <jh@suse.cz>
6757         PR middle-end/58477
6758         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6760 2014-03-02  Jon Beniston  <jon@beniston.com>
6762         PR bootstrap/48230
6763         PR bootstrap/50927
6764         PR bootstrap/52466
6765         PR target/46898
6766         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6767           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6768         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6769         (simple_return, *simple_return): New patterns
6770         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6771         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6773 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
6775         * dwarf2out.c (gen_subprogram_die): Tidy.
6777 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
6779         PR target/60071
6780         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6781         (*mov_t_msb_neg_negc): ... this new insn.
6783 2014-02-28  Jason Merrill  <jason@redhat.com>
6785         PR c++/58678
6786         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6787         function.
6789 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
6791         PR c++/60314
6792         * dwarf2out.c (decltype_auto_die): New static.
6793         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6794         (gen_type_die_with_usage): Handle 'decltype(auto)'.
6795         (is_cxx_auto): Likewise.
6797 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
6799         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6800         we are not using general regs only.
6802 2014-02-28  Richard Biener  <rguenther@suse.de>
6804         PR target/60280
6805         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6806         previous fix and only allow to remove trivial pre-headers
6807         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6808         (remove_forwarder_block): Properly update the latch of a loop.
6810 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6812         PR debug/59992
6813         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6814         (cselib_preserved_hash_table): New.
6815         (preserve_constants_and_equivs): Move preserved vals to it.
6816         (cselib_find_slot): Look it up first.
6817         (cselib_init): Initialize it.
6818         (cselib_finish): Release it.
6819         (dump_cselib_table): Dump it.
6821 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6823         PR debug/59992
6824         * cselib.c (remove_useless_values): Skip to avoid quadratic
6825         behavior if the condition moved from...
6826         (cselib_process_insn): ... here holds.
6828 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
6830         PR debug/57232
6831         * var-tracking.c (vt_initialize): Apply the same condition to
6832         preserve the CFA base value.
6834 2014-02-28  Joey Ye  <joey.ye@arm.com>
6836         PR target/PR60169
6837         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6838         if reload in progress or completed.
6840 2014-02-28  Tobias Burnus  <burnus@net-b.de>
6842         PR middle-end/60147
6843         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6844         NAMELIST_DECL.
6846 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6848         * doc/tm.texi.in (Condition Code Status): Update documention for
6849         relative locations of cc0-setter and cc0-user.
6851 2014-02-27  Jeff Law  <law@redhat.com>
6853         PR rtl-optimization/52714
6854         * combine.c (try_combine): When splitting an unrecognized PARALLEL
6855         into two independent simple sets, if I3 is a jump, ensure the
6856         pattern we place into I3 is a (set (pc) ...).
6858 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
6859             Jeff Law  <law@redhat.com>
6861         PR rtl-optimization/49847
6862         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6863         are in different blocks.
6864         * doc/tm.texi (Condition Code Status): Update documention for
6865         relative locations of cc0-setter and cc0-user.
6867 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
6869         PR target/59222
6870         * lra.c (lra_emit_add): Check SUBREG too.
6872 2014-02-27  Andreas Schwab  <schwab@suse.de>
6874         * config/m68k/m68k.c (m68k_option_override): Disable
6875         -flive-range-shrinkage for classic m68k.
6876         (m68k_override_options_after_change): Likewise.
6878 2014-02-27  Marek Polacek  <polacek@redhat.com>
6880         PR middle-end/59223
6881         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6882         -Wmaybe-uninitialized.
6884 2014-02-27  Alan Modra  <amodra@gmail.com>
6886         PR target/57936
6887         * reload1.c (emit_input_reload_insns): When reload_override_in,
6888         set old to rl->in_reg when rl->in_reg is a subreg.
6890 2014-02-26  Richard Biener  <rguenther@suse.de>
6892         PR bootstrap/60343
6893         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6895 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6897         * common/config/i386/predicates.md (const1256_operand): Remove.
6898         (const2356_operand): New.
6899         (const_1_to_2_operand): Remove.
6900         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6901         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6902         (*avx512pf_gatherpf<mode>sf): Ditto.
6903         (avx512pf_gatherpf<mode>df): Ditto.
6904         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6905         (*avx512pf_gatherpf<mode>df): Ditto.
6906         (avx512pf_scatterpf<mode>sf): Ditto.
6907         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6908         (*avx512pf_scatterpf<mode>sf): Ditto.
6909         (avx512pf_scatterpf<mode>df): Ditto.
6910         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6911         (*avx512pf_scatterpf<mode>df): Ditto.
6912         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6914 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
6916         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6917         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6918         (_mm512_mask_testn_epi64_mask): Move to ...
6919         * config/i386/avx512cdintrin.h: Here.
6920         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6921         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6922         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6923         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6924         TARGET_AVX512F from TARGET_AVX512CD.
6926 2014-02-26  Richard Biener  <rguenther@suse.de>
6928         PR ipa/60327
6929         * ipa.c (walk_polymorphic_call_targets): Properly guard
6930         call to inline_update_overall_summary.
6932 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
6934         PR target/60280
6935         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6936         and latches only if requested.  Fix latch if it is removed.
6937         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6938         LOOPS_HAVE_PREHEADERS.
6940 2014-02-25  Andrew Pinski  <apinski@cavium.com>
6942         * builtins.c (expand_builtin_thread_pointer): Create a new target
6943         when the target is NULL.
6945 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
6947         PR rtl-optimization/60317
6948         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6949         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6950         * lra-assigns.c: Include params.h.
6951         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6952         other reload pseudos considerations.
6954 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6956         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6957         to use canonical form for nor<mode>3.
6959 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6961         PR target/55426
6962         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6963         conversions.
6965 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
6967         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6968         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6969         (ix86_handle_option): Handle OPT_mprefetchwt1.
6970         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6971         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6972         PREFETCHWT1 CPUID.
6973         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6974         OPTION_MASK_ISA_PREFETCHWT1.
6975         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6976         (PTA_PREFETCHWT1): New.
6977         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6978         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6979         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6980         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6981         (*prefetch_avx512pf_<mode>_: Change into ...
6982         (*prefetch_prefetchwt1_<mode>: This.
6983         * config/i386/i386.opt (mprefetchwt1): New.
6984         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6985         (_mm_prefetch): Handle intent to write.
6986         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6988 2014-02-25  Richard Biener  <rguenther@suse.de>
6990         PR middle-end/60291
6991         * emit-rtl.c (mem_attrs_htab): Remove.
6992         (mem_attrs_htab_hash): Likewise.
6993         (mem_attrs_htab_eq): Likewise.
6994         (set_mem_attrs): Always allocate new mem-attrs when something changed.
6995         (init_emit_once): Do not allocate mem_attrs_htab.
6997 2014-02-25  Richard Biener  <rguenther@suse.de>
6999         PR lto/60319
7000         * lto-opts.c (lto_write_options): Output non-explicit conservative
7001         -fwrapv, -fno-trapv and -fno-strict-overflow.
7002         * lto-wrapper.c (merge_and_complain): Handle merging those options.
7003         (run_gcc): And pass them through.
7005 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
7007         * sel-sched.c (calculate_new_fences): New parameter ptime.
7008         Calculate it as a maximum over all fence cycles.
7009         (sel_sched_region_2): Adjust the call to calculate_new_fences.
7010         Print the final schedule timing when sched_verbose.
7012 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
7014         PR rtl-optimization/60292
7015         * sel-sched.c (fill_vec_av_set): Do not reset target availability
7016         bit fot the fence instruction.
7018 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
7020         * calls.h: Fix typo in comment.
7022 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
7024         * config/pa/pa.c (pa_output_move_double): Don't valididate when
7025         adjusting offsetable addresses.
7027 2014-02-24  Guozhi Wei  <carrot@google.com>
7029         * sparseset.h (sparseset_pop): Fix the wrong index.
7031 2014-02-24  Walter Lee  <walt@tilera.com>
7033         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
7034         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
7035         triplet.
7036         * common/config/tilegx/tilegx-common.c
7037         (TARGET_DEFAULT_TARGET_FLAGS): Define.
7038         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
7039         (LINK_SPEC): Ditto.
7040         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
7041         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
7042         (tilegx_gimplify_va_arg_expr): Handle big endian.
7043         (tilegx_expand_unaligned_load): Ditto.
7044         (tilegx_expand_unaligned_store): Ditto.
7045         (TARGET_RETURN_IN_MSB): New.
7046         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
7047         (TARGET_ENDIAN_DEFAULT): New.
7048         (TARGET_BIG_ENDIAN): Handle big endian.
7049         (BYTES_BIG_ENDIAN): Ditto.
7050         (WORDS_BIG_ENDIAN): Ditto.
7051         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
7052         (ENDIAN_SPEC): New.
7053         (EXTRA_SPECS): New.
7054         * config/tilegx/tilegx.md (extv): Handle big endian.
7055         (extzv): Ditto.
7056         (insn_st<n>): Ditto.
7057         (insn_st<n>_add<bitsuffix>): Ditto.
7058         (insn_stnt<n>): Ditto.
7059         (insn_stnt<n>_add<bitsuffix>):Ditto.
7060         (vec_interleave_highv8qi): Handle big endian.
7061         (vec_interleave_highv8qi_be): New.
7062         (vec_interleave_highv8qi_le): New.
7063         (insn_v1int_h): Handle big endian.
7064         (vec_interleave_lowv8qi): Handle big endian.
7065         (vec_interleave_lowv8qi_be): New.
7066         (vec_interleave_lowv8qi_le): New.
7067         (insn_v1int_l): Handle big endian.
7068         (vec_interleave_highv4hi): Handle big endian.
7069         (vec_interleave_highv4hi_be): New.
7070         (vec_interleave_highv4hi_le): New.
7071         (insn_v2int_h): Handle big endian.
7072         (vec_interleave_lowv4hi): Handle big endian.
7073         (vec_interleave_lowv4hi_be): New.
7074         (vec_interleave_lowv4hi_le): New.
7075         (insn_v2int_l): Handle big endian.
7076         (vec_interleave_highv2si): Handle big endian.
7077         (vec_interleave_highv2si_be): New.
7078         (vec_interleave_highv2si_le): New.
7079         (insn_v4int_h): Handle big endian.
7080         (vec_interleave_lowv2si): Handle big endian.
7081         (vec_interleave_lowv2si_be): New.
7082         (vec_interleave_lowv2si_le): New.
7083         (insn_v4int_l): Handle big endian.
7084         * config/tilegx/tilegx.opt (mbig-endian): New option.
7085         (mlittle-endian): New option.
7086         * doc/install.texi: Document tilegxbe-linux.
7087         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7089 2014-02-24  Martin Jambor  <mjambor@suse.cz>
7091         PR ipa/60266
7092         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7093         there are no parameter descriptors.
7095 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
7097         PR rtl-optimization/60268
7098         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7099         initialization to ...
7100         (sched_rgn_init): ... here.
7101         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7103 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7105         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7106         names.
7108 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
7110         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7111         definition.
7113 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7115         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7116         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7118 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
7120         * config/microblaze/predicates.md: Add cmp_op predicate.
7121         * config/microblaze/microblaze.md: Add branch_compare instruction
7122         which uses cmp_op predicate and emits cmp insn before branch.
7123         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7124         to microblaze_expand_conditional_branch and consolidate logic.
7125         (microblaze_expand_conditional_branch): emit branch_compare
7126         insn instead of handling cmp op separate from branch insn.
7128 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7130         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7131         to permit subregs.
7133 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7135         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7136         define_insn with define_expand and new define_insn
7137         *altivec_lve<VI_char>x_internal.
7138         (altivec_stve<VI_char>x): Replace define_insn with define_expand
7139         and new define_insn *altivec_stve<VI_char>x_internal.
7140         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7141         prototype.
7142         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7143         lve*x built-ins.
7144         (altivec_expand_stvex_be): New function.
7146 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
7148         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7149         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7150         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7151         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7153 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7155         PR target/60298
7156         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7157         instead of emit_move_insn.
7159 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7161         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7162         vspltw with vsldoi.
7163         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7164         gen_altivec_vsumsws.
7166 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7168         * config/rs6000/altivec.md (altivec_lvxl): Rename as
7169         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7170         (altivec_lvxl_<mode>): New define_expand incorporating
7171         -maltivec=be semantics where needed.
7172         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7173         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7174         semantics where needed.
7175         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7176         (altivec_stvx_<mode>): New define_expand incorporating
7177         -maltivec=be semantics where needed.
7178         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7179         VM2 iterator instead of V4SI.
7180         (altivec_stvxl_<mode>): New define_expand incorporating
7181         -maltivec=be semantics where needed.
7182         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7183         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7184         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7185         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7186         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7187         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7188         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7189         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7190         ALTIVEC_BUILTIN_STVXL.
7191         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7192         (altivec_expand_stvx_be): Likewise.
7193         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7194         (altivec_expand_lvx_be): Likewise.
7195         (altivec_expand_stvx_be): Likewise.
7196         (altivec_expand_builtin): Add cases for
7197         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7198         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7199         (altivec_init_builtins): Add definitions for
7200         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7201         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7203 2014-02-21  Catherine Moore  <clm@codesourcery.com>
7205         * doc/invoke.texi (mvirt, mno-virt): Document.
7206         * config/mips/mips.opt (mvirt): New option.
7207         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7209 2014-02-21  Richard Biener  <rguenther@suse.de>
7211         PR tree-optimization/60276
7212         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7213         (STMT_VINFO_MIN_NEG_DIST): New macro.
7214         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7215         STMT_VINFO_MIN_NEG_DIST.
7216         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7217         made for negative dependence distances still hold.
7219 2014-02-21  Richard Biener  <rguenther@suse.de>
7221         PR middle-end/60291
7222         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7223         DECL_INITIAL for globals not in the current function context.
7225 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7227         PR tree-optimization/56490
7228         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7229         * tree-ssa-uninit.c: Include params.h.
7230         (compute_control_dep_chain): Add num_calls argument, return false
7231         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7232         num_calls to recursive call.
7233         (find_predicates): Change dep_chain into normal array,
7234         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7235         variable and adjust compute_control_dep_chain caller.
7236         (find_def_preds): Likewise.
7238 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
7240         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7241         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7243 2014-02-21  Nick Clifton  <nickc@redhat.com>
7245         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7246         (pushhi1): Likewise.
7247         (popqi1): Add mode to pre_dec.
7248         (pophi1): Likewise.
7250 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
7252         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7253         mode for mask of V8SFmode permutation.
7255 2014-02-20  Richard Henderson  <rth@redhat.com>
7257         PR c++/60272
7258         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7259         a new pseudo for OLDVAL.
7261 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
7263         PR target/57896
7264         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7265         gen_reg_rtx if d->testing_p.
7266         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7267         if d->testing_p and we will certainly return true.
7268         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
7269         if d->testing_p.
7271 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
7273         * emit-rtl.c (gen_reg_rtx): Assert that
7274         crtl->emit.regno_pointer_align_length is non-zero.
7276 2014-02-20  Richard Henderson  <rth@redhat.com>
7278         PR c++/60272
7279         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7280         on failure the store back into EXPECT.
7282 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
7283             Sandra Loosemore  <sandra@codesourcery.com>
7285         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7286         * config/nios2/nios2.c (nios2_function_profiler): Add
7287         -fPIC (flag_pic == 2) support.
7288         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7289         (nios2_large_offset_p): New function.
7290         (nios2_unspec_reloc_p): Move up position, update to use
7291         nios2_large_offset_p.
7292         (nios2_unspec_address): Remove function.
7293         (nios2_unspec_offset): New function.
7294         (nios2_large_got_address): New function.
7295         (nios2_got_address): Add large offset support.
7296         (nios2_legitimize_tls_address): Update usage of removed and new
7297         functions.
7298         (nios2_symbol_binds_local_p): New function.
7299         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7300         (nios2_legitimize_address): Update to use nios2_large_offset_p.
7301         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7302         (nios2_print_operand): Merge H/L processing, add hiadj/lo
7303         processing for (const (unspec ...)).
7304         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7306 2014-02-20  Richard Biener  <rguenther@suse.de>
7308         * tree-cfg.c (replace_uses_by): Mark altered BBs before
7309         doing the substitution.
7310         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7312 2014-02-20  Martin Jambor  <mjambor@suse.cz>
7314         PR ipa/55260
7315         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7316         info when checking whether lattices are bottom.
7318 2014-02-20  Richard Biener  <rguenther@suse.de>
7320         PR middle-end/60221
7321         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7322         regions at -O0.
7324 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
7326         PR ipa/58555
7327         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7328         parameter specifying the scaling.
7329         (inline_call): Update.
7330         (want_inline_recursively): Guard division by zero.
7331         (recursive_inlining): Update.
7332         * ipa-inline.h (clone_inlined_nodes): Update.
7334 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7336         PR target/60204
7337         * config/i386/i386.c (classify_argument): Pass structures of size
7338         64 bytes or less in register.
7340 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
7341             Kirill Yukhin  <kirill.yukhin@intel.com>
7343         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7344         (_mm_rcp28_round_ss): Ditto.
7345         (_mm_rsqrt28_round_sd): Ditto.
7346         (_mm_rsqrt28_round_ss): Ditto.
7347         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7348         (_mm_rcp14_round_ss): Ditto.
7349         (_mm_rsqrt14_round_sd): Ditto.
7350         (_mm_rsqrt14_round_ss): Ditto.
7351         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7352         the first input operand, get rid of match_dup.
7353         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7354         attribute to sse.
7355         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7356         Ditto.
7357         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7358         operand as the first input operand, set type attribute.
7359         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7360         Set type attribute.
7361         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7362         operand as the first input operand, set type attribute.
7364 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7366         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7367         bit of zero.
7369 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7371         PR target/60207
7372         * config/i386/i386.c (construct_container): Remove TFmode check
7373         for X86_64_INTEGER_CLASS.
7375 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
7377         PR target/59794
7378         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7379         only when -Wpsabi is enabled.
7381 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
7383          PR target/59799
7384         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7385         passing arrays in registers are the same as for structs, so remove the
7386         special case for them.
7388 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
7390         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7391         destination type, extract only the valid bits if the source type is not
7392         integral and has a different mode.
7394 2014-02-19  Richard Biener  <rguenther@suse.de>
7396         PR ipa/60243
7397         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
7398         for all calls.
7400 2014-02-19  Richard Biener  <rguenther@suse.de>
7402         PR ipa/60243
7403         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
7404         (ipa_modify_call_arguments): Emit an argument load explicitely and
7405         preserve virtual SSA form there and for the replacement call.
7406         Do not update SSA form nor free dominance info.
7408 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7410         * ipa.c (function_and_variable_visibility): Also clear WEAK
7411         flag when disolving COMDAT_GROUP.
7413 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7415         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
7416         * ipa-prop.c (ipa_set_jf_known_type): Return early when
7417         not devirtualizing.
7418         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
7419         do more sanity checks.
7420         (detect_type_change): Return true when giving up early.
7421         (compute_complex_assign_jump_func): Fix type parameter of
7422         ipa_set_ancestor_jf.
7423         (compute_complex_ancestor_jump_func): Likewise.
7424         (update_jump_functions_after_inlining): Fix updating of
7425         ancestor function.
7426         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
7428 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
7430         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
7431         inline clones when edge disappears.
7433 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7435         PR target/60203
7436         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
7437         Split 64-bit moves into 2 patterns.  Do not allow the use of
7438         direct move for TDmode in little endian, since the decimal value
7439         has little endian bytes within a word, but the 64-bit pieces are
7440         ordered in a big endian fashion, and normal subreg's of TDmode are
7441         not allowed.
7442         (mov<mode>_64bit_dm): Likewise.
7443         (movtd_64bit_nodm): Likewise.
7445 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
7447         PR tree-optimization/60174
7448         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
7449         statement of an SSA_NAME that occurs in an abnormal PHI node.
7451 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
7453         PR sanitizer/60142
7454         * final.c (SEEN_BB): Remove.
7455         (SEEN_NOTE, SEEN_EMITTED): Renumber.
7456         (final_scan_insn): Don't force_source_line on second
7457         NOTE_INSN_BASIC_BLOCK.
7459 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
7461         PR target/60205
7462         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
7463         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
7464         (type_natural_mode): Warn ABI change when %zmm register is not
7465         available for AVX512F vector value passing.
7467 2014-02-18  Kai Tietz  <ktietz@redhat.com>
7469         PR target/60193
7470         * config/i386/i386.c (ix86_expand_prologue): Use value in
7471         rax register as displacement when restoring %r10 or %rax.
7472         Fix wrong offset when restoring both registers.
7474 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
7476         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
7477         assertion with conditional return.
7479 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
7480             Uros Bizjak  <ubizjak@gmail.com>
7482         PR driver/60233
7483         * config/i386/driver-i386.c (host_detect_local_cpu): If
7484         YMM state is not saved by the OS, also clear has_f16c.  Move
7485         CPUID 0x80000001 handling before YMM state saving checking.
7487 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
7489         PR rtl-optimization/58960
7490         * haifa-sched.c (alloc_global_sched_pressure_data): New,
7491         factored out from ...
7492         (sched_init): ... here.
7493         (free_global_sched_pressure_data): New, factored out from ...
7494         (sched_finish): ... here.
7495         * sched-int.h (free_global_sched_pressure_data): Declare.
7496         * sched-rgn.c (nr_regions_initial): New static global.
7497         (haifa_find_rgns): Initialize it.
7498         (schedule_region): Disable sched-pressure for the newly
7499         generated regions.
7501 2014-02-17  Richard Biener  <rguenther@suse.de>
7503         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
7504         release SSA defs of pattern stmts.
7506 2014-02-17  Richard Biener  <rguenther@suse.de>
7508         * tree-inline.c (expand_call_inline): Release the virtual
7509         operand defined by the call we are about to inline.
7511 2014-02-17  Richard Biener  <rguenther@suse.de>
7513         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
7515 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
7516             Ilya Tocar  <ilya.tocar@intel.com>
7518         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
7519         arguments order in builtin.
7520         (_mm512_permutexvar_epi64): Ditto.
7521         (_mm512_mask_permutexvar_epi64): Ditto
7522         (_mm512_maskz_permutexvar_epi32): Ditto
7523         (_mm512_permutexvar_epi32): Ditto
7524         (_mm512_mask_permutexvar_epi32): Ditto
7526 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7528         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7529         (p8_vmrgow): Likewise.
7531 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7533         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
7534         endian targets.
7536 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7538         PR target/60203
7539         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
7540         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
7541         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
7542         using direct move instructions on ISA 2.07.  Also adjust
7543         instruction length for 64-bit.
7544         (mov<mode>_64bit, TFmode/TDmode): Likewise.
7545         (mov<mode>_32bit, TFmode/TDmode): Likewise.
7547 2014-02-15  Alan Modra  <amodra@gmail.com>
7549         PR target/58675
7550         PR target/57935
7551         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
7552         find_replacement on parts of insn rtl that might be reloaded.
7554 2014-02-15  Richard Biener  <rguenther@suse.de>
7556         PR tree-optimization/60183
7557         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
7558         (tree_ssa_phiprop): Calculate and free post-dominators.
7560 2014-02-14  Jeff Law  <law@redhat.com>
7562         PR rtl-optimization/60131
7563         * ree.c (get_extended_src_reg): New function.
7564         (combine_reaching_defs): Use it rather than assuming location of REG.
7565         (find_and_remove_re): Verify first operand of extension is
7566         a REG before adding the insns to the copy list.
7568 2014-02-14  Roland McGrath  <mcgrathr@google.com>
7570         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
7571         * configure: Regenerated.
7572         * config.in: Regenerated.
7573         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
7574         instead of ASM_SHORT.
7576 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
7577             Richard Earnshaw  <rearnsha@arm.com>
7579         PR rtl-optimization/59535
7580         * lra-constraints.c (process_alt_operands): Encourage alternative
7581         when unassigned pseudo class is superset of the alternative class.
7582         (inherit_reload_reg): Don't inherit when optimizing for code size.
7583         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
7584         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
7585         modes not less than 4 for Thumb1.
7587 2014-02-14  Kyle McMartin  <kyle@redhat.com>
7589         PR pch/60010
7590         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
7592 2014-02-14  Richard Biener  <rguenther@suse.de>
7594         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
7595         (get_frame_arg): Drop the assert with langhook types_compatible_p.
7596         Do not strip INDIRECT_REFs.
7598 2014-02-14  Richard Biener  <rguenther@suse.de>
7600         PR lto/60179
7601         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
7602         DECL_FUNCTION_SPECIFIC_TARGET.
7603         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
7604         * tree-streamer-out.c (pack_ts_target_option): Remove.
7605         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
7606         (write_ts_function_decl_tree_pointers): Do not stream
7607         DECL_FUNCTION_SPECIFIC_TARGET.
7608         * tree-streamer-in.c (unpack_ts_target_option): Remove.
7609         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
7610         (lto_input_ts_function_decl_tree_pointers): Do not stream
7611         DECL_FUNCTION_SPECIFIC_TARGET.
7613 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
7615         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
7616         (get_initial_def_for_induction, vectorizable_induction): Ignore
7617         debug stmts when looking for exit_phi.
7618         (vectorizable_live_operation): Fix up condition.
7620 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7622         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
7623         nreverse() because it changes the content of original tree list.
7625 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7627         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
7628         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
7630 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
7632         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
7633         GNU coding standards.
7635 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
7637         PR debug/60152
7638         * dwarf2out.c (gen_subprogram_die): Don't call
7639         add_calling_convention_attribute if subr_die is old_die.
7641 2014-02-13  Sharad Singhai  <singhai@google.com>
7643         * doc/optinfo.texi: Fix order of nodes.
7645 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
7647         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
7648         operands[2], not operands[3].
7650 2014-02-13  Richard Biener  <rguenther@suse.de>
7652         PR bootstrap/59878
7653         * doc/install.texi (ISL): Update recommended version to 0.12.2,
7654         mention the possibility of an in-tree build.
7655         (CLooG): Update recommended version to 0.18.1, mention the
7656         possibility of an in-tree build and clarify that the ISL
7657         bundled with CLooG does not work.
7659 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
7661         PR target/43546
7662         * expr.c (compress_float_constant): If x is a hard register,
7663         extend into a pseudo and then move to x.
7665 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7667         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
7668         caused by bad second argument to warning_at() with -mhotpatch and
7669         nested functions (e.g. with gfortran).
7671 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
7673         * opts.c (option_name): Remove "enabled by default" rider.
7675 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
7677         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
7679 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7680             Uros Bizjak  <ubizjak@gmail.com>
7682         PR target/60151
7683         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
7684         * configure: Regenerated.
7686 2014-02-12  Richard Biener  <rguenther@suse.de>
7688         * vec.c (vec_prefix::calculate_allocation): Move as
7689         inline variant to vec.h.
7690         (vec_prefix::calculate_allocation_1): New out-of-line version.
7691         * vec.h (vec_prefix::calculate_allocation_1): Declare.
7692         (vec_prefix::m_has_auto_buf): Rename to ...
7693         (vec_prefix::m_using_auto_storage): ... this.
7694         (vec_prefix::calculate_allocation): Inline the easy cases
7695         and dispatch to calculate_allocation_1 which doesn't need the
7696         prefix address.
7697         (va_heap::reserve): Use gcc_checking_assert.
7698         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
7699         m_using_auto_storage.
7700         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
7701         member and adjust.
7702         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
7703         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
7704         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
7706 2014-02-12  Richard Biener  <rguenther@suse.de>
7708         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
7709         when we found a dependence.
7711 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
7713         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
7714         common code...
7715         (maybe_fold_stmt): ... into this new function.
7716         * omp-low.c (lower_omp): Update comment.
7718         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
7719         last use.
7721         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
7722         dereference.
7724 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
7726         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
7727         identifiers in comments.
7728         (cortexa53_extra_costs): Likewise.
7729         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7730         (cortexa7_extra_costs): Likewise.
7731         (cortexa12_extra_costs): Likewise.
7732         (cortexa15_extra_costs): Likewise.
7733         (v7m_extra_costs): Likewise.
7735 2014-02-12  Richard Biener  <rguenther@suse.de>
7737         PR middle-end/60092
7738         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7739         of posix_memalign being successful.
7740         (lower_stmt): Restrict lowering of posix_memalign to when
7741         -ftree-bit-ccp is enabled.
7743 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7745         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7746         arg_loc.
7747         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7749 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7751         PR rtl-optimization/60116
7752         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7753         other_insn once the combination has been validated.
7755 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
7757         PR lto/59468
7758         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7759         and wrapper.
7760         * ipa-devirt.c: Include demangle.h
7761         (odr_violation_reported): New static variable.
7762         (add_type_duplicate): Update odr_violations.
7763         (maybe_record_node): Add completep parameter; update it.
7764         (record_target_from_binfo): Add COMPLETEP parameter;
7765         update it as needed.
7766         (possible_polymorphic_call_targets_1): Likewise.
7767         (struct polymorphic_call_target_d): Add nonconstruction_targets;
7768         rename FINAL to COMPLETE.
7769         (record_targets_from_bases): Sanity check we found the binfo;
7770         fix COMPLETEP updating.
7771         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7772         parameter, fix computing of COMPLETEP.
7773         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7774         at LTO time do demangling.
7775         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7776         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7777         parameter.
7778         (gimple_get_virt_method_for_binfo): Likewise.
7779         * gimple-fold.h (gimple_get_virt_method_for_binfo,
7780         gimple_get_virt_method_for_vtable): Update prototypes.
7782 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
7784         PR target/49008
7785         * genautomata.c (add_presence_absence): Fix typo with
7786         {final_}presence_list.
7788 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
7790         PR target/60137
7791         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7792         for VSX/Altivec vectors that land in GPR registers.
7794 2014-02-11  Richard Henderson  <rth@redhat.com>
7795             Jakub Jelinek  <jakub@redhat.com>
7797         PR debug/59776
7798         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7799         around drhs if type conversion to lacc->type is not useless.
7801 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7803         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7804         tuning struct.
7805         (cortex-a57.cortex-a53): Likewise.
7806         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7808 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7810         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7811         arm_restrict_it.
7813 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
7815         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7816         add_options_for_arm_vfp3.
7818 2014-02-11  Jeff Law  <law@redhat.com>
7820         PR middle-end/54041
7821         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7822         object with an undesirable mode.
7824 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7826         PR libgomp/60107
7827         * config/i386/sol2-9.h: New file.
7828         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7829         *-*-solaris2.9*): Use it.
7831 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7833         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7834         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7836 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
7838         * config/microblaze/microblaze.c: Extend mcpu version format
7840 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
7842         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7844 2014-02-10  Richard Henderson  <rth@redhat.com>
7846         PR target/59927
7847         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7848         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7849         ms-abi vs -mno-accumulate-outgoing-args.
7850         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7851         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7852         respect to ms-abi.
7854 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7856         PR middle-end/60080
7857         * cfgexpand.c (expand_asm_operands): Attach source location to
7858         ASM_INPUT rtx objects.
7859         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7861 2014-02-10  Nick Clifton  <nickc@redhat.com>
7863         * config/mn10300/mn10300.c (popcount): New function.
7864         (mn10300_expand_prologue): Include saved registers in stack usage
7865         count.
7867 2014-02-10  Jeff Law  <law@redhat.com>
7869         PR middle-end/52306
7870         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7871         when changing the SET_DEST of a prior insn to avoid an input reload.
7873 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7875         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7876         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7877         -mcall-openbsd, or -mcall-linux.
7878         (CC1_ENDIAN_BIG_SPEC): Remove.
7879         (CC1_ENDIAN_LITTLE_SPEC): Remove.
7880         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7881         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7882         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7883         and %cc1_endian_default.
7884         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7886 2014-02-10  Richard Biener  <rguenther@suse.de>
7888         PR tree-optimization/60115
7889         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7890         MEM_REF handling.  Properly verify that the accesses are not
7891         out of the objects bound.
7893 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7895         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7896         coretex to cortex.
7898 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7900         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7901         proper constants and fix formatting.
7902         (possible_polymorphic_call_targets): Fix formatting.
7904 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
7905             Ilya Tocar  <ilya.tocar@intel.com>
7907         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7908         (_mm512_loadu_epi32): Renamed into...
7909         (_mm512_loadu_si512): This.
7910         (_mm512_storeu_epi32): Renamed into...
7911         (_mm512_storeu_si512): This.
7912         (_mm512_maskz_ceil_ps): Removed.
7913         (_mm512_maskz_ceil_pd): Ditto.
7914         (_mm512_maskz_floor_ps): Ditto.
7915         (_mm512_maskz_floor_pd): Ditto.
7916         (_mm512_floor_round_ps): Ditto.
7917         (_mm512_floor_round_pd): Ditto.
7918         (_mm512_ceil_round_ps): Ditto.
7919         (_mm512_ceil_round_pd): Ditto.
7920         (_mm512_mask_floor_round_ps): Ditto.
7921         (_mm512_mask_floor_round_pd): Ditto.
7922         (_mm512_mask_ceil_round_ps): Ditto.
7923         (_mm512_mask_ceil_round_pd): Ditto.
7924         (_mm512_maskz_floor_round_ps): Ditto.
7925         (_mm512_maskz_floor_round_pd): Ditto.
7926         (_mm512_maskz_ceil_round_ps): Ditto.
7927         (_mm512_maskz_ceil_round_pd): Ditto.
7928         (_mm512_expand_pd): Ditto.
7929         (_mm512_expand_ps): Ditto.
7930         * config/i386/i386.c (ix86_builtins): Remove
7931         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7932         (bdesc_args): Ditto.
7933         * config/i386/predicates.md (const1256_operand): New.
7934         (const_1_to_2_operand): Ditto.
7935         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7936         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7937         (*avx512pf_gatherpf<mode>sf): Ditto.
7938         (avx512pf_gatherpf<mode>df): Ditto.
7939         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7940         (*avx512pf_gatherpf<mode>df): Ditto.
7941         (avx512pf_scatterpf<mode>sf): Ditto.
7942         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7943         (*avx512pf_scatterpf<mode>sf): Ditto.
7944         (avx512pf_scatterpf<mode>df): Ditto.
7945         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7946         (*avx512pf_scatterpf<mode>df): Ditto.
7947         (avx512f_expand<mode>): Removed.
7948         (<shift_insn><mode>3<mask_name>): Change predicate type.
7950 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7952         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7953         not at the end of datarefs vector use ordered_remove to avoid
7954         reordering datarefs vector.
7956         PR c/59984
7957         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7958         mark local addressable non-static vars as GOVD_PRIVATE
7959         instead of GOVD_LOCAL.
7960         * omp-low.c (lower_omp_for): Move gimple_bind_vars
7961         and BLOCK_VARS of gimple_bind_block to new_stmt rather
7962         than copying them.
7964         PR middle-end/60092
7965         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7966         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7967         assume_aligned or alloc_align attributes.
7968         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7969         arguments.  Handle also assume_aligned and alloc_align attributes.
7970         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
7971         calls to functions with assume_aligned or alloc_align attributes.
7972         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7974 2014-02-08  Terry Guo  <terry.guo@arm.com>
7976         * doc/invoke.texi: Document ARM -march=armv7e-m.
7978 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
7980         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7981         flag on __cilkrts_rethrow builtin.
7983         PR ipa/60026
7984         * ipa-cp.c (determine_versionability): Fail at -O0
7985         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7986         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7988         Revert:
7989         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
7991         PR ipa/60026
7992         * tree-inline.c (copy_forbidden): Fail for
7993         __attribute__((optimize (0))) functions.
7995 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
7997         * varpool.c: Include pointer-set.h.
7998         (varpool_remove_unreferenced_decls): Variables in other partitions
7999         will not be output; be however careful to not lose information
8000         about partitioning.
8002 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
8004         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
8005         lookup in the vtable constructor.
8007 2014-02-07  Jeff Law  <law@redhat.com>
8009         PR target/40977
8010         * config/m68k/m68k.md (ashldi_extsi): Turn into a
8011         define_insn_and_split.
8013         * ipa-inline.c (inline_small_functions): Fix typos.
8015 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8017         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
8018         (s390_can_use_return_insn): Declare.
8019         * config/s390/s390.h (EPILOGUE_USES): Define.
8020         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
8021         instructions.
8022         (s390_chunkify_start): Handle return JUMP_LABELs.
8023         (s390_early_mach): Emit a main_pool instruction on the entry edge.
8024         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
8025         (s390_can_use_return_insn): New functions.
8026         (s390_fix_long_loop_prediction): Handle conditional returns.
8027         (TARGET_SET_UP_BY_PROLOGUE): Define.
8028         * config/s390/s390.md (ANY_RETURN): New code iterator.
8029         (*creturn, *csimple_return, return, simple_return): New patterns.
8031 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8033         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
8034         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
8035         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
8036         REG_CFA_RESTORE list when deciding not to restore a register.
8038 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8040         * config/s390/s390.c: Include tree-pass.h and context.h.
8041         (s390_early_mach): New function, split out from...
8042         (s390_emit_prologue): ...here.
8043         (pass_data_s390_early_mach): New pass structure.
8044         (pass_s390_early_mach): New class.
8045         (s390_option_override): Create and register early_mach pass.
8046         Move to end of file.
8048 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8050         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
8051         to match for the exit block.
8053 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8055         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
8056         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
8057         Reject misaligned operands.
8059 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8061         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
8063 2014-02-07  Richard Biener  <rguenther@suse.de>
8065         PR middle-end/60092
8066         * gimple-low.c (lower_builtin_posix_memalign): New function.
8067         (lower_stmt): Call it to lower posix_memalign in a way
8068         to make alignment info accessible.
8070 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
8072         PR c++/60082
8073         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
8074         __builtin_setjmp_receiver.
8076 2014-02-07  Richard Biener  <rguenther@suse.de>
8078         PR middle-end/60092
8079         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
8080         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
8081         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8082         Handle BUILT_IN_POSIX_MEMALIGN.
8083         (find_func_clobbers): Likewise.
8084         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8085         (call_may_clobber_ref_p_1): Likewise.
8087 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8089         PR ipa/59918
8090         * ipa-devirt.c (record_target_from_binfo): Remove overactive
8091         sanity check.
8093 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8095         PR ipa/59469
8096         * lto-cgraph.c (lto_output_node): Use
8097         symtab_get_symbol_partitioning_class.
8098         (lto_output_varpool_node): likewise.
8099         (symtab_get_symbol_partitioning_class): Move here from
8100         lto/lto-partition.c
8101         * cgraph.h (symbol_partitioning_class): Likewise.
8102         (symtab_get_symbol_partitioning_class): Declare.
8104 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8106         * ggc.h (ggc_internal_cleared_alloc): New macro.
8107         * vec.h (vec_safe_copy): Handle memory stats.
8108         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8109         * target-globals.c (save_target_globals): Likewise.
8111 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
8113         PR target/60077
8114         * expr.c (emit_move_resolve_push): Export; be bit more selective
8115         on when to clear alias set.
8116         * expr.h (emit_move_resolve_push): Declare.
8117         * function.h (struct function): Add tail_call_marked.
8118         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8119         * config/i386/i386-protos.h (ix86_expand_push): Remove.
8120         * config/i386/i386.md (TImode move expander): De not call
8121         ix86_expand_push.
8122         (FP push expanders): Preserve memory attributes.
8123         * config/i386/sse.md (push<mode>1): Remove.
8124         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8125         (ix86_expand_push): Remove.
8126         * config/i386/mmx.md (push<mode>1): Remove.
8128 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8130         PR rtl-optimization/60030
8131         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8132         lopart with paradoxical subreg before shifting it up by hprec.
8134 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8136         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8137         Remove extra newline at end of file.
8138         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8139         (arm_issue_rate): Handle cortexa57.
8140         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8141         (cortex-a57.cortex-a53): Likewise.
8143 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8145         PR target/59575
8146         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8147         don't record in REG_FRAME_RELATED_EXPR registers not set in that
8148         bitmask.
8149         (arm_expand_prologue): Adjust all callers.
8150         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8151         info, registers also at the lowest numbered registers side.  Use
8152         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8153         XEXP.
8155         PR debug/59992
8156         * var-tracking.c (adjust_mems): Before adding a SET to
8157         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8159 2014-02-06  Alan Modra  <amodra@gmail.com>
8161         PR target/60032
8162         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8163         change SDmode to DDmode when lra_in_progress.
8165 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
8167         PR middle-end/59150
8168         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8169         free_data_ref on the dr first, and before goto again also set dr
8170         to the next dr.  For simd_lane_access, free old datarefs[i] before
8171         overwriting it.  For get_vectype_for_scalar_type failure, don't
8172         free_data_ref if simd_lane_access.
8174         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8176         PR target/60062
8177         * tree.h (opts_for_fn): New inline function.
8178         (opt_for_fn): Define.
8179         * config/i386/i386.c (ix86_function_regparm): Use
8180         opt_for_fn (decl, optimize) instead of optimize.
8182 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8184         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8185         for SYMBOL_REF in large memory model.
8187 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8189         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8190         and crypto support.
8191         (cortex-a57): Likewise.
8192         (cortex-a57.cortex-a53): Likewise.
8194 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
8195             Kugan Vivekanandarajah  <kuganv@linaro.org>
8197         * config/arm/arm.c (arm_vector_alignment_reachable): Check
8198         unaligned_access.
8199         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8201 2014-02-06  Richard Biener  <rguenther@suse.de>
8203         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8204         set_loop_copy and initialize_original_copy_tables.
8206 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
8208         * config/aarch64/aarch64-simd.md
8209         (aarch64_ashr_simddi): Change QI to SI.
8211 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8212             Jakub Jelinek  <jakub@redhat.com>
8214         PR middle-end/60013
8215         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8216         of the dataflow.
8218 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8220         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8221         CODE_FOR_altivec_vpku[hw]um to
8222         CODE_FOR_altivec_vpku[hw]um_direct.
8223         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8224         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8225         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8226         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8228 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8230         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8231         generation for -maltivec=be.
8232         (altivec_vsumsws): Simplify redundant test.
8234 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8236         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8237         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8238         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8239         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8240         gen_altivec_vpkuwum.
8241         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8242         BYTES_BIG_ENDIAN.
8243         (altivec_vpks<VI_char>ss): Likewise.
8244         (altivec_vpks<VI_char>us): Likewise.
8245         (altivec_vpku<VI_char>us): Likewise.
8246         (altivec_vpku<VI_char>um): Likewise.
8247         (altivec_vpku<VI_char>um_direct): New (copy of
8248         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8249         internal use).
8250         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8251         target is little endian and -maltivec=be is not specified.
8252         (*altivec_vupkhs<VU_char>_direct): New (copy of
8253         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8254         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8255         target is little endian and -maltivec=be is not specified.
8256         (*altivec_vupkls<VU_char>_direct): New (copy of
8257         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8258         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8259         little endian and -maltivec=be is not specified.
8260         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8261         little endian and -maltivec=be is not specified.
8263 2014-02-05  Richard Henderson  <rth@redhat.com>
8265         PR debug/52727
8266         * combine-stack-adj.c: Revert r206943.
8267         * sched-int.h (struct deps_desc): Add last_args_size.
8268         * sched-deps.c (init_deps): Initialize it.
8269         (sched_analyze_insn): Add OUTPUT dependencies between insns that
8270         contain REG_ARGS_SIZE notes.
8272 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
8274         * lto-cgraph.c (asm_nodes_output): Make global.
8275         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8276         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8277         (driver_handle_option): Handle OPT_fwpa.
8279 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
8281         PR ipa/59947
8282         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8283         a comment typo and formatting issue.  If odr_hash hasn't been
8284         created, return vNULL and set *completep to false.
8286         PR middle-end/57499
8287         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8288         bb with no successors.
8290 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
8292         PR target/59718
8293         * doc/invoke.texi (-march): Clarify documentation for ARM.
8294         (-mtune): Likewise.
8295         (-mcpu): Likewise.
8297 2014-02-05  Richard Biener  <rguenther@suse.de>
8299         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8300         when not vectorizing because of too many alias checks.
8301         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8302         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8304 2014-02-05  Nick Clifton  <nickc@redhat.com>
8306         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8307         accept extended registers in any mode when compiling for the MN10300.
8309 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
8311         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8312         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8313         sanitization attributes.
8314         (can_inline_edge_p): Likewise.
8315         (sanitize_attrs_match_for_inline_p): New function.
8317 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8319         * ipa-prop.c (detect_type_change): Shor circuit testing of
8320         type changes on THIS pointer.
8322 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
8324         PR target/59777
8325         * config/pa/pa.c (legitimize_tls_address): Return original address
8326         if not passed a SYMBOL_REF rtx.
8327         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8328         addresses.
8329         (pa_emit_move_sequence): Simplify TLS source operands.
8330         (pa_legitimate_constant_p): Reject all TLS constants.
8331         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8332         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8334 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8336         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8337         groups when we know they are controlled by LTO.
8338         * varasm.c (default_binds_local_p_1): If object is in other partition,
8339         it will be resolved locally.
8341 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8343         * config/host-linux.c (linux_gt_pch_use_address): Don't
8344         use SSIZE_MAX because it is not always defined.
8346 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
8348         PR bootstrap/59913
8349         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8350         threshold for pseudo splitting.
8351         (update_ebb_live_info): Process call argument hard registers and
8352         hard registers from insn definition too.
8353         (max_small_class_regs_num): New constant.
8354         (inherit_in_ebb): Update live hard regs through EBBs.  Update
8355         reloads_num only for small register classes.  Don't split for
8356         outputs of jumps.
8358 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
8360         PR ipa/60058
8361         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8362         is non-null.
8364 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
8366         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8367         visibility is safe.
8369 2014-02-04  Marek Polacek  <polacek@redhat.com>
8371         * gdbinit.in (pel): Define.
8373 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8375         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8376         behavior.
8378 2014-02-04  Richard Biener  <rguenther@suse.de>
8380         PR lto/59723
8381         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8382         in function context local.
8383         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8384         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8385         similar to LTO_imported_decl_ref.
8387 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
8389         PR tree-optimization/60002
8390         * cgraphclones.c (build_function_decl_skip_args): Clear
8391         DECL_LANG_SPECIFIC.
8393         PR tree-optimization/60023
8394         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
8395         false to gsi_replace.
8396         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
8397         has been in some EH region and vec_stmt could throw, add
8398         vec_stmt into the same EH region.
8399         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
8400         has no lhs, ignore it.
8401         * internal-fn.c (expand_MASK_LOAD): Likewise.
8403         PR ipa/60026
8404         * tree-inline.c (copy_forbidden): Fail for
8405         __attribute__((optimize (0))) functions.
8407         PR other/58712
8408         * omp-low.c (simd_clone_struct_copy): If from->inbranch
8409         is set, copy one less argument.
8410         (expand_simd_clones): Don't subtract clone_info->inbranch
8411         from simd_clone_struct_alloc argument.
8413         PR rtl-optimization/57915
8414         * recog.c (simplify_while_replacing): If all unary/binary/relational
8415         operation arguments are constant, attempt to simplify those.
8417         PR middle-end/59261
8418         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
8419         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
8421 2014-02-04  Richard Biener  <rguenther@suse.de>
8423         PR tree-optimization/60012
8424         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
8425         TBAA disambiguation to all DDRs.
8427 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8429         PR target/59788
8430         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
8431         (LINK_SPEC): Use it for -shared, -shared-libgcc.
8433 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8435         PR ipa/59882
8436         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
8438 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8440         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
8441         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
8443 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8445         PR ipa/59831
8446         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
8447         to figure out targets of polymorphic calls with known decl.
8448         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8449         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
8450         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
8451         (get_polymorphic_call_info): ... here.
8452         (get_polymorphic_call_info_from_invariant): New function.
8454 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8456         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
8457         lookup via vtable pointer; check for type consistency
8458         and turn inconsitent facts into UNREACHABLE.
8459         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8460         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
8461         type inconsistent querries; return UNREACHABLE instead.
8463 2014-02-03  Richard Henderson  <rth@twiddle.net>
8465         PR tree-opt/59924
8466         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
8467         already processed this node.
8468         (normalize_one_pred_1): Pass along mark_set.
8469         (normalize_one_pred): Create and destroy a pointer_set_t.
8470         (normalize_one_pred_chain): Likewise.
8472 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
8474         PR gcov-profile/58602
8475         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
8477 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
8479         PR ipa/59831
8480         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
8481         -fno-devirtualize; try to devirtualize by the knowledge of
8482         virtual table pointer given by aggregate propagation.
8483         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8484         (ipa_print_node_jump_functions): Dump also offset that
8485         is relevant for polymorphic calls.
8486         (determine_known_aggregate_parts): Add arg_type parameter; use it
8487         instead of determining the type from pointer type.
8488         (ipa_compute_jump_functions_for_edge): Update call of
8489         determine_known_aggregate_parts.
8490         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
8491         (gimple_get_virt_method_for_binfo): ... here; simplify using
8492         vtable_pointer_value_to_vtable.
8493         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
8494         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
8495         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
8496         (vtable_pointer_value_to_vtable): Break out from ...; handle also
8497         POINTER_PLUS_EXPR.
8498         (vtable_pointer_value_to_binfo): ... here.
8499         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
8501 2014-02-03  Teresa Johnson  <tejohnson@google.com>
8503         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
8504         redef of outer loop index variable.
8506 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
8508         PR c++/53017
8509         PR c++/59211
8510         * doc/extend.texi (Function Attributes): Typo.
8512 2014-02-03  Cong Hou  <congh@google.com>
8514         PR tree-optimization/60000
8515         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
8516         if the vectorized statement is a store.  A store statement can only
8517         appear at the end of pattern statements.
8519 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
8521         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
8522         (ix86_option_override_internal): Default long double to 64-bit for
8523         32-bit Bionic and to 128-bit for 64-bit Bionic.
8525         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
8526         TARGET_LONG_DOUBLE_128 is true.
8527         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
8529         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
8530         (mlong-double-64): Negate -mlong-double-128.
8531         (mlong-double-128): New option.
8533         * config/i386/i386-c.c (ix86_target_macros): Define
8534         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
8536         * doc/invoke.texi: Document -mlong-double-128.
8538 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
8540         PR rtl-optimization/60024
8541         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
8543 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
8545         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
8547 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
8549         PR rtl-optimization/57662
8550         * sel-sched.c (code_motion_path_driver): Do not mark already not
8551         existing blocks in the visiting bitmap.
8553 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
8555         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
8556         on the insn being emitted.
8558 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
8559             Will Deacon  <will.deacon@arm.com>
8561         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
8563 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8565         * config/arm/arm-tables.opt: Regenerate.
8567 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8569         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
8570         for vector types other than V16QImode.
8571         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
8572         define_expand, and call altivec_expand_vec_perm_le when producing
8573         code with little endian element order.
8574         (*altivec_vperm_<mode>_internal): New insn having previous
8575         behavior of altivec_vperm_<mode>.
8576         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
8577         altivec_expand_vec_perm_le when producing code with little endian
8578         element order.
8579         (*altivec_vperm_<mode>_uns_internal): New insn having previous
8580         behavior of altivec_vperm_<mode>_uns.
8582 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8584         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
8585         (altivec_vsumsws): Add handling for -maltivec=be with a little
8586         endian target.
8587         (altivec_vsumsws_direct): New.
8588         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
8589         gen_altivec_vsumsws.
8591 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
8593         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
8594         vtable_pointer_value_to_binfo): New functions.
8595         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
8596         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
8598 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
8600         * config/nios2/nios2.md (load_got_register): Initialize GOT
8601         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
8602         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
8604 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
8606         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
8607         preserverd by passthrough, do not propagate the type.
8609 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8611         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
8612         (mips_atomic_assign_expand_fenv): New function.
8613         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
8615 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8617         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
8618         (__builtin_mips_set_fcsr): Likewise.
8619         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
8620         MIPS_USI_FTYPE_VOID.
8621         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
8622         (mips16_expand_set_fcsr): Likewise.
8623         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
8624         (mips16_set_fcsr_stub): Likewise.
8625         (mips16_get_fcsr_one_only_stub): New class.
8626         (mips16_set_fcsr_one_only_stub): Likewise.
8627         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
8628         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
8629         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
8630         (hard_float): New availability predicate.
8631         (mips_builtins): Add get_fcsr and set_fcsr.
8632         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
8633         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
8634         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
8635         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
8636         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
8637         patterns.
8639 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8641         * config/mips/mips.c (mips_one_only_stub): New class.
8642         (mips_need_mips16_rdhwr_p): Replace with...
8643         (mips16_rdhwr_stub): ...this new variable.
8644         (mips16_stub_call_address): New function.
8645         (mips16_rdhwr_one_only_stub): New class.
8646         (mips_expand_thread_pointer): Use mips16_stub_call_address.
8647         (mips_output_mips16_rdhwr): Delete.
8648         (mips_finish_stub): New function.
8649         (mips_code_end): Use it to handle rdhwr stubs.
8651 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
8653         PR target/60017
8654         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
8655         when calculating size of integer atomic types.
8657 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
8659         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
8661 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
8663         PR tree-optimization/60003
8664         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
8665         * profile.c (branch_prob): Use gimple_call_builtin_p
8666         to check for BUILT_IN_SETJMP_RECEIVER.
8667         * tree-inline.c (copy_bb): Call notice_special_calls.
8669 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
8671         PR bootstrap/59985
8672         * lra-constraints.c (process_alt_operands): Update reload_sum only
8673         on the first pass.
8675 2014-01-31  Richard Henderson  <rth@redhat.com>
8677         PR middle-end/60004
8678         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
8679         until after else_eh is processed.
8681 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
8683         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
8684         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
8685         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
8686         in smmintrin.h, remove them.
8687         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
8688         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
8689         * config/i386/i386.md (ROUND_SAE): Fix value.
8690         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
8691         (const48_operand): New.
8692         * config/i386/subst.md (round), (round_expand): Use
8693         const_4_or_8_to_11_operand.
8694         (round_saeonly), (round_saeonly_expand): Use const48_operand.
8696 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
8698         * config/i386/constraints.md (Yk): Swap meaning with k.
8699         * config/i386/i386.md (movhi_internal): Change Yk to k.
8700         (movqi_internal): Ditto.
8701         (*k<logic><mode>): Ditto.
8702         (*andhi_1): Ditto.
8703         (*andqi_1): Ditto.
8704         (kandn<mode>): Ditto.
8705         (*<code>hi_1): Ditto.
8706         (*<code>qi_1): Ditto.
8707         (kxnor<mode>): Ditto.
8708         (kortestzhi): Ditto.
8709         (kortestchi): Ditto.
8710         (kunpckhi): Ditto.
8711         (*one_cmplhi2_1): Ditto.
8712         (*one_cmplqi2_1): Ditto.
8713         * config/i386/sse.md (): Change k to Yk.
8714         (avx512f_load<mode>_mask): Ditto.
8715         (avx512f_blendm<mode>): Ditto.
8716         (avx512f_store<mode>_mask): Ditto.
8717         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8718         (avx512f_storedqu<mode>_mask): Ditto.
8719         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
8720         Ditto.
8721         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
8722         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
8723         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
8724         (avx512f_maskcmp<mode>3): Ditto.
8725         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
8726         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
8727         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8728         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8729         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8730         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8731         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8732         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8733         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8734         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8735         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8736         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8737         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8738         (vec_extract_lo_<mode>_maskm): Ditto.
8739         (vec_extract_hi_<mode>_maskm): Ditto.
8740         (avx512f_vternlog<mode>_mask): Ditto.
8741         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8742         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8743         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8744         (avx512f_<code>v8div16qi2_mask): Ditto.
8745         (avx512f_<code>v8div16qi2_mask_store): Ditto.
8746         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8747         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8748         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8749         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8750         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8751         (*avx512pf_gatherpf<mode>df_mask): Ditto.
8752         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8753         (*avx512pf_scatterpf<mode>df_mask): Ditto.
8754         (avx512cd_maskb_vec_dupv8di): Ditto.
8755         (avx512cd_maskw_vec_dupv16si): Ditto.
8756         (avx512f_vpermi2var<mode>3_maskz): Ditto.
8757         (avx512f_vpermi2var<mode>3_mask): Ditto.
8758         (avx512f_vpermi2var<mode>3_mask): Ditto.
8759         (avx512f_vpermt2var<mode>3_maskz): Ditto.
8760         (*avx512f_gathersi<mode>): Ditto.
8761         (*avx512f_gathersi<mode>_2): Ditto.
8762         (*avx512f_gatherdi<mode>): Ditto.
8763         (*avx512f_gatherdi<mode>_2): Ditto.
8764         (*avx512f_scattersi<mode>): Ditto.
8765         (*avx512f_scatterdi<mode>): Ditto.
8766         (avx512f_compress<mode>_mask): Ditto.
8767         (avx512f_compressstore<mode>_mask): Ditto.
8768         (avx512f_expand<mode>_mask): Ditto.
8769         * config/i386/subst.md (mask): Change k to Yk.
8770         (mask_scalar_merge): Ditto.
8771         (sd): Ditto.
8773 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
8775         * doc/extend.texi (Vector Extensions): Document ?: in C++.
8777 2014-01-31  Richard Biener  <rguenther@suse.de>
8779         PR middle-end/59990
8780         * builtins.c (fold_builtin_memory_op): Make sure to not
8781         use a floating-point mode or a boolean or enumeral type for
8782         the copy operation.
8784 2014-01-30  DJ Delorie  <dj@redhat.com>
8786         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8787         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8788         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8789         whenever main() has an epilogue.
8791 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8793         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8794         unused variable "field".
8795         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8796         (vsx_mergeh_<mode>): Likewise.
8797         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8798         (altivec_vmrghh): Likewise.
8799         (altivec_vmrghw): Likewise.
8800         (altivec_vmrglb): Likewise.
8801         (altivec_vmrglh): Likewise.
8802         (altivec_vmrglw): Likewise.
8803         (altivec_vspltb): Add missing uses.
8804         (altivec_vsplth): Likewise.
8805         (altivec_vspltw): Likewise.
8806         (altivec_vspltsf): Likewise.
8808 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8810         PR target/59923
8811         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8812         frame related instructions.
8814 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
8816         PR rtl-optimization/59959
8817         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8818         any reload of register whose subreg is invalid.
8820 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
8822         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8823         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8824         Add missing return type - void.
8826 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8828         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8829         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8830         remove element index adjustment for endian (now handled in vsx.md
8831         and altivec.md).
8832         (altivec_expand_vec_perm_const): Use
8833         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8834         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8835         (vsx_xxspltw_<mode>): Adjust element index for little endian.
8836         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8837         define_expand and a new define_insn *altivec_vspltb_internal;
8838         adjust for -maltivec=be on a little endian target.
8839         (altivec_vspltb_direct): New.
8840         (altivec_vsplth): Divide into a define_expand and a new
8841         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8842         little endian target.
8843         (altivec_vsplth_direct): New.
8844         (altivec_vspltw): Divide into a define_expand and a new
8845         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8846         little endian target.
8847         (altivec_vspltw_direct): New.
8848         (altivec_vspltsf): Divide into a define_expand and a new
8849         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8850         a little endian target.
8852 2014-01-30  Richard Biener  <rguenther@suse.de>
8854         PR tree-optimization/59993
8855         * tree-ssa-forwprop.c (associate_pointerplus): Check we
8856         can propagate form the earlier stmt and avoid the transform
8857         when the intermediate result is needed.
8859 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
8861         * README.Portability: Fix typo.
8863 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
8865         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8866         comparison_operator with ordered_comparison_operator.
8868 2014-01-30  Nick Clifton  <nickc@redhat.com>
8870         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8871         Rename to mn10300_store_multiple_regs.
8872         * config/mn10300/mn10300.c: Likewise.
8873         * config/mn10300/mn10300.md (store_movm): Fix typo: call
8874         store_multiple_regs.
8875         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8876         Call mn10300_store_multiple_regs.
8878 2014-01-30  Nick Clifton  <nickc@redhat.com>
8879             DJ Delorie  <dj@redhat.com>
8881         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8882         %fp 2 to keep registers after it properly word-aligned.
8883         (rl78_alloc_physical_registers_umul): Handle the case where both
8884         input operands are the same.
8886 2014-01-30  Richard Biener  <rguenther@suse.de>
8888         PR tree-optimization/59903
8889         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8890         check properly.
8892 2014-01-30  Jason Merrill  <jason@redhat.com>
8894         PR c++/59633
8895         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8897         PR c++/59645
8898         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8900 2014-01-30  Richard Biener  <rguenther@suse.de>
8902         PR tree-optimization/59951
8903         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8905 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
8907         PR target/59784
8908         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8909         SFmode to DFmode case.
8911 2014-01-29  DJ Delorie  <dj@redhat.com>
8913         * config/msp430/msp430.opt (-minrt): New.
8914         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8915         if -minrt given.
8916         (ENDFILE_SPEC): Likewise.
8918 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
8920         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8921         (estimate_function_body_sizes): Use it.
8923 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
8925         PR c++/58561
8926         * dwarf2out.c (is_cxx_auto): New.
8927         (is_base_type): Use it.
8928         (gen_type_die_with_usage): Likewise.
8930 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8932         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
8933         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8934         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8935         -maltivec=be with LE targets.
8936         (vsx_mergeh_<mode>): Likewise.
8937         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8938         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8939         (altivec_vmrghb): Replace with define_expand and new
8940         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8941         (altivec_vmrghb_direct): New define_insn.
8942         (altivec_vmrghh): Replace with define_expand and new
8943         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8944         (altivec_vmrghh_direct): New define_insn.
8945         (altivec_vmrghw): Replace with define_expand and new
8946         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8947         (altivec_vmrghw_direct): New define_insn.
8948         (*altivec_vmrghsf): Adjust for endianness.
8949         (altivec_vmrglb): Replace with define_expand and new
8950         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8951         (altivec_vmrglb_direct): New define_insn.
8952         (altivec_vmrglh): Replace with define_expand and new
8953         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8954         (altivec_vmrglh_direct): New define_insn.
8955         (altivec_vmrglw): Replace with define_expand and new
8956         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8957         (altivec_vmrglw_direct): New define_insn.
8958         (*altivec_vmrglsf): Adjust for endianness.
8959         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8960         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8961         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8962         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8963         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8964         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8965         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8966         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8968 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8970         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8971         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8972         whitespace.
8974 2014-01-29  Richard Biener  <rguenther@suse.de>
8976         PR tree-optimization/58742
8977         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8978         associate_pointerplus_align.
8979         (associate_pointerplus_diff): New function.
8980         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
8981         and associate_pointerplus_diff.
8983 2014-01-29  Richard Biener  <rguenther@suse.de>
8985         * lto-streamer.h (LTO_major_version): Bump to 3.
8986         (LTO_minor_version): Reset to 0.
8988 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
8990         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8991         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8992         (arm_file_start): Generate correct asm header for armv7ve.
8993         * config/arm/bpabi.h: Add multilib support for armv7ve.
8994         * config/arm/driver-arm.c: Change the architectures of cortex-a7
8995         and cortex-a15 to armv7ve.
8996         * config/arm/t-aprofile: Add multilib support for armv7ve.
8997         * doc/invoke.texi: Document -march=armv7ve.
8999 2014-01-29  Richard Biener  <rguenther@suse.de>
9001         PR tree-optimization/58742
9002         * tree-ssa-forwprop.c (associate_plusminus): Return true
9003         if we changed sth, defer EH cleanup to ...
9004         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
9005         (simplify_mult): New function.
9007 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
9009         PR middle-end/59917
9010         PR tree-optimization/59920
9011         * tree.c (build_common_builtin_nodes): Remove
9012         __builtin_setjmp_dispatcher initialization.
9013         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
9014         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
9015         instead of gsi_after_labels + manually skipping debug stmts.
9016         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
9017         ignore bbs with IFN_ABNORMAL_DISPATCHER.
9018         * tree-inline.c (copy_edges_for_bb): Remove
9019         can_make_abnormal_goto argument, instead add abnormal_goto_dest
9020         argument.  Ignore computed_goto_p stmts.  Don't call
9021         make_abnormal_goto_edges.  If a call might need abnormal edges
9022         for non-local gotos, see if it already has an edge to
9023         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
9024         with true argument, don't do anything then, otherwise add
9025         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
9026         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
9027         caller.
9028         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
9029         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
9030         (lower_stmt): Don't set data->calls_builtin_setjmp.
9031         (lower_builtin_setjmp): Adjust comment.
9032         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
9033         * tree-cfg.c (found_computed_goto): Remove.
9034         (factor_computed_gotos): Remove.
9035         (make_goto_expr_edges): Return bool, true for computed gotos.
9036         Don't call make_abnormal_goto_edges.
9037         (build_gimple_cfg): Don't set found_computed_goto, don't call
9038         factor_computed_gotos.
9039         (computed_goto_p): No longer static.
9040         (make_blocks): Don't set found_computed_goto.
9041         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
9042         (make_edges): If make_goto_expr_edges returns true, push bb
9043         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
9044         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
9045         vector.  Record mapping between bbs and OpenMP regions if there
9046         are any, adjust make_gimple_omp_edges caller.  Call
9047         handle_abnormal_edges.
9048         (make_abnormal_goto_edges): Remove.
9049         * tree-cfg.h (make_abnormal_goto_edges): Remove.
9050         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
9051         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
9052         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
9053         * internal-fn.def (ABNORMAL_DISPATCHER): New.
9054         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
9055         filling *region also set *region_idx to (*region)->entry->index.
9057         PR other/58712
9058         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
9059         For REGs set ORIGINAL_REGNO.
9061 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
9063         * doc/md.texi: Mention that a target shouldn't implement
9064         vec_widen_(s|u)mul_even/odd pair if it is less efficient
9065         than hi/lo pair.
9067 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
9069         PR tree-optimization/59594
9070         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
9071         a copy of the datarefs vector rather than the vector itself.
9073 2014-01-28  Jason Merrill  <jason@redhat.com>
9075         PR c++/53756
9076         * dwarf2out.c (auto_die): New static.
9077         (gen_type_die_with_usage): Handle C++1y 'auto'.
9078         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
9079         on definition.
9081 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9083         PR target/59672
9084         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9085         (SPEC_X32): Likewise.
9086         (SPEC_64): Likewise.
9087         * config/i386/i386.c (ix86_option_override_internal): Turn off
9088         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9089         for TARGET_16BIT.
9090         (x86_file_start): Output .code16gcc for TARGET_16BIT.
9091         * config/i386/i386.h (TARGET_16BIT): New macro.
9092         (TARGET_16BIT_P): Likewise.
9093         * config/i386/i386.opt: Add m16.
9094         * doc/invoke.texi: Document -m16.
9096 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
9098         PR preprocessor/59935
9099         * input.c (location_get_source_line): Bail out on when line number
9100         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9102 2014-01-28  Richard Biener  <rguenther@suse.de>
9104         PR tree-optimization/58742
9105         * tree-ssa-forwprop.c (associate_plusminus): Handle
9106         pointer subtraction of the form (T)(P + A) - (T)P.
9108 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9110         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9111         at const_int_cost.
9113 2014-01-28  Richard Biener  <rguenther@suse.de>
9115         Revert
9116         2014-01-28  Richard Biener  <rguenther@suse.de>
9118         PR rtl-optimization/45364
9119         PR rtl-optimization/59890
9120         * var-tracking.c (local_get_addr_clear_given_value): Handle
9121         already cleared slot.
9122         (val_reset): Handle not allocated local_get_addr_cache.
9123         (vt_find_locations): Use post-order on the inverted CFG.
9125 2014-01-28  Richard Biener  <rguenther@suse.de>
9127         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9129 2014-01-28  Richard Biener  <rguenther@suse.de>
9131         PR rtl-optimization/45364
9132         PR rtl-optimization/59890
9133         * var-tracking.c (local_get_addr_clear_given_value): Handle
9134         already cleared slot.
9135         (val_reset): Handle not allocated local_get_addr_cache.
9136         (vt_find_locations): Use post-order on the inverted CFG.
9138 2014-01-28  Alan Modra  <amodra@gmail.com>
9140         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9141         * configure.ac <recursive call for build != host>: Define
9142         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9143         and LD_FOR_BUILD too.
9144         * configure: Regenerate.
9146 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
9148         * config/i386/i386.c (get_builtin_code_for_version): Separate
9149         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9150         Broadwell from Haswell.
9152 2014-01-27  Steve Ellcey  <sellcey@mips.com>
9154         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9155         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9156         * config/mips/mips.c (mips_option_override): Change setting
9157         of TARGET_DSP.
9158         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9159         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9160         Change from Mask to Var.
9162 2014-01-27  Jeff Law  <law@redhat.com>
9164         * ipa-inline.c (inline_small_functions): Fix typo.
9166 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
9168         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9169         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9170         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9171         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9172         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9173         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9174         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9175         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9176         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9177         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9178         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9179         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9180         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9181         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9182         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9183         (_mm512_storeu_epi64): Ditto.
9184         (_mm512_cmpge_epi32_mask): Ditto.
9185         (_mm512_cmpge_epu32_mask): Ditto.
9186         (_mm512_cmpge_epi64_mask): Ditto.
9187         (_mm512_cmpge_epu64_mask): Ditto.
9188         (_mm512_cmple_epi32_mask): Ditto.
9189         (_mm512_cmple_epu32_mask): Ditto.
9190         (_mm512_cmple_epi64_mask): Ditto.
9191         (_mm512_cmple_epu64_mask): Ditto.
9192         (_mm512_cmplt_epi32_mask): Ditto.
9193         (_mm512_cmplt_epu32_mask): Ditto.
9194         (_mm512_cmplt_epi64_mask): Ditto.
9195         (_mm512_cmplt_epu64_mask): Ditto.
9196         (_mm512_cmpneq_epi32_mask): Ditto.
9197         (_mm512_cmpneq_epu32_mask): Ditto.
9198         (_mm512_cmpneq_epi64_mask): Ditto.
9199         (_mm512_cmpneq_epu64_mask): Ditto.
9200         (_mm512_expand_pd): Ditto.
9201         (_mm512_expand_ps): Ditto.
9202         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9203         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9204         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9205         * config/i386/i386.c (ix86_builtins): Add
9206         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9207         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9208         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9209         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9210         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9211         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9212         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9213         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9214         IX86_BUILTIN_PMOVUSQW512_MEM.
9215         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9216         __builtin_ia32_pmovsqd512mem_mask,
9217         __builtin_ia32_pmovqd512mem_mask,
9218         __builtin_ia32_pmovusqw512mem_mask,
9219         __builtin_ia32_pmovsqw512mem_mask,
9220         __builtin_ia32_pmovqw512mem_mask,
9221         __builtin_ia32_pmovusdw512mem_mask,
9222         __builtin_ia32_pmovsdw512mem_mask,
9223         __builtin_ia32_pmovdw512mem_mask,
9224         __builtin_ia32_pmovqb512mem_mask,
9225         __builtin_ia32_pmovusqb512mem_mask,
9226         __builtin_ia32_pmovsqb512mem_mask,
9227         __builtin_ia32_pmovusdb512mem_mask,
9228         __builtin_ia32_pmovsdb512mem_mask,
9229         __builtin_ia32_pmovdb512mem_mask.
9230         (bdesc_args): Add __builtin_ia32_expanddf512,
9231         __builtin_ia32_expandsf512.
9232         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9233         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9234         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9235         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9236         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9237         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9238         (avx512f_<code>v8div16qi2_mask_store): This.
9239         (avx512f_expand<mode>): New.
9241 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
9243         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9244         New.
9245         (_mm512_mask_prefetch_i64gather_pd): Ditto.
9246         (_mm512_prefetch_i32scatter_pd): Ditto.
9247         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9248         (_mm512_prefetch_i64scatter_pd): Ditto.
9249         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9250         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9251         (_mm512_mask_prefetch_i64gather_ps): Ditto.
9252         (_mm512_prefetch_i32scatter_ps): Ditto.
9253         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9254         (_mm512_prefetch_i64scatter_ps): Ditto.
9255         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9256         * config/i386/i386-builtin-types.def: Define
9257         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9258         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9259         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9260         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9261         IX86_BUILTIN_SCATTERPFQPD.
9262         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9263         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9264         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9265         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9266         __builtin_ia32_scatterpfqps.
9267         (ix86_expand_builtin): Expand new built-ins.
9268         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9269         fix memory access data type.
9270         (*avx512pf_gatherpf<mode>_mask): Ditto.
9271         (*avx512pf_gatherpf<mode>): Ditto.
9272         (avx512pf_scatterpf<mode>): Ditto.
9273         (*avx512pf_scatterpf<mode>_mask): Ditto.
9274         (*avx512pf_scatterpf<mode>): Ditto.
9275         (GATHER_SCATTER_SF_MEM_MODE): New.
9276         (avx512pf_gatherpf<mode>df): Ditto.
9277         (*avx512pf_gatherpf<mode>df_mask): Ditto.
9278         (*avx512pf_scatterpf<mode>df): Ditto.
9280 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
9282         PR bootstrap/59934
9283         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9284         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9285         reached.
9287 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9289         * common/config/arm/arm-common.c
9290         (arm_rewrite_mcpu): Handle multiple names.
9291         * config/arm/arm.h
9292         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9294 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
9296         * gimple-builder.h (create_gimple_tmp): Delete.
9298 2014-01-27  Christian Bruel  <christian.bruel@st.com>
9300         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9301         words comparisons.
9303 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
9305         * config/pa/pa.md (call): Generate indirect long calls to non-local
9306         functions when outputing 32-bit code.
9307         (call_value): Likewise except for special call to buggy powf function.
9309         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9310         portable runtime and PIC indirect calls.
9311         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9312         and PIC call sequences.  Use ldo instead of blr to set return register
9313         in PIC call sequence.
9315 2014-01-25  Walter Lee  <walt@tilera.com>
9317         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9318         avoid clobbering a live register.
9320 2014-01-25  Walter Lee  <walt@tilera.com>
9322         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9323         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9324         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9325         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9327 2014-01-25  Walter Lee  <walt@tilera.com>
9329         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9330         arguments on even registers.
9331         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9332         STACK_BOUNDARY.
9333         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9334         (BIGGEST_ALIGNMENT): Ditto.
9335         (BIGGEST_FIELD_ALIGNMENT): Ditto.
9337 2014-01-25  Walter Lee  <walt@tilera.com>
9339         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9340         insns before bundling.
9341         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9343 2014-01-25  Walter Lee  <walt@tilera.com>
9345         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9346         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9347         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9349 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9351         * config/mips/constraints.md (kl): Delete.
9352         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9353         define expands, using...
9354         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9355         instructions for MIPS16.
9356         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9357         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9359 2014-01-25  Walter Lee  <walt@tilera.com>
9361         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9362         (clzdi2): Ditto.
9363         (ffsdi2): Ditto.
9365 2014-01-25  Walter Lee  <walt@tilera.com>
9367         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9368         (TARGET_EXPAND_TO_RTL_HOOK): Define.
9370 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
9372         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9373         Handle XOR.
9375 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
9377         * print-rtl.c (in_call_function_usage): New var.
9378         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9379         EXPR_LIST mode as mode and not as reg note name.
9381         PR middle-end/59561
9382         * cfgloopmanip.c (copy_loop_info): If
9383         loop->warned_aggressive_loop_optimizations, make sure
9384         the flag is set in target loop too.
9386 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
9388         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9389         flag_cilkplus.
9390         * builtins.def: Likewise.
9391         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9392         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9393         * ira.c (ira_setup_eliminable_regset): Likewise.
9394         * omp-low.c (gate_expand_omp): Likewise.
9395         (execute_lower_omp): Likewise.
9396         (diagnose_sb_0): Likewise.
9397         (gate_diagnose_omp_blocks): Likewise.
9398         (simd_clone_clauses_extract): Likewise.
9399         (gate): Likewise.
9401 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9403         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
9404         correction for little endian...
9405         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
9406         here.
9408 2014-01-24  Jeff Law  <law@redhat.com>
9410         PR tree-optimization/59919
9411         * tree-vrp.c (find_assert_locations_1): Do not register asserts
9412         for non-returning calls.
9414 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
9416         * common/config/aarch64/aarch64-common.c
9417         (aarch64_rewrite_mcpu): Handle multiple names.
9418         * config/aarch64/aarch64.h
9419         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9421 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
9423         * input.c (add_file_to_cache_tab): Handle the case where fopen
9424         returns NULL.
9426 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
9428         PR target/59929
9429         * config/i386/i386.md (pushsf splitter): Get stack adjustment
9430         from push operand if code of push isn't PRE_DEC.
9432 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9434         PR target/59909
9435         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9436         -mquad-memory-atomic.  Update -mquad-memory documentation to say
9437         it is only used for non-atomic loads/stores.
9439         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
9440         -mquad-memory or -mquad-memory-atomic switches.
9442         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
9443         -mquad-memory-atomic to ISA 2.07 support.
9445         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
9446         to separate support of normal quad word memory operations (ldq, stq)
9447         from the atomic quad word memory operations.
9449         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9450         support to separate non-atomic quad word operations from atomic
9451         quad word operations.  Disable non-atomic quad word operations in
9452         little endian mode so that we don't have to swap words after the
9453         load and before the store.
9454         (quad_load_store_p): Add comment about atomic quad word support.
9455         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
9456         options printed with -mdebug=reg.
9458         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
9459         -mquad-memory-atomic as the test for whether we have quad word
9460         atomic instructions.
9461         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
9462         or -mp8-vector are used, allow byte/half-word atomic operations.
9464         * config/rs6000/sync.md (load_lockedti): Insure that the address
9465         is a proper indexed or indirect address for the lqarx instruction.
9466         On little endian systems, swap the hi/lo registers after the lqarx
9467         instruction.
9468         (load_lockedpti): Use indexed_or_indirect_operand predicate to
9469         insure the address is valid for the lqarx instruction.
9470         (store_conditionalti): Insure that the address is a proper indexed
9471         or indirect address for the stqcrx. instruction.  On little endian
9472         systems, swap the hi/lo registers before doing the stqcrx.
9473         instruction.
9474         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
9475         insure the address is valid for the stqcrx. instruction.
9477         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
9478         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
9479         type of quad memory support is available.
9481 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
9483         PR regression/59915
9484         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
9485         there is a danger of looping.
9487 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
9489         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9490         force flag_ira_loop_pressure if set via command line.
9492 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9494         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
9495         (ashr_simd): New builtin handling DI mode.
9496         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
9497         (aarch64_sshr_simddi): New match pattern.
9498         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
9499         (vshrd_n_s64): Likewise.
9500         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
9502 2014-01-23  Nick Clifton  <nickc@redhat.com>
9504         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
9505         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
9506         favour of mcu specific scripts.
9507         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
9508         430x multilibs.
9510 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
9511             Alex Velenko  <Alex.Velenko@arm.com>
9513         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
9514         (vaddv_s16): Likewise.
9515         (vaddv_s32): Likewise.
9516         (vaddv_u8): Likewise.
9517         (vaddv_u16): Likewise.
9518         (vaddv_u32): Likewise.
9519         (vaddvq_s8): Likewise.
9520         (vaddvq_s16): Likewise.
9521         (vaddvq_s32): Likewise.
9522         (vaddvq_s64): Likewise.
9523         (vaddvq_u8): Likewise.
9524         (vaddvq_u16): Likewise.
9525         (vaddvq_u32): Likewise.
9526         (vaddvq_u64): Likewise.
9527         (vaddv_f32): Likewise.
9528         (vaddvq_f32): Likewise.
9529         (vaddvq_f64): Likewise.
9530         (vmaxv_f32): Likewise.
9531         (vmaxv_s8): Likewise.
9532         (vmaxv_s16): Likewise.
9533         (vmaxv_s32): Likewise.
9534         (vmaxv_u8): Likewise.
9535         (vmaxv_u16): Likewise.
9536         (vmaxv_u32): Likewise.
9537         (vmaxvq_f32): Likewise.
9538         (vmaxvq_f64): Likewise.
9539         (vmaxvq_s8): Likewise.
9540         (vmaxvq_s16): Likewise.
9541         (vmaxvq_s32): Likewise.
9542         (vmaxvq_u8): Likewise.
9543         (vmaxvq_u16): Likewise.
9544         (vmaxvq_u32): Likewise.
9545         (vmaxnmv_f32): Likewise.
9546         (vmaxnmvq_f32): Likewise.
9547         (vmaxnmvq_f64): Likewise.
9548         (vminv_f32): Likewise.
9549         (vminv_s8): Likewise.
9550         (vminv_s16): Likewise.
9551         (vminv_s32): Likewise.
9552         (vminv_u8): Likewise.
9553         (vminv_u16): Likewise.
9554         (vminv_u32): Likewise.
9555         (vminvq_f32): Likewise.
9556         (vminvq_f64): Likewise.
9557         (vminvq_s8): Likewise.
9558         (vminvq_s16): Likewise.
9559         (vminvq_s32): Likewise.
9560         (vminvq_u8): Likewise.
9561         (vminvq_u16): Likewise.
9562         (vminvq_u32): Likewise.
9563         (vminnmv_f32): Likewise.
9564         (vminnmvq_f32): Likewise.
9565         (vminnmvq_f64): Likewise.
9567 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
9569         * config/aarch64/aarch64-simd.md
9570         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
9571         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
9572         (*aarch64_mul3_elt<mode>): Likewise.
9573         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
9574         (*aarch64_mul3_elt_to_64v2df): Likewise.
9575         (*aarch64_mla_elt<mode>): Likewise.
9576         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
9577         (*aarch64_mls_elt<mode>): Likewise.
9578         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
9579         (*aarch64_fma4_elt<mode>): Likewise.
9580         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
9581         (*aarch64_fma4_elt_to_64v2df): Likewise.
9582         (*aarch64_fnma4_elt<mode>): Likewise.
9583         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
9584         (*aarch64_fnma4_elt_to_64v2df): Likewise.
9585         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9586         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
9587         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9588         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9589         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
9590         (aarch64_sqdmull_lane<mode>_internal): Likewise.
9591         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
9593 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9595         * config/aarch64/aarch64-simd.md
9596         (aarch64_be_checked_get_lane<mode>): New define_expand.
9597         * config/aarch64/aarch64-simd-builtins.def
9598         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
9599         New builtin definition.
9600         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
9601         Use new safe be builtin.
9603 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
9605         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
9606         New define_insn.
9607         (aarch64_be_st1<mode>): Likewise.
9608         (aarch_ld1<VALL:mode>): Define_expand modified.
9609         (aarch_st1<VALL:mode>): Likewise.
9610         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
9611         (UNSPEC_ST1): Likewise.
9613 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
9615         * config/microblaze/microblaze.md: Add trap insn and attribute
9617 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
9619         PR preprocessor/58580
9620         * input.h (location_get_source_line): Take an additional line_size
9621         parameter.
9622         (void diagnostics_file_cache_fini): Declare new function.
9623         * input.c (struct fcache): New type.
9624         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
9625         New static constants.
9626         (diagnostic_file_cache_init, total_lines_num)
9627         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
9628         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
9629         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
9630         (get_next_line, read_next_line, goto_next_line, read_line_num):
9631         New static function definitions.
9632         (diagnostic_file_cache_fini): New function.
9633         (location_get_source_line): Take an additional output line_len
9634         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
9635         read_line_num.
9636         * diagnostic.c (diagnostic_finish): Call
9637         diagnostic_file_cache_fini.
9638         (adjust_line): Take an additional input parameter for the length
9639         of the line, rather than calculating it with strlen.
9640         (diagnostic_show_locus): Adjust the use of
9641         location_get_source_line and adjust_line with respect to their new
9642         signature.  While displaying a line now, do not stop at the first
9643         null byte.  Rather, display the zero byte as a space and keep
9644         going until we reach the size of the line.
9645         * Makefile.in: Add vec.o to OBJS-libcommon
9647 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
9648             Ilya Tocar     <ilya.tocar@intel.com>
9650         * config/i386/avx512fintrin.h (_mm512_kmov): New.
9651         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
9652         (__builtin_ia32_kmov16): Ditto.
9653         * config/i386/i386.md (UNSPEC_KMOV): New.
9654         (kmovw): Ditto.
9656 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
9658         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
9659         (_mm512_storeu_si512): Ditto.
9661 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
9663         PR target/52125
9664         * rtl.h (get_referenced_operands): Declare.
9665         * recog.c (get_referenced_operands): New function.
9666         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
9667         operands have been referenced when recording LO_SUM references.
9669 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
9671         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
9673 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
9675         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
9676         Enable for generic and recent AMD targets.
9678 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
9680         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
9681         ARG_SIZE note when adjustment was eliminated.
9683 2014-01-22  Jeff Law  <law@redhat.com>
9685         PR tree-optimization/59597
9686         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
9687         in file.  Accept new argument REGISTERING and use it to modify
9688         dump output appropriately.
9689         (register_jump_thread): Corresponding changes.
9690         (mark_threaded_blocks): Reinstate code to cancel unprofitable
9691         thread paths involving joiner blocks.  Add code to dump cancelled
9692         jump threading paths.
9694 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
9696         PR rtl-optimization/59477
9697         * lra-constraints.c (inherit_in_ebb): Process call for living hard
9698         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
9700 2014-01-22  Tom Tromey  <tromey@redhat.com>
9702         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
9703         PARAMS.
9704         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
9706 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9708         PR rtl-optimization/59896
9709         * lra-constraints.c (process_alt_operands): Check unused note for
9710         matched operands of insn with no output reloads.
9712 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
9714         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
9715         (mips_move_from_gpr_cost): Likewise.
9717 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9719         PR rtl-optimization/59858
9720         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
9721         ira_class_hard_regs_num.
9722         (process_alt_operands): Increase reject for dying matched operand.
9724 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
9726         PR target/59003
9727         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9728         smaller than size, perform several stores or loads and stores
9729         at dst + count - size to store or copy all of size bytes, rather
9730         than just last modesize bytes.
9732 2014-01-20  DJ Delorie  <dj@redhat.com>
9734         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9735         that CLOBBERs are REGs before propogating their values.
9737 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
9739         PR middle-end/59789
9740         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9741         (cgraph_inline_failed_type): New function.
9742         * cgraph.h (DEFCIFCODE): Add type.
9743         (cgraph_inline_failed_type_t): New enum.
9744         (cgraph_inline_failed_type): New prototype.
9745         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9746         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9747         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9748         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9749         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9750         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9751         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9752         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9753         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9754         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9755         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9756         OPTIMIZATION_MISMATCH.
9757         * tree-inline.c (expand_call_inline): Emit errors during
9758         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9760 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9762         PR target/59685
9763         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9764         mode attribute in insn output.
9766 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
9768         * output.h (output_constant): Delete.
9769         * varasm.c (output_constant): Make private.
9771 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
9773         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9775 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9777         PR middle-end/59860
9778         * tree.h (fold_builtin_strcat): New prototype.
9779         * builtins.c (fold_builtin_strcat): No longer static.  Add len
9780         argument, if non-NULL, don't call c_strlen.  Optimize
9781         directly into __builtin_memcpy instead of __builtin_strcpy.
9782         (fold_builtin_2): Adjust fold_builtin_strcat caller.
9783         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9785 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
9787         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9788         for SImode_address_operand operands, having only a REG argument.
9790 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9792         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9793         loader name using mbig-endian.
9794         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9796 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9798         * doc/invoke.texi (-march): Clarify documentation for AArch64.
9799         (-mtune): Likewise.
9800         (-mcpu): Likewise.
9802 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
9804         * config/aarch64/aarch64-protos.h
9805         (aarch64_cannot_change_mode_class_ptr): Declare.
9806         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9807         aarch64_cannot_change_mode_class_ptr): New.
9808         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9809         backend hook aarch64_cannot_change_mode_class.
9811 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
9813         * common/config/aarch64/aarch64-common.c
9814         (aarch64_handle_option): Don't handle any option order logic here.
9815         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9816         selected_cpu, warn on architecture version mismatch.
9817         (aarch64_override_options): Fix parsing order for option strings.
9819 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9820             Iain Sandoe  <iain@codesourcery.com>
9822         PR bootstrap/59496
9823         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9824         warning.  Amend comment to reflect current functionality.
9826 2014-01-20  Richard Biener  <rguenther@suse.de>
9828         PR middle-end/59860
9829         * builtins.c (fold_builtin_strcat): Remove case better handled
9830         by tree-ssa-strlen.c.
9832 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
9834         * config/aarch64/aarch64.opt
9835         (mcpu, march, mtune): Make case-insensitive.
9837 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
9839         PR target/59880
9840         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9841         if operands[1] is a REG or ZERO_EXTEND of a REG.
9843 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
9845         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9847 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
9849         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9850         long non-pic millicode calls.
9852 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9854         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9856 2014-01-19  Kito Cheng  <kito@0xlab.org>
9858         * builtins.c (expand_movstr): Check movstr expand done or fail.
9860 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9861             H.J. Lu  <hongjiu.lu@intel.com>
9863         PR target/59379
9864         * config/i386/i386.md (*lea<mode>): Zero-extend return register
9865         to DImode for zero-extended addresses.
9867 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
9869         PR rtl-optimization/57763
9870         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9871         on the new indirect jump_insn and increment LABEL_NUSES (label).
9873 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9875         PR bootstrap/59580
9876         PR bootstrap/59583
9877         * config.gcc (x86_archs): New variable.
9878         (x86_64_archs): Likewise.
9879         (x86_cpus): Likewise.
9880         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9881         --with-arch/--with-cpu= options.
9882         Support --with-arch=/--with-cpu={nehalem,westmere,
9883         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9885 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9887         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9888         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
9890 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
9892         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9894 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
9896         PR target/58944
9897         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9898         clear cpp_get_options (parse_in)->warn_unused_macros for
9899         ix86_target_macros_internal with cpp_define.
9901 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
9903         * jump.c (delete_related_insns): Keep (use (insn))s.
9904         * reorg.c (redundant_insn): Check for barriers too.
9906 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9908         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9910 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
9912         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9913         call to $$dyncall when TARGET_LONG_CALLS is true.
9915 2014-01-17  Jeff Law  <law@redhat.com>
9917         * ree.c (combine_set_extension): Temporarily disable test for
9918         changing number of hard registers.
9920 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
9922         PR middle-end/58125
9923         * ipa-inline-analysis.c (inline_free_summary):
9924         Do not free summary of aliases.
9926 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
9928         PR middle-end/59706
9929         * gimplify.c (gimplify_expr): Use create_tmp_var
9930         instead of create_tmp_var_raw.  If cond doesn't have
9931         integral type, don't add the IFN_ANNOTATE builtin at all.
9933 2014-01-17  Martin Jambor  <mjambor@suse.cz>
9935         PR ipa/59736
9936         * ipa-cp.c (prev_edge_clone): New variable.
9937         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9938         Also resize prev_edge_clone vector.
9939         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9940         (ipcp_edge_removal_hook): New function.
9941         (ipcp_driver): Register ipcp_edge_removal_hook.
9943 2014-01-17  Andrew Pinski  <apinski@cavium.com>
9944             Steve Ellcey  <sellcey@mips.com>
9946         PR target/59462
9947         * config/mips/mips.c (mips_print_operand): Check operand mode instead
9948         of operator mode.
9950 2014-01-17  Jeff Law  <law@redhat.com>
9952         PR middle-end/57904
9953         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9954         so that pass_ccp runs first.
9956 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9958         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9959         (ix86_adjust_cost): Use !TARGET_XXX.
9960         (do_reorder_for_imul): Likewise.
9961         (swap_top_of_ready_list): Likewise.
9962         (ix86_sched_reorder): Likewise.
9964 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9966         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9967         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
9968         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
9969         (intel_memset): New.  Duplicate slm_memset.
9970         (intel_cost): New.  Duplicate slm_cost.
9971         (m_INTEL): New macro.
9972         (processor_target_table): Add "intel".
9973         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9974         with PROCESSOR_INTEL for "intel".
9975         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
9976         PROCESSOR_SILVERMONT.
9977         (ix86_issue_rate): Likewise.
9978         (ix86_adjust_cost): Likewise.
9979         (ia32_multipass_dfa_lookahead): Likewise.
9980         (swap_top_of_ready_list): Likewise.
9981         (ix86_sched_reorder): Likewise.
9982         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9983         instead of TARGET_OPT_AGU.
9984         * config/i386/i386.h (TARGET_INTEL): New.
9985         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9986         (processor_type): Add PROCESSOR_INTEL.
9987         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9988         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9990 2014-01-17  Marek Polacek  <polacek@redhat.com>
9992         PR c/58346
9993         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9994         size is zero.
9996 2014-01-17  Richard Biener  <rguenther@suse.de>
9998         PR tree-optimization/46590
9999         * opts.c (default_options_table): Add entries for
10000         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
10001         all enabled at -O1 but not for -Og.
10002         * common.opt (fbranch-count-reg): Remove Init(1).
10003         (fmove-loop-invariants): Likewise.
10004         (ftree-pta): Likewise.
10006 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
10008         * config/i386/i386.c (ix86_data_alignment): For compatibility with
10009         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
10010         decls to at least the GCC 4.8 used alignments.
10012         PR fortran/59440
10013         * tree-nested.c (convert_nonlocal_reference_stmt,
10014         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
10015         of GIMPLE_BIND stmts, adjust associated decls.
10017 2014-01-17  Richard Biener  <rguenther@suse.de>
10019         PR tree-optimization/46590
10020         * vec.h (vec<>::bseach): New member function implementing
10021         binary search according to C89 bsearch.
10022         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
10023         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
10024         bitmap pointer again.  Make accesses_in_loop a flat array.
10025         (mem_ref_obstack): New global.
10026         (outermost_indep_loop): Adjust for mem_ref->stored changes.
10027         (mark_ref_stored): Likewise.
10028         (ref_indep_loop_p_2): Likewise.
10029         (set_ref_stored_in_loop): New helper function.
10030         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
10031         (memref_free): Adjust.
10032         (record_mem_ref_loc): Simplify.
10033         (gather_mem_refs_stmt): Adjust.
10034         (sort_locs_in_loop_postorder_cmp): New function.
10035         (analyze_memory_references): Sort accesses_in_loop after
10036         loop postorder number.
10037         (find_ref_loc_in_loop_cmp): New function.
10038         (for_all_locs_in_loop): Find relevant cluster of locs in
10039         accesses_in_loop and iterate without recursion.
10040         (execute_sm): Avoid uninit warning.
10041         (struct ref_always_accessed): Simplify.
10042         (ref_always_accessed::operator ()): Likewise.
10043         (ref_always_accessed_p): Likewise.
10044         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
10045         loop postorder numbers here.
10046         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
10047         numbers.
10049 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
10051         PR c++/57945
10052         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
10053         on decls for which assemble_alias has been called.
10055 2014-01-17  Nick Clifton  <nickc@redhat.com>
10057         * config/msp430/msp430.opt: (mcpu): New option.
10058         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
10059         (msp430_option_override): Parse target_cpu.  If the MCU name
10060         matches a generic string, clear target_mcu.
10061         (msp430_attr): Allow numeric interrupt values up to 63.
10062         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
10063         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
10064         option.
10065         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
10066         Add mcpu matches.
10067         * config/msp430/msp430.md (popm): Use %J rather than %I.
10068         (addsi3): Use msp430_nonimmediate_operand for operand 2.
10069         (addhi_cy_i): Use immediate_operand for operand 2.
10070         * doc/invoke.texi: Document -mcpu option.
10072 2014-01-17  Richard Biener  <rguenther@suse.de>
10074         PR rtl-optimization/38518
10075         * df.h (df_analyze_loop): Declare.
10076         * df-core.c: Include cfgloop.h.
10077         (df_analyze_1): Split out main part of df_analyze.
10078         (df_analyze): Adjust.
10079         (loop_inverted_post_order_compute): New function.
10080         (loop_post_order_compute): Likewise.
10081         (df_analyze_loop): New function avoiding whole-function
10082         postorder computes.
10083         * loop-invariant.c (find_defs): Use df_analyze_loop.
10084         (find_invariants): Adjust.
10085         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10087 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10089         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10090         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10092 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
10094         * ipa-ref.c (ipa_remove_stmt_references): Fix references
10095         traversal when removing references.
10097 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
10099         PR ipa/59775
10100         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10102 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
10104         PR middle-end/56791
10105         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10106         pushing a reload for an autoinc when we had previously reloaded an
10107         inner part of the address.
10109 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
10111         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10112         field.
10113         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10114         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10115         when not giving up or versioning for alias only because of
10116         loop->safelen.
10117         (vect_analyze_data_ref_dependences): Set to true.
10118         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10119         is a GIMPLE_PHI.
10120         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10121         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10122         to the condition.
10124         PR middle-end/58344
10125         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10127         PR target/59839
10128         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10129         operand 0 predicate for gathers, use a new pseudo as subtarget.
10131 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10133         PR middle-end/59609
10134         * lra-constraints.c (process_alt_operands): Add printing debug info.
10135         Check absence of input/output reloads for matched operands too.
10137 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10139         PR rtl-optimization/59835
10140         * ira.c (ira_init_register_move_cost): Increase cost for
10141         impossible modes.
10143 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
10145         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10147 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
10149         PR target/59780
10150         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10151         non-register objects.  Use gen_(high/low)part more consistently.
10152         Fix assertions.
10154 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
10156         PR target/59844
10157         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10158         endian support, remove tests for WORDS_BIG_ENDIAN.
10159         (p8_mfvsrd_3_<mode>): Likewise.
10160         (reload_gpr_from_vsx<mode>): Likewise.
10161         (reload_gpr_from_vsxsf): Likewise.
10162         (p8_mfvsrd_4_disf): Likewise.
10164 2014-01-16  Richard Biener  <rguenther@suse.de>
10166         PR rtl-optimization/46590
10167         * lcm.c (compute_antinout_edge): Use postorder iteration.
10168         (compute_laterin): Use inverted postorder iteration.
10170 2014-01-16  Nick Clifton  <nickc@redhat.com>
10172         PR middle-end/28865
10173         * varasm.c (output_constant): Return the number of bytes actually
10174         emitted.
10175         (output_constructor_array_range): Update the field size with the
10176         number of bytes emitted by output_constant.
10177         (output_constructor_regular_field): Likewise.  Also do not
10178         complain if the total number of bytes emitted is now greater
10179         than the expected fieldpos.
10180         * output.h (output_constant): Update prototype and descriptive comment.
10182 2014-01-16  Marek Polacek  <polacek@redhat.com>
10184         PR middle-end/59827
10185         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10186         it is error_mark_node.
10188 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
10190         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10191         VALID_AVX256_REG_OR_OI_MODE.
10193 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
10195         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10196         current procedure should be profiled.
10198 2014-01-15  Andrew Pinski  <apinski@cavium.com>
10200         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10201         of moving from/to the STACK_REG register class.
10203 2014-01-15  Richard Henderson  <rth@redhat.com>
10205         PR debug/54694
10206         * reginfo.c (global_regs_decl): Globalize.
10207         * rtl.h (global_regs_decl): Declare.
10208         * ira.c (do_reload): Diagnose frame_pointer_needed and it
10209         reserved via global_regs.
10211 2014-01-15  Teresa Johnson  <tejohnson@google.com>
10213         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10215 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
10217         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10218         and vmulosh rather than call gen_vec_widen_smult_*.
10219         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10220         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10221         (vec_widen_smult_even_v16qi): Likewise.
10222         (vec_widen_umult_even_v8hi): Likewise.
10223         (vec_widen_smult_even_v8hi): Likewise.
10224         (vec_widen_umult_odd_v16qi): Likewise.
10225         (vec_widen_smult_odd_v16qi): Likewise.
10226         (vec_widen_umult_odd_v8hi): Likewise.
10227         (vec_widen_smult_odd_v8hi): Likewise.
10228         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10229         vmuloub rather than call gen_vec_widen_umult_*.
10230         (vec_widen_umult_lo_v16qi): Likewise.
10231         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10232         vmulosb rather than call gen_vec_widen_smult_*.
10233         (vec_widen_smult_lo_v16qi): Likewise.
10234         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10235         rather than call gen_vec_widen_umult_*.
10236         (vec_widen_umult_lo_v8hi): Likewise.
10237         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10238         rather than call gen_vec_widen_smult_*.
10239         (vec_widen_smult_lo_v8hi): Likewise.
10241 2014-01-15  Jeff Law  <law@redhat.com>
10243         PR tree-optimization/59747
10244         * ree.c (find_and_remove_re): Properly handle case where a second
10245         eliminated extension requires widening a copy created for elimination
10246         of a prior extension.
10247         (combine_set_extension): Ensure that the number of hard regs needed
10248         for a destination register does not change when we widen it.
10250 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10252         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10253         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10254         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10255         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10256         (avr-*-rtems*): Likewise.
10257         (bfin*-rtems*): Likewise.
10258         (moxie-*-rtems*): Likewise.
10259         (h8300-*-rtems*): Likewise.
10260         (i[34567]86-*-rtems*): Likewise.
10261         (lm32-*-rtems*): Likewise.
10262         (m32r-*-rtems*): Likewise.
10263         (m68k-*-rtems*): Likewise.
10264         (microblaze*-*-rtems*): Likewise.
10265         (mips*-*-rtems*): Likewise.
10266         (powerpc-*-rtems*): Likewise.
10267         (sh-*-rtems*): Likewise.
10268         (sparc-*-rtems*): Likewise.
10269         (sparc64-*-rtems*): Likewise.
10270         (v850-*-rtems*): Likewise.
10271         (m32c-*-rtems*): Likewise.
10273 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10275         PR rtl-optimization/59511
10276         * ira.c (ira_init_register_move_cost): Use memory costs for some
10277         cases of register move cost calculations.
10278         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10279         instead of BB frequency.
10280         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10281         * lra-assigns.c (find_hard_regno_for): Ditto.
10283 2014-01-15  Richard Biener  <rguenther@suse.de>
10285         PR tree-optimization/59822
10286         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10287         (vectorizable_load): Use it to hoist defs of uses of invariant
10288         loads out of the loop.
10290 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
10291             Kugan Vivekanandarajah  <kuganv@linaro.org>
10293         PR target/59695
10294         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10295         truncation.
10297 2014-01-15  Richard Biener  <rguenther@suse.de>
10299         PR rtl-optimization/59802
10300         * lcm.c (compute_available): Use inverted postorder to seed
10301         the initial worklist.
10303 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10305         PR target/59803
10306         * config/s390/s390.c (s390_preferred_reload_class): Don't return
10307         ADDR_REGS for invalid symrefs in non-PIC code.
10309 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
10311         PR other/58712
10312         * builtins.c (determine_block_size): Initialize *probable_max_size
10313         even if len_rtx is CONST_INT.
10315 2014-01-14  Andrew Pinski  <apinski@cavium.com>
10317         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10318         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10319         (cortexa53_tunings): Likewise.
10320         (aarch64_sched_issue_rate): New function.
10321         (TARGET_SCHED_ISSUE_RATE): Define.
10323 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10325         * ira-costs.c (find_costs_and_classes): Add missed
10326         ira_init_register_move_cost_if_necessary.
10328 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
10330         PR target/59787
10331         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10333 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
10335         PR target/59794
10336         * config/i386/i386.c (type_natural_mode): Add a bool parameter
10337         to indicate if type is used for function return value.  Warn ABI
10338         change if the vector mode isn't available for function return value.
10339         (ix86_function_arg_advance): Pass false to type_natural_mode.
10340         (ix86_function_arg): Likewise.
10341         (ix86_gimplify_va_arg): Likewise.
10342         (function_arg_32): Don't warn ABI change.
10343         (ix86_function_value): Pass true to type_natural_mode.
10344         (ix86_return_in_memory): Likewise.
10345         (ix86_struct_value_rtx): Removed.
10346         (TARGET_STRUCT_VALUE_RTX): Likewise.
10348 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10350         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10351         converting a conditional jump into a conditional return.
10353 2014-01-14  Richard Biener  <rguenther@suse.de>
10355         PR tree-optimization/58921
10356         PR tree-optimization/59006
10357         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10358         hoisting invariant stmts.
10359         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10360         invariant loads on the preheader edge if possible.
10362 2014-01-14  Joey Ye  <joey.ye@arm.com>
10364         * doc/plugin.texi (Building GCC plugins): Update to C++.
10366 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
10368         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10369         (_mm_rcp28_round_ss): Ditto.
10370         (_mm_rsqrt28_round_sd): Ditto.
10371         (_mm_rsqrt28_round_ss): Ditto.
10372         (_mm_rcp28_sd): Ditto.
10373         (_mm_rcp28_ss): Ditto.
10374         (_mm_rsqrt28_sd): Ditto.
10375         (_mm_rsqrt28_ss): Ditto.
10376         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10377         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10378         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10379         (IX86_BUILTIN_RCP28SD): Ditto.
10380         (IX86_BUILTIN_RCP28SS): Ditto.
10381         (IX86_BUILTIN_RSQRT28SD): Ditto.
10382         (IX86_BUILTIN_RSQRT28SS): Ditto.
10383         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10384         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10385         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10386         (ix86_expand_special_args_builtin): Expand new FTYPE.
10387         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10388         (srcp14<mode>): Make insn unary.
10389         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10390         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10391         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10392         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10393         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
10394         Fix rounding: make it SAE only.
10395         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
10396         Ditto.
10397         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
10398         Ditto.
10399         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
10400         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
10401         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
10402         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
10403         (round_saeonly_mask_scalar_operand4): Ditto.
10404         (round_saeonly_mask_scalar_op3): Ditto.
10405         (round_saeonly_mask_scalar_op4): Ditto.
10407 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10409         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10410         Implement -maltivec=be for vec_insert and vec_extract.
10412 2014-01-10  DJ Delorie  <dj@redhat.com>
10414         * config/msp430/msp430.md (call_internal): Don't allow memory
10415         references with SP as the base register.
10416         (call_value_internal): Likewise.
10417         * config/msp430/constraints.md (Yc): New.  For memory references
10418         that don't use SP as a base register.
10420         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
10421         "an integer without a # prefix"
10422         * config/msp430/msp430.md (epilogue_helper): Use it.
10424 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
10426         PR target/59617
10427         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
10428         AVX512F gather builtins.
10429         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
10430         on gather decls with INTEGER_TYPE masktype.
10431         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
10432         directly into the builtin rather than hoisting it before loop.
10434         PR tree-optimization/59387
10435         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
10436         (scev_const_prop): If folded_casts and type has undefined overflow,
10437         use force_gimple_operand instead of force_gimple_operand_gsi and
10438         for each added stmt if it is assign with
10439         arith_code_with_undefined_signed_overflow, call
10440         rewrite_to_defined_overflow.
10441         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
10442         gimple-fold.h instead.
10443         (arith_code_with_undefined_signed_overflow,
10444         rewrite_to_defined_overflow): Moved to ...
10445         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
10446         rewrite_to_defined_overflow): ... here.  No longer static.
10447         Include gimplify-me.h.
10448         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
10449         rewrite_to_defined_overflow): New prototypes.
10451 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10453         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
10455 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
10457         * builtins.c (get_object_alignment_2): Minor tweak.
10458         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
10460 2014-01-13  Christian Bruel  <christian.bruel@st.com>
10462         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
10463         optimized non constant lengths.
10465 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
10467         PR libgomp/59194
10468         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
10469         load as __atomic_load_N if possible.
10471 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
10473         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
10474         target parameter.
10475         (rs6000_expand_builtin): Adjust call.
10477 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
10479         PR target/58115
10480         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
10481         * config/rs6000/rs6000.c: Include target-globals.h.
10482         (rs6000_set_current_function): Instead of doing target_reinit
10483         unconditionally, use save_target_globals_default_opts and
10484         restore_target_globals.
10486         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
10487         FPSCR.
10488         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
10489         (rs6000_expand_builtin): Handle mffs and mtfsf.
10490         (rs6000_init_builtins): Define mffs and mtfsf.
10491         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
10492         (rs6000_mffs): New pattern.
10493         (rs6000_mtfsf): New pattern.
10495 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
10497         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
10498         Start narrowing with START.  Apply candidate-use pair
10499         and check overall cost in narrowing.
10500         (iv_ca_prune): Pass new argument.
10502 2014-01-10  Jeff Law  <law@redhat.com>
10504         PR middle-end/59743
10505         * ree.c (combine_reaching_defs): Ensure the defining statement
10506         occurs before the extension when optimizing extensions with
10507         different source and destination hard registers.
10509 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
10511         PR ipa/58585
10512         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
10513         vtables into the type inheritance graph.
10515 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10517         PR rtl-optimization/59754
10518         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
10519         modes in the REGNO != REGNO case.
10521 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10523         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
10525 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10527         PR tree-optimization/59745
10528         * tree-predcom.c (tree_predictive_commoning_loop): Call
10529         free_affine_expand_cache if giving up because components is NULL.
10531         * target-globals.c (save_target_globals): Allocate < 4KB structs using
10532         GC in payload of target_globals struct instead of allocating them on
10533         the heap and the larger structs separately using GC.
10534         * target-globals.h (struct target_globals): Make regs, hard_regs,
10535         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
10536         of GTY((skip)) and change type to void *.
10537         (reset_target_globals): Cast loads from those fields to corresponding
10538         types.
10540 2014-01-10  Steve Ellcey  <sellcey@mips.com>
10542         PR plugins/59335
10543         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
10544         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
10545         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
10547 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
10549         PR target/59744
10550         * aarch64-modes.def (CC_Zmode): New flags mode.
10551         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
10552         represents an equality.
10553         (aarch64_get_condition_code): Handle CC_Zmode.
10554         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
10556 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10558         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
10559         extraction in good case.
10561 2014-01-10  Richard Biener  <rguenther@suse.de>
10563         PR tree-optimization/59374
10564         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
10565         checking after SLP discovery.  Mark stmts not participating
10566         in any SLP instance properly.
10568 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10570         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
10571         when handling a SET rtx.
10573 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10575         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
10576         (cortex-a57): Likewise.
10577         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
10579 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10581         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
10582         non-iwmmxt builtins.
10584 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
10586         PR ipa/58252
10587         PR ipa/59226
10588         * ipa-devirt.c record_target_from_binfo): Take as argument
10589         stack of binfos and lookup matching one for virtual inheritance.
10590         (possible_polymorphic_call_targets_1): Update.
10592 2014-01-10  Huacai Chen  <chenhc@lemote.com>
10594         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
10595         kernel strings for Loongson-2E/2F/3A.
10597 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
10599         PR middle-end/59670
10600         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
10601         is_gimple_call before calling gimple_call_internal_p.
10603 2014-01-09  Steve Ellcey  <sellcey@mips.com>
10605         * Makefile.in (TREE_FLOW_H): Remove.
10606         (TREE_SSA_H): Add file names from tree-flow.h.
10607         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
10608         * tree.h: Remove tree-flow.h reference.
10609         * hash-table.h: Remove tree-flow.h reference.
10610         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
10611         reference with tree-ssa-loop.h.
10613 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10615         * doc/invoke.texi: Add -maltivec={be,le} options, and document
10616         default element-order behavior for -maltivec.
10617         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
10618         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
10619         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
10620         when targeting big endian, at least for now.
10621         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
10623 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10625         PR middle-end/47735
10626         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
10627         var satisfies use_register_for_decl, just take into account type
10628         alignment, rather than decl alignment.
10630         PR tree-optimization/59622
10631         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
10632         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
10633         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
10634         Don't devirtualize for inplace at all.  For targets.length () == 1,
10635         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
10637 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
10639         * config/i386/i386.md (cpu): Remove the unused btver1.
10641 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
10643         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
10645 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10647         PR target/58115
10648         * tree-core.h (struct target_globals): New forward declaration.
10649         (struct tree_target_option): Add globals field.
10650         * tree.h (TREE_TARGET_GLOBALS): Define.
10651         (prepare_target_option_nodes_for_pch): New prototype.
10652         * target-globals.h (struct target_globals): Define even if
10653         !SWITCHABLE_TARGET.
10654         * tree.c (prepare_target_option_node_for_pch,
10655         prepare_target_option_nodes_for_pch): New functions.
10656         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
10657         * config/i386/i386.c: Include target-globals.h.
10658         (ix86_set_current_function): Instead of doing target_reinit
10659         unconditionally, use save_target_globals_default_opts and
10660         restore_target_globals.
10662 2014-01-09  Richard Biener  <rguenther@suse.de>
10664         PR tree-optimization/59715
10665         * tree-cfg.h (split_critical_edges): Declare.
10666         * tree-cfg.c (split_critical_edges): Export.
10667         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
10669 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10671         * cfgexpand.c (expand_stack_vars): Optionally disable
10672         asan stack protection.
10673         (expand_used_vars): Likewise.
10674         (partition_stack_vars): Likewise.
10675         * asan.c (asan_emit_stack_protection): Optionally disable
10676         after return stack usage.
10677         (instrument_derefs): Optionally disable memory access instrumentation.
10678         (instrument_builtin_call): Likewise.
10679         (instrument_strlen_call): Likewise.
10680         (asan_protect_global): Optionally disable global variables protection.
10681         * doc/invoke.texi: Added doc for new options.
10682         * params.def: Added new options.
10683         * params.h: Likewise.
10685 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
10687         PR rtl-optimization/59724
10688         * ifcvt.c (cond_exec_process_if_block): Don't call
10689         flow_find_head_matching_sequence with 0 longest_match.
10690         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
10691         non-active insns if !stop_after.
10692         (try_head_merge_bb): Revert 2014-01-07 changes.
10694 2014-01-08  Jeff Law  <law@redhat.com>
10696         * ree.c (get_sub_rtx): New function, extracted from...
10697         (merge_def_and_ext): Here.
10698         (combine_reaching_defs): Use get_sub_rtx.
10700 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
10702         * cgraph.h (varpool_variable_node): Do not choke on null node.
10704 2014-01-08  Catherine Moore  <clm@codesourcery.com>
10706         * config/mips/mips.md (simple_return): Attempt to use JRC
10707         for microMIPS.
10708         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
10710 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10712         PR rtl-optimization/59137
10713         * reorg.c (steal_delay_list_from_target): Call update_block for
10714         elided insns.
10715         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
10717 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10719         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10720         two duplicate entries.
10722 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
10724         Revert:
10725         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
10727         * config/mips/mips.c (mips_truncated_op_cost): New function.
10728         (mips_rtx_costs): Adjust test for BADDU.
10729         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10731         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
10733         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10734         (*baddu_si): ...this new pattern.
10736 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10738         PR ipa/59722
10739         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10741 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10743         PR middle-end/57748
10744         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10745         inner_reference_p.
10746         (expand_expr, expand_normal): Adjust.
10747         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10748         inner_reference_p. Use inner_reference_p to expand inner references.
10749         (store_expr): Adjust.
10750         * cfgexpand.c (expand_call_stmt): Adjust.
10752 2014-01-08  Rong Xu  <xur@google.com>
10754         * gcov-io.c (gcov_var): Move from gcov-io.h.
10755         (gcov_position): Ditto.
10756         (gcov_is_error): Ditto.
10757         (gcov_rewrite): Ditto.
10758         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10759         only part to libgcc/libgcov.h.
10761 2014-01-08  Marek Polacek  <polacek@redhat.com>
10763         PR middle-end/59669
10764         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10766 2014-01-08  Marek Polacek  <polacek@redhat.com>
10768         PR sanitizer/59667
10769         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10771 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
10773         PR rtl-optimization/59649
10774         * stor-layout.c (get_mode_bounds): For BImode return
10775         0 and STORE_FLAG_VALUE.
10777 2014-01-08  Richard Biener  <rguenther@suse.de>
10779         PR middle-end/59630
10780         * gimple.h (is_gimple_builtin_call): Remove.
10781         (gimple_builtin_call_types_compatible_p): New.
10782         (gimple_call_builtin_p): New overload.
10783         * gimple.c (is_gimple_builtin_call): Remove.
10784         (validate_call): Rename to ...
10785         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
10786         check return types.
10787         (validate_type): New static function.
10788         (gimple_call_builtin_p): New overload and adjust.
10789         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10790         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
10791         (gimple_fold_stmt_to_constant_1): Likewise.
10792         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10794 2014-01-08  Richard Biener  <rguenther@suse.de>
10796         PR middle-end/59471
10797         * gimplify.c (gimplify_expr): Gimplify register-register type
10798         VIEW_CONVERT_EXPRs to separate stmts.
10800 2014-01-07  Jeff Law  <law@redhat.com>
10802         PR middle-end/53623
10803         * ree.c (combine_set_extension): Handle case where source
10804         and destination registers in an extension insn are different.
10805         (combine_reaching_defs): Allow source and destination registers
10806         in extension to be different under limited circumstances.
10807         (add_removable_extension): Remove restriction that the
10808         source and destination registers in the extension are the same.
10809         (find_and_remove_re): Emit a copy from the extension's
10810         destination to its source after the defining insn if
10811         the source and destination registers are different.
10813         PR middle-end/59285
10814         * ifcvt.c (merge_if_block): If we are merging a block with more than
10815         one successor with a block with no successors, remove any BARRIER
10816         after the second block.
10818 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
10820         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10822 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
10824         PR target/59652
10825         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10826         for 14-bit register offsets when INT14_OK_STRICT is false.
10828 2014-01-07  Roland Stigge  <stigge@antcom.de>
10829             Michael Meissner  <meissner@linux.vnet.ibm.com>
10831         PR 57386/target
10832         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10833         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
10835 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
10837         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10838         -mcpu.
10840 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
10842         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10843         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10844         rtx is const0_rtx or not.
10846 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
10848         PR target/58115
10849         * target-globals.c (save_target_globals): Remove this_fn_optab
10850         handling.
10851         * toplev.c: Include optabs.h.
10852         (target_reinit): Temporarily restore the global options if another
10853         set of options are in force.
10855 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
10857         PR rtl-optimization/58668
10858         * cfgcleanup.c (flow_find_cross_jump): Don't count
10859         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
10860         to determine what is counted.
10861         (flow_find_head_matching_sequence): Use active_insn_p to determine
10862         what is counted.
10863         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10864         counting change.
10865         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10866         determine what is counted.
10868         PR tree-optimization/59643
10869         * tree-predcom.c (split_data_refs_to_components): If one dr is
10870         read and one write, determine_offset fails and the write isn't
10871         in the bad component, just put the read into the bad component.
10873 2014-01-07  Mike Stump  <mikestump@comcast.net>
10874             Jakub Jelinek  <jakub@redhat.com>
10876         PR pch/59436
10877         * tree-core.h (struct tree_optimization_option): Change optabs
10878         type from unsigned char * to void *.
10879         * optabs.c (init_tree_optimization_optabs): Adjust
10880         TREE_OPTIMIZATION_OPTABS initialization.
10882 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
10884         PR target/59644
10885         * config/i386/i386.h (struct machine_function): Add
10886         no_drap_save_restore field.
10887         * config/i386/i386.c (ix86_save_reg): Use
10888         !cfun->machine->no_drap_save_restore instead of
10889         crtl->stack_realign_needed.
10890         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10891         this function clears frame_pointer_needed.  Set
10892         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10893         and DRAP reg is needed.
10895 2014-01-06  Marek Polacek  <polacek@redhat.com>
10897         PR c/57773
10898         * doc/implement-c.texi: Mention that other integer types are
10899         permitted as bit-field types in strictly conforming mode.
10901 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
10903         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10904         is newly allocated.
10906 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
10908         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10910 2014-01-06  Martin Jambor  <mjambor@suse.cz>
10912         PR ipa/59008
10913         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10914         to int.
10915         * ipa-prop.c (ipa_print_node_params): Fix indentation.
10917 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10919         PR debug/59350
10920         PR debug/59510
10921         * var-tracking.c (add_stores): Preserve the value of the source even if
10922         we don't record the store.
10924 2014-01-06  Terry Guo  <terry.guo@arm.com>
10926         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10928 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
10930         PR bootstrap/59541
10931         * config/darwin.c (darwin_function_section): Adjust return values to
10932         correspond to optimisation changes made in r206070.
10934 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
10936         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10937         from prefetch_block tune setting.
10938         (nocona_cost): Correct size of prefetch block to 64.
10940 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10942         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10943         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10944         used to save the static chain register in the computation of the offset
10945         from which the FP registers need to be restored.
10947 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
10949         PR tree-optimization/59519
10950         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10951         ICE if get_current_def (current_new_name) is already non-NULL, as long
10952         as it is a phi result of some other phi in *new_exit_bb that has
10953         the same argument.
10955         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10956         or vmovdqu* for misaligned_operand.
10957         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10958         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10959         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10960         aligned_mem for AVX512F masked aligned load and store builtins and for
10961         non-temporal moves.
10963 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
10965         PR tree-optimization/59651
10966         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10967         Address range for negative step should be added by TYPE_SIZE_UNIT.
10969 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
10971         * config/m68k/m68k.c (handle_move_double): Handle pushes with
10972         overlapping registers also for registers other than the stack pointer.
10974 2014-01-03  Marek Polacek  <polacek@redhat.com>
10976         PR other/59661
10977         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10978         __builtin_FILE.
10980 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
10982         PR target/59625
10983         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10984         asm goto as jump.
10986         * config/i386/i386.md (MODE_SIZE): New mode attribute.
10987         (push splitter): Use <P:MODE_SIZE> instead of
10988         GET_MODE_SIZE (<P:MODE>mode).
10989         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10990         (mov -1, reg peephole2): Likewise.
10991         * config/i386/sse.md (*mov<mode>_internal,
10992         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10993         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10994         *<code><mode>3, *andnot<mode>3<mask_name>,
10995         <mask_codefor><code><mode>3<mask_name>): Likewise.
10996         * config/i386/subst.md (mask_mode512bit_condition,
10997         sd_mask_mode512bit_condition): Likewise.
10999 2014-01-02  Xinliang David Li  <davidxl@google.com>
11001         PR tree-optimization/59303
11002         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
11003         (dump_predicates): Better output format.
11004         (pred_equal_p): New function.
11005         (is_neq_relop_p): Ditto.
11006         (is_neq_zero_form_p): Ditto.
11007         (pred_expr_equal_p): Ditto.
11008         (pred_neg_p): Ditto.
11009         (simplify_pred): Ditto.
11010         (simplify_preds_2): Ditto.
11011         (simplify_preds_3): Ditto.
11012         (simplify_preds_4): Ditto.
11013         (simplify_preds): Ditto.
11014         (push_pred): Ditto.
11015         (push_to_worklist): Ditto.
11016         (get_pred_info_from_cmp): Ditto.
11017         (is_degenerated_phi): Ditto.
11018         (normalize_one_pred_1): Ditto.
11019         (normalize_one_pred): Ditto.
11020         (normalize_one_pred_chain): Ditto.
11021         (normalize_preds): Ditto.
11022         (normalize_cond_1): Remove function.
11023         (normalize_cond): Ditto.
11024         (is_gcond_subset_of): Ditto.
11025         (is_subset_of_any): Ditto.
11026         (is_or_set_subset_of): Ditto.
11027         (is_and_set_subset_of): Ditto.
11028         (is_norm_cond_subset_of): Ditto.
11029         (pred_chain_length_cmp): Ditto.
11030         (convert_control_dep_chain_into_preds): Type change.
11031         (find_predicates): Ditto.
11032         (find_def_preds): Ditto.
11033         (destroy_predicates_vecs): Ditto.
11034         (find_matching_predicates_in_rest_chains): Ditto.
11035         (use_pred_not_overlap_with_undef_path_pred): Ditto.
11036         (is_pred_expr_subset): Ditto.
11037         (is_pred_chain_subset_of): Ditto.
11038         (is_included_in): Ditto.
11039         (is_superset_of): Ditto.
11041 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11043         Update copyright years.
11045 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11047         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
11048         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
11049         config/arc/arc.md, config/arc/arc.opt,
11050         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
11051         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
11052         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
11053         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
11054         config/linux-protos.h, config/linux.c, config/winnt-c.c,
11055         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
11056         vtable-verify.c, vtable-verify.h: Use the standard form for the
11057         copyright notice.
11059 2014-01-02  Tobias Burnus  <burnus@net-b.de>
11061         * gcc.c (process_command): Update copyright notice dates.
11062         * gcov-dump.c: Ditto.
11063         * gcov.c: Ditto.
11064         * doc/cpp.texi: Bump @copying's copyright year.
11065         * doc/cppinternals.texi: Ditto.
11066         * doc/gcc.texi: Ditto.
11067         * doc/gccint.texi: Ditto.
11068         * doc/gcov.texi: Ditto.
11069         * doc/install.texi: Ditto.
11070         * doc/invoke.texi: Ditto.
11072 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11074         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
11076 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
11078         * config/i386/sse.md (*mov<mode>_internal): Guard
11079         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
11081         PR rtl-optimization/59647
11082         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
11083         new_rtx into UNSIGNED_FLOAT rtxes.
11085 Copyright (C) 2014 Free Software Foundation, Inc.
11087 Copying and distribution of this file, with or without modification,
11088 are permitted in any medium without royalty provided the copyright
11089 notice and this notice are preserved.