1. 12 May, 2005 17 commits
    • tree-ssa-loop-im.c (struct mem_ref): Add field "next". · ed9c043b
      	* tree-ssa-loop-im.c (struct mem_ref): Add field "next".
      	(struct hmr_data, hoist_memory_reference, memref_del,
      	struct fmrv_data): Removed.
      	(hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
      	(gather_mem_refs, gather_mem_refs_stmt): Add new references to the
      	list.
      	(find_more_ref_vops): Traverse the list of memory references.
      	(determine_lsm_loop): Work with the list of memory references instead
      	of traversing the hashtable.
      
      From-SVN: r99627
      Zdenek Dvorak committed
    • libiberty.h: Do not define empty basename prototype. · dbaef7e2
      From-SVN: r99626
      Steve Ellcey committed
    • except.c (duplicate_eh_region_1, [...]): New functions, based on old… · 98f464e0
      except.c (duplicate_eh_region_1, [...]): New functions, based on old implementation removed with RTL inliner.
      
      
      	* except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
      	duplicate_eh_regions): New functions, based on old
      	implementation removed with RTL inliner.
      	(reachable_next_level): Modify behaviour pre-inline.
      	* except.h (duplicate_eh_regions_map, duplicate_eh_regions):
      	Declare.
      	* function.h (struct function): Add after_inlining flag.
      	* tree-optimize.c (tree_rest_of_compilation): Set it.
      	* tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
      	when needed.
      	* tree-cfg.c (label_to_block_fn): Deal with cases where
      	label was never insterted into code.
      
      Co-Authored-By: Jan Hubicka <jh@suse.cz>
      Co-Authored-By: Stuart Hastings <stuart@apple.com>
      
      From-SVN: r99625
      Steven Bosscher committed
    • directives.c (#sccs table entry): Mark IN_I, consistent with #ident. · 1ed17cd5
      libcpp:
      	* directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
      	(do_sccs): Delete function definition, #define to do_ident.
      	(do_ident): Don't hardwire directive name.
      gcc:
      	* doc/cpp.texi: Document that #sccs is a synonym for #ident.
      
      From-SVN: r99623
      Zack Weinberg committed
    • re PR libfortran/21324 (#undef GFC_CLEAR_MEMORY causes testsuite failures) · c42a19d5
      2005-05-12  Thomas Koenig  <Thomas.Koenig@online.de>
      
              PR libfortran/21324
              * runtime/memory.c:  Don't define GFC_CLEAR_MEMORY (it's a
              performance hog).
              * io/open.c (new_unit): Zero freshly allocated memory for
              unit structure.
              * io/unit.c (init_units):  Zero freshly allocated memory for
              STDIN, STDOUT and STDERR.
              * io/unix.c (open_internal):  Zero freshly allocated memory
              for unix_stream.
              (fd_to_stream):  Likewise.
      
      From-SVN: r99619
      Thomas Koenig committed
    • re PR tree-optimization/21532 (ICE caused by PRE dead instruction removal) · 7cc70b5e
      
      2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/21532
      	* tree-ssa-pre.c (create_expression_by_pieces): stmt
      	needs to go onto the inserted_exprs list.
      
      From-SVN: r99617
      Daniel Berlin committed
    • c-common.h (statement_code_p): Don't declare. · feea5b18
      ./:	* c-common.h (statement_code_p): Don't declare.
      	(STATEMENT_CODE_P): Don't define.
      	(INIT_STATEMENT_CODES): Don't define.
      	* c-common.c (statement_code_p): Don't define.
      cp/:
      	* cp-tree.h (cp_stmt_codes): Don't define.
      	(statement_code_p): Declare.
      	(STATEMENT_CODE_P): Define.
      	* lex.c (statement_code_p): Define.
      	(cxx_init): Use actual codes in stmt_codes initializer, not
      	cp_stmt_codes macro.  Initialize statement_code_p directly, rather
      	than using INIT_STATEMENT_CODES.
      
      From-SVN: r99615
      Ian Lance Taylor committed
    • re PR bootstrap/21230 (bootstrap failed unless bootstrap compiler is gcc.) · 5a8c20ce
      config/
              PR bootstrap/21230
              * warnings.m4 (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Add
              double quotes around GCC variable.
      
      libcpp/
              PR bootstrap/21230
              * configure: Regenerate.
      
      From-SVN: r99613
      Ryota Kunisawa committed
    • Revert latest accidental commit. · 47bebcf3
      From-SVN: r99610
      Eric Botcazou committed
    • sparc.h: Remove dead code. · f8ece000
      	* config/sparc/sparc.h: Remove dead code.
      	* config/sparc/sparc.c (sparc_compute_frame_size): Use
      	FIRST_PARM_OFFSET for the size of the register window area.
      	(emit_save_regs): Rename into emit_save_or_restore_regs.
      	Add 'action' parameter.  Use 4095 as upper bound for the offset.
      	Pass 'action' to save_or_restore_regs.
      	(emit_restore_regs): Delete.
      	(sparc_expand_prologue): Call emit_save_or_restore_regs.
      	(sparc_expand_epilogue): Likewise.
      	* config/sparc/sparc.md (mode macro P): Move.
      	(movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
      	(mov<V32:mode> expander): Move to the top of the V32 section.
      	(movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
      	(movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
      	(sibcall_epilogue): Move.
      
      From-SVN: r99609
      Eric Botcazou committed
    • re PR target/21501 (ICE in extract_insn, at recog.c:2082) · fa2c88a0
      	PR target/21501
      	* arm.c (arm_gen_constant): Sign-extend intermediate values when
      	synthesizing a constant of the difference of two immediates.
      
      From-SVN: r99608
      Richard Earnshaw committed
    • vfp.md (negsf2_vfp): Add alternative using integer registers. · 81632f11
      	* arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
      	(negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
      	the alternatives using integer registers into the appropriate
      	primitives.
      
      From-SVN: r99607
      Richard Earnshaw committed
    • pex-djgpp.c: Include string.h, fcntl.h, unistd.h, and sys/stat.h. · 5db1c531
      2005-05-11  Eli Zaretskii  <eliz@gnu.org>
      
      	* pex-djgpp.c: Include string.h, fcntl.h, unistd.h, and
      	sys/stat.h.
      	(pex_init): Fix last argument to pex_init_common.
      	(pex_djgpp_exec_child): Remove leading underscore from _open,
      	_dup, _dup2, _close, and _spawnv/_spawnvp.  Replace `program',
      	which is undeclared, with `executable', which was unused.  Remove
      	unused variable `e'.  Fix casting of last arg to spawnv/spawnvp.
      	(pex_djgpp_wait): Declare arguments with ATTRIBUTE_UNUSED.
      
      From-SVN: r99606
      Eli Zaretskii committed
    • bitmap.c (bitmap_elmt_to_freelist, [...]): Changed freelist structure. · 5765e552
      
      2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
      	bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
      	* bitmap.h: Fixed comments.
      
      From-SVN: r99605
      Kenneth Zadeck committed
    • gcj.texi (Code Generation): Document -fbootstrap-classes. · cca1655e
      gcc/java:
      	* gcj.texi (Code Generation): Document -fbootstrap-classes.
      	* decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
      	(parse_version): Use it.
      	* lang.opt (-fbootstrap-classes): New option.
      libjava:
      	* external/w3c_dom/Makefile.in: Rebuilt.
      	* external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Added
      	-fbootstrap-classes.
      	* external/sax/Makefile.in: Rebuilt.
      	* external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Added
      	-fbootstrap-classes.
      	* java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Declare as
      	friend.
      	* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
      	Call _Jv_CopyClassesToSystemLoader.
      	* java/lang/natClassLoader.cc (system_class_list): New global.
      	(_Jv_RegisterClassHookDefault): Handle bootstrap and system
      	classes differently.
      	(_Jv_CopyClassesToSystemLoader): New function.
      	(SYSTEM_LOADER_INITIALIZED): New define.
      	* include/jvm.h (GCJ_BOOTSTRAP_LOADER_ADDITION): New define.
      	(_Jv_CheckABIVersion): Use it.
      	(_Jv_ClassForBootstrapLoader): New function.
      	* Makefile.in: Rebuilt.
      	* Makefile.am (AM_GCJFLAGS): Added -fbootstrap-classes.
      
      From-SVN: r99604
      Tom Tromey committed
    • Daily bump. · cd0b240b
      [[Split portion of a mixed commit.]]
      
      From-SVN: r99602.2
      GCC Administrator committed
  2. 11 May, 2005 23 commits
    • re PR fortran/21260 (Conflict between comment and H edit descriptor) · b160dd28
      fortran/
      	PR fortran/21260
      	* io.c (check_format): Look for literal characters inside
      	hollerith constant.
      testsuite/
      	PR fortran/21260
      	* gfortran.dg/hollerith_1.f90: New test.
      
      From-SVN: r99597
      Tobias Schlüter committed
    • re PR target/21412 (ICE loading TLS address) · 5e6c8b64
              PR target/21412
              * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
              (ia64_cannot_force_const_mem): New.
              (tls_symbolic_operand_type): New.
              (ia64_legitimate_constant_p): New.
              (ia64_expand_load_address): Return true on success.  Improve
              checks for when we should not split.
              (ia64_expand_tls_address): New addend operand.  Distribute it
              as appropriate to the tls_kind.  Delay referencing gp.
              (ia64_expand_move): Split symbolic addend as necessary.  Handle
              tls symbols with addends.
              * config/ia64/ia64-protos.h: Update.
              * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
              p0, f0, f1, and r13.
              (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
              * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
              (symbolic_operand splitter): Pass everything through
              ia64_expand_load_address and FAIL or DONE as appropriate.
              (load_fptr): Only accept after reload.
              (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
              load_symptr_low, load_ltoff_dtpmod,
              (load_dtpmod): New.
              (load_dtprel): Only accept tls symbols.
              (load_dtprel64, load_dtprel22): Likewise.
              (load_tprel, load_tprel64, load_tprel22): Likewise.
              (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
              (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
              (add_dtprel14, add_dtprel22): Likewise.
              (add_tprel, add_tprel14, add_tprel22): Likewise.
              * config/ia64/predicates.md (small_addr_symbolic_operand): New.
              (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
              (got_symbolic_operand): Check CONST offsets.
              (tls_symbolic_operand, ld_tls_symbolic_operand): New.
              (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
              (move_operand): Don't handle tls here.  Check CONST offsets.
      
      From-SVN: r99596
      Richard Henderson committed
    • 7000.md (rm7_impy_si_mult): Just match imul and imadd. · b3315253
      	* config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
      	Remove hilo_operand check.
      	(rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
      	* config/mips/predicates.md (hilo_operand): Delete.
      
      From-SVN: r99592
      Richard Sandiford committed
    • * config/mips/sr71k.md, config/mips/7000.md: Reformat. · a8cdbec0
      From-SVN: r99591
      Richard Sandiford committed
    • re PR tree-optimization/18472 (TREE_OPERAND (t, 1) is referenced for t being GOTO_EXPR) · f8535b4d
      	PR tree-optimizer/18472
      	* tree-if-conv.c (tree_if_convert_stmt,
      	if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
      
      From-SVN: r99588
      Kazu Hirata committed
    • Fix incomplete ChagneLog from previous checkin. · 3da7937d
      From-SVN: r99586
      Tobias Schlüter committed
    • Makefile.in (tree-eh.o): Kill gt-tree-eh.h dependency. · b4660e5a
      
      	* Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
      	(GTFILES): add except.h.
      	* except.c (eh_status): Add throw_stmt_table.
      	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
      	* except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
      	lookup_stmt_eh_region_fn): Declare.
      	(throw_stmt_node): New structure.
      	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
      	* gengtype.c (open_base_files): Add except.h to inlines.
      	* tree-eh.c (throw_stmt_node): Kill.
      	(record_stmt_eh_region): Update.
      	(add_stmt_to_eh_region_fn): Break out from ...
      	(add_stmt_to_eh_region): ... here.
      	(remove_stmt_from_eh_region_fn): Break out from ...
      	(remove_stmt_from_eh_region): ... here.
      	(lookup_stmt_eh_region_fn): Break out from ...
      	(lookup_stmt_eh_region): ... here.
      	(honor_protect_cleanup_actions): Use build_resx.
      	(lower_try_finally_onedest): Likewise.
      	(lower_try_finally_copy): Likewise.
      	(lower_try_finally_switch): Likewise.
      	(lower_eh_constructs): Update eh table construction.
      	* tree.c (build_resx): New.
      	* tree.h (build_resx): Declare.
      
      From-SVN: r99585
      Jan Hubicka committed
    • libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation is needed. · 3ca48b3e
      2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
      	is needed.
      
      From-SVN: r99584
      H.J. Lu committed
    • tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove redundant code. · 78f4111d
      	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
      	redundant code.
      
      From-SVN: r99583
      Kazu Hirata committed
    • * fold-const.c, libgcov.c: Fix comment typos. · 9d6aab7e
      From-SVN: r99582
      Kazu Hirata committed
    • linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define. · a15900b5
      	* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
      	* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
      	default definition.
      	(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
      
      From-SVN: r99581
      Daniel Jacobowitz committed
    • resolve.c (resolve_symbol): Copy 'pointer' and 'dimension' attribute from result… · 09e7f686
      resolve.c (resolve_symbol): Copy 'pointer' and 'dimension' attribute from result symbol to function symbol.
      
      fortran/
      	* resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
      	attribute from result symbol to function symbol.
      testsuite/
      	* gfortran.dg/func_result_2.f90: New test.
      
      From-SVN: r99580
      Tobias Schlüter committed
    • re PR bootstrap/21481 (crtstuff.c should not include auto-host.h) · 9d48ad93
      	PR bootstrap/21481
      	* crtstuff.c: Include auto-host.h again, for now.
      
      From-SVN: r99579
      Nathan Sidwell committed
    • * config/mips/24k.md: Remove trailing whitespace. · 99917bc3
      From-SVN: r99578
      Richard Sandiford committed
    • mips.md (type): Add imul3. · 95177e17
      	* config/mips/mips.md (type): Add imul3.
      	(length, hazard, may_clobber_hilo): Check for imul3.
      	(mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
      	(*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
      	* config/mips/24k.md (r24k_int_mul3): Enable this reservation
      	for a 3 operand mul and its bypasses.
      	* config/mips/3000.md (r3k_imul): Add imul3 to reservations.
      	* config/mips/4000.md (r4k_imul): Likewise.
      	* config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
      	* config/mips/4130.md (vr4130_class, vr4130_mulsi)
      	(vr4130_muldi): Likewise.
      	* config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
      	* config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
      	* config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
      	* config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
      	(ir_vr54_imadd_si): Likewise.
      	* config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
      	* config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
      	(rm7_impy_di): Likewise.
      	* config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
      	* config/mips/generic.md (generic_imul): Likewise.
      	* config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
      	* config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
      
      From-SVN: r99577
      David Ung committed
    • re PR middle-end/20371 (Some corner cases of MS bitfields don't work) · cbbaf4ae
      	PR middle-end/20371:
      	* tree.h (record_layout_info_s): New member prev_packed.
      	* stor-layout.c (update_alignment_for_field): Fix comment about
      	KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
      	we start it properly aligned.
      	(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
      	to update_alignment_for_field, and recompute it afterwards using
      	the alignment of the record.
      	When a packed bitfield precedes an MS bitfield, don't add padding
      	at the end of the packed bitfield on behalf of the base type of
      	the packed bit field.
      	Don't adjust rli->bitpos at the end
      	of an MS bitfield run if we already adjusted bitpos/offset for an
      	alignment as large or larger than the bitfield type size.
      	Take possible record alignment > BIGGEST_ALIGNMENT into account
      	when calculating actual_align.
      	Only put packed buit fields into rli->prev_field if they end up
      	suitably aligned.
      	Also set rli->remaining_in_alignment when we re-set rli->prev_field.
      	Update rli->remaining_in_alignment when we have already started a
      	run of bit fields and we process a packed bit field.
      
      From-SVN: r99574
      J"orn Rennecke committed
    • tree-data-ref.c (find_data_references_in_loop): Give up when the body of the… · 4aad410d
      tree-data-ref.c (find_data_references_in_loop): Give up when the body of the loop contains a CALL_EXPR or an ASM_EXPR...
      
      	* tree-data-ref.c (find_data_references_in_loop): Give up when
      	the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
      	may embed arbitrary side effects.
      	Remove the assumption that GIMPLE form contains a single array
      	access per statement.
      	When the statement contains virtual operands, fail if it is not
      	a MODIFY_EXPR or a CALL_EXPR.
      	Return after the dont know node is inserted.
      
      From-SVN: r99573
      Sebastian Pop committed
    • re PR libfortran/19478 (reading back from /dev/null) · 802fc826
      	PR fortran/19478
      	* io/unix.c (fd_truncate): update positions when ftruncate
      	fails (like writing to /dev/null).
      	* gfortran.dg/dev_null.f90: New test.
      
      From-SVN: r99570
      Bud Davis committed
    • arm.md (negsf2, negdf2): Permit these expands when compiling for VFP. · 5a942c07
      	* arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
      	* gcc.dg/arm-vfp1.c: Revert last change.
      
      From-SVN: r99569
      Richard Earnshaw committed
    • re PR middle-end/19807 (fold does not fold &a[4]-1) · c5542940
      2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
      
      	PR middle-end/19807
      	PR tree-optimization/19639
      	* fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
      	and generic summands for char* as s * delta, too, folding &a[i]
      	CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
      	for comparison of steps.  Convert types for index addition.
      	(fold_binary): Adjust the callers to always dispatch to
      	try_move_mult_to_index.
      	* tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
      	expr with non-gimple ARRAY_REF offset.
      
      	* g++.dg/tree-ssa/pr19807.C: New testcase.
      
      From-SVN: r99568
      Richard Guenther committed
    • fold-const.c (fold_indirect_ref_1): Avoid removing NOP_EXPRs with type qualifiers like const. · 8a29ce60
      2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
      
      	* fold-const.c (fold_indirect_ref_1): Avoid removing
      	NOP_EXPRs with type qualifiers like const.
      
      From-SVN: r99566
      Richard Guenther committed
    • re PR c/21502 (small data relocation mismatch) · 317a9ac3
              PR c/21502
              * c-decl.c (finish_decl): Propagate the completed array type of
              a global variable into the binding.
      
      From-SVN: r99563
      Richard Henderson committed
    • re PR libfortran/21471 ('POSITION = "APPEND"' doesn't seem to work) · da32fddc
      	PR libfortran/21471
      	* open.c (new_unit): Take care of the case where POSITION_APPEND
      	is specified (sseek to the end, and set u>-endfile).
      	* gfortran.dg/append-1.f90: New test.
      
      From-SVN: r99560
      Francois-Xavier Coudert committed