+2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-predcom.c (suitable_reference_p): Return false if the
+ reference can throw.
+
+2008-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35751
+ * c-decl.c (finish_decl): If extern or static var has variable
+ size, set TREE_TYPE (decl) to error_mark_node.
+
+2008-04-15 Rafael Espindola <espindola@google.com>
+
+ * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
+ variable arg1.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
+ * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
+ (visit_reference_op_load): Do walk vuse-vdef chains on
+ vn_reference_lookup.
+ (visit_reference_op_store): But do not here.
+ * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
+ vn_reference_lookup.
+ (vn_lookup_with_vuses): But do so here.
+
+2008-04-14 Ian Lance Taylor <iant@google.com>
+
+ * fold-const.c (fold_overflow_warning): Remove assertion.
+
+2008-04-15 Ben Elliston <bje@au.ibm.com>
+
+ * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
+ temp1 local variables.
+
+2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
+
+ PR target/35661
+ * config/i386/winnt.c (i386_pe_section_type_flags): Mark
+ ".text.unlikely" section as executable.
+
+2008-04-14 James E. Wilson <wilson@tuliptree.org>
+
+ * config/ia64/ia64.c (rtx_needs_barrier): Handle
+ UNSPEC_FR_SQRT_RECIP_APPROX_RES.
+ * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
+ (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
+ divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
+ divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
+ divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
+
+2008-04-14 Ian Lance Taylor <iant@google.com>
+
+ * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
+ * fold-const.c (fold_comparison): If appropriate, test
+ POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
+ (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
+ reassociating a pointer type.
+ * doc/invoke.texi (Optimize Options): Document that
+ -fstrict-overflow applies to pointer wraparound.
+
+2008-04-13 Jan Hubicka <jh@suse.cz>
+
+ * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
+
+2008-04-12 Andrew Pinski <pinskia@gmail.com>
+
+ * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
+ we are going to "save the world".
+
+2008-04-13 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
+ ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
+ operand 0 constraint, not "=".
+
+2008-04-11 James E. Wilson <wilson@tuliptree.org>
+
+ * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
+
+2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
+ of size of positions_needed * CHAR_BIT.
+
+2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/35897
+ * dse.c (store_info): Change positions_needed to unsigned
+ HOST_WIDE_INT.
+ (lowpart_bitmask): New.
+ (record_store): Cast to unsigned HOST_WIDE_INT for
+ positions_needed. Assert width <= size of positions_needed *
+ CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
+ (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
+ lowpart_bitmask to set mask.
+
+2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/constraints.md: New file.
+ * config/bfin/bfin.md: Include it.
+ (adddi3): Use satisfies_constraint functions instead of the old macros.
+ * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
+ CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
+ CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
+ CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
+ CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
+ CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
+ EXTRA_CONSTRAINT): Delete.
+ * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
+ reg_or_neg7bit_operand): Use satisfies_constraint functions instead
+ of the old macros.
+ * config/bfin/bfin.c: Include "tm-constrs.h".
+ (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
+ Use satisfies_constraint functions instead of the old macros.
+ * doc/md.texi (Blackfin Constraints): Update file name reference.
+
+2008-04-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35869
+ * tree-vrp.c (execute_vrp): Move switch statement update after
+ jump threading. Schedule another cfg cleanup run.
+
+2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35744
+ * attribs.c (decl_attributes): Return early on errorneous node.
+
+2008-04-10 Oleg Ryjkov <olegr@google.com>
+
+ * tree.h (struct tree_base): Added a new flag default_def_flag.
+ (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
+
+2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
+
+2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/35768
+ * pa.md: Define mode iterator P. Define mode attribute dwc.
+ (dcacheflush): Update pattern to use iterator P and attribute dwc.
+ (icacheflush): Likewise.
+ * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
+ !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
+
+2008-04-11 Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
+
+2008-04-10 Rafael Espindola <espindola@google.com>
+
+ * tree-vrp.c (extract_range_from_binary_expr): Don't handle
+ TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
+ (extract_range_from_expr): The same.
+
+2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (GPR2): New mode iterator.
+ (seq): Add comment.
+ (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
+ *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
+ *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
+ Rewrite these to take two modes, the mode of comparison and the
+ mode of the destination.
+ * config/mips/mips.c (mips_expand_scc): Instead of having
+ paradoxical subreg as destination, expand "narrowing" scc if mode
+ of comparison is SI and target is requested in DI mode.
+ (mips_emit_int_order_test): Update comment. Make mode of
+ comparison match CMP0 rather than TARGET. When creating inverse
+ target use mode of TARGET.
+
+2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcov-dump.c (tag_summary): Only print summaries for the first
+ GCOV_COUNTERS_SUMMABLE counters.
+
+2008-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (absneg): New code iterator.
+ (absnegprefix): New code attribute.
+ (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
+ patterns using absneg code iterator.
+ (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
+ using absneg code iterator.
+ (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
+ *neg<mode>2 patterns using absneg code iterator.
+ (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+ *negextendsfdf2 patterns using absneg code iterator.
+ (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
+ *negextendsfxf2 patterns using absneg code iterator.
+ (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+ *negextendsfdf2 patterns using absneg code iterator.
+ * config/i386/sse.md (<code><mode>2): Macroize expander from
+ abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
+
+2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.h: Remove the remains of the recent search
+ & replace action of current_function_outgoing_args_size.
+
+2008-04-10 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35821
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
+ NEW_STMT_LIST is not NULL.
+
+2008-04-09 David Edelsohn <edelsohn@gnu.org>
+
+ PR libstdc++/35597
+ * toplev.c (process_options): Remove -ffunction-sections debugging
+ warning.
+
+2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
+ than gen_rtx_fmt_ee to perform more canonicalizations.
+
+2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR driver/35665
+ * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
+
+2008-04-09 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_stmt): Print complete bogus stmt.
+ (dump_function_to_file): Dump function arguments with types.
+
+2008-04-08 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (fold_widened_comparison): Do not allow
+ sign-changes that change the result.
+
+2008-04-08 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35839
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
+ kinds of indirect references.
+
+2008-04-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
+ GNU Fortran language string.
+
+2008-04-08 Rafael Espindola <espindola@google.com>
+
+ * fold-canst.c (tree_call_nonnegative_warnv_p): New.
+ (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
+ * tree.h (tree_call_nonnegative_warnv_p): New.
+
+2008-04-08 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Clear out regno_reg_rtx
+ pointer.
+
+2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
+
+ Revert
+ 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
+ same precedence as REG_POINTER and MEM_POINTER operands.
+
+2008-04-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35834
+ * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
+ for adding index to base.
+
+2008-04-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
+ (MINGW_ENABLE_EXECUTE_STACK): New.
+ (IN_LIBGCC2): For libgcc include windows.h file for
+ function declarations.
+
+2008-04-08 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
+ and tem2 if tem1 is not a REG or MULT.
+
+2008-04-08 Jan Hubicka <jh@suse.cz>
+
+ * function.h (incomming_args): Break out of struct function.
+ (function_subsections): Break out of struct function.
+ (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
+ return_rtx and hard_reg_initial_vals from struct function.
+ Kill inl_max_label_num.
+ (current_function_pops_args, current_function_args_info,
+ current_function_args_size, current_function_args_size,
+ current_function_pretend_args_size,
+ current_function_outgoing_args_size,
+ current_function_internal_arg_pointer, current_function_return_rtx):
+ Kill compatibility accestor macros.
+ * builtins.c (expand_builtin_apply_args_1): Update.
+ (expand_builtin_next_arg): Update.
+ * df-scan.c (df_get_call_refs): Update.
+ * dbxout.c (dbxout_function_end): Update.
+ * dwarf2out.c (dwarf2out_switch_text_section): Update.
+ (output_line_info): Update.
+ (secname_for_decl): Update.
+ (dwarf2out_var_location): Update.
+ * function.c (free_after_compilation): Update.
+ (assign_parm_find_stack_rtl): Update.
+ (assign_parms): Update.
+ (expand_dummy_function_end): Update.
+ (expand_function_end): Update.
+ * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
+ (expand_call): Update.
+ (emit_library_call_value_1): Update.
+ (store_one_arg): Update.
+ * varasm.c (initialize_cold_section_name): Update.
+ (unlikely_text_section): Update.
+ (unlikely_text_section_p): Update.
+ (assemble_start_function): Update.
+ (assemble_end_function): Update.
+ (default_section_type_flags): Update.
+ (switch_to_section): Update.
+ * integrate.c (set_decl_abstract_flags): Update.
+ (get_hard_reg_initial_val): Update.
+ (has_hard_reg_initial_val): Update.
+ (allocate_initial_values): Update.
+ * resource.c (init_resource_info): Update.
+ * config/alpha/alpha.c (NUM_ARGS): Update.
+ (direct_return): Update.
+ (alpha_va_start): Update.
+ (alpha_sa_size): Update.
+ (alpha_initial_elimination_offset): Update.
+ (alpha_expand_prologue): Update.
+ (alpha_start_function): Update.
+ (alpha_expand_epilogue): Update.
+ (unicosmk_initial_elimination_offset):
+ * config/alpha/alpha.md (call expander): Update.
+ * config/s390/s390.c (s390_register_info): Update.
+ (s390_register_info): Update.
+ (s390_frame_info): Update.
+ (s390_initial_elimination_offset): Update.
+ (s390_build_builtin_va_list): Update.
+ (s390_va_start): Update.
+ * config/spu/spu.c (direct_return): Update.
+ (spu_expand_prologue): Update.
+ (spu_initial_elimination_offset): Update.
+ (spu_build_builtin_va_list): Update.
+ (spu_va_start): Update.
+ * config/sparc/sparc.c (sparc_init_modes): Update.
+ (sparc_compute_frame_size): Update.
+ (function_value): Update.
+ * config/m32r/m32r.c (m32r_compute_frame_size): Update.
+ * config/i386/i386.md (return expander): Update.
+ * config/i386/i386.c (ix86_va_start): Update.
+ (ix86_can_use_return_insn_p): Update.
+ (ix86_compute_frame_layout): Update.
+ (ix86_expand_epilogue): Update.
+ * config/sh/sh.c (output_stack_adjust): Update.
+ (calc_live_regs): Update.
+ (sh_expand_prologue): Update.
+ (sh_builtin_saveregs): Update.
+ (sh_va_start): Update.
+ (initial_elimination_offset): Update.
+ (sh_allocate_initial_value): Update.
+ (sh_function_ok_for_sibcall): Update.
+ (sh_get_pr_initial_val): Update.
+ * config/sh/sh.md (return expander): Update.
+ * config/avr/avr.c (frame_pointer_required_p): UPdate.
+ * config/crx/crx.c (crx_compute_frame): UPdate.
+ (crx_initial_elimination_offset): UPdate.
+ * config/xtensa/xtensa.c (compute_frame_size): Update
+ (xtensa_builtin_saveregs): Update.
+ (xtensa_va_start): Update.
+ (order_regs_for_local_alloc): Update.
+ * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
+ (xstormy16_expand_builtin_va_start): Update.
+ * config/fr30/fr30.c (fr30_compute_frame_size): Update.
+ * config/m68hc11/m68hc11.md (return expanders): Update.
+ * config/m68hc11/m68hc11.c (expand_prologue): Update.
+ (expand_epilogue): Update.
+ * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
+ (cris_simple_epilogue): Update.
+ (cris_expand_prologue): Update.
+ (cris_expand_epilogue): Update.
+ * config/iq2000/iq2000.c (iq2000_va_start): Update.
+ (compute_frame_size): Update.
+ * config/mt/mt.c (mt_compute_frame_size): Update.
+ * config/mn10300/mn10300.c (expand_prologue): Update.
+ (expand_epilogue): Update.
+ (initial_offset): Update.
+ (mn10300_builtin_saveregs):
+ * config/mn10300/mn10300.md (return expander): Update.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Update.
+ (ia64_initial_elimination_offset): Update.
+ (ia64_initial_elimination_offset): Update.
+ (ia64_expand_prologue): Update.
+ * config/m68k/m68k.md (return expander): Update.
+ * config/rs6000/rs6000.c (rs6000_va_start): Update.
+ (rs6000_stack_info): Update.
+ * config/mcore/mcore.c (layout_mcore_frame): Update.
+ (mcore_expand_prolog): Update.
+ * config/arc/arc.c (arc_compute_frame_size): Update.
+ * config/score/score3.c (score3_compute_frame_size): Update.
+ * config/score/score7.c (score7_compute_frame_size): Update.
+ * config/arm/arm.c (use_return_insn): Update.
+ (thumb_find_work_register): Update.
+ (arm_compute_save_reg_mask): Update.
+ (arm_output_function_prologue): Update.
+ (arm_output_epilogue): Update.
+ (arm_size_return_regs): Update.
+ (arm_get_frame_offsets): Update.
+ (arm_expand_prologue): Update.
+ (thumb_exit): Update.
+ (thumb_unexpanded_epilogue): Update.
+ (thumb1_output_function_prologue): Update.
+ * config/pa/pa.md (return expander): Update.
+ * config/pa/pa.c (compute_frame_size): Update.
+ (hppa_builtin_saveregs): Update.
+ * config/mips/mips.c (mips_va_start): Update.
+ (mips16_build_function_stub): Update.
+ (mips_compute_frame_info): Update.
+ (mips_restore_gp): Update.
+ (mips_output_function_prologue): Update.
+ (mips_expand_prologue): Update.
+ * config/v850/v850.c (compute_frame_size): Update.
+ (expand_prologue): * config/mmix/mmix.c (along): update.
+ (mmix_initial_elimination_offset): update.
+ (mmix_reorg): update.
+ (mmix_use_simple_return): update.
+ (mmix_expand_prologue): update.
+ (mmix_expand_epilogue): Update.
+ * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
+ (emit_link_insn): Update.
+
+2008-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
+ __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
+ instructions.
+ * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
+ atmega103 device.
+
+2008-04-07 Jan Hubicka <jh@suse.cz>
+
+ * function.h (rtl): Rename to x_rtl.
+ (crtl): New define.
+ (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
+ frame_offset, stack_check_probe_note, arg_pointer_save_area,
+ used_temp_slots avail_temp_slots, temp_slot_level,
+ nonlocal_goto_handler_labels): Update accesstors.
+ (rtl): New global variable.
+ (struct function): Move some fileds to rtl_data.
+ (get_arg_pointer_save_area): Update prototype.
+ * builtins.c (expand_builtin_setjmp_receiver): Update call of
+ get_arg_pointer_save_area.
+ * expr.c (init_expr): Update
+ * function.c (get_frame_size): Update
+ (assign_stack_local): Update
+ (expand_function_end): Update.
+ (get_art_pointer_save_area): Update
+ * function.h
+ * emit-rtl.c (rtl): Declare.
+ (regno_reg_rtx): Declare.
+ (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
+ Update.
+ (gen_reg_rtx): Update.
+ * varasm.c (n_deferred_constatns): Update accestor.
+ (init_varasm_status): Do not allocate varasm_status.
+ (force_const_mem, get_pool_size, output_constant_pool): Update.
+ * stmt.c (force_label_rtx): Do not use x_ prefixes.
+ (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
+ * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
+ * sparc/sparc.h (INIT_EXPANDERS): Update.
+ * ia64/ia64.h (INIT_EXPANDERS): Update.
+
+2008-04-07 James E. Wilson <wilson@tuliptree.org>
+
+ * reload.c (push_secondary_reload): Add missing break to for loop.
+
+2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * rtlanal.c: Update copyright years.
+ (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
+ as REG_POINTER and MEM_POINTER operands.
+ * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
+ (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
+ * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
+ * gcse.c: Update copyright years.
+ (pre_delete): Call gen_reg_rtx_and_attrs.
+ (hoist_code): Likewise.
+ (build_store_vectors): Likewise.
+ (delete_store): Likewise.
+ * loop-invariant.c (move_invariant_reg): Likewise.
+ Update copyright years.
+
+2008-04-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
+ control string instead of quoted.
+
+2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi: Rewrite of subreg section.
+
+2008-04-07 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/35842
+ * config/i386/i386.c (legitimize_pic_address): Add treating
+ of dllimport SYM_REF's.
+ (legitimize_dllimport_symbol): Add prototype.
+
+2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
+ reference in constructor with non self-referential type.
+
+2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ Removal of Return with Depressed Stack Pointer support
+ * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
+ (ECF_SP_DEPRESSED): Likewise.
+ (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
+ * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
+ (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+ (expand_call): Do not test ECF_SP_DEPRESSED.
+ * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+ * function.c (keep_stack_depressed): Delete.
+ (handle_epilogue_set): Likewise.
+ (update_epilogue_consts): Likewise.
+ (emit_equiv_load): Likewise.
+ (thread_prologue_and_epilogue_insns): Remove support for Return with
+ Depressed Stack Pointer.
+ * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+
+2008-04-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35400
+ * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
+ information from SSA_NAMEs.
+
+2008-04-06 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (avr_mega_p): Remove declaration.
+ (AVR_MEGA): Remove macro.
+ * config/avr/avr.c (avr_mega_p): Remove variable.
+ (avr_override_options): Remove inicializion of avr_mega_p.
+ Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+ (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+ (avr_jump_mode): (Ditto.).
+ (avr_output_progmem_section_asm_op): (Ditto.).
+ (avr_asm_init_sections): (Ditto.).
+ (avr_asm_init_sections): (Ditto.).
+ (avr_rtx_costs): (Ditto.).
+ * config/avr/avr.md: (Ditto.).
+ * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
+ '__AVR_MEGA__'.
+
+2008-04-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35842
+ * tree-ssa-address.c (fixed_address_object_p): Adjust to match
+ is_gimple_invariant_address.
+
+2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gcc.c (default_compilers): Sync Fortran extensions list with
+ that in fortran/lang-specs.h.
+ * doc/invoke.texi: Likewise.
+ * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
+ * dwarf2out.c (gen_compile_unit_die): Likewise.
+
+2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
+
+ * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
+
+2008-04-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/12329
+ * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
+ attribute is used for nested functions.
+
+2008-04-05 Jan Hubicka <jh@suse.cz>
+
+ * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
+
+ * tree-dump.c (dump_enable_all): Remove prototype; do not accept
+ letter argument.
+ (dump_files): Update.
+ (enable_rtl_dump_file): Do not accept letter argument.
+ * tree-pass.h (dump_file_info): Remove letter argument.
+ * toplev.c (decode_d_option): Update -da handling.
+ * toplev.h (enable_rtl_dump_file): Update prototype.
+ * passes.c (register_one_dump_file): Do not accept IPA argument; work
+ it out based on pass type.
+ (register_dump_files_1): Likewise.
+ (init_optimization_passes): Update register_one_dump_file calls.
+ (execute_one_pass): Sanity check that IPA passes are called at IPA
+ level and RTL passes at RTL level.
+ (execute_pass_list): IPA pass can not be after or subpass of
+ GIMPLE/RTL pass.
+ (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
+ disallov RTL subpasses of IPA subpasses.
+
+2008-04-05 Ben Elliston <bje@au.ibm.com>
+
+ * tree-cfg.c (need_fake_edge_p): Return false for calls to
+ builtins that return exactly once and do not throw. Cache call to
+ call_expr_flags.
+
+2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR rtl-optimization/34916
+ PR middle-end/35519
+ * combine.c (create_log_links): Do not create duplicate LOG_LINKS
+ between instruction pairs.
+
+2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * doc/invoke.texi: Document -mbitops for SH.
+ * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
+ * config/sh/predicates.md (bitwise_memory_operand): New predicate.
+ * config/sh/sh.c (print_operand): Add %t operand code.
+ * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
+ * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
+ (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
+ (extendqihi2): Likewise.
+ (movqi_i): Likewise.
+ (insv): Use bset, bclr and bst instructions for SH2A if possible.
+ (extv): Use bld instruction for SH2A if possible.
+ (extzv): Likewise.
+ (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
+ bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
+ bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
+ (bset.b, bclr.b): Define peepholes.
+ * config/sh/sh.opt (mbitops): New option.
+
+2008-04-04 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35620
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
+ and view convert expression.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35364
+ * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
+
+2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
+
+ * config/i386/cpuid.h (bit_AES): New.
+ (bit_PCLMUL): Likewise.
+
+ * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
+ (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
+ SSE2 if AES or PCLMUL is enabled.
+ (ix86_builtins): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
+ IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
+ (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
+ (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
+ __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
+ __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
+ __builtin_ia32_aeskeygenassist128 and
+ __builtin_ia32_pclmulqdq128.
+ * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
+ (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
+ IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
+
+ * config/i386/i386.h (TARGET_AES): New.
+ (TARGET_PCLMUL): Likewise.
+ (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
+
+ * config/i386/i386.md (UNSPEC_AESENC): New.
+ (UNSPEC_AESENCLAST): Likewise.
+ (UNSPEC_AESDEC): Likewise.
+ (UNSPEC_AESDECLAST): Likewise.
+ (UNSPEC_AESIMC): Likewise.
+ (UNSPEC_AESKEYGENASSIST): Likewise.
+ (UNSPEC_PCLMUL): Likewise.
+
+ * config/i386/i386.opt (maes): New.
+ (mpclmul): Likewise.
+
+ * config/i386/sse.md (aesenc): New pattern.
+ (aesenclast): Likewise.
+ (aesdec): Likewise.
+ (aesdeclast): Likewise.
+ (aesimc): Likewise.
+ (aeskeygenassist): Likewise.
+ (pclmulqdq): Likewise.
+
+ * config/i386/wmmintrin.h: New.
+
+ * doc/extend.texi: Document AES and PCLMUL built-in function.
+
+ * doc/invoke.texi: Document -maes and -mpclmul.
+
+2008-04-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * function.c (free_after_parsing): Replace with
+ cxx_push_function_context from C++ front-end.
+ (allocate_struct_function): Don't call langhook.
+ * langhooks.h (struct lang_hooks_for_functions): Delete.
+ (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
+ member "function".
+ * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
+ (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
+ LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+ LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
+ (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
+ remove LANG_HOOKS_FUNCTION_INITIALIZER.
+ * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
+
+ * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
+ Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35440
+ * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
+ for all types.
+
+2008-04-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35823
+ * fold-const.c (optimize_minmax_comparison): Use the correct
+ type for the constant in the simplified comparison.
+
+2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
+
+ * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
+ Pass L2 size as "--param l2-cache-size" to the compiler.
+ (decode_l2_cache): New function to decode L2 cache parameters using
+ 0x8000006 extended cpuid function.
+ (detect_caches_amd): Determine parameters of L2 cache using
+ decode_l2_caches function.
+ (decode_caches_intel): Decode L2 cache parameters.
+ (detect_caches_intel): Determine L2 cache parameters using
+ decode_caches_intel and decode_l2_caches functions.
+
+2008-04-03 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
+ secondary input reload for subword loads from the constant pool.
+
+2008-04-03 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35713
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
+ constants of the appropriate size for runtime calculations.
+
+ PR c/35712
+ * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
+ decimal-float literal constant zero.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35738
+ * c-parser.c (c_parser_omp_atomic): Call
+ default_function_array_conversion on the RHS.
+
+ PR middle-end/35818
+ * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
+ call is_variable_sized if decl has incomplete type.
+
+2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-protos.h (ix86_aligned_p): Removed.
+
+2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
+ iterators.
+ (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
+ (sgt<u>): Merge sgt and sgtu into new expander.
+ (sgt, sgtu): Remove expanders.
+ (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
+ (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
+ (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
+ *sgtu_<mode>_mips16 into new pattern.
+ (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
+ (sge<u>): Merge sge and sgeu into new expander.
+ (sge, sgeu): Remove expanders.
+ (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
+ new pattern.
+ (*sge_<mode>, second *sge_<mode>): Remove patterns.
+ (slt<u>): Merge slt and sltu into new expander.
+ (slt, sltu): Remove expanders.
+ (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
+ (*slt_<mode>, *sltu_<mode>): Remove patterns.
+ (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
+ *sltu_<mode>_mips16 into new pattern.
+ (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
+ (sle<u>): Merge sle and sleu into new expander.
+ (sle, sleu): Remove expanders.
+ (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
+ (*sle_<mode>, *sleu_<mode>): Remove patterns.
+ (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
+ *sleu_<mode>_mips16 into new pattern.
+ (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
+
+2008-04-03 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/35795
+ * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
+ * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+ * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
+ * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
+ * score/score3.c (score3_output_mi_thunk): Likewise.
+ * score/score7.c (score7_output_mi_thunk): Likewise.
+ * mips/mips.c (mips_output_mi_thunk): Likewise.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (extract_range_from_unary_expr): Handle all
+ conversions. Simplify code.
+
+2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
+
+2008-04-03 Tom Tromey <tromey@redhat.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
+ * config/bfin/t-bfin-linux (generated_files): Add
+ linux-sysroot-suffix.h.
+ * doc/install.texi (Prerequisites): Require make 3.80.
+ * doc/sourcebuild.texi (Front End Directory): Document new
+ variable.
+ * Makefile.in (generated_files): New variable.
+ (ALL_HOST_OBJS): New variable.
+ ($(ALL_HOST_OBJS)): New target.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
+ (remap_block): Call id->transform_lang_insert_block instead
+ of langhook.
+ (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
+ Set id.transform_lang_insert_block to NULL.
+ (clone_body): Move to cp/optimize.c
+ * tree-inline.h (struct copy_body_data): Change
+ transform_lang_insert_block to function pointer.
+ (copy_generic_body, copy_decl_no_change): Export.
+ * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
+ * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
+ (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
+
+ * c-tree.h (insert_block): Kill.
+ * c-decl.c (insert_block): Kill.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+ LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+ * c-tree.h (c_push_function_context, c_pop_function_context): Remove
+ argument.
+ * c-decl.c (c_push_function_context, c_pop_function_context): Remove
+ argument, call {push,pop}_function_context from here.
+ * c-parser.c: Use c_{push,pop}_function_context.
+
+ * function.c (push_function_context_to): Move meat ...
+ (push_function_context): ... here. Simplify.
+ * function.c (pop_function_context_from): Move meat ...
+ (pop_function_context): ... here. Simplify.
+ * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
+ leave_nested).
+ * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+ LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+ (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
+ * tree.h (push_function_context_to, pop_function_context_from): Remove.
+
+2008-04-03 Ben Elliston <bje@au.ibm.com>
+
+ * expmed.c (extract_force_align_mem_bit_field): Remove.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35800
+ * expr.h (try_casesi): Adjust prototype.
+ * expr.c (try_casesi): Take fallback label as extra parameter.
+ Use that for gen_casesi if default_label is NULL.
+ * stmt.c (expand_case): Pass fallback label to try_casesi,
+ make sure to fill gaps with a fallback label if default_label
+ is not present.
+
+2008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ PR target/35801
+ * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
+
+2008-04-03 Ben Elliston <bje@au.ibm.com>
+
+ * expmed.c (extract_split_bit_field): Remove if (0) code.
+ * tree-ssa-structalias.c (do_sd_constraint): Likewise.
+ (do_ds_constraint): Likewise.
+
+2008-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/cppopts.texi (-dU): Document.
+ * c-common.h (flag_dump_macros): Update comment.
+ * c-opts.c (handle_OPT_d): Handle -dU.
+ * c-ppoutput.c (macro_queue, define_queue, undef_queue,
+ dump_queued_macros, cb_used_define, cb_used_undef): New.
+ (init_pp_output): Handle -dU.
+ (cb_line_change): Call dump_queued_macros.
+ * toplev.c (decode_d_option): Accept -dU as preprocessor option.
+
+2008-04-02 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/predicates.md (io_address_operand): New predicate.
+ * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
+ * config/avr/avr.c (avr_io_address_p): Remove function.
+ (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
+ 'avr_io_address_p' function.
+ (out_movhi_r_mr): (Ditto.).
+ (out_movqi_mr_r): (Ditto.).
+ (out_movhi_mr_r): (Ditto.).
+ (avr_address_cost): (Ditto.).
+
2008-04-02 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
2008-04-02 Kai Tietz <kai.tietz@onevision.com>
* config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
- * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
+ * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
offsets for 64-bit mingw.
- * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
+ * config/i386/i386.c (ix86_pass_by_reference): Correct calling
abi for x86_64-pc-mingw.
2008-04-02 Richard Guenther <rguenther@suse.de>
2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
Anatoly Sokolov <aesok@post.ru>
- * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
+ * config/avr/avr.c (avr_arch_types): Add avr6 entry.
(avr_arch): Add ARCH_AVR6.
(avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
(initial_elimination_offset): Initialize and use 'avr_pc_size'
(avr_assemble_integer): (Ditto.).
(avr_output_addr_vec_elt): (Ditto.).
(print_operand): Handle "!" code.
- * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
__AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
(AVR_HAVE_EIJMP_EICALL): Define.
(AVR_3_BYTE_PC): Redefine.
(LINK_SPEC): Add atmega2560 and atmega2561.
(CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
(crtm2561.o).
- * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall
+ * config/avr/avr.md (call_insn): Use eicall instead of icall
for 3 byte PC devices.
(call_value_insn): (Ditto.).
(*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
(*tablejump): (Ditto.).
(*indirect_jump_avr6): Add insn.
(*tablejump_rjmp): Don't use for 3 byte PC devices.
- * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp
+ * config/avr/libgcc.S (__prologue_saves__): Use eijmp
instead of ijmp for 3 byte PC devices.
(__tablejump2__): (Ditto.).
- * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
+ * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
(MULITLIB_DIRNAMES): (Ditto.).
(MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.