OSDN Git Service

* loop.c (loop_optimize): Fix value max_uid_for_loop is reset
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 694d804..485696d 100644 (file)
@@ -1,3 +1,443 @@
+Tue Feb  2 20:24:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
+       to after find_and_verify_loops call.
+
+Tue Feb  2 19:48:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * (recombine_givs): Don't use a giv that's likely to be dead to
+       derive others.
+
+       * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
+       wrap around when deriving givs.
+
+Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
+
+       * recog.c (check_asm_operands): Treat indeterminate operand ok
+       results as success.  Try harder to resolve a matching constraint.
+       * stmt.c (expand_asm_operands): Recognize when an output operand's
+       constraint does not allow memory.  Treat indeterminate operand ok
+       results as failure.  Try harder to resolve a matching constraint.
+       
+Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
+
+       Use varrays for constant-equivalence data:
+
+       * varray.h (struct const_equiv_data): New type.
+       (union varray_data_tag): New element const_equiv.
+       (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
+       (VARRAY_SIZE): New macro, returns number of elements.
+       * integrate.h: Include varray.h.
+       (struct inline_remap): Replace const_equiv_map, const_age_map and
+       const_equiv_map_size with a const_equiv_varray element.
+       (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
+       needed.
+       (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
+       simultaneously, growing the varray if needed.
+
+       * integrate.c (global_const_equiv_map,
+       global_const_equiv_map_size): Deleted, replaced by....
+       (global_const_equiv_varray): New variable.
+       (expand_inline_function): References changed.
+       * integrate.h: Update declarations.
+
+       * integrate.c (process_reg_parm, expand_inline_function,
+       copy_rtx_and_substitute, try_constants, subst_constants,
+       mark_stores): Use varray allocation and accessor macros, new
+       integrate.h macros, and global_const_equiv_varray.  Don't
+       conditionalize non-NULL stores on array size; instead, expand the
+       array as needed.
+       * unroll.c (unroll_loop): Likewise.
+
+       * unroll.c (unroll_loop): Initialize const_equiv_varray element to
+       zero.  After allocating varray, always exit through bottom of
+       function, where it can be deallocated if needed.  Don't explicitly
+       reallocate const_equiv_map storage; instead, just ensure the
+       varray has been initialized, and update the global reference.
+
+Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h (inline, const): Handle these for stage2 (and later) gcc.
+
+       * dwarf2out.c (inline): Don't define.
+
+       * dwarfout.c (inline): Likewise.
+
+Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (recombine_givs): Dump recombination and derivation data.
+
+Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
+
+       * flags.h: Declare flag_no_ident.
+       * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
+       * c-tree.h: Don't declare flag_no_ident.
+       * c-decl.c: Don't define flag_no_ident.  Don't process
+          -f(no-)ident switches here.
+
+       * config/elfos.h (ASM_FILE_END): Output final .ident directive
+          only if !flag_no_ident.
+       * config/ptx4.h: Likewise.
+       * config/svr4.h: Likewise.
+       * config/alpha/elf.h: Likewise.
+       * config/arm/linux-elf.h: Likewise.
+       * config/i386/sco5.h: Likewise.
+       * config/i860/fx2800.h: Likewise.
+       * config/mips/gnu.h: Likewise.
+       * config/i386/osfrose.h: Likewise.
+
+       * gcc.c (C specs): Map -Qn to -fno-ident.
+       * objc/lang-specs.h: Likewise.
+
+Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * configure.in: Don't remove loop.o and unroll.o when
+       enable-haifa is selected.
+       * configure: Rebuilt.
+
+Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
+
+       * i386.md (movsicc, movhicc, movsfcc, movdfcc,
+       movxfcc, movdicc): Delete unconstrained alternatives.
+       * i386.c (output_fp_conditional_move,
+       output_int_conditional_move): Delete unused case.
+
+Sun Jan 31 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
+       instead of bis and cpys.  Combine alternatives where possible.
+
+Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcov.c (fnotice): Add missing FILE* parameter.
+       (function_summary): Fix format specifiers in calls to `fnotice'.
+       (output_data): Likewise.
+
+       * toplev.c (fnotice): Constify char* parameter.
+
+       * toplev.h (fnotice): Add prototype.
+       Wrap prototype with BUFSIZ to protect FILE* usage.
+       
+Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
+       
+Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * combine.c (distribute_notes): Handle REG_EH_REGION notes.
+
+       * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
+       function definition.
+       (aliases_everything_p, write_dependence_p):Likewise.
+
+       * install.texi: Fix merge lossages.
+
+       * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
+       is defined.
+       * collect2.c (main): Likewise.
+       * cppmain.c (main): Likewise.
+       * gcc.c (main): Likewise.
+       * gcov.c (main): Likewise.
+       * protoize.c (main): Likewise.
+       * toplev.c (main): Likewise.
+
+       * pa.md (parallel shift and shiftadd): Mark output of shift as an
+       earlyclobber.
+
+       * loop.c: Disable recent loop changes.  Temporary as Joern
+       continues to fix problems.
+
+Sat Jan 30 03:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
+
+Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
+
+       * emit-rtl.c (remove_insn): New function.
+       * rtl.h (remove_insn): Add prototype.
+       * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
+
+Fri Jan 29 22:34:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (recombine_givs): Don't try to derive givs that have combined.
+
+Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
+       when declaring arguments and calling va_arg() to initialize them.
+
+       * collect2.c (notice): Likewise.
+
+       * loop.c (find_life_end): Use PROTO() macro in the prototype.
+
+Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * collect2.c (error): Fix typo in declaration.
+
+       * cpperror.c (cpp_message): Likewise.
+
+       * cpplib.c (cpp_warning): Likewise.
+
+       * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
+       ATTRIBUTE_PRINTF_1.
+
+       * toplev.c (error): Fix typo in declaration.
+
+Fri Jan 29 15:44:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
+       forward from cont dominator.
+
+Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cccp.c (eprint_string): Constify a char*.
+       (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
+       (vnotice): Constify a char*.
+       (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
+       (verror): Constify a char*.
+       (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
+       (vwarning): Constify a char*.
+       (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
+       ATTRIBUTE_PRINTF_2.
+       (verror_with_line): Constify a char*.
+       (vwarning_with_line): Likewise.
+       (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
+       ATTRIBUTE_PRINTF_2.
+       (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
+       ATTRIBUTE_PRINTF_1.
+       (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
+       (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
+       Also correct typo in parameter name declaration.
+       (make_assertion): Constify a char*.
+       (quote_string_for_make): Likewise.
+       (deps_output): Likewise.
+       (fatal): Likewise.  Use PVPROTO not VPROTO, add
+       ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
+       "__attribute__ ((noreturn))".
+       (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
+       (pfatal_with_name): Likewise.
+       (pipe_closed): Likewise.
+       (memory_full): Likewise.
+
+Fri Jan 29 00:14:55 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
+       may_not_optimize to proper size when converting biv increments
+       into givs.
+       If necessary, reallocate reg_iv_type / reg_iv_info before calling
+       recombine_givs.
+
+Thu Jan 28 23:24:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
+       generate complex adds.  Changed caller.
+       Don't generate adds that cost more than the original one.
+       (strength_reduce): Warning fixes.
+
+Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
+       * configure: Rebuilt.
+
+Wed Jan 27 23:39:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * rtl.h (insn_first_p): Declare.
+       * rtlanal.c (insn_first_p): New function.
+       * loop.h (varray.h): Include.
+       (struct induction): Change combined_with to unsigned.
+       New members derived, ix and last_use.
+       (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
+       (REG_IV_TYPE, REG_IV_INFO): Define.
+       (first_increment_giv, last_increment_giv): Declare.
+       * loop.c (loop_number_loop_cont): New static variable.
+       (loop_number_cont_dominator): Likewise.
+       (reg_iv_type, reg_iv_info): Now varray_type.
+       (first_increment_giv, last_increment_giv): New variables.
+       (compute_luids, verify_dominator, find_life_end): New functions.
+       (cmp_recombine_givs_stats, recombine_givs): Likewise.
+       (loop_optimize): Allocate loop_number_loop_cont and
+       loop_number_cont_dominator.  Use compute_luids.
+       (find_and_verify_loops): Initialize loop_number_loop_cont and
+       loop_number_cont_dominator.
+       (strength_reduce): Try to find bivs that can be expressed as givs
+       of another biv, and to convert biv increments into givs.
+       Call recombine_givs.  Handle derived givs.
+       (record_biv): New argument location.  All callers changed.
+       (record_giv): Initialize derived and last_use fields.
+       (basic_induction_var): New argument location.  All callers changed.
+       (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
+       Increment combined_with instead of setting to 1.
+       * unroll.c (derived_regs): New static variable.
+       (unroll_loop): Initialize it.
+       Allocate local_regno according to max_reg_num.
+       (copy_loop_body): Cope with derived givs.
+       (find_splittable_givs): Check for Givs made from biv increments.
+       Set derived_regs for givs.
+       * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
+
+Wed Jan 27 19:31:36 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * function.c (purge_addressof_1): Handle case when a register
+       has been used in a wider mode.
+
+Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
+
+       * cpplib.h (cpp_notice): Add prototype.
+
+Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * Merge gcc2 snapshot 19980929.
+
+       * cccp.c (PRINTF_PROTO): Remove.
+       (PRINTF_PROTO_{1,2,3,4}: Likewise.
+       * cexp.y: Likewise.
+       * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
+
+       * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
+       (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
+       (cpp_fatal, cpp-Pfatal_with_name): Likewise.
+
+       * gen-protos.c (hashf): Delete in cpphash.o
+       * gen-protos.c (hashf): Delete in cpphash.o
+
+       * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
+       * expmed.c: Likewise.
+       * rs6000.md: Likewise.
+
+       * rs6000.c, rs6000.md: Do not merge formatting changes yet.
+
+Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
+
+       * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
+       * rs6000.md (movsi, movdi): Likewise.
+
+Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * function.c (expand_function_end): Pass arg_pointer_save_area to
+       validize_mem before using it.  Emit code into a sequence.
+
+Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.md (doz + set cr and or + set cr patterns): Add missing
+       '#' to split patterns.  Correct indentation of some new patterns.
+
+1999-01-26 12:11 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
+
+       * cppfiles.c (safe_read): Deleted.  
+       (read_and_prescan): New function, replaces safe_read, converts
+       and/or warns about trigraphs, silently converts odd line
+       terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
+       (finclude): Use read_and_prescan; turn off nonblocking mode on
+       the input descriptor; remove file-size-examination and
+       no-newline-at-EOF gunk which is longer necessary; be more
+       careful about checking that we've been handed a legitimate
+       file to read (only real files, pipes, and ttys are acceptable).
+       * cpplib.h (cpp_options): Rename no_trigraphs flag to 
+       `trigraphs' and invert its sense.
+       (trigraph_table): Declare.
+       (cpp_warning_with_line): Prototype.
+       * cpplib.c: Remove all references to trigraph_pcp. Define
+       trigraph_table; initialize it in initialize_char_syntax.  Open
+       files in nonblocking mode.  s/no_trigraphs/trigraphs/
+       throughout, and invert sense.  Put cpp_warning_with_line back
+       in and export it.
+
+Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.h (COUNTER_REGS): New register class.
+       * config/c4x/c4x.md (*rptb_init): Change constraints.
+       (rptb_end): Emit alternate looping instructions if 
+       RC register not allocated for loop counter.
+       (decrement_and_branch_on_count): Allow other registers
+       for loop counter.
+
+1999-01-25 14:26 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
+
+       * cppexp.c (struct arglist): Removed.
+       (parse_number): Use HOST_WIDE_INT for the accumulator.
+       Allow two `l' suffixes unless C89.  Clean up.  Make static.
+       (parse_charconst): New function broken out of cpp_lex.
+       Code cleaned up drastically.  Don't use a token_buffer.
+       (token_buffer): Removed.
+       (cpp_lex): Don't call parse_number on a constant string.
+       Use parse_charconst.
+       (cpp_parse_expr): Properly handle an ERROR op returned by
+       cpp_lex. 
+
+1999-01-25 14:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+       * cpplib.c: Don't include signal.h, sys/times.h, or
+       sys/resource.h. Don't declare localtime.
+       (macroexpand): Handle special symbols here.
+       (push_macro_expansion): Chop off the trailing '@ ' if possible
+       here.
+       (cpp_get_token): Don't do either of the above two things here.
+       Move `string' label just after case '"' so that wide strings
+       don't crash the preprocessor.
+
+Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.md (left shift + set cr patterns): Add missing '#' to
+       split patterns.
+       (move register + set cr pattern): Ditto.
+       (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
+       inadvertently deleted.
+
+Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * stmt.c (stmt_loop_nest_empty): New function.
+       * tree.h (stmt_loop_nest_empty): Declare it.
+       * rtl.def (CALL_PLACEHOLDER): New rtx code.
+
+Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
+       New functions.
+       (c4x_check_legit_addr): Remove USE and PLUS, allow
+       LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
+       (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
+       CONST cases.  Add LO_SUM.
+       (c4x_print_operand): Modified 'C' and 'R' cases for calls.
+       Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
+       (c4x_print_operand_address): Handle LO_SUM.
+       (c4x_scan_for_ldp): Delete.  Hooray!
+       (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
+       Split all insns.
+       (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
+       changed.
+       (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
+       callers changed.
+       (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
+       and CONST.
+       (c4x_U_constraint, symbolic_operand): New functions.
+       (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
+       disable SYMBOL_REF, LABEL_REF, and CONST.
+       (lsrc_operand, tsrc_operand): Call src_operand instead of
+       general_operand.
+       (c4x_operand_subword): Update comments.
+
+       * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
+       (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
+       plus HIGH and LO_SUM for the C40.
+       (ENCODE_SECTION_INFO): Define macro.
+       (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
+       prototypes.
+       (PREDICATE_CODES): Add symbolic_operand.
+
+       * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
+       c4x_emit_move_sequence.
+       (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
+       to avoid symbol references.
+       (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
+       (set_high): Renamed from set_high_use.
+       (set_lo_sum): Renamed from set_ior_lo_use.
+       (all call patterns): Make MEM explicit in call address operands.
+       Modified output templates to use 'U' modifier.
+       
 Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
 
        * version.c: Bump for snapshot.