Commit Graph

83280 Commits

Author SHA1 Message Date
Eric Botcazou
79646678b5 decl.c (gnat_to_gnu_entity): Simplify the condition under which a constant renaming is treated as a normal...
* decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
	which a constant renaming is treated as a normal object declaration.
	* trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
	the N_Indexed_Component case.
	<N_Indexed_Component>: Fall through to above case.
	<N_Object_Renaming_Declaration>: Return true for all composite types.

From-SVN: r128268
2007-09-08 10:30:06 +00:00
Eric Botcazou
3b9f15d256 Add missing dg command.
From-SVN: r128267
2007-09-08 10:19:24 +00:00
Eric Botcazou
d9e161ce8f decl.c (make_packable_type): If the new type has been given BLKmode, try again to get an integral mode for it.
* decl.c (make_packable_type): If the new type has been given BLKmode,
	try again to get an integral mode for it.

From-SVN: r128266
2007-09-08 10:02:28 +00:00
Dorit Nuzman
dab1260138 re PR tree-optimization/33301 (wrong vectorization factor due to an invariant type-promotion in the loop)
PR tree-optimization/33301
        * tree-vect-analyze (analyze_operations): Look at the type of the rhs
        when relevant.

From-SVN: r128265
2007-09-08 09:19:39 +00:00
Arnaud Charlet
f1979d7e89 Add support file for controlled2.adb
From-SVN: r128264
2007-09-08 10:21:05 +02:00
Arnaud Charlet
3f39439132 Add spec for controlled2.adb test
From-SVN: r128263
2007-09-08 10:02:05 +02:00
Zdenek Dvorak
7a9c7d01fd re PR tree-optimization/32183 (reassoc2 can more extra calculations into a loop)
2007-09-07  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32183
	* Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).

	* tree-ssa-reassoc.c: Include cfgloop.h.
	(is_reassociable_op): Add a loop argument and return true only
	for inside loop.
	(linearize_expr): Updated.
	(should_break_up_subtract): Likewise.
	(linearize_expr_tree): Likewise.
	(init_reassoc): Call loop_optimizer_init with
	AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
	with CDI_DOMINATORS.
	(fini_reassoc): Call loop_optimizer_finalize.

From-SVN: r128262
2007-09-07 23:46:53 -07:00
GCC Administrator
a7b4caa2fd Daily bump.
From-SVN: r128260
2007-09-08 00:17:26 +00:00
Sterling Augustine
9502767b88 lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even if there is no i-cache.
2007-09-07  Sterling Augustine  <sterling@tensilica.com>
	* config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
	if there is no i-cache.

From-SVN: r128256
2007-09-07 23:08:39 +00:00
Benjamin Kosnik
12187c13b9 copy_neg.cc: Correct line number.
2007-09-07  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc:
	Correct line number.

From-SVN: r128255
2007-09-07 21:09:35 +00:00
Jerry DeLisle
dd36913ccf re PR fortran/33307 (I/O read/positioning problem)
2007-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33307
	* gfortran.dg/backspace_10.f90: New test.

From-SVN: r128254
2007-09-07 20:23:40 +00:00
Jerry DeLisle
3a6666054e re PR fortran/33307 (I/O read/positioning problem)
2007-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33307
	* io/filepos.c (st_backspace): Don't truncate when already at the end
	of the file.

From-SVN: r128253
2007-09-07 20:16:05 +00:00
Eric Botcazou
0ab29e91aa Re-apply accidentally reverted change:
2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
	get_action_description_for): Replace _Unwind_Word with _uleb128_t 
	and _Unwind_SWord with _sleb128_t.

From-SVN: r128252
2007-09-07 19:57:59 +00:00
Richard Guenther
eb2c3940a1 re PR tree-optimization/32586 (New VN misses FRE opportunities)
2007-09-07  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/32586
        * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
        folding if nothing changed.
        (simplify_unary_expression): New function.  Do tree combining
        on conversion like codes.
        (try_to_simplify): Call it.

        * g++.dg/tree-ssa/pr27090.C: Remove XFAILs.
        * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for
        now obsolete simplification.

From-SVN: r128251
2007-09-07 18:55:15 +00:00
Andrew Haley
c4e9bf2b9b configure.ac (noconfigdirs): Remove target-libffi and target-libjava.
2007-09-07  Andrew Haley  <aph@redhat.com>

        * configure.ac (noconfigdirs): Remove target-libffi and
        target-libjava.
        * configure: Regenerate.

From-SVN: r128250
2007-09-07 17:14:51 +00:00
John David Anglin
f74eeed443 re PR target/33286 (All exception related tests fail)
PR target/33286
	* gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
	(__gthread_active,__gthread_start, __gthread_active_init): New.
	* gthr-posix95.h: Likewise.

From-SVN: r128249
2007-09-07 16:54:38 +00:00
Roman Zippel
215161e20f function.h (struct function): Rename calls_unwind_init to saves_all_registers.
* function.h (struct function): Rename calls_unwind_init
	to saves_all_registers.
	(current_function_saves_all_registers): Renamed from
	current_function_calls_unwind_init.
	* reload1.c (reload): Set current_function_saves_all_registers.
	* except.c (expand_builtin_unwind_init): Likewise.
	* config/m68k/m68k.c (m68k_save_reg): Use
	current_function_saves_all_registers to save pic register.

From-SVN: r128248
2007-09-07 16:46:23 +00:00
Janis Johnson
6ef9a246ce Reapply reverted change:
gcc/ada/
	Reapply reverted change:

        2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>

        * trans.c (convert_with_check): Update call to real_2expN.

gcc/
	config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
	config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.

	Reapply reverted changes:

 	2007-09-06  Jan Hubicka  <jh@suse.cz>
 
	* config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
	real_2expN.

	2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

	2007-09-05  Janis Johnson  <janis187@us.ibm.com>

	* optabs.c (expand_float): Convert unsigned integer as signed only
	if it provides sufficient accuracy; add mode argument to real_2expN.
	(expand_fix): Fix comment typos; extend binary float into mode
	wider than destination for converion to unsigned integer; add mode
	argument to real_2expN.
	* real.c (real_2expN): Add mode argument to special-case decimal
	float values.
	* real.h (real_2expN): Ditto.
	* fixed-value.c (check_real_for_fixed_mode): Add mode argument to
	real_2expN.
	(fixed_from_string): Ditto.
	(fixed_to_decimal): Ditto.
	(fixed_convert_from_real): Ditto.
	(real_convert_from_fixed): Ditto.
	* config/rs6000/rs6000.md (FP): Include DD and TD modes.
	* config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
	muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
	floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.

From-SVN: r128247
2007-09-07 16:42:48 +00:00
Diego Novillo
b48d035854 tree-flow.h (const_block_stmt_iterator): Remove.
* tree-flow.h (const_block_stmt_iterator): Remove.
	Update all users to use block_stmt_iterator.
	* tree-iterator.h (const_tree_stmt_iterator): Remove.
	Update all users to use tree_stmt_iterator.

From-SVN: r128246
2007-09-07 12:38:46 -04:00
Sandra Loosemore
7c45aad5e6 mips.c (mips_set_current_function): Temporarily make this a no-op to fix bootstrap errors, pending rewrite.
2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/mips/mips.c (mips_set_current_function): Temporarily
	make this a no-op to fix bootstrap errors, pending rewrite.

From-SVN: r128245
2007-09-07 11:59:44 -04:00
Jan Hubicka
74567c2cd1 reorg.c (dbr_schedule): Move code removing placeholder USEs later in the pass.
* reorg.c (dbr_schedule): Move code removing placeholder USEs later
	in the pass.

From-SVN: r128243
2007-09-07 15:42:17 +00:00
Dorit Nuzman
71f4a02318 re PR tree-optimization/33299 (miscompilation with gfortran -O2 -ffast-math -ftree-vectorize)
PR tree-optimization/33299
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses
        for all relevant loop-exit phis, not just the first.

From-SVN: r128242
2007-09-07 15:00:11 +00:00
Richard Guenther
ccf64c833f re PR middle-end/33330 (Wrong alias for accessing scalar through array)
2007-09-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33330
	* tree-ssa-operands.c (access_can_touch_variable): An access
	of the form (*p)[0] can touch a variable of same size.

From-SVN: r128240
2007-09-07 11:57:57 +00:00
Jan Hubicka
201b2eadc4 passes.c (init_optimization_passes): Add simple dce and addressable passes.
* passes.c (init_optimization_passes): Add simple dce and addressable
	passes.
	* tree-ssa.c (execute_update_addresses_taken): New function.
	(pass_update_address_taken): New.
	* tree-ssa-dse.c (execute_simple_dse): New function.
	(pass_simple_dse): New.
	* tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.

From-SVN: r128239
2007-09-07 11:28:35 +00:00
Tobias Burnus
f85138bc84 re PR middle-end/33321 (gcc manpage contains "@option<-Wstrict-overflow=1>")
2007-09-07  Tobias Burnus  <burnus@net-b.de>

	PR middle-end/33321
	* doc/invoke.texi: Fix -Wstrict-overflow= table.

From-SVN: r128238
2007-09-07 12:46:49 +02:00
Richard Guenther
d4ef8a0bbc revert: re PR tree-optimization/32586 (New VN misses FRE opportunities)
2007-09-07  Richard Guenther  <rguenther@suse.de>
 
        Revert
        2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32586
	* tree-ssa-sccvn.c (simplify_binary_expression): Avoid
	folding if nothing changed.
	(simplify_unary_expression): New function.  Do tree combining
	on conversion like codes.
	(try_to_simplify): Call it.

	* g++.dg/tree-ssa/pr27090.C: Remove XFAILs.
	* gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for
	now obsolete simplification.

From-SVN: r128236
2007-09-07 10:31:09 +00:00
Uros Bizjak
b616a16e1a re PR tree-optimization/32821 (tree-if-conv:combine_blocks with -ftree-dump-tree-all-details fails on ICE in compilation: segfault)
PR tree-optimization/32821
	* tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
	NULL in the call to set_bb_stmt_list.

testsuite/ChangeLog:

	PR tree-optimization/32821
	* gcc.dg/tree-ssa/pr32821.c: New file.

From-SVN: r128235
2007-09-07 12:17:46 +02:00
Uros Bizjak
c664bb1b46 fpu-387.h: Include cpuid.h.
* config/fpu-387.h: Include cpuid.h.
	(set_fpu): Use __get_cpuid to check for SSE.

From-SVN: r128234
2007-09-07 11:34:36 +02:00
Richard Sandiford
7ab6a03bf5 mips.c (build_mips16_call_stub): Emit all direct float calls here, rather than leaving some to the caller.
gcc/
	* config/mips/mips.c (build_mips16_call_stub): Emit all direct
	float calls here, rather than leaving some to the caller.
	Use call_internal_direct and call_value_internal_direct.
	* config/mips/mips.md (call_internal_direct): New pattern.
	(call_value_internal_direct): Likewise.

From-SVN: r128233
2007-09-07 08:38:42 +00:00
Richard Sandiford
8d1d0deea0 mips.c (mips_base_move_loop_invariants): New variable.
gcc/
	* config/mips/mips.c (mips_base_move_loop_invariants): New variable.
	(mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
	to 0 for MIPS16.
	(override_options): Set mips_base_move_loop_invariants.

From-SVN: r128232
2007-09-07 08:14:10 +00:00
Richard Sandiford
704aab3e3f mips.opt (mcode-readable=): Move to keep list alphabetical.
gcc/
	* config/mips/mips.opt (mcode-readable=): Move to keep list
	alphabetical.

From-SVN: r128231
2007-09-07 07:48:04 +00:00
Richard Sandiford
a318179e4e mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
config/
	* mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
	(CXXFLAGS_FOR_TARGET): Likewise.

gcc/
	* doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
	and -mgpopt options.  Adjust the -G documentation to match.
	* config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
	* config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
	function, split out from mips_classify_symbol.  Return false for
	!TARGET_LOCAL_SDATA.
	(mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
	Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
	(override_options): Check whether the -mgpopt setting is consistent
	with the other flags.
	(symbolic_expression_p): Delete.
	(mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
	and default_elf_select_rtx_section.
	(mips_in_small_data_p): Honor section attributes for MIPS16 too.
	Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
	external data and TARGET_EXTERN_SDATA.

gcc/testsuite/
	* gcc.dg/attr-alias-3.c: Use real asm for MIPS.
	* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_gp
	and mips_forced_no_er.
	(dg-mips-options): Add -mno-abicalls when a small-data option is
	specified.  Skip tests with small-data options if mips_forced_gp.
	Skip tests with -mexplicit-relocs if mips_forced_no_er.
	* gcc.target/mips/sdata-1.c: New test.
	* gcc.target/mips/sdata-2.c: Likewise.
	* gcc.target/mips/sdata-3.c: Likewise.
	* gcc.target/mips/sdata-4.c: Likewise.

From-SVN: r128230
2007-09-07 07:37:38 +00:00
Tobias Burnus
f7de3bd3fa re PR fortran/33303 (Document __GFORTRAN__)
2007-09-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33303
	* doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.

From-SVN: r128229
2007-09-07 09:33:26 +02:00
Danny Smith
e4bf5dfca1 re PR libstdc++/33203 (libstdc++-v3 build broken on i386-pc-mingw32)
PR libstdc++/33203
	* configure.host (error_constants_dir):  New variable,
	defaulting to os/generic.
	( mingw32*): Overide default.
	* configure.ac (ERROR_CONSTANTS_SRCDIR): New.
	* configure: Regenerate.
	* include/Makefile.am (host_headers): Add
	$(ERROR_CONSTANTS_SRCDIR)/error_constants.h .
	* include/Makefile.in: Regenerate.
	* include/std/system_error (enum posix_errno): Remove.
	Include <bits/error_constants.h> instead.
	* config/os/mingw32/error_constants.h: New.
	* config/os/generic/error_constants.h: New.

From-SVN: r128228
2007-09-07 04:18:40 +00:00
Jason Merrill
3fd406847c * decl2.c (get_guard): Copy visibility from the guarded variable.
From-SVN: r128226
2007-09-06 23:56:41 -04:00
Benjamin Kosnik
bd1a56a0c3 libstdc++.exp: Check CXXFLAGS.
2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/lib/libstdc++.exp: Check CXXFLAGS.
	* scripts/testsuite_flags.in: CXXFLAGS_default, matching dejagnu.

	* include/std/ostream: Spacing tweak.
	* include/ext/hashtable.h: Use <algorithm>.
	* include/ext/slist: Same.
	* include/ext/rope: Same.
	* include/bits/stl_function.h: Format.
	* include/tr1_impl/array: Remove section number in doxygen markup.
	* src/list.cc: Comment tweak.	
	
	* docs/doxygen/user.cfg.in: Update for include/tr1_impl.
	
	* testsuite/25_algorithms/search_n/iterator.cc: Add using declaration.
	* testsuite/25_algorithms/nth_element/1.cc:  Same.
	* testsuite/21_strings/char_traits/requirements/short/1.cc: Use
	char_type typedef to the underlying character type.	
	* testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc:
	Remove -ansi -pedantic-errors.
	* testsuite/21_strings/char_traits/requirements/char/typedefs.cc: Same.
	* testsuite/tr1/6_containers/headers/functional/synopsis.cc:
	Remove specializations.

From-SVN: r128225
2007-09-07 03:01:53 +00:00
Laurynas Biveinis
62a4a967a9 regrename.c (copyprop_hardreg_forward_1): New variable next.
2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
	FOR_BB_INSNS_SAFE instead of for loop.
	* cse.c (cse_extended_basic_block): Likewise.
	* postreload.c (reload_cse_regs_1): New variable next. Make sure
	that the for loop does not invoke NEXT_INSN on a deleted insn.
	* function.c (instantiate_virtual_regs): Likewise.
	* lower-subreg.c (remove_retval_note): Likewise.
	(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
	FOR_BB_INSNS.
	* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
	a deleted insn.
	* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
	insn, if it's a jump.
	(try_redirect_by_replacing_jump): New variable jump_p. Call
	tablejump_p before delete_insn_chain.
	* reload1.c (reload): New variable next. Make sure that the for
	loop does not invoke NEXT_INSN on a deleted insn.
	(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
	(delete_output_reload): New variable prev. Make sure the the for
	loops do not invoke PREV_INSN on a deleted insn.

From-SVN: r128224
2007-09-07 02:58:06 +00:00
Zdenek Dvorak
917948d364 cgraphbuild.c (rebuild_cgraph_edges): Export.
* cgraphbuild.c (rebuild_cgraph_edges): Export.
	* cgraph.h (rebuild_cgraph_edges): Declare.
	* tree-pass.h (pass_expand_omp_ssa): New.
	* omp-low.c (find_omp_clause): Export.
	(copy_var_decl): Split from omp_copy_decl_2.
	(build_omp_barrier): Return the call to emit instead of emitting
	it directly.
	(lower_rec_input_clauses, expand_omp_single): Gimplify the result of
	build_omp_barrier.
	(extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
	expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
	Adapted to work on SSA form.
	(execute_expand_omp): Do not invalidate dominance information.
	(gate_expand_omp): Do not run with -fopenmp-ssa flag.
	(gate_expand_omp_ssa, pass_expand_omp_ssa): New.
	* gimplify.c (gimplify_omp_for): Ensure that the control variable is
	a gimple_reg.
	(force_gimple_operand): Allow gimplifying code expressions without
	value.
	* tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
	* common.opt (fopenmp-ssa): New.
	* tree-flow.h (find_omp_clause, copy_var_decl): Declare.
	* Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
	* tree-cfg.c: Include tree-inline.h.
	(struct move_stmt_d): Replace vars_to_remove by vars_map field.
	(replace_by_duplicate_decl, replace_ssa_name,
	mark_virtual_ops_in_region): New functions.
	(move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
	to work on SSA form.
	* passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
	* tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
	constructs.

From-SVN: r128223
2007-09-07 02:40:14 +00:00
Benjamin Kosnik
e054e6fb64 re PR libstdc++/29367 (pb_ds hash containers vs. _GLIBCXX_DEBUG)
2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/29367
	* include/ext/pb_ds/detail/map_debug_base.hpp: From this..
	* include/ext/pb_ds/detail/debug_map_base.hpp: ...to this.
	Rename map_debug_base to debug_map_base, add std::pair output
	extractors, change duplicate map_debug_base typedef in containers
	to debug_base. Use m_store_extra_indicator for m_store_hash_indicator.
	* include/ext/pb_ds/*: Likewise.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.

From-SVN: r128222
2007-09-07 02:25:45 +00:00
Benjamin Kosnik
551fe1a243 re PR libstdc++/29367 (pb_ds hash containers vs. _GLIBCXX_DEBUG)
2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/29367
	* include/ext/pb_ds/detail/map_debug_base.hpp: From this..
	* include/ext/pb_ds/detail/debug_map_base.hpp: ...to this.
	Rename map_debug_base to debug_map_base, add std::pair output
	extractors, change duplicate map_debug_base typedef in containers
	to debug_base. Use m_store_extra_indicator for m_store_hash_indicator.
	* include/ext/pb_ds/*: Likewise.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.

From-SVN: r128221
2007-09-07 02:20:58 +00:00
Paolo Carlini
ccd04b9f89 stl_vector.h (_Vector_base<>::_M_allocate): Do not call _M_impl.allocate when __n == 0.
2007-09-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (_Vector_base<>::_M_allocate):
	Do not call _M_impl.allocate when __n == 0.
	* testsuite/23_containers/vector/zero_sized_allocations.cc: New.

From-SVN: r128220
2007-09-07 01:37:31 +00:00
Laurynas Biveinis
b9dd78fa1e tree-loop-linear.c: Include obstack.h.
2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* tree-loop-linear.c: Include obstack.h.
	(linear_transform_loops): New obstack lambda_obstack.
	Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
	lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
	and free afterwards.
	* lambda.h (struct obstack): New forward declaration.
	(lambda_linear_expression_new): New parameter of type struct
	obstack *.
	(lambda_loopnest_new): Likewise.
	(lambda_loopnest_transform): Likewise.
	(lambda_body_vector_new): Likewise.
	(lambda_body_vector_compute_new): Likewise.
	(gcc_loopnest_to_lambda_loopnest): Likewise.
	(lambda_loopnest_to_gcc_loopnest): Likewise.
	* lambda-code.c: Include obstack.h.
	(lambda_lattice_new): New parameter lambda_obstack.  Use it for
	allocation of ret.
	(lambda_body_vector_new): Likewise.
	(lambda_linear_expression_new): Likewise.
	(lambda_lattice_new): Likewise.
	(lambda_loopnest_new): Likewise.  Additionally use obstack to
	allocate LN_LOOPS(ret).
	(lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
	it to lambda_lattice_new.
	(lambda_body_vector_compute_new): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new.
	(lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
	it to lambda_lattice_new.
	(compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
	Pass it to lambda_loopnest_new, lambda_linear_expression_new.
	(lambda_compute_target_space): Likewise.
	(lambda_compute_auxillary_space): New parameter lambda_obstack.
	Pass it to lambda_lattice_compute_base and
	compute_nest_using_fourieer_motzkin.
	(lambda_loopnest_transform): New parameter lambda_obstack.  Pass
	it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
	and lambda_lattice_compute_target_space.
	(gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
	Pass it to lambda_linear_expression_new.
	(gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
	to gcc_tree_to_linear_expression.
	(gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
	Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
	(lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new and
	lambda_body_vector_compute_new.
	* Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
	(lambda-code.o): Likewise.

From-SVN: r128219
2007-09-07 01:33:41 +00:00
Chao-ying Fu
0f996086cb stdfix.h: New file.
* ginclude/stdfix.h: New file.
	* Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
	(convert.o): Add dependence on fixed-value.h.
	* c-convert.c (convert): Support FIXED_POINT_TYPE.
	* c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
	to define fixed-point constants.
	(c_cpp_builtins): Define fixed-point constants.
	* convert.c (fixed-value.h): New include.
	(convert_to_real): Update comment to include fixed-point.
	Support FIXED_POINT_TYPE.
	(convert_to_integer): Update comment to include fixed-point.
	Support FIXED_POINT_TYPE.
	(convert_to_complex): Support FIXED_POINT_TYPE.
	(convert_to_fixed): New function.
	* convert.h (convert_to_fixed): Declare.
	* genopinit.c: Add comment about $Q for only fixed-point modes.
	(optabs): Add fract_optab, fractuns_optab, satfract_optab,
	satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
	sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
	ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
	usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
	usneg_optab for fixed-point modes.
	(gen_insn): Add force_fixed to track the $Q format for all fixed-point
	modes.
	* optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
	PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
	unsigned saturation optabs, when type is saturating.
	(shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
	(expand_fixed_convert): New function.
	(gen_fixed_libfunc, gen_signed_fixed_libfunc,
	gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
	gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
	gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
	gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
	gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
	functions.
	(init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
	ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
	usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
	ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
	usneg_optab, fract_optab, fractuns_optab, satfract_optab,
	satfractuns_optab.
	Initialize fixed-point libraries, including add, ssadd, usadd, sub,
	sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
	ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
	fractuns, satfractuns.
	* optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
	OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
	OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
	OTI_ssmsub_widen,  OTI_usmsub_widen.
	(ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
	usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
	ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
	umsub_widen_optab, usmsub_widen_optab): Define.
	(enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
	COI_satfractuns.
	(fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
	Define.
	(expand_fixed_convert): Declare.
	* expr.c (convert_move): Support the move of fixed-point modes.
	(emit_move_insn_1): Handle fixed-point mode to move via integer.
	(categorize_ctor_elements_1): Handle FIXED_CST.
	(count_type_elements): Handle FIXED_POINT_TYPE.
	(expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	Support FIXED_CST.
	For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
	multiply and add/subtract for fixed-point types.
	For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
	mode, we jump to binop directly.
	Support FIXED_CONVERT_EXPR.
	(do_store_flag): Check FIXED_CST to put a constant second.
	(vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(const_vector_from_tree): Support FIXED_CST.
	* doc/extend.texi (Fixed-Point): New node.
	* doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
	ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
	satfract, fractuns, satfractuns): Document them.

From-SVN: r128218
2007-09-07 01:24:09 +00:00
GCC Administrator
58cfe6985b Daily bump.
From-SVN: r128215
2007-09-07 00:17:03 +00:00
Bernd Schmidt
aeffb4b5cd bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc addresses into I registers.
* config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
	addresses into I registers.

From-SVN: r128212
2007-09-06 23:24:19 +00:00
Tom Tromey
ae582cbfa4 * jcf-parse.c (parse_class_file): Re-enter the current file.
From-SVN: r128211
2007-09-06 23:10:19 +00:00
Jan Hubicka
b2ea030b18 * semantics.c (expand_body): Do not mark arguments of clones used.
From-SVN: r128209
2007-09-06 23:04:18 +00:00
Roman Zippel
bdeb2c963f boehm.c (mark_reference_fields): Move misaligned pointer check
after JREFERENCE_TYPE_P test

From-SVN: r128208
2007-09-06 23:00:01 +00:00
Jan Hubicka
bc211e05e3 darwin.c (machopic_indirect_data_reference): Avoid invalid sharing.
2007-09-06  Jan Hubicka  <jh@suse.cz>
	    Andreas Tobler  <a.tobler@schweiz.org>

	* config/darwin.c (machopic_indirect_data_reference): Avoid invalid
	sharing.
	(machopic_legitimize_pic_address): Likewise.

Co-Authored-By: Andreas Tobler <a.tobler@schweiz.org>

From-SVN: r128207
2007-09-06 21:41:33 +02:00
Thomas Koenig
3cc50edcc0 re PR libfortran/33298 (Wrong code for SPREAD on zero-sized arrays)
2007-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/33298
	* intrinsics/spread_generic.c(spread_internal): Enable
	bounds checking by comparing extents if the bounds_check
	option has been set.  If any extent is <=0, return early.

2007-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/33298
	* spread_zerosize_1.f90:  New test case.
	* spread_bounds_1.f90:  New test case.

From-SVN: r128206
2007-09-06 19:25:30 +00:00