+2008-05-12 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36111
+ * recog.c (validate_replace_rtx_1): Unshare new RTL expression
+ that was created for swappable operands.
+
+2008-05-12 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/36001
+ * Makefile.in: Substitute GNATMAKE and GNATBIND.
+ * configure.ac: Add call to ACX_PROG_GNAT.
+
+2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * optc-gen.awk: Fix comment typo.
+
+2008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * pretty-print.c (pp_integer_with_precision): Use
+ HOST_LONG_LONG_FORMAT.
+
+2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
+
+2008-05-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_ptest): Removed.
+ (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
+ (bdesc_args): Add __builtin_ia32_ptestz128,
+ __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
+ (ix86_expand_builtin): Updated.
+
+2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * tree-cfg.c (valid_fixed_convert_types_p): New function.
+ (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
+
+2008-05-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * value-prof.c (interesting_stringop_to_profile): Do not
+ return early for BUILT_IN_MEMPCPY.
+
+2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * calls.c (expand_call): Don't use callgraph to increase
+ preferred_stack_boundary.
+
+ * cgraph.h (cgraph_rtl_info): Use unsigned on
+ preferred_incoming_stack_boundary.
+
+ * final.c (rest_of_clean_state): Use unsigned on
+ preferred_stack_boundary.
+
+2008-05-09 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22231:
+ * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
+ proceeding.
+
+2008-05-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/36129
+ * tree-ssa-ccp.c: Include value-prof.h.
+ (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
+ built-in function was folded to a constant.
+ * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
+
+2008-05-09 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-scalar-evolution.c: Document instantiate_scev.
+ (instantiate_parameters_1): Renamed instantiate_scev_1.
+ Don't use the same loop for instantiation_loop and evolution_loop.
+ (instantiate_scev): New.
+ (instantiate_parameters): Moved...
+ (resolve_mixers): Update call to instantiate_scev_1 to pass the
+ same loop twice. Maintains the semantics for this function.
+ * tree-scalar-evolution.h (instantiate_scev): Declare.
+ (instantiate_parameters): ...here. Now static inline.
+ * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
+ instead of resolve_mixers.
+
+2008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * rtl-factoring.c (collect_pattern_seqs): Fix typo.
+
+2008-05-09 Tomas Bily <tbily@suse.cz>
+
+ * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
+ * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
+ * tree-ssa-structalias.c (get_constraint_for): Likewise.
+ * c-common.c (c_common_truthvalue_conversion): Likewise.
+ * tree-object-size.c (compute_object_offset): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * varasm.c (const_hash_1, compare_constant, copy_constant)
+ (compute_reloc_for_constant, output_addressed_constants)
+ (initializer_constant_valid_p): Likewise.
+ * c-omp.c (check_omp_for_incr_expr): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * c-typeck.c (c_finish_return): Likewise.
+ * tree-vectorizer.c (supportable_widening_operation)
+ (supportable_narrowing_operation): Likewise.
+ * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
+ * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
+ * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
+ (descr_info_loc): Likewise.
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
+ * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
+ (fold_unary): Likewise.
+ * builtins.c (get_pointer_alignment): Likewise.
+ * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
+ (instantiate_parameters_1): Likewise.
+ * tree.c (expr_align, stabilize_reference): Likewise.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
+ * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+ * config/alpha/alpha.c (va_list_skip_additions): Likewise.
+ * c-common.c (c_alignof_expr, check_function_arguments_recurse):
+ Likewise.
+ * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
+ * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
+ * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+ (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
+ (forward_propagate_comparison)
+ (tree_ssa_forward_propagate_single_use_vars): Likewise.
+ * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
+ * emit-rtl.c (component_ref_for_mem_expr)
+ (set_mem_attributes_minus_bitpos): Likewise.
+ * tree-ssa-phiopt.c (conditional_replacement): Likewise.
+ * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
+ Likewise.
+ * c-typeck.c (default_function_array_conversion, build_indirect_ref)
+ (build_function_call, pointer_diff, build_compound_expr)
+ (c_finish_return): Likewise.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
+ * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
+ Likewise.
+ * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
+ * expr.c (is_aligning_offset): Likewise.
+ * tree-ssa-alias.c (is_escape_site): Likewise.
+ * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
+ (check_all_va_list_escapes): Likewise.
+ * tree-ssa-loop-ivopts.c (determine_base_object)
+ (determine_common_wider_type): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
+ * tree-gimple.c (is_gimple_cast): Likewise.
+ * fold-const.c (decode_field_reference, )
+ (fold_sign_changed_comparison, fold_unary, fold_comparison)
+ (fold_binary): Likewise.
+ * tree-ssa-alias-warnings.c (find_alias_site_helper)
+ (already_warned_in_frontend_p): Likewise.
+ * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
+ * tree.c (really_constant_p, get_unwidened): Likewise.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+ * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+ * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
+ Likewise.
+ * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
+ CONVERT_EXPR_P.
+ (CONVERT_EXPR_P): Define.
+ (CASE_CONVERT): Define.
+
+2008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/36117
+ * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
+ (delete_unmarked_insns): When deleting a call, call
+ delete_unreachable_blocks.
+ * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+ RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
+ (-ftree-salias): Likewise.
+ (salias-max-implicit-fields): Remove param documentation.
+ (salias-max-array-elements): Likewise.
+ * tree-pass.h (pass_create_structure_vars): Remove.
+ * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+ (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+ * tree-ssa-alias.c (create_structure_vars): Remove.
+ (gate_structure_vars): Likewise.
+ (pass_create_structure_vars): Likewise.
+ (gate_build_alias): Likewise.
+ (pass_build_alias): Adjust to run always and dump the function.
+ * common.opt (ftree-salias): Hide.
+ * passes.c (init_optimization_passes): Remove
+ pass_create_structure_vars, adjust comment.
+ * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+ (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+ * opts.c (decode_options): Do not set flag_tree_salias.
+ (common_handle_option): Add OPT_ftree_salias to the backward
+ compatibility section.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow-inline.h (var_can_have_subvars): Move ...
+ * tree-ssa-structalias.c (var_can_have_subvars): ... here.
+ * tree-flow.h (var_can_have_subvars): Remove.
+ (push_fields_onto_fieldstack): Remove.
+ (sort_fieldstack): Likewise.
+ (struct fieldoff): Move ...
+ * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
+ alias_set and base_for_components fields.
+ (sort_fieldstack): Make static.
+ (push_fields_onto_fieldstack): Likewise. Remove code that
+ handles anything but RECORD_TYPEs. Remove alias_set and
+ base_for_components handling.
+ (create_variable_info_for): Adjust.
+
+2008-05-08 Seongbae Park <seongbae.park@gmail.com>
+
+ * common.opt (Wframe-larger-than=): Shorten the help message
+ to one line.
+ * doc/invoke.texi (Wframe-larger-than=): Add more description.
+
+2008-05-08 Rafael Espindola <espindola@google.com>
+
+ * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
+ trap.
+ * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
+ trap and that both operands are gimple values.
+ (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
+ * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
+ is a fp operation.
+
+2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * read-rtl.c (join_c_conditions): Return the first string if the
+ two strings are equal.
+
+2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gensupport.h (pred_data): Add a "num_codes" field.
+ (add_predicate_code): Declare.
+ * gensupport.c (add_predicate_code): New function.
+ (std_pred_table): Add an "allows_const_p" field.
+ (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
+ Remove the (incomplete) list of such codes from the codes field.
+ (init_predicate_table): Use add_predicate_code. Add all
+ RTX_CONST_OBJs if allows_const_p is true.
+ * genrecog.c (process_define_predicate): Use add_predicate_code.
+
+2008-05-08 David Daney <ddaney@avtrex.com>
+ Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
+ special case of constant zero operands.
+ * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
+ old and new values. Special case constant zero values.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
+ fails.
+ (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
+ (MIPS_COMPARE_AND_SWAP_12_0): New macro.
+
+2008-05-08 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/36090
+ * simplify-rtx.c (simplify_plus_minus): Create CONST of
+ similar RTX_CONST_OBJ before CONST_INT.
+
+2008-05-08 Steve Ellcey <sje@cup.hp.com>
+
+ * stmt.c (expand_stack_restore): Change sa mode if needed.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
+ return type to bool.
+ (ix86_sol10_return_in_memory): Likewise.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+ * config/i386/i386.c (ix86_return_in_memory): Likewise.
+ (ix86_sol10_return_in_memory): Likewise.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+
+2008-05-08 Kai Tietz <kai.tietz@onevision.com>
+
+ PR bootstrap/36180
+ * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
+ fndecl argument.
+ (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
+ * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
+ declared in front.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
+ * tree-data-ref.h (struct dr_alias): Remove subvars field.
+ (DR_SUBVARS): Remove.
+ * tree-dfa.c (dump_subvars_for): Remove.
+ (debug_subvars_for): Likewise.
+ (dump_variable): Do not dump subvars.
+ (remove_referenced_var): Do not remove subvars.
+ * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
+ (lookup_subvars_for_var): Remove.
+ (get_subvars_for_var): Likewise.
+ (get_subvars_at): Likewise.
+ (get_first_overlapping_subvar): Likewise.
+ (overlap_subvar): Likewise.
+ * tree-flow.h (subvar_t): Remove.
+ (struct var_ann_d): Remove subvars field.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
+ argument. Remove special handling of SFTs.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (compute_call_clobbered): Likewise.
+ (count_mem_refs): Likewise.
+ (compute_memory_partitions): Likewise.
+ (compute_flow_insensitive_aliasing): Likewise.
+ (setup_pointers_and_addressables): Likewise.
+ (new_type_alias): Likewise.
+ (struct used_part): Remove.
+ (used_portions): Likewise.
+ (struct used_part_map): Likewise.
+ (used_part_map_eq): Likewise.
+ (used_part_map_hash): Likewise.
+ (free_used_part_map): Likewise.
+ (up_lookup): Likewise.
+ (up_insert): Likewise.
+ (get_or_create_used_part_for): Likewise.
+ (create_sft): Likewise.
+ (create_overlap_variables_for): Likewise.
+ (find_used_portions): Likewise.
+ (create_structure_vars): Likewise.
+ * tree.def (STRUCT_FIELD_TAG): Remove.
+ * tree.h (MTAG_P): Adjust.
+ (struct tree_memory_tag): Remove base_for_components and
+ unpartitionable flags.
+ (struct tree_struct_field_tag): Remove.
+ (SFT_PARENT_VAR): Likewise.
+ (SFT_OFFSET): Likewise.
+ (SFT_SIZE): Likewise.
+ (SFT_NONADDRESSABLE_P): Likewise.
+ (SFT_ALIAS_SET): Likewise.
+ (SFT_UNPARTITIONABLE_P): Likewise.
+ (SFT_BASE_FOR_COMPONENTS_P): Likewise.
+ (union tree_node): Remove sft field.
+ * alias.c (get_alias_set): Remove special handling of SFTs.
+ * print-tree.c (print_node): Remove handling of SFTs.
+ * tree-dump.c (dequeue_and_dump): Likewise.
+ * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
+ * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
+ * tree-predcom.c (set_alias_info): Do not set subvars.
+ * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
+ * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
+ * tree-ssa-operands.c (access_can_touch_variable): Likewise.
+ (add_vars_for_offset): Remove.
+ (add_virtual_operand): Remove special handling of SFTs.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ (get_modify_stmt_operands): Likewise.
+ (get_expr_operands): Likewise.
+ (add_to_addressable_set): Likewise.
+ * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
+ * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
+ (tree_code_size): Remove STRUCT_FIELD_TAG handling.
+ (tree_node_structure): Likewise.
+ * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
+ handling of SFTs.
+ (find_what_p_points_to): Likewise.
+
+2008-05-08 Sa Liu <saliu@de.ibm.com>
+
+ * config/spu/spu.md: Fixed subti3 pattern.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36154
+ * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
+ sure to create a representative for trailing arrays for PTA.
+
2008-05-08 Richard Guenther <rguenther@suse.de>
PR middle-end/36172
* fold-const.c (operand_equal_p): Two objects which types
differ in pointerness are not equal.
-2008-05-08 Kai Tietz <kai,tietz@onevision.com>
+2008-05-08 Kai Tietz <kai.tietz@onevision.com>
* calls.c (compute_argument_block_size): Add argument tree fndecl.
(OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
* config/i386/sysv4.h: Likewise.
* config/i386/vx-common.h: Likewise.
* config/cris/cris.h: Removed #if 0 clause.
- * config/arm/arm-protos.h (arm_return_in_memory): Add fntype
- argument.
+ * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
* config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
argument.
(ix86_sol10_return_in_memory): Likewise.
* config/v850/v850.h: Likewise.
* defaults.h: Likewise.
* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
- * expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE.
+ * expr.c (emit_block_move): Adjust use of
+ OUTGOING_REG_PARM_STACK_SPACE.
* function.c (STACK_DYNAMIC_OFFSET): Adjust use of
OUTGOING_REG_PARM_STACK_SPACE.
* targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
- PATCH rtl/7335
- PATCH rtl/33826
- * see.c (see_copy_insn): Copy new pure const attributes for new
- call.
- * c-decl.c (merge_decls): Ditto.
- * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
- to RTL_CONST_OR_PURE_CALL_P.
- * tree.c (define_local_buitin): Rename DECL_IS_PURE to
- DECL_PURE_P. Initialized DECL_LOOPING_CONST_PURE.
- (process_call_operands): Set tree_side_effects properly.
- * tree.h (TREE_READONLY_DECL_P): Removed.
- (DECL_IS_PURE): Renamed to DECL_PURE_P.
- (DECL_LOOPING_OR_CONST_P): New macro.
- (struct tree_function_decl): Added looping_const_or_pure_p.
- (ECF_*) Renumbered.
- (ECF_LOOPING_OR_CONST_P): New macro,
- * rtlanal.c (pure_const_p): Removed.
- * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
- * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
- to RTL_CONST_CALL_P.
- * ipa-pure-const.c (pure_const_state_e): Added looping field.
- (check_decl, check_tree, check_call, scan_function): Initialize
- looping.
- (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
- (static_execute): Set looping true for recursive functions.
- Undo setting state to IPA_NEITHER for recursive functions.
- * cse.c (cse_insn):
- * ifcvt.c (noce_can_store_speculate_p): Changed
- CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
- RTL_CONST_OR_PURE_CALL_P.
- * dse.c (scan_insn): Ditto.
- * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
- * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
- pure_call_p to RTL_CONST_CALL_P.
- * gimplify.c (gimplify_call_expr): Clear side effects for
- non-looping pure and constant calls.
- * calls.c (emit_call_1): Set rtl flags from ecf flags.
- (flags_from_decl_or_type): Set ecf flags from decl flags.
- (initialize_argument_information): Turn off
- ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
- Change const to pure if callee_copies is true rather than just
- turning off const.
- (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
- way of marking pure calls.
- (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
- Remove hack that was supposed to fix pr7335 and remove old
- way of marking pure calls.
- * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
- RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
- * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
- * loop-invariant.c (find_exits, find_invariant_bb): Changed
- CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
- * sched-deps.c (schedule_analyze): Ditto.
- * rtl.h (struct rtx_def): Use call field, unchanging field, and
- return_val field of calls to represent pure and const function
- info.
- (CONST_OR_PURE_CALL_P): Deleted macro.
- (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
- RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
- * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
- TREE_READONLY.
- * tree-optimize.c (execute_fixup_cfg): Added test for
- ECF_LOOPING_CONST_OR_PURE.
- * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
- DECL_PURE_P.
- * tree-cfg.c (update_call_expr_flags): Do not clear tree side
- effects for looping pure or const calls.
- (verify_gimple_expr): Added verification code.
- * config/alpha/alpha.c (alpha_legitimize_address,
- alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_CALL_P.
- * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
- * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
- * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
- and const calls to be deleted.
-
-
-2008-05-08 Uros Bizjak <ubizjak@gmail.com>
+ PR rtl/7335
+ PR rtl/33826
+ * see.c (see_copy_insn): Copy new pure const attributes for new call.
+ * c-decl.c (merge_decls): Ditto.
+ * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
+ to RTL_CONST_OR_PURE_CALL_P.
+ * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
+ Initialized DECL_LOOPING_CONST_PURE.
+ (process_call_operands): Set tree_side_effects properly.
+ * tree.h (TREE_READONLY_DECL_P): Removed.
+ (DECL_IS_PURE): Renamed to DECL_PURE_P.
+ (DECL_LOOPING_OR_CONST_P): New macro.
+ (struct tree_function_decl): Added looping_const_or_pure_p.
+ (ECF_*) Renumbered.
+ (ECF_LOOPING_OR_CONST_P): New macro.
+ * rtlanal.c (pure_const_p): Removed.
+ * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
+ * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
+ to RTL_CONST_CALL_P.
+ * ipa-pure-const.c (pure_const_state_e): Added looping field.
+ (check_decl, check_tree, check_call, scan_function): Initialize
+ looping.
+ (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
+ (static_execute): Set looping true for recursive functions.
+ Undo setting state to IPA_NEITHER for recursive functions.
+ * cse.c (cse_insn):
+ * ifcvt.c (noce_can_store_speculate_p): Changed
+ CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
+ RTL_CONST_OR_PURE_CALL_P.
+ * dse.c (scan_insn): Ditto.
+ * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
+ * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
+ pure_call_p to RTL_CONST_CALL_P.
+ * gimplify.c (gimplify_call_expr): Clear side effects for
+ non-looping pure and constant calls.
+ * calls.c (emit_call_1): Set rtl flags from ecf flags.
+ (flags_from_decl_or_type): Set ecf flags from decl flags.
+ (initialize_argument_information): Turn off
+ ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
+ Change const to pure if callee_copies is true rather than just
+ turning off const.
+ (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
+ way of marking pure calls.
+ (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
+ Remove hack that was supposed to fix pr7335 and remove old
+ way of marking pure calls.
+ * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
+ RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
+ * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
+ * loop-invariant.c (find_exits, find_invariant_bb): Changed
+ CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
+ * sched-deps.c (schedule_analyze): Ditto.
+ * rtl.h (struct rtx_def): Use call field, unchanging field, and
+ return_val field of calls to represent pure and const function info.
+ (CONST_OR_PURE_CALL_P): Deleted macro.
+ (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+ RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
+ * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
+ TREE_READONLY.
+ * tree-optimize.c (execute_fixup_cfg): Added test for
+ ECF_LOOPING_CONST_OR_PURE.
+ * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
+ DECL_PURE_P.
+ * tree-cfg.c (update_call_expr_flags): Do not clear tree side
+ effects for looping pure or const calls.
+ (verify_gimple_expr): Added verification code.
+ * config/alpha/alpha.c (alpha_legitimize_address,
+ alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_CALL_P.
+ * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
+ * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
+ * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
+ and const calls to be deleted.
+
+2008-05-07 Uros Bizjak <ubizjak@gmail.com>
PR target/35714
* config/i386/mmx.md (mmx_subv2sf3): New expander.