Commit Graph

92366 Commits

Author SHA1 Message Date
Paolo Carlini
94986f6d35 random.h (operator==): Mark all inline.
2009-04-06  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.h (operator==): Mark all inline.
	(mersenne_twister_engine): Enable #if 0 checks.

	* include/bits/random.h: Formatting tweaks.

From-SVN: r145602
2009-04-06 13:31:12 +00:00
Andrew Stubbs
2e698f677d pragma-isr-trapa2.c: Skip test for FPU-less architectures.
2009-04-06  Andrew Stubbs  <ams@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/pragma-isr-trapa2.c: Skip test for FPU-less architectures.

From-SVN: r145590
2009-04-06 11:29:51 +00:00
Jan Hubicka
570c4247a2 re PR middle-end/39659 (ICE building libstdc++v3 functexcept.cc)
PR middle-end/39659
	* except.c (remove_unreachable_regions): Propagate may_contain_throw
	flag.

From-SVN: r145589
2009-04-06 11:24:32 +00:00
Andrew Stubbs
a460d7a147 lib1funcs.asm (ic_invalidate): Move ICBI out of the delay slot.
2009-04-06  Andrew Stubbs  <ams@codesourcery.com>

	* config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
	delay slot.
	(ic_invalidate_array): Likewise.

From-SVN: r145588
2009-04-06 11:22:09 +00:00
Andrew Stubbs
5020dbd68d sh4a-memmovua.c: Include string.h instead of stdlib.h.
2009-04-06  Andrew Stubbs  <ams@codesourcery.com>

	* gcc.target/sh/sh4a-memmovua.c: Include string.h instead of stdlib.h.

2009-04-06  Andrew Stubbs  <ams@codesourcery.com>

	* gcc.target/sh/sh4a-bitmovua.c (y0): Rename to y_0 to avoid a clash
	with the built-in y0, and the subsequent warning.
	(y1): Likewise, rename to y_1.

From-SVN: r145587
2009-04-06 11:17:36 +00:00
Hariharan Sandanagobalane
6bdf8c2e53 calls.c (emit_library_call_value_1): Fix a problem with parameter alignment for library calls.
* calls.c (emit_library_call_value_1): Fix a problem with parameter
alignment for library calls.

From-SVN: r145586
2009-04-06 10:54:42 +00:00
Janus Weil
1d146030e2 re PR fortran/39414 (PROCEDURE statement double declaration bug)
2009-04-06  Janus Weil  <janus@gcc.gnu.org>

       PR fortran/39414
       * decl.c (match_procedure_decl): Fix double declaration problems with
       PROCEDURE statements.
       * symbol.c (gfc_add_type): Ditto.


2009-04-06  Janus Weil  <janus@gcc.gnu.org>

       PR fortran/39414
       * gfortran.dg/proc_decl_21.f90: New.

From-SVN: r145583
2009-04-06 10:33:31 +02:00
Danny Smith
7d253f6e46 config.gcc (mingw32 tm_file): Add mingw-stdint.h.
* config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
       (mingw32 tm clause use_gcc_stdint):  Set to wrap.
       * config/i386/mingw-stdint.h:  New file.

From-SVN: r145582
2009-04-06 07:25:36 +00:00
Paul Thomas
59e36b7221 re PR fortran/36091 (false positive in bounds checking with forall)
2009-04-06  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/36091
        * trans-array.c (gfc_conv_array_ref): If the symbol has the
	temporary attribute use the array_spec for the bounds.
	* gfortran.h : Add the temporary field to the structure
	'symbol_attribute'.
	* trans-stmt.c (forall_make_variable_temp): Set the symbol's
	temporary attribute.

2009-04-06  Paul Thomas  <pault@gcc.gnu.org

        PR fortran/36091
        * gfortran.dg/forall_13.f90: Add -fbounds-check option.

From-SVN: r145581
2009-04-06 05:25:46 +00:00
Hans-Peter Nilsson
ecef6119ce namelist_51.f90, [...]: Gate test on effective_target fd_truncate.
* gfortran.dg/namelist_51.f90, gfortran.dg/utf8_2.f03,
	gfortran.dg/namelist_48.f90, gfortran.dg/read_repeat.f90,
	gfortran.dg/streamio_9.f90, gfortran.dg/widechar_IO_1.f90,
	gfortran.dg/namelist_50.f90, gfortran.dg/namelist_52.f90,
	gfortran.dg/utf8_1.f03, gfortran.dg/namelist_56.f90,
	gfortran.dg/namelist_49.f90: Gate test on effective_target
	fd_truncate.
	* gfortran.dg/widechar_IO_3.f90: Ditto.  Fix typo in comment.

From-SVN: r145580
2009-04-06 03:41:44 +00:00
Jason Merrill
c450fb8b66 fix markup
From-SVN: r145579
2009-04-05 20:55:30 -04:00
GCC Administrator
66375fe2b5 Daily bump.
From-SVN: r145578
2009-04-06 00:16:44 +00:00
Paolo Carlini
9769c19080 random.tcc (piecewise_linear_distribution<>:: operator()(_UniformRandomNumberGenerator&, const param_type&)): Remove spurious closed parenthesis.
2009-04-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc (piecewise_linear_distribution<>::
	operator()(_UniformRandomNumberGenerator&, const param_type&)):
	Remove spurious closed parenthesis.

From-SVN: r145575
2009-04-05 22:51:37 +00:00
Daniel Kraft
e462f7274c re PR libfortran/38654 (Fortran I/O speedup)
2009-04-05  Daniel Kraft  <d@domob.eu>

	PR fortran/38654
	* gfortran.dg/read_float_2.f03
	* gfortran.dg/read_float_3.f90

From-SVN: r145572
2009-04-05 20:23:21 +00:00
Jerry DeLisle
7812c78c34 [multiple changes]
2009-04-05  Daniel Kraft  <d@domob.eu>

	PR fortran/38654
	* io/read.c (read_f): Reworked to speed up floating point parsing.
	(convert_real): Use pointer-casting instead of memcpy and temporaries.

2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/37754
	* io/io.h (format_hash_entry): New structure for hash table.
	(format_hash_table): The hash table itself.
	(free_format_data): Revise function prototype.
	(free_format_hash_table, init_format_hash,
	free_format_hash): New function prototypes.
	* io/unit.c (close_unit_1): Use free_format_hash_table.
	* io/transfer.c (st_read_done, st_write_done): Free format data if
	internal unit.
	* io/format.c (free_format_hash_table): New function that frees any
	memory allocated previously for cached format data.
	(reset_node): New static helper function to reset the format counters
	for a format node.
	(reset_fnode_counters): New static function recursively calls reset_node
	to traverse the	fnode tree.
	(format_hash): New simple hash function based on XOR, probabalistic,
	tosses collisions.
	(save_parsed_format): New static function to save the parsed format
	data to use again.
	(find_parsed_format): New static function searches the hash table
	looking for a match.
	(free_format_data): Revised to accept pointer to format data rather than
	the dtp pointer so that the function can be used in more places.
	(format_lex): Editorial.
	(parse_format_list): Set flag used to determine of format data hashing
	is to be used.  Internal units are not persistent enough for this.
	(revert): Move to ne location in file.
	(parse_format): Use new functions to look for previously parsed
	format strings and use them rather than re-parse.  If not found, saves
	the parsed format data for later use.
	
2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/37754
	* io/transfer.c (formatted_transfer_scalar): Remove this function by
	factoring it into two new functions, one for read and one for write,
	eliminating all the conditionals for read or write mode.
	(formatted transfer_scalar_read): New function.
	(formatted transfer_scalar_write): New function.
	(formatted_transfer): Use new functions.

2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/25561 libfortran/37754
	* io/io.h (struct stream): Define new stream interface function
	pointers, and inline functions for accessing it.
	(struct fbuf): Use int instead of size_t, remove flushed element.
	(mem_alloc_w): New prototype.
	(mem_alloc_r): New prototype.
	(stream_at_bof): Remove prototype.
	(stream_at_eof): Remove prototype.
	(file_position): Remove prototype.
	(flush): Remove prototype.
	(stream_offset): Remove prototype.
	(unit_truncate): New prototype.
	(read_block_form): Change to return pointer, int* argument.
	(hit_eof): New prototype.
	(fbuf_init): Change prototype.
	(fbuf_reset): Change prototype.
	(fbuf_alloc): Change prototype.
	(fbuf_flush): Change prototype.
	(fbuf_seek): Change prototype.
	(fbuf_read): New prototype.
	(fbuf_getc_refill): New prototype.
	(fbuf_getc): New inline function.
        * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
	(fbuf_debug): New function.
	(fbuf_reset): Flush, and return position offset.
	(fbuf_alloc): Simplify, don't flush, just realloc.
	(fbuf_flush): Make usable for read mode, salvage remaining bytes.
	(fbuf_seek): New whence argument.
	(fbuf_read): New function.
	(fbuf_getc_refill): New function.
	* io/file_pos.c (formatted_backspace): Use new stream interface.
	(unformatted_backspace): Likewise.
	(st_backspace): Make sure format buffer is reset, use new stream
	interface, use unit_truncate.
	(st_endfile): Likewise.
	(st_rewind): Likewise.
	* io/intrinsics.c: Use new stream interface.
	* io/list_read.c (push_char): Don't use u.p.scratch, use realloc
	to resize.
	(free_saved): Don't check u.p.scratch.
	(next_char): Use new stream interface, use fbuf_getc() for external files.
	(finish_list_read): flush format buffer.
	(nml_query): Update to use modified interface:s
	* io/open.c (test_endfile): Use new stream interface.
	(edit_modes): Likewise.
	(new_unit): Likewise, set bytes_left to 1 for stream files.
	* io/read.c (read_l): Use new read_block_form interface.
	(read_utf8): Likewise.
	(read_utf8_char1): Likewise.
	(read_default_char1): Likewise.
	(read_utf8_char4): Likewise.
	(read_default_char4): Likewise.
	(read_a): Likewise.
	(read_a_char4): Likewise.
	(read_decimal): Likewise.
	(read_radix): Likewise.
	(read_f): Likewise.
	* io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
	usage of u.p.line_buffer.
	(read_block_form): Update interface to return pointer, use
	fbuf_read for direct access.
	(read_block_direct): Update to new stream interface.
	(write_block): Use mem_alloc_w for internal I/O.
	(write_buf): Update to new stream interface.
	(formatted_transfer_scalar): Don't use u.p.line_buffer, use
	fbuf_seek for external files.
	(us_read): Update to new stream interface.
	(us_write): Likewise.
	(data_transfer_init): Always check if we switch modes and flush.
	(skip_record): Use new stream interface, fix comparison.
	(next_record_r): Check for and reset u.p.at_eof, use new stream
	interface, use fbuf_getc for spacing.
	(write_us_marker): Update to new stream interface, don't inline.
	(next_record_w_unf): Likewise.
	(sset): New function.
	(next_record_w): Use new stream interface, use fbuf for printing
	newline.
	(next_record): Use new stream interface.
	(finalize_transfer): Remove sfree call, use new stream interface.
	(st_iolength_done): Don't use u.p.scratch.
	(st_read): Don't check for end of file.
	(st_read_done): Don't use u.p.scratch, use unit_truncate.
	(hit_eof): New function.
	* io/unit.c (init_units): Always init fbuf for formatted units.
	(update_position): Use new stream interface.
	(unit_truncate): New function.
	(finish_last_advance_record): Use fbuf to print newline.
	* io/unix.c: Remove unused SSIZE_MAX macro.
	(BUFFER_SIZE): Make static const variable rather than macro.
	(struct unix_stream): Remove dirty_offset, len, method,
	small_buffer. Order elements by decreasing size.
	(struct int_stream): Remove.
	(move_pos_offset): Remove usage of dirty_offset.
	(reset_stream): Remove.
	(do_read): Rename to raw_read, update to match new stream
	interface.
	(do_write): Rename to raw_write, update to new stream interface.
	(raw_seek): New function.
	(raw_tell): New function.
	(raw_truncate): New function.
	(raw_close): New function.
	(raw_flush): New function.
	(raw_init): New function.
	(fd_alloc): Remove.
	(fd_alloc_r_at): Remove.
	(fd_alloc_w_at): Remove.
	(fd_sfree): Remove.
	(fd_seek): Remove.
	(fd_truncate): Remove.
	(fd_sset): Remove.
	(fd_read): Remove.
	(fd_write): Remove.
	(fd_close): Remove.
	(fd_open): Remove.
	(fd_flush): Rename to buf_flush, update to new stream interface
	and unix_stream.
	(buf_read): New function.
	(buf_write): New function.
	(buf_seek): New function.
	(buf_tell): New function.
	(buf_truncate): New function.
	(buf_close): New function.
	(buf_init): New function.
	(mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
	(mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
	(mem_read): Change to match new stream interface.
	(mem_write): Likewise.
	(mem_seek): Likewise.
	(mem_tell): Likewise.
	(mem_truncate): Likewise.
	(mem_close): Likewise.
	(mem_flush): New function.
	(mem_sfree): Remove.
	(empty_internal_buffer): Cast to correct type.
	(open_internal): Use correct type, init function pointers.
	(fd_to_stream): Test whether to open file as buffered or raw.
	(output_stream): Remove mode set.
	(error_stream): Likewise.
	(flush_all_units_1): Use new stream interface.
	(flush_all_units): Likewise.
	(stream_at_bof): Remove.
	(stream_at_eof): Remove.
	(file_position): Remove.
	(file_length): Update logic to use stream interface.
	(flush): Remove.
	(stream_offset): Remove.
	* io/write.c (write_utf8_char4): Use int instead of size_t.
	(write_x): Extra safety check.
	(namelist_write_newline): Use new stream interface.

From-SVN: r145571
2009-04-05 20:13:56 +00:00
Richard Biener
941c3614de re PR c/39648 (internal compiler error: in fold_convert, at fold-const.c:2506)
2009-04-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39648
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
	our &A vs. &A[0] IL deficiencies.

	* gcc.c-torture/compile/pr39648.c: New testcase.

From-SVN: r145569
2009-04-05 19:50:28 +00:00
Jason Merrill
435970ad3e fix ChangeLogs
From-SVN: r145567
2009-04-05 15:30:35 -04:00
Jason Merrill
53b39fe5dc re PR c++/14912 (Do not print default template arguments in error messages)
PR c++/14912
        * error.c (count_non_default_template_args): New fn.
        (dump_template_parms): Call it.
        (dump_template_argument_list): Call it.  Add parms parm.
        (dump_template_argument): Adjust call to dump_template_argument_list.
        (dump_type, dump_decl): Likewise.
        (dump_template_bindings): Refactor logic.

From-SVN: r145566
2009-04-05 15:29:02 -04:00
Jan Hubicka
12633413c6 except.c (sjlj_find_directly_reachable_regions): Be ready for removed toplevel regions.
* except.c (sjlj_find_directly_reachable_regions): Be ready for removed toplevel
	regions.
	(sjlj_mark_call_sites): Likewise.

From-SVN: r145565
2009-04-05 18:33:13 +00:00
Daniel Franke
beb64b4a00 re PR fortran/29458 (Spurious -Wuninitialized warning for implied do-loop counter)
gcc/fortran/:
2009-04-05  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/29458
        * trans-array.c (gfc_trans_array_constructor_value): Shadow implied
        do-loop variable to avoid spurious middle-end warnings.


gcc/testsuite/:
2009-04-05  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/29458
        * gfortran.dg/implied_do_1.f90: New.

From-SVN: r145564
2009-04-05 14:02:00 -04:00
Paolo Carlini
2fcf6ffb76 PR libstdc++/39644 (partial)
2009-04-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39644 (partial)
	* include/bits/random.tcc (linear_congruential_engine<>::
	seed(seed_seq&), independent_bits_engine<>::operator(),
	generate_canonical(_UniformRandomNumberGenerator&)): Avoid log2l.

From-SVN: r145563
2009-04-05 16:56:16 +00:00
Dave Korn
bb2aaded92 config.gcc (cygwin tm_file): Add cygwin-stdint.h.
* config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
	(cygwin tm clause use_gcc_stdint):  Set to wrap.
	* config/i386/cygwin-stdint.h:  New file.

From-SVN: r145562
2009-04-05 16:11:54 +00:00
GCC Administrator
6338632416 Daily bump.
From-SVN: r145558
2009-04-05 00:16:44 +00:00
Paolo Carlini
fe77a308e1 2009-04-04 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typos in last ChangeLog entry.

From-SVN: r145554
2009-04-04 23:10:42 +00:00
Paolo Carlini
42a733047e [multiple changes]
2009-04-05  Edward M. Smith-Rowland  <3dw4rd@verizon.net>

	* include/bits/random.h (struct _ShiftMin1): Fix small typo and
	thinko.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	default.cc: Enable.

2009-04-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39629 (partial)
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	base_move.cc: Use uint_fast64_t instead of unsigned long.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	base_copy.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/
	operators/equal.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/
	operators/serialize.cc: Likewise.
	* testsuite/26_numerics/random/mt19937_64.cc: Use ull.

From-SVN: r145553
2009-04-04 23:09:02 +00:00
Tobias Burnus
cf7d2eb033 re PR fortran/39577 (False positive with -fcheck=recursion)
2009-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39577
        * trans-decl.c (gfc_generate_function_code): Move recursive
        check to the right position.

2009-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39577
        * gfortran.dg/recursive_check_8.f90: New.
        * gfortran.dg/recursive_check_9.f90: New.
        * gfortran.dg/recursive_check_10.f90: New.
        * gfortran.dg/recursive_check_11.f90: New.
        * gfortran.dg/recursive_check_12.f90: New.
        * gfortran.dg/recursive_check_13.f90: New.
        * gfortran.dg/recursive_check_14.f90: New.

From-SVN: r145552
2009-04-04 23:38:12 +02:00
Richard Guenther
862900112e Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2009-04-04  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
	* tree-ssa-copy.c (init_copy_prop): Do not propagate through
	single-argument PHIs if we are in loop-closed SSA form.
	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
	for the pre-condition.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_build_loop_niters): Take an optional sequence to append stmts.
	(vect_generate_tmps_on_preheader): Likewise.
	(vect_do_peeling_for_loop_bound): Take extra guards for the
	pre-condition.
	(vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
	the cost model check.
	(vect_loop_versioning): Take stmt and stmt list to put pre-condition
	guards if we are going to peel.  Do not apply versioning in that
	case.
	* tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
	(vect_do_peeling_for_loop_bound): Likewise.
	* tree-vect-loop.c (vect_transform_loop): If we are peeling for
	loop bound only record extra pre-conditions, do not apply loop
	versioning.

From-SVN: r145551
2009-04-04 20:53:39 +00:00
Jason Merrill
a4d674fc53 re PR c++/25185 (deep typedef substitution in error message)
PR c++/25185
        * error.c (dump_template_bindings): Look through typedefs in
        typename results.
        (dump_type) [TYPENAME_TYPE]: Print the typedef name if any.
        (find_typenames_r): Also collect typedefs.
        * pt.c (unify): Strip typedefs.

From-SVN: r145550
2009-04-04 15:19:30 -04:00
Eric Botcazou
63787194e1 utils.c (finish_record_type): Force structural equality checks if the record type is discriminated.
* gcc-interface/utils.c (finish_record_type): Force structural equality
	checks if the record type is discriminated.

From-SVN: r145549
2009-04-04 19:11:05 +00:00
Richard Guenther
5eeeac64dc tree-ssa-operands.c (pop_stmt_changes): Remove automatic renaming code.
2009-04-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (pop_stmt_changes): Remove automatic
	renaming code.

From-SVN: r145547
2009-04-04 18:54:42 +00:00
Jan Hubicka
1ff7d06b77 tree-ssa-uncprop.c (associate_equivalences_with_edges): Use last_basic_block for size of bb->index indexed array.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
	last_basic_block for size of bb->index indexed array.
	* bt-load.c (compute_defs_uses_and_gen, compute_kill,
	compute_out, link_btr_uses, build_btr_def_use_webs,
	build_btr_def_use_webs, migrate_btr_defs): Likewise.

From-SVN: r145546
2009-04-04 18:31:39 +00:00
Jan Hubicka
14925fcd47 except.c (remove_eh_handler_and_replace): Break out from ...
* except.c (remove_eh_handler_and_replace): Break out from ...
	(remove_eh_handler): ... here.
	(bring_to_root): New function.
	(remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
	handled ones, bring others to root of tree.

From-SVN: r145545
2009-04-04 17:15:31 +00:00
Jan Hubicka
4cb735f794 Fix changelog entry.
From-SVN: r145544
2009-04-04 17:13:15 +00:00
Jan Hubicka
4e6d1743a1 except.c (remove_eh_handler): Make static.
* except.c (remove_eh_handler): Make static.
	(eh_region_must_not_throw_p): Kill.
	(expand_resx_expr): Assertize.
	(duplicate_eh_regions): Accept callback as parameter; comment.
	* except.h (duplicate_eh_regions): New function.
	(remap_decl_v): Kill.
	(copy_cfg_body): Update call of duplicate_eh_regions.

From-SVN: r145542
2009-04-04 17:09:45 +00:00
Paul Thomas
6f85546f7c re PR fortran/37614 (Change position of padding for aligned COMMONs)
2009-04-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37614
	* trans-common.c (translate_common): Do not offset the whole
	coomon block.

2009-04-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37614
	* gfortran.dg/common_align_2.f90: New test.

From-SVN: r145541
2009-04-04 16:41:30 +00:00
Richard Guenther
c6803d43ef tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2009-04-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
	* tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
	(append_vuse): Likewise.

From-SVN: r145539
2009-04-04 14:12:10 +00:00
Jakub Jelinek
54f5943cdb unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
* unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
	* unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
	instead of REG_UNSAVED for DW_CFA_undefined.
	(uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
	(uw_update_context): If RA column is REG_UNDEFINED, mark it as
	outermost frame.

From-SVN: r145535
2009-04-04 13:41:16 +02:00
Richard Earnshaw
aad2bccb9b re PR target/39501 (-O -ffinite-math-only gets min(x,y) optimization wrong for soft-float on arm-*-gnueabi)
PR target/39501
	* arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
	* testsuite/gcc.c-torture/execute/pr39501.c: New file.
	* testsuite/gcc.c-torture/execute/pr39501.x: New file.

From-SVN: r145534
2009-04-04 10:37:10 +00:00
Richard Guenther
aa7069aa9f re PR c++/8781 (Pessimization of C++ (functional) code)
2009-04-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/8781
	PR tree-optimization/37892
	* tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
	(valueize_refs): Call it for *& valueizations.
	(shared_reference_ops_from_ref): Rename to ...
	(valueize_shared_reference_ops_from_ref): ... this and valueize.
	(shared_reference_ops_from_call): Rename to ...
	(valueize_shared_reference_ops_from_call): ... this and valueize.
	(vn_reference_lookup): Update.
	(visit_reference_op_call): Likewise.
	* tree-ssa-pre.c (phi_translate_1): Fold *&.
	(eliminate): Value-replace the call address in call statements.

	* g++.dg/tree-ssa/pr8781.C: New testcase.
	* gcc.dg/tree-ssa/ssa-pre-25.c: Likewise.

From-SVN: r145533
2009-04-04 09:34:32 +00:00
Richard Guenther
cd15ad3e60 re PR tree-optimization/39636 (ICE in gimple_assign_rhs_code, at gimple.h:1837, 435.gromacs fails to build)
2009-04-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39636
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Check for
	GIMPLE_ASSIGN before accessing the rhs code.

	* gcc.c-torture/compile/pr39636.c: New testcase.

From-SVN: r145532
2009-04-04 09:30:34 +00:00
Jason Merrill
462f32622d * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
From-SVN: r145531
2009-04-04 00:28:19 -04:00
GCC Administrator
6a067dfd2d Daily bump.
From-SVN: r145530
2009-04-04 00:16:45 +00:00
Steve Ellcey
6adb807e03 ia64.md (extendsfdf2, [...]): Use fr_reg_or_fp01_operand instead of fr_register_operand
* config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
	truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
	fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
	floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
	fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
	smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
	divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
	umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
	*nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
	*nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
	adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
	smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
	*nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
	*nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
	sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
	Use fr_reg_or_fp01_operand instead of fr_register_operand

	* config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
	recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
	divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.

From-SVN: r145527
2009-04-03 23:38:51 +00:00
H.J. Lu
d75b46b434 Mention PR rtl-optimization/39607.
From-SVN: r145525
2009-04-03 15:34:29 -07:00
H.J. Lu
32d5b22d3b pr39607.C: New.
2009-04-03  H.J. Lu  <hongjiu.lu@intel.com>

	* g++.dg/opt/pr39607.C: New.

From-SVN: r145523
2009-04-03 15:31:18 -07:00
H.J. Lu
b844e5d85a re PR rtl-optimization/39607 (Revision 145309 caused ICE in emit_swap_insn, at reg-stack.c:827)
Mention

	PR rtl-optimization/39607
	PR rtl-optimization/39631

in ChangeLog for revision 145521.

From-SVN: r145522
2009-04-03 15:25:32 -07:00
Vladimir Makarov
174b310711 revert: reload.c (push_reload, [...]): Use df_get_live_out instead of DF_LR_OUT.
2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>

	Revert
	2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
	* reload.c (push_reload, find_dummy_reload): Use df_get_live_out
	instead of DF_LR_OUT.
	* ira-lives.c (process_bb_node_lives): Ditto.
	* ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
	instead of DF_LR_{OUT,IN}.
	* ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
	* ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.

From-SVN: r145521
2009-04-03 22:02:33 +00:00
Steven Bosscher
535b544aa7 omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
* omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
	(execute_lower_omp): Always run but take the short way out if -fopenmp
	is not given.
	(gate_lower_omp): Remove, forcing the pass manager to always run the
	pass and always set PROP_gimple_lomp.
	(pass_lower_omp): Remove gate function.
	* matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
	PROP_trees.  Instead, require it.
	* ipa-cp.c (pass_ipa_cp): Likewise.
	* ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
	(pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
	* tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
	and PROP_gimple_leh.

From-SVN: r145518
2009-04-03 20:15:40 +00:00
Tobias Burnus
6f9c9d6d47 re PR fortran/39594 (compiler falls over in gfc_get_symbol_decl)
2009-04-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39594
        * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
        if it is not a procedure pointer.
        * primary.c (match_actual_arg): Ditto.

2009-04-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39594
        * gfortran.dg/common_12.f90: New.

From-SVN: r145513
2009-04-03 20:26:44 +02:00
Jason Merrill
b77ba909af re PR c++/39608 ('expr' cannot appear in a constant-expression.)
PR c++/39608
        * semantics.c (finish_id_expression): Don't assume a dependent
        member of the current instantiation isn't a valid integral
        constant expression.  Check dependent_scope_p.
        * pt.c (dependent_scope_p): Check TYPE_P.

From-SVN: r145508
2009-04-03 13:24:46 -04:00