Commit Graph

61247 Commits

Author SHA1 Message Date
Jonathan Wakely 748fa29455 trouble.texi (C++ misunderstandings): Fix example code.
2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>

	* doc/trouble.texi (C++ misunderstandings): Fix example code.

From-SVN: r86470
2004-08-24 09:46:15 +01:00
Nick Clifton 3d595b4688 (PREDICATE_CODES): Remove duplicate defintion of seth_add3_operand.
From-SVN: r86469
2004-08-24 08:07:31 +00:00
Andreas Tobler 4505f099ef Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
	(host-default.o): Add dependency on HOOKS_H.
	* config/x-linux: Likewise.
	* config/x-solaris: Likewise.
	* config/i386/x-mingw32: Likewise.
	* config/rs6000/x-darwin: Likewise.

From-SVN: r86468
2004-08-24 09:31:33 +02:00
Mark Mitchell c2a124b2b4 re PR c++/17163 (ICE with -frepo and static class variables)
PR c++/17163
	* pt.c (instantiate_decl): Do not try to apply
	DECL_DECLARED_INLINED_P to a VAR_DECL.

	PR c++/17163
	* g++.dg/template/repo2.C: New test.

From-SVN: r86467
2004-08-24 06:37:58 +00:00
James E Wilson a2fe197507 Fix typo reported by Kai Henningsen.
* reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
	DEF_REG_NOTE.

From-SVN: r86465
2004-08-23 22:14:07 -07:00
Richard Henderson 5f0ae953a9 trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead of going through an intermediate string.
* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
        of going through an intermediate string.  Fix 32/64 int/long bug.

From-SVN: r86464
2004-08-23 21:32:10 -07:00
Roger Sayle 663790f8b8 re PR rtl-optimization/17078 (Jump into if(0)-substatement fails)
PR rtl-optimization/17078
	* gcc.c-torture/execute/pr17078-1.c: New test case.

From-SVN: r86463
2004-08-24 04:23:31 +00:00
Mark Mitchell c3f216e234 re PR debug/14492 (loc_descriptor_from_tree, in dwarf2out.c:9031)
PR c/14492
	* dwarf2out.c (loc_descriptor_from_tree): Robustify.

	PR c/14492
	* gcc.dg/debug/crash1.c: New test.

From-SVN: r86461
2004-08-24 02:10:12 +00:00
Mark Mitchell a9b5a054c9 re PR rtl-optimization/16180 (gcc crashes when optimization is turned on)
PR c/16180
	* jump.c (duplicate_loop_exit_test): If the location reached by
	the unconditional jump at the top of the loop is outside the loop,
	then do not treat it as the exit test.

	PR c/16180
	* gcc.dg/loop-5.c: New test.

From-SVN: r86459
2004-08-24 01:45:23 +00:00
Diego Novillo 2e6ae27f33 cfg.c (check_bb_profile): Fix typos.
* cfg.c (check_bb_profile): Fix typos.
	* function.c (assign_parm_is_stack_parm): Likewise.
	* tree-nested.c: Likewise.

From-SVN: r86457
2004-08-23 21:13:01 -04:00
Daniel Jacobowitz d685c974fe ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
* ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
	Remove TYPECODE.
	(ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.

From-SVN: r86456
2004-08-24 00:46:11 +00:00
Eric Christopher f676971a92 defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2004-08-23  Eric Christopher  <echristo@redhat.com>

	* defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
	* system.h (VECTOR_MODE_SUPPORTED_P): Poison.
	* target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
	* target.h: Ditto.
	* hooks.h: Include machmode.h.
	(hook_bool_mode_false): Declare.
	* hooks.c (hook_bool_mode_false): Define.
	* expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
	* stor-layout.c (layout_type): Ditto.
	* config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
	Define to target macro.
	* config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
	* config/arm/arm.c: Ditto. Use.
	* config/arm/arm.h: Ditto.
	* config/arm/arm-protos.h: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/i386.h: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rs6000/rs6000.h: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh-protos.h: Ditto.
	* config/sh/sh.md: Use.
	* doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
	to TARGET_VECTOR_MODE_SUPPORTED_P.

2004-08-23  Eric Christopher  <echristo@redhat.com>

	* trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
	usage. Use build_vector_type_for_mode for vector types.

From-SVN: r86453
2004-08-24 00:30:52 +00:00
GCC Administrator a43b7e0fd7 Daily bump.
From-SVN: r86449
2004-08-24 00:16:21 +00:00
R. Kelley Cook 2709e6af02 ignore autom4te.cache
From-SVN: r86446
2004-08-23 23:51:56 +00:00
Richard Henderson b85024359a re PR fortran/13465 (Data statement for large arrays compiles verrrry slllowwwly and shows quadratic behaviour.)
PR 13465
        * data.c (find_con_by_offset): Search ordered list; handle
        elements with repeat counts.
        (gfc_assign_data_value_range): New.
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
        (gfc_assign_data_value_range): Declare.
        * match.c (top_val_list): Extract repeat count into a temporary.
        * resolve.c (values): Make left unsigned.
        (next_data_value): Don't decrement left.
        (check_data_variable): Use gfc_assign_data_value_range.

From-SVN: r86443
2004-08-23 14:53:14 -07:00
Hans Boehm 9a870e6c4c aix_irix_threads.c: Move _THREADS checks after gc_priv.h include.
* aix_irix_threads.c: Move _THREADS checks after gc_priv.h include.
	* backgraph.c, include/private/gc_pmark.h: Always include gc.h.

From-SVN: r86442
2004-08-23 21:40:17 +00:00
Bryce McKinlay 8ba141520c prims.cc (JVMPI_NOTIFY_ALLOC): New macro.
2004-08-23  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (JVMPI_NOTIFY_ALLOC): New macro. Call jvmpi_notify_alloc
	only if jvmpi is enabled.
	(jvmpi_notify_alloc): Don't check if jvmpi is enabled here.
	(_Jv_AllocObjectNoFinalizer): Use JVMPI_NOTIFY_ALLOC.
	(_Jv_AllocString): Likewise.
	(_Jv_AllocPtrFreeObject): Likewise.

From-SVN: r86441
2004-08-23 22:31:53 +01:00
Hans Boehm 0039c16d35 defineclass.cc: Include <stdio.h>.
* defineclass.cc: Include <stdio.h>.
	* java/lang/natClassLoader.cc: Include <stdio.h>.

From-SVN: r86434
2004-08-23 19:21:19 +00:00
Andrew Pinski cbaa1b7442 Revert earlier fix for PR 14029
2004-08-22 Andrew Pinski  <apinski@apple.com>

        Revert:
        2004-08-22  Andrew Pinski  <apinski@apple.com>
        PR c++/14029
        * typeck.c (build_unary_op): Use &a.b if the foldded lowered
        expression is not constant.

[[Split portion of a mixed commit.]]

From-SVN: r86431.2
2004-08-23 11:28:11 -07:00
David Daney 39dca114a9 re PR libffi/13141 (FAIL: InvokeReturn output - source compiled test <libffi problem>)
2004-08-23  David Daney <daney@avtrex.com>

	PR libgcj/13141
	* src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
	* src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
	(ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
	parameters and return types.
	(ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
	(ffi_prep_closure): Ditto.
	(ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
	alignment calculations.
	* src/mips/o32.S (ffi_closure_O32): Don't use floating point
	instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.

From-SVN: r86429
2004-08-23 16:49:17 +00:00
Matthias Klose 106a720099 baseline_symbols.txt: New.
2004-08-22  Matthias Klose  <doko@debian.org>

        * config/abi/m68k-linux-gnu/baseline_symbols.txt: New.
        * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0.

From-SVN: r86428
2004-08-23 15:07:53 +00:00
Bryce McKinlay 92f61b6eac win32_threads.c: Move GC_WIN32_THREADS check after gc_priv.h include.
2004-08-23  Bryce McKinlay  <mckinlay@redhat.com>

	* win32_threads.c: Move GC_WIN32_THREADS check after gc_priv.h
	include. Reported by Danny Smith.

From-SVN: r86427
2004-08-23 16:07:00 +01:00
Tobias Schlüter 7fcb18047a io.h, [...]: Fix formatting issues, update copyright years.
* io/io.h, io/list_read.c, io/open.c, io/transfer.c, io/write.c:
Fix formatting issues, update copyright years.

From-SVN: r86425
2004-08-23 16:28:31 +02:00
Nathan Sidwell b3d1f5b404 Makefile.in (BUILD_ERRORS): Set to build-errors.
* Makefile.in (BUILD_ERRORS): Set to build-errors.
	(errors.o): New target for host.
	(build-errors.o): New target for build.
	(genobjs): Replace errors.o with build-errors.
	(gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
	(GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
	(fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
	(fix-header.o): Add errors.h
	* collect2.c (fancy_abort): Add parameters.
	* collect2.h (fancy_abort): Don't declare.
	* errors.h (fancy_abort): Don't declare.
	* errors.c: Include either bconfig.h or config.h.
	(fancy_abort): Trim filename.
	* fix-header.c (v_fatal, fatal): Remove.
	(progname): Remove definition.
	(main): Set progname here.
	* gcc.c (fancy_abort): Add parameters.
	* gcc.h (fancy_abort): Remove declaration.
	* gcov.c (fancy_abort): Remove.
	* rtl.h (fancy_abort): Don't declare.
	(abort): Don't define.
	* tree.h (fancy_abort): Don't declare.
	(abort): Don't define.
	* system.h (fancy_abort): Declare.
	(abort): Define to fancy_abort.
	* fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
	* java/jv-scan.c (fancy_abort): Add.

From-SVN: r86424
2004-08-23 11:57:02 +00:00
Paolo Carlini a60945f82f configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
2004-08-23  Paolo Carlini  <pcarlini@suse.de>

	* configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
	* aclocal.m4: Regenerate with automake-1.9.1.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r86423
2004-08-23 10:18:31 +00:00
Nathan Sidwell be88a6281e tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
* tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
	(usize_type, ubitsizetype): Remove.
	* stor-layout.c (set_sizetype): Don't initialize usizetype,
	ubitsizetype.
	* fold-const.c (size_diffop): TYPE can never be ubitsizetype.

From-SVN: r86422
2004-08-23 08:47:08 +00:00
Nathan Sidwell 8dd16ecc7d tree.h (build_distinct_type_copy): New.
* tree.h (build_distinct_type_copy): New.
	(build_type_copy): ... here.  Rename to ...
	(build_variant_type_copy): ... here.
	* tree.c (build_qualified_type): Rename build_type_copy call.
	(build_distinct_type_copy): New, broken out of ...
	(build_type_copy): ... here.  Rename to ...
	(build_variant_type_copy): ... here.  Use
	build_distinct_type_copy.
	(build_common_tree_nodes_2): Rename build_type_copy call.
	* c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
	call.
	(handle_packed_attribute, handle_unused_attribute,
	handle_transparanet_union_attribute, handle_aligned_attribute,
	handle_deprecated_attribute): Likewise.
	* c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
	Likewise.
	* config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Use
	build_distinct_type_copy.

	* cp/name-lookup.c (pushdecl): Rename build_type_copy call.
	* cp/tree.c (cp_build_qualified_type_real,
	build_exception_variant, handle_java_interface_attribute): Likewise.

From-SVN: r86421
2004-08-23 08:41:57 +00:00
Richard Sandiford e8bf0f3bac mips.md (mfhilo_[sd]i): Redefine using :GPR.
* config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
	attribute.

From-SVN: r86420
2004-08-23 08:25:56 +00:00
Richard Sandiford 4d06ed0a96 mips.md (length): Don't use mips_fetch_insns for indexed loads and stores.
* config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
	loads and stores.
	(*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
	formerly unnamed patterns.  Redefine using :P for the address.  Remove
	explicit length attributes.

From-SVN: r86419
2004-08-23 08:20:53 +00:00
Zdenek Dvorak a3631d9785 tree-ssa-loop-im.c (fem_single_reachable_address, [...]): New functions.
* tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
	New functions.
	(single_reachable_address): Use them.
	(schedule_sm): Add dump.
	(is_call_clobbered_ref): New function.
	(determine_lsm_reg): Check whether the reference is call clobbered.
	Only work for gimple_reg_type values.

From-SVN: r86418
2004-08-23 08:17:20 +00:00
Richard Sandiford b1f5842861 mips.md (*mov<mode>_ra): Name previously unnamed MIPS16 $31 store insns.
* config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
	$31 store insns.  Redefine using :GPR.

From-SVN: r86417
2004-08-23 08:11:40 +00:00
Richard Sandiford 237b301e97 mips.md (P): New mode macro.
* config/mips/mips.md (P): New mode macro.
	(*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
	(*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
	Add mode attributes.

From-SVN: r86416
2004-08-23 08:09:04 +00:00
Zdenek Dvorak 017901f43c * gcc.c-torture/execute/20040823-1.c: New test.
From-SVN: r86415
2004-08-23 08:03:39 +00:00
Richard Sandiford c9081a928a mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
* config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
	(UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
	later constants to cover the gap.
	(load, store): New mode attributes.
	(mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
	Use new unspec constants.

From-SVN: r86414
2004-08-23 08:03:15 +00:00
Richard Sandiford 3d1f285d08 mips.md (one_cmpl[sd]i2): Redefine using :GPR.
* config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
	(and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
	to use register_operand rather than uns_arith_operand as the predicate
	for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
	(*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
	Redefine using :GPR.  Make same predicate change here.  Extend the
	commutativity of operands 1 and 2 from the SImode version to the
	DImode one.
	(*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
	but with no predicate changes.
	(*nor[sd]i3): Redefine using :GPR.

From-SVN: r86413
2004-08-23 07:59:27 +00:00
Zdenek Dvorak c0e1b12fee tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for noreturn functions.
* tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
	noreturn functions.

From-SVN: r86411
2004-08-23 07:47:31 +00:00
Richard Sandiford 400a932551 mips.h (ISA_HAS_DCLZ_DCLO): Delete.
* config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
	* config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
	branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
	rather than "%z2" (with a fake const0_rtx for operand 2).
	(ffs[sd]i2): Redefine using :GPR.
	(clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.

From-SVN: r86409
2004-08-23 07:23:00 +00:00
Richard Sandiford 2222da3a18 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
From-SVN: r86408
2004-08-23 07:13:13 +00:00
Richard Sandiford 15ac4ccfb4 mips.md (any_extend): New code macro.
* config/mips/mips.md (any_extend): New code macro.
	(u, su): New code attributes.
	({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
	({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
	({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
	(*{s,u}mul_acc_di): Redefine using any_extend.
	(*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
	to reflect real insn names.
	(*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
	with an any_extend template.
	({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
	Add '*' to name.

From-SVN: r86407
2004-08-23 07:09:47 +00:00
Richard Sandiford d46c971dba mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
* config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
	* config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
	(mul[sd]i3_r4000): Redefine using :GPR.
	(mulsi3_mult3): Don't check TARGET_MAD separately.
	(muldi3_mult3): Moved after mulsi_mult3.

From-SVN: r86406
2004-08-23 07:00:22 +00:00
Richard Sandiford 5811cb27a8 config.gcc (mips-*-*): Remove definitions of MASK_GAS and OBJECT_FORMAT_ELF.
* config.gcc (mips-*-*): Remove definitions of MASK_GAS and
	OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
	* config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
	(TARGET_GAS, TARGET_MIPS_AS): Delete.
	(TARGET_GPWORD): Define to true for n32 on IRIX.
	(TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
	(MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
	(GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
	(ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
	(MDEBUG_ASM_SPEC): Delete, folding into...
	(SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
	(ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
	(EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
	subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
	to define asm_abi_default_spec.
	(ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
	(TARGET_ASM_SELECT_SECTION): Delete.
	* config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
	for non-mips16 code, removing previous workaround for SGI assemblers.
	(TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
	(TARGET_ASM_ALIGNED_DI_OP): Define this instead.
	(override_options): Remove !TARGET_GAS and !have_named_sections code.
	(print_operand): Fold TARGET_GAS conditionals into asm strings.
	(mips_output_filename): Remove !TARGET_GAS code.  Replace use of
	ASM_STABS_OP and ASM_STABN_OP.
	(mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
	(mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
	(mips_output_function_prologue): Remove !TARGET_GAS code.
	(mips_select_rtx_section): Remove !have_named_sections code.
	(mips_select_section): Delete.
	* config/mips/mips.md (trap): Remove !TARGET_GAS check.
	* config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
	* config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
	(PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
	* config/mips/vxworks.h (ASM_SPEC): As for mips.h.
	* config/mips/windiss.h (ASM_SPEC): Likewise.

testsuite/
	* gcc.dg/special/mips-abi.exp: Expect gcc to pass the GNU ABI flags
	to the assembler.  Simplify test accordingly.
	(asm_abi_flags): Use GNU names.
	(check_mips_abi, default_abi): Use string matches against "-mabi=*"
	to check for ABI flags.

From-SVN: r86405
2004-08-23 06:53:46 +00:00
Richard Sandiford 032e83482b read-rtl.c (map_value, [...]): New structures.
* read-rtl.c (map_value, mapping, macro_group): New structures.
	(BELLWETHER_CODE): New macro.
	(modes, codes, bellwether_codes): New variables.
	(find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
	(uses_code_macro_p, apply_code_macro, apply_macro_to_string)
	(apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
	(add_condition_to_rtx, apply_macro_traverse, add_mapping)
	(add_map_value, initialize_macros): New functions.
	(def_hash, def_hash_eq_p): Generalize to anything that points to,
	or starts with, a char * field.
	(find_macro, read_mapping, check_code_macro): New functions.
	(read_rtx_1): New, split out from read_rtx.  Handle the new
	define_{mode,code}_{macro,attr} constructs.  Use find_macro
	to parse the name of a code or mode.  Use BELLWETHER_CODE to
	extract the format and to choose a suitable code for rtx_alloc.
	Modify recursive invocations to use read_rtx_1.
	(read_rtx): Call initialize_macros.  Apply code and mode macros
	to the rtx returned by read_rtx_1.  Cache everything after the
	first macro expansion for subsequent read_rtx calls.
	* doc/md.texi: Document new .md constructs.
	* config/mips/mips.md (GPR): New mode macro.
	(d, si8_di5): New mode attributes.
	(any_cond): New code macro.
	(add[sd]i3): Redefine using :GPR.
	(*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
	(*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
	previously unnamed MIPS16 patterns.
	(*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
	lines.  Don't match (plus (const_int 0) ...).
	(*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
	Use a define_split to generate the addition.
	(sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
	(subsi3_internal): Delete.
	(*subsi3_extended): Renamed from subsi3_internal_2.
	(bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
	(beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
	using an any_cond template.

From-SVN: r86404
2004-08-23 05:55:50 +00:00
Richard Sandiford ecce923e10 * read-rtl.c (read_rtx): Tidy use of format_ptr.
From-SVN: r86403
2004-08-23 05:52:37 +00:00
Richard Sandiford a269d6c8b7 read-rtl.c (string_obstack): New file-scope variable.
* read-rtl.c (string_obstack): New file-scope variable.
	(read_string, read_quoted_string, read_braced_string)
	(read_escape): Remove obstack parameter and use string_obstack instead.
	(read_rtx): Remove function-local rtl_obstack and initialize
	string_obstack instead.  Update call to read_string.

From-SVN: r86402
2004-08-23 05:51:25 +00:00
Andrew Pinski 9fc3b39aa9 re PR tree-optimization/15262 ([tree-ssa] Alias analyzer cannot handle addressable fields)
2004-08-22  Andrew Pinski  <apinski@apple.com>

       PR c/15262
       * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
       expression is not constant.
       (c_finish_return): Do not go through INDIRECT_REF when looking
       for the inner expression of an ADDR_EXPR for warning about.

2004-08-22  Andrew Pinski  <apinski@apple.com>

       * g++.dg/opt/pr14029.C: New test.
       * gcc.c-torture/execute/pr15262.c: New test.
2004-08-22  Andrew Pinski  <apinski@apple.com>

       PR c++/14029
       * typeck.c (build_unary_op): Use &a.b if the foldded lowered
       expression is not constant.

From-SVN: r86396
2004-08-22 20:12:38 -07:00
GCC Administrator 35e0e58c7a Daily bump.
From-SVN: r86392
2004-08-23 00:16:21 +00:00
Richard Henderson cea4955090 re PR middle-end/17075 (miscompilation with tail calls in cfgexpand)
PR 17075
        * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
        create new blocks and fall through.
        (expand_gimple_basic_block): Update to match.

From-SVN: r86389
2004-08-22 17:02:55 -07:00
Ulrich Weigand 0b540f12b0 reload.c (find_reloads_address): Make return value tri-state.
* reload.c (find_reloads_address): Make return value tri-state.
	Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
	(find_reloads): Assume that reloaded addresses match 'o' or
	EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
	returned 1 (not -1).  Omit optional reloads for address operands
	only if find_reloads_address returned 1 (not -1).

	* config/s390/s390.c (legitimize_reload_address): New function.
	* config/s390/s390-protos.h (legitimize_reload_address): Declare.
	* config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
	legitimize_reload_address.

From-SVN: r86388
2004-08-22 22:09:12 +00:00
Richard Henderson 7f5e63076a tree.h (SAVE_EXPR_RESOLVED_P): New.
* tree.h (SAVE_EXPR_RESOLVED_P): New.
        * gimplify.c (gimplify_save_expr): Use it.
        * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
        on the temporary variable.

From-SVN: r86387
2004-08-22 14:58:48 -07:00
Tobias Schlüter f8d0aee5c1 * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
From-SVN: r86385
2004-08-22 22:01:22 +02:00