Commit Graph

98914 Commits

Author SHA1 Message Date
GCC Administrator
78a50f698f Daily bump.
From-SVN: r157376
2010-03-11 00:17:00 +00:00
Paolo Carlini
9155c0e3df hashtable_policy.h (_Rehash_base<_Prime_rehash_policy, [...]): Add, per DR 1189.
2010-03-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/hashtable_policy.h (_Rehash_base<_Prime_rehash_policy,
	_Hashtable>::reserve): Add, per DR 1189.
	* include/bits/hashtable.h (_Hashtable<>::size_type,
	_Hashtable<>::difference_type): Do not typedef from _Allocator.
	* testsuite/23_containers/unordered_map/dr1189.cc: New.
	* testsuite/23_containers/unordered_set/dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/dr1189.cc: Likewise.

From-SVN: r157373
2010-03-10 23:49:28 +00:00
Eric Botcazou
f37f5bb93a sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
* config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
	* config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
ada/
	* gcc-interface/Makefile.in (SPARC/Solaris): Use sparcv8plus.

From-SVN: r157372
2010-03-10 23:25:37 +00:00
Jan Hubicka
e9fecf0ecc re PR c/43288 (ICE in function_and_variable_visibility, at ipa.c:415)
PR c/43288
	* ipa.c (function_and_variable_visibility) Normalize COMMON bits.
	* varasm.c (get_variable_section): Don't do that here...
	(make_decl_rtl): ... and here.
	(do_assemble_alias): Produce decl RTL.
	(assemble_alias): Likewise.

	* gcc.dg/compile/pr43288.c: New test.

From-SVN: r157366
2010-03-10 19:33:37 +00:00
Kaveh R. Ghazi
7d8c152886 asm1.C: Don't detect pic via looking for the -fpic/-fPIC flags.
* g++.old-deja/g++.pt/asm1.C: Don't detect pic via looking for the
	-fpic/-fPIC flags.
	* g++.old-deja/g++.pt/asm2.C: Likewise.
	* gcc.c-torture/compile/20000804-1.c: Likewise.
	* gcc.target/i386/clobbers.c: Likewise.

From-SVN: r157365
2010-03-10 19:29:50 +00:00
Tobias Burnus
abf4d60b54 2010-03-10 Tobias Burnus <burnus@net-b.de
PR fortran/43303
        * symbol.c (get_iso_c_sym): Set sym->result.

2010-03-10  Tobias Burnus  <burnus@net-b.de

        PR fortran/43303
        * gfortran.dg/c_assoc_3.f90: New test.

From-SVN: r157364
2010-03-10 19:56:46 +01:00
Jakub Jelinek
23f39b3788 re PR debug/43290 (ICE in dwarf2out_frame_debug_expr)
PR debug/43290
	* reg-notes.def (REG_CFA_SET_VDRAP): New note.
	* dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
	of fde->vdrap_reg.
	(dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
	(based_loc_descr): Only express drap or vdrap regno based expressions
	using DW_OP_fbreg when not optimizing.
	* config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
	make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
	REG_CFA_SET_VDRAP note.

	PR debug/36728
	* gcc.dg/guality/pr36728-1.c: New test.
	* gcc.dg/guality/pr36728-2.c: New test.

From-SVN: r157363
2010-03-10 19:17:10 +01:00
Kaushik Phatak
8bb025f55a h8300-div-delay-slot.c: New test.
* gcc.dg/h8300-div-delay-slot.c: New test.

From-SVN: r157340
2010-03-10 08:48:52 -07:00
Alexander Monakov
6edd81980f re PR tree-optimization/43236 (-ftree-loop-distribution produces wrong code in reload1.c:delete_output_reload(), bootstrap fails)
PR tree-optimization/43236
        * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
        error in calculation of base address in reverse iteration case.
        (generate_builtin): Take number of latch executions if the statement
        is in the latch.
    
        * gcc.c-torture/execute/pr43236.c: New.

From-SVN: r157339
2010-03-10 15:53:51 +03:00
Andrey Belevantsev
9f698956d9 re PR middle-end/42859 (ICE in verify_flow_info)
PR middle-end/42859

    * tree-eh.c: Include pointer-set.h.
    (lower_eh_dispatch): Filter out duplicate case labels and
    remove the unneeded edge when the label is unused.  Return
    true when some edges are removed.
    (execute_lower_eh_dispatch): When any lowering resulted in
    removing an edge, also delete unreachable blocks.

    * g++.dg/eh/pr42859.C: New test.

From-SVN: r157337
2010-03-10 14:08:48 +03:00
Jakub Jelinek
ff4f03c3b2 re PR bootstrap/43287 (Bootstrap fails at stage 1 on powerpc-apple-darwin9)
PR bootstrap/43287
	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
	UNSPEC_MACHOPIC_OFFSET.

From-SVN: r157334
2010-03-10 08:51:17 +01:00
GCC Administrator
9473ebb111 Daily bump.
From-SVN: r157331
2010-03-10 00:16:42 +00:00
Andreas Schwab
7b0f476db7 re PR target/43294 (Error: junk at end of line, first unrecognized character is `@')
PR target/43294
* config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
(m68k_delegitimize_address): New function.

From-SVN: r157328
2010-03-09 21:57:36 +00:00
Jakub Jelinek
8325c9b804 re PR debug/43293 (Invalid unwind info for i?86 -fpic)
PR debug/43293
	* config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
	* config/i386/i386.c: Include debug.h and dwarf2out.h.
	(ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
	and .cfi_endproc around the pic thunks.
	(output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
	all queued unwind info register saves are saved before the call.
	For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
	considered as sp-=4 for unwind info and the pop as sp+=4 which
	also clobbers dest, but doesn't actually restore it.

From-SVN: r157325
2010-03-09 21:11:53 +01:00
Jakub Jelinek
eb1fcdaa11 re PR bootstrap/43299 (Subversion id 157264 breaks powerpc 64-bit bootstraps)
PR debug/43299
	* dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.

From-SVN: r157317
2010-03-09 19:54:25 +01:00
Jakub Jelinek
69b89883e8 re PR bootstrap/43299 (Subversion id 157264 breaks powerpc 64-bit bootstraps)
PR debug/43299
	* var-tracking.c (adjust_sets): New function.
	(count_with_sets, add_with_sets): Use it.
	(get_adjusted_src): New inline function.
	(add_stores): Use it.

	* gcc.dg/pr43299.c: New test.

From-SVN: r157316
2010-03-09 19:53:38 +01:00
Jakub Jelinek
3b7998ea24 re PR debug/43304 (ICE on vmx/fft.c and vmx/7-01{,a}.c)
PR debug/43304
	* var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
	call cselib_dummy_expand_value_rtx_cb instead of
	cselib_expand_value_rtx_cb.

From-SVN: r157315
2010-03-09 19:51:44 +01:00
Jakub Jelinek
bded9b7087 re PR debug/43293 (Invalid unwind info for i?86 -fpic)
PR debug/43293
	* config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
	* config/i386/i386.c: Include debug.h and dwarf2out.h.
	(ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
	and .cfi_endproc around the pic thunks.
	(output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
	all queued unwind info register saves are saved before the call.
	For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
	considered as sp-=4 for unwind info and the pop as sp+=4 which
	also clobbers dest, but doesn't actually restore it.

From-SVN: r157314
2010-03-09 19:50:40 +01:00
Jakub Jelinek
4398467a10 re PR debug/43290 (ICE in dwarf2out_frame_debug_expr)
PR debug/43290
	* config/i386/i386.c (ix86_get_drap_rtx): Don't set
	RTX_FRAME_RELATED_P.

	* g++.dg/eh/unwind2.C: New test.

From-SVN: r157313
2010-03-09 19:48:43 +01:00
Joseph Myers
8302950ddc * zh_CN.po: Update.
From-SVN: r157311
2010-03-09 15:18:43 +00:00
Jerry DeLisle
04b98fd2ed re PR fortran/43265 (No EOF condition if reading with '(x)' from an empty file)
2010-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/43265
	* io/read.c: Include fbuf.h and unix.h to enable lower level I/O for
	read_x. (read_x): Replace the use of read_sf with equivalent lower level
	I/O, eliminating unneeded code and handling EOF and EOR conditions.
	* io/io.h: Revise prototype for read_sf.
	* io/transfer.c (read_sf): Delete no_error parameter and all uses of it.
	(read_block_form): Likewise.
	(next_record_r): Delete wrong code call to hit_eof.

From-SVN: r157310
2010-03-09 14:41:17 +00:00
Eric Botcazou
2f9b99e6c6 re PR bootstrap/43276 (lto-elf.c:388:10: error: 'EM_SPARC')
PR bootstrap/43276
	* lto-elf.c: Define EM_* constants if not already defined.

From-SVN: r157305
2010-03-09 09:01:56 +00:00
Jie Zhang
81ad4ac06e arm.md (thumb_mulsi3_v6): Remove trailing whitespaces in output template.
* config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
	whitespaces in output template.

From-SVN: r157303
2010-03-09 03:59:21 +00:00
Paolo Carlini
d723ced225 revert: PR libstdc++/41975, DR 579
2010-03-08  Paolo Carlini  <paolo.carlini@oracle.com>

	Revert:
	2010-02-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/41975, DR 579
	* include/bits/hashtable.h (_Hashtable<>::_M_erase_node): Remove.
	(erase(const_iterator), erase(const_iterator, const_iterator)):
	Change return type to void.
	* include/debug/unordered_map: Adjust.
	* include/debug/unordered_set: Likewise.
	* testsuite/util/exception/safety.h: Likewise.
	* testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
	* testsuite/23_containers/unordered_set/erase/1.cc:  Likewise.
	* testsuite/23_containers/unordered_set/erase/24061-map.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/1.cc:  Likewise.
	* testsuite/23_containers/unordered_multimap/erase/24061-map.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/erase/1.cc:  Likewise.
	* testsuite/23_containers/unordered_multiset/erase/24061-map.cc:
	Likewise.

From-SVN: r157300
2010-03-09 01:56:42 +00:00
Jie Zhang
dc344e877a ira-lives.c (check_and_make_def_use_conflict): Don't fall out array boundary.
* ira-lives.c (check_and_make_def_use_conflict): Don't fall
	out array boundary.

From-SVN: r157299
2010-03-09 01:30:00 +00:00
Jie Zhang
49d78e291b * MAINTAINERS: Update my email address.
From-SVN: r157298
2010-03-09 01:27:29 +00:00
GCC Administrator
6133fa28c9 Daily bump.
From-SVN: r157297
2010-03-09 00:16:40 +00:00
Jakub Jelinek
ff12d3a612 Makefile.in (check_gcc_parallelize): Run dg-torture.exp and builtins.exp in a separate job.
* Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
	builtins.exp in a separate job.

From-SVN: r157294
2010-03-08 22:14:06 +01:00
Sebastian Pop
b58543c3e5 Add ChangeLog entries.
From-SVN: r157292
2010-03-08 17:50:17 +00:00
Sebastian Pop
697f511dd4 Use {lower,upper}_bound_in_type.
2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use
	lower_bound_in_type and upper_bound_in_type.

From-SVN: r157291
2010-03-08 17:50:09 +00:00
Sebastian Pop
456cc718b4 Use sizetype instead of unsigned_type_node.
2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use sizetype
	instead of unsigned_type_node.

From-SVN: r157290
2010-03-08 17:50:03 +00:00
Sebastian Pop
3640d64c0f Fix PR43065: Insert bounds on pointer type parameters.
2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
	    Reza Yazdani  <reza.yazdani@amd.com>

	PR middle-end/43065
	* graphite-sese-to-poly.c (add_param_constraints): Insert bounds
	on pointer type parameters.

	* gcc.dg/graphite/run-id-4.c: New.

Co-Authored-By: Reza Yazdani <reza.yazdani@amd.com>

From-SVN: r157289
2010-03-08 17:49:57 +00:00
Sebastian Pop
b75d95c95c Add testcase from PR43065.
2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43065
	* gcc.dg/graphite/run-id-3.c: New.

From-SVN: r157288
2010-03-08 17:49:48 +00:00
Tobias Grosser
73102986df Add forgotten ChangeLog entries.
Eric pointed out that my ChangeLog was incorrect. As I forgot to
commit it at all, here the corrected ChangeLogs for the last commit.

gcc/
2010-03-05  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>

	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
	handle conversions from pointer to integers.
	(gcc_type_for_cloog_iv): Choose the smalles signed integer as an
	induction variable, to be able to work with code generated by
	CLooG.
	* graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
	(build_poly_scop): Bail out if we cannot codegen a loop.

gcc/testsuite/
2010-03-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/id-18.c: New.
	* gcc.dg/graphite/run-id-pr42644.c: New.

libgomp/
2010-03-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
	* testsuite/libgomp.graphite/force-parallel-2.c: Adjust.

From-SVN: r157287
2010-03-08 17:49:42 +00:00
Tobias Grosser
68d3ff9044 Fix type problems in loop ivs.
Fix pr42644.
Fix pr42130 (dealII).

2010-03-03  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc/graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
	handle conversions from pointer to integers.
	(gcc_type_for_cloog_iv): Choose the smalles signed integer as an
	induction variable, to be able to work with code generated by
	CLooG.
	* gcc/graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
	(build_poly_scop): Bail out if we cannot codegen a loop.
	* gcc/testsuite/gcc.dg/graphite/id-18.c: New.
	* gcc/testsuite/gcc.dg/graphite/run-id-pr42644.c: New.
	* libgomp/testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
	* libgomp/testsuite/libgomp.graphite/force-parallel-2.c: Adjust.

From-SVN: r157286
2010-03-08 17:49:36 +00:00
Tobias Grosser
e3f81db10f Do not short-cut code generation with gloog_error.
2010-03-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (translate_clast): Do not short-cut
	code generation with gloog_error.

From-SVN: r157285
2010-03-08 17:49:28 +00:00
Sebastian Pop
c7631a71ab Fold convert SSA_NAMEs in the scalar expander.
2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
	Call fold_convert on all the returned values.
	(expand_scalar_variables_expr): Pass to expand_scalar_variables_ssa_name
	the type of the resulting expression.

From-SVN: r157284
2010-03-08 17:49:22 +00:00
Sebastian Pop
b0602cc851 graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed ppl_min_for_le_pointset.
Cleanup.

2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
	ppl_min_for_le_pointset.  Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
	* graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.

From-SVN: r157283
2010-03-08 17:49:16 +00:00
Sebastian Pop
b188bb7ce4 Cleanup data dep polyhedron construction.
2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (map_into_dep_poly): Removed.
	(dependence_polyhedron_1): Use combine_context_id_scat.

From-SVN: r157282
2010-03-08 17:49:09 +00:00
Sebastian Pop
aa52513e04 New function combine_context_id_scat.
2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (struct poly_scattering): Add layout documentation.
	(struct poly_bb): Same.
	(combine_context_id_scat): New.

From-SVN: r157281
2010-03-08 17:49:02 +00:00
Sebastian Pop
392c0ce1d7 Fix PR42326: handle default definitions.
2010-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42326
	* sese.c (name_defined_in_loop_p): Return false for default
	definitions.

	* gcc.dg/graphite/pr42326.c: New.

From-SVN: r157280
2010-03-08 17:48:55 +00:00
Sebastian Pop
bd7742f8ef graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify and clean up the logic.
Cleanup.

2010-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
	and clean up the logic.

From-SVN: r157279
2010-03-08 17:48:48 +00:00
Sebastian Pop
733ff09d83 Add constraints on the type of parameters to the scop context.
2010-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
	early return.

From-SVN: r157278
2010-03-08 17:48:42 +00:00
Jakub Jelinek
1feb823858 var-tracking.c (remove_cselib_value_chains): Define only for ENABLE_CHECKING.
* var-tracking.c (remove_cselib_value_chains): Define only for
	ENABLE_CHECKING.
	(dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
	delete_slot_part, emit_notes_for_differences_1): Don't call
	remove_cselib_value_chains here.
	(set_slot_part, emit_notes_for_differences_2): Don't call
	add_cselib_value_chains here.
	(preserved_values): New vector.
	(preserve_value): New function.
	(add_uses, add_stores, vt_add_function_parameters): Use it
	instead of cselib_preserve_value.
	(changed_values_stack): New vector.
	(check_changed_vars_0): New function.
	(check_changed_vars_1, check_changed_vars_2): Use it.
	(emit_notes_for_changes): Call set_dv_changed (*, false) on all
	changed_values_stack VALUEs.
	(vt_emit_notes): For all preserved_values call
	add_cselib_value_chains.  If ENABLE_CHECKING call
	remove_cselib_value_chains before verifying value_chains is empty.
	Initialize and free changed_values_stack.
	(vt_initialize): Initialize preserved_values.
	(vt_finalize): Free preserved_values.

From-SVN: r157277
2010-03-08 14:33:31 +01:00
Richard Guenther
cc788fcc70 re PR tree-optimization/43269 (removing non dead store)
2010-03-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43269
	* tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
	region detection.

	* gcc.c-torture/execute/pr43269.c: New testcase.

From-SVN: r157276
2010-03-08 13:30:27 +00:00
Martin Jambor
69c103c713 ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
2010-03-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
	(ipa_is_param_called): Removed.
	* ipa-prop.c (ipa_note_param_call): Do not set the called flag.
	(ipa_print_node_params): Do not print the called flag.
	(ipa_write_node_info): Do not stream the called flag.
	(ipa_read_node_info): Likewise.

From-SVN: r157273
2010-03-08 12:00:07 +01:00
Janus Weil
b3d286bac2 re PR fortran/43256 ([OOP] TBP with missing optional arg)
2010-03-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43256
	* resolve.c (resolve_compcall): Don't set 'value.function.name' here
	for TBPs, otherwise they will not be resolved properly.
	(resolve_function): Use 'value.function.esym' instead of
        'value.function.name' to check if we're dealing with a TBP.
	(check_class_members): Set correct type of passed object for all TBPs,
	not only generic ones, except if the type is abstract.


2010-03-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43256
	* gfortran.dg/typebound_call_13.f03: New.

From-SVN: r157272
2010-03-08 10:35:04 +01:00
Kai Tietz
196c8bc8a3 libgfortran.h (_POSIX): Define if __MINGW32__ is defined.
2010-03-08  Kai TIetz  <kai.tietz@onevision.com>

        PR/42950
        * libgfortran.h (_POSIX): Define if __MINGW32__ is defined.
        (gfc_printf): Define to gnu_printf for __MINGW32__ case,
        otherwise to __printf__.
        (gfc_strtof,gfc_strtod,gfc_strtold): Define for mingw case
        to POSIX compatible converter functions.
        (runtime_error): Use instead gfc_printf as formatter
        attribute name.
        (runtime_error_at): Likewise.
        (runtime_warning_at): Likewise.
        (st_printf): Likewise.
        * intrinsics/date_and_time.c (localtime_r): Undefine
        possible defined macro.
        (gmtime_r): Likewise.
        * io/read.c (convert_real): Use gfc_strtof, gfc_strtod,
        and gfc_strtold.

From-SVN: r157271
2010-03-08 09:01:55 +01:00
GCC Administrator
4bdd4fc006 Daily bump.
From-SVN: r157269
2010-03-08 00:16:32 +00:00
Jakub Jelinek
864ddef716 re PR debug/43176 (var-tracking fails to notice a value change)
PR debug/43176
	* Makefile.in (var-tracking.o): Depend on pointer-set.h.
	* cselib.c (struct expand_value_data): Add dummy field.
	(cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
	dummy to false.
	(cselib_dummy_expand_value_rtx_cb): New function.
	(cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
	any rtl.
	* cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
	* var-tracking.c: Include pointer-set.h.
	(variable): Change n_var_parts to char from int.  Add
	cur_loc_changed and in_changed_variables fields.
	(variable_canonicalize): Remove.
	(shared_var_p): New inline function.
	(unshare_variable): Maintain cur_loc_changed and
	in_changed_variables fields.  If var was in changed_variables,
	replace it there with new_var.  Just copy cur_loc instead of
	resetting it to something else.
	(variable_union): Don't recompute cur_loc.  Use shared_var_p.
	(dataflow_set_union): Don't call variable_canonicalize.
	(loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
	of their DEBUG_EXPR_TREE_DECLs.
	(canonicalize_loc_order_check): Verify that cur_loc is NULL
	and in_changed_variables and cur_loc_changed is false.
	(variable_merge_over_cur): Clear cur_loc, in_changed_variables
	and cur_loc_changed.  Don't update cur_loc here.
	(variable_merge_over_src): Don't call variable_canonicalize.
	(dataflow_set_preserve_mem_locs): Use shared_var_p.  When
	removing loc that is equal to cur_loc, clear cur_loc,
	set cur_loc_changed and ensure variable_was_changed is called.
	(dataflow_set_remove_mem_locs): Use shared_var_p.  Only
	compare pointers in cur_loc check, if it is equal to loc,
	clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
	(variable_different_p): Remove compare_current_location argument,
	don't compare cur_loc.
	(dataflow_set_different_1): Adjust variable_different_p caller.
	(variable_was_changed): If dv had some var in changed_variables
	already, reset in_changed_variables flag for it and propagate
	cur_loc_changed over to the new variable.  On empty var
	always set cur_loc_changed.  Set in_changed_variables on whatever
	var is added to changed_variables.
	(set_slot_part): Clear cur_loc_changed and in_changed_variables.
	Use shared_var_p.  When removing loc that is equal to cur_loc,
	clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
	end, don't set it to something else, just call variable_was_changed.
	(delete_slot_part): Use shared_var_p.  When cur_loc equals to
	loc being removed, clear cur_loc and set cur_loc_changed.
	Set cur_loc_changed if all locations have been removed.
	(struct expand_loc_callback_data): New type.
	(vt_expand_loc_callback): Add dummy mode in which no rtxes are
	allocated.  Always create SUBREGs if simplify_subreg failed.
	Prefer to use cur_loc, when that fails and still in
	changed_variables (and seen first time) recompute it.  Set
	cur_loc_changed of variables which had to change cur_loc and
	compute elcd->cur_loc_changed if any of the subexpressions used
	had to change cur_loc.
	(vt_expand_loc): Adjust to pass arguments in
	expand_loc_callback_data structure.
	(vt_expand_loc_dummy): New function.
	(emitted_notes): New variable.
	(emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
	that weren't used for any other decl in current
	emit_notes_for_changes call call vt_expand_loc_dummy to update
	cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
	first loc_chain location if NULL before.  Always use just
	cur_loc instead of first loc_chain location.  When cur_loc_changed
	is false, when not --enable-checking=rtl just don't emit any note.
	When rtl checking, compute the note and assert it is the same
	as previous note.  Clear cur_loc_changed and in_changed_variables
	at the end before removing from changed_variables.
	(check_changed_vars_3): New function.
	(emit_notes_for_changes): Traverse changed_vars to call
	check_changed_vars_3 on each changed var.
	(emit_notes_for_differences_1): Clear cur_loc_changed and
	in_changed_variables.  Recompute cur_loc of new_var.
	(emit_notes_for_differences_2): Clear cur_loc if new variable
	appears.
	(vt_emit_notes): Initialize and destroy emitted_notes.

From-SVN: r157264
2010-03-07 16:44:11 +01:00