Commit Graph

89869 Commits

Author SHA1 Message Date
Danny Smith
78a1f20179 cygming-crtend.c (register_frame_ctor): If DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame directly with atexit.
* config/i386/cygming-crtend.c (register_frame_ctor): If
	DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
	directly with atexit.
	(deregister_frame_ctor): Rename to ...
	(deregister_frame_dtor): Use to call __gcc_deregister_frame
	if !DEFAULT_USE_CXA_ATEXIT.

From-SVN: r140351
2008-09-13 22:58:55 +00:00
Jan Hubicka
a63f29427b cgraph.c: Include value-prof.h
* cgraph.c: Include value-prof.h
	* Makefile.in (cgraph.o): Add value-prof.h dependency.

From-SVN: r140350
2008-09-13 22:32:57 +00:00
Jan Hubicka
71ba42faeb re PR middle-end/32581 (make profiledbootstrap - stageprofile - gcc/ada/a-except.adb:1301: error: control flow in the middle of basic block 20)
PR middle-end/32581
	* tree-profile.c (add_abnormal_goto_call_edges): New function.
	(tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_average_profiler,
	tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.

From-SVN: r140349
2008-09-13 21:39:44 +00:00
Jan Hubicka
80cab2f00f i386.c (ix86_expand_movmem, [...]): Avoid processing too many bytes on misalligned blocks.
* i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing too
	many bytes on misalligned blocks.

From-SVN: r140348
2008-09-13 19:19:57 +00:00
Ralf Wildenhues
d1facce0e3 cfg.texi: Fix some typos.
gcc/
	* doc/cfg.texi: Fix some typos.
	* doc/extend.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.

From-SVN: r140347
2008-09-13 18:54:58 +00:00
Richard Guenther
42ea03fb16 re PR middle-end/30141 (nested function can produce invalid gimple)
2008-09-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30141
	* tree-nested.c (finalize_nesting_tree_1): Generate valid
	gimple stores for memory rhs.

From-SVN: r140346
2008-09-13 16:29:22 +00:00
H.J. Lu
9e6a14a4ee re PR rtl-optimization/37489 (const_true_rtx returned for float compare)
gcc/

2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/37489
	* cse.c (fold_rtx): Don't return const_true_rtx for float
	compare if FLOAT_STORE_FLAG_VALUE is undefined.

gcc/testsuite/

2008-09-13  Raksit Ashok <raksit@google.com>

	PR rtl-optimization/37489
	* g++.dg/opt/cse3.C: New.

From-SVN: r140344
2008-09-13 08:47:41 -07:00
H.J. Lu
2deacb5e8a re PR testsuite/37495 (FAIL: gcc.c-torture/compile/vector-4.c)
2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR testsuite/37495
	* gcc.c-torture/compile/vector-4.c: Add "dg-do compile".

From-SVN: r140343
2008-09-13 08:44:07 -07:00
Jan Hubicka
5a6e26b73f re PR tree-optimization/37392 (Segfault in verify_ssa: !gimple_nop_p (stmt))
PR tree-optimization/37392
	* tree-inline.c (remap_gimple_stmt): Do not remap return value.

From-SVN: r140342
2008-09-13 14:38:10 +00:00
Martin Jambor
934cb78a58 cgraph.c (free_edges): New variable.
* cgraph.c (free_edges): New variable.
	(NEXT_FREE_EDGE): New macro.
	(cgraph_free_edge): New function.
	(cgraph_remove_edge): Call cgraph_remove_edge_1.
	(cgraph_node_remove_callees): Likewise.
	(cgraph_node_remove_callers): Likewise.
	(cgraph_create_edge): Reuse edges from the free list.  Do not
	update uid if doing so.
	(cgraph_remove_*_hook): Add free call.

Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r140341
2008-09-13 14:35:10 +00:00
Uros Bizjak
025fa62ffc pr36141.c: Move to ...
* gcc.c-torture/pr36141.c: Move to ...
	* gcc.c-torture/compile/pr36141.c: ... here.
	* gcc.dg/arm-g2.c: Move to ...
	* gcc.target/arm/g2.c: ... here.
	* gcc.dg/arm-vfp1.c: Move to ...
	* gcc.target/arm/vfp1.c: ... here.
	* gcc.dg/20031108-1: Move to ...
	* gcc.target/arm/20031108-1.c: ... here.
	* gcc.dg/20030909-1: Move to ...
	* gcc.target/arm/20030909-1.c: ... here.
	* gcc.dg/arm-mmx-1.c: Move to ...
	* gcc.target/arm/mmx-1.c: ... here.
	* gcc.dg/arm-scd[123].c: Move to ...
	* gcc.target/arm/scd[123].c: ... here.
	* gcc.dg/arm-asm.c: Move to ...
	* gcc.target/arm/asm.c: ... here.
	* gcc.dg/20080410-1: Move to ...
	* gcc.target/sh/20080410-1.c: ... here.
	* gcc.dg/globalreg-1.c: Move to ...
	* gcc.target/sparc/globalreg-1.c: ... here.

From-SVN: r140340
2008-09-13 15:26:46 +02:00
Chris Fairles
38b5077013 1.cc: Join thread before program exits.
2008-09-13  Chris Fairles  <chris.fairles@gmail.com>

        * testsuite/30_threads/thread/algorithm/1.cc: Join thread before
        program exits.
        * testsuite/30_threads/thread/algorithm/2.cc: Likewise.
        * testsuite/30_threads/thread/this_thread/3.cc: Define test variable.
        * testsuite/30_threads/thread/this_thread/4.cc: Likewise.
        

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r140338
2008-09-13 09:38:05 +00:00
Richard Sandiford
f35bf7a925 Apply correct version of previous patch (tweaked formatting).
From-SVN: r140337
2008-09-13 08:15:59 +00:00
Daniel Kraft
858f1fa2a3 re PR fortran/35770 (implicit character(s) hides type of internal function)
2008-09-13  Daniel Kraft  <d@domob.eu>

	PR fortran/35770
	* primary.c (gfc_match_varspec): Added missing type-spec clearing
	after wrong implicit character typing.

2008-09-13  Daniel Kraft  <d@domob.eu>

	PR fortran/35770
	* gfortran.dg/implicit_13.f90: New test.

From-SVN: r140336
2008-09-13 09:44:36 +02:00
Richard Sandiford
f754734f68 ira-color.c (conflict_allocno_vec): Delete.
gcc/
	* ira-color.c (conflict_allocno_vec): Delete.
	(update_cost_queue_elem): New structure.
	(update_cost_queue): New variable.
	(update_cost_queue_tail): Likewise.
	(update_cost_queue_elems): Likewise.
	(allocno_update_cost_check): Delete.
	(initiate_cost_update): Allocate update_cost_queue_elems
	instead of allocno_update_cost_check.
	(finish_cost_update): Update the free()s accordingly.
	(start_update_cost): New function.
	(queue_update_cost): Likewise.
	(get_next_update_cost): Likewise.
	(update_copy_costs_1): Inline into...
	(update_copy_costs): ...here.  Use a queue instead of recursive calls.
	Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
	once we've established they are equal.  Don't allocate update
	costs if there is nothing to add to them.
	(update_conflict_hard_regno_costs): Remove ALLOCNO and
	DIVISOR arguments.  Use a queue instead of recursive calls;
	process all the allocnos in the initial queue, rather than
	a single allocno.
	(assign_hard_reg): Use queue_update_cost instead of
	conflict_allocno_vec.  Queue coalesced allocnos instead
	of calling update_conflict_hard_regno_costs for each one.
	Just call update_conflict_hard_regno_costs once for the
	entire queue.
	(ira_color): Remove conflict_allocno_vec handling.

From-SVN: r140335
2008-09-13 07:31:42 +00:00
Jan Hubicka
29d7f40905 re PR middle-end/37500 (libstdc++ failed to compile at -O0)
PR middle-end/37500
	* pt.c (tsubst_decl): Do not copy DECL_STRUCT_FUNCTION pointer.

From-SVN: r140334
2008-09-13 07:30:15 +00:00
Chris Fairles
e99a2dce27 thread: New.
2008-09-12  Chris Fairles <chris.fairles@gmail.com>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/thread: New.
	* include/Makefile.am: Update.
	* include/Makefile.in: Regenerate.
	* src/thread.cc: New.
	* src/Makefile.am: Update.
	* src/Makefile.in: Regenerate.
	* acinclude.m4: Add check for nanosleep.
	* configure.ac: Call it.
	* configure: Regenerate.
	* config.h.in: Likewise.
	* config/abi/pre/gnu.ver: Add exports.
	* doc/doxygen/user.cfg.in: Add thread header.
	* testsuite/lib/libstdc++.exp (check_v3_target_nanosleep): Add.
	* testsuite/lib/dg-options.exp (dg-require-nanosleep): Add.
	* testsuite/30_threads/thread/cons/1.cc: New.
	* testsuite/30_threads/thread/cons/2.cc: Likewise.
	* testsuite/30_threads/thread/cons/3.cc: Likewise.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/algorithm/1.cc: Likewise.
	* testsuite/30_threads/thread/algorithm/2.cc: Likewise.
	* testsuite/30_threads/thread/member/1.cc: Likewise.
	* testsuite/30_threads/thread/member/2.cc: Likewise.
	* testsuite/30_threads/thread/member/3.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/1.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/2.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/3.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/4.cc: Likewise.
	* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/all.cc: Add thread.
	* testsuite/17_intro/headers/c++200x/all_multiple_inclusion.cc: 
	Add thread, condition_variable and mutex.

From-SVN: r140333
2008-09-13 00:44:21 +00:00
Chris Fairles
46e113bf2b thread: New.
2008-09-12  Chris Fairles <chris.fairles@gmail.com>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/thread: New.
	* include/Makefile.am: Update.
	* include/Makefile.in: Regenerate.
	* src/thread.cc: New.
	* src/Makefile.am: Update.
	* src/Makefile.in: Regenerate.
	* acinclude.m4: Add check for nanosleep.
	* configure.ac: Call it.
	* configure: Regenerate.
	* config.h.in: Likewise.
	* config/abi/pre/gnu.ver: Add exports.
	* doc/doxygen/user.cfg.in: Add thread header.
	* testsuite/lib/libstdc++.exp (check_v3_target_nanosleep): Add.
	* testsuite/lib/dg-options.exp (dg-require-nanosleep): Add.
	* testsuite/30_threads/thread/cons/1.cc: New.
	* testsuite/30_threads/thread/cons/2.cc: Likewise.
	* testsuite/30_threads/thread/cons/3.cc: Likewise.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/algorithm/1.cc: Likewise.
	* testsuite/30_threads/thread/algorithm/2.cc: Likewise.
	* testsuite/30_threads/thread/member/1.cc: Likewise.
	* testsuite/30_threads/thread/member/2.cc: Likewise.
	* testsuite/30_threads/thread/member/3.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/1.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/2.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/3.cc: Likewise.
	* testsuite/30_threads/thread/this_thread/4.cc: Likewise.
	* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/all.cc: Add thread.
	* testsuite/17_intro/headers/c++200x/all_multiple_inclusion.cc: 
	Add thread, condition_variable and mutex.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r140332
2008-09-13 00:32:37 +00:00
GCC Administrator
8270e80020 Daily bump.
From-SVN: r140330
2008-09-13 00:16:50 +00:00
Sebastian Pop
02ae05bdf5 re PR middle-end/37484 ([graphite] Valgrind gives invalid reads/writes on CPU2006 403.gcc benchmark)
2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37484
	* graphite.c (scop_record_loop): Use snprintf instead of sprintf.
	(save_var_name): Same.
	(initialize_cloog_names): Same.
	(initialize_cloog_names): Same.

From-SVN: r140327
2008-09-12 23:03:54 +00:00
Sebastian Pop
0bfdfbf659 tree-scalar-evolution.c (set_instantiated_value): Set instantiated_below.
2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (set_instantiated_value): Set instantiated_below.

From-SVN: r140326
2008-09-12 23:02:24 +00:00
Vladimir Makarov
82b336287a re PR rtl-optimization/37377 (Bootstrap failure compiling libgcc)
2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37377
	
	* ira-build.c (common_loop_tree_node_dominator): Remove.
	(copy_live_ranges_to_removed_store_destinations): New function.
	(regno_top_level_allocno_map): Move to top level from ...
	(ira_flattening): ... here.  Use
	copy_live_ranges_to_removed_store_destinations.

	* ira-emit.c (generate_edge_moves): Fix a comment.

From-SVN: r140325
2008-09-12 22:55:23 +00:00
Anatoly Sokolov
6ff5d1e447 re PR target/37466 ([AVR] avr-gcc generating incorrect assembly for expression with the long constant operands)
PR target/37466
	* config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
	scratch register after 'set' pattern.

From-SVN: r140321
2008-09-12 20:45:34 +04:00
Ulrich Weigand
0a317111c8 emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment information passed to mark_reg_pointer.
* emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
	information passed to mark_reg_pointer.
	* explow.c (force_reg): Likewise.

From-SVN: r140318
2008-09-12 13:31:51 +00:00
Ulrich Weigand
59dbe4fef0 spu.c (spu_override_options): Default to -mno-safe-hints when building for the celledp architecture.
* config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
	when building for the celledp architecture.

From-SVN: r140316
2008-09-12 13:26:00 +00:00
Richard Guenther
2944258965 tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2008-09-12  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.

	fortran/
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
	build_fold_addr_expr to properly mark the argument
	addressable.

From-SVN: r140313
2008-09-12 09:01:35 +00:00
Eric Botcazou
004a6ce8e7 re PR bootstrap/37424 (IRA merge breaks Solaris/SPARC bootstrap)
PR rtl-optimization/37424
	* ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
	the regnos instead of the addresses.

From-SVN: r140312
2008-09-12 05:24:41 +00:00
GCC Administrator
7d6c3ecb9c Daily bump.
From-SVN: r140310
2008-09-12 00:16:31 +00:00
Steve Ellcey
009ab56dc6 pr11832.c: xfail on ia64-*-*.
* gcc.c-torture/compile/pr11832.c: xfail on ia64-*-*.
	* gcc.c-torture/compile/pr33009.c: Ditto.

From-SVN: r140302
2008-09-11 23:09:38 +00:00
Janis Johnson
7ecb6f5bd0 float.h (DEC_EVAL_METHOD): Correct the macro name.
gcc/
	* ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
gcc/testsuite
	* gcc.dg/dfp/dec-eval-method-2.c: New test.

From-SVN: r140301
2008-09-11 22:50:51 +00:00
Richard Guenther
e49a540c12 tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid entering the weaker equivalence recording.
2008-09-11  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
	entering the weaker equivalence recording.

	* tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.

From-SVN: r140300
2008-09-11 21:48:11 +00:00
Joseph Myers
d96d5d5415 compat.exp, [...]: Use .exe extension for compat test executables.
* lib/compat.exp, gcc.dg/compat/struct-layout-1.exp,
	g++.dg/compat/struct-layout-1.exp: Use .exe extension for compat
	test executables.
	* gcc.dg/compat/struct-layout-1_generate.c,
	g++.dg/compat/struct-layout-1_generate.c: Convert backslash to
	slash in srcdir for dg-options string.

From-SVN: r140299
2008-09-11 22:14:15 +01:00
Joseph Myers
716588aa8e sse5-haddX.c, [...]: Avoid intN_t types.
* gcc.target/i386/sse5-haddX.c, gcc.target/i386/sse5-hsubX.c:
	Avoid intN_t types.

From-SVN: r140298
2008-09-11 22:12:49 +01:00
Joseph Myers
c82bde8afc * gcc.dg/builtins-8.c: Condition cbrt test on HAVE_C99_RUNTIME.
From-SVN: r140297
2008-09-11 22:11:54 +01:00
Jeff Law
13d7e8af69 reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed by assign_stack_local on the IRA...
* reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
	by assign_stack_local on the IRA path for stack slot sharing as well
	as the non-IRA path.

From-SVN: r140295
2008-09-11 11:17:57 -06:00
Uros Bizjak
4ae8027b18 i386.h: Fix whitespace issues.
* config/i386/i386.h: Fix whitespace issues.

From-SVN: r140294
2008-09-11 19:08:04 +02:00
Martin Jambor
f8e2a1ed3b ipa-prop.h (struct ipa_param_flags): Removed.
2008-09-11  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_flags): Removed.
	(struct ipa_param_descriptor): New structure.
	(struct ipa_node_params): ipcp_lattices, param_decls and
	param_flags moved to ipa_param_description.
	(ipa_get_ith_param): Renamed to ipa_get_param, changed to access
	descriptors.  Renamed all users.
	(ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
	changed to access descriptors.  Renamed all users.
	(ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
	to access descriptors. Renamed all users.
	* ipa-cp.c (ipcp_init_cloned_node): Call
	ipa_initialize_node_params instead of ipa_count_formal_params and
	ipa_create_param_decls_array.
	(ipcp_analyze_node): Likewise.
	(ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
	descriptors.  Renamed all users.
	(ipcp_initialize_node_lattices): Remove allocation.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	ipa_initialize_node_params instead of ipa_count_formal_params and
	ipa_create_param_decls_array.
	* ipa-prop.c (ipa_create_param_decls_array): Renamed to
	ipa_populate_param_decls, made static, added parameter info,
	renamed mt to node, removed allocation, changed to use
	descriptors.
	(ipa_count_formal_params): Made static, added parameter info,
	renamed mt to node.
	(ipa_initialize_node_params): New function.
	(ipa_check_stmt_modifications): Changed to use descriptors.
	(ipa_detect_param_modifications): Removed allocation, changed to
	use descriptors.
	(ipa_note_param_call): Changed to use descriptors.
	(ipa_analyze_params_uses): Removed allocation.
	(ipa_free_node_params_substructures): Changed to use descriptors.
	(ipa_edge_duplication_hook): Use the unused attribute.
	(ipa_node_duplication_hook): Use the unused attribute, changed to
	use descriptors, changed to duplicate descriptors.

	* ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
	changed all callers.  Call ipa_propagate_indirect_call_infos if doing
	indirect inlining.  Made static.
        (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
	functions called only once.
	(cgraph_decide_recursive_inlining): Don't call
	ipa_propagate_indirect_call_infos, pass new_edges to
	cgraph_mark_inline_edge instead.
	(cgraph_decide_inlining_of_small_functions): Don't call
	ipa_propagate_indirect_call_infos, pass new_edges to
	cgraph_mark_inline_edge instead.
	(cgraph_decide_inlining): Don't call
	ipa_propagate_indirect_call_infos.
	* ipa-prop.c: Check that vectors are allocated.

	* ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
	iff a new cgraph edges have been created.
	(cgraph_decide_inlining): New variable redo_always_inline.
	Flattening and always_inlining loop until callgraph stabilizes.
	* ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
	true iff new cgraph edges have been created.
	(propagate_info_to_inlined_callees): Likewise.
	(ipa_propagate_indirect_call_infos): Likewise.

From-SVN: r140293
2008-09-11 19:03:23 +02:00
Richard Guenther
420da8caae tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2008-09-11  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
	(set_prologue_iterations): Likewise.
	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
	Likewise.
	(vect_update_init_of_dr): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
	type verification.
	* fold-const.c (fold_unary): Do not generate calculations
	in sub-types.

From-SVN: r140291
2008-09-11 14:53:20 +00:00
Paolo Bonzini
3082165492 dojump.c (do_jump): Move below.
2008-09-11  Paolo Bonzini  <bonzini@gnu.org>

	* dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
	TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
	(do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.

	* tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return a bool.
	* tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
	VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
	before finalizing the changes.
	* tree-vrp.c (extract_range_from_binary_expr): Add limited support
	for BIT_IOR_EXPR.
	(simplify_truth_ops_using_ranges): New.
	(simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
	simplify_cond_using_ranges, simplify_switch_using_ranges): Return
	whether a simplification was made.
	(simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
	use a switch statement and also call simplify_truth_ops_using_ranges.

testsuite:
2008-09-11  Paolo Bonzini  <bonzini@gnu.org>

	* gcc.dg/tree-ssa/vrp47.c: New.
	* gcc.target/i386/andor-2.c: New.

From-SVN: r140288
2008-09-11 14:45:05 +00:00
Jan Hubicka
cf9757477e ggc-common.c (loc_array): Make static.
* ggc-common.c (loc_array): Make static.
	* dce.c (rest_of_handle_ud_dce): Free worklist.

From-SVN: r140286
2008-09-11 12:48:53 +00:00
Jan Hubicka
936fc9bad2 cgraph.c (cgraph_release_function_body): Plug memory leak on ipa_transforms_to_apply and CFG...
* cgraph.c (cgraph_release_function_body): Plug memory leak on
	ipa_transforms_to_apply and CFG; ggc_free gimple df and struct function
	so we are sure we do not dangle it forever.
	* function.c (outer_function_chain, find_function_data): Remove.
	(function_context_stack): New.
	(push_function_context, pop_function_context): Update.
	* function.h (struct function): Remove pointer outer.
	(outer_function_chain, find_function_data): Remove.
	* stmt.c (force_label_rtx): Remove dead call of find_function_data.

From-SVN: r140285
2008-09-11 12:41:36 +00:00
Jan Hubicka
b1d0a338a7 re PR middle-end/37448 (cannot compile big function)
PR middle-end/37448
	* cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.

From-SVN: r140284
2008-09-11 12:38:57 +00:00
Jan Hubicka
9e504cda34 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
From-SVN: r140283
2008-09-11 12:36:53 +00:00
Jan Hubicka
a97a7ae98b tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
* tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
	(free_var_map_entry): New function.
	(redirect_edge_var_map_destroy): Use it.

From-SVN: r140282
2008-09-11 12:36:05 +00:00
Jan Hubicka
4a28309045 re PR middle-end/37448 (cannot compile big function)
PR middle-end/37448
	* tree-inline.c (add_lexical_block): Replace with ...
	(prepend_lexical_block): ... prepend at begginig.
	(remap_blocks): Use it and reverse later.
	(expand_call_inline): Use prepend_lexical_block.

From-SVN: r140281
2008-09-11 12:34:53 +00:00
Jan Hubicka
a856e96f84 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
From-SVN: r140280
2008-09-11 12:32:24 +00:00
Jan Hubicka
825b2fe7a8 function.c (free_after_compilation): Call insn_locators_free.
* function.c (free_after_compilation): Call insn_locators_free.
	* cfglayout.c (insn_locators_free): New function.
	* rtl.h (insn_locators_free): Declare.

From-SVN: r140279
2008-09-11 12:31:40 +00:00
Jan Hubicka
11e0edad1f ifcvt.c (check_cond_move_block): Make regs argument pointer to vector pointer.
* ifcvt.c (check_cond_move_block): Make regs argument pointer to vector pointer.
	(cond_move_process_if_block): Update call.

From-SVN: r140278
2008-09-11 12:20:42 +00:00
Jan Hubicka
d3492572d5 toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
* toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
	* vec.c: Include hashtab.h
	(vec_descriptor, ptr_hash_entry): New structures.
	(vec_desc_hash, vec_ptr_map): New static variables.
	(hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
	register_overhead, free_overhead, vec_heap_free): New functions.
	(vec_gc_o_reserve_1): ggc_free when resizing to 0.
	(vec_heap_o_reserve_1): free when resizing to 0; add statistics.
	(cmp_statistic, add_statistics, dump_vec_loc_statistics): New functions.

From-SVN: r140277
2008-09-11 12:17:22 +00:00
Ira Rosen
3c9dbe18ee re PR tree-optimization/37474 (vect_supported_slp_permutation_p memory corruption)
PR tree-optimization/37474
	* tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
	length of load permutation.

From-SVN: r140276
2008-09-11 12:08:01 +00:00