1. 13 Aug, 2012 9 commits
    • i386.h (FIXED_REGISTERS): Do not mark REX registers here. · 621bc046
      	* config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
      	(CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
      	for different ABIs.
      	(enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
      	(REG_CLASS_NAMES): Update.
      	(REG_CLASS_CONTENTS): Update.  Clear CLOBBERED_REGS members.
      	* config/i386/i386.c (ix86_conditional_register_usage): Disable
      	REX registers on 32bit targets.  Handle bitmaps from
      	CALL_USED_REGISTERS initializer.  Calculate CLOBBERED_REGS register
      	set from GENERAL_REGS also for 32bit targets.  Do not change call
      	used register set for TARGET_64BIT_MS_ABI separately.
      
      From-SVN: r190349
      Uros Bizjak committed
    • basic-block.h (struct basic_block): Remove loop_depth member, move flags and… · 391886c8
      basic-block.h (struct basic_block): Remove loop_depth member, move flags and index members next to each other.
      
      2012-08-13  Richard Guenther  <rguenther@suse.de>
      
      	* basic-block.h (struct basic_block): Remove loop_depth
      	member, move flags and index members next to each other.
      	* cfgloop.h (bb_loop_depth): New inline function.
      	* cfghooks.c (split_block): Do not set loop_depth.
      	(duplicate_block): Likewise.
      	* cfgloop.c (flow_loop_nodes_find): Likewise.
      	(flow_loops_find): Likewise.
      	(add_bb_to_loop): Likewise.
      	(remove_bb_from_loops): Likewise.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
      	* gimple-streamer-in.c (input_bb): Do not stream loop_depth.
      	* gimple-streamer-out.c (output_bb): Likewise.
      	* bt-load.c: Include cfgloop.h.
      	(migrate_btr_defs): Use bb_loop_depth.
      	* cfg.c (dump_bb_info): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* ira.c (update_equiv_regs): Likewise.
      	* tree-ssa-copy.c (init_copy_prop): Likewise.
      	* tree-ssa-dom.c (loop_depth_of_name): Likewise.
      	* tree-ssa-forwprop.c: Include cfgloop.h.
      	(forward_propagate_addr_expr): Use bb_loop_depth.
      	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
      	* tree-ssa-sink.c (select_best_block): Likewise.
      	* ipa-inline-analysis.c: Include cfgloop.h.
      	(estimate_function_body_sizes): Use bb_loop_depth.
      	* Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
      	(ipa-inline-analysis.o): Likewise.
      	(bt-load.o): Likewise.
      
      	* gcc.dg/tree-prof/update-loopch.c: Adjust.
      
      From-SVN: r190346
      Richard Guenther committed
    • re PR driver/54210 (gcc unable to detect -mprfchw flag in bulldozer machines) · 9006f7f3
      	PR driver/54210
      	* config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
      	bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
      	* config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
      	0x80000001 %ecx flags.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r190345
      Ganesh Gopalasubramanian committed
    • tree-cfg.c (print_loop): Avoid ICEing for loops marked for removal and loops with multiple latches. · 755a1ca5
      2012-08-13  Richard Guenther  <rguenther@suse.de>
      
      	* tree-cfg.c (print_loop): Avoid ICEing for loops marked for
      	removal and loops with multiple latches.
      
      From-SVN: r190344
      Richard Guenther committed
    • re PR c/53968 (integer undefined behaviors in GCC) · eb87c7c4
      	PR c/53968
      	* tree.c (integer_pow2p): Avoid undefined signed overflows.
      	* simplify-rtx.c (neg_const_int): Likewise.
      	* expr.c (fixup_args_size_notes): Likewise.
      	* stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
      	* double-int.c (mul_double_wide_with_sign): Likewise.
      	(double_int_mask): Likewise.
      	* tree-ssa-loop-ivopts.c (get_address_cost): Likewise.
      
      From-SVN: r190342
      Jakub Jelinek committed
    • re PR libstdc++/54112 (including complex.h and complex fails in C++03) · 6a9573cc
      2012-08-13  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/54112
      	* include/c_compatibility/complex.h: Undefine complex, always
      	include system's complex.h if present.
      	* testsuite/26_numerics/complex/c99.cc: New testcase.
      	* testsuite/17_intro/headers/c++1998/complex.cc: Likewise.
      	* doc/xml/manual/numerics.xml: Document it.
      
      From-SVN: r190340
      Marc Glisse committed
    • re PR tree-optimization/54200 (copyrename generates wrong debuginfo) · 61f7b9ae
      2012-08-13  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/54200
      	* tree-ssa-copyrename.c (rename_ssa_copies): Do not add
      	PHI results to another partition if not all PHI arguments
      	have the same partition.
      
      	* gcc.dg/guality/pr54200.c: New testcase.
      	* gcc.dg/tree-ssa/slsr-8.c: Adjust.
      
      From-SVN: r190339
      Richard Guenther committed
    • tree-pass.h (write_summary, [...]): Remove set and vset arguments. · f27c1867
      
      	* tree-pass.h (write_summary, write_optimization_summary): Remove
      	set and vset arguments.
      	* ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
      	(write_node_summary_p): Likewise; use the encoder.
      	(ipa_reference_write_optimization_summary): Likewise.
      	* lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
      	(lto_symtab_encoder_new): Initialize in_partition field.
      	(lto_symtab_encoder_delete): Destroy in_partition field.
      	(LCC_NOT_FOUND): Move to lto-streamer.h
      	(lto_symtab_encoder_deref): Likewise.
      	(lto_symtab_encoder_in_partition_p,
      	lto_set_symtab_encoder_in_partition): New functions.
      	(referenced_from_other_partition_p): Rewrite to use encoder.
      	(reachable_from_other_partition_p): Likewise.
      	(referenced_from_this_partition_p): Likewise.
      	(reachable_from_this_partition_p): Likewise.
      	(lto_output_node): Likewise.
      	(lto_output_varpool_node): Likewise.
      	(output_refs): Likewise.
      	(compute_ltrans_boundary): Initialize in_partition fileds of
      	the encoder.
      	(output_symtab): Likewise.
      	(input_refs): Match the changes in output_refs.
      	(output_cgraph_opt_summary_p): Remove set argument.
      	(output_node_opt_summary): Replace set by encoder.
      	(output_cgraph_opt_summary): Remove set argument; use
      	the encoder.
      	* ipa-pure-const.c (pure_const_write_summary): Remove set and vset
      	arguments; use the encoder.
      	* lto-streamer-out.c (lto_output): Remove set and vset argument; use
      	the encoder.
      	(produce_symtab): Likewise.
      	* ipa-inline.h (inline_write_summary): Remove set and vset arguments.
      	* ipa-inline-analysis.c (inline_write_summary): Likewise.
      	* ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
      	use encoder.
      	* ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
      	* passes.c (ipa_write_summaries_2): Remove set and vset arguments.
      	(ipa_write_summaries_1): Update.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_write_optimization_summaries): Likewise.
      	* lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
      	(lto_symtab_encoder_iterator): New type.
      	(lto_symtab_encoder_deref): Make inline.
      	(output_symtab, referenced_from_other_partition_p,
      	reachable_from_other_partition_p, referenced_from_this_partition_p,
      	reachable_from_this_partition_p): Update.
      	(lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node, lsei_varpool_node): New
      	inline functions.
      	(LCC_NOT_FOUND): New macro.
      	(lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
      	lsei_start_in_partition, lsei_next_function_in_partition,
      	lsei_start_function_in_partition, lsei_next_variable_in_partition,
      	lsei_start_variable_in_partition): New inline functions.
      
      	* lto-partition.c (set_referenced_from_other_partition_p,
      	set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
      	New functions.
      	(lto_promote_cross_file_statics): Use them.
      
      From-SVN: r190336
      Jan Hubicka committed
    • Daily bump. · 56142d02
      From-SVN: r190335
      GCC Administrator committed
  2. 12 Aug, 2012 8 commits
  3. 11 Aug, 2012 9 commits
    • reload1.c (replaced_subreg, gen_reload): Add SECONDARY_MEMORY_NEEDED ifdefs as necessary. · 3f5bd0f5
      	* reload1.c (replaced_subreg, gen_reload): Add
      	SECONDARY_MEMORY_NEEDED ifdefs as necessary.
      
      From-SVN: r190318
      Bernd Schmidt committed
    • lto-section-in.c (lto_section_name): Do not use "symtab" as part of symtab_node… · 15d0e7a0
      lto-section-in.c (lto_section_name): Do not use "symtab" as part of symtab_node sectoin name; it confuses plugin.
      
      
      	* lto-section-in.c (lto_section_name): Do not use "symtab" as part of
      	symtab_node sectoin name; it confuses plugin.
      
      From-SVN: r190317
      Jan Hubicka committed
    • alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID in the va_list_vars bitmap by num_ssa_names. · fcecf84f
      	* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
      	in the va_list_vars bitmap by num_ssa_names.
      
      From-SVN: r190316
      Uros Bizjak committed
    • sse.md (xop integer multiply/add insns): Use register_operand for operand 3 predicate. · 920ac804
      	* config/i386/sse.md (xop integer multiply/add insns): Use
      	register_operand for operand 3 predicate.
      	(xop_phadd<u>bq):  Fix vec_select selectors.
      
      From-SVN: r190314
      Uros Bizjak committed
    • re PR fortran/48636 (Enable more inlining with -O2 and higher) · 8810cc52
      2012-08-11  Martin Jambor  <mjambor@suse.cz>
      
      	PR fortran/48636
      	* ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
      	* ipa-inline-analysis.c (agg_position_info): New type.
      	(add_condition): New parameter aggpos, also store agg_contents, by_ref
      	and offset.
      	(dump_condition): Also dump aggregate conditions.
      	(evaluate_conditions_for_known_args): Also handle aggregate
      	conditions.  New parameter known_aggs.
      	(evaluate_properties_for_edge): Gather known aggregate contents.
      	(inline_node_duplication_hook): Pass NULL known_aggs to
      	evaluate_conditions_for_known_args.
      	(unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
      	(unmodified_parm_or_parm_agg_item): New function.
      	(set_cond_stmt_execution_predicate): Handle values passed in
      	aggregates.
      	(set_switch_stmt_execution_predicate): Likewise.
      	(will_be_nonconstant_predicate): Likewise.
      	(estimate_edge_devirt_benefit): Pass new parameter known_aggs to
      	ipa_get_indirect_edge_target.
      	(estimate_calls_size_and_time): New parameter known_aggs, pass it
      	recrsively to itself and to estimate_edge_devirt_benefit.
      	(estimate_node_size_and_time): New vector known_aggs, pass it o
      	functions which need it.
      	(remap_predicate): New parameter offset_map, use it to remap aggregate
      	conditions.
      	(remap_edge_summaries): New parameter offset_map, pass it recursively
      	to itself and to remap_predicate.
      	(inline_merge_summary): Also create and populate vector offset_map.
      	(do_estimate_edge_time): New vector of known aggregate contents,
      	passed to functions which need it.
      	(inline_read_section): Stream new fields of condition.
      	(inline_write_summary): Likewise.
      	* ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
      	contents.  Let all local callers pass NULL for known_aggs.
      
      	* testsuite/gfortran.dg/pr48636.f90: New test.
      
      From-SVN: r190313
      Martin Jambor committed
    • lto-cgraph.c (output_cgraph): Rename to ... · ab96cc5b
      
      	* lto-cgraph.c (output_cgraph): Rename to ...
      	(output_symtab): ... this one. Update for LTO_section_symtab_nodes.
      	(input_cgraph): Rename to ...
      	(input_symtab): ... this one. Update for LTO_section_symtab_nodes.
      	* lto-streamer-out.c (create_output_block): Do not set
      	section_type.
      	(produce_asm): Likewise.
      	(lto_output_toplevel_asms): Likewise.
      	(produce_asm_for_decls): Likewise.
      	(lto_output): Use output_symtab.
      	* lto-section-in.c (lto_section_name): Update.
      	* lto-section-out.c (lto_destroy_simple_output_block): Remove section_type.
      	* lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
      	rename LTO_section_cgraph to LTO_section_symtab_nodes.
      	(struct lto_header): Remove section_type.
      
      	* lto.c (read_cgraph_and_symbols): Use input_symtab.
      
      From-SVN: r190312
      Jan Hubicka committed
    • compiler: Reject type switch using non-interface type. · 3af76e5a
      Fixes issue 16.
      
      From-SVN: r190310
      Ian Lance Taylor committed
    • cgraph.h (vector types for symtab_node): Add. · 7380e6ef
      
      	* cgraph.h (vector types for symtab_node): Add.
      	* ipa-reference.c (ipa_reference_write_optimization_summary): Update
      	for new symtab encoder.
      	(ipa_reference_read_optimization_summary): Likewise.
      	* lto-cgraph.c (output_varpool): Remove.
      	(input_cgraph_opt_summary): Take symtab nodes vector as argument.
      	(LTO_cgraph_tags): Rename to ...
      	(LTO_symtab_tags): ... this one; add LTO_symtab_variable.
      	(lto_cgraph_encoder_new): Rename to ...
      	(lto_symtab_encoder_new): ... this on.
      	(lto_cgraph_encoder_encode): Rename to ...
      	(lto_symtab_encoder_encode): ... this one.
      	(lto_cgraph_encoder_delete): Rename to ...
      	(lto_symtab_encoder_delete): ... this one.
      	(lto_cgraph_encoder_deref): Rename to ...
      	(lto_symtab_encoder_deref): ... this one.
      	(lto_cgraph_encoder_encode_body_p): Rename to ...
      	(lto_symtab_encoder_encode_body_p): ... this one.
      	(lto_varpool_encoder_new, lto_varpool_encoder_delete,
      	lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
      	lto_varpool_encoder_deref): Remove.
      	(lto_varpool_encoder_encode_initializer_p): Rename to ...
      	(lto_symtab_encoder_encode_initializer_p): ... this one.
      	(lto_set_varpool_encoder_encode_initializer): Rename to ...
      	(lto_set_symtab_encoder_encode_initializer): ... this one.
      	(lto_output_edge): Update.
      	(lto_output_node): Update.
      	(lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
      	(lto_output_ref): Drop varpool_encoder; update.
      	(add_node_to): Update.
      	(add_references): Update.
      	(output_outgoing_cgraph_edges): Update.
      	(output_refs): Update.	
      	(compute_ltrans_boundary): Update.
      	(output_cgraph): Update; output varpools too.
      	(input_overwrite_node): Update.
      	(output_varpool): Remove.
      	(input_node): Update.
      	(input_ref): Update.
      	(input_edge): Update.
      	(input_cgraph_1): Update; input varpool too; unify fixup code.
      	(input_varpool_1): Remove.
      	(input_refs): Update.
      	(input_cgraph): Update.
      	(output_node_opt_summary): Update.
      	(input_cgraph_opt_section): Update.
      	(input_cgraph_opt_summary): Update.
      	* ipa-pure-const.c (pure_const_write_summary): Update.
      	(pure_const_read_summary): Update.
      	* lto-streamer-out.c (lto_write_tree): Update.
      	(lto_output): Likewise.
      	(produce_symtab): Update.
      	(produce_asm_for_decls): Update.
      	* ipa-inline-analysis.c (inline_read_section): Update.
      	(inline_write_summary): Update.
      	* ipa-prop.c (ipa_write_node_info): Update.
      	(ipa_prop_read_section): Update.
      	* lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
      	(lto_symtab_encoder_d): ... this one;  add initializer.
      	(lto_cgraph_encoder_t): Rename to ...
      	(lto_symtab_encoder_t): ... this one.
      	(lto_cgraph_encoder_size): Rename to ...
      	(lto_symtab_encoder_size): ... this one.
      	(lto_varpool_encoder_d): ... remove.
      	(lto_varpool_encoder_t): Remove.
      	(lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
      	add symtab_node_encoder.
      	(lto_file_decl_data): Likewise.
      	(lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
      	lto_cgraph_encoder_new, lto_cgraph_encoder_encode, lto_cgraph_encoder_delete,
      	lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p,
      	lto_varpool_encoder_deref, lto_varpool_encoder_lookup, lto_varpool_encoder_new,
      	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
      	lto_varpool_encoder_encode_initializer_p): Remove.
      	(lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
      	lto_symtab_encoder_t, lto_symtab_encoder_encode, lto_symtab_encoder_delete,
      	lto_symtab_encoder_encode_body_p, lto_symtab_encoder_encode_initializer_p):
      	New.
      
      From-SVN: r190309
      Jan Hubicka committed
    • Daily bump. · 46b496e9
      From-SVN: r190308
      GCC Administrator committed
  4. 10 Aug, 2012 14 commits
    • i386.md (isa): Add fma and fma4. · 3e5804e1
      	* config/i386/i386.md (isa): Add fma and fma4.
      	(enabled): Handle fma and fma4.
      	* config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
      	(*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
      	(*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
      	(*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
      	(*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
      	(*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
      
      From-SVN: r190305
      Uros Bizjak committed
    • * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>, · b0d5396c
      	*fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
      	*fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
      
      From-SVN: r190304
      Uros Bizjak committed
    • vector-shuffle1.c (f): Pass vectors indirectly to avoid warnings. · a2a40ee8
      	* gcc.dg/torture/vector-shuffle1.c (f): Pass vectors indirectly
      	to avoid warnings.
      	(main): Adjust caller.
      
      From-SVN: r190302
      Jakub Jelinek committed
    • i386.md (simple LEA peephole2s): Add zero-extend variants of PLUS and MULT simple LEA patterns. · 4bf02aaf
      	* config/i386/i386.md (simple LEA peephole2s): Add zero-extend
      	variants of PLUS and MULT simple LEA patterns.  Disable PLUS
      	patterns for TARGET_OPT_AGU.
      
      From-SVN: r190301
      Uros Bizjak committed
    • Makefile.in (OBJS): Remove matrix-reorg.o. · 04f92ff4
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	* Makefile.in (OBJS): Remove matrix-reorg.o.
      	(matrix-reorg.o): Remove dependence rule.
      	(GTFILES): Remove matrix-reorg.c.
      	* matrix-reorg.c: Remove.
      	* passes.c (init_optimization_passes): Do not schedule
      	pass_ipa_matrix_reorg.
      	* tree-pass.h (pass_ipa_matrix_reorg): Remove.
      	* common.opt (fipa-matrix-reorg): Stub out.
      	* doc/invoke.texi (fipa-matrix-reorg): Remove documentation.
      
      	* gcc.dg/matrix/*.c: Adjust and move ...
      	* gcc.dg/torture/: ... here.
      	* gcc.dg/matrix: Remove directory.
      
      From-SVN: r190298
      Richard Guenther committed
    • re PR middle-end/54219 (__builtin_shuffle mask reversed) · 09e4850d
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/54219
      	* fold-const.c (fold_ternary_loc): Do not reverse the mask
      	when canonicalizing it when folding VEC_PERM_EXPR.
      
      	* gcc.dg/torture/vector-shuffle1.c: New testcase.
      
      From-SVN: r190297
      Richard Guenther committed
    • re PR middle-end/54211 (ICE: verify_gimple failed building freetype with -Os) · 99cababb
      gcc:
      
      2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR middle-end/54211
      	* gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
      	Use cand_type to determine whether pointer arithmetic will be generated.
      
      gcc/testsuite:
      
      2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR middle-end/54211
      	* gcc.dg/tree-ssa/pr54211.c: New test.
      
      From-SVN: r190294
      Bill Schmidt committed
    • sourcebuild.texi: Document long_neq_int effective target. · 75bc3841
      gcc:
      
      2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* doc/sourcebuild.texi: Document long_neq_int effective target.
      
      
      testsuite:
      
      2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* lib/target-supports.exp (check_effective_target_long_neq_int): New.
      	* gcc.dg/tree-ssa/slsr-30.c: Check for long_neq_int effective target.
      
      From-SVN: r190293
      Bill Schmidt committed
    • re PR middle-end/54109 (ICE at tree-ssa-structalias.c:3049 in get_constraint_for_component_ref) · ab509eb5
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/54109
      	* tree-ssa-forwprop.c
      	(forward_propagate_addr_into_variable_array_index): Remove.
      	(forward_propagate_addr_expr_1): Adjust.
      
      	* gcc.dg/torture/pr54109.c: New testcase.
      	* gcc.dg/tree-ssa/forwprop-1.c: Adjust.
      	* gcc.dg/tree-ssa/forwprop-2.c: Likewise.
      
      From-SVN: r190291
      Richard Guenther committed
    • tree-cfg.c (dump_function_to_file): Make sure to dump anonymous SSA names when… · e28b8a60
      tree-cfg.c (dump_function_to_file): Make sure to dump anonymous SSA names when there are no local decls.
      
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	* tree-cfg.c (dump_function_to_file): Make sure to dump
      	anonymous SSA names when there are no local decls.
      
      From-SVN: r190290
      Richard Guenther committed
    • tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve. · 580b2c2e
      	* tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
      	* tree-into-ssa.c (get_ssa_name_ann): Likewise.
      	(mark_phi_for_rewrite): Likewise.
      	(compute_global_livein): Use VEC_reserve outside the innermost
      	loop and VEC_quick_push instead of VEC_safe_push in that loop.
      	(update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
      	of new_ssa_names and old_ssa_names.  Allocate phis_to_rewrite to
      	the correct initial size.
      
      From-SVN: r190289
      Steven Bosscher committed
    • tree-ssa-pre.c (pretemp, [...]): Remove. · 83d5977e
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
      	(need_creation): Remove.
      	(get_representative_for): Use anonymous named SSA names.
      	(create_expression_by_pieces): Likewise.
      	(insert_into_preds_of_block): Likewise.
      	(init_pre): Do not init removed vars.
      	(fini_pre): Do not free need_creation.
      	* tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
      	SSA names.
      	* tree-ssa-loop-manip.c (create_iv): Likewise.
      	* value-prof.c (gimple_divmod_fixed_value): Likewise.
      	(gimple_mod_pow2): Likewise.
      	(gimple_mod_subtract): Likewise.
      	(gimple_ic): Likewise.
      	(gimple_stringop_fixed_value): Likewise.
      	* tree-ssa-phiopt.c (condstoretemp): Remove.
      	(tree_ssa_phiopt_worker): Use anonymous named SSA names.
      	(conditional_replacement): Likewise.
      	(abs_replacement): Likewise.
      	(cond_store_replacement): Likewise.
      	(cond_if_else_store_replacement_1): Likewise.
      	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
      	(rewrite_bittest): Likewise.
      	* tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
      	and build anonymous SSA names.
      	(undistribute_ops_list): Adjust.
      	(eliminate_redundant_comparison): Use anonymous SSA names.
      	(rewrite_expr_tree_parallel): Likewise.
      	(get_reassoc_pow_ssa_name): Remove.
      	(attempt_builtin_powi): Adjust.
      	(reassociate_bb): Likewise.
      	* tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
      	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
      	(build_arrays): Likewise.
      	* tree-tailcall.c (adjust_return_value_with_ops): Likewise.
      	(create_tailcall_accumulator): Likewise.
      	* tree-vect-generic.c (expand_vector_divmod): Likewise.
      	* tree-profile.c (gcov_type_tmp_var): Remove.
      	(gimple_init_edge_profiler): Do not initialize it and use anonymous
      	SSA names.
      	(gimple_gen_ic_profiler): Likewise.
      	(tree_profiling): Adjust.
      	* tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
      	* tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
      	(powi_as_mults_1): Likewise.
      	(powi_as_mults): Likewise.
      	(build_and_insert_call): Adjust.
      	(build_and_insert_binop): Likewise.
      	(build_and_insert_ref): Likewise.
      	(build_and_insert_cast): Likewise.
      	(gimple_expand_builtin_pow): Likewise.
      	(gimple_expand_builtin_cabs): Likewise.
      	(execute_optimize_bswap): Use anonymous SSA names.
      	(convert_mult_to_widen): Likewise.
      	(convert_plusminus_to_widen): Likewise.
      	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
      	* tree-ssa-propagate.c (update_call_from_tree): Likewise.
      	* tree-if-conv.c (ifc_temp_var): Likewise.
      	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
      	* tree-parloops.c (take_address_of): Likewise.
      	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
      	(vect_permute_load_chain): Likewise.
      	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
      	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
      	(vect_handle_widen_op_by_const): Likewise.
      	(vect_operation_fits_smaller_type): Likewise.
      	(vect_recog_over_widening_pattern): Likewise.
      	* tree-vect-stmts.c (vect_init_vector): Likewise.
      	* tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
      	(simplify_float_conversion_using_ranges): Likewise.
      
      From-SVN: r190288
      Richard Guenther committed
    • i386.c (ix86_init_mmx_sse_builtins): Fix builtin target mask of __builtin_ia32_rdseed_di_step. · 7b5e682a
      
      	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix builtin
      	target mask of __builtin_ia32_rdseed_di_step.
      
      From-SVN: r190287
      Michael Zolotukhin committed
    • re PR tree-optimization/54027 (possible mis-optimization of signed left shift in c89 mode) · a2872983
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/54027
      	* tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
      	and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
      	to handle LSHIFT_EXPR with a constant.
      
      	* gcc.dg/torture/pr54027.c: New testcase.
      
      From-SVN: r190286
      Richard Guenther committed