+2008-06-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
+ ix86_expand_binary_operator directly.
+ (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
+ for operand 2.
+ (*ashrti3_1): Ditto.
+ (*lshrti3_1): Ditto.
+ (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
+ (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
+ using only one splitter. Conditionaly execute splitter before or
+ after peephole2 pass.
+ (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
+ (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
+ Use only one alternative in asm template.
+ (x86_64_shld): Compress operand 2 constraints. Use only one alternative
+ in asm template.
+ (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
+ "J" operand constraint for operand 2.
+ (*ashldi3_cconly_rex64): Ditto.
+ (*ashrdi3_cmp_rex64): Ditto.
+ (*ashrdi3_cconly_rex64): Ditto.
+ (*lshrdi3_cmp_rex64): Ditto.
+ (*lshrdi3_cconly_rex64): Ditto.
+ * config/i386/predicates.md (const_1_to_63_operand): New predicate.
+ * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
+ (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
+ gen_x86_shrd_1.
+
+2008-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gimplify.c (omp_is_private): Don't return true if decl
+ is not already private on #pragma omp for or #pragma omp parallel for.
+
+ PR debug/36617
+ * tree-cfg.c (struct move_stmt_d): Replace block field with
+ orig_block and new_block fields.
+ (move_stmt_r): Only set TREE_BLOCK to p->new_block if
+ if it used to be NULL, p->orig_block or if p->orig_block is NULL.
+ (move_block_to_fn): Replace vars_map and new_label_map arguments
+ with struct move_stmt_d pointer.
+ (replace_block_vars_by_duplicates): New function.
+ (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
+ move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
+ all subblocks of ORIG_BLOCK to the new function. Call
+ replace_block_vars_by_duplicates.
+ * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
+ * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
+ BLOCK of the new function. Adjust move_sese_region_to_fn caller.
+ Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
+ (expand_omp): Temporarily set input_location to the location of
+ region's controlling stmt.
+ (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
+ BIND_EXPR, push ctx->block_vars and gimplification vars into
+ the BIND_EXPR and its block's BLOCK_VARS instead of directly
+ into dest function.
+ (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
+ there are any BLOCK_VARS.
+ (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
+ OMP_PARALLEL or OMP_TASK stmt.
+ (lower_omp): Save and restore input_location around the lower_omp_1
+ call.
+
+2008-06-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36400
+ PR tree-optimization/36373
+ PR tree-optimization/36344
+ * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
+ var_nonlocal, nonlocal_tree, nonlocal_id): New globals
+ (update_alias_info): Remove call clobbering code.
+ (make_constraint_to): New helper function.
+ (make_escape_constraint): Likewise.
+ (handle_rhs_call): Use it on all pointer containing arguments.
+ Also mark the static chain escaped.
+ (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
+ instead of ANYTHING.
+ (make_constraint_from): New helper split out from ...
+ (make_constraint_from_anything): ... here.
+ (find_func_aliases): Add constraints for escape sites.
+ (intra_create_variable_infos): Make constraints from NONLOCAL
+ for parameters.
+ (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
+ as ANYTHING.
+ (clobber_what_p_points_to): Remove.
+ (clobber_what_escaped): New function.
+ (init_base_vars): Init NONLOCAL and ESCAPED.
+ (do_sd_constraint): Do not propagate the solution from ESCAPED
+ but use ESCAPED as a placeholder.
+ (solve_graph): Likewise.
+ * tree-flow.h (clobber_what_p_points_to): Remove.
+ (clobber_what_escaped): Declare.
+ * tree-ssa-alias.c (set_initial_properties): Call it.
+ Remove code clobbering escaped pointers.
+
+2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * function.c (allocate_struct_function): Only allocate a unique
+ funcdef_no if the decl is nonzero.
+
+2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-protos.h (mips_split_const_insns): Declare.
+ * config/mips/mips.c (mips_split_const_insns): New function.
+ * config/mips/mips.md (move_type): New attribute.
+ (mode): Move attribute definition earlier in file. Add "TI"
+ and "TF".
+ (dword_mode): New attribute.
+ (type): Avoid long line. Map "move_type"s to "type"s,
+ choosing "multi" for doubleword moves if appropriate.
+ Swap MTC/MFC comments to match their declaration order.
+ (extended_mips16): Default to "yes" if "move_type" is "sll0",
+ "type" is "branch" or "jal" is "direct".
+ (length): Handle "extended_mips16" first. Make the default
+ "0" for "ghost" instructions. Set the length from "move_type".
+ (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
+ of "type", with "sll0" for the register alternative. Remove the
+ "extended_mips16" attribute.
+ (zero_extendsidi2, *clear_upper32): Use "move_type" instead
+ of "type", with "shift_shift" for the register alternative.
+ Remove the "length" attribute.
+ (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
+ (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
+ of "type", with "andi" for the register alternative.
+ (*zero_extendqihi2): Likewise.
+ (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
+ of "andi" instead of a "type" of "arith".
+ (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
+ instead of "type".
+ (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
+ (mov_<store>r, *mov<mode>_ra): Likewise.
+ (extendsidi2): Use "move_type" instead of "type", with "move"
+ for the register alternative.
+ (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
+ of "type", with "signext" for the register alternative.
+ (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
+ (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
+ (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
+ (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
+ (floatdisf2, *branch_equality<mode>_mips16): Likewise.
+ (unnamed branch insn): Likewise.
+ (*movdi_gp32_fp64): Fold into...
+ (*movdi_32bit): ...here.
+ (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
+ (*movdf_hardfloat): ...this new pattern.
+ (*movdf_softfloat): Remove redundant FPR alternatives.
+ (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
+ (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
+ (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
+ the "move" attribute.
+ (*movdi_32bit): Use "move_type" instead of "type" and remove the
+ "length" attribute. Use "fpload" and "fpstore" instead of "load"
+ and "store" for COP loads and stores.
+ (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
+ (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
+ (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
+ (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
+ (*movtf_mips16, *movv2sf): Likewise.
+ (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
+ (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
+ (mfhc1<mode>): Use "move_type" instead of "move".
+ (*low<mode>_mips16): Use "extended_mips16" instead of "length".
+ (loadgp_blockage): Remove the "length" attribute.
+ (blockage, set_got_version, update_got_version): Likewise.
+ (call_internal): Remove the "extended_mips16" attribute.
+ (call_value_internal, call_value_multiple_internal): Likewise.
+ * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
+ instead of "move".
+ * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
+ the "length" attribute.
+
+2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
+ -Wcast-qual warnings.
+ * c-pragma.c (dpm_eq, handle_pragma_push_macro,
+ handle_pragma_pop_macro): Likewise.
+ * collect2.c (resolve_lib_name): Likewise.
+ * config/arc/arc.c (arc_init): Likewise.
+ * config/arm/arm.c (neon_builtin_compare,
+ locate_neon_builtin_icode): Likewise.
+ * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section):
+ Likewise.
+ * config/bfin/bfin.c (bfin_init_machine_status,
+ bfin_optimize_loop): Likewise.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
+ * config/cris/cris.c (cris_init_expanders): Likewise.
+ * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
+ * config/darwin.c (machopic_indirection_eq,
+ machopic_indirection_name, machopic_output_indirection):
+ Likewise.
+ * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
+ frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
+ frv_optimize_membar): Likewise.
+ * config/i386/cygwin.h (mingw_scan,
+ GCC_DRIVER_HOST_INITIALIZATION): Likewise.
+ * config/i386/cygwin1.c (mingw_scan): Likewise.
+ * config/i386/i386.c (machopic_output_stub): Likewise.
+ * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
+ i386_pe_unique_section): Likewise.
+ * config/ia64/ia64.c (ia64_init_machine_status,
+ ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
+ Likewise.
+ * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
+ * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
+ * config/m68k/m68k.c (m68k_handle_option,
+ m68k_sched_md_init_global): Likewise.
+ * config/mcore/mcore.c (mcore_mark_dllexport,
+ mcore_mark_dllimport, mcore_unique_section): Likewise.
+ * config/mips/mips.c (mips_block_move_straight,
+ mips16_rewrite_pool_refs, mips_sim_wait_regs_2,
+ mips_sim_record_set): Likewise.
+ * config/mmix/mmix.c (mmix_init_machine_status,
+ mmix_encode_section_info): Likewise.
+ * config/pa/pa.c (pa_init_machine_status, hppa_encode_label):
+ Likewise.
+ * config/rs6000/rs6000.c (rs6000_init_machine_status,
+ print_operand_address, output_toc, redefine_groups,
+ rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
+ * config/s390/s390.c (s390_init_machine_status): Likewise.
+ * config/score/score.c (score_block_move_straight,
+ score_block_move_loop_body): Likewise.
+ * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
+ * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
+ * emit-rtl.c (find_auto_inc): Likewise.
+ * gcc.c (translate_options, process_command): Likewise.
+ * reorg.c (dbr_schedule): Likewise.
+ * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
+ * xcoffout.c (xcoffout_declare_function): Likewise.
+
+2008-06-27 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
+ ipa-pta working again.
+
+2008-06-27 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/t-aix52: Append large data option to LDFLAGS for
+ genautomata.
+
+2008-06-27 Edmar Wienskoski <edmar@freescale.com>
+
+ * config.gcc (powerpc*-*-*): Add new core e500mc.
+ * config/rs6000/e500mc.md: New file.
+ * config/rs6000/rs6000.c (processor_costs): Add new costs for
+ e500mc.
+ (rs6000_override_options): Add e500mc case to
+ processor_target_table. Altivec and Spe options not allowed
+ with e500mc. Add isel instruction to e500mc by
+ default. Initialize rs6000_cost for e500mc.
+ (rs6000_issue_rate): Set issue rate for e500mc.
+ * config/rs6000/rs6000.h (processor_type): Add
+ PROCESSOR_PPCE500MC.
+ (ASM_CPU_SPEC): Add e500mc.
+ Set TARGET_ISEL to rs6000_isel.
+ * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
+ (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
+ * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
+ Include e500mc.md.
+ * doc/invoke.texi: Add e500mc to list of cpus.
+
2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
PR c/34867