Commit Graph

83117 Commits

Author SHA1 Message Date
Richard Guenther 111f1fca4d re PR tree-optimization/32586 (New VN misses FRE opportunities)
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.
	* builtins.c (fold_builtin_cexp): Fold the built expressions.
	* fold-const.c (fold_unary): Test result of get_callee_fndecl().

	* 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: r128189
2007-09-06 16:05:32 +00:00
Francois-Xavier Coudert 1f5a6b84ab re PR target/33281 (gfortran crt2.o not found under Vista)
PR target/33281
	* configure.ac: Use config/mh-mingw on mingw.
	* configure: Regenerate.
	* config/mh-mingw: New host makefile fragment.

From-SVN: r128188
2007-09-06 15:42:02 +00:00
Jan Hubicka 7903b3e5bb re PR middle-end/33318 (fortran/expr.c:305: internal compiler error: internal consistency failure)
PR target/33318
	* cse.c (fold_rtx): Avoid invalid sharing.

From-SVN: r128187
2007-09-06 15:10:28 +00:00
Richard Sandiford 5ee7f30627 gcc/
* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

From-SVN: r128186
2007-09-06 15:00:47 +00:00
Eric Botcazou 38f1f8cb89 trans.c (convert_with_check): Update call to real_2expN.
* trans.c (convert_with_check): Update call to real_2expN.

From-SVN: r128185
2007-09-06 14:47:56 +00:00
Revital Eres d42a3bae0f Fix offsettable memory reference for 750CL
From-SVN: r128184
2007-09-06 14:30:19 +00:00
Pat Haugen bd379f7328 reload.c (find_reloads_address_1): Try to preserve original base/index regclass of operands.
ChangeLog:

2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>

	* reload.c (find_reloads_address_1): Try to preserve original
	base/index regclass of operands.
	* regrename.c (scan_rtx_address): Likewise.
	(replace_oldest_value_addr): Likewise.

From-SVN: r128183
2007-09-06 13:51:21 +00:00
David Edelsohn 200809cbbf libgfortran.h: Include config.h first.
* libgfortran.h: Include config.h first.
        * io/io.h (struct stream): Rename truncate to trunc.
        * io/unix.c (fd_open): Same.
        (open_internal): Same.

From-SVN: r128182
2007-09-06 08:40:50 -04:00
Uros Bizjak 71d3c6e7e4 sse3-addsubpd.c: Add -mfpmath=sse to dg-options.
* gcc.target/i386/sse3-addsubpd.c: Add -mfpmath=sse to dg-options.
	* gcc.target/i386/sse3-addsubps.c: Ditto.
	* gcc.target/i386/sse3-haddpd.c: Ditto.
	* gcc.target/i386/sse3-haddps.c: Ditto.
	* gcc.target/i386/sse3-hsubpd.c: Ditto.
	* gcc.target/i386/sse3-hsubps.c: Ditto.
	* gcc.target/i386/sse3-lddqu.c: Ditto.
	* gcc.target/i386/sse3-movddup.c: Ditto.
	* gcc.target/i386/sse3-movshdup.c: Ditto.
	* gcc.target/i386/sse3-movsldup.c: Ditto.

From-SVN: r128181
2007-09-06 13:39:49 +02:00
Richard Guenther 515f36ebd9 re PR tree-optimization/33302 (dead-store not eliminated)
2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33302
	* tree-ssa-dse.c (tree_ssa_dse): Connect infinite loops
	to the exit block before doing the post-dominator walk.
	* domwalk.c (walk_dominator_tree): The exit block is
	interesting even if it is not reachable.

	* gcc.dg/tree-ssa/ssa-dse-11.c: New testcase.

From-SVN: r128180
2007-09-06 09:05:58 +00:00
Richard Sandiford 47de45c6fc re PR bootstrap/33306 (Bootstrap failure on alpha: ICE in convert_move, at expr.c:369)
gcc/
	PR middle-end/33306
	* optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.

From-SVN: r128179
2007-09-06 08:45:16 +00:00
Basile Starynkevitch b61ff9c852 reverted configure to rev 128176 - it has been mistakingly commited
From-SVN: r128178
2007-09-06 06:57:56 +00:00
Basile Starynkevitch 1a4b763e6b typo
From-SVN: r128177
2007-09-06 06:42:47 +00:00
Basile Starynkevitch 0497c836d0 cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
robustness.

From-SVN: r128176
2007-09-06 06:38:09 +00:00
Ian Lance Taylor bb0500b075 tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int when printing.
* tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
	when printing.
	(dump_generic_node): Likewise.
	* print-rtl.c (print_decl_name): Likewise.
	* print-tree.c (print_node_brief): Likewise.
	(print_node): Likewise.
	* Makefile.in (RTL_BASE_H): Add alias.h.
	(TREE_H): Likewise.

From-SVN: r128175
2007-09-06 05:59:15 +00:00
Jason Merrill 86ef5ebb1e re PR c++/15745 (exception specification incorrectly changes the type of the exception thrown)
PR c++/15745
        * except.c (prepare_eh_type): Use type_decays_to.

From-SVN: r128174
2007-09-05 23:33:46 -04:00
Jerry DeLisle 8c292a7298 re PR libfortran/33225 (Missing last digit in some formatted output (on 32bit targets), per kind write_float)
2007-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33225
	* gfortran.dg./fmt_float.f90: New test.

From-SVN: r128173
2007-09-06 01:32:11 +00:00
Jason Merrill 6f06d231a0 re PR c++/15097 (code generator problem with ::delete and multiple inheritance and virtual deconstructs)
PR c++/15097
        * init.c (build_delete): Use build_headof to get the address of the
        complete object if we aren't using the deleting destructor.
        * rtti.c (build_headof): No longer static.
        * cp-tree.h: Declare it.

From-SVN: r128172
2007-09-05 21:24:59 -04:00
Jerry DeLisle db44b39f4f re PR libfortran/33253 (namelist: reading back a string with apostrophe)
2007-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33253
	* gfortran.dg/namelist_38.f90: Update test for DELIM= .

From-SVN: r128171
2007-09-06 01:24:17 +00:00
Jerry DeLisle 0be72e3a5e re PR libfortran/33253 (namelist: reading back a string with apostrophe)
2007-09-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33253
	* io/write.c (nml_write_obj): Set the delimiter correctly before calling
	write_character. (namelist_write): Clean up the code a little and add
	comments to clarify what its doing.

From-SVN: r128170
2007-09-06 01:20:02 +00:00
Jesper Nilsson 221818503d builtin_ctz_v3.c: New testcase.
* gcc.target/cris/builtin_ctz_v3.c: New testcase.
	* gcc.target/cris/builtin_ctz_v8.c: New testcase.

From-SVN: r128168
2007-09-06 00:17:15 +00:00
GCC Administrator 63d7383b96 Daily bump.
From-SVN: r128167
2007-09-06 00:16:59 +00:00
Jesper Nilsson 9ef4a0cd83 cris: longlong.h (count_trailing_zeros): Defined.
* longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
	Defined.
	* config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
	* config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.

From-SVN: r128165
2007-09-06 00:16:43 +00:00
Jie Zhang cfb6473a78 config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
* config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
	(tm_defines): Define UCLIBC_DEFAULT to 1.
	(extra_options): Add linux.opt.
	* config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
	(CRT_CALL_STATIC_FUNCTION): Likewise.
	(NO_IMPLICIT_EXTERN_C): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
	* config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
	* config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
	(ENDFILE_SPEC): Don't define.
	(LIB_SPEC): Likewise.
	(CRT_CALL_STATIC_FUNCTION): Likewise.
	(NO_IMPLICIT_EXTERN_C): Likewise.
	(LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.

From-SVN: r128163
2007-09-06 00:09:05 +00:00
Jan Hubicka 37dc4ed1f0 i386.c (ix86_expand_lround, [...]): Update call of real_2expN.
* i386.c (ix86_expand_lround, ix86_expand_round): Update call of
	real_2expN.

From-SVN: r128162
2007-09-06 00:04:31 +00:00
Jan Hubicka 6b956c95fd opts.c (common_handle_option): Enable inlining functions for -fprofile-generate.
* opts.c (common_handle_option): Enable inlining functions for
	-fprofile-generate.

From-SVN: r128161
2007-09-05 23:38:34 +00:00
Jakub Jelinek 012c4da9f1 re PR c++/33289 (__sprintf_chk etc. not DECL_ANTICIPATED)
PR c++/33289
	* decl.c (builtin_function_1): Set DECL_ANTICIPATED also
	on __*_chk non-__builtin_* decls.

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

From-SVN: r128160
2007-09-06 01:27:17 +02:00
Jakub Jelinek 62bedd31ed decl.c (duplicate_decls): Set TREE_NOTHROW on __builtin_XX decl if a prototype for XX is provided with...
* decl.c (duplicate_decls): Set TREE_NOTHROW on __builtin_XX
	decl if a prototype for XX is provided with throw().

	* g++.dg/eh/builtin1.C: New test.
	* g++.dg/eh/builtin2.C: New test.
	* g++.dg/eh/builtin3.C: New test.

From-SVN: r128159
2007-09-06 01:25:07 +02:00
Jakub Jelinek b1e3f20e51 builtin-attrs.def (ATTR_NONNULL_3): New.
* builtin-attrs.def (ATTR_NONNULL_3): New.
	(DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
	ATTR_NOTHROW_NONNULL_##FA.
	(DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
	(ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
	ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
	ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
	ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
	ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
	ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
	New.
	(ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
	ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
	ATTR_FORMAT_NOTHROW_3_4): Remove.
	* builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
	vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
	__vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
	instead of ATTR_FORMAT_*_*.

From-SVN: r128158
2007-09-06 01:22:51 +02:00
Hans-Peter Nilsson dfc0fb23ed cris.c (cris_emit_movem_store): Call copy_rtx on parts re-used for REG_FRAME_RELATED_EXPR.
* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
	parts re-used for REG_FRAME_RELATED_EXPR.

From-SVN: r128157
2007-09-05 23:17:50 +00:00
Janis Johnson be677dc12a optabs.c (expand_float): Convert unsigned integer as signed only if it provides sufficient accuracy...
gcc/
	* 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.

gcc/testsuite/
	* gcc.target/powerpc/dfp-dd.c: New test.
	* gcc.target/powerpc/dfp-td.c: New test.

From-SVN: r128156
2007-09-05 22:16:33 +00:00
Roger Sayle 7336815f6f acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Add EBADMSG for darwin.
* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Add EBADMSG for darwin.
	* configure: Regenerate.
	* include/std/system_error: Guard.
	* testsuite/19_diagnostics/headers/system_error/
	types_std_c++0x.cc: Same.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust
	line numbers.

From-SVN: r128154
2007-09-05 21:30:04 +00:00
Ian Lance Taylor e2d3b29484 init-regs.c (initialize_uninitialized_regs): Call emit_insn_before rather than add_insn_before.
* init-regs.c (initialize_uninitialized_regs): Call
	emit_insn_before rather than add_insn_before.

From-SVN: r128152
2007-09-05 20:55:03 +00:00
Jakub Jelinek f86bfcab9b Move ChangeLog entry to correct ChangeLog file.
From-SVN: r128151
2007-09-05 22:47:48 +02:00
Jakub Jelinek 6ef5231bdf builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
* builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
	* tree.h (CALL_EXPR_VA_ARG_PACK): Define.
	* tree-inline.h (copy_body_data): Add call_expr field.
	* tree-inline.c (expand_call_inline): Initialize call_expr.
	(copy_bb): Append anonymous inline fn arguments to arguments
	when inlining a CALL_EXPR_VA_ARG_PACK call.
	* builtins.c (expand_builtin): Issue an error if
	BUILT_IN_VA_ARG_PACK is seen during expand.
	(fold_call_expr, fold_builtin_call_array): Don't fold
	CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
	__builtin_va_arg_pack () call as last argument.
	* gimplify.c (gimplify_call_expr): If last argument to a vararg
	function is __builtin_va_arg_pack (), decrease number of call
	arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
	* expr.c (expand_expr_real_1): Issue an error if
	CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
	* tree-pretty-print.c (dump_generic_node): Handle printing
	CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
	* doc/extend.texi (__builtin_va_arg_pack): Document.

	* gcc.c-torture/execute/va-arg-pack-1.c: New test.
	* gcc.dg/va-arg-pack-1.c: New test.

From-SVN: r128150
2007-09-05 22:45:27 +02:00
Samuel Thibault e050d7958c configure.host (gnu*): Set use_libgcj_bc to yes.
2007-09-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

        * configure.host(gnu*): Set use_libgcj_bc to yes.

From-SVN: r128149
2007-09-05 20:01:54 +00:00
Adam Nemet f210ecfb2f builtin-expect-1.c: New test.
* gcc.dg/tree-ssa/builtin-expect-1.c: New test.
	* gcc.dg/tree-ssa/builtin-expect-2.c: New test.
	* gcc.dg/tree-ssa/builtin-expect-3.c: New test.
	* gcc.dg/tree-ssa/builtin-expect-4.c: New test.
	* gcc.dg/tree-ssa/builtin-expect-5.c: New test.

From-SVN: r128148
2007-09-05 19:56:39 +00:00
Adam Nemet 419ce10307 re PR tree-optimization/21513 (__builtin_expect getting in the way of uninitialized warnings)
PR tree-optimization/21513
	* builtins.c (build_builtin_expect_predicate): New function.
	(fold_builtin_expect): Add argument for expected value.
	Distribute __builtin_expect over short-circuiting operations.
	Fold nested builtin_expects.
	(fold_builtin_2): Adjust call to fold_builtin_expect.

From-SVN: r128147
2007-09-05 19:54:29 +00:00
Rask Ingemann Lambertsen e3d66ec31e re PR web/32965 (missing documentation for -ftree-dse)
PR web/32965
	PR tree-optimization/13756
	* doc/invoke.texi (Options That Control Optimization): Document
	-ftree-dse.

From-SVN: r128146
2007-09-05 19:47:56 +00:00
Paolo Carlini 61fdc9d746 re PR c++/30302 (ICE with invalid member in anonymous struct)
/cp
2007-09-03  Paolo Carlini  <pcarlini@suse.de>

	PR c++/30302
	* semantics.c (finish_id_expression): Check that path != NULL_TREE
	before using TYPE_BINFO on it.
	* class.c (finish_struct_anon): Deal correctly with anonymous
	structs (vs unions, as GNU extension) in error messages.

/testsuite
2007-09-03  Paolo Carlini  <pcarlini@suse.de>

	PR c++/30302
	* g++.dg/ext/anon-struct5.C: New.

From-SVN: r128145
2007-09-05 19:10:48 +00:00
Jason Merrill 13678df87b fix changelog entry
From-SVN: r128144
2007-09-05 14:56:55 -04:00
Pat Haugen 3951e521b5 MAINTAINERS (Write After Approval): Add myself.
2007-09-05  Pat Haugen  <pthaugen@us.ibm.com>

        * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r128143
2007-09-05 18:33:58 +00:00
Uros Bizjak b3172cabd2 cpuid.h: New file.
* gcc/config/i386/cpuid.h: New file.
	* gcc/config/i386/driver-i386.c: Include cpuid.h.
	(describe_cache): Shrink size and line strings to 100 bytes.
	(detect_caches_amd): Return "" for unsupported max_ext_level.
	Use __cpuid function.
	(detect_caches_intel): Return "" for unsupported max_level.
	Use __cpuid function.
	(host_detect_local_cpu): Change feature flag variables to
	unsigned int.  Initialize only extended feature flag variables.
	Use __get_cpuid_max to determine max supported cpuid level.
	Use __cpuid function to determine supported features.  Fix
	calculation of family id.  Remove is_amd and check signature
	directly.  Check for Geode signature.  Handle family 4 id.
	[PROCESSOR_GENERIC32]: New default for unknown family id. Move
	cpu discovery code to other part of the function.
	[PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
	for sub-architecture.
	[PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
	[PROCESSOR_K8]: Add k8-sse3 architecture.
	[PROCESSOR_GENERIC64]: Remove.
	* gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
	* gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
	to check for SSE and FXSAVE support.
	* gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
	Add -minline-all-stringops.
	* gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
	(x86_64-*-*): Ditto.

testsuite/ChangeLog:

	* gcc.dg/i386-cpuid.h: Remove.
	* gcc.target/i386/mmx-check.h: Include cpuid.h.  Use __get_cpuid.
	* gcc.target/i386/sse-check.h: Ditto.
	* gcc.target/i386/sse2-check.h: Ditto.
	* gcc.target/i386/sse3-check.h: Ditto.
	* gcc.target/i386/ssse3-check.h: Ditto.
	* gcc.target/i386/sse4_1-check.h: Ditto.
	* gcc.target/i386/sse4_2-check.h: Ditto.
	* gcc.target/i386/sse4a-check.h: Ditto.
	* gcc.dg/torture/pr16104-1.c: Ditto.
	* gcc.target/i386/mmx-4.c: Do not use NOINLINE.
	* gcc.target/i386/sse-6.c: Ditto.
	* gcc.target/i386/sse-7.c: Ditto.
	* g++.dg/other/i386-1.C: Include cpuid.h.
	(main): New function.  Use __get_cpuid to check target fetaures.

libgomp/ChangeLog:

	* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
	(main): Use __get_cpuid to get i386 target fetaures.
	* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
	(main): Use __get_cpuid to get x86_64 target fetaures.

From-SVN: r128141
2007-09-05 19:43:01 +02:00
Jie Zhang 57df7359df linux-unwind.h: New file.
* config/bfin/linux-unwind.h: New file.
	* config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
	* config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.

From-SVN: r128140
2007-09-05 16:23:42 +00:00
Laurynas Biveinis 6ac1b3a475 Makefile.in (stmt.o): Add alloc-pool.h dependency.
2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* Makefile.in (stmt.o): Add alloc-pool.h dependency.
	* stmt.c: Include alloc-pool.h.
	(struct case_node): Remove GTY marker.
	(add_case_node): New parameter case_node_pool.  Use it for
	allocation of r.
	(expand_case): New allocation pool case_node_pool.  Initialize it,
	pass to add_case_node and free it.

From-SVN: r128139
2007-09-05 15:50:41 +00:00
Paul Thomas 5783dbc412 char_length_10.f90: Correct typo.
2007-09-05  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/char_length_10.f90: Correct typo.

From-SVN: r128136
2007-09-05 14:59:03 +00:00
Sandra Loosemore 1333282db7 mipscop-1.c: Add nomips16 attributes.
2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>
            Nigel Stephens <nigel@mips.com>

	gcc/testsuite/
	* gcc.c-torture/compile/mipscop-1.c: Add nomips16 attributes.
	* gcc.c-torture/compile/mipscop-2.c: Likewise.
	* gcc.c-torture/compile/mipscop-3.c: Likewise.
	* gcc.c-torture/compile/mipscop-4.c: Likewise.
	* gcc.dg/torture/mips-hilo-1.c: Likewise.
	* gcc.dg/torture/mips-hilo-2.c: Likewise.
	* gcc.dg/torture/pr19683-1.c: Likewise.
	* gcc.target/mips/madd-3.c: Likewise.
	* gcc.target/mips/maddu-3.c: Likewise.
	* gcc.target/mips/msub-3.c: Likewise.
	* gcc.target/mips/msubu-3.c: Likewise.
	* gcc.target/mips/asm-1.c: Likewise.
	* gcc.target/mips/branch-1.c: Likewise.
	* gcc.target/mips/ins-1.c: Likewise.
	* gcc.target/mips/near-far-3.c: Likewise.
	* gcc.target/mips/near-far-4.c: Likewise.
	* gcc.target/mips/smartmips-lwxs.c: Likewise.
	* gcc.target/mips/smartmips-ror-1.c: Likewise.
	* gcc.target/mips/smartmips-ror-2.c: Likewise.
	* gcc.target/mips/smartmips-ror-3.c: Likewise.
	* gcc.target/mips/smartmips-ror-4.c: Likewise.
	* gcc.target/mips/dspr2-MULT.c: Likewise.
	* gcc.target/mips/dspr2-MULTU.c: Likewise.
	* gcc.target/mips/mips32-dsp-run.c: Likewise.
	* gcc.target/mips/mips32-dspr2-type.c: Likewise.
	* gcc.target/mips/code-readable-1.c: Add mips16 attributes.
	* gcc.target/mips/code-readable-2.c: Likewise.
	* gcc.target/mips/code-readable-3.c: Likewise.

Co-Authored-By: David Ung <davidu@mips.com>
Co-Authored-By: Nigel Stephens <nigel@mips.com>

From-SVN: r128135
2007-09-05 10:46:25 -04:00
Sandra Loosemore f9e4a411f9 Add mips16/nomips16 function attributes and -mflip-mips16 option for testing mixed-mode compilation.
2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>
            Nigel Stephens <nigel@mips.com>

	Add mips16/nomips16 function attributes and -mflip-mips16 option
	for testing mixed-mode compilation.

	gcc/

	* config/mips/mips.opt (mflip-mips16): New.

	* config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
	(SYMBOL_FLAG_MIPS16_FUNC_P): Define.

	* config/mips/mips.c (mips_base_target_flags): New.
	(mips_base_mips16): New.
	(mips_base_schedule_insns): New.
	(mips_base_reorder_blocks_and_partition): New.
	(mips_base_align_loops): New.
	(mips_base_align_jumps): New.
	(mips_base_align_functions): New.
	(mips16_flipper): New.
	(mips_attribute_table): Add "mips16" and "nomips16" entries.
	(TARGET_SET_CURRENT_FUNCTION): Define.
	(mips_mips16_type_p, mips_nomips16_type_p): New.
	(mips_comp_type_attributes): Check mips16/nomips16 attributes.
	(mips_function_ok_for_sibcall): Make it deal with functions with
	mips16 attributes.
	(mips_init_split_addresses): New, split out from override_options.
	(mips_init_relocs): New, split out from override_options.
	(was_mips16_p): New.
	(mips_set_mips16_mode): New, split out from override_options.
	(mips_set_current_function): New.
	(override_options):  Add sorry for unsupported mips16/pic
	combination.  Remove error for mips16/dsp combination.	Save
	base option settings.  
	(mips_file_start): Move mips16 mode setting output from here....
	(mips_output_function_prologue): ....to here.
	(mips_output_mi_thunk): Check for mips16 function.
	(build_mips16_function_stub): Don't set .mips16 here.
	(build_mips16_call_stub): Likewise.
	(mips_expand_builtin): Error in mips16 mode.
	(mips_use_mips16_mode_p): New.
	(mips_encode_section_info): Check for mips16 function, and set
	SYMBOL_REF_FLAGS accordingly.

	* doc/extend.texi (Function Attributes): Document new
	mips16/nomips16 attributes.
	* doc/invoke.texi (Option Summary): Add -mflip-mips16.
	(MIPS Options): Document -mflip-mips16.

	gcc/testsuite/
	* gcc.target/mips/mips16-attributes.c: New.

Co-Authored-By: David Ung <davidu@mips.com>
Co-Authored-By: Nigel Stephens <nigel@mips.com>

From-SVN: r128134
2007-09-05 10:40:04 -04:00
Sandra Loosemore edede0242f mips.c (mips_legitimize_tls_address): Call sorry if we encounter TLS address in MIPS16 mode.
2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/mips/mips.c (mips_legitimize_tls_address): Call sorry
	if we encounter TLS address in MIPS16 mode.
	(mips_legitimize_const_move):  Check cannot_force_const_mem for
	the (const (plus symbol offset)) case; this forces invalid TLS
	address in MIPS16 mode to be caught by the above call to sorry.
	(override_options): Don't reset targetm.have_tls in MIPS16 mode,
	because that now enables emutls, which is not ABI compatible
	with native TLS in non-MIPS16 mode.

From-SVN: r128133
2007-09-05 10:33:48 -04:00
Sandra Loosemore db2960f402 Add target hook invoked when cfun changes.
2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	Add target hook invoked when cfun changes.

	* doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
	* target.h (struct gcc_target): Add set_current_function.
	* target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
	(TARGET_INITIALIZER): Add initializer for set_current_function.
	* tree.h (push_struct_function): New.
	* tree-inline.h (push_cfun, pop_cfun): Move declarations to...
	* function.h: Here.
	(set_cfun): Declare.
	* tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
	* function.c:  Here.
	(push_function_context_to): Use allocate_struct_function
	to create null context, not init_dummy_function_start.  Use set_cfun.
	(pop_function_context_from): Use set_cfun.
	(in_dummy_function): New.
	(invoke_set_current_function_hook): New.
	(set_cfun): New.
	(push_cfun, pop_cfun): Use set_cfun.
	(push_struct_function): New.
	(allocate_struct_function): Call invoke_set_current_function_hook
	before returning.
	(prepare_function_start): Don't set cfun here.  Remove unused
	argument; fix all callers.
	(init_dummy_function_start): Fiddle with in_dummy_function.  Call
	push_struct_function.
	(init_function_start): Set cfun here.
	(expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
	* omp-low.c (create_omp_child_function): Use push_struct_function
	and pop_cfun to save/restore state.
	(expand_omp_parallel): Remove unused saved_cfun variable.
	* cgraphunit.c (ipa_passes): Use set_cfun.
	* gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
	* dwarf2out.c (dwarf2out_abstract_function): Likewise.
	* matrix-reorg.c (transform_allocation_sites): Likewise.
	(matrix_reorg): Use set_cfun.
	* gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
	* tree-optimize.c (tree_rest_of_compilation): Remove one redundant
	assignment to cfun; use set_cfun for the other.
	* tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
	(dump_function_to_file): Use push_cfun/pop_cfun here.
	* c-decl.c (finish_function): Use set_cfun.

	gcc/ada/
	* trans.c (Compilation_unit_to_gnu): Use set_cfun.
	* utils.c (end_subprog_body): Likewise.

	gcc/cp/
	* decl.c (finish_function): Use set_cfun.
	* method.c (use_thunk): Likewise.

	gcc/fortran/
	* trans-decl.c (build_entry_thunks): Use set_cfun.
	(gfc_generate_function_code): Likewise.

	gcc/java/
	* decl.c (finish_method): Use set_cfun.

	gcc/treelang/
	* treetree.c (tree_code_create_function_wrapup):  Use set_cfun.

From-SVN: r128132
2007-09-05 10:24:54 -04:00