Commit Graph

72989 Commits

Author SHA1 Message Date
Hans-Peter Nilsson
6b2acaad34 Correct last commit
From-SVN: r109287
2006-01-03 20:42:55 +00:00
Hans-Peter Nilsson
103ac22259 thunk3.C, thunk4.C: Gate on dg-require-weak.
* g++.dg/abi/thunk3.C, g++.dg/abi/thunk4.C: Gate on
	dg-require-weak.  Adjust regexp to handle leading-underscore
	targets, NO_DOT_IN_LABEL targets and space as well as TAB after
	.weak.

From-SVN: r109286
2006-01-03 20:24:53 +00:00
Jakub Jelinek
a13e882c79 varasm.c (assemble_variable): Handle thread-local COMMON data.
* varasm.c (assemble_variable): Handle thread-local COMMON data.
        * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r109282
2006-01-03 08:19:21 -08:00
Paolo Bonzini
13991abbfc re PR rtl-optimization/25578 (gfortran version 4.2.0 20051227 - 144 new testsuite failures since 2005121)
gcc:
2006-01-03  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/25578
	* combine.c (combine_simplify_rtx, force_to_mode): Don't
	pass a parameter to simplify_shift_const if changing ASHIFTRT
	to LSHIFTRT.

gcc/testsuite:
2006-01-03  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/25578
	* gcc.c-torture/execute/20060102-1.c: New testcase.

From-SVN: r109281
2006-01-03 14:58:05 +00:00
Paolo Carlini
31905f3498 stl_list.h (_List_base<>::_M_get_Node_allocator): Add.
2006-01-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (_List_base<>::_M_get_Node_allocator): Add.
	(_M_get_Tp_allocator, get_allocator): Tidy.
	(list<>::list(const list&), insert(iterator, size_type, const
	value_type&), insert(iterator, _InputIterator, _InputIterator)):
	Use _M_get_Node_allocator.
	* include/bits/stl_tree.h (_Rb_tree<>::_M_get_Node_allocator()): Add.
	(_Rb_tree(const _Rb_tree<>&): Use it.
	* include/bits/stl_deque.h (_Deque_base<>::_M_get_map_allocator,
	get_allocator): Tidy.
	* include/bits/stl_vector.h (_Vector_base<>::get_allocator): Tidy.
	* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
	
	* testsuite/testsuite_allocator.h (uneq_allocator<>::swap): Fix.

	* testsuite/testsuite_allocator.h (class uneq_allocator): A simple
	non-empty testing allocator which can be endowed of a "personality"
	at construction time.

From-SVN: r109280
2006-01-03 13:19:23 +00:00
Adrian Straetling
1387fef3fb builtins.c (get_builtin_sync_mem): New function.
2006-01-03  Adrian Straetling  <straetling@de.ibm.com>

	* gcc/builtins.c (get_builtin_sync_mem): New function.
	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
	expand_builtin_lock_test_and_set, expand_builtin_lock_release):
	Call get_builtin_sync_mem to generate mem rtx.

From-SVN: r109279
2006-01-03 11:52:29 +00:00
Paolo Carlini
9c5093d1a6 1.cc: Initialize vars.
2006-01-03  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/27_io/basic_stringstream/str/char/1.cc: Initialize vars.
	* testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise, tidy.
	* testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.

From-SVN: r109275
2006-01-03 10:29:25 +00:00
Richard Guenther
b2ecb7a8e6 re PR c/25183 (internal compiler error triggered by overflow in constant expression)
2006-01-03  Richard Guenther  <rguenther@suse.de>

        PR c/25183
	* stmt.c (add_case_node): Make sure to clear overflow flags
	from ranges.

	* gcc.dg/torture/pr25183.c: New testcase.

From-SVN: r109272
2006-01-03 09:15:08 +00:00
Jakub Jelinek
396b535a72 backport: sync.md: New file.
Merge from gomp-branch.
	* config/sparc/sync.md: New file.
	* config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
	UNSPECV_LDSTUB): New constants.
	* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
	* config/sparc/predicates.md (memory_reg_operand): New predicate.
	* config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
	prototype.

	* gcc.dg/ia64-sync-1.c: On sparc*-*-*, pass -mcpu=v9.
	* gcc.dg/ia64-sync-2.c: Likewise.
	* gcc.dg/ia64-sync-3.c: Likewise.
	* gcc.dg/ia64-sync-4.c: Likewise.
	* gcc.dg/sync-2.c: Likewise.
	* lib/target-supports.exp (sync_char_short, sync_int_long): Indicate
	that sparc64-*-* and sparcv9-*-* supports sync builtins.

From-SVN: r109271
2006-01-03 10:06:36 +01:00
Mark Mitchell
357d956ebd re PR c++/25635 (Bogus cruft in error message for invalid operator declaration)
PR c++/25635
	* class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
	conversion operator.
	* decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
	PR c++/25638
	* class.c (add_method): Never associate more than one destructor
	with a single class.
	PR c++/25637
	* cp-tree.h (do_friend): Adjust prototype.
	* decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
	(grokdeclarator): Likewise.  Refine check for invalid
	declarations/definitions of member functions outside of their own
	class.
	* friend.c (do_friend): Make funcdef_flag a bool, not an int.
	PR c++/25633
	* parser.c (cp_parser_mem_initializer_list): Check result of
	cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
	(cp_parser_mem_initializer): Return error_mark_node for failure.
	PR c++/25634
	* parser.c (cp_parser_template_parameter_list): Call
	begin_template_parm_list and end_template_parm_list here.
	(cp_parser_type_parameter): Not here.
	(cp_parser_template_declaration_after_export): Or here.
	(cp_parser_elaborated_type_specifier): Call
	cp_parser_check_template_parameters.
	* tree.c (build_target_expr_with_type): Use force_target_expr.
	PR c++/25635
	* g++.dg/parse/operator6.C: New test.
	PR c++/25637
	* g++.dg/parse/error29.C: New test.
	PR c++/25638
	* g++.dg/parse/dtor6.C: New test.
	PR c++/25633
	* g++.dg/parse/ctor3.C: New test.
	PR c++/25634
	* g++.dg/template/class3.C: New test.

From-SVN: r109270
2006-01-03 08:41:21 +00:00
Roger Sayle
622d525826 combine.c (reg_subword_p): New predicate to test whether the destination of a set refers to a...
* combine.c (reg_subword_p): New predicate to test whether the
	destination of a set refers to a subword/piece of a register.
	(try_combine): Generalize the code to merge the setting of a
	pseudo to a constant followed by a set of a subword of that
	register to a constant.

From-SVN: r109267
2006-01-03 07:18:48 +00:00
Kazu Hirata
36c88f3446 tree-ssa-propagate.c (cfg_blocks): Change the type to VEC(basic_block,heap) *.
* tree-ssa-propagate.c (cfg_blocks): Change the type to
	VEC(basic_block,heap) *.
	(cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
	ssa_prop_fini): Adjust the uses of cfg_blocks.

From-SVN: r109266
2006-01-03 06:30:13 +00:00
Kazu Hirata
e597f337e4 basic-block.h (control_flow_graph): Change the type of x_label_to_block_map to VEC(basic_block,gc) *.
* basic-block.h (control_flow_graph): Change the type of
	x_label_to_block_map to VEC(basic_block,gc) *.
	* tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
	set_bb_for_stmt): Adjust the uses of x_label_to_block_map.

From-SVN: r109265
2006-01-03 06:29:07 +00:00
Steven Bosscher
78b76d0884 re PR rtl-optimization/25130 (miscompilation in GCSE)
* fold-const.c (operand_equal_p): Accept a NULL operand 0 for
	COMPONENT_REFs.
	* emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
	hashing trees instead of a pointer hash.
	(mem_attrs_htab_eq): Do a deep compare instead of a pointer
	compare for MEM_EXPR.

	PR rtl-optimization/25130
	* cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
	when comparing MEMs for GCSE

From-SVN: r109264
2006-01-03 06:20:21 +00:00
Ben Elliston
0884546e1b targhooks.h (default_decimal_float_supported_p): Declare.
* targhooks.h (default_decimal_float_supported_p): Declare.
	* targhooks.c (default_decimal_float_supported_p): Define.
	* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
	`default_decimal_float_supported_p'.
	* doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.

From-SVN: r109262
2006-01-03 16:08:19 +11:00
Adam Nemet
f13f406e12 combine.c (apply_distributive_law <SUBREG>): Check TRULY_NOOP_TRUNCATION.
* combine.c (apply_distributive_law <SUBREG>): Check
	TRULY_NOOP_TRUNCATION.

From-SVN: r109261
2006-01-03 05:05:06 +00:00
Geoffrey Keating
1146e68216 Index: gcc/ChangeLog
2006-01-02  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (have_switched_text_section): Delete.
	(have_multiple_function_sections): New.
	(have_location_lists): Make 'bool'.
	(add_AT_loc_list): Use 'true' not '1'.
	(dwarf2out_switch_text_section): Set have_multiple_function_sections.
	(output_loc_list): Use have_multiple_function_sections.
	(output_ranges): Likewise.
	(dwarf2out_begin_function): Set have_multiple_function_sections if
	necessary.
	(dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
	Check function_section rather than DECL_SECTION_NAME.
	(dwarf2out_finish): Use have_multiple_function_sections.
	Don't clear have_location_lists.

Index: gcc/testsuite/ChangeLog
2006-01-02  Geoffrey Keating  <geoffk@apple.com>

	* g++.dg/debug/debug9.C: New.

From-SVN: r109260
2006-01-03 04:57:10 +00:00
Joseph Myers
5ae500d240 * zh_CN.po: Update.
From-SVN: r109258
2006-01-03 02:08:49 +00:00
Mark Mitchell
d79e6356aa libtool-ldflags: New script.
* libtool-ldflags: New script.

	* src/Makefile.am (LTLDFLAGS): New variable. 
	(CXXLINK): Use LTLDFLAGS.
	* src/Makefile.in: Regenerated.
	* libsupc++/Makefile.am (LTLDFLAGS): New variable. 
	(CXXLINK): Use LTLDFLAGS.
	* libsupc++/Makefile.in: Regenerated.

From-SVN: r109256
2006-01-03 00:30:27 +00:00
GCC Administrator
0ac6ae9a68 Daily bump.
From-SVN: r109253
2006-01-03 00:17:30 +00:00
Eric Botcazou
c8c3cb28fa cfglayout.c (fixup_reorder_chain): Remove kludge for the case of conditional jump jumping to the next instruction.
* cfglayout.c (fixup_reorder_chain): Remove kludge for the
	case of conditional jump jumping to the next instruction.
	* cfgrtl.c (force_nonfallthru_and_redirect): Accept all
	cases of conditional jump jumping to the next instruction.


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

From-SVN: r109247
2006-01-02 22:47:50 +00:00
Steven G. Kargl
99f1e97091 re PR fortran/24640 ([4.1] ice with invalid label)
PR fortran/24640
* parse.c (next_free): Check for whitespace after the label.
* match.c (gfc_match_small_literal_int): Initialize cnt variable.

* gfortran.dg/label_2.f90: New test.

From-SVN: r109246
2006-01-02 22:23:35 +00:00
Jan Hubicka
a9cc9cc69a i386.c (*_cost): Add COSTS_N_INSNS.
* i386.c (*_cost): Add COSTS_N_INSNS.
	(ix86_rtx_costs): Do not use COSTS_N_INSNS.

From-SVN: r109242
2006-01-02 19:19:22 +00:00
Paolo Bonzini
4c4b3eb0fc re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h))
config:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* stdint.m4: New.

gcc:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* Makefile.in (DECNUMINC): Include libdecnumber's build directory.

libgfortran:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* configure.ac: Use GCC_HEADER_STDINT.
	* libgfortran.h: Include gstdint.h.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

libdecnumber:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* configure.ac: Use GCC_HEADER_STDINT.
	* decContext.h: Include gstdint.h.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

From-SVN: r109241
2006-01-02 18:53:27 +00:00
Andreas Schwab
a6fbc1e26b configure.in: When reconfiguring remove Makefile in all stage directories.
* configure.in: When reconfiguring remove Makefile in
	all stage directories.
	* configure: Regenerate.

From-SVN: r109240
2006-01-02 18:34:24 +00:00
Mark Mitchell
520c308128 * decl2.c (mark_used): Fix typo in comment.
From-SVN: r109239
2006-01-02 17:53:44 +00:00
Volker Reichelt
56f42830e2 arm.c (all_fpus): Fix comment typo.
* config/arm/arm.c (all_fpus): Fix comment typo.
	* config/darwin.c: Likewise.
	* config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
	* config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.

From-SVN: r109238
2006-01-02 17:28:54 +00:00
Volker Reichelt
56bbd9d6aa parser.c (cp_parser_using_declaration): Skip name-lookup on invalid scope.
* parser.c (cp_parser_using_declaration): Skip name-lookup on
	invalid scope.

	* g++.dg/lookup/using12.C: Tighten error marker.

From-SVN: r109237
2006-01-02 16:19:26 +00:00
Paolo Carlini
49d5c016da re PR libstdc++/24645 (Commonize arithmetic inserters/extractors bodies)
2006-01-02  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24645
	* include/std/std_istream.h (basic_istream<>::_M_extract): New.
	(operator>>(bool&), operator>>(short&), operator>>(unsigned short&),
	operator>>(int&), operator>>(unsigned int&), operator>>(long&),
	operator>>(unsigned long&), operator>>(long long&), operator>>
	(unsigned long long&), operator>>(float&), operator>>(double&),
	operator>>(long double&), operator>>(void*&)): Use it.
	* include/bits/istream.tcc (basic_istream<>::_M_extract): Define.
	* include/std/std_ostream.h (basic_ostream<>::_M_insert): New.
	(operator<<(long), operator<<(unsigned long), operator<<(bool),
	operator<<(short), operator<<(unsigned short), operator<<(int),
	operator<<(unsigned int), operator<<(long long), operator<<
	(unsigned long long), operator<<(double), operator<<(float),
	operator<<(long double), operator<<(const void*): Use it.
	* include/bits/ostream.tcc (basic_ostream<>::_M_insert): Define.
	* src/istream-inst.cc: Add _M_insert instantiations.
	* src/ostream-inst.cc: Add _M_extract instantiations.
	* config/abi/pre/gnu.ver: Export the new symbols @GLIBCXX_3.4.7;
	detail existing @GLIBCXX_3.4 exports of basic_ostream, num_put,
	money_put, etc., symbols to avoid exporting _M_insert symbols
	@GLIBCXX_3.4.

From-SVN: r109236
2006-01-02 09:57:49 +00:00
Paolo Bonzini
5f0926cd78 changelog rotated for gcc
From-SVN: r109235
2006-01-02 09:02:58 +00:00
GCC Administrator
fcc25394e3 Daily bump.
From-SVN: r109232
2006-01-02 00:17:22 +00:00
David Edelsohn
9fc75b97f9 rs6000.c (rs6000_expand_compare_and_swapqhi): New.
* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
        (rs6000_split_compare_and_swapqhi): New.
        * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
        (sync_compare_and_swapqhi_internal): New.
        * config/rs6000/rs6000-protos.h: Declare.

From-SVN: r109226
2006-01-01 17:00:46 -05:00
Steven G. Kargl
f1d592bed3 * Split the ChangeLog into years.
From-SVN: r109225
2006-01-01 17:14:35 +00:00
Steven G. Kargl
5873154d20 * Split the ChangeLog into years.
From-SVN: r109224
2006-01-01 17:04:47 +00:00
Andreas Tobler
893ea23201 darwin-abi-3.c: New file.
2006-01-01  Andreas Tobler  <a.tobler@schweiz.ch>
	    Andrew Pinski <pinskia@physics.uc.edu>

	* gcc.target/powerpc/darwin-abi-3.c: New file.
	* gcc.target/powerpc/darwin-abi-4.c: Likewise.
	* gcc.target/powerpc/darwin-abi-5.c: Likewise.
	* gcc.target/powerpc/darwin-abi-6.c: Likewise.
	* gcc.target/powerpc/darwin-abi-7.c: Likewise.
	* gcc.target/powerpc/darwin-abi-8.c: Likewise.
	* gcc.target/powerpc/darwin-abi-9.c: Likewise.
	* gcc.target/powerpc/darwin-abi-10.c: Likewise.
	* gcc.target/powerpc/darwin-abi-11.c: Likewise.

Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>

From-SVN: r109223
2006-01-01 17:36:56 +01:00
Daniel Berlin
07614db8e4 It's 2006, i think
From-SVN: r109222
2006-01-01 15:06:13 +00:00
Daniel Berlin
5bab76374e loadpre1.c: New;
2005-01-01  Daniel Berlin  <dberlin@dberlin.org>

	* gcc.dg/tree-ssa/loadpre1.c: New;
	* gcc.dg/tree-ssa/loadpre2.c: New;
	* gcc.dg/tree-ssa/loadpre3.c: New;
	* gcc.dg/tree-ssa/loadpre4.c: New;
	* gcc.dg/tree-ssa/loadpre5.c: New;
	* gcc.dg/tree-ssa/loadpre6.c: New;
	* gcc.dg/tree-ssa/loadpre7.c: New;
	* gcc.dg/tree-ssa/loadpre8.c: New;
	* gcc.dg/tree-ssa/loadpre9.c: New;

From-SVN: r109221
2006-01-01 14:40:38 +00:00
Nathan Sidwell
a66de72e72 thunk3.C: Adjust regexp to be 64bit safe.
* g++.dg/abi/thunk3.C: Adjust regexp to be 64bit safe.
	* g++.dg/abi/thunk4.C: Likewise.

From-SVN: r109220
2006-01-01 13:29:46 +00:00
Andreas Jaeger
60b81a6fb1 loadpre6.c: Fix prototype of malloc to be portable.
* gcc.dg/tree-ssa/loadpre6.c: Fix prototype of malloc to be
        portable.

From-SVN: r109219
2006-01-01 13:39:51 +01:00
Jerry DeLisle
a7c633eaef re PR libfortran/25594 (LAPACK regression in schkbl.f)
2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25594
	PR libgfortran/25419
	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
	a null value (default). Revert patch of 25419 on 2005-12-28.

From-SVN: r109211
2006-01-01 02:45:22 +00:00
GCC Administrator
cfcbf84624 Daily bump.
From-SVN: r109208
2006-01-01 00:17:41 +00:00
Jakub Jelinek
d09e893f10 re PR c++/25294 (Bogus "unterminated comment" error from #pragma comment)
PR c++/25294
	* directives.c (do_pragma): If pragma line ends with multi-line
	block comment, end the saved deferred pragma string before that
	comment.  Handle embedded '\0' chars on the pragma line.

	* gcc.dg/pragma-pack-3.c: New test.
	* g++.dg/parse/pragma3.C: New test.

From-SVN: r109201
2006-01-01 00:45:58 +01:00
Andrew Pinski
2984956b2f re PR tree-optimization/25612 (Ada bootstrap failure on x86_64 find_or_generate_expression, at tree-ssa-pre.c:2028)
2005-12-31  Andrew Pinski  <pinskia@ohysics.uc.edu>

        PR tree-opt/25612
        * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a
        parameter and pretend that it is defined in the entry basic block.

From-SVN: r109200
2005-12-31 11:38:05 -08:00
John David Anglin
67570aba0d re PR middle-end/24827 (FAIL: gcc.dg/attr-weakref-1.c)
PR middle-end/24827
	* gcc.dg/attr-weakref-1.c: Skip test on hppa*-*-hpux*.

From-SVN: r109197
2005-12-31 02:12:34 +00:00
Kaveh R. Ghazi
b8dc9b746a re PR testsuite/25214 (-fpic/-fPIC failures in gcc.dg/i386-local2.c)
PR testsuite/25214
	* gcc.target/i386/local2.c: Skip if ilp32 and -fpic/-fpic.

From-SVN: r109193
2005-12-31 00:46:05 +00:00
Bob Wilson
4fb358b857 xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New.
include/
	* xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New.

From-SVN: r109191
2005-12-31 00:29:42 +00:00
GCC Administrator
ea79aa1a40 Daily bump.
From-SVN: r109188
2005-12-31 00:17:32 +00:00
Kazu Hirata
1f45242431 tree-outof-ssa.c (_elim_graph): Change the type of STACK to VEC(int,heap).
* tree-outof-ssa.c (_elim_graph): Change the type of STACK to
	VEC(int,heap).
	(new_elim_graph, delete_elim_graph, elim_forward,
	eliminate_phi): Use the VEC API on STACK.

From-SVN: r109182
2005-12-30 23:57:30 +00:00
Daniel Berlin
c90186eb1a tree.h (VALUE_HANDLE_VUSES): New.
2005-12-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (VALUE_HANDLE_VUSES): New.
	(struct tree_value_handle): Add vuses.

	* tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses.
	(vn_compute): Remove stmt argument.
	Don't use vuses in hash value computation.
	(val_expr_pair_eq): Compare vuse lists.
	(copy_vuses_from_stmt): New function.
	(shared_vuses_from_stmt): Ditto.
	(vn_add): Rewrite in terms of vn_add_with_vuses.
	(vn_add_with_vuses): New function.
	(vn_lookup): Rewrite in terms of vn_lookup_with_vuses.
	(vn_lookup_with_vuses): New function.
	(vuses_compare): New function.
	(print_creation_to_file): Ditto.
	(vn_lookup_or_add): Rewrite to handle vuses.
	(sort_vuses): New function.
	(vn_lookup_or_add_with_vuses): Ditto.
	(vn_init): Initialize shared_lookup_vuses.
	(vn_delete): Free shared_lookup_vuses.

	* tree-ssa-pre.c: Update todo list.
	(bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and
	rvuse_kill.
	(RVUSE_IN): New macro.
	(RVUSE_GEN): Ditto.
	(RVUSE_KILL): Ditto.
	(RVUSE_OUT): Ditto.
	(modify_expr_node_pool): New function.
	(pretemp): New.
	(storetemp): Ditto.
	(mergephitemp): Ditto.
	(prephitemp): Ditto.
	(struct expr_pred_trans_d): Add vuses member.
	(expr_pred_trans_eq): Compare vuses.
	(phi_trans_lookup): Add vuses argument.
	(phi_trans_add): Ditto.
	(translate_vuses_through_block): New function.
	(phi_translate): Use vuses to ask about those expressions that can
	have vuses.
	Properly translate virtual uses through phis, and use
	vn_lookup_or_add_with vuses.  Handle tcc_reference.
	(phi_translate_set): Don't add pointless translations to the
	cache.
	(get_representative): New function.
	(vuses_dies_in_block_x): Ditto.
	(valid_in_set): Add block argument.  Check virtual use validity.
	(clean): Add block argument. Update call to valid_in_set
	(compute_antic_aux): Update call to clean.
	(dump_bitmap_of_names): New function.
	(compute_vuse_representatives): Ditto.
	(compute_rvuse): Ditto.
	(can_value_number_call): Modified to accept calls with vuses.
	(can_value_number_operation): New function.
	(can_PRE_operation): Ditto.
	(need_creation): New vector of stores that may need creation.
	(find_or_generate_expression): use can_PRE_operation.
	(create_expression_by_pieces): Handle INDIRECT_REF.
	Only create one temp until we have to change types.
	Mark new vars for renaming.
	(insert_into_preds_of_block): Ignore loopiness of loads.
	Use can_PRE_operation.
	Only create one temp until we have to chnge types.
	(insert_aux): Use can_PRE_operation.
	Don't pass name to insert_into_preds_of_block.
	(insert_extra_phis): Only use one temp until we have to change
	types.
	(poolify_tree): New function.
	(modify_expr_template): New var.
	(poolify_modify_expr): New function.
	(insert_fake_stores): Ditto.
	(realify_fake_stores): Ditto.
	(compute_avail): Use can_value_number_operation.
	(mark_operand_necessary): Return NULL for non-SSA names.
	(remove_dead_inserted_code): Update comment.
	(init_pre): Initialize pretemp, need_creation, storetemp,
	mergephitemp, prephitemp.
	Create modify_expr_node_pool.
	(fini_pre): Free modify_expr_node_pool and need_creation array.
	(execute_pre): Call insert_fake_stores, compute_rvuse, and
	realify_fake_stores. 
	* tree-flow.h (vn_compute): Fix prototype.
	(vn_add): Ditto.
	(vn_lookup): Ditto.
	(sort_vuses): New.
	(vn_lookup_or_add_with_vuses): Ditto.
	(vn_add_with_vuses): Ditto.
	(vn_lookup_with_vuses): Ditto.
	* passes.c (pass_may_alias): Add.

From-SVN: r109180
2005-12-30 18:43:00 +00:00
Gabriel Dos Reis
a176426f35 c-pretty-print.h (struct c_pretty_print_info): Add new member "constant".
2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * c-pretty-print.h (struct c_pretty_print_info): Add new
          member
        "constant".
        (pp_constant): New macro.
        * c-pretty-print.c (pp_c_pretty_printer_init): Set
          pp->constant.

cp/
2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * cxx-pretty-print.c (pp_cxx_constant): New.  Print
        string-literal in parens if input program says so.
        (pp_cxx_primary_expression): Hand off constant printing to
        pp_cxx_constant.
        (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
        (pp_cxx_expression): Use pp_cxx_constant for literals.
        * error.c (dump_expr): Use pp_constant for literals.

From-SVN: r109176
2005-12-30 17:27:28 +00:00