mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
1952e2e1c1
These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
16861 lines
604 KiB
Groff
16861 lines
604 KiB
Groff
2000-06-30 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
|
||
* c-common.c (ridpointers): Declare.
|
||
* c-common.h (enum rid): Declare.
|
||
(NORID): Likewise.
|
||
(ridpointers): Likewise.
|
||
* c-lex.c (ridpointers): Don't declare.
|
||
(init_lex): Initialize ridpointers.
|
||
* c-lex.h (enum rid): Don't declare.
|
||
(NORID): Likewise.
|
||
(RID_FIRST_MODIFIER): Likewise.
|
||
(ridpointers): Likewise.
|
||
|
||
2000-06-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
|
||
have global scope.
|
||
|
||
2000-06-30 Martin von Loewis <loewis@informatik.hu-berlin.de>
|
||
|
||
* invoke.texi (-Wreturn-type): In C++, a missing return type is
|
||
always an error.
|
||
|
||
2000-06-30 Catherine Moore <clm@cygnus.com>
|
||
|
||
* c-common.c (decl_attributes): Differentiate between
|
||
types and type decls for alignment.
|
||
|
||
2000-06-30 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* cpp.texi: Document #pragma GCC dependency
|
||
* cppfiles.c (open_include_file): Set date to unknown.
|
||
(_cpp_compare_file_date): New function.
|
||
(read_include_file): Set file date.
|
||
* cpphash.h (struct include_file): Add date member.
|
||
(_cpp_compare_file_date): Prototype.
|
||
* cpplib.c (parse_include): Add trail parameter. Adjust.
|
||
(do_include): Adjust parse_include call.
|
||
(do_import): Likewise.
|
||
(do_include_next): Likewise.
|
||
(gcc_pragmas): Add dependency pragma.
|
||
(do_pragma_dependency): New pragma.
|
||
|
||
2000-06-29 Jason Merrill <jason@redhat.com>
|
||
|
||
* dwarf2out.c (output_loc_operands): Don't abort on codes that have
|
||
no operands.
|
||
|
||
2000-06-29 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
|
||
a volatile mem and FR_REGS.
|
||
|
||
2000-06-29 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
|
||
* c-common.h (flag_const_strings): Declare.
|
||
(warn_format): Likewise.
|
||
(flag_traditional): Likewise.
|
||
(flag_isoc99): Likewise.
|
||
(warn_parentheses): Likewise.
|
||
(warn_conversion): Likewise.
|
||
(C_TYPE_OBJECT_P): Likewise.
|
||
(C_TYPE_INCOMPLETE_P): Likewise.
|
||
(C_TYPE_FUNCTION_P): Likewise.
|
||
(C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
|
||
(C_EXP_ORIGINAL_CODE): Likewise.
|
||
(build_unary_op): Likewise.
|
||
(build_binary_op): Likewise.
|
||
(lvalue_p): Likewise.
|
||
(default_conversion): Likewise.
|
||
(common_type): Likewise.
|
||
* c-tree.h (C_TYPE_OBJECT_P): Remove.
|
||
(C_TYPE_INCOMPLETE_P): Likewise.
|
||
(C_TYPE_FUNCTION_P): Likewise.
|
||
(C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
|
||
(C_EXP_ORIGINAL_CODE): Likewise.
|
||
(common_type): Likewise.
|
||
(default_conversion): Likewise.
|
||
(build_binary_op): Likewise.
|
||
(build_unary_op): Likewise.
|
||
(lvalue_p): Likewise.
|
||
(flag_const_strings): Likewise.
|
||
(warn_format): Likewise.
|
||
(warn_conversion): Likewise.
|
||
(flag_traditional): Likewise.
|
||
(flag_isoc99): Likewise.
|
||
(warn_parentheses): Likewise.
|
||
|
||
2000-06-29 James E. Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
|
||
|
||
* config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
|
||
same. Only tie XFmode with XFmode.
|
||
|
||
2000-06-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-decl.c, timevar.c, tlink.c: Include intl.h.
|
||
* Makefile.in: Update deps.
|
||
|
||
2000-06-29 Andrew Haley <aph@cygnus.com>
|
||
|
||
* toplev.c (main): On an IA-64, make flag_unwind_tables defauit
|
||
to true.
|
||
|
||
2000-06-29 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
|
||
bytes: remove the multiply by 8.
|
||
|
||
2000-06-29 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* rtl.c : Revert NLS changes.
|
||
* gcc.c : Fix bug in display_help introced by my last changes.
|
||
|
||
Wed Jun 28 21:09:33 2000 Raja R Harinath <harinath@cs.umn.edu>
|
||
|
||
* dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
|
||
DECL_CONTEXT, not DECL_FIELD_CONTEXT.
|
||
|
||
2000-06-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* flow.c (flow_depth_first_order_compute): Fix algorithm.
|
||
|
||
2000-06-28 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* c-decl.c : Mark strings for translation.
|
||
(parmlist_tags_warning): Use distinct messages instead
|
||
of conditional expressions.
|
||
* diagnostic.c (v_message_with_decl): Mark string for translation.
|
||
* gcc.c: Mark messages for translation.
|
||
(display_help): Combine messages into one string where necessary.
|
||
* mips-tfile: Add intl.h. Mark messages for translation.
|
||
* rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
|
||
messages for translation.
|
||
* timevar.c: Mark messages for translation.
|
||
* tlink.c: Likewise.
|
||
* toplev.c: Likewise.
|
||
|
||
Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com)
|
||
|
||
* i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
|
||
|
||
* alpha/alpha-interix.h: Delete redundant -Asystem(interix),
|
||
use -isystem instead of -idirafter.
|
||
* i386/i386-interix.h: Likewise.
|
||
|
||
2000-06-28 Jason Merrill <jason@redhat.com>
|
||
|
||
* dwarf2out.c (output_loc_operands): Don't support >1 byte output
|
||
unless DWARF2_DEBUGGING_INFO is defined.
|
||
(ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
|
||
|
||
2000-06-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
|
||
|
||
2000-06-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* cpplex.c (output_line_command): Output correct #line if a header
|
||
is including itself and is not protected against multiple inclusion.
|
||
|
||
2000-06-28 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (open_include_file): If open(2) returns EMFILE or
|
||
ENFILE, close all cached file descriptors and try again.
|
||
(_cpp_execute_include): Keep a count of the number of times
|
||
each header is included.
|
||
(close_cached_fd): New function.
|
||
* cpphash.h (struct include_file): Rename before to
|
||
include_count; all users updated. Make include_count and sysp
|
||
unsigned short.
|
||
* cppinit.c (cpp_finish): If -H, report headers that could use
|
||
reinclude guards.
|
||
(report_missing_guard): New function.
|
||
|
||
Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (prologue_set_got): Set length_immediate field.
|
||
(testqi_ccno_1): Add missing '@' character.
|
||
|
||
2000-06-27 Jason Merrill <jason@redhat.com>
|
||
|
||
* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
|
||
DWARF_FRAME_REGNUM.
|
||
|
||
2000-06-27 Andrew Macleod <amacleod@cygnus.com>
|
||
|
||
* dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
|
||
unsigned macros available.
|
||
|
||
2000-06-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (emit_insn_group_barriers): Special case
|
||
epilogue_deallocate_stack.
|
||
|
||
* config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
|
||
completers for UNORDERED and ORDERED as well.
|
||
* config/ia64/ia64.md (bunordered, bordered): New.
|
||
(sunordered, sordered): New.
|
||
|
||
Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
|
||
* i386.c (ix86_attr_length_default): Kill.
|
||
(ix86_attr_length_immediate_default, ix86_attr_length_address_default):
|
||
New.
|
||
* i386-protos.h (ix86_attr_length_default): Kill
|
||
(ix86_attr_length_immediate_default, ix86_attr_length_address_default):
|
||
Add prototype
|
||
* i386.md (attribute type): Add "test".
|
||
(attribute length_prefix): Kill.
|
||
(attribute length_opcode): Kill.
|
||
(attribute i387, mode, length_immediate, length_address, prefix_data16,
|
||
prefix_rep, prefix_0f, modrm): New.
|
||
(attribute length): Compute using the new attributes.
|
||
(attribute pent_prefix): New.
|
||
(attribute pent_pair): Compute using pent_prefix.
|
||
(all insn patterns): Set mode,modrm and immediate_length attributes where
|
||
needed.
|
||
(cmpsi patterns): Compute sizes properly for test instruction.
|
||
(movsi, movhi patterns): Compute sizes properly for eax shortcuts.
|
||
(movstricthi_xor, movstrictqi_xor): New patterns.
|
||
(andsi/andhi): Use splitters to generate xor instructions.
|
||
(xorqi_ext_1): New pattern.
|
||
(movstricthi->movstricthi_xor peep2): New.
|
||
|
||
Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (addqi_low_1): Remove.
|
||
|
||
2000-06-27 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* 1750a.h: Mark help strings for options/switches for translation.
|
||
* a29k.h: Likewise.
|
||
* alpha.h: Likewise.
|
||
* arm.h: Likewise.
|
||
* pe.h: Likewise.
|
||
* riscix.h: Likewise.
|
||
* c4x.h: Likewise.
|
||
* clipper.h: Likewise.
|
||
* convex.h: Likewise.
|
||
* elxsi.h: Likewise.
|
||
* fr30.h: Likewise.
|
||
* fx80.h: Likewise.
|
||
* h8300.h: Likewise.
|
||
* i370.h: Likewise.
|
||
* cygwin.h: Likewise.
|
||
* dgux.h: Likewise.
|
||
* djgpp.h: Likewise.
|
||
* i386.h: Likewise.
|
||
* osf1elf.h: Likewise.
|
||
* osfrose.h: Likewise.
|
||
* sco5.h: Likewise.
|
||
* win32.h: Likewise.
|
||
* i860.h: Likewise.
|
||
* paragon.h: Likewise.
|
||
* i960.h: Likewise.
|
||
* ia64.h: Likewise.
|
||
* m32r.h: Likewise.
|
||
* mcore.h: Likewise.
|
||
* mips.h: Likewise.
|
||
* mn10300.h: Likewise.
|
||
* ns32k.h: Likewise.
|
||
* pdp11.h: Likewise.
|
||
* pj.h: Likewise.
|
||
* aix.h: Likewise.
|
||
* aix41.h: Likewise.
|
||
* aix43.h: Likewise.
|
||
* beos.h: Likewise.
|
||
* rs6000.h: Likewise.
|
||
* sysv4.h: Likewise.
|
||
* linux.h: Likewise.
|
||
* linux64.h: Likewise.
|
||
* sp64-elf.h: Likewise.
|
||
* sparc.h: Likewise.
|
||
* splet.h: Likewise.
|
||
* v850.h: Likewise.
|
||
* convex.h (TARGET_SWITCHES): Provide descriptions and mark them
|
||
for translation.
|
||
* sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
|
||
Properly document option and mark for translation.
|
||
* sp86x-elf.h: Likewise.
|
||
|
||
2000-06-27 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
Add MMX and SSE registers to i386 machine description.
|
||
* i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
|
||
ix86_local_alignment): Declare.
|
||
|
||
* i386.h (TARGET_MMX, TARGET_SSE): New.
|
||
(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
|
||
REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
|
||
REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
|
||
enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
|
||
(FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
|
||
(FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
|
||
(RETURN_IN_MEMORY): Handle MMX/SSE.
|
||
(REG_PARM_STACK_SPACE): Added so the first three TImode parameters
|
||
also get stack space.
|
||
(MUST_PASS_IN_STACK): Added TImode to the default definition.
|
||
(CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
|
||
(MMX_REGISTER_NAMES): New.
|
||
(ALIGN_MODE_128): New macro.
|
||
(CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
|
||
(DATA_ALIGNMENT): Likewise.
|
||
(LOCAL_ALIGNMENT): Likewise.
|
||
(CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
|
||
TARGET_MMX/TARGET_SSE.
|
||
(VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
|
||
(REG_CLASS_FROM_LETTER): 'y' for MMX regs.
|
||
(SECONDARY_MEMORY_NEEDED): Be conservative about copying between
|
||
SSE/MMX regs and something else.
|
||
(CLASS_MAX_NREGS): 1 for SSE and MMX regs.
|
||
(REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
|
||
3 if moving between MMX regs and something else.
|
||
|
||
* i386.c (reg_class): Add SSE_REGS, MMX_REGS.
|
||
(regclass_map): Add MMX/SSE registers.
|
||
(print_operand): Add code to print XMMWORD as appropriate.
|
||
(ix86_split_movdi): Abort for MMX regs.
|
||
(init_cumulative_args): Also allow SSE_REGS
|
||
(function_arg_advance, function_arg): Likewise
|
||
(print_reg): Support 'm'. Add case for TImode.
|
||
(override_options): TARGET_SSE implies TARGET_MMX.
|
||
(ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
|
||
New functions.
|
||
|
||
* config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
|
||
FIRST_SSE_REG.
|
||
* config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
|
||
memory.
|
||
* config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
|
||
* config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
|
||
|
||
2000-06-26 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* ssa.c (struct rename_set_data): Change the name of field
|
||
'set_dest' to 'old_reg'. Add comments.
|
||
(struct rename_context): Change the name of 'set_data' to
|
||
'new_renames'. Add new field 'done_renames'.
|
||
(create_delayed_rename): New function.
|
||
(apply_delayed_renames): New function.
|
||
(rename_insn_1): Use the new functions. Handle CLOBBERS. Handle
|
||
SUBREGs and similar by emitting a move.
|
||
(new_registers_for_updates): Delete, functionality moved to
|
||
apply_delayed_renames.
|
||
(rename_block): Handle moves emitted by rename_insn_1 by putting
|
||
them into a SEQUENCE with the original insn. Add sanity checks
|
||
and comments.
|
||
(rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
|
||
(rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
|
||
|
||
2000-06-26 Andrew Macleod <amacleod@cygnus.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
* dwarf2.h (enum dwarf_call_frame_info): Add
|
||
DW_CFA_def_cfa_expression.
|
||
* dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
|
||
dw_loc_descr_struct entry.
|
||
(struct cfa_loc): New structure to track a CFA location.
|
||
(lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
|
||
(lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
|
||
offset, plus handle DW_CFA_def_cfa_expression.
|
||
(def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
|
||
cfa_loc record.
|
||
(dwarf2out_def_cfa): Entry point maintained for compatibility.
|
||
(dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
|
||
(cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
|
||
(cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
|
||
(initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
|
||
cfa_reg.
|
||
(dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
|
||
sequences for the new DW_CFA_def_cfa_expression record.
|
||
(dwarf2out_frame_debug): Use new variables/fields.A
|
||
(output_cfi): Handle DW_CFA_def_cfa_expression.
|
||
(output_cfa_loc): New function to generate a CFI record for
|
||
DW_CFA_def_cfa_expression.
|
||
(get_cfa_from_loc_descr): New function to get a cfa_loc record from
|
||
a dw_loc_descr sequeunce.
|
||
(build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
|
||
(dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
|
||
size_of_locs, output_loc_operands, output_loc_sequence): Move into
|
||
unwind info section.
|
||
* frame.h (frame_state): Add base_offset and indirect fields.
|
||
* frame-dwarf2.c (decode_stack_op): New function to interpret a
|
||
dw_loc_descr operation.
|
||
(execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
|
||
(struct frame_state): Add base offset and indirect fields.
|
||
* libgcc2.c (next_stack_level): Support indirect loading for CFA.
|
||
|
||
2000-06-26 Joseph S. Myers <jsm28@cam.ac.uk>
|
||
|
||
* c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
|
||
Make warnings about implicit int be pedwarns in C99. Don't warn
|
||
about duplicate type qualifiers in C99.
|
||
(start_function): Make warning about implict int return type be a
|
||
pedwarn in C99.
|
||
* c-lex.c (yylex): Don't warn about `long long' in C99.
|
||
* c-typeck.c (c_expand_return): In C99, always pedwarn about
|
||
`return' with no value in function returning non-void.
|
||
|
||
2000-06-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* c-typeck.c (pedwarn_c99): New.
|
||
* diagnostic.c (verror, vwarning, vpedwarn): Export.
|
||
* toplev.h: Prototype them.
|
||
|
||
2000-06-26 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* c-typeck.c (digest_init): Return error_mark_node node when
|
||
TREE_TYPE (init) == error_mark_node.
|
||
|
||
2000-06-26 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
|
||
test for msgfmt without path instead.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
|
||
|
||
* gengenrtl.c (special_rtx): Fix typo in comment.
|
||
|
||
2000-06-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* mklibgcc.in (LIB2FUNCS): Add missing space.
|
||
|
||
2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* tree.h (enum tree_index): Add vector type nodes.
|
||
Add accessor macros for them.
|
||
(TYPE_REPRESENATION_TYPE): New macro.
|
||
* tree.c (build_common_tree_nodes_2): Build these nodes.
|
||
(finish_vector_type): New function.
|
||
* c-common.c (type_for_mode): Handle vector modes.
|
||
* tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
|
||
|
||
* dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
|
||
* dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
|
||
* dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
|
||
(gen_type_die): Likewise.
|
||
* dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
|
||
(fundamental_type_code): Likewise.
|
||
(type_is_fundamental): VECTOR_TYPEs aren't.
|
||
(output_type): Handle VECTOR_TYPEs.
|
||
|
||
2000-06-25 Kazu Hirata <kazu@hxi.com>
|
||
|
||
* config/arm.c: Fix a comment typo.
|
||
* config/arm.h: Likewise.
|
||
|
||
2000-06-25 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
|
||
compiler found.
|
||
AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-25 John David Anglin <dave.anglin@nrc.ca>
|
||
|
||
* config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
|
||
|
||
2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
|
||
libgcc.a.
|
||
|
||
2000-06-24 Marc Espie <espie@cvs.openbsd.org>
|
||
|
||
* collect2.c (resolve_lib_name): Move '/' check out of loop.
|
||
|
||
2000-06-24 Dirk Duellmann <Dirk.Duellmann@cern.ch>
|
||
|
||
* ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
|
||
|
||
2000-06-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* stmt.c (expand_decl_cleanup): Emit a dummy insn after
|
||
last_unconditional_cleanup.
|
||
|
||
2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* tree.def (VECTOR_TYPE): New node type.
|
||
* tree.h: Adjust some comments to reflect addition of vector types.
|
||
(TYPE_VECTOR_SUBPARTS): New macro.
|
||
* stor-layout.c (layout_type): Handle VECTOR_TYPE.
|
||
* c-convert.c (convert): Likewise.
|
||
* convert.c (convert_to_integer): Handle vector modes.
|
||
(convert_to_vector): New function.
|
||
* convert.h (convert_to_vector): Declare.
|
||
* expr.c (convert_move): Handle vector modes.
|
||
* expmed.c (extract_bit_field): Don't abort for vector modes.
|
||
|
||
2000-06-24 Marek Michalkiewicz <marekm@linux.org.pl>
|
||
|
||
* config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
|
||
* config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
|
||
New functions, common code moved from function_{prologue,epilogue}
|
||
and extended to support the -mtiny-stack option.
|
||
(function_prologue, function_epilogue): Use them.
|
||
Use lo8/hi8 consistently for asm output readability.
|
||
(avr_hard_regno_mode_ok): New function.
|
||
* config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack.
|
||
(UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
|
||
(HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
|
||
* config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
|
||
Write SPH before SPL.
|
||
(*movqi): No need to disable interrupts for just one "out"
|
||
in alternative 5. Change length attribute from 4 to 1.
|
||
* config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
|
||
Write SPH before SPL.
|
||
|
||
2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* rtl.texi (Vector Operations): New node.
|
||
(Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
|
||
(Conversions): Add ss_truncate, us_truncate.
|
||
* rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
|
||
VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
|
||
US_TRUNCATE): New rtx codes.
|
||
* machmode.def: Add vector modes.
|
||
* machmode.h (enum mode_class): Add MODE_VECTOR_INT and
|
||
MODE_VECTOR_FLOAT.
|
||
(INTEGER_MODE_P): Check for MODE_VECTOR_INT.
|
||
(FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
|
||
(VECTOR_MODE_P): New.
|
||
|
||
2000-06-24 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* cpp.texi: Clarify #pragma GCC namespace.
|
||
|
||
2000-06-24 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
|
||
all catalogs specified in ALL_LINGUAS.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md (reload_outdi+1): Handle
|
||
HOST_BITS_PER_WIDE_INT == 64 case correctly.
|
||
(adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
|
||
|
||
2000-06-23 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* alias.c (fixed_scalar_and_varying_struct_p): Don't examine
|
||
struct vs. scalar-ness when -fno-strict-aliasing.
|
||
|
||
2000-06-23 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* cpplib.c (struct pragma_entry): New structure.
|
||
(pragma_dispatch): Pragma dispatcher.
|
||
(top_pragmas, gcc_pragmas): New static variables.
|
||
(do_pragma): Use pragma_dispatch.
|
||
(do_pragma_gcc): New pragma handler.
|
||
* cpp.texi: Update.
|
||
|
||
2000-06-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* calls.c (compute_argument_addresses): Force stack slots into
|
||
alias set 0.
|
||
* expr.c (emit_push_insn): Force pushes into alias set 0.
|
||
|
||
2000-06-23 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.md (pred_rel_mutex): Only take one register.
|
||
* config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
|
||
|
||
2000-06-22 Jason Merrill <jason@redhat.com>
|
||
|
||
* toplev.c (compile_file): Always call timevar_print.
|
||
* Makefile.in (calls.o): Depend on TIMEVAR_H.
|
||
|
||
2000-06-22 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* varasm.c (constant_descriptor): Make contents unsigned char.
|
||
(mark_const_hash_entry): Adjust.
|
||
(const_hash): Just hash the code of unknown nodes.
|
||
(compare_constant_1): Adjust for unsigned char.
|
||
Use language specific expander on unknown nodes.
|
||
(record_constant_1): Likewise.
|
||
|
||
2000-06-21 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (cpp_make_system_header): New function.
|
||
* cpplib.h: Prototype it.
|
||
* cpplib.c (do_line, do_pragma_system_header): Use it.
|
||
* fix-header.c (read_scan_file): Use it.
|
||
|
||
* fix-header.c (check_macro_names): Cast second arg of
|
||
cpp_defined to const unsigned char *.
|
||
(read_scan_file): Make getchar_call const unsigned char.
|
||
|
||
2000-06-21 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c: Include splay-tree.h, not hashtab.h.
|
||
(redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
|
||
(destroy_include_file_node): New.
|
||
(_cpp_init_include_hash): Rename _cpp_init_include_table.
|
||
Create a splay tree, not a hash table.
|
||
(open_include_file): Look up the path in the include table,
|
||
do the multiple include optimization here, etc.
|
||
(cpp_included): Walk the path.
|
||
(find_include_file): Just walk the path calling
|
||
open_include_file, or call it directly for an absolute path.
|
||
(_cpp_fake_ihash): Rename _cpp_fake_include and update for new
|
||
scheme.
|
||
(read_include_file): Update for new scheme. Don't close the
|
||
file unless reading fails.
|
||
(_cpp_execute_include, cpp_read_file): Tweak for new scheme.
|
||
|
||
* cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
|
||
(struct include_file): New.
|
||
(NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
|
||
macros.
|
||
(CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
|
||
Update prototypes.
|
||
|
||
* cppinit.c: Include splay-tree.h.
|
||
(cpp_reader_init, cpp_cleanup): Update.
|
||
|
||
* cpplib.h (struct cpp_buffer): Change ihash field to
|
||
'struct include_file *inc'. Remove system_header_p.
|
||
(struct cpp_reader): Change all_include_files to a
|
||
struct splay_tree_s *.
|
||
|
||
* cpplex.c: Update all references to cpp_buffer->ihash and/or
|
||
cpp_buffer->system_header_p.
|
||
(cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
|
||
|
||
* Makefile.in (SPLAY_TREE_H): New macro.
|
||
(cppfiles.o, cppinit.o): Update dependencies.
|
||
|
||
Wed Jun 21 11:05:48 2000 Martin Buchholz <martin@xemacs.org>
|
||
|
||
* invoke.texi (g++): "g++" is not a script anymore.
|
||
|
||
2000-06-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* function.c (round_down): Delete obsolete prototype.
|
||
|
||
* pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
|
||
|
||
2000-06-20 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* configure.in: Use 'test a = b' not 'test a == b'.
|
||
* configure: Regen.
|
||
|
||
* Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
|
||
|
||
* Makefile.in: Remove all references to HOST_INTLLIBS.
|
||
|
||
* cpplex.c (parse_name): Don't warn about $ in identifiers if
|
||
skipping.
|
||
|
||
2000-06-20 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
|
||
for PA 2.0.
|
||
|
||
Mon Jun 19 23:26:40 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* Take REG_INC notes into account.
|
||
|
||
2000-06-19 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
|
||
(primary: IDENTIFIER): Just call build_external_ref.
|
||
* c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
|
||
Regenerate.
|
||
* c-lex.c (lastiddecl): Remove.
|
||
(yylex): Replace all instances of lastiddecl with local
|
||
variables.
|
||
|
||
* c-typeck.c (build_external_ref): New function. Treat decls
|
||
with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
|
||
Look up the decl from the id here. Call lookup_objc_ivar.
|
||
* c-lang.c (lookup_objc_ivar): Stub.
|
||
* objc/objc-act.c (lookup_objc_ivar): New function.
|
||
|
||
* c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
|
||
* c-lex.h: Don't declare lastiddecl.
|
||
|
||
2000-06-19 Benjamin Chelf <chelf@codesourcery.com>
|
||
|
||
* c-common.h (IF_COND): Added documentation.
|
||
(THEN_CLAUSE): Likewise.
|
||
(ELSE_CLAUSE): Likewise.
|
||
(WHILE_COND): Likewise.
|
||
(WHILE_BODY): Likewise.
|
||
(DO_COND): Likewise.
|
||
(DO_BODY): Likewise.
|
||
(RETURN_EXPR): Likewise.
|
||
(EXPR_STMT_EXPR): Likewise.
|
||
(FOR_INIT_STMT): Likewise.
|
||
(FOR_COND): Likewise.
|
||
(FOR_EXPR): Likewise.
|
||
(FOR_BODY): Likewise.
|
||
(SWITCH_COND): Likewise.
|
||
(SWITCH_BODY): Likewise.
|
||
(CASE_LOW): Likewise.
|
||
(CASE_HIGH): Likewise.
|
||
(GOTO_DESTINATION): Likewise.
|
||
(COMPOUND_BODY): Likewise.
|
||
(ASM_CV_QUAL): Likewise.
|
||
(ASM_STRING): Likewise.
|
||
(ASM_OUTPUTS): Likewise.
|
||
(ASM_INPUTS): Likewise.
|
||
(ASM_CLOBBERS): Likewise.
|
||
(DECL_STMT_DECL): Likewise.
|
||
(STMT_EXPR_STMT): Likewise.
|
||
(LABEL_STMT_LABEL): Likewise.
|
||
|
||
* c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
|
||
COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
|
||
RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
|
||
LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
|
||
|
||
2000-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* configure.in (--enable-checking): Update --help doc to reflect
|
||
new defaults. Ensure $ac_save_IFS is set before $IFS is changed.
|
||
|
||
Sun Jun 18 21:42:15 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
|
||
|
||
* function.c (put_var_into_stack): Don't reference DECL_ fields
|
||
if input is a SAVE_EXPR.
|
||
Use set_mem_attributes in COMPLEX case.
|
||
|
||
2000-06-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
|
||
(ia64_file_start): Declare.
|
||
* config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
|
||
(GR_REGNO_P): Likewise.
|
||
* config/ia64/ia64.c: Many prototypes.
|
||
(ia64_reg_numbers): Constify.
|
||
(ia64_input_reg_names, ia64_local_reg_names): Likewise.
|
||
(ia64_section_threshold): Make unsigned.
|
||
(ia64_print_operand): Constify.
|
||
(fix_range): Constify.
|
||
(ia64_init_builtins): Don't compare signed vs unsigned.
|
||
(ia64_expand_builtin): Likewise.
|
||
|
||
* config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
|
||
(CONSTRAINT_OK_FOR_Q): New.
|
||
* config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
|
||
(movsf_internal, movdf_internal): Likewise.
|
||
(cmovdi_internal): Rewrite so that constraints and predicates match;
|
||
simplify splitters.
|
||
(cmovsi_internal): Likewise.
|
||
|
||
* config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
|
||
(ASM_FILE_START): New.
|
||
* config/ia64/ia64.c (ia64_file_start): New.
|
||
(rtx_needs_barrier): Handle pred.rel.mutex.
|
||
(emit_predicate_relation_info): New.
|
||
* config/ia64/ia64.md (pred_rel_mutex): New.
|
||
* config/ia64/linux.h (ASM_SPEC): Define.
|
||
* config/ia64/sysv4.h (ASM_FILE_START): Define.
|
||
|
||
* config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
|
||
filtering global register variables.
|
||
|
||
2000-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* c-common.c (add_c_tree_codes): Fix definition for traditional C.
|
||
|
||
2000-06-17 Michael Meissner <meissner@redhat.com>
|
||
|
||
* gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
|
||
not present and there is a field after a '-'.
|
||
|
||
2000-06-17 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/check.tpl: finish the implementation of multiple tests
|
||
for a single fix
|
||
* fixinc/inclhack.def(ctrl_quotes_def): add a second test
|
||
(io_quotes_def): add a second test
|
||
(various): reorder `files' so that "limits.h" is never first
|
||
* fixinc/tests/base/*: update the testing output
|
||
|
||
Sat Jun 17 10:33:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* gcc.texi: Remove reference to stupid.c.
|
||
|
||
2000-06-16 Benjamin Chelf <chelf@codesourcery.com>
|
||
|
||
* c-common.c (c_tree_code_type): New array.
|
||
(c_tree_code_length): Likewise.
|
||
(c_tree_code_name): Likewise.
|
||
(add_c_tree_codes): New function.
|
||
|
||
* c-common.h (add_c_tree_codes): Declare.
|
||
(enum c_tree_code): New enum.
|
||
|
||
* c-lex.c (init_parse): Added call to add_c_tree_codes.
|
||
|
||
2000-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
|
||
select pattern to also match macro defs with only one argument.
|
||
|
||
Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* i386.md: Create new [right,left] rotate and right shift
|
||
patterns to optimize shift by 1 bit for certain ia32 processors.
|
||
Update patterns which perform left shifts to optimize shift by
|
||
1 bit for certain ia32 processors.
|
||
* i386.c (const_int_1_operand): New predicate.
|
||
* i386.h (PREDICATE_CODES): Handle const_int_1_operand.
|
||
* i386-protos.h (const_int_1_operand): Prototype.
|
||
|
||
Wed Jun 14 23:46:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* mips.c (machine_dependent_reorg): Fix braces for nested if.
|
||
|
||
2000-06-14 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
|
||
LABEL_REFs.
|
||
|
||
2000-06-14 Richard Henderson <rth@cygnus.com>
|
||
|
||
* conflict.c (conflict_graph_compute): Don't look for REG_INC.
|
||
|
||
* config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
|
||
auto-inc code.
|
||
|
||
* print-rtl.c (print_rtx): Emit space before mem alias set.
|
||
|
||
2000-06-14 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.c (expand_block_move): Fix typo in earlier change.
|
||
(print_operand): Remove unused variables neg and op.
|
||
(toc_hash_mark_entry): Fix prototype.
|
||
|
||
2000-06-14 Benjamin Chelf <chelf@codesourcery.com>
|
||
|
||
* c-common.h (IF_COND): Moved here from cp/cp-tree.h.
|
||
(THEN_CLAUSE): Likewise.
|
||
(ELSE_CLAUSE): Likewise.
|
||
(WHILE_COND): Likewise.
|
||
(WHILE_BODY): Likewise.
|
||
(DO_COND): Likewise.
|
||
(DO_BODY): Likewise.
|
||
(RETURN_EXPR): Likewise.
|
||
(EXPR_STMT_EXPR): Likewise.
|
||
(FOR_INIT_STMT): Likewise.
|
||
(FOR_COND): Likewise.
|
||
(FOR_EXPR): Likewise.
|
||
(FOR_BODY): Likewise.
|
||
(SWITCH_COND): Likewise.
|
||
(SWITCH_BODY): Likewise.
|
||
(CASE_LOW): Likewise.
|
||
(CASE_HIGH): Likewise.
|
||
(GOTO_DESTINATION): Likewise.
|
||
(COMPOUND_BODY): Likewise.
|
||
(ASM_CV_QUAL): Likewise.
|
||
(ASM_STRING): Likewise.
|
||
(ASM_OUTPUTS): Likewise.
|
||
(ASM_INPUTS): Likewise.
|
||
(ASM_CLOBBERS): Likewise.
|
||
(DECL_STMT_DECL): Likewise.
|
||
(STMT_EXPR_STMT): Likewise.
|
||
(LABEL_STMT_LABEL): Likewise.
|
||
(SCOPE_BEGIN_P): Likewise.
|
||
(SCOPE_END_P): Likewise.
|
||
(SCOPE_STMT_BLOCK): Likewise.
|
||
(SCOPE_NULLIFIED_P): Likewise.
|
||
(SCOPE_NO_CLEANUPS_P): Likewise.
|
||
(SCOPE_PARTIAL_P): Likewise.
|
||
(ASM_VOLATILE_P): Likewise.
|
||
(STMT_LINENO): Likewise.
|
||
(STMT_LINENO_FOR_FN_P): Likewise.
|
||
|
||
* c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
|
||
ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
|
||
FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
|
||
CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
|
||
SCOPE_STMT, CASE_LABEL, STMT_EXPR.
|
||
|
||
* gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
|
||
|
||
2000-06-14 David O'Brien <obrien@FreeBSD.org>
|
||
|
||
* gcc.c (main): Quiet compiler warnings. argv is assumed to be
|
||
writable in parts of the GCC code.
|
||
|
||
* config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
|
||
specification match cast.
|
||
|
||
Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
|
||
* configure, config.in: Rebuilt.
|
||
* sys-protos.h: Similarly.
|
||
|
||
Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* ifcvt.c (EDGE_COMPLEX): Move definition ...
|
||
* basic-block.h (EDGE_COMPLEX): ... here.
|
||
|
||
* loop.c (check_dbra_loop): Specify the register when
|
||
generating REG_NONNEG notes and don't generate duplicates.
|
||
|
||
2000-06-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
|
||
(struct tree_type, struct tree_decl): Add user_align member.
|
||
* stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
|
||
(place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
|
||
and DECL_USER_ALIGN 0, cap alignment to this value.
|
||
(place_field): Likewise.
|
||
(finalize_type_size): Set TYPE_USER_ALIGN.
|
||
(layout_type): Likewise.
|
||
(initialize_sizetypes): Likewise.
|
||
* c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
|
||
DECL_USER_ALIGN to 1.
|
||
* c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
|
||
(xfer_tag): Set TYPE_USER_ALIGN.
|
||
(finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
|
||
(finish_enum): Likewise.
|
||
* stmt.c (expand_decl): Set DECL_USER_ALIGN.
|
||
(expand_anon_union_decl): Likewise.
|
||
* tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
|
||
(build_index_type): Set TYPE_USER_ALIGN.
|
||
(build_range_type): Likewise.
|
||
(build_common_tree_nodes_2): Likewise.
|
||
* tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
|
||
|
||
2000-06-13 Andreas Jaeger <aj@suse.de>
|
||
|
||
* configure.in: Use --enable-checking=misc,tree,gc by default if
|
||
no --enable-checking option is given and for
|
||
--enable-checking=yes.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-13 Richard Henderson <rth@cygnus.com>
|
||
|
||
* libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
|
||
(__throw): Don't pass the address of a label.
|
||
|
||
* config/ia64/ia64.c (ia64_compute_frame_size): Use
|
||
current_function_is_leaf.
|
||
(ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx
|
||
instead of reg_names[RETURN_ADDRESS_REGNUM].
|
||
(ia64_init_machine_status): Reset return_address_pointer_rtx.
|
||
* config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
|
||
from RETURN_ADDRESS_REGNUM. Update all uses.
|
||
(RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
|
||
zero instead of null on failure.
|
||
(ELIMINABLE_REGS): Add ra->b0 elimination.
|
||
(CAN_ELIMINATE): Update accordingly.
|
||
(INITIAL_ELIMINATION_OFFSET): Likewise.
|
||
(REGISTER_NAMES): Use an illegal assembler name for
|
||
RETURN_ADDRESS_POINTER_REGNUM.
|
||
|
||
2000-06-13 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
|
||
GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
|
||
(REG_CLASS_NAMES): Likewise.
|
||
(REG_CLASS_CONTENTS): Likewise.
|
||
(FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
|
||
(HARD_REGNO_MODE_OK): Remove references to them.
|
||
(REGNO_REG_CLASS): Likewise.
|
||
(REG_CLASS_FROM_LETTER): Likewise.
|
||
(CLASS_MAX_NREGS): Likewise.
|
||
(REGISTER_MOVE_COST): Likewise.
|
||
* config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
|
||
* config/ia64/ia64.md (*): Replace "e" constraints with "f".
|
||
(movqi_internal): Special case moves from zero.
|
||
(movhi_internal, movsi_internal): Likewise.
|
||
(movdi_internal): Likewise. Fill out "f" constraints.
|
||
(movsf_internal): Fill out "r" constraints.
|
||
(movdf_internal): Likewise.
|
||
|
||
2000-06-13 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
|
||
alive before reload.
|
||
|
||
* haifa-sched.c (struct deps): Add in_post_call_group_p.
|
||
(add_dependence): Handle notes between SCHED_GROUP_P insns.
|
||
(remove_dependence): Always define.
|
||
(set_sched_group_p): New.
|
||
(sched_analyze_2): Use it.
|
||
(sched_analyze_insn): Don't special-case naked uses. Look for
|
||
and extend in_post_call_group_p.
|
||
(sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p.
|
||
(init_deps): Clear in_post_call_group_p.
|
||
|
||
2000-06-13 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
|
||
CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
|
||
and hard-coded tests.
|
||
(simplify_set): Likewise.
|
||
(gen_lowpart_for_combine): Likewise.
|
||
* emit-rtl.c (gen_lowpart_common): Likewise.
|
||
* global.c (find_reg): Likewise.
|
||
* local-alloc.c (find_free_reg): Likewise.
|
||
* recog.c (register_operand): Likewise.
|
||
* regclass.c (init_reg_sets_1): Likewise.
|
||
(record_operand_costs, regclass): Likewise.
|
||
* reload.c (push_reload): Likewise.
|
||
* reload1.c (choose_reload_regs): Likewise.
|
||
* flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
|
||
* local-alloc.c (struct qty): Rename changes_size to changes_mode.
|
||
Update all references.
|
||
* regs.h (struct reg_info_def): Likewise.
|
||
(REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
|
||
* tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
|
||
(CLASS_CANNOT_CHANGE_MODE_P): Likewise.
|
||
|
||
* config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
|
||
(CLASS_CANNOT_CHANGE_MODE_P): New.
|
||
* config/mips/mips.h: Likewise.
|
||
* config/pa/pa32-regs.h: Likewise.
|
||
* config/pa/pa64-regs.h: Likewise.
|
||
* config/rs6000/rs6000.h: Likewise.
|
||
* config/sh/sh.h: Likewise.
|
||
* config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
|
||
(CLASS_CANNOT_CHANGE_MODE_P): New.
|
||
* config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
|
||
* config/d30v/d30v.h: Likewise.
|
||
|
||
2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* configure.in: Add AC_TYPE_GETGROUPS test.
|
||
* sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
|
||
* configure: Rebuilt.
|
||
* config.in: Rebuilt.
|
||
|
||
2000-06-13 Richard Henderson <rth@cygnus.com>
|
||
|
||
* explow.c (set_mem_attributes): Do nothing for NULL type.
|
||
|
||
Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
|
||
correctly.
|
||
|
||
2000-06-13 James E. Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
|
||
|
||
Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
|
||
|
||
2000-06-13 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-07 David O'Brien <obrien@FreeBSD.org>
|
||
|
||
* configure.in: Adjust FreeBSD bits to match changes to config.guess.
|
||
We now default to ELF for the i386, and a.out is the special case.
|
||
* configure: Rebuilt.
|
||
|
||
Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* final.c (final_scan_insn): Delete notes between cc0 setter and
|
||
user when restarting from setter.
|
||
|
||
2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
|
||
cast to squelch signed/unsigned warnings.
|
||
|
||
2000-06-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (handle_directive): Print non-NUL-terminated string
|
||
with %.*s.
|
||
|
||
2000-06-12 Michael Meissner <meissner@redhat.com>
|
||
|
||
* ifcvt.c (dead_or_predicable): Don't do conditional execution
|
||
path if the machine needs extra support to do conditional
|
||
execution.
|
||
|
||
Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
|
||
to print the alias set.
|
||
* print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
|
||
|
||
2000-06-12 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* config/float-vax.h: Add GFLOAT defines.
|
||
|
||
Mon Jun 12 9:44:00 2000 Mark Klein <mklein@dis.com>
|
||
|
||
* configure.in: Update tm dependencies for MPE.
|
||
* configure: Rebuilt.
|
||
|
||
2000-06-12 H.J. Lu <hjl@gnu.org>
|
||
|
||
* gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
|
||
|
||
2000-06-12 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* aix41.h (SUBTARGET_SWITCHES): Delete threads.
|
||
(CPP_SPEC): Change mthreads to pthread.
|
||
(LIB_SPEC): Likewise.
|
||
(STARTFILE_SPEC): Likewise.
|
||
* aix43.h (SUBTARGET_SWITCHES): Delete threads.
|
||
(CPP_SPEC): Change mthreads to pthread.
|
||
(LIB_SPEC): Likewise.
|
||
(STARTFILE_SPEC): Likewise.
|
||
* rs6000-protos.h (reg_or_arith_cint_operand): New.
|
||
* rs6000.c (reg_or_arith_cint_operand): New.
|
||
(num_insns_constant_wide): Decorate unsigned constant.
|
||
* rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
|
||
* rs6000.md (addsi3): Use new predicate.
|
||
(subsi3, adddi3, subdi3): Likewise.
|
||
|
||
2000-06-12 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.c (lang_get_alias_set): Fix typo.
|
||
|
||
2000-06-12 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* flow.c (mark_used_regs): Revert last change.
|
||
(life_analysis): Remove PROP_AUTOINC if running after reload.
|
||
(propagate_one_insn): PROP_AUTOINC is always off after reload.
|
||
|
||
2000-06-11 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* flow.c (mark_used_regs): Don't call find_auto_inc after reload
|
||
has run.
|
||
|
||
2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* bb-reorder.c (build_scope_forest): Initialize variable
|
||
`curr_scope'.
|
||
|
||
* calls.c (expand_call): Likewise for variables
|
||
`save_pending_stack_adjust' and `save_stack_pointer_delta'.
|
||
|
||
* i386.c (function_arg_advance, function_arg): Cast to avoid
|
||
signed/unsigned warnings.
|
||
|
||
* i386.h (MEMORY_MOVE_COST): Likewise.
|
||
|
||
* ifcvt.c (cond_exec_process_if_block): Initialize variables
|
||
`else_start' and `else_end'.
|
||
|
||
* libgcc2.h (__eh_alloc, __eh_free): Prototype.
|
||
|
||
* regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
|
||
|
||
2000-06-10 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* Makefile.in (libintl.a): Depend on intl.all.
|
||
|
||
2000-06-09 H.J. Lu (hjl@gnu.org)
|
||
|
||
* Makefile.in (c-parse.o): Also depend on output.h.
|
||
|
||
2000-06-09 Rodney Brown <RodneyBrown@mynd.com>
|
||
|
||
* mcore-protos.h: discards const warning removal.
|
||
* mcore.c: discards const warning removal.
|
||
|
||
2000-06-09 Kazu Hirata <kazu@hxi.com>
|
||
|
||
* config/h8300/lib1funcs.asm: Declare the machine architecture at
|
||
the beginning of the file.
|
||
|
||
2000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* real.h: Add prototype for ldexp.
|
||
|
||
2000-06-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
|
||
it ggc_alloc, drop second argument, never clear returned memory.
|
||
* ggc-common.c (ggc_alloc_string): Use ggc_alloc.
|
||
(ggc_alloc_cleared): New.
|
||
* ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
|
||
ggc_alloc_obj. Remove ggc_alloc macro.
|
||
(ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
|
||
|
||
* rtl.c (rtvec_alloc): Clear the vector always.
|
||
(rtx_alloc): Clear the first word always. Remove dirty
|
||
obstack tricks (this routine is no longer a bottleneck).
|
||
* tree.c (make_node): Clear the new node always.
|
||
(make_tree_vec): Likewise.
|
||
(tree_cons): Clear the common structure always.
|
||
(build1): Likewise; also, clear TREE_COMPLEXITY.
|
||
* gengenrtl.c: Use puts wherever possible. Remove extra
|
||
newlines.
|
||
(gendef): Clear the first word of an RTX in the generator
|
||
function, irrespective of ggc_p. Initialize '0' slots to
|
||
NULL.
|
||
(genlegend): Don't generate obstack_alloc_rtx routine, just a
|
||
thin wrapper macro around obstack_alloc.
|
||
|
||
* stmt.c (expand_fixup): Use ggc_alloc.
|
||
* c-typeck.c (add_pending_init): Use ggc_alloc.
|
||
* emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
|
||
* varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
|
||
const0_rtx when it is created.
|
||
(immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
|
||
we are not in a function.
|
||
|
||
* tree.c (tree_class_check_failed): Make second arg an int.
|
||
* tree.h: Update prototype.
|
||
|
||
2000-06-09 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
|
||
of an error_mark_node.
|
||
|
||
Fri Jun 9 20:35:13 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (asm_output_section_name): bugfix.
|
||
|
||
2000-06-09 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* timevar.def: Add TV_EXPAND.
|
||
* timevar.c (timevar_print): Update timing information.
|
||
* calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
|
||
|
||
* stmt.c (expand_return): Check for error_mark_node.
|
||
|
||
2000-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* configure.in: Also avoid wrapping auto-build.h with IN_GCC.
|
||
|
||
* scan-types.sh (VALUE) Wrap use with double quotes to protect
|
||
variable against filename expansion when it contains "char *".
|
||
|
||
* system.h (SSIZE_MAX): Delete backup definition.
|
||
|
||
* cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
|
||
instead of SSIZE_MAX.
|
||
|
||
2000-06-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* configure.in: Check whether gas supports -relax.
|
||
* configure, config.in: Rebuilt.
|
||
* config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
|
||
(EXTRA_SPECS): Add asm_relax.
|
||
(ASM_SPEC): Add %(asm_relax).
|
||
(TARGET_SWITCHES): Add -mrelax and -mno-relax.
|
||
* config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
|
||
(LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
|
||
(ASM_SPEC): Add %(asm_relax).
|
||
* config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
|
||
* config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
|
||
never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0
|
||
instead of mov, so that gas can further optimize it.
|
||
|
||
2000-06-08 James E. Wilson <wilson@bletchleypark.cygnus.com>
|
||
|
||
* dwarf2out.c (size_of_die, case dw_val_class_const): Use
|
||
size_of_sleb128.
|
||
(value_format, case dw_val_class_const): Use sdata format.
|
||
(output_die): Call output_sleb128.
|
||
|
||
2000-06-08 James E. Wilson <wilson@cygnus.com>
|
||
|
||
* dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
|
||
UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to
|
||
ASM_OUTPUT_DWARF_CONST_DOUBLE.
|
||
(output_die, case dw_val_class_unsigned_const): Correct call to
|
||
ASM_OUTPUT_DWARF_DATA8.
|
||
(output_die, case dw_val_class_long_long): Use
|
||
ASM_OUTPUT_DWARF_CONST_DOUBLE.
|
||
* tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
|
||
pos is zero.
|
||
|
||
* config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
|
||
(output_function_prologue): Fix mispelling.
|
||
(output_function_prologue, output_function_epilogue): Reorder to
|
||
match ia64.c definition order.
|
||
* config/ia64/ia64.c (ia64_expand_prologue): Add comment.
|
||
(ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
|
||
Use r3 instead of r2 for large stack restores.
|
||
(ia64_output_end_prologue): New function.
|
||
(process_set): Emit ".restore sp" for epilogue stack restores.
|
||
* config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
|
||
|
||
2000-06-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dbxout.c (dbxout_type_fields): Don't segfault on fields with
|
||
incomplete types.
|
||
|
||
2000-06-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* frame.c (end_fde_sort): Remove extraneous erratic array test.
|
||
|
||
2000-06-08 Denis Perchine <dyp@perchine.com>
|
||
|
||
* frame.c (start_fde_sort): Don't malloc (0).
|
||
|
||
2000-06-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
|
||
error_mark_node.
|
||
* print-tree.c (print_node): The transparent_union_flag means
|
||
different things for unions and arrays. Do not inspect it
|
||
with TYPE_TRANSPARENT_UNION.
|
||
|
||
2000-06-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
|
||
returned NULL.
|
||
|
||
Wed Jun 7 20:34:33 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (asm_output_section_name): output section
|
||
attributes.
|
||
* config/avr/libgcc.S (.text.libgcc): declare section attributes.
|
||
|
||
2000-06-06 James E. Wilson <wilson@cygnus.com>
|
||
|
||
* frame.h (struct unwind_info_ptr): Collapse version, flags, and length
|
||
fields into header field.
|
||
(IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
|
||
macros to access length, flags, and version info from header field.
|
||
* config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
|
||
* config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
|
||
(__do_global_ctors_aux): Fix caller.
|
||
* config/ia64/frame-ia64.c (get_unwind_record): Change parameter
|
||
prologue_flag to header. Pass to read_P_record.
|
||
(read_P_record): New argument header. Implement P4 format.
|
||
Multiply P7_T_SIZE by 16.
|
||
(execute_one_ia64_descriptor): New static local region_header. Pass to
|
||
get_unwind_record. Copy r to region_header if r is a header record.
|
||
(print_all_records): Likewise.
|
||
(__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
|
||
(__get_personality, __get_except_table): Likewise.
|
||
* config/ia64/ia64.c (process_set): Do not divide offsets by 4.
|
||
|
||
2000-06-06 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* configure.in (AC_C_INLINE): Added.
|
||
* aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
|
||
* configure: Regenerate.
|
||
|
||
2000-06-06 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.h (c_language_kind): New type.
|
||
(c_language): New variab.e
|
||
* c-common.c (lang_get_alias_set): Don't put structures in
|
||
non-zero alias sets in C++.
|
||
* c-decl.c (c_language): Define it.
|
||
* c-lex.c (doing_objc_thang): Remove.
|
||
* c-tree.h (doing_objc_thang): Make it a macro.
|
||
* objc/objc-act.c (lang_decode_option): Set c_language, not
|
||
doing_objc_thang.
|
||
|
||
2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* diagnostic.c (output_maximum_width): Remove.
|
||
(doing_line_wrapping): Tweak.
|
||
(diagnostic_buffer): New object.
|
||
(global_output_buffer): New object.
|
||
(output_destroy_prefix): New function.
|
||
(default_initialize_buffer): Likewise.
|
||
(reshape_diagnostic_buffer): Likewise.
|
||
(initialize_diagnostics): Likewise.
|
||
(output_clear): Tweak.
|
||
(line_wrapper_printf): Adjust call to init_output_buffer.
|
||
(vline_wrapper_message_with_location): Likewise. Use
|
||
output_destroy_prefix.
|
||
(v_message_with_decl): Likewise.
|
||
|
||
* diagnostic.h (struct output_buffer): Constify prefix.
|
||
(init_output_buffer, output_get_prefix): Constify.
|
||
(diagnostic_message_length_per_line): Likewise.
|
||
(reshape_diagnostic_buffer): Declare.
|
||
(default_initialize_buffer): Declare.
|
||
(initialize_diagnostics): Declare.
|
||
(diagnostic_buffer): Declare new obbject.
|
||
|
||
* toplev.c: #include diagnostic.h
|
||
(display_help): Document diagnostic formatting options.
|
||
(decode_f_option): Handle diagnostic formatting options.
|
||
(main): Setup initialization for diagnostic messages outputter.
|
||
|
||
* toplev.h (set_message_length): Remove.
|
||
|
||
* Makefile.in (toplev.o): Depends upon diagnostic.h
|
||
|
||
* invoke.texi : Document diagnostics formatting options.
|
||
|
||
Tue Jun 6 19:25:32 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* configure.in (Make the links): Typo fix : the file that must be
|
||
included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
|
||
* configure: File rebuilt.
|
||
|
||
2000-06-06 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
|
||
(eh_context): Add alloc_mask and alloc_buffer emergency fallback
|
||
space.
|
||
* libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
|
||
emergency eh_context buffer, if malloc fails.
|
||
(__eh_free): Moved from cp/exception.cc. Release to emergency
|
||
eh_context buffer, if appropriate.
|
||
|
||
2000-06-06 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* expr.c (store_expr): Fix typo.
|
||
|
||
2000-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* m68k.c (legitimize_pic_address): Move prototype ...
|
||
|
||
* m68k-protos.h (legitimize_pic_address): ... here.
|
||
|
||
* m68k.md (legitimize_pic_address): Delete prototypes.
|
||
(untyped_call): Invoke GEN_CALL(), not gen_call().
|
||
|
||
* nextstep.c: Include system.h and toplev.h.
|
||
(get_directive_line): Don't prototype.
|
||
(handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
|
||
|
||
* nextstep.h (handle_pragma): Prototype.
|
||
(SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of
|
||
objc_section_init ...
|
||
(EXTRA_SECTION_FUNCTIONS): ... here.
|
||
|
||
Tue Jun 6 08:17:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* sdbout.c (struct sdb_file): NAME now const.
|
||
(sdbout_init): input_file_name now const.
|
||
(sdbout_start_new_source_file): FILENAME now const.
|
||
* sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
|
||
|
||
2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* c-typeck.c (build_conditional_expr): Handle complex data types.
|
||
|
||
2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* explow.c (maybe_set_unchanging): New function, broken out from...
|
||
(set_mem_attributes): Here.
|
||
* expr.h: Declare it.
|
||
* stmt.c (expand_decl): Call it.
|
||
|
||
2000-06-05 Richard Henderson <rth@cygnus.com>
|
||
|
||
* reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
|
||
while looking for a register to inherit from.
|
||
|
||
2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* Makefile.in (libgcc.ready): Lose.
|
||
(libgcc.mk): Just use mv, not move-if-change.
|
||
(LIBGCC_DEPS): New macro.
|
||
(libgcc.a): Use it.
|
||
(stmp-multilib): Likewise.
|
||
* mklibgcc.in (stmp-dirs): New target. Make everything depend on
|
||
it rather than the directories themselves.
|
||
(LIB2ADD): Depend on the list file rather than 'force'.
|
||
|
||
* fold-const.c (fold, case COND_EXPR): Elide conversion between
|
||
cv-qualified versions of types.
|
||
|
||
Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* config/sparc/sparc.c (short_branch): Correct error in range
|
||
computation.
|
||
|
||
2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* fixinc/inclhack.def: New include hacks for ultrix.
|
||
* (nested_ultrix): Replaced by ultrix_nested_svc.
|
||
* (ultrix_atof_param): test_text string added.
|
||
* (ultrix_ifdef): Modified select string.
|
||
|
||
2000-06-05 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* objc/objc-act.c (generate_method_descriptors): Register
|
||
objc_method_prototype_template as a GC root.
|
||
(comp_method_with_proto): Register function_type as a GC root.
|
||
(comp_proto_with_proto): Replace function_type1 and
|
||
function_type2 with a two-element array; register it as a GC root.
|
||
|
||
(generate_protocols, build_protocol_initializer,
|
||
generate_protocol_list, build_category_initializer,
|
||
build_shared_structure_initializer): Do not cache cast_type
|
||
and/or cast_type2.
|
||
|
||
2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* function.c (assign_parms): Add missing argument to set_mem_attributes
|
||
call.
|
||
|
||
2000-06-05 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h (VOID_TYPE_P): New macro.
|
||
(COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
|
||
* c-decl.c (grokdeclarator): Use VOID_TYPE_P.
|
||
(get_parm_info): Likewise.
|
||
(store_parm_decls): Likewise.
|
||
(combine_parm_decls): Likewise.
|
||
(finish_function): Likewise.
|
||
* c-typeck.c (build_function_call): Likewise.
|
||
(build_binary_op): Likewise.
|
||
(build_conditional_expr): Likewise.
|
||
(internal_build_compound_expr): Likewise.
|
||
(convert_for_assignment): Likewise.
|
||
* stmt.c (expend_expr_stmt): Likewise.
|
||
(warn_if_unused_value): Likewise.
|
||
(expand_return): Likewise.
|
||
* c-parse.in (primary): Likewise.
|
||
* c-parse.y, c-parse.c, c-parse.h: Regenerate.
|
||
* objc/objc-parse.y, objc/objc-parse.c: Regenerate.
|
||
|
||
Mon Jun 5 06:46:28 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c (get_alias_set): If compnent is addressable, use alias
|
||
set of component.
|
||
* c-decl.c (init_decl_processing): Don't call record_component_aliases.
|
||
(grokdeclarator): Likewise.
|
||
* c-typeck.c (common_type): Likewise.
|
||
|
||
2000-06-04 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* Makefile.in (OBJS): Remove dyn_string.o
|
||
(dyn-string.o): Delete rule.
|
||
* dyn-string.c: Delete file
|
||
* dyn-string.h: Likewise.
|
||
|
||
2000-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (intl.*): Honor non-zero exit codes in the intl
|
||
subdir.
|
||
|
||
2000-06-03 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* alias.c (record_component_aliases): Don't inspect
|
||
DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
|
||
|
||
Sat Jun 3 19:05:30 2000 Michael Meissner <meissner@redhat.com>
|
||
|
||
* ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
|
||
it with the pattern to do machine dependent work.
|
||
(cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
|
||
use it to modify the true/false tests used in conditional
|
||
execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
|
||
defined, invoke them if the conversion to conditional execution
|
||
was successful or not.
|
||
|
||
* tm.texi (IFCVT_MODIFY_TESTS): Document.
|
||
(IFCVT_MODIFY_INSN): Ditto.
|
||
(IFCVT_MODIFY_FINAL): Ditto.
|
||
(IFCVT_MODIFY_CANCEL): Ditto.
|
||
|
||
Sat Jun 3 15:26:13 2000 Matt Kraai <kraai@alumni.carnegiemellon.edu>
|
||
|
||
* toplev.c (main): Fix misspellings of possibility and language.
|
||
|
||
2000-06-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alias.c (record_alias_subset): Initialize has_zero_child in the
|
||
superset.
|
||
|
||
2000-06-03 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* arm.md (untyped_call): Use GEN_CALL macro.
|
||
|
||
2000-06-02 Pekka Nikander <pnr@teldanex.tcm.hut.fi>
|
||
|
||
* Makefile.in: Use $(MAKE) not "make"
|
||
|
||
Fri Jun 2 19:31:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c (struct alias_set_entry): New field has_zero_child.
|
||
(mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
|
||
(get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
|
||
do nothing.
|
||
Call record_component_aliases for aggregate types.
|
||
(record_alias_subset): Set has_zero_child.
|
||
(record_component_aliases, case ARRAY_TYPE): Do nothing if
|
||
TYPE_NONALIASES_COMPONENT.
|
||
(record_component_aliases, case RECORD_TYPE): Test
|
||
DECL_NONADDRESSABLE_P.
|
||
* c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
|
||
of TREE_ADDRESSABLE.
|
||
* calls.c (initialize_argument_information): Only test
|
||
TYPE_TRANSPARENT_UNION for UNION_TYPE.
|
||
* function.c (assign_parms): Likewise.
|
||
* integrate.c (function_cannot_inline_p): Likewise.
|
||
* stor-layout.c (finish_record_layout): Don't call
|
||
record_component_aliases.
|
||
* tree.h (struct tree_int_cst): Use struct tree_common.
|
||
(struct tree_real_cst, struct tree_string): Likewise.
|
||
(struct tree_complex, struct tree_identifier): Likewise.
|
||
(struct tree_list, struct tree_vec, struct tree_exp): Likewise.
|
||
(struct tree_block, struct tree_type, struct tree_decl): Likewise.
|
||
(TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
|
||
(TYPE_NONALIASES_COMPONENT): New macro.
|
||
(TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
|
||
(DECL_NONADDRESSABLE_P): New macro.
|
||
(struct tree_decl): Reorder bits for clarity of how many left;
|
||
add non_adressable.
|
||
|
||
2000-06-02 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
|
||
* mklibgcc.in (force): New target.
|
||
Make LIB2ADD stuff depend on it.
|
||
|
||
2000-06-02 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alias.c (lang_get_alias_set): Remove.
|
||
(get_alias_set): Call it directly, not indirectly.
|
||
* c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
|
||
* c-common.h (c_get_alias_set): Don't declare.
|
||
* c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
|
||
* expr.h (lang_get_alias_set): Declare as function, not pointer.
|
||
|
||
2000-06-02 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/server.c(sig_handler): resume closing server on SIGPIPE
|
||
(server_setup): define the server's master pid
|
||
(close_server): actually do the deed IFF we are the server's master
|
||
|
||
2000-06-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* c-common.c (c_get_alias_set): Check whether signed_type did not
|
||
return its argument before calling get_alias_set on the result.
|
||
|
||
2000-06-02 Andrew MacLeod <amacleod@cygnus.com>
|
||
|
||
* expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
|
||
|
||
Fri Jun 2 00:22:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
|
||
(CONDITIONAL_REGISTER_USAGE): Mac registers are call used
|
||
for TARGET_NOMACSAVE.
|
||
(NOMACSAVE_BIT): Define.
|
||
(TARGET_NOMACSAVE): Define.
|
||
(TARGET_SWITCHES): Add "nomacsave".
|
||
|
||
2000-06-02 Toshiyasu Morita <toshi.morita@sega.com>
|
||
|
||
* sh.md (untyped_call): Remove excess parameters
|
||
|
||
2000-06-01 Loren J. Rittle <ljrittle@acm.org>
|
||
|
||
* fixinc/inclhack.def (osf_namespace_a): Relax expression to
|
||
match that used before the conversion to c_fix style.
|
||
* fixinc/fixincl.x: regenerate
|
||
|
||
2000-06-01 Stan Cox <scox@cygnus.com>
|
||
|
||
* varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
|
||
macro argument typo.
|
||
|
||
2000-06-01 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve
|
||
error message.
|
||
* cpplib.c (parse_include): Remove support for VAX-C
|
||
"#include starlet" misfeature.
|
||
|
||
2000-05-31 Laurynas Biveinis <lauras@softhome.net>
|
||
|
||
* cppfiles.c: conditionally define O_BINARY.
|
||
(open_include_file): pass O_BINARY to open().
|
||
|
||
2000-06-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i960.c (i960_br_predict_opcode): Remove.
|
||
(i960_print_operand) [+]: Emit branch prediction hints.
|
||
(i960_function_arg): Return early for VOIDmode.
|
||
(i960_round_align): Return early for incomplete types.
|
||
* i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
|
||
* i960.md (all conditional branches): Add "%+".
|
||
|
||
Thu Jun 1 12:24:21 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c (get_alias_set): Don't call language-specific routine more
|
||
than is needed and clean up code a bit.
|
||
* c-common.c (c_get_alias_set): All references whose type
|
||
is char get alias set 0, but character types need not.
|
||
* varasm.c (make_function_rtl): Don't call set_mem_attributes.
|
||
(make_decl_rtl): Don't call it for FUNCTION_DECL.
|
||
|
||
2000-06-01 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/tests/base/...: new base result files
|
||
|
||
Thu Jun 1 09:37:35 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/i386/i386.c (ix86_use_fcomi_compare): Make global.
|
||
* config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
|
||
* config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
|
||
will use FCOMI.
|
||
|
||
2000-06-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
|
||
|
||
* c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (sdata_symbolic_operand): Consider small
|
||
CONSTANT_POOL_ADDRESS_P addresses for .sdata.
|
||
* config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
|
||
* config/ia64/ia64.c (ia64_expand_prediction): Move code ...
|
||
(ia64_print_operand) [+]: ... here. Use current_output_insn.
|
||
* config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
|
||
* config/ia64/ia64.md (all branch/call patterns): Use %+.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (merge_if_block): Be prepared for JOIN to have no
|
||
remaining edges.
|
||
(find_if_block): Allow THEN with no outgoing edges.
|
||
* flow.c (merge_blocks_nomove): Remove a barrier not following
|
||
a jump as well.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (propagate_block): Move initialization of mem_set_list ...
|
||
(init_propagate_block_info): ... here. Also track blocks with
|
||
no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (jump_optimize_1): Revert 05-18 change.
|
||
|
||
2000-05-31 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* invoke.texi: Remove documentation for -fguiding-decls.
|
||
|
||
2000-05-31 Richard Henderson <rth@cygnus.com>
|
||
|
||
* configure.in: Fix typo last change.
|
||
|
||
2000-05-31 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* configure.in (enable-nls): Enable if build == host, i.e. when
|
||
not building a canadian cross compiler.
|
||
(enable-maintainer-mode): Added for use with i18n.
|
||
* aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
|
||
cross section of ALL_LINGUAS and LINGUAS.
|
||
* configure: Rebuild.
|
||
|
||
2000-05-31 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/check.tpl: rework to use test result tree
|
||
* fixinc/Makefile.in: change invocation of check script
|
||
* fixinc/check.diff: No longer needed
|
||
* fixinc/fixincl.x: regenerate
|
||
* fixinc/inclhack.def: add new tests
|
||
* fixinc/tests/base/arch/i960/archI960.h: New test result
|
||
* fixinc/tests/base/curses.h: modified test result
|
||
* fixinc/tests/base/stdio.h: ditto
|
||
* fixinc/tests/base/time.h: ditto
|
||
* fixinc/tests/base/sys/asm.h: ditto
|
||
* fixinc/tests/base/sys/stat.h: ditto
|
||
* fixinc/tests/base/sys/wait.h: ditto
|
||
|
||
Wed May 31 13:17:20 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* except.c (clear_function_eh_region): Do not free NULL.
|
||
|
||
Wed May 31 08:07:52 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
|
||
* alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
|
||
(REG_BASE_VALUE): Remove unneeded cast to unsigned.
|
||
(get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
|
||
(find_base_decl): New function, from c_find_base_decl in c-common.c.
|
||
(new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
|
||
(get_alias_set): Likewise.
|
||
Major rework to do more things and allow language-specific code
|
||
to just handle special-cases.
|
||
(record_alias_subset): Args are HOST_WIDE_INT.
|
||
(record_component_alias): Local vars are HOST_WIDE_INT.
|
||
Don't handle COMPLEX_EXPR.
|
||
(get_varargs_alias_set): Moved from builtins.c.
|
||
(get_frame_alias_set): New function.
|
||
* builtins.c (expand_builtin_return_address): Use frame alias set.
|
||
(expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
|
||
for setjmp buffer.
|
||
(get_memory_rtx): Rework to use set_mem_attributes.
|
||
(get_varargs_alias_set): Deleted from here.
|
||
* c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
|
||
(c_find_base_decl): Deleted from here.
|
||
(c_get_alias_set): Remove many cases and rework to just handle
|
||
C-specific cases.
|
||
* c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
|
||
* c-decl.c (rtl.h, expr.h): Now included.
|
||
(init_decl_processing): Call record_component_aliases on array types.
|
||
(grokdeclarator): Likewise.
|
||
Set TREE_ADDRESSABLE for all fields that are not bitfields.
|
||
* c-typeck.c (common_type): Call record_component_aliases for array.
|
||
* caller-save.c (setup_save_areas): Rework register loop for unsigned.
|
||
Set all save areas to the frame alias set.
|
||
* calls.c (initialie_argument_information): Call set_mem_attributes.
|
||
(compute_argument_addresses, expand_call): Likewise.
|
||
* explow.c (set_mem_attributes): New function.
|
||
(stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
|
||
* expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
|
||
LEN and OFFSET now HOST_WIDE_INT.
|
||
(clear_by_pieces): Similar changes.
|
||
(move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
|
||
(move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
|
||
(move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
|
||
(clear_by_pieces_1): Likewise.
|
||
(emit_push_insn): Call set_mem_attributes.
|
||
(expand_expr, case INDIRECT_REF): Likewise.
|
||
(expand_expr, case VAR_DECL): Call change_address.
|
||
* expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
|
||
tree_low_cst.
|
||
(get_varargs_alias_set, get_frame_alias_set): New decls.
|
||
(record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
|
||
(new_alias_set, set_mem_attributes): Likewse.
|
||
* function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
|
||
(assign_stack_temp_for_type): Likewise.
|
||
Can split slot even if alias set since can copy.
|
||
Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
|
||
(assign_temp): Use host_integerp and tree_low_cst.
|
||
(put_var_into_stack): Properly handle SAVE_EXPR.
|
||
(put_addressof_into_stack): Likewise.
|
||
(assign_parms): Call set_mem_attributes.
|
||
Delete #if 0 code.
|
||
(fix_lexical_address): Put reference to chain into frame alias set.
|
||
(expand_function_start): Call set_mem_attributes.
|
||
* integrate.c (expand_inline_function): Likewise.
|
||
* recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
|
||
* regmove.c (try_apply_stack_adjustment): Likewise.
|
||
* reload.c (push_reload, make_memloc): Likewise.
|
||
* reload1.c (alter_reg): Make alias sets for spilled pseudos.
|
||
* rtl.def (MEM): Update comment.
|
||
* rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
|
||
(move_by_pieces): Change length to HOST_WIDE_INT.
|
||
(record_base_value, record_alias_subset): Delete from here.
|
||
* stmt.c (expand_decl): Call set_mem_attributes.
|
||
* stor-layout.c (finish_record_layout): Call record_component_aliases.i
|
||
* toplev.c (compile_file): Call init_alias_once earlier.
|
||
* tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
|
||
from here: now in alias.c.
|
||
* tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
|
||
(struct tree_decl): Likewise.
|
||
(get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
|
||
* varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
|
||
(output_constant_def, force_const_mem): Likewise.
|
||
|
||
* flow.c (propagate_block): If block has no successors, stores to
|
||
frame are dead if not used.
|
||
|
||
2000-05-31 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* stmt (expand_end_case): Reorder conversion sequence for jump
|
||
table to avoid extra truncations.
|
||
|
||
Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
|
||
in the block is more than just a simple conditional branch.
|
||
(noce_process_if_block): Similarly.
|
||
|
||
Tue May 30 22:25:57 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* optabs.c (prepare_float_lib_cmp): Protect *px and *py from
|
||
queue.
|
||
|
||
2000-05-30 Michael Meissner <meissner@redhat.com>
|
||
|
||
* dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
|
||
instructions. Treat LO_SUM operations as loading the full integer
|
||
constant.
|
||
|
||
2000-05-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (get_pos_from_mask): Test exact_log2 result as signed.
|
||
|
||
2000-05-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
|
||
|
||
2000-05-30 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/tests/*: Added expected result files for fixinc's make check
|
||
* fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
|
||
|
||
2000-05-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.md (*setne_internal): Use match_operator
|
||
instead of working down from insn.
|
||
|
||
2000-05-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* invoke.texi (-Wtraditional): Update WRT function macros.
|
||
|
||
Tue May 30 09:57:32 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* except.c (free_exception_table): Do not free NULL.
|
||
|
||
2000-05-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (do_if): Don't save and restore only_seen_white here.
|
||
* cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
|
||
and skipping here.
|
||
|
||
2000-05-29 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* flow.c (mark_used_reg): If a register is unconditionally live,
|
||
remove any conditional death information.
|
||
|
||
2000-05-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* final.c (current_output_insn): New.
|
||
(final_scan_insn): Set it.
|
||
* output.h: Declare it.
|
||
|
||
2000-05-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* stor-layout.c (finalize_record_size): Fix typo.
|
||
|
||
* jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
|
||
if nlabel is null.
|
||
|
||
2000-05-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (cpp_reader): Remove if_stack. Change
|
||
potential_control_macro to a cpp_hashnode *. Add skipping flag.
|
||
* cpphash.h (struct ihash): Change control_macro to a
|
||
cpp_hashnode * and shorten name to cmacro.
|
||
Add NEVER_REINCLUDE constant.
|
||
|
||
* cppfiles.c (redundant_include_p): Drop cpp_reader argument.
|
||
Examine the cmacro node directly, no need to call cpp_defined.
|
||
(_cpp_execute_include, read_include_file): Set cmacro to
|
||
NEVER_REINCLUDE, not U"".
|
||
* cpplex.c (cpp_push_buffer): Don't set new->if_stack.
|
||
(cpp_get_token): If pfile->skipping is true, discard text and
|
||
keep scanning until we hit a directive; don't expand macros.
|
||
|
||
* cpplib.c (struct if_stack): Remove if_succeeded, add
|
||
was_skipping. Change control_macro to a cpp_hashnode * and
|
||
shorten name to cmacro. Remove typedef IF_STACK.
|
||
(parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
|
||
(conditional_skip, skip_if_group,
|
||
consider_directive_while_skipping): Delete.
|
||
(push_conditional): New.
|
||
(_cpp_handle_directive): Don't process directives other than
|
||
conditionals if we are skipping.
|
||
|
||
(do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
|
||
Update to new scheme.
|
||
(validate_else): Skip rest of line here, unconditionally.
|
||
(_cpp_unwind_if_stack): The stack is per-buffer. Force
|
||
pfile->skipping off.
|
||
|
||
(all): Remove `scare quotes' from error messages.
|
||
|
||
2000-05-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* function.c (emit_return_into_block): New line_note arg; emit it.
|
||
(thread_prologue_and_epilogue_insns): Attempt to locate a line note
|
||
for the close brace to accompany HAVE_return. Move all line notes
|
||
following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
|
||
|
||
2000-05-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* longlong.h [__alpha] (count_leading_zeros): New.
|
||
(count_trailing_zeros): New.
|
||
(COUNT_LEADING_ZEROS_0): New.
|
||
|
||
* config/alpha/alpha.c (alpha_zero_comparison_operator): New.
|
||
(alpha_split_conditional_move): New.
|
||
* config/alpha/alpha-protos.h: Prototype them.
|
||
* config/alpha/alpha.h (PREDICATE_CODES): Update.
|
||
(CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
|
||
* config/alpha/alpha.md: Update ffs cix commentary.
|
||
(*ze_and_ne): New.
|
||
(*nabssf2, *nabsdf2): New.
|
||
(*mov[qhsd]icc_internal): Use add_operand.
|
||
(if_then_else constant splitters): New.
|
||
(*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
|
||
(*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
|
||
|
||
2000-05-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (force_to_mode) [MINUS]: Convert subtraction from
|
||
a constant to NEG or NOT when conditions allow.
|
||
|
||
* combine.c (combine_simplify_rtx): Don't create an if_then_else
|
||
unless both args are general_operand. Don't canonicalize plus
|
||
to ior unless it helps.
|
||
|
||
* toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
|
||
instead track register_life_up_to_date. Toggle no_new_pseudos
|
||
around if_convert.
|
||
|
||
2000-05-28 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
|
||
so output_operand doesn't see them.
|
||
|
||
Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* lcm.c (make_preds_opaque): Fix comment.
|
||
(optimize_mode_switching): Use NORMAL_MODE instead of
|
||
MODE_USES_IN_EXIT_BLOCK. Change leftover instance of
|
||
FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE.
|
||
Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
|
||
* tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
|
||
(MODE_USES_IN_EXIT_BLOCK): Delete.
|
||
(MODE_AT_ENTRY) Rename to NORMAL_MODE.
|
||
* sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
|
||
(MODE_AT_ENTRY): Rename to NORMAL_MODE.
|
||
(MODE_NEEDED): Don't look for USE.
|
||
(EPILOGUE_USES): Define.
|
||
|
||
Sun May 28 23:26:59 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* mklibgcc.in (all): Variable initialised to `libgcc'.
|
||
|
||
2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* toplev.h (skip_leading_substring): New macro.
|
||
* toplev.c (decode_f_option): Use skip_leading_substring instead
|
||
of strncmp.
|
||
(decode_W_option): Likewise.
|
||
|
||
2000-05-28 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
|
||
modify reg_names.
|
||
|
||
2000-05-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* regclass.c (record_operand_costs): Protect reg_changes_size
|
||
with CLASS_CANNOT_CHANGE_SIZE.
|
||
|
||
* loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
|
||
|
||
2000-05-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* function.c (diddle_return_value): A pcc-style struct return
|
||
returns a pointer.
|
||
|
||
2000-05-27 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c: Read files in, using mmap if possible, then
|
||
prescan them separately.
|
||
(read_file, read_with_read): New functions.
|
||
* cpplex.c: Don't define UCHAR_MAX.
|
||
(_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read
|
||
the file here.
|
||
|
||
* cppinit.c (handle_option): Automatically define __cplusplus,
|
||
__OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
|
||
the respective -lang switch.
|
||
|
||
* cpphash.h (enum node_type, struct hashnode, _cpp_lookup
|
||
prototype): Move to...
|
||
* cpplib.h: ... here. Rename struct hashnode to struct
|
||
cpp_hashnode and give it a typedef. Rename _cpp_lookup to
|
||
cpp_lookup. Add 'fe_value' slot, a union tree_node *.
|
||
|
||
2000-05-27 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md (movsi): Constify 'name'.
|
||
|
||
* regclass.c [CLASS_CANNOT_CHANGE_SIZE]
|
||
(class_can_change_size): New variable.
|
||
(reg_changes_size): New variable.
|
||
(init_reg_sets_1): Initialise class_can_change_size.
|
||
(record_operand_costs): Remove subreg_changes_size.
|
||
Don't pass it around. Instead update reg_changes_size.
|
||
(regclass): Initialise and free reg_changes_size. If a register
|
||
changes size, don't preference it to a class that contains
|
||
registers that can't change size.
|
||
(record_reg_classes): Don't look at subreg_changes_size.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* print-rtl.c (reg_names): Remove const.
|
||
* regclass.c (reg_names): Likewise.
|
||
* regs.h (reg_names): Likewise.
|
||
* hard-reg-set.h (reg_names): Likewise.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (alpha_does_function_need_gp): Test
|
||
TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
|
||
(alpha_expand_prologue): Emit prologue_mcount if needed.
|
||
* config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
|
||
* config/alpha/alpha.md (prologue_mcount): New.
|
||
* config/alpha/linux.h (FUNCTION_PROFILER): Remove.
|
||
(TARGET_PROFILING_NEEDS_GP): Undef before redefining.
|
||
* config/alpha/netbsd.h: Likewise.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
|
||
change to config/elfos.h.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (resource.o): Depend on except.h.
|
||
* except.h (output_exception_table_data): Prototype.
|
||
* genconfig.c (gen_peephole2): Prototype.
|
||
* genemit.c (main): Include ggc.h.
|
||
* genoutput.c: Revert parts of last change: include errors.h
|
||
(main): Set progname.
|
||
* recog.c: Include hard-reg-set.h before recog.h.
|
||
* resource.c: Include except.h.
|
||
|
||
* config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
|
||
with RTX_CODE.
|
||
(alpha_write_linkage): Protect with BUFSIZ.
|
||
(alpha_need_linkage): Update prototype.
|
||
* config/alpha/alpha.c (function_arg): Move VMS code here.
|
||
(alpha_links_base): Remove.
|
||
(alpha_links): New.
|
||
(mark_alpha_links_node, mark_alpha_links): New.
|
||
(alpha_write_one_linkage): New.
|
||
(alpha_need_linkage): Use a splay tree. Build the linkage symbol.
|
||
(alpha_write_linkage): Use splay_tree_foreach.
|
||
* config/alpha/alpha.md (call_vms): Use alpha_need_linkage
|
||
to get the linkage symbol.
|
||
(call_value_vms): Likewise.
|
||
* config/alpha/elf.h (output_file_directive): Remove decl.
|
||
(ctors_section, dtors_section): Prototype.
|
||
(sbss_section, sdata_section): Prototype.
|
||
* config/alpha/vms.h (FUNCTION_ARG): Remove.
|
||
(readonly_section, link_section, literals_section): Prototype.
|
||
(ctors_section, dtors_section): Prototype.
|
||
(vms_valid_decl_attribute_p): Remove decl.
|
||
(alpha_arg_type, alpha_arg_info_reg_val): Likewise.
|
||
|
||
2000-05-27 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* reload.c (get_secondary_mem): Don't widen floating-point modes.
|
||
|
||
* combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
|
||
substituting the REG in a (subreg:X (reg:Y ...)).
|
||
|
||
2000-05-28 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (_cpp_lex_line): Merge vertical space. Flag
|
||
first token of a line BOL. Update EOF code for this.
|
||
Remove illegal directive check - it appears in the (not
|
||
yet committed) caller.
|
||
* cpplib.h (BOL): New flag.
|
||
|
||
2000-05-28 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (_cpp_init_toklist): No comment space to initialise.
|
||
(_cpp_free_toklist): No comment space to free.
|
||
(expand_comment_space): Remove.
|
||
(save_comment_space): Place the comment in the current token and
|
||
not in a separate comment space.
|
||
(_cpp_lex_line): Save comments during plain code and #define
|
||
directives only.
|
||
* cpplib.h (struct _cpp_toklist): Remove comment space.
|
||
|
||
2000-05-28 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c (parse_assertion): Supply extra argument to
|
||
_cpp_init_toklist.
|
||
* cpplib.c (do_assert, do_unassert): Similarly.
|
||
* cpphash.h (_cpp_init_toklist) Update.
|
||
(_cpp_expand_token_space): New.
|
||
(DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
|
||
* cpplex.c (_cpp_init_toklist): New argument.
|
||
(parse_string2): New argument multiline_ok.
|
||
(spell_token): Take a const cpp_token *.
|
||
(INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used.
|
||
(SPELL_ macros): Replace with enum.
|
||
(expand_token_space): Replace with _cpp_expand_token_space.
|
||
Take COUNT argument.
|
||
(IS_DIRECTIVE): Update.
|
||
(_cpp_lex_line): Update token structure before parsing number.
|
||
Don't assume start at beginning of token list.
|
||
(save_comment): Use INIT_TOKEN_NAME.
|
||
|
||
2000-05-27 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
|
||
-Wmissing-prototypes.
|
||
* configure: Regenerate.
|
||
* gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
|
||
|
||
* builtins.c, calls.c: Change all instances of gen_call_* or
|
||
gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
|
||
* calls.c (struct_value_size_rtx): Separate definition from
|
||
initialization to avoid unused variable warning.
|
||
|
||
* genflags.c (gen_macro): New function.
|
||
(gen_proto): Call it for gen_call_* and gen_sibcall_*.
|
||
(gen_nonproto): Delete.
|
||
(gen_insn): Put all insns on the same obstack.
|
||
(main): Generate prototypes for everything unconditionally.
|
||
|
||
* configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented
|
||
out check for wchar_t.
|
||
* acconfig.h: Add template for ssize_t. Remove @TOP@.
|
||
* system.h: Add infrastructure for defining missing
|
||
TYPE_MAX/TYPE_MIN macros. Use it to provide fallback
|
||
definitions of UCHAR_MAX and SSIZE_MAX.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
* Makefile.in (libgcc2.ready): Rename to libgcc.ready.
|
||
Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
|
||
headers.
|
||
(clean): No need to delete libgcc1.a, libgcc1-asm.a,
|
||
libgcc2.a, or libgcc1.null.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (recog.o): Don't depend on resource.h.
|
||
* recog.c: Don't include resource.h.
|
||
(recog_last_allowed_insn): Remove.
|
||
(recog_next_insn): Remove.
|
||
(struct peep2_insn_data): New.
|
||
(peep2_insn_data, peep2_current): New.
|
||
(peep2_next_insn): New.
|
||
(peep2_regno_dead_p, peep2_reg_dead_p): New.
|
||
(peep2_find_free_register): New.
|
||
(peephole2_optimize): Track life information by insn as we go.
|
||
* recog.h: Update declarations.
|
||
* resource.c (find_free_register, reg_dead_p): Remove.
|
||
* resource.h: Remove their declarations.
|
||
* toplev.c: Include hard-reg-set.h before recog.h.
|
||
|
||
* genconfig.c (max_insns_per_peep2): New.
|
||
(gen_peephole2): New.
|
||
(main): Call it.
|
||
* genemit.c (output_peephole2_scratches): Generate calls to
|
||
peep2_find_free_register; adjust surrounding code.
|
||
(main): Have insn-emit.c include hard-reg-set.h before recog.h.
|
||
* genrecog.c (change_state): Don't track last_insn.
|
||
(write_action): Write into *_pmatch_len before accepting.
|
||
(write_tree): Adjust peephole2_insns and subroutines to match.
|
||
|
||
* config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
|
||
|
||
* config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
|
||
(hard_int_register_operand): New.
|
||
* config/alpha/alpha-protos.h: Declare it.
|
||
* config/alpha/alpha.h (PREDICATE_CODES): Update.
|
||
* config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
|
||
as needed; use peep2_reg_dead_p instead of dead_or_set_p.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* function.c (thread_prologue_epilogue_insns): Don't move the
|
||
line note at the head of the chain. Only force a lineno note
|
||
before the end of block 0.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* gensupport.c (collect_insn_data): Record the maximum number
|
||
of alternatives, not the last seen.
|
||
|
||
* genoutput.c: Don't include errors.h.
|
||
(struct data): Add lineno member.
|
||
(have_error): New.
|
||
(scan_operands): Use message_with_line instead of error.
|
||
(validate_insn_alternatives): Likewise.
|
||
(gen_insn): Accept and store the pattern's line number.
|
||
(gen_peephole, gen_expand, gen_split): Likewise.
|
||
(main): Don't set progname. Pass line_no to gen_foo.
|
||
|
||
2000-05-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/d30v/d30v.c (d30v_print_operand): Handle ':'.
|
||
* config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
|
||
* config/d30v/d30v.md (attr predicable): New.
|
||
(all insn patterns): Mark non-predicable patterns; use %: on the rest.
|
||
(andsi3*): Unify into one pattern.
|
||
(iorsi3*, xorsi3*): Likewise.
|
||
(peephole2 patterns): Use peep2_reg_dead_p; verify not a
|
||
conditional return.
|
||
(old cond_exec patterns): Remove.
|
||
(define_cond_exec): New.
|
||
|
||
Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.h (TREE_CODE_LENGTH): New macro.
|
||
* c-common.c (c_find_base_decl): Use it.
|
||
* expr.c (safe_from_p): Likewise.
|
||
* print-tree.c (print_node): Likewise.
|
||
* tree.c (make_node, copy_node, get_identifier): Likewie.
|
||
(first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
|
||
(build, build_nt, build_parse_node, simple_cst_equal): Likewise.
|
||
* fold-const.c (make_range): Likewise.
|
||
(fold): Likewise; also use first_rtl_op.
|
||
* c-iterate.c (collect_iterators): Use first_rtl_op.
|
||
* calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
|
||
Use IS_EXPR_CODE_CLASS.
|
||
(preexpand_calls): Likewise.
|
||
* ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
|
||
and TREE_CODE_LENGTH.
|
||
* stmt.c (warn_if_unused_value): If no operands, no unused value.
|
||
|
||
2000-05-26 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
|
||
than '%1(%*)'.
|
||
(movdi_internal64): Likewise.
|
||
|
||
* config/rs6000/rs6000.md: Correct order of operands for DImode
|
||
boolean patterns.
|
||
|
||
* config/rs6000/rs6000.c (boolean_or_operator): New function.
|
||
* config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
|
||
* config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
|
||
* config/rs6000/rs6000.md: Use boolean_or_operator instead of
|
||
boolean_operator for the boolean patterns without NOTs.
|
||
|
||
* config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
|
||
from reg_or_u_cint_operand. Change comment and behaviour.
|
||
(logical_operand): Clean up, add assertion.
|
||
(non_logical_cint_operand): Also check for
|
||
reg_or_logical_cint_operand.
|
||
* config/rs6000/rs6000.h (PREDICATE_CODES): Update.
|
||
* config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
|
||
in the expander.
|
||
(xorsi3): Likewise.
|
||
(iordi3): Likewise.
|
||
(xordi3): Likewise.
|
||
|
||
2000-05-26 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (struct record_layout_info): Rename to (struct
|
||
record_layout_info_s).
|
||
* stor-layout.c (start_record_layout): Replace
|
||
`record_layout_info' with `record_layout_info_s'.
|
||
|
||
2000-05-26 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* flow.c (find_label_refs): New function.
|
||
(find_basic_blocks_1): Call it for each alternative of a call
|
||
placeholder.
|
||
|
||
2000-05-26 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
|
||
of get_pc.
|
||
|
||
2000-05-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (alpha_comparison_operator): Don't be
|
||
so strict about DImode.
|
||
(alpha_swapped_comparison_operator): Likewise.
|
||
* config/alpha/alpha.md (*setne_internal): Name it. Allow
|
||
any integer output mode.
|
||
(*setcc_internal): Likewise.
|
||
(*setcc_swapped_internal): Likewise.
|
||
(*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
|
||
(*mov[qhs]icc_internal): New.
|
||
(*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
|
||
|
||
2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
|
||
|
||
2000-05-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* bb-reorder.c (reorder_block_def): Reorder elements for size.
|
||
Remove add_jump; add next; replace flags with visited.
|
||
(rbd_init): Remove.
|
||
(REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
|
||
(REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
|
||
(REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
|
||
(REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
|
||
(RBI): New.
|
||
(reorder_index, reorder_last_visited): Remove.
|
||
(skip_insns_after_block): Rewrite to use a switch.
|
||
(get_common_dest): Remove.
|
||
(chain_reorder_blocks): Remove.
|
||
(record_effective_endpoints): Split out from reorder_basic_blocks.
|
||
(make_reorder_chain): Likewise. Loop until all blocks are placed.
|
||
(make_reorder_chain_1): Renamed from old make_reorder_chain.
|
||
Only construct the reorder chain, do not move insns. Try harder
|
||
to tail recurse.
|
||
(label_for_bb, emit_jump_to_block_after): New.
|
||
(fixup_reorder_chain): Use them. Do bulk block movement. Examine
|
||
and adjust the jump insns appropriately. Fixup basic_block_info.
|
||
(verify_insn_chain): Always define.
|
||
(relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko
|
||
in allocation size.
|
||
(make_new_scope): Don't write zeros to calloc'd space.
|
||
(build_scope_forest): Rely on xrealloc to DTRT.
|
||
(reorder_basic_blocks): Don't build loop nest. Don't fail if
|
||
profile_arc_flag. Streamline EH test.
|
||
|
||
* flow.c (redirect_edge_succ, redirect_edge_pred): New.
|
||
* basic-block.h: Declare them.
|
||
|
||
2000-05-25 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* emit-rtl.c (reset_used_decls): New function.
|
||
(unshare_all_rtl_again): Call it.
|
||
|
||
2000-05-25 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (maybe_macroexpand): Warn about function-like
|
||
macros used in non-function context, if -Wtraditional.
|
||
|
||
2000-05-25 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* recog.c (peephole2_optimize): Use INSN_P.
|
||
|
||
2000-05-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (seq_contains_jump): New.
|
||
(noce_try_store_flag_constants): Use it to fail conversion.
|
||
(noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
|
||
|
||
2000-05-25 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* except.h (can_throw): Declare it.
|
||
* except.c (can_throw): Give it external linkage.
|
||
* resource.c (find_dead_or_set_registers): Use can_throw.
|
||
|
||
2000-05-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_set_1): Don't record conditionally dead memory.
|
||
|
||
2000-05-25 Jan Hubicka <jh@suse.cz>
|
||
|
||
* combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
|
||
and pc_set at the place of simplejump_p and condjump_p.
|
||
* cse.c (record_jump_equiv): Likewise.
|
||
* emit-rtl.c (emit): Likewise.
|
||
* explow.c (find_next_ref): Likewise.
|
||
* flow.c (tidy_fallthru_edge): Likewise.
|
||
(init_propagate_block_info): Likewise.
|
||
* gcse.c (delete_null_pointer_checks): Likewise.
|
||
* ifcvt.c (cond_exec_get_condition, noce_get_condition,
|
||
dead_or_predicable): Likewise.
|
||
* integrate.c (copy_insn_list): Likewise.
|
||
* loop.c (scan_loop, verify_dominator, find_and_verify_loops,
|
||
for_each_insn_in_loop, check_dbra_loop, get_condition,
|
||
insert_bct, load_mems): Likewise.
|
||
* resource.c (find_dead_or_set_registers): Likewise.
|
||
* sibcalls.c (simplejump_p): Likewise.
|
||
* unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
|
||
|
||
2000-05-25 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
|
||
to STRING case. Use doubleword STRING move for TARGET_POWERPC64
|
||
when unaligned.
|
||
* rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
|
||
(RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
|
||
(LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
|
||
* rs6000.md: Name various internal patterns.
|
||
|
||
2000-05-25 Jan Hubicka <jh@suse.cz>
|
||
|
||
* jump.c (invert_exp_1): Remove first argument, use pc_set
|
||
to get the expression.
|
||
(redirect_exp): Make static; redirect only the pc_set expression,
|
||
remove first argument.
|
||
(invert_exp): Remove first argument, make static.
|
||
(jump_optimize): Use any_condjump_p, any_uncondjump_p and
|
||
any_onlyjump at most places where we originaly did condjump_p
|
||
and simplejump_p.
|
||
(jump_back_p, follow_jumps, thread_jumps): Likewise.
|
||
(delete_barrier_succesors): Use pc_set.
|
||
(invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
|
||
calls of invert_exp and redirect_exp.
|
||
* rtl.h (redirect_exp, invert_exp): Remove.
|
||
* unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
|
||
|
||
2000-05-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* stmt.c (expand_end_bindings): Fix thinko last change.
|
||
|
||
2000-05-25 Andrew MacLeod <amacleod@cygnus.com>
|
||
Andrew Haley <aph@cygnus.com>
|
||
|
||
* except.c (func_eh_entry): Add emitted field.
|
||
(new_eh_region_entry): Set emitted field to 0;
|
||
(output_exception_table_entry): Only emit previously un-emitted data,
|
||
and send it to the eh_data section.
|
||
(output_exception_table): Break out common parts. Output
|
||
exception table for entire compilation unit to eh_data section.
|
||
(output_exception_table_data): Common parts of output_exception_table.
|
||
Send output to eh_data section.
|
||
(output_function_exception_table): Output exception table data for
|
||
a single function to eh_data section.
|
||
(free_exception_table): New external to free the table.
|
||
* except.h (free_exception_table): Add prototype.
|
||
(output_function_exception_table): Add prototype.
|
||
* final.c (final_end_function): Output function exception table
|
||
for IA64_UNWIND_INFO.
|
||
(final_scan_insn): Emit any unwind directives for an insn.
|
||
|
||
* frame-dwarf2.c: New file containing all DWARF 2 specific code
|
||
from frame.c.
|
||
* frame.c: Remove all DWARF 2 specific code.
|
||
* config/ia64/frame-ia64.c: New file.
|
||
(gthread_stuff): Make all gthread available with
|
||
IA64_UNWIND_INFO.
|
||
(dwarf_fde): Define an IA64 struct for dwarf_fde.
|
||
(__register_frame_info, __register_frame): Move to common area of file.
|
||
(__register_frame_info_table, __register_frame_table): Move to common i
|
||
area.
|
||
(__deregister_frame_info, __deregister_frame): Move to common area.
|
||
(__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
|
||
(read_uleb128): New version for ia64.
|
||
(get_unwind_record): Read the next IA-64 unwind record.
|
||
(read_R_record): Read a region header record.
|
||
(process_a_b_reg_code): X record helper.
|
||
(read_X_record): Read an X format record.
|
||
(read_B_record): Read a B format record.
|
||
(P3_record_types): List of record types matching the P3 format.
|
||
(P7_record_types): List of record types matching the P7 format.
|
||
(P8_record_types): List of record types matching the P8 format.
|
||
(read_P_record): Read a P format record.
|
||
(init_ia64_reg_loc): Set default fields for a register.
|
||
(init_ia64_unwind_frame): Set defaults for all register records.
|
||
(execute_one_ia64_descriptor): Execute one descriptor record.
|
||
(rse_address_add): Calculate the position of a local reg in memory.
|
||
(normalize_reg_loc): Turn a location descriptor into a memory address.
|
||
(maybe_normalize_reg_loc): Only normalize a descriptor if it falls
|
||
within a specified PC offset range.
|
||
(get_real_reg_value): Given a register location, retrieve its value.
|
||
(set_real_reg_value): Change the value of a register location.
|
||
(copy_reg_value): Copy reg values, if needed.
|
||
(copy_saved_reg_state): Copy all registers that need to be copied.
|
||
(process_state_between): Normalize all frame register records that
|
||
fall within the specified PC range.
|
||
(frame_translate): Take a processed frame description, and turn
|
||
everything into addresses.
|
||
(build_ia64_frame_state ): Find and create frame state record for a PC.
|
||
(get_personality): Get the personality routine for a given frame.
|
||
(get_except_table): Get the exception table for a given frame.
|
||
(record_name): Unwind record names for debugging.
|
||
(print_record): Print and unwind record.
|
||
(print_all_records): Print an entire unwind image.
|
||
(__ia64_backtrace): Print a backtrace.
|
||
(ia64_backtrace_helper): New function.
|
||
(__register_frame_info_aux): New function.
|
||
* config/ia64/crtend.asm (__do_frame_setup_aux): New function.
|
||
|
||
* frame.h (enum unw_record_type): New unwind record types.
|
||
(struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
|
||
(struct unw_r_record, unwind_record): New unwind record structs.
|
||
(struct unwind_info_ptr): Unwind information layout.
|
||
(IA64_UNW_LOC_TYPE_*): Macros for different types for location
|
||
descriptors.
|
||
(struct ia64_reg_loc): Register location description.
|
||
(struct ia64_frame_state): Location of all registers in a frame.
|
||
(struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
|
||
* libgcc2.c (__ia64_personality_v1): Personality routine.
|
||
(__calc_caller_bsp): Calculate the bsp register for the caller's
|
||
frame.
|
||
(ia64_throw_helper): Figure out who to return to and set up the
|
||
registers.
|
||
(__throw): Throw routine.
|
||
|
||
* output.h (assemble_eh_align, assemble_eh_label): New functions
|
||
to generate EH info where we want it.
|
||
(assemble_eh_integer): New function.
|
||
* toplev.c (compile_file): Output module level exception table for
|
||
non-ia64 targets.
|
||
(main): Set exceptions_via_longjump and flag_new_exceptions based
|
||
on IA64_UNWIND_INFO too.
|
||
|
||
* varasm.c (assemble_eh_label): Generate a label via
|
||
ASM_OUTPUT_EH_LABEL if it has been specified.
|
||
(assemble_eh_align): Generate an alignment directive via
|
||
ASM_OUTPUT_EH_ALIGN if it has been specified.
|
||
(assemble_eh_label): Generate an integer value via
|
||
ASM_OUTPUT_EH_type if they have been specified.
|
||
* config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
|
||
(ia64_init_builtins): Add __builtin_ia64_bsp
|
||
and __builtin_ia64_flushrs.
|
||
(ia64_expand_builtin): Add IA64_BUILTIN_BSP and
|
||
IA64_BUILTIN_FLUSHRS.
|
||
* config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
|
||
IA64_BUILTIN_FLUSHRS.
|
||
|
||
* config/ia64/ia64.md (flushrs): New insn to flush the register
|
||
stack. Add to unspec list.
|
||
|
||
* config/ia64/crtbegin.asm (frame_object): Change size.
|
||
(__do_frame_setup_aux): New function.
|
||
* config/ia64/crtend.asm: call __do_frame_setup_aux.
|
||
* config/ia64/t-ia64 (LIB2ADDEH): Add.
|
||
* Makefile.in (LIB2ADDEH): Add.
|
||
(LIB2ADD): Use LIB2ADDEH.
|
||
|
||
2000-05-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* recog.c (offsettable_address_p): If mode size is zero, assume
|
||
BIGGEST_ALIGNMENT.
|
||
|
||
2000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca>
|
||
|
||
* configure.in: Check for -Wno-long-long option support and improve
|
||
handling of warning CFLAGS for stages 1 and 2.
|
||
* Makefile.in (WARN_CFLAGS): Move definition to configure.in.
|
||
* configure: Regenerate.
|
||
|
||
Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* gcc.texi: Remove contributor list. Instead include contrib.texi.
|
||
* contrib.texi: New file.
|
||
|
||
Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* loop.c (basic_induction_var): Avoid double recording of an increment.
|
||
|
||
Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* Back out this patch:
|
||
Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
|
||
* loop.h (struct induction): Add multi_insn_incr.
|
||
* loop.c (basic_induction_var): New multi_insn_incr argument.
|
||
Set it if we search back through previous insns for the biv.
|
||
(record_biv): New multi_insn_incr argument; fill in struct induction.
|
||
(strength_reduce): Discard an iv with multiple bivs, any of
|
||
which require multiple insns to increment.
|
||
|
||
* loop.c (check_insn_for_bivs): Remove bits copied from above patch.
|
||
|
||
Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* rtl.h (loc_mentioned_in_p): Declare.
|
||
* reload.c (loc_mentioned_in_p): Moved from here...
|
||
* rtlanal.c (loc_mentioned_in_p): to here. No longer static.
|
||
Fix loop increment for 'E' handling.
|
||
* loop.c (strength_reduce): When doing biv->giv conversion,
|
||
take multi-insn biv increments into account.
|
||
|
||
2000-05-24 Jason Merrill <jason@casey.soma.redhat.com>
|
||
|
||
* stmt.c (expand_end_bindings): Look through NOTEs to find a
|
||
BARRIER.
|
||
|
||
2000-05-24 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* calls.c (expand_call): Handle cleanups in tail-recursion
|
||
arguments analogously to cleanups in sibling calls.
|
||
|
||
2000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
|
||
All callers changed.
|
||
|
||
2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* expr.c (expand_assignment, store_expr, expand_expr,
|
||
expand_expr_unaligned): Set in_check_memory_usage while emitting
|
||
chkr_check_addr libcall.
|
||
|
||
2000-05-24 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* fold-const.c (extract_muldiv): When constructing a
|
||
multiplier/divisor, do not expect const_binop to correctly
|
||
determine if overflow has occurred, so check explicitly.
|
||
|
||
2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* c-decl.c (build_enumerator): Don't modify the value's type,
|
||
convert it.
|
||
|
||
2000-05-24 Andreas Jaeger <aj@suse.de>
|
||
|
||
* mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
|
||
|
||
2000-05-24 Eric Christopher <echristo@cygnus.com>
|
||
|
||
* configure.in: Redefine inhibit_libc conditions.
|
||
* libgcc2.c: Remove inhibit_libc conditional define.
|
||
* configure: Regenerate.
|
||
|
||
2000-05-24 Phil Edwards <pme@sourceware.cygnus.com>
|
||
|
||
* configure.in: For --enable-languages=LIST, check for empty LIST.
|
||
* configure: Regenerate.
|
||
|
||
2000-05-24 Lars Brinkhoff <lars@nocrew.org>
|
||
|
||
* pdp11.h (STACK_BOUNDARY): Define.
|
||
|
||
2000-05-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* ifcvt.c (if_convert): Update life info globally.
|
||
|
||
2000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* emit-rtl.c (unshare_all_decls): New function.
|
||
(unshare_all_rtl): Call it.
|
||
|
||
2000-05-23 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* configure.in: Treat 'strongarm' as if it were 'arm' when
|
||
determining cpu type.
|
||
|
||
* configure: Regenerate.
|
||
|
||
* config/arm/arm.c: Change 'char *' to 'const char *' for cases
|
||
where constant strings are involved.
|
||
|
||
* config/arm/arm.h (arm_condition_codes): Change type to 'const
|
||
char *'.
|
||
|
||
* config/arm/arm-protos.h: Change 'char *' to 'const char *' for
|
||
cases where constant strings are involved.
|
||
|
||
Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/sh/sh.c (gen_far_branch, split_branches): Update
|
||
to reflect new prototypes for redirect_jump and invert_jump.
|
||
(sh_insn_length_adjustment): Get rid of const warnings.
|
||
|
||
2000-05-23 Kazu Hirata <kazu@hxi.com>
|
||
|
||
* invoke.texi (Options for Debugging Your Program or GCC): Update
|
||
the names of dump files.
|
||
|
||
Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
|
||
* configure: Regenerated.
|
||
|
||
2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* simplify-rtx.c (SIGN_EXTEND): New macro.
|
||
(simplify_unary_operation, simplify_binary_operation,
|
||
simplify_relational_operation): Use SIGN_EXTEND. Make low
|
||
halves of (low, high) pairs unsigned if they weren't already.
|
||
(simplify_ternary_operation): Cast INTVAL to unsigned before
|
||
comparing to a MODE_BITSIZE.
|
||
|
||
2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
|
||
rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
|
||
|
||
* configure.in (gcc_AC_CHECK_DECLS): Call this instead of
|
||
gcc_AC_NEED_DECLARATIONS.
|
||
|
||
* dwarfout.c: Don't prototype time().
|
||
|
||
* gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
|
||
|
||
* system.h: Likewise.
|
||
|
||
* toplev.c: Likewise.
|
||
|
||
2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-decl.c (pushdecl): Invert sense of test for non-global types.
|
||
|
||
Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
|
||
|
||
2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk>
|
||
|
||
* config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
|
||
|
||
Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
|
||
(alpha_start_function): Never write ..ng label if VMS or NT.
|
||
(alpha_align_insns): Remove GP_IN_USE arg.
|
||
Alignment now unsigned.
|
||
(alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
|
||
* config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
|
||
and two define_insn's.
|
||
|
||
2000-05-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (simplify_comparison): Use trunc_int_for_mode.
|
||
|
||
2000-05-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* stor-layout.c (place_field): Change rli->size to rli->offset.
|
||
|
||
2000-05-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* function.c (thread_prologue_and_epilogue_insns): Make sure
|
||
existing line number notes appear after the prologue.
|
||
|
||
Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* config/alpha/alpha.c (alpha_fnname): New static variable.
|
||
(print_operand, case '~'): New case.
|
||
(alpha_expand_prologue): Emit prologue_ldgp insn if needed.
|
||
(alpha_start_function): Set alpha_fnname.
|
||
Write "ng" label if no ldgp; don't write ldgp insn.
|
||
* config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
|
||
* config/alpha/alpha.md (prologue_ldgp): New define_insn.
|
||
|
||
Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* jump.c (jump_optimize_1): Don't increment LABEL_NUSES
|
||
on deleted labels.
|
||
|
||
2000-05-22 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* varasm.c (eh_frame_section): Revert change to argument list.
|
||
|
||
Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
|
||
(gen_extend_insn, can_fix_p, can_float_p): Likewise.
|
||
|
||
* final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
|
||
dangling "else" that causes "break" to be conditional.
|
||
Also remove unneeded code at start.
|
||
|
||
Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
|
||
* fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
|
||
* gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
|
||
|
||
2000-05-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
|
||
just one argument.
|
||
|
||
Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c (record_component_aliases): New function.
|
||
* tree.h: Clean up some declarations and comments.
|
||
(record_component_aliases): New declaration.
|
||
* tree.c (get_alias_set): If type and has alias set, use it.
|
||
|
||
2000-05-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* simplify-rtx.c (simplify_ternary_operation): Try to simplify
|
||
IF_THEN_ELSE to a setcc form.
|
||
* jump.c (can_reverse_comparison_p): Be prepared for insn null.
|
||
|
||
2000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc/inclhack.def (sun_malloc): Handle `calloc'.
|
||
(sun_malloc, sysz_stdtypes_for_sun): Add test_text.
|
||
|
||
Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
|
||
not a PARALLEL.
|
||
|
||
2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
|
||
* config/mn10300/mn10300.c (print_operand): Likewise.
|
||
|
||
* final.c (split_double): Right shift of negative values is not
|
||
portable.
|
||
|
||
* ifcvt.c (if_convert): Scan and kill dead code.
|
||
|
||
* emit-rtl.c (unshare_all_rtl): Store the copied rtx.
|
||
|
||
2000-05-20 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* diagnostic.c: Eliminate implicit int.
|
||
* except.c, gcc.c: Add static prototypes.
|
||
* final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
|
||
* gensupport.c (process_rtx): Use XVEC to initialize vector
|
||
slot of 'split'.
|
||
|
||
* print-rtl.c: If DEBUG_REGISTER_NAMES, define static
|
||
debug_reg_names instead of static reg_names. If not, define
|
||
global reg_names.
|
||
* regclass.c: Don't define global reg_names unless
|
||
DEBUG_REGISTER_NAMES is defined.
|
||
|
||
* reload1.c (order_regs_for_reload): Remove unused variable.
|
||
* varasm.c: Include output.h after defaults.h. Define
|
||
eh_frame_section as function of no args, not of unspecified args.
|
||
|
||
* gcc.c: Constify argbuf; arguments to store_arg,
|
||
process_command, main; elements of struct command and struct
|
||
switchstr; local variables in execute, process_command, main.
|
||
|
||
2000-05-20 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/inclhack.def: many applications of c_fix=format + tests
|
||
* fixinc/check.diff: regenerated
|
||
* fixinc/fixincl.x: regenerated
|
||
|
||
Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c: Clarify some comments.
|
||
(record_base_value): REGNO is unsigned.
|
||
* rtl.h (record_base_value): Likewise.
|
||
|
||
* alias.c (aliases_everything_p): Don't special-case QImode here.
|
||
* c-common.c (c_get_alias_set): Do it here.
|
||
Handle BIT_FIELD_REF by getting alias info for arg.
|
||
Use POINTER_TYPE_P.
|
||
|
||
2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* mklibgcc.in: Restore rule to create ${dir}.
|
||
|
||
Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org>
|
||
|
||
* Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
|
||
GCC_FOR_TARGET used by MULTILIBS.
|
||
* mklibgcc.in: Make sure each .o file depends on the
|
||
directory it will be in.
|
||
Make the multilib directory depends libgcc.
|
||
|
||
Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org>
|
||
|
||
* Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
|
||
|
||
Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* fold-const.c (make_range): Handle degenerated intervals.
|
||
Fixes c-torture/execute/991221-1.c
|
||
|
||
Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
|
||
* reload.c (find_equiv_reg): Likewise.
|
||
* alias.c (init_alias_analysis): Likewise.
|
||
Only call prologue_epilogue_contains on insns.
|
||
* basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
|
||
* bb-reorder.c (hard-reg-set.h): Include earlier.
|
||
* haifa-sched.c (hard-reg-set.h): Likewise.
|
||
* ifcvt.c (hard-reg-set.h): Likewise.
|
||
* local-alloc.c (hard-reg-set.h): Likewise.
|
||
* loop.c (hard-reg-set.h): Likewise.
|
||
* predict.c (hard-reg-set.h): Likewise.
|
||
* regrename.c (hard-reg-set.h): Likewise.
|
||
* flow.c (hard-reg-set.h): Likewise.
|
||
(reg_set_to_hard_reg_set): New function.
|
||
* bitmap.c (regs.h, basic-block.h): No longer include.
|
||
(bitmap.h): Now include.
|
||
* conflict.c (hard-reg-set.h): Include.
|
||
* profile.c (hard-reg-set.h): Likewise.
|
||
* print-rtl.c (hard-reg-set.h): Likewise.
|
||
* sbitmap.c (hard-reg-set.h): Likewise.
|
||
* toplev.c (hard-reg-set.h): Likewise.
|
||
* unroll.c (hard-reg-set.h, basic-block.h): Likewise.
|
||
* hard-reg-set.h (reg_names): Now constant.
|
||
* regs.h (reg_names): Likewise.
|
||
* regclass.c (reg_names): Likewise.
|
||
* loop.h (basic-block.h): No longer include.
|
||
(bitmap.h): Now include.
|
||
* reload1.c (order_regs_for_reload): Avoid loop over reg sets.
|
||
* Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
|
||
(toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
|
||
|
||
2000-05-19 Jan Hubicka <jh@suse.cz>
|
||
Richard Henderson <rth@cygnus.com>
|
||
|
||
* basic-block.h (struct edge_def): New field "count".
|
||
(struct basic_block_def): Likewise.
|
||
* flow.c (entry_exit_blocks): Add count fileds.
|
||
(split_edge): Keep count information up-to-date.
|
||
(dump_edge_info, dump_flow_info): Dump count fields.
|
||
|
||
* final.c (count_instrumented_edges): Rename to edge from arc.
|
||
(end_final): Update users.
|
||
* profile.c: Include expr.h, basic-block.h.
|
||
(struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
|
||
(struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
|
||
(ignore_next_note, return_label_execution_count): Kill.
|
||
(bbg_file_name, da_file_name): Kill.
|
||
(edge_info, bb_info): New structures.
|
||
(EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
|
||
(count_instrumented_edges, total_num_edges): Rename to edge from arc.
|
||
(total_num_edges_instrumented): Likewise.
|
||
(init_arc, expand_spanning_tree): Kill.
|
||
(fill_spanning_tree, tablejump_entry_p): Kill.
|
||
(instrument_edges): Rewrite from instrument_arcs to use
|
||
commit_edge_insertions infrastructure.
|
||
(compute_branch_probabilities): Remove arguments; rewrite for
|
||
CFG infrastructure; use rtl_dump_file directly.
|
||
(branch_prob, find_spanning_tree): Likewise.
|
||
(union_groups, find_group): New.
|
||
(init_branch_prob): Make bbg_file_name and da_file_name local.
|
||
(end_branch_prob): Use rtl_dump_file directly.
|
||
(init_edge_profiler): Rename to edge from arc.
|
||
(output_arc_profiler): Kill.
|
||
(gen_edge_profiler): New.
|
||
(output_func_start_profiler): Turn off profiling. Make the
|
||
constructor static when we can.
|
||
* rtl.h (branch_prob, end_branch_prob): Update prototypes.
|
||
|
||
* toplev.c (DFI_flow): Remove.
|
||
(DFI_cfg, DFI_life): New.
|
||
(dump_file): Update accordingly.
|
||
(compile_file): Call end_branch_prob if profile_arc_flag too.
|
||
(rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge
|
||
profiling after the CFG is built. Move flow1 life analysis to
|
||
DFI_life. Always estimate remaining probabilities.
|
||
|
||
2000-05-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
|
||
|
||
* flow.c (make_edges): The sibling call edge to exit is abnormal.
|
||
|
||
2000-05-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (redirect_jump): Add delete_unused argument. Don't
|
||
remove labels and code following when LABEL_NUSES goes to zero.
|
||
(invert_jump): Likewise.
|
||
(jump_optimize_1): Fix redirect/invert arguments.
|
||
(do_cross_jump, thread_jumps): Likewise.
|
||
* flow.c (split_edge): Likewise.
|
||
* reorg.c (optimize_skip): Likewise.
|
||
(reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
|
||
* profile.c (instrument_arcs): Likewise.
|
||
* loop.c (find_and_verify_loops): Likewise. Fix indentation.
|
||
* rtl.h: Update prototypes.
|
||
|
||
Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* ssa.c (convert_from_ssa): Tell life_analysis we need death
|
||
notes.
|
||
(make_regs_equivalent_over_bad_edges): Only look at abnormal
|
||
critical edges.
|
||
|
||
2000-05-19 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (funlike_macroexpand): Make sure not to walk p1
|
||
past l1 when deleting whitespace and markers.
|
||
|
||
* cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
|
||
* cpplib.c (do_unassert): Put the list to compare against on
|
||
the stack.
|
||
|
||
2000-05-19 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/README: cleaned up old documentation
|
||
* fixinc/check.diff: regenerated & verified on OSR5 on ix86
|
||
* fixinc/check.tpl: compute the list of needed directories
|
||
emit "#if defined(name)" because of conflict
|
||
omit machine name differences from output differences
|
||
* fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function
|
||
(machine_name): change test text to use `sed' markers
|
||
* fixinc/fixincl.x: regen
|
||
|
||
Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
|
||
a CONSTRUCTOR.
|
||
|
||
2000-05-18 Chris Demetriou <cgd@sibyte.com>
|
||
|
||
* gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
|
||
it to match the current practice.
|
||
|
||
2000-05-18 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
|
||
|
||
2000-05-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
|
||
* rtl.h (insn_dependant_p): Declare it.
|
||
* loop.c (strength_reduce): Use it.
|
||
|
||
2000-05-18 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
|
||
16-bit and 64-bit clean-up.
|
||
|
||
2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* configure.in (*-pc-msdosdjgpp): Set float_format to none.
|
||
* configure: Rebuilt.
|
||
|
||
2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* genopinit.c: Use $ for escape sequences in optab patterns.
|
||
Remove backslashes from optab patterns. Change $A, $B, $C to
|
||
expand to (int) whatever instead of just whatever; remove
|
||
explicit (int) from all optab patterns.
|
||
|
||
* gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
|
||
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
|
||
genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
|
||
genrecog.c: Remove private copies of xmalloc, xrealloc, and
|
||
xstrdup.
|
||
|
||
2000-05-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (jump_optimize_1): Base minimum insn count during
|
||
find_cross_jump on BRANCH_COST.
|
||
|
||
2000-05-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* print-rtl.c (print_rtx): Only print note line number as string
|
||
if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
|
||
* final.c (final_scan_insn): Do nothing for note line number 0.
|
||
|
||
2000-05-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
|
||
from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
|
||
NOTE_INSN_DELETED_LABEL.
|
||
|
||
2000-05-18 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
|
||
uninitialised data in .rodata not .bss, and do not interpret an
|
||
error in the initialisation value as meaning that the variable
|
||
should be placed in the .bss section.
|
||
|
||
Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
|
||
not `$ac_cv_prog_cc_cc_c_o'.
|
||
* configure: Regenerated.
|
||
|
||
2000-05-18 Chris Demetriou <cgd@sibyte.com>
|
||
Richard Henderson <rth@cygnus.com>
|
||
|
||
* c-common.h (enum c_tree_index): Add g77 type entries.
|
||
(g77_integer_type_node, g77_uinteger_type_node): New.
|
||
(g77_longint_type_node, g77_ulongint_type_node): New.
|
||
* c-decl.c (init_decl_processing): Initialize them.
|
||
|
||
2000-05-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/h8300/h8300.md (subs patterns): Use %G to negate.
|
||
|
||
* config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
|
||
(small_power_of_two): Likewise; use exact_log2.
|
||
(adds_subs_operand, one_insn_adds_subs_operand): Remove.
|
||
(output_adds_subs): Remove.
|
||
(two_insn_adds_subs_operand): New.
|
||
(split_adds_subs): New.
|
||
* config/h8300/h8300-protos.h: Update.
|
||
* config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
|
||
(CONST_OK_FOR_L): Match strict adds operands.
|
||
(CONST_OK_FOR_N): Match struct subs operands.
|
||
* config/h8300/h8300.md (adds_subs insns): Remove.
|
||
(addhi patterns): Output adds/subs directly.
|
||
(addsi_h8300h): Likewise.
|
||
(addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand.
|
||
|
||
2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppexp.c (parse_assertion): New.
|
||
(lex): Call it for CPP_HASH. Remove CPP_ASSERTION case.
|
||
(_cpp_parse_expr): Remove case '#'. Don't set
|
||
parsing_if_directive.
|
||
* cpphash.c (collect_objlike_expansion,
|
||
collect_funlike_expansion, collect_params,
|
||
_cpp_create_definition): The list no longer has a trailing
|
||
VSPACE token.
|
||
* cpphash.h (enum node_type): Add T_ASSERTION.
|
||
(struct hashnode): Remove aschain, add pred.
|
||
(struct predicate): New.
|
||
Update prototypes.
|
||
|
||
* cpplex.c (expand_token_space): Handle both offset and
|
||
nonoffset lists.
|
||
(init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
|
||
(_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
|
||
_cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
|
||
_cpp_equiv_toklists): New.
|
||
(_cpp_scan_line): Rename to _cpp_scan_until; add ability to
|
||
stop at any single-character token, not just newline.
|
||
(_cpp_lex_token): Remove special cases for #define and #if.
|
||
(cpp_get_token): Expect # as a separate token type. Remove
|
||
DIRECTIVE case.
|
||
(_cpp_get_directive_token): Remove DIRECTIVE case.
|
||
(_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
|
||
|
||
* cpplib.c (_cpp_check_directive): Set dirno and
|
||
SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
|
||
(_cpp_handle_directive): Run # <number> through the same logic
|
||
as normal directives.
|
||
(do_define): Don't set parsing_define_directive. Use
|
||
_cpp_scan_until. The list does not have a VSPACE at the end.
|
||
(do_if): Save, clear, and restore only_seen_white around
|
||
_cpp_parse_expr.
|
||
(skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
|
||
(do_assert, do_unassert): Rewrite.
|
||
|
||
* cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
|
||
(LIST_OFFSET): New flag.
|
||
(struct cpp_toklist): Replace dir_handler and dir_flags with
|
||
dirno and flags.
|
||
(struct cpp_reader): Remove parsing_if_directive and
|
||
parsing_define_directive.
|
||
|
||
2000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc/inclhack.def (broken_cabs): Update fix to handle comments
|
||
following the cabs decl which terminate on the following line.
|
||
Add the corresponding test_text case.
|
||
|
||
2000-05-18 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppinit.c (cpp_reader_init): Initialise col_adjust and
|
||
default tab stop size.
|
||
(no_num, OPT_ftabstop): New.
|
||
(handle_option): Handle "ftabstop=" command-line option.
|
||
(print_help): Document it.
|
||
* cpplex.c (COLUMN): Remove.
|
||
(handle_newline): Reset col_adjust.
|
||
(skip_whitespace): Update col_adjust as tabs encountered.
|
||
(_cpp_lex_line): Update to use col_adjust. Call
|
||
skip_whitespace for all whitespace.
|
||
* cpplib.h (struct cpp_options): New member tabstop.
|
||
(struct cpp_reader): New member col_adjust.
|
||
(CPP_BUF_COL): Update.
|
||
(CPP_BUF_COLUMN): New.
|
||
* cpp.texi: Document "-ftabstop=" command line option.
|
||
|
||
Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
|
||
files.
|
||
* configure: Rebuilt.
|
||
|
||
Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
||
|
||
* mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
|
||
|
||
* tree.c (build_common_tree_nodes): Do not build TI nodes unless
|
||
HOST_BITS_PER_WIDE_INT is >= 64.
|
||
|
||
2000-05-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (jump_optimize_1): Remove inactive but real insns
|
||
in jump-to-next-insn optimization.
|
||
|
||
2000-05-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* toplev.c (rest_of_compilation): Don't call optimize_mode_switching
|
||
unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos.
|
||
Don't call recompute_reg_usage if no_new_pseudos is true.
|
||
* lcm.c (optimize_mode_switching): Move ifdefs outside function.
|
||
Return true if we did work; update global life information.
|
||
* basic-block.h (optimize_mode_switching): Update decl.
|
||
|
||
2000-05-17 Neil Booth <neilb@earthling.net>
|
||
|
||
* cpplex.c (expand_name_space): Don't use ptrdiff_t.
|
||
|
||
2000-05-17 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c: New feature, #pragma system_header.
|
||
* cpp.texi: Document special treatment of system headers, and
|
||
the various mechanisms to get a header that special treatment.
|
||
|
||
2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* system.h (offsetof): Define at the very end, to ensure we prefer
|
||
the platform's definition if available.
|
||
|
||
2000-05-16 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
|
||
* fixinc/server.c: likewise
|
||
* fixinc/fixfixes.c( char_macro_def_fix ): fix regex
|
||
+ #ifdef debugging code + use #def constant for
|
||
sub-pattern count
|
||
* fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
|
||
on C++ math namespace
|
||
|
||
2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
|
||
Don't check the return value of sprintf. Use asprintf to avoid
|
||
buffer overflows.
|
||
|
||
Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||
|
||
* flags.h (warn_unused_function, warn_unused_label,
|
||
warn_unused_parameter, warn_unused_variable, warn_unused_value):
|
||
Replace ``warn_unused''.
|
||
(set_Wunused): Add declaration.
|
||
* toplev.c (set_Wunused): New function.
|
||
(warn_unused_function, warn_unused_label, warn_unused_parameter,
|
||
warn_unused_variable, warn_unused_value): New variables.
|
||
(W_options): Add -Wunused-function, -Wunused-function,
|
||
-Wunused-label, -Wunused-parameter, -Wunused-variable and
|
||
-Wunused-value. Delete -Wunused. Handled in decode_W_option.
|
||
|
||
* toplev.c (decode_W_option): Update -Wunused flags by calling
|
||
set_Wunused.
|
||
* c-decl.c (c_decode_option): Ditto for -Wall.
|
||
|
||
* stmt.c (expand_expr_stmt, expand_expr_stmt,
|
||
warn_about_unused_variables): Replace warn_unused with more
|
||
explicit warn_unused_value et.al.
|
||
* function.c (expand_function_end): Ditto.
|
||
* c-typeck.c (internal_build_compound_expr,
|
||
internal_build_compound_expr): Ditto.
|
||
* c-decl.c (poplevel, pop_label_level): Ditto.
|
||
* toplev.c (check_global_declarations): Replace warn_unused with
|
||
check for either warn_unused_function or warn_unused_variable.
|
||
|
||
* gcc.1, invoke.texi (Warning Options): Document
|
||
-Wunused-function, -Wunused-function, -Wunused-label,
|
||
-Wunused-parameter, -Wunused-variable and -Wunused-value options.
|
||
|
||
Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
|
||
$(srcdir), not in the current directory.
|
||
|
||
2000-05-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
|
||
assembler supports it.
|
||
(.fini, .init): Use a gp-relative indirect call.
|
||
(__do_global_dtors_aux): Preserve the gp; rebundle.
|
||
(__do_frame_setup): Likewise.
|
||
* config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
|
||
(.init): Use a gp-relative indirect call.
|
||
(__do_global_ctors_aux): Preserve the gp.
|
||
|
||
2000-05-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (commit_one_edge_insertion): Be prepared for a return
|
||
insn to be inserted on the edge with a normal jump.
|
||
* jump.c (jump_optimize_1): Don't look to create return isns.
|
||
|
||
* flow.c (flow_delete_insn): Don't adjust reference count of notes.
|
||
* jump.c (jump_optimize_1): Likewise.
|
||
(returnjump_p): Verify the argument is a JUMP_INSN.
|
||
* rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
|
||
|
||
2000-05-16 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
|
||
GET_RTX_CLASS (GET_CODE ()) == 'i'.
|
||
(large_insn_p): Ditto.
|
||
(m32r_is_insn): New function: Return true if the insn contains
|
||
an executable instruction.
|
||
(m32r_adjust_insn): Use m32r_is_insn.
|
||
(m32r_sched_reorder): Use m32r_is_insn.
|
||
(m32r_sched_variable_issue): Use m32r_is_insn.
|
||
|
||
2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
|
||
VAR_DECL.
|
||
|
||
* rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
|
||
|
||
* rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
|
||
according to given options.
|
||
|
||
Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
|
||
if X has VOIDmode either.
|
||
(LIMIT_RELOAD_CLASS): Similarly.
|
||
|
||
* mn10200.md (indirect_jump, tablejump): Use "register_operand",
|
||
not "general_operand" to match the processor's capabilities.
|
||
|
||
2000-05-16 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/README: corrected return address
|
||
* fixinc/check.diff: regenerate, now that test works
|
||
* fixinc/fixfixes.c(format_fix,format_write): reformatted
|
||
(char_macro_def_fix,char_macro_use_fix): corrected and
|
||
rewrote to use regex to parse the text
|
||
* fixinc/inclhack.def: more testing
|
||
* fixinc/fixincl.x: regenerated
|
||
|
||
* fixinc/inclhack.def: added several "test_text" attributes
|
||
changed several fixes to use `c_fix = format'
|
||
re-alphabetized the fixes
|
||
|
||
* fixinc/check.diff: regenerate
|
||
* fixinc/fixincl.x: regenerate
|
||
* fixinc/check.tpl: added `sparc' and `netinet' to the list
|
||
of created dirs
|
||
|
||
|
||
2000-05-16 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
|
||
|
||
2000-05-15 Richard Henderson <rth@cygnus.com>
|
||
|
||
* toplev.c (rest_of_compilation): Run full jump pass before
|
||
find_basic_blocks of flow2.
|
||
|
||
2000-05-15 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c: Fix typos and clarify commentary from last change.
|
||
(any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
|
||
(safe_to_remove_jump_p): Remove.
|
||
(condjump_label): Use pc_set.
|
||
|
||
2000-05-15 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
|
||
that get in the way after reload.
|
||
(cond_exec_process_if_block): Skip a label heading THEN block.
|
||
|
||
2000-05-15 Richard Henderson <rth@cygnus.com>
|
||
|
||
* varasm.c (output_constant_pool): Abort instead of converting
|
||
(improperly) deleted labels to zero.
|
||
|
||
2000-05-16 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (parse_string2): Update comment.
|
||
(cpp_lex_line): No special assertion treatment for '('.
|
||
* cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
|
||
* cpplib.h (SYNTAX_ASSERT): Remove.
|
||
|
||
Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* jump.c (condjump_p): Mark as depreached.
|
||
(any_condump_p): New.
|
||
(any_uncondump_p): New.
|
||
(pc_set): New.
|
||
(safe_to_remove_jump_p): New.
|
||
* rtl.h (any_condump_p, any_uncondjump_p, pc_set
|
||
safe_to_remove_jump_p): Declare.
|
||
|
||
Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c: Re-install both patches reverted by last patch.
|
||
(struct arg_data): New field tail_call_reg.
|
||
(initialize_argument_information): Initialize tail_call_reg
|
||
(load_register_parameters): New argument flags, use
|
||
tail_call_reg when emiting tail call sequence.
|
||
(expand_call): Update call of load_register_parameters;
|
||
copy unadjusted_args_size to adjusted_args_size.
|
||
|
||
Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
|
||
and bct_p parameters to flags.
|
||
* loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
|
||
* rtl.h (loop_optimize): Update prototype.
|
||
* toplev.c (rest_of_compilation): Update call of loop_optimize.
|
||
|
||
2000-05-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* calls.c (expand_call): Move expand_start_target_temps call after
|
||
start_sequence().
|
||
|
||
2000-05-15 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpphash.c (trad_stringify, warn_trad_stringify,
|
||
collect_params): Make some pointers pointers to const.
|
||
* cpplex.c (auto_expand_name_space) Guaranteed to always
|
||
expand by at least one character.
|
||
(SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
|
||
(struct token_spelling): Use const U_CHAR * rather than PTR.
|
||
(expand_name_space): Fix up token pointers if name space
|
||
is moved when expanding.
|
||
(INIT_NAME, cpp_scan_line, parse_name, parse_number,
|
||
parse_string2, save_comment, spell_token, cpp_output_list):
|
||
Update so the routines handle tokens with a direct pointer to
|
||
their text, rather than an offset into the token's list's namebuf.
|
||
(_cpp_lex_line): Rearrange for clarity.
|
||
|
||
* cpplib.c (_cpp_check_directive): Similarly.
|
||
(do_define): Make SYM a pointer to const.
|
||
* cpplib.h (struct cpp_name): Replace offset with direct pointer.
|
||
(CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
|
||
(TOK_OFFSET): Delete.
|
||
(TOK_NAME): Update.
|
||
|
||
2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
|
||
64-bit ABI.
|
||
|
||
* config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
|
||
into account.
|
||
(logical_u_operand): Delete.
|
||
(non_logical_cint_operand): Rewrite to take MODE into account.
|
||
(non_logical_u_cint_operand): Delete.
|
||
(boolean_operator): New function.
|
||
(print_operand): Add new %q operand.
|
||
* config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
|
||
remove logical_u_operand and non_logical_u_cint_operand,
|
||
update logical_operand and non_logical_cint_operand.
|
||
* config/rs6000/rs6000.md: Rewrite the patterns for performing
|
||
logical operations to use %q.
|
||
|
||
* config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
|
||
(movdi): Make similar to movsi.
|
||
* config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
|
||
is no such thing as a DImode CONST_DOUBLE.
|
||
* config/rs6000/rs6000.c (output_toc): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (output_cbranch): Don't output prediction
|
||
codes when old mnemonics are in use. Print register names
|
||
for cc registers when requested.
|
||
|
||
* optabs.c (expand_float): Don't allow mode widening that causes
|
||
double rounding.
|
||
|
||
* invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
|
||
flags to their current names -maix64 and -maix32.
|
||
|
||
2000-05-14 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
|
||
and/or after current text of file
|
||
* fixinc/fixlib.c(must_malloc):
|
||
* fixinc/fixlib.h(must_malloc): + reformatting
|
||
* fixinc/inclhack.def: replace the "1i" and "$a" sed commands
|
||
with usages of ``c_fix = wrap;''
|
||
Add several tests and use the ``c_fix = format'' fixer more.
|
||
* fixinc/fixincl.x: regen
|
||
* fixinc/check.diff: regen
|
||
* fixinc/check.tpl: emit the associated header with the missing
|
||
test message
|
||
|
||
Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
|
||
variables $src and $dst.
|
||
|
||
2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
|
||
(DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
|
||
(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
|
||
(struct output_buffer: emitted_prefix_p, prefixing_rule): New
|
||
fields.
|
||
(set_message_prefixing_rule): Declare.
|
||
|
||
* diagnostic.c: (current_prefixing_rule): New variable.
|
||
(set_message_prefixing_rule): Define.
|
||
(output_set_prefix): Adjust buffer->emitted_prefix_p.
|
||
(init_output_buffer): Adjust Initialization.
|
||
(output_emit_prefix): Rewrite. Take prefixing rules into account.
|
||
|
||
Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* ifcvt.c (if_convert): Do not free NULL.
|
||
|
||
2000-05-12 H.J. Lu (hjl@gnu.org)
|
||
|
||
* gthr-dce.h: Add support for libobjc.
|
||
* gthr-posix.h: Likewise.
|
||
* gthr-solaris.h: Likewise.
|
||
* gthr-vxworks.h: Likewise.
|
||
* gthr-single.h: Likewise.
|
||
* gthr-win32.h: Likewise.
|
||
|
||
2000-05-12 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/fr30/fr30.c (fr30_move_double): New function: Emit code
|
||
to move a double word value.
|
||
(di_operand): New function: Return true if the operand is suitbale
|
||
for a double word move operation.
|
||
(nonimmediate_di_operand): New function: Return true if the
|
||
operand is a DImode register or MEM.
|
||
|
||
* config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
|
||
nonimmediate_di_operand.
|
||
|
||
* config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
|
||
nonimmediate_di_operand.
|
||
|
||
* config/fr30/fr30.md (movdi): New pattern. Required because
|
||
other patterns generate DImode results.
|
||
(movdi_insn): New pattern.
|
||
|
||
2000-05-12 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (struct shadow_summary): Define
|
||
bitfields as type unsigned int.
|
||
|
||
Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/t-avr: Added definition of FLOAT while generates
|
||
fp-bit.c
|
||
|
||
* config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
|
||
peepholes for tst+jump = sbrs/sbrc optimization.
|
||
|
||
Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* expr.c (emit_push_insn): Do not adjust stack pointer when
|
||
preallocating.
|
||
|
||
Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* ggc-simple.c (offsetof): Macro fallback definition moved from here ..
|
||
* system.h (offsetof): ... to here.
|
||
|
||
2000-05-12 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (final.o): Depend on BASIC_BLOCK_H.
|
||
* final.c (final_end_function): Use app_disable. Rearrange note
|
||
handling into a switch. Emit deleted labels.
|
||
(output_asm_label): Generate label strings for deleted labels.
|
||
* flow.c (tail_recursion_label_list): New.
|
||
(find_basic_blocks_1): Set label_value_list directly. Collect list
|
||
of tail recursion labels from call_placeholders. Don't add deleted
|
||
labels to the label value list.
|
||
(cleanup_cfg): Use free_EXPR_LIST_list.
|
||
(flow_delete_insn_chain): Turn non-removable labels into notes.
|
||
(flow_delete_block): Don't disable deleting the block because of
|
||
a non-removable label.
|
||
(tail_recursion_label_p): New.
|
||
(merge_blocks_move_predecessor_nojumps): Don't disable the merge
|
||
because of a label.
|
||
(merge_blocks_move_successor_nojumps): Likewise. Also move a
|
||
jump table.
|
||
(merge_blocks): Disable a merge because of tail recursion labels.
|
||
* ifcvt.c (merge_if_block): Don't disable a merge because of a label.
|
||
Use a more accurate measure of not merging the join block.
|
||
(find_if_block): Don't disable conversion because of a label.
|
||
(find_if_case_1, find_if_case_2): Likewise.
|
||
* jump.c (duplicate_loop_exit_test): Preserve the kind of list
|
||
element when copying.
|
||
(squeeze_notes): Also leave EH notes.
|
||
(mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
|
||
REG_LABEL notes.
|
||
(delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
|
||
deleting a label.
|
||
* print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
|
||
NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
|
||
referring to a deleted label. Convert tail handling to a switch.
|
||
* rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
|
||
for NOTE_INSN_DELETED_LABEL.
|
||
(NOTE): Fix commentary.
|
||
* rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
|
||
(REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
|
||
(CODE_LABEL_NUMBER, LABEL_NAME): Update index.
|
||
(LABEL_NUSES, LABEL_REFS): Likewise.
|
||
* unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
|
||
|
||
2000-05-12 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/fixfixes.c(format_write): buglet & relaxed rules
|
||
* fixinc/check.diff: updated
|
||
* fixinc/inclhack.def: corrected & added some test_text-s
|
||
* fixinc/genfixes: removed unneeded options to autogen invocation
|
||
* fixinc/fixincl.tpl: Specified the output file
|
||
* fixinc/fixfixes.c: visual appearance
|
||
* fixinc/fixincl.x: regenerate
|
||
|
||
2000-05-12 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
|
||
CTRL_defn_fix): Delete.
|
||
(fix_char_macro_defines, fix_char_macro_uses): Rename to
|
||
char_macro_def_fix and char_macro_use_fix, respectively. Put
|
||
them into the FIXUP_TABLE. Get the string to search for from
|
||
a c_fix_arg.
|
||
|
||
(format_write): New function.
|
||
(format_fix): Use it.
|
||
|
||
(FIX_PROC_HEAD): Constify text parameter.
|
||
(machine_name_fix): Constify all char *s.
|
||
* fixtests.c (skip_quote): Remove double static.
|
||
|
||
* inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
|
||
ctrl_use_quotes): Update for new scheme.
|
||
* fixincl.x: Regenerate.
|
||
|
||
2000-05-12 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
|
||
DWARF2_DEBUG.
|
||
(DWARF2_ASM_LINE_DEBUG_INFO): Define.
|
||
(ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
|
||
|
||
2000-05-11 Robert Lipe <robertlipe@usa.net>
|
||
|
||
* fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
|
||
* fixincl.x: Regenerate.
|
||
|
||
2000-05-11 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c: Revert both 05-09 patches.
|
||
|
||
2000-05-11 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.c (print_operand): Print FP constants in
|
||
hexadecimal.
|
||
* config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
|
||
for FP values.
|
||
|
||
* mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
|
||
and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
|
||
|
||
2000-05-11 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
|
||
|
||
2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
|
||
|
||
Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
|
||
* config/avr/avr.c (jump_over_one_insn_p): New function.
|
||
* config/avr/avr.md: New peepholes added. Output test and
|
||
conditional jump to "sbrc" or "sbrs" command.
|
||
|
||
2000-05-11 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* cppmain.c (main): Use IS_DIR_SEPARATOR.
|
||
|
||
2000-05-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* except.c (find_exception_handler_labels_1): New function.
|
||
(find_exception_handler_labels): Split into two functions, dive
|
||
into CALL_PLACEHOLDERs when looking for exception handler labels.
|
||
|
||
2000-05-11 Stan Cox <scox@cygnus.com>
|
||
|
||
* regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
|
||
* timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
|
||
* toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
|
||
|
||
2000-05-11 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/fixfixes.c (double_slash_fix): obsolete
|
||
(else_endif_label_fix): obsolete
|
||
(format_fix): new, unused as yet
|
||
(main): obsolete
|
||
* fixinc/fixlib.h: added fix description struct for use by format_fix
|
||
* fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
|
||
* fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate
|
||
modules. Removed the vestiges of the script version.
|
||
Added support for "make check".
|
||
* fixinc/check.diff: base diff file (needs work!!)
|
||
* fixinc/check.tpl: quiet the fixup output
|
||
* fixinc/fixtests.c (main): obsolete
|
||
* fixinc/fixincl.sh: don't bother copying fixincl to ..
|
||
* fixinc/fixincl.tpl: provide for arguments to c_fix routines
|
||
|
||
Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* toplev.c (rest_of_compilation): Remove dead code after
|
||
combine.
|
||
|
||
2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (collect_funlike_expansion): Make "# is not
|
||
followed by a macro argument name" a pedwarn, not an error.
|
||
Preserve the # in the output. Suppress the warning if lang_asm.
|
||
|
||
Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
|
||
* configure: Rebuilt.
|
||
|
||
2000-05-10 Laurynas Biveinis <lauras@softhome.net>
|
||
|
||
* i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
|
||
|
||
2000-05-10 Kazu Hirata <kazu@hxi.com>
|
||
|
||
* combine.c (try_combine): Fix a typo.
|
||
|
||
Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.md (insv): Add comment.
|
||
|
||
2000-05-10 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
|
||
* mklibgcc.in: Rewrite to not use functions. Don't shortcut
|
||
dependencies on FPBIT and DPBIT.
|
||
|
||
2000-05-10 Nick Clifton <nickc@redhat.com>
|
||
|
||
* flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
|
||
when optimising for size.
|
||
(mark_used_regs:) Ditto.
|
||
(try_pre_increment_1): Ditto.
|
||
|
||
2000-05-10 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
|
||
Make error message friendlier.
|
||
|
||
* cpphash.h (struct hashnode): Use struct hack for name
|
||
member.
|
||
* cpphash.c (struct hashdummy): New.
|
||
(eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
|
||
(make_HASHNODE): No need to set ->name pointer. Correct
|
||
setting of p.
|
||
(cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit.
|
||
|
||
2000-05-10 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (find_basic_blocks_1): Remove any spare bb_note
|
||
after completion.
|
||
|
||
2000-05-10 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static
|
||
|
||
2000-05-10 Eric Schweitz <schweitz@nortelnetworks.com>
|
||
|
||
* dwarfout.c (dwarfout_finish): Call retry_incomplete_types
|
||
after we enter .debug.
|
||
|
||
2000-05-10 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
|
||
abstract instance of a nested inline function.
|
||
|
||
* stor-layout.c (finish_record_layout): finalize_type_size
|
||
before laying out the pending_statics.
|
||
|
||
Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (spell_token): New function.
|
||
(spell_string, spell_comment, spell_name): fold into
|
||
spell_token.
|
||
(I, S): Add macros.
|
||
(E, H): Remove macros.
|
||
(save_comment): Save comment opening characters too.
|
||
(_cpp_lex_file): Update to use spell_token. Tidy up comment
|
||
handling.
|
||
* cpplib.h (I, S): Add macros.
|
||
(E, H): Remove macros.
|
||
(TTYPE_TABLE): Update entries for new speller.
|
||
(SYNTAX_ASSERT): Remove.
|
||
|
||
Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
|
||
when removing escaped newlines. Reverse sense of test for
|
||
escaped newline.
|
||
|
||
2000-05-09 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (find_basic_blocks_1): Do not delete the first
|
||
bb_note we run across.
|
||
(create_basic_block): Use reorder_insns to move an existing
|
||
bb_note to the correct place.
|
||
|
||
2000-05-09 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c (expand_call): Increment currently_expanding_call
|
||
before calling optimize_tail_recursion.
|
||
|
||
Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* reload1.c (reload_combine): Fix errors in last change.
|
||
|
||
2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* gcc.c (used_arg): Skip over a semicolon at the end of the
|
||
split-up loop; don't break out of it.
|
||
|
||
* Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
|
||
(tree.o): Depend on output.h.
|
||
|
||
* c-decl.c (pending_invalid_xref_file,
|
||
current_function_prototype_file): Constify.
|
||
(pushdecl): Constify a local char *.
|
||
(define_label): Constify filename parameter.
|
||
* c-lex.c (init_parse): Constify parameter and return value.
|
||
* c-typeck.c (c_expand_asm_operands): Constify filename parameter.
|
||
* c-tree.h: Update prototypes.
|
||
* c-parse.in: Constify filename member of %union, and if_stmt_file.
|
||
* c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
|
||
objc/objc-parse.c: Regenerate.
|
||
|
||
* dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
|
||
* dwarfout.h: Update prototypes.
|
||
* expr.c (expand_expr): Constify a local char *.
|
||
* flags.h: Constify main_input_filename.
|
||
* function.c (expand_function_end): Constify filename parameter.
|
||
* genrecog.c (make_insn_sequence): Use a character array for
|
||
c_test_pos.
|
||
(main): Remove unused variables.
|
||
* input.h: Constify input_filename, main_input_filename, and
|
||
file_stack.name. Update prototypes.
|
||
* output.h: Declare first_global_object_name and
|
||
weak_global_object_name here, as const char *.
|
||
* stmt.c (expand_asm_operands): Constify filename parameter.
|
||
* toplev.c (compile_file, push_srcloc, debug_start_source_file):
|
||
Constify filename parameter.
|
||
(input_filename, main_input_filename): Constify.
|
||
* toplev.h: Update prototypes.
|
||
* tree.c: Include output.h. Don't declare
|
||
first_global_object_name or weak_global_object_name. Clean up string
|
||
bashing in get_file_function_name_long.
|
||
* tree.h (struct tree_decl): Constify filename member.
|
||
(input_filename): Constify.
|
||
Update prototypes.
|
||
* varasm.c (first_global_object_name, weak_global_object_name):
|
||
Constify.
|
||
(assemble_start_function, assemble_variable): Clean up string bashing.
|
||
|
||
* gcc.c: Constify all spec-related strings initialized,
|
||
transitively, from string constants. Constify all strings
|
||
and string variables related to multilibs.
|
||
(set_spec, read_specs): Cast argument to free to PTR.
|
||
(used_arg): Do not modify multilib_matches. Use strncmp plus
|
||
length comparison to compare multilib switches.
|
||
* genmultilib: Constify everything declared in multilib.h.
|
||
|
||
Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
|
||
as deleted.
|
||
|
||
Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr-protos.h (extra_constraint): change a type of
|
||
second argument from char to int to avoid warnings.
|
||
(asm_output_byte): Likewise.
|
||
|
||
* config/avr/avr.c (MAX_LD_OFFSET) New macro.
|
||
(initial_elimination_offset): Handle elimination from
|
||
FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
|
||
(legitimate_address_p): Use MAX_LD_OFFSET.
|
||
(legitimize_address): Likewise.
|
||
(out_movqi_r_mr): Likewise.
|
||
(out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
|
||
(out_movsi_r_mr): Use MAX_LD_OFFSET.
|
||
(out_movsi_mr_r): Likewise.
|
||
(out_movqi_mr_r): Likewise.
|
||
(out_movhi_mr_r): Likewise.
|
||
(notice_update_cc): Correct CC for the ashrqi3 with the shift
|
||
count as CONST_INT != 6.
|
||
(ashlqi3_out): Coding style modifications. Run `fatal_insn' if
|
||
shift count is a CONSTANT_P, but not a CONST_INT.
|
||
(ashlhi3_out): Coding style modifications.
|
||
(ashlsi3_out): Likewise.
|
||
(ashrhi3_out): Likewise.
|
||
(ashrsi3_out): Likewise.
|
||
(lshrhi3_out): Likewise.
|
||
(lshrsi3_out): Likewise.
|
||
(ashrqi3_out): Generate shift for any known constant count without
|
||
scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
|
||
but not a CONST_INT.
|
||
(lshrqi3_out): Coding style modifications. Run `fatal_insn' if
|
||
shift count is a CONSTANT_P, but not a CONST_INT.
|
||
(extra_constraint): change a type of
|
||
second argument from char to int to avoid warnings.
|
||
(asm_output_byte): Likewise.
|
||
(asm_file_end): Output size generated commands count as a hex
|
||
number too.
|
||
|
||
* config/avr/avr.h (RETURN_ADDR_RTX): New macro.
|
||
|
||
* config/avr/avr.md (addhi3): Fragment commented by &&0 is
|
||
removed.
|
||
(ashlqi3): Values of "length" attribute changed. Shift count
|
||
uses constraints 'n' instead of 'i'.
|
||
(ashrqi3): Likewise. Values of "cc" attribute changed. Generate
|
||
shifts without clobber register.
|
||
(lshrqi3): Shift count uses constraints 'n' instead of 'i'.
|
||
(call_insn): Correct test for which_alternative == 1 (was 0).
|
||
(call_value_insn): Likewise.
|
||
|
||
* config/avr/t-avr: Remove definition of FLOAT while generates
|
||
fp-bit.c
|
||
|
||
2000-05-09 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/check.tpl: Template for checking fixes
|
||
* fixinc/inclhack.def: Added 'test_text' for many fixes
|
||
disable hpux8_bogus_inlines on SCO
|
||
* fixinc/fixinc.sco: Oh, yes, we don't need this any more.
|
||
|
||
Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (expand_call): Reorganize somewhat in order
|
||
to avoid unnecesary recalculation inside loop and make
|
||
tail call failure code cleaner.
|
||
|
||
Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* alias.c (nonlocal_reference_p): Minor reformatting.
|
||
* reload.c (find_equiv_reg): Simplify logic for
|
||
CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
|
||
some some reformatting.
|
||
* reload1.c (reload_combine): Don't assume everything in
|
||
CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
|
||
|
||
2000-05-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* final.c (current_insn_predicate): New.
|
||
(final_scan_insn): Set it.
|
||
* output.h (current_insn_predicate): Declare.
|
||
|
||
* ifcvt.c (cond_exec_process_insns): New argument prob_val.
|
||
Attach it to call insns.
|
||
(cond_exec_process_if_block): Track probability for true and
|
||
false branches.
|
||
(dead_or_predicable): Likewise.
|
||
|
||
* predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
|
||
(PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
|
||
(PROB_VERY_LIKELY, PROB_ALWAYS): New.
|
||
(estimate_probability, expected_value_to_br_prob): Use them.
|
||
|
||
* config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
|
||
* config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
|
||
(ia64_expand_prediction): New.
|
||
(emit_insn_group_barriers): Don't look at notes. Emit barriers
|
||
as needed after calls.
|
||
(ia64_epilogue_uses): Mark b0 used.
|
||
* config/ia64/ia64.md (beq_true, beq_false): Remove.
|
||
(bne_true, bne_false): Remove.
|
||
(eq_return, eq_not_return, ne_return, ne_not_return): Remove.
|
||
(br_true, br_false): New. Use predicate_operator and
|
||
ia64_expand_prediction.
|
||
(return_true, return_false): Likewise.
|
||
(call_internal): Use ia64_expand_prediction. Don't emit stop bit.
|
||
(call_internal1, call_value_internal): Likewise.
|
||
(call_value_internal1, call_multiple_values_internal1): Likewise.
|
||
|
||
* config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
|
||
|
||
* config/ia64/ia64.md (extendsfdf2): Split only after reload.
|
||
|
||
2000-05-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtlanal.c (may_trap_p): Consider old-style and volatile
|
||
asms to trap.
|
||
|
||
Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
|
||
|
||
2000-05-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.h (predicate_operator): Declare.
|
||
|
||
* config/ia64/ia64.md (extendsfdf2): Split the nop case out
|
||
of existence.
|
||
|
||
* gensupport.c (process_rtx): Copy and post-process each member
|
||
of the define_insn rtvec individually.
|
||
|
||
Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (spell_token): New function.
|
||
(TOKEN_LEN): Add 1 for whitespace.
|
||
(_cpp_lex_file): Update to use spell_token.
|
||
* cpplib.h (E): Remove.
|
||
(TTYPE_TABLE): Update CPP_VSPACE entry.
|
||
|
||
2000-05-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (init_propagate_block_info): Watch out for conditional
|
||
branch to next instruction, and thus one outgoing edge.
|
||
|
||
* config/ia64/ia64.c (ia64_encode_section_info): Exit early
|
||
for global register variables; don't special case __[CD]TOR_LIST__;
|
||
mind ggc_p for string allocation.
|
||
|
||
2000-05-08 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
|
||
|
||
2000-05-08 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/mkfixinc.sh: fixinc.sco is no longer used
|
||
i?86-*-msdosdjgpp* no longer uses fixincludes
|
||
* fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated
|
||
* fixinc/inclhack.sh: deleted
|
||
* fixinc/hackshell.tpl: deleted
|
||
* fixinc/inclhack.tpl: deleted
|
||
* fixinc/Makefile.in: Remove dependencies on above
|
||
* fixinc/fixincl.sh: "DO NOT EDIT" text modified
|
||
|
||
2000-05-08 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
|
||
support.
|
||
|
||
2000-05-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
|
||
substitutions.
|
||
|
||
Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c: Move new lexer definitions and prototypes
|
||
to top. Conditional include these and the code if
|
||
NEW_LEXER is defined. Rename functions whose names
|
||
clash if this code included.
|
||
|
||
Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* rtl.def (COND_EXEC): Clarify.
|
||
|
||
* i386.md (extendsidi2): Clobber (reg:CC 17) in the
|
||
same fashion as zero_extendsidi2.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (predicate_operator): New.
|
||
(ia64_print_operand): Handle 'J'.
|
||
(rtx_needs_barrier): Handle COND_EXEC.
|
||
* config/ia64/ia64.h (BRANCH_COST): Define.
|
||
(PREDICATE_CODES): Update.
|
||
* config/ia64/ia64.md: Document used unspec values.
|
||
(attr predicable): New.
|
||
(movxf, movxf_internal): New.
|
||
(extendsfdf2): Don't comment out nop.
|
||
(floatdidf2): Remove.
|
||
(truncxfsf2, truncxfdf2, floatdixf2): New.
|
||
(abssi2, absdi2): Put the neg in the "true" slot.
|
||
(conditional branch instructions): Mark not predicable.
|
||
(cmov*_internal): Use predicate_operator. Split to cond_exec.
|
||
(abs*_internal): Likewise.
|
||
(alloc, set_bsp): Mark not predicable.
|
||
(barrier, insn_group_barrier, flush_cache): Likewise.
|
||
(define_cond_exec): New.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* c-decl.c: Include "tm_p.h".
|
||
|
||
* config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
|
||
(fetchadd_operand, ia64_expand_fetch_and_op): Declare.
|
||
(ia64_expand_op_and_fetch): Declare.
|
||
* config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace.
|
||
(setjmp_operand): Constify variables for XSTR.
|
||
(ia64_encode_section_info): Likewise.
|
||
(ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
|
||
values to int.
|
||
(ia64_asm_output_external): Constify name.
|
||
(process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
|
||
(process_for_unwind_directive): Provide switch default.
|
||
(ia64_expand_compare_and_swap): Remove unused variables.
|
||
(ia64_expand_builtin): Likewise.
|
||
* config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
|
||
for printing.
|
||
|
||
* config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
|
||
(symbolic_operand, function_operand, setjmp_operand): Likewise.
|
||
(shift_count_operand, shift_32bit_count_operand): Likewise.
|
||
(shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
|
||
(ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
|
||
(ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
|
||
(ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
|
||
(ia64_expand_builtin): Likewise.
|
||
(call_multiple_values_operation): Make dest_regno unsigned.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtl.def (DEFINE_COND_EXEC): New.
|
||
* md.texi: Document it.
|
||
|
||
* gensupport.c (input_file): Remove.
|
||
(struct queue_elem): Add lineno.
|
||
(rtx_ready_queue): Remove.
|
||
(errors): New.
|
||
(predicable_default): New.
|
||
(predicable_true, predicable_false): New.
|
||
(define_attr_queue, define_attr_tail): New.
|
||
(define_insn_queue, define_insn_tail): New.
|
||
(define_cond_exec_queue, define_cond_exec_tail): New.
|
||
(other_queue, other_tail): New.
|
||
(queue_pattern): New.
|
||
(process_rtx): Add patterns to the appropriate queues.
|
||
(is_predicable, identify_predicable_attribute): New.
|
||
(n_alternatives, collect_insn_data): New.
|
||
(alter_predicate_for_insn, alter_test_for_insn): New.
|
||
(shift_output_template, alter_output_for_insn): New.
|
||
(process_one_cond_exec, process_define_cond_exec): New.
|
||
(init_md_reader): Read the entire file. Process define_cond_exec.
|
||
(read_md_rtx): Return elements from the queues.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_set_1): Don't update conditional life info
|
||
if the register is not_dead.
|
||
|
||
2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
|
||
(mostlyclean): Also delete fixincl, fixinc.sh, and
|
||
specs.ready, and make clean in the fixinc subdir.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (gensupport.o): Compile for the host.
|
||
(host-prefix gensuuprt.o): Remove.
|
||
(genflags.o): Depend on gensupport.h and OBSTACK_H.
|
||
(genattrtab.o): Likewise.
|
||
(gencodes.o): Depend on gensupport.h.
|
||
(genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
|
||
(genpeep.o, genattr.o, genoutput.o): Likewise.
|
||
|
||
* gensupport.c (obstack, rtl_obstack): New.
|
||
(init_md_reader): Initialize rtl_obstack.
|
||
* gensupport.h (rtl_obstack): Declare.
|
||
(message_with_line): Declare.
|
||
|
||
* genattr.c: Remove all traces of obstack manipulation.
|
||
* gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
|
||
* genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
|
||
|
||
* genattrtab.c (obstack, rtl_obstack): Remove.
|
||
(main): Don't init rtl_obstack.
|
||
* genflags.c: Likewise.
|
||
|
||
* genrecog.c (message_with_line): Move ...
|
||
* gensupport.c: ... here.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* c-typeck.c (build_c_cast): Remove dead code.
|
||
|
||
2000-05-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (split_edge): Don't allocate global_live_at_start for
|
||
the new block unless the old blocks had them as well.
|
||
|
||
* flow.c (mark_set_1): Respect not_dead when updating reg_live.
|
||
|
||
* ifcvt.c (noce_process_if_block): Don't use an insn_b from
|
||
test_bb if a or b uses x.
|
||
|
||
2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.h: Remove conditional #define of __extension__.
|
||
* rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
|
||
RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
|
||
(ENABLE_RTL_CHECKING only).
|
||
* tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
|
||
CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
|
||
(ENABLE_TREE_CHECKING only).
|
||
* varray.h: Add __extension__ to VARRAY_CHECK macro
|
||
(ENABLE_CHECKING only).
|
||
|
||
2000-05-06 Richard Earnshaw (reanrsha@arm.com)
|
||
|
||
Use new tail-calling mechanism on ARM.
|
||
* arm.md (sibcall, sibcall_value): New expands.
|
||
(sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
|
||
(tailcalling peepholes): Delete.
|
||
(push_multi): Simplify.
|
||
* arm.c (lr_save_eliminated): Delete definition.
|
||
(pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
|
||
(output_return_instruction): Remove checks on lr_save_eliminated.
|
||
(output_arm_prologue): Remove old tail-calling code.
|
||
(arm_output_epilogue): New parameter, really_return. All callers
|
||
changed. Handle tail-calling epilogues.
|
||
* arm.h (lr_save_eliminated): Delete declaration.
|
||
(frame_pointer_needed): Delete declaration.
|
||
* arm-protos.h (arm_output_epilogue): Adjust prototype.
|
||
|
||
* arm.md (is_thumb): Examine symbol thumb_code, not expression
|
||
TARGET_ARM.
|
||
* arm.c (thumb_code): Define it.
|
||
(arm_override_options): Set it.
|
||
* arm.h (thumb_code): Declare it.
|
||
|
||
2000-05-06 Richard Earnshaw (reanrsha@arm.com)
|
||
|
||
* arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
|
||
|
||
2000-05-06 Richard Earnshaw (reanrsha@arm.com)
|
||
|
||
* arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
|
||
bogus clobber to insns.
|
||
(load_multiple_operation, store_mulitple_operation): Don't check
|
||
for it.
|
||
* arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
|
||
|
||
* arm.md (and_scc, ior_scc): Add missing mode.
|
||
|
||
* arm.md (call_value_symbol): Remove predicate from op2.
|
||
|
||
* arm.h (SPECIAL_MODE_PREDICATES): Define.
|
||
|
||
Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (get_subtarget): New function.
|
||
(force_operand, expand_expr, do_store_flag): Use it.
|
||
|
||
* toplev.c (compile_file): Don't take strlen of NAME if null.
|
||
|
||
2000-05-06 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* xcoffout.c (xcoff_current_include_file,
|
||
xcoff_current_function_file, xcoff_lastfile): Constify char *.
|
||
(xcoffout_source_file, xcoffout_source_line): Make filename 'const
|
||
char *'.
|
||
(xcoffout_declare_function): Make name 'const char *'.
|
||
(xcoffout_end_epilogue): Make fname 'const char *'
|
||
* xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
|
||
xcoffout_declare_function, xcoffout_source_line): Match above.
|
||
|
||
* aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
|
||
-maix64 is error.
|
||
* rs6000.c (print_operand): Fix lossage typo.
|
||
(output_cbranch): Remove "cr" decoration for now.
|
||
* rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
|
||
|
||
Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
|
||
constant count.
|
||
|
||
2000-05-05 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/genfixes: Improve the matching for make target names
|
||
|
||
2000-05-05 Catherine Moore <clm@cygnus.com>
|
||
|
||
* c-common.c (decl_attributes): For TYPE_DECLs attach the
|
||
attribute to the decl.
|
||
* c-decl.c (pushdecl): Propagate the USED attribute to the
|
||
type copy.
|
||
|
||
2000-05-05 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
|
||
same way emit_group_load does.
|
||
|
||
2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
|
||
|
||
* toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
|
||
(main): Likewise.
|
||
|
||
2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
|
||
|
||
* pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
|
||
|
||
Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org>
|
||
|
||
* config/openbsd.h (LINK_SPEC): pass correct flags to ld
|
||
to support -shared, on platforms with dynamic libraries.
|
||
|
||
Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* system.h (S_ISBLK): Provide fallback definition.
|
||
|
||
2000-05-05 Geoff Berry <geoffb@bops.com>
|
||
|
||
* extend.texi (Extended Asm): Document inability to give asm
|
||
statements access to condition codes.
|
||
|
||
2000-05-05 Marek Michalkiewicz <marekm@linux.org.pl>
|
||
|
||
* varasm.c (asm_emit_uninitialised): Use 0, not NULL
|
||
as arg 2 of UNIQUE_SECTION.
|
||
|
||
Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* predict.c: Remove May 4 change.
|
||
* bb-reorder.c (make_reorder_chain): Do not perform block movement
|
||
if we have predicted the branch at 50-50 probability.
|
||
|
||
2000-05-05 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (init_propagate_block_info): Fix merge error
|
||
in HAVE_conditional_execution code.
|
||
|
||
Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
|
||
shift cycle for unknown shift count. Also generates dec + brpl.
|
||
(ashlqi3_out): Don't generate dec + brpl which now generates by
|
||
`out_shift_with_cnt'.
|
||
(ashlhi3_out): Likewise.
|
||
(ashlsi3_out): Likewise.
|
||
(ashrqi3_out): Likewise.
|
||
(ashrhi3_out): Likewise.
|
||
(ashrsi3_out): Likewise.
|
||
(lshrqi3_out): Likewise.
|
||
(lshrhi3_out): Likewise.
|
||
(lshrsi3_out): Likewise.
|
||
|
||
2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* gcc.c (free_split_directories): Correct typo in explanation
|
||
of make_relative_prefix.
|
||
|
||
2000-05-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
|
||
comparison codes to branch_comparison_operator.
|
||
|
||
2000-05-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
|
||
|
||
2000-05-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
|
||
(DPBIT_FUNCS): Remove _sf_to_usi.
|
||
(stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
|
||
|
||
* ifcvt.c (noce_process_if_block): Fail if A or B modified
|
||
between condition and jump.
|
||
|
||
* libgcc2.c (near eh_context_specific): Comment #endif string.
|
||
* longlong.h: Don't use strings with embedded newlines.
|
||
|
||
2000-05-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000-protos.h: Add output_cbranch.
|
||
* config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
|
||
(print_operand): Delete %t and %T codes.
|
||
(output_cbranch): New function. Support branch prediction.
|
||
* config/rs6000/rs6000.md: Use output_cbranch for
|
||
conditional branches and returns.
|
||
|
||
2000-05-04 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
|
||
* stor-layout.c (place_field): Likewise.
|
||
* integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
|
||
* expr.c (store_expr): Make align unsigned.
|
||
* explow.c (plus_constant_wide): Make low words unsigned.
|
||
* expmed.c (choose_multiplier): Likewise.
|
||
* fold-const.c (fold): Likewise.
|
||
* tree.h (build_int_2): Likewise.
|
||
* tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
|
||
* emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
|
||
(init_emit): Change cast to unsigned char*.
|
||
* varasm.c (compare_constant_1): Add cast to char*.
|
||
* gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
|
||
* reload1.c (reload): Likewise.
|
||
|
||
* rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
|
||
|
||
Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* predict.c (estimate_probability): If no prediction was found, then
|
||
predict the successor that is the next physical block (if such a
|
||
successor exists).
|
||
|
||
2000-05-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
|
||
|
||
2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
|
||
|
||
2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
|
||
attribute macros from here ...
|
||
(CPP_SPEC): to here.
|
||
* i386/mingw32.h (CPP_PREDEFINES): Likewise.
|
||
(CPP_SPEC): Likewise.
|
||
* i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
|
||
|
||
* Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
|
||
(libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
|
||
|
||
2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
|
||
|
||
* diagnostic (vbuild_message_string, build_message_string,
|
||
build_location_prefix, output_get_prefix, init_output_buffer,
|
||
output_notice, vline_wrapper_message_with_location,
|
||
v_message_with_decl, default_print_error_function): De-constify.
|
||
(set_real_maximum_length): Prototype.
|
||
|
||
* diagnostic.h (struct output_buffer, init_output_buffer,
|
||
output_get_prefix, output_set_prefix): De-constify.
|
||
|
||
* function.c (init_function_start): Constify.
|
||
|
||
* gensupport.c (remove_constraints, process_rtx): Prototype.
|
||
|
||
* gthr-posix.h: Indent uses of #pragma.
|
||
|
||
* objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
|
||
Prototype.
|
||
|
||
* predict.c (find_expected_value): Delete prototype.
|
||
(expected_value_to_br_prob): Initialize variable `ev_reg'.
|
||
|
||
* sbitmap.h (debug_sbitmap): Prototype.
|
||
|
||
* ssa.c (compute_coalesced_reg_partition): Prototype.
|
||
|
||
* stor-layout.c (debug_rli): Prototype.
|
||
|
||
* tree.h (round_down): Prototype.
|
||
(init_function_start): Constify.
|
||
|
||
2000-05-04 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.h: #define __extension__ away if GCC_VERSION < 2095
|
||
(overly conservative). Change extern inline wrappers to
|
||
static inline, define them always, use PARAMS properly.
|
||
* cpplex.c (_cpp_get_directive_token): Don't issue pedantic
|
||
whitespace warnings for \f and \v at the beginning of a line.
|
||
|
||
Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* haifa-sched.c (schedule_insns): Free the flow edge list when it
|
||
is no longer needed
|
||
|
||
2000-05-04 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixincl/inclhack.def: added broken_cabs -
|
||
Remove `extern double cabs' declarations from math.h
|
||
* fixincl/inclhack.sh: regen
|
||
* fixincl/fixincl.x: regen
|
||
* fixincl/fixincl.c: Remove BOGOSITY code
|
||
* fixincl/mkfixinc.sh: Remove code for installing "shell" version
|
||
|
||
Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
|
||
MEM_ALIAS_SET.
|
||
* alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
|
||
when calling MEM_COPY_ATTRIBUTES.
|
||
* emit-rtl.c (operand_subword, change_address): Likewise.
|
||
* explow.c (stabilize): Likewise.
|
||
* expr.c (protect_from_queue, emit_move_insn_1): Likewise.
|
||
* integrate.c (copy_rtx_and_substitute): Likewise.
|
||
* combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
|
||
when calling MEM_COPY_ATTRIBUTES.
|
||
(make_extraction, simplify_shift_const, gen_lowpart_for_combine):
|
||
Likewise.
|
||
* cse.c (gen_lowpart_if_possible): Likewise.
|
||
* function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
|
||
* optabs.c (gen_move_insn): Likewise.
|
||
* recog.c (validate_replace_rtx_1): Likewise.
|
||
* simplify-rtx.c (add_mem_for_addr): Likewise.
|
||
* stmt.c (expand_anon_union_decl): Likewise.
|
||
* config/arm/arm.md: Likewise.
|
||
* config/h8300/h7300.c (fix_bit_operand): Likewise.
|
||
* config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
|
||
(block_move_no_loop, block_move_sequence): Likewise.
|
||
* config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
|
||
* config/alpha/alpha.c (get_aligned_mem): Likewise.
|
||
Clear MEM_ALIAS_SET.
|
||
* final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
|
||
MEM_COPY_ATTRIBUTES.
|
||
|
||
2000-05-03 Robert Lipe <robertlipe@usa.net>
|
||
|
||
* configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
|
||
to suppress libgcc1.
|
||
(i[34567]86-*-sco3.2v5*) Likewise.
|
||
(i[34567]86-*-sco3.2v4*) Likewise.
|
||
(i[34567]86-*-sco) Likewise.
|
||
(i[34567]86-*-solaris2) Likewise.
|
||
(i[34567]86-*-sysv5*) Likewise.
|
||
(i[34567]86-*-sysv4*) Likewise.
|
||
(i[34567]86-*-udk*) Likewise.
|
||
(i[34567]86-*-sysv*) Likewise.
|
||
|
||
2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.h (U): New define, to correct type of string constants.
|
||
(ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
|
||
routines, to do casts when passing unsigned strings to libc.
|
||
* cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
|
||
|
||
* cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
|
||
* cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
|
||
* cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
|
||
* cpplex.c (parse_ifdef, parse_include, validate_else): Make
|
||
second argument an U_CHAR *.
|
||
|
||
* cppinit.c (builtin_array): Make name and value U_CHAR *, add
|
||
length field, clean up initializer.
|
||
(ISTABLE): Add __extension__ to designated-
|
||
initializers version.
|
||
* cpplex.c (CHARTAB): Likewise.
|
||
|
||
* mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
|
||
case so the file won't be empty.
|
||
|
||
Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (struct reorder_block_def): Member succ removed.
|
||
(REORDER_BLOCK_SUCC): Removed.
|
||
(enum reorder_skip_type): Removed.
|
||
(skip_insns_between_block): Renamed to skip_insns_after_block.
|
||
Removed second argument. Removed dead code and cleaned up.
|
||
(make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
|
||
(reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
|
||
second parameter to skip_insns_after_block.
|
||
|
||
Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.c (staticp, case LABEL_DECL): New case.
|
||
|
||
2000-05-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (start.encap): Do not depend on LIBGCC1.
|
||
|
||
* mklibgcc1.in: Fix typo last change.
|
||
|
||
2000-05-03 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
|
||
(LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
|
||
(GCC_CFLAGS): Use it.
|
||
(LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
|
||
* cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
|
||
objc/Make-lang.in: Use it.
|
||
|
||
2000-05-03 Jason R Thorpe <thorpej@zembu.com>
|
||
|
||
* config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
|
||
|
||
2000-05-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* mklibgcc.in: Restrict OLDCC=GCC test to native. Equate
|
||
LIBGCC1 empty with libgcc1.null.
|
||
|
||
Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
|
||
change.
|
||
|
||
2000-05-03 Greg McGary <gkm@gnu.org>
|
||
|
||
* tree.h (tree_common): Add bounded_flag member. Remove
|
||
inaccurate comment about number of remaining bits.
|
||
(BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
|
||
BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
|
||
MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
|
||
TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
|
||
TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
|
||
(TYPE_QUAL_BOUNDED): New constant.
|
||
(TYPE_QUALS): Handle bounded qualifier.
|
||
(TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
|
||
(TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
|
||
TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
|
||
TYPE_AMBIENT_BOUNDEDNESS): New macros.
|
||
(MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
|
||
(tree_type): Add pointer_depth member. Remove
|
||
inaccurate comment about number of remaining bits.
|
||
(DECL_POINTER_DEPTH): Add macro.
|
||
(tree_decl): Add pointer_depth member.
|
||
|
||
Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr-protos.h (test_hard_reg_class): Declared.
|
||
* config/avr/avr.c (ashrhi3_out): optimized shift by 15.
|
||
(lshrhi3_out): Likewise.
|
||
(ashrsi3_out): bugfix in shift by 8.
|
||
(test_hard_reg_class): New function.
|
||
* config/avr/avr.md: Bugfix inside conditions in peepholes.
|
||
(ashlhi3): removed define_expand of this pattern.
|
||
(*ashlhi3_insn): renamed to ashlhi3.
|
||
(ashlsi3): removed define_expand of this pattern.
|
||
(*ashlsi3_insn): renamed to ashlsi3.
|
||
(ashrqi3): removed define_expand of this pattern.
|
||
(*ashrqi3_insn): renamed to ashrqi3.
|
||
(ashrhi3): removed define_expand of this pattern.
|
||
(*ashrhi3_insn): renamed to ashrhi3.
|
||
(ashrsi3): removed define_expand of this pattern.
|
||
(*ashrsi3_insn): renamed to ashrsi3.
|
||
(lshrhi3): removed define_expand of this pattern.
|
||
(*lshrhi3_insn): renamed to lshrhi3.
|
||
(lshrsi3): removed define_expand of this pattern.
|
||
(*lshrsi3_insn): renamed to lshrsi3.
|
||
|
||
2000-05-03 Rodney Brown <RodneyBrown@pmsc.com>
|
||
|
||
* config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
|
||
inclusion of "system.h".
|
||
|
||
Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (ia64_encode_section_info): Add check for
|
||
TREE_ASM_WRITTEN.
|
||
|
||
2000-05-03 David Mosberger <davidm@hpl.hp.com>
|
||
|
||
* config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
|
||
if -mauto-pic is on.
|
||
(ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
|
||
-mconstant-gp is in effect and function-descriptors are being used
|
||
to make indirect calls.
|
||
* config/ia64/ia64.h (MASK_CONST_GP): New macro.
|
||
(MASK_AUTO_PIC): Ditto.
|
||
(TARGET_CONST_GP): Ditto.
|
||
(TARGET_AUTO_PIC): Ditto.
|
||
(TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
|
||
(ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
|
||
-mno-pic is in effect.
|
||
(ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
|
||
* config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
|
||
-mauto-pic is in effect.
|
||
(gprel64_offset): New pattern.
|
||
(load_gprel64): Ditto.
|
||
(call): Handle -mauto-pic like -mno-pic (don't use fptr). If
|
||
-mconstant-gp is in effect, no need to preserve gp around direct
|
||
calls.
|
||
(call_value): Ditto.
|
||
* config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
|
||
(FUNCTION_PROFILER): Define.
|
||
* config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
|
||
@fptr() directive when -mno-pic or -mauto-pic is in effect.
|
||
(ASM_OUTPUT_DESTRUCTOR): Ditto.
|
||
|
||
2000-05-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
|
||
(libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
|
||
(libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
|
||
(mklibgcc, libgcc.mk): New targets.
|
||
(libgcc.a): Use libgcc.mk.
|
||
(stmp-multilib): Likewise.
|
||
(stmp-multilib-sub): Remove.
|
||
(mostlyclean): Don't delete libgcc2 temp files.
|
||
* configure.in (AC_PROG_CC_C_O): Add.
|
||
(NO_MINUS_C_MINUS_O): Substitute it.
|
||
(all_outputs): Add mklibgcc.
|
||
* mklibgcc.in: New file.
|
||
|
||
2000-05-03 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cppexp.c (op_t): Make an int.
|
||
|
||
* rtlanal.c (dead_or_set_regno_p): Remove unused variable.
|
||
|
||
* varasm.c (initializer_constant_valid_p): Fix parenthesis.
|
||
|
||
* gensupport.c (process_rtx): Fix macros used.
|
||
|
||
2000-05-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
|
||
call-clobbered registers of a call.
|
||
|
||
Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* gensupport.c: New file.
|
||
* gensupport.h: New file.
|
||
* Makefile.in (HOST_RTL): Depend on gensupport.
|
||
(gensupport.o) New rule.
|
||
* genattr.c: Use gensupport for reading .md files.
|
||
* genattrtab.c: Ditto.
|
||
* gencodes.c: Ditto.
|
||
* genconfig.c: Ditto.
|
||
* genemit.c: Ditto.
|
||
* genextract.c: Ditto.
|
||
* genflags.c: Ditto.
|
||
* genopinit.c: Ditto.
|
||
* genoutput.c: Ditto.
|
||
* genpeep.c: Ditto.
|
||
* genrecog.c: Ditto.
|
||
* rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
|
||
* md.texi (Insn Splitting): Document define_insn_and_split.
|
||
|
||
Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* flow.c (verify_flow_info): Added two more sanity checks. The
|
||
first checks that the blocks are numbered consecutively. The second
|
||
checks that n_basic_blocks is actually equal to the number of
|
||
basic blocks in the insn chain.
|
||
|
||
2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h: Add accessor macros for token lists.
|
||
* cpplib.c, cpphash.c, cpplex.c: Use them.
|
||
|
||
Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
|
||
memory usage if not in a function.
|
||
* varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
|
||
return address if static.
|
||
|
||
Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest
|
||
whether address may trap.
|
||
|
||
Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder (chain_reorder_blocks): Changed code to test for
|
||
EDGE_FALLTHRU rather than making erroneous assumption that the
|
||
first outgoing edge is the fall-through edge.
|
||
|
||
Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
|
||
|
||
* config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
|
||
ABI for varargs, across all MIPS. This is incompatible because the
|
||
va_list (__builtin_va_list) structure is different, so a compilation
|
||
unit passing a va_list and a compilation unit being passed one, should
|
||
both be compiled with the same ABI. (The old structure had two
|
||
pointers, now it has three.)
|
||
|
||
Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (struct reorder_block_def): Remove members end,
|
||
block_begin, and block_end.
|
||
(REORDER_BLOCK_OLD_END): Delete.
|
||
(REORDER_BLOCK_BEGIN): Delete.
|
||
(REORDER_BLOCK_END): Delete.
|
||
(chain_reorder_blocks): Remove dead code.
|
||
|
||
Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (remove_scope_notes): Check for both types of scope
|
||
notes as the end of a basic block before deleting.
|
||
|
||
2000-05-02 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* final.c (final_start_function): Fix spelling of "necessary".
|
||
|
||
2000-05-02 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* toplev.c (debug_ignore_block): Return int.
|
||
* dwarf2out.c (dwarf2out_ignore_block): Likewise.
|
||
* toplev.h, dwarf2out.h: Adjust.
|
||
* emit-rtl.c (remove_unnecessary_notes): Test return value.
|
||
|
||
* emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
|
||
* toplev.c, final.c, rtl.h: Adjust.
|
||
|
||
2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
|
||
* configure.in: Look for makeinfo in the unified tree, then
|
||
for a system makeinfo which is sufficiently new.
|
||
* Makefile.in: If configure says makeinfo is too old, don't
|
||
build or install Info documentation.
|
||
|
||
2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (collect_params): Fix off-by-one error.
|
||
(dump_hash_helper): Dump all four macro nodetypes.
|
||
|
||
2000-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* cpphash.c (trad_stringify): Adjust p after stringification as
|
||
well.
|
||
|
||
2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (CPP_POP, parse_cleanup_t): Delete.
|
||
(cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
|
||
|
||
* cppfiles.c (file_cleanup): Delete.
|
||
* cpphash.c (macro_cleanup): Delete.
|
||
(collect_objlike_expansion, collect_funlike_expansion,
|
||
macarg, scan_arguments): Remove CPP_POP case.
|
||
|
||
* cpplex.c (null_cleanup): Delete.
|
||
(cpp_pop_buffer): Do the work that was done in the cleanups
|
||
here. Call _cpp_unwind_if_stack from here.
|
||
(_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
|
||
cpp_scan_buffer): Run until we see CPP_EOF and the top of
|
||
stack is the buffer _below_ the one we stacked.
|
||
(cpp_get_token): Always pop an exhausted buffer. Return
|
||
CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof.
|
||
* cpplib.c (skip_if_group): Don't call cpp_get_token to
|
||
increment the line number.
|
||
(_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
|
||
|
||
* fix-header.c (read_scan_file) [parsing getchar()]: Run until
|
||
we see CPP_EOF and the top of stack is the buffer _below_ the
|
||
one we stacked.
|
||
* scan-decls.c: Likewise.
|
||
|
||
2000-05-02 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (ia64_encode_section_info): Handle the case
|
||
where this function is called for the second time on a decl that
|
||
has had its section info changed in such a way as to move it out
|
||
of small data/bss.
|
||
* config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
|
||
|
||
2000-05-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
|
||
the sequence we're moving, not to merge_bb->head.
|
||
|
||
2000-05-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
|
||
reference to alpha/t-linux.
|
||
(alpha*-*-linux-gnu*): Likewise.
|
||
* configure: Rebuild.
|
||
|
||
* calls.c (expand_call): Don't emit reg notes for a sibcall.
|
||
|
||
* flow.c (calculate_global_regs_live): Skip for_each_successor_phi
|
||
if not in SSA form.
|
||
|
||
* ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
|
||
|
||
2000-05-01 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
|
||
TREE_THIS_VOLATILE.
|
||
|
||
2000-05-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (noce_emit_cmove): Conditionally compile call to
|
||
emit_conditional_move.
|
||
|
||
2000-05-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
|
||
as the dynamic linker.
|
||
|
||
2000-05-01 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (open_include_file): Open file in blocking mode.
|
||
(read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
|
||
Only exclude block devices and directories.
|
||
|
||
* cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
|
||
static. Allocate the hashnode and its string in the same
|
||
block of memory.
|
||
(del_HASHNODE): Don't free h->name.
|
||
(_cpp_lookup): If there is no entry for this string, create
|
||
one, of type T_VOID.
|
||
(_cpp_lookup_slot): Delete.
|
||
* cpphash.h: Update prototypes.
|
||
|
||
* cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
|
||
not hp == NULL.
|
||
* cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
|
||
do_unassert, cpp_defined): Use _cpp_lookup. Don't create a
|
||
node here, just fill in the value field properly. "Delete"
|
||
entries by setting the value field to T_VOID. Check for
|
||
hp->type == T_VOID, not hp == NULL.
|
||
|
||
* Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
|
||
* cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include
|
||
hashtab.h.
|
||
|
||
2000-05-01 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.c (print_operand_address): Do not add
|
||
zero to SP.
|
||
|
||
* config/mn10300/mn10300.c (expand_epilogue): If SP is to be
|
||
adjusted by less than 256 bytes, use ret regardless of having any
|
||
callee-saved register to restore.
|
||
|
||
2000-05-01 Laurynas Biveinis <lauras@softhome.net>
|
||
|
||
* tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
|
||
|
||
2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* config/i386/djgpp.h (INT_ASM_OP): Define.
|
||
(CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
|
||
(ASM_WEAKEN_LABEL): Define.
|
||
(MASK_BNU210): Define.
|
||
(SUBTARGET_SWITCHES): Define.
|
||
(SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
|
||
(MAKE_DECL_ONE_ONLY): Define.
|
||
(UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
|
||
|
||
2000-05-01 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* i386/cygwin.h (INT_ASM_OP): Define.
|
||
|
||
Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (address_cost): renamed to avr_address_cost.
|
||
* config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
|
||
|
||
Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
|
||
__tmp_reg__ and __zero_reg__ initialization.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (propagate_one_insn): Mark sets even when the insn is dead.
|
||
|
||
* ifcvt.c (noce_process_if_block): Fail the conversion if X is
|
||
referenced bewteen the condition and the jump. Don't delete
|
||
anything but the jump.
|
||
|
||
Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (scope_def): New struct.
|
||
(scope_forest_info): New struct.
|
||
(struct reorder_block_def): New member "scope".
|
||
(REORDER_BLOCK_SCOPE): New macro.
|
||
(relate_bbs_with_scopes): New function and prototype.
|
||
(make_new_scope): Likewise.
|
||
(build_scope_forest): Likewise.
|
||
(remove_scope_notes): Likewise.
|
||
(insert_intra_1): Likewise.
|
||
(insert_intra_bb_scope_notes): Likewise.
|
||
(insert_inter_bb_scope_notes): Likewise.
|
||
(rebuild_scope_notes): Likewise.
|
||
(free_scope_forest_1): Likewise.
|
||
(free_scope_forest): Likewise.
|
||
(dump_scope_forest): Likewise.
|
||
(dump_scope_forest_1): Likewise.
|
||
(chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
|
||
Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
|
||
block.
|
||
(reorder_basic_blocks): Added calls to build_scope_scope_forest
|
||
and remove_scope_notes before reordering is done. Added calls to
|
||
rebuild_scope_notes, free_scope_forest, and reorder_blocks after
|
||
after reordering is done.
|
||
|
||
2000-40-30 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/inclhack.def: Added definitions needed by OSR5,
|
||
removed two stale entries (defined away with OLD_CPP).
|
||
* fixinc/inclhack.sh: regen
|
||
* fixinc/fixincl.x: regen
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
|
||
from the last insn in the sequence.
|
||
|
||
2000-04-30 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (cpp_idcmp): New function.
|
||
* cpplib.h: Prototype it.
|
||
* scan_decls.c (scan_decls): Use it to inspect token names.
|
||
* fix-header.c (read_scan_file): Likewise. Set system_header_p on
|
||
the file being run through the preprocessor.
|
||
(check_macro_names): Provide length of token to cpp_defined.
|
||
|
||
* Makefile.in: Remove stale warning message.
|
||
|
||
* cppfiles.c (redundant_include_p): Provide length of token to
|
||
cpp_defined.
|
||
* cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
|
||
values are unsigned int.
|
||
(_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
|
||
(_cpp_lookup_slot): Do not calculate the hash, either.
|
||
* cpphash.h: Update prototypes.
|
||
* cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
|
||
Hashes are unsigned int. Calculate hash here, pass by value
|
||
to _cpp_lookup_slot.
|
||
|
||
2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* simplify-rtx.c (check_value_useless): Delete function.
|
||
(discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
|
||
by hand.
|
||
(cselib_invalidate_regno): Likewise.
|
||
(cselib_invalidate_mem_1): Likewise.
|
||
(references_value_p): Recognize useless values by the fact that they
|
||
have no locations.
|
||
(discard_useless_values): Likewise.
|
||
(cselib_record_set): This may turn a useless value
|
||
into a useful one.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/d30v: New port.
|
||
|
||
* configure.in (d30v-*): Set fp format.
|
||
* configure: Rebuild.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* ifcvt.c: New file.
|
||
* Makefile.in (OBJS): Add it.
|
||
(ifcvt.o): New target.
|
||
* jump.c (jump_optimize_1): Remove all code related to if-conversion,
|
||
and conditional arithmetic.
|
||
(find_insert_position): Remove.
|
||
* timevar.def (TV_IFCVT, TV_IFCVT2): New.
|
||
* toplev.c (DFI_ce, DFI_ce2): New.
|
||
(dump_file): Add ce and ce2 dumps.
|
||
(rest_of_compilation): Run if_convert a couple o times. Set
|
||
cse_not_expected after cse2. Don't set no_new_pseudos until
|
||
after sched1 or recompute_reg_usage.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/t-crtbe (crtbegin.o): Add "-I.".
|
||
(crtend.o, crtbeginS.o, crtendS.o): Likewise.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (struct reg_cond_life_info): New.
|
||
(struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
|
||
(init_propagate_block_info): Initialize them.
|
||
(free_propagate_block_info): Destruct them.
|
||
(mark_set_1): Consider conditional life before killing a register.
|
||
(mark_regno_cond_dead): New.
|
||
(free_reg_cond_life_info): New.
|
||
(flush_reg_cond_reg_1, flush_reg_cond_reg): New.
|
||
(ior_reg_cond, not_reg_cond, nand_reg_cond): New.
|
||
(mark_used_reg): Record conditional life.
|
||
|
||
* haifa-sched.c (schedule_insns): Disable death counting
|
||
sanity check for HAVE_conditional_execution.
|
||
|
||
2000-04-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (TIMEVAR_H): New.
|
||
(ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
|
||
(timevar.h): Remove rule.
|
||
|
||
2000-04-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/crtend.asm: Use C comments instead of #.
|
||
* config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
|
||
|
||
* config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
|
||
|
||
2000-04-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.h (enum node_type: Take out T_MCONST.
|
||
(union hashval): Move into struct hashnode.
|
||
(struct hashnode): Pack tighter. Remove file, line, col
|
||
members.
|
||
* cpphash.c: Constify most of the macro-definition structures.
|
||
(struct definition): Replace by struct object_defn
|
||
and struct funct_defn. Put file, line, column information
|
||
here. All users updated to match.
|
||
(_cpp_create_definition, _cpp_macroexpand): Remove special
|
||
case for #define WORD OTHERWORD.
|
||
* cpplib.c (do_undef): Remove T_MCONST case.
|
||
|
||
* cpphash.h: Move struct reflist, struct definition, and the
|
||
DEFINITION typedef to cpphash.c. Use 'struct definition *' in
|
||
union hashval. _cpp_free_definition takes a HASHNODE pointer.
|
||
* cpphash.c (_cpp_free_definition): Free data pointed to by
|
||
MCONST, XCONST, MACRO, and FMACRO nodes properly.
|
||
(_cpp_create_definition, del_HASHNODE): Just call
|
||
_cpp_free_definition to clear out a hashnode.
|
||
* cpplib.c (do_pragma_poison): Likewise.
|
||
|
||
Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
|
||
LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
|
||
FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
|
||
(REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
|
||
(REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
|
||
REGNO_AM33_P): Redefine in terms of the new macros.
|
||
(CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
|
||
(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
|
||
STRUCT_VALUE): Likewise.
|
||
(STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
|
||
ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved.
|
||
|
||
Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* regmove.c (struct record_stack_memrefs_data): New.
|
||
(record_stack_memrefs): New function.
|
||
(combine_stack_adjustments_for_block): Use it.
|
||
|
||
Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (calls_function_1): Properly handle TREE_LIST expressions;
|
||
use special_function_p to detect alloca.
|
||
|
||
Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org>
|
||
|
||
* gcc.texi: Fixes for makeinfo 4.0 --html.
|
||
|
||
2000-04-28 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* pcp.h: Delete file.
|
||
|
||
2000-04-28 Kazu Hirata <kazu@hxi.com>
|
||
|
||
* h8300.c (function_epilogue): Clean up flags when the last insn
|
||
in a function is a barrier.
|
||
|
||
2000-04-28 Chris Demetriou <cgd@sibyte.com>
|
||
|
||
* configure.in (sparc-hal-solaris2*): protect [] glob from
|
||
my expansion.
|
||
(mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
|
||
rather than hard-coded constants in target_cpu_default2.
|
||
* configure: Regenerate.
|
||
|
||
2000-04-28 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* tree.c (get_callee_fndecl): Extract the initial value from
|
||
a readonly decl.
|
||
|
||
2000-04-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* varasm.c (record_constant_1): Record the CODE_LABEL when
|
||
taking the address of a LABEL_REF.
|
||
|
||
2000-04-28 Richard Henderson <rth@cygnus.com>
|
||
Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (combine_pending_stack_adjustment_and_call): Return the
|
||
adjustment; don't do the stack adjust.
|
||
(expand_call): Call compute_argument_block_size right before
|
||
allocating the block; update comment; don't do alignment sanity
|
||
checking for sibling call; use args_size instead of
|
||
unadjusted_args_size before args_size is adjusted. Use
|
||
combine_pending_stack_adjustment_and_call to compute stack adjust
|
||
for must_preallocate case.
|
||
|
||
* expr.c (push_block): Remove shadow `temp' in inner scope.
|
||
|
||
2000-04-28 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* toplev.c (rest_of_compilation): Call
|
||
note_deferral_of_defined_inline_function even if the function
|
||
can't be inlined.
|
||
|
||
2000-04-28 Scott Bambrough <scottb@netwinder.org>
|
||
|
||
* cpplex.c (_cpp_scan_line): Fix buffer overwrite.
|
||
|
||
2000-04-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
|
||
|
||
2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* timevar.c (init_timevar): DeANSIfy function definition.
|
||
|
||
2000-04-27 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* Makefile.in (timevar.o): Depend on flags.h.
|
||
* timevar.c (unused_stack_instances): New variable.
|
||
(timevar_push): Take a timevar_stack_def from
|
||
unused_stack_instances if available.
|
||
(timevar_pop): Push the popped timevar_stack_def onto
|
||
unused_stack_instances.
|
||
(TIMEVAR_ENABLE): New macro.
|
||
(timevar_def): Make standalone a 1-bit field. Add field used.
|
||
(get_time): Rename parameter to now. Return after clearing it if
|
||
not TIMEVAR_ENABLE.
|
||
(init_timevar): Do nothing if not TIMEVAR_ENABLE.
|
||
(timevar_pop): Likewise.
|
||
(timevar_stop): Likewise.
|
||
(timevar_push): Likewise. Mark the timing variable as used.
|
||
(timevar_start): Likewise.
|
||
(timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
|
||
timevars that were never used.
|
||
|
||
2000-04-27 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
|
||
always TREE_READONLY.
|
||
|
||
2000-04-27 Ulrich Drepper <drepper@cygnus.com>
|
||
|
||
* i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
|
||
for call instruction with mode QImode.
|
||
|
||
2000-04-27 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* Makefile.in (OBJS): Add timevar.o.
|
||
(toplev.o): Depend on timevar.h.
|
||
(ggc-simple.o): Likewise.
|
||
(ggc-page.o): Likewise.
|
||
(timevar.o): New rule.
|
||
(timevar.h): New rule.
|
||
|
||
* timevar.h: New file.
|
||
* timevar.c: Likewise.
|
||
* timevar.def: Likewise.
|
||
|
||
* toplev.h (gc_time, parse_time, varconst_time): Remove.
|
||
* toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
|
||
throughout.
|
||
(TIMEVAR): Remove macro.
|
||
(gc_time, parse_time, varconst_time, integration_time, jump_time,
|
||
cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
|
||
flow_time, combine_time, regmove_time, sched_time,
|
||
local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
|
||
sched2_time, dbr_sched_time, reorder_blocks_time,
|
||
rename_registers_time, shorten_branch_time, stack_reg_time,
|
||
to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
|
||
all_time): Remove.
|
||
(compile_file): Don't initialize time variables. Call
|
||
init_timevar and start TV_TOTAL timer. Call timevar_print instead
|
||
of many calls to print_time.
|
||
(rest_of_compilation): Add timing for reload_cse_regs.
|
||
(get_run_time): Removed to timevar.c.
|
||
(print_time): Likewise.
|
||
(get_run_time): Implement using TV_TOTAL time variable.
|
||
(print_time): Get total run time from get_run_time.
|
||
* ggc-page.c (ggc_collect): Push and pop TV_GC instead of
|
||
computing elapsed time explicitly.
|
||
* ggc-simple.c (ggc_collect): Likewise.
|
||
(gc_time): Remove declaration.
|
||
|
||
2000-04-27 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* calls.c (combine_pending_stack_adjustment_and_call): New function.
|
||
(expand_call): Use it.
|
||
|
||
2000-04-27 Jan Hubicka <jh@suse.cz>
|
||
|
||
* flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
|
||
fields.
|
||
|
||
Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.md (movhi): Simplify. Prefer data
|
||
registers.
|
||
|
||
Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* function.c (epilogue_done): Pass whole insn to record_insns.
|
||
|
||
Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cse.c (CSE_ADDRESS_COST): Remove.
|
||
(find_best_addr): Add new parameter "MODE", use address_cost instead
|
||
of CSE_ADDRESS_COST
|
||
(address_cost): New.
|
||
(fold_rtx): Update call of find_best_addr.
|
||
* rtl.h (address_cost): Declare.
|
||
* loop.c (general_induction_var): Add new parameter "MODE", use
|
||
address_cost instead of ADDRESS_COST
|
||
(init_loop): Use address_cost instead of ADDRESS_COST.
|
||
(check_insn_for_givs): Update call of general_induction_var.
|
||
(find_mem_givs): Likewise.
|
||
(consec_sets_giv): Likewise.
|
||
* config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
|
||
* i386.c (ix86_address_cost): New.
|
||
* i386-protos.h (ix86_address_cost): Declare.
|
||
|
||
Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.md (movqi): Simplify. Prefer data
|
||
registers.
|
||
|
||
Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* expr.c (store_expr): Use clear_storage instead of direct memset
|
||
libcall.
|
||
|
||
Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.c (mn10300_address_cost): Test
|
||
ASHIFT, AND and LABEL_REF.
|
||
|
||
Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* invoke.texi (-foptimize-sibling-calls): Fix.
|
||
|
||
Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (load_mems) Don't use hard registers for the hoisting.
|
||
|
||
* unroll.c (unroll_loop): Avoid overflow in the n_iterations
|
||
calculation; rename const_equiv array in the preconditioning code
|
||
from loop_unroll to loop_unroll_precondition
|
||
|
||
2000-04-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (struct propagate_block_info): Remove new_dead, new_live;
|
||
add new_set.
|
||
(propagate_one_insn): Clear it. Don't update reg_live here.
|
||
(init_propagate_block_info): Update for pbi member changes.
|
||
(free_propagate_block_info): Likewise.
|
||
(mark_set_1): Know that zero_extract, sign_extract, and
|
||
strict_low_part don't kill their argument. Alter hard subregs.
|
||
Update new_set for non-CLOBBER sets. Update reg_live.
|
||
(find_auto_inc): Update reg_live, not new_dead.
|
||
(mark_used_reg): Update reg_live, not new_live. Examine new_set
|
||
to determine if the reg in question was set this insn. Only update
|
||
reg info with PROP_REG_INFO.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (allocate_reg_life_data): Set max_regno here ...
|
||
(life_analysis): ... not here.
|
||
|
||
* flow.c (calculate_global_regs_live): Force stack pointer
|
||
live at end.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (redirect_exp_1): Rework from old redirect_exp. Never
|
||
commit change group changes.
|
||
(invert_exp_1): Similarly.
|
||
(redirect_exp, invert_exp): Use them.
|
||
(redirect_jump_1): New.
|
||
(invert_jump_1): New.
|
||
(jump_optimize_1): Remove code subsumed by condexec.c.
|
||
* rtl.h (invert_jump_1, redirect_jump_1): Declare.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
|
||
|
||
* genconfig.c (main): Set all HAVE_foo to 1.
|
||
|
||
* graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
|
||
|
||
2000-04-26 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* invoke.texi: Document -fssa flag.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (count_reg_sets_1): Remove.
|
||
(count_reg_sets, count_reg_references): Remove.
|
||
(recompute_reg_usage): Implement with update_life_info.
|
||
Reallocate life data.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (update_life_info): Consider blocks null to mean the
|
||
universal set.
|
||
(calculate_global_regs_live): Likewise.
|
||
(life_analysis): Do that instead of collecting all_blocks.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (tidy_fallthru_edge): Don't delete the jump when it's
|
||
a still-valid conditional jump.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly.
|
||
|
||
* bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
|
||
* flow.c (calculate_loop_depth): Remove.
|
||
* output.h (calculate_loop_depth): Don't declare.
|
||
* toplev.c (rest_of_compilation): Expand calculate_loop_depth
|
||
inline; run estimate_probability at the same time.
|
||
|
||
2000-04-26 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplib.h: "~=" is not a single pp-token.
|
||
* cpplex.c: Correct commentary.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_set_1): New arguments code and flags; update all
|
||
callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
|
||
test in one place. Tidy flags tests. Don't bias REG_N_REFS by
|
||
loop_depth when optimizing for size. Do new_dead update after
|
||
emitting REG_UNUSED notes. Merge mark_set_reg code.
|
||
(mark_set_reg): Remove.
|
||
(propagate_one_insn): Use mark_set_1 for call-clobbered registers;
|
||
arrange to not emit REG_UNUSED notes.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
|
||
* ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (propagate_one_insn): Break out from propagate_block.
|
||
(init_propagate_block_info): Likewise.
|
||
(free_propagate_block_info): Likewise.
|
||
(propagate_block): Use them. Export.
|
||
* basic-block.h: Declare them all.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* basic-block.h (life_analysis): Declare here ...
|
||
* output.h: ... not here.
|
||
* flow.c (life_analysis): Remove nregs parameter; replace
|
||
remove_dead_code with flags. Remove ssa dead code check.
|
||
Only init alias analysis if we'll use it.
|
||
* reg-stack.c (reg_to_stack): Update life_analysis arguments.
|
||
* ssa.c (convert_to_ssa): Likewise.
|
||
(convert_from_ssa): Likewise.
|
||
* toplev.c (rest_of_compilation): Likewise.
|
||
|
||
2000-04-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (flow_delete_block): Rename from delete_block. Export.
|
||
* basic-block.h (flow_delete_block): Declare.
|
||
|
||
2000-04-26 David S. Miller <davem@redhat.com>
|
||
|
||
* optabs.c (emit_libcall_block): Verify insns with INSN_P before
|
||
taking a PATTERN of it.
|
||
|
||
2000-04-26 <NeilB@earthling.net>
|
||
|
||
* cpplex.c (spell_other, spell_char): Remove.
|
||
(SPELL_CHAR): New.
|
||
(token_spelling, trigraph_map): Use unsigned chars.
|
||
(_cpp_lex_line): Tidy up the switch statement.
|
||
* cpplib.h: Implement spell_char with spell_string.
|
||
(C): New.
|
||
|
||
2000-04-26 <RodneyBrown@pmsc.com>
|
||
|
||
* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
|
||
* pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
|
||
|
||
2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
|
||
reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
|
||
dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
|
||
dwarf2out_return_save, dwarf2out_return_reg,
|
||
dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
|
||
add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
|
||
gen_compile_unit_die, dwarf2out_init): Constify a char*.
|
||
|
||
* dwarf2out.h (dwarf2out_init): Likewise.
|
||
|
||
* dwarfout.c (filename_entry, primary_filename, last_filename,
|
||
type_tag, output_compile_unit_die, dwarfout_init): Likewise.
|
||
|
||
* tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
|
||
dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
|
||
dwarf2out_return_reg): Likewise.
|
||
|
||
2000-04-26 Andreas Jaeger <aj@suse.de>
|
||
|
||
* extend.texi (Function Attributes): Fix description of pure
|
||
attribute.
|
||
|
||
2000-04-26 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
|
||
before calling rest_of_compilation.
|
||
|
||
2000-04-26 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
|
||
last patch.
|
||
|
||
2000-04-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* cse.c (cse_insn): Emit barrier after unconditional jump.
|
||
|
||
* calls.c (expand_call): Disable tail call generation once
|
||
rtx_equal_function_value_matters is false.
|
||
|
||
* reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
|
||
like EDGE_EH edges.
|
||
|
||
2000-04-25 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
|
||
|
||
* dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
|
||
|
||
* dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
|
||
is the primary DIE for a member function.
|
||
(gen_decl_die): Call set_decl_origin_self here.
|
||
* dwarfout.c (output_decl): And here.
|
||
* integrate.c (output_inline_function): Not here.
|
||
Don't clear DECL_INLINE until after calling rest_of_compilation.
|
||
(set_decl_origin_self): No longer static.
|
||
* tree.h: Add prototype.
|
||
* toplev.c (note_deferral_of_defined_inline_function): Only write
|
||
out abstract instance for actual inlines.
|
||
|
||
2000-04-25 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
|
||
EXTENDED_REGS only if TARGET_AM33.
|
||
* config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
|
||
SP_REGS to register allocation and reloading unless absolutely
|
||
necessary.
|
||
(movsi3): Remove special-case of adding non-constants to SP.
|
||
|
||
2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
|
||
INCLUDES to search and does not provide any of its own. Also it
|
||
now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
|
||
parameters. Also it does not call AC_DEFINE.
|
||
(gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
|
||
AC_DEFINE and provides for automatic entries for autoheader.
|
||
(gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
|
||
|
||
* configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
|
||
so we can pass -I flags and include gansidecl.h/system.h in this
|
||
test.
|
||
|
||
* acconfig.h: Delete all NEED_DECLARATION_* entries.
|
||
|
||
2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
|
||
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
|
||
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
|
||
|
||
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
|
||
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
|
||
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
|
||
for these macros. Clean up spacing and linewraps.
|
||
|
||
2000-04-26 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* calls.c (expand_call): Use get_callee_fndecl.
|
||
|
||
* print-tree.c (print_node): Print the chain of an _EXPR.
|
||
|
||
Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com>
|
||
Jim Wilson <wilson@cygnus.com>
|
||
Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc
|
||
and gp save/restore problems.
|
||
* config/ia64/crtend.asm: Add IA-64 unwind support.
|
||
* config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
|
||
in fr_pad_size calculation.
|
||
(save_restore_insns): Move PR save area. Correct uses of
|
||
RTX_FRAME_RELATED_P.
|
||
(ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
|
||
(ia64_expand_epilogue): Add eh_epilogue support.
|
||
(ia64_function_prologue): Emit .prologue directive.
|
||
(ia64_init_machine_status, ia64_mark_machine_status): New functions.
|
||
(ia64_override_options): Set init_machine_status and
|
||
mark_machine_status.
|
||
(rtx_needs_barrier): Handle bsp reads and writes.
|
||
(spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
|
||
New static variables.
|
||
(process_set, process_for_unwind_directive): New functions.
|
||
* config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
|
||
ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
|
||
ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
|
||
macros.
|
||
(EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
|
||
(IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
|
||
(struct machine_function): Define.
|
||
* config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
|
||
|
||
2000-04-25 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/Makefile.in: make the removal of old programs more
|
||
robust
|
||
* fixinc/mkfixinc.sh: use the two new targets in the Makefile:
|
||
install-bin and install-sh
|
||
|
||
2000-04-25 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
|
||
defined, define to return zero.
|
||
(function_cannot_inline_p): If a function has any target
|
||
specific attributes, then use the macro
|
||
FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
|
||
whether it can be inlined. If it cannot, issue a suitable
|
||
explanation.
|
||
|
||
* tm.texi: Add a new node 'Inlining' to document the new macro
|
||
FUNCTION_ATTRIBUTE_INLINABLE_P.
|
||
|
||
2000-04-25 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
|
||
commentary.
|
||
|
||
2000-04-25 Neil Booth <NeilB@earthling.net>
|
||
|
||
Restore previous patch, plus the following fixes:
|
||
|
||
* cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
|
||
flags, not CPP_OPEN_PAREN.
|
||
* cpplex.c (expand_token_space, init_token_list,
|
||
cpp_free_token_list): Put the dummy token at list->tokens[-1].
|
||
(_cpp_lex_line, _cpp_lex_file): token list is 0-based.
|
||
|
||
Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* config/i386/freebsd.h (INT_ASM_OP): Define.
|
||
|
||
Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (strength_reduce): Fix typo in the last checkin.
|
||
|
||
Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stor-layout.c (finalize_record_size): Simplify to use existing
|
||
functions.
|
||
(compute_record_mode): No longer static.
|
||
* tree.h (compute_record_mode): New declaration.
|
||
|
||
2000-04-25 Neil Booth <NeilB@earthling.net>
|
||
|
||
* Revert my patch below until cause of build failures
|
||
determined.
|
||
|
||
2000-04-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (combine_instructions): Add missing argument
|
||
to try_combine.
|
||
|
||
* toplev.c (rest_of_compilation): Delay sibcall optimization
|
||
until after emit_eh_context.
|
||
|
||
2000-04-24 Nick Clifton <nickc@redhat.com>
|
||
|
||
* combine.c (combine_instructions): Do not try to combine a
|
||
sequence of insns when the second insn has been replaced by a
|
||
note.
|
||
|
||
Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* gcc.c (load_specs): New static function.
|
||
(read_specs): Use it.
|
||
|
||
* gcc.c (lookup_compiler): Make multiple passes for case
|
||
insensitive filesystems.
|
||
|
||
2000-04-24 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
|
||
* cpphash.h (_cpp_check_directive): new.
|
||
* cpplex.c (handle_newline, cpp_free_token_list,
|
||
init_trigraph_map, trigraph_ok, trigraph_replace,
|
||
backslash_start, skip_block_comment, skip_line_comment,
|
||
skip_whitespace, parse_name, parse_number, parse_string,
|
||
copy_comment, _cpp_lex_line, spell_char, spell_string,
|
||
spell_comment, spell_name, spell_other, _cpp_lex_file,
|
||
_cpp_output_list): new.
|
||
(expand_name_space): take length argument.
|
||
(init_token_list): add comment list initialisation.
|
||
(cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE
|
||
instead of HSPACE_BEFORE.
|
||
|
||
* cpplib.c (_cpp_check_directive): new
|
||
* cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
|
||
DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
|
||
(HSPACE_BEFORE): delete.
|
||
(TTYPE_TABLE): rearrange.
|
||
(struct cpp_toklist): update.
|
||
|
||
2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
|
||
gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
|
||
argument form of AC_DEFINE.
|
||
|
||
* configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
|
||
HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
|
||
WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
|
||
HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
|
||
HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
|
||
|
||
* acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
|
||
|
||
2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
|
||
deduced.h): Use -isystem, not -I, for including system headers.
|
||
|
||
2000-04-24 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/fr30/fr30.md (addsi3): Do not use small add instruction if
|
||
the source register is the frame pointer or arg pointer.
|
||
(addsi3_small_int): Disallow if source register is the frame
|
||
pointer or arg pointer.
|
||
|
||
2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
|
||
call to AC_MSG_RESULT.
|
||
|
||
2000-04-24 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* invoke.texi: Correct grammatical errors, document
|
||
-fno-gnu-keywords as identical to -fno-asm for C++.
|
||
|
||
2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
|
||
GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
|
||
GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
|
||
AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
|
||
EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
|
||
|
||
* configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
|
||
GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
|
||
GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
|
||
GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
|
||
new macros names.
|
||
|
||
2000-04-24 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
|
||
(pop_alignment): Likewise.
|
||
(handle_pragma_token): Likewise.
|
||
|
||
2000-04-24 Robert Lipe <robertlipe@usa.net>
|
||
|
||
* tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
|
||
|
||
2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp>
|
||
|
||
* combine.c (try_combine): Update reg_nonzero_bits of
|
||
newi2pat before newpat.
|
||
|
||
Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (strength_reduce): Simplify test to INSN_P.
|
||
(record_giv): Attempt to simplify the add value, use CONSTANT_P
|
||
expressions instead of CONST_INT.
|
||
(express_from_1): Likewise.
|
||
|
||
2000-04-24 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* regs.h (reg_n_max): Don't declare.
|
||
* flow.c (reg_n_max): Don't define.
|
||
* regclass.c (renumber): Don't initialize to zero.
|
||
(regno_allocated): Likewise.
|
||
(reg_n_max): Define.
|
||
(allocate_reg_info): Don't initialize unnecessarily.
|
||
|
||
Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
|
||
and blockage_p in the newly allocated attribute.
|
||
|
||
Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.md (addsi): `inc4' on address
|
||
registers does not modify cc, but `inc' on an extended
|
||
register does.
|
||
|
||
Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* reload.c (find_equiv_reg): Checks all valueno regs
|
||
as a reload_reg_p regs.
|
||
|
||
2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (collect_objlike_expansion): Add sanity check.
|
||
(special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If
|
||
the buffer is the empty string, return. Mark __DATE__ and
|
||
__TIME__ as XCONST nodes, not MCONST.
|
||
(_cpp_macroexpand): Avoid pushing an empty buffer.
|
||
(funlike_macroexpand): Don't pop token_buffer here.
|
||
|
||
Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
|
||
(REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
|
||
(REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
|
||
(REGNO_OK_FOR_BASE_P): Define in terms of them.
|
||
(REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
|
||
(REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
|
||
(REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
|
||
|
||
Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (simplify_giv_expr): Be more agressive on simplifying
|
||
constant MULT givs.
|
||
|
||
2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.h (struct definition): Move file, line, col members...
|
||
(struct hashnode): ... here. Also add 'disabled' flag.
|
||
(enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
|
||
T_IDENTITY. Remove T_DISABLED.
|
||
Update prototypes.
|
||
|
||
* cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
|
||
(collect_expansion): Split into collect_objlike_expansion and
|
||
collect_funlike_expansion.
|
||
(_cpp_macroexpand): Split out scan_arguments, stringify, and
|
||
funlike_macroexpand.
|
||
(_cpp_compare_defs): Rename compare_defs, make static.
|
||
(_cpp_make_hashnode): Initialize hp->disabled.
|
||
(macro_cleanup): Adjust for new token types. Clear
|
||
m->disabled.
|
||
(_cpp_create_definition): Move code here to determine what
|
||
sort of macro it is, and code to check for redefinitions, from
|
||
do_define. Implement a few simple cases without creating a
|
||
full DEFINITION.
|
||
(_cpp_macroexpand, special_symbol, _cpp_dump_definition):
|
||
Handle the simple cases.
|
||
(push_macro_expansion): Set buf->has_escapes and hp->disabled
|
||
here.
|
||
|
||
* cppinit.c (builtin_array): Change MCONST to XCONST
|
||
everywhere.
|
||
* cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
|
||
fix check for disabled and function-like macros.
|
||
* cpplib.c (do_define): Move most logic to
|
||
_cpp_create_definition.
|
||
(do_undef): Handle new special token types.
|
||
|
||
Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
|
||
of CONSTANT_P for mult_val; always use validate_change to update insn.
|
||
|
||
2000-04-22 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (trad_stringify, add_pat): New functions.
|
||
(collect_expansion): Restore support for -traditional syntax.
|
||
Use trad_stringify and add_pat.
|
||
(_cpp_macroexpand): Restore support for -traditional semantics.
|
||
* cpplex.c (_cpp_scan_line): Don't change space_before if we
|
||
get a COMMENT token.
|
||
(_cpp_lex_token): Provide COMMENT tokens to caller if
|
||
traditional and parsing_define_directive.
|
||
(skip_comment): Warn about // comments if -Wtraditional.
|
||
* cpplib.c (do_define): Fix typo. Create EMPTY nodes with
|
||
proper node type.
|
||
(do_undef): Don't warn about undefining EMPTY nodes.
|
||
|
||
Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (strength_reduce): Fix biv removal code.
|
||
|
||
2000-04-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* predict.c (estimate_probability): Examine both sides of
|
||
a branch for no exits. Use 90% not 50% for predict taken.
|
||
Reorg for one copy of note generation code.
|
||
|
||
2000-04-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
|
||
|
||
2000-04-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* diagnostic.c (init_output_buffer): Don't initialize format_args.
|
||
(output_clear): Likewise.
|
||
(output_printf): Use va_copy.
|
||
(vline_wrapper_message_with_location): Likewise.
|
||
(v_message_with_decl): Likewise.
|
||
(line_wrapper_printf): VA_START infor buffer.format_args directly.
|
||
* system.h (va_copy): Provide default implementation.
|
||
|
||
2000-04-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* predict.c (expected_value_to_br_prob): Don't bomb if op1 of
|
||
the collected condition is not a constant.
|
||
|
||
2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* diagnostic.h: New file.
|
||
|
||
* Makefile.in (diagnostic.o): Depends on diagnostic.h
|
||
|
||
* diagnostic.c: Tweak. Rationalize the output logic. Adjust
|
||
various function prototypes.
|
||
(diagnostic.h): #include.
|
||
(struct output_buffer): Move into diagnostic.h.
|
||
(get_output_prefix): Rename to output_get_prefix. Export.
|
||
(init_output_buffer): Export. Break out. Adjust initialization.
|
||
(output_space_left, output_append): Export.
|
||
(output_newline): Rename to output_add_newline. Export.
|
||
(output_clear): Nullify additional output_buffer fields.
|
||
(output_puts): Rename to output_add_string. Export.
|
||
(dump_output): Rename to output_flush_on. Export.
|
||
(build_location_prefix): Constify return-type.
|
||
(emit_output_prefix): Rename to output_emit_prefix. Export.
|
||
(set_real_maximum_length): New function.
|
||
(output_set_maximum_length): Ditto
|
||
(output_clear): Ditto.
|
||
(output_add_character): Ditto.
|
||
(output_add_integer): Ditto.
|
||
(output_add_space): Ditto.
|
||
(output_format): Ditto.
|
||
(output_printf): Adjust buffer initialization.
|
||
(vline_wrapper_message_with_location): Ditto.
|
||
(v_message_with_decl): Ditto. Adjust call to output_puts
|
||
and get_output_prefix.
|
||
(default_print_error_function): Adjust buffer initialization.
|
||
|
||
Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
|
||
of VOID_TYPE.
|
||
|
||
Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
|
||
of explicit 0.
|
||
|
||
Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
|
||
accurate data about SP moves.
|
||
|
||
Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
|
||
aliases to AM33 registers.
|
||
|
||
Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
|
||
to all EXTENDED bitmaps.
|
||
|
||
Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
|
||
* config/mn10300/mn10300.h (ADDRESS_COST): New macro.
|
||
* config/mn10300/mn10300.c (mn10300_address_cost): New function.
|
||
|
||
Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||
|
||
* config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
|
||
the operand is not constant.
|
||
|
||
Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* reload.c (find_equiv_reg): Checks all valueno and regno regs
|
||
as a call-clobbered regs.
|
||
|
||
Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
|
||
* rtl.h: Likewise.
|
||
* rtl.def: Update comment.
|
||
* function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
|
||
* integrate.c (expand_inline_function): Likewise.
|
||
* profile.c (branch_prob): Likewise.
|
||
* ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
|
||
* print-rtl.c (print_rtx): Likewise.
|
||
* haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
|
||
(reemit_notes): Likewise; also use enum insn_note.
|
||
|
||
* stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
|
||
(place_field): Properly compute know and actual alignment.
|
||
|
||
* gengenrtl.c (gencode): Write obstack_alloc_rtx function start
|
||
in proper format.
|
||
|
||
* cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
|
||
note for REG1.
|
||
|
||
2000-04-21 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (struct arg, struct arglist): Const-ify strings.
|
||
(warn_trad_stringify, duplicate_arg_p): New helper functions.
|
||
(collect_expansion): Rewrite to scan over a token list.
|
||
Remove -traditional support.
|
||
(collect_formal_parameters): Rename to collect_params; rewrite
|
||
to scan over a token list.
|
||
(_cpp_create_definition): Adjust to scan a token list.
|
||
(_cpp_macroexpand): Remove -traditional support.
|
||
(_cpp_compare_defs): Whitespace is now canonicalized.
|
||
(comp_def_part): Delete function.
|
||
|
||
* cpphash.h: Update prototypes.
|
||
* cpplex.c (init_token_list): Don't set lineno if there is no
|
||
buffer.
|
||
(pedantic_whitespace): New function.
|
||
(_cpp_scan_line): Mark tokens that had hspace before. Don't
|
||
consume a newline. Use pedantic_whitespace.
|
||
(_cpp_lex_token): Remove support for -traditional macros.
|
||
(_cpp_get_define_token): Delete.
|
||
(_cpp_get_directive_token): Do the real work here. Use
|
||
pedantic_whitespace.
|
||
(_cpp_init_input_buffer): Initialize pfile->directbuf.
|
||
|
||
* cpplib.c (get_macro_name): Delete.
|
||
(do_define): Read the entire line into pfile->directbuf, then
|
||
feed the token list to _cpp_create_definition.
|
||
* cpplib.h (HSPACE_BEFORE): new define.
|
||
(struct cpp_reader): Add a toklist member, "directbuf".
|
||
|
||
* predict.c (estimate_probability): New heuristic: if a jump
|
||
branches around a block with no successors, predict it taken.
|
||
Disentangle control flow.
|
||
|
||
2000-04-20 Richard Henderson <rth@cygnus.com>
|
||
|
||
* loop.c (emit_iv_add_mult): Revert last change.
|
||
|
||
2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (enum cpp_ttype): Add token types for all
|
||
punctuators. Distinguish pp-numbers from valid C numbers.
|
||
Give some tokens better names. Initialize from macro.
|
||
(struct cpp_name, cpp_token, cpp_toklist): New data
|
||
structures.
|
||
Update prototypes.
|
||
* cpplex.c (bump_column, expand_name_space,
|
||
expand_token_space, init_token_list, cpp_output_list,
|
||
_cpp_scan_line): New functions.
|
||
(output_line_command): Add third argument, new line number.
|
||
* cpphash.h: Update prototypes.
|
||
* cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
|
||
token names.
|
||
|
||
2000-04-20 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
|
||
|
||
2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
|
||
object pointed to.
|
||
|
||
Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* loop.c (emit_iv_add_mult): Simplify it's input and emit
|
||
REG_EQUAL note explaining the calculated value.
|
||
|
||
* calls.c (expand_call): Avoid unnecesary precalculation
|
||
and outgoing parameters space guarding for sibling calls.
|
||
(store_one_arg): Likewise.
|
||
|
||
Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
|
||
(rest_of_compilation): Write sibling dump file and account
|
||
for time as jump time.
|
||
* invoke.texi: Update documentation on dump flags.
|
||
|
||
2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl>
|
||
|
||
* avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
|
||
|
||
2000-04-19 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (special_symbol): Represent an empty macro with
|
||
"\r \r " not just "\r ".
|
||
(_cpp_macroexpand): Correct condition for the foo ( ) special
|
||
case.
|
||
(unsafe_chars): Handle EOF as second argument.
|
||
(push_macro_expansion): Simplify test for removing escape at
|
||
end. Do not trim both escapes if there is no text in between.
|
||
|
||
2000-04-19 Jim Blandy <jimb@redhat.com>
|
||
|
||
* dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead
|
||
of PTR_SIZE, when appropriate.
|
||
|
||
2000-04-19 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* system.h (ONLY_INT_FIELDS): Make sure it is defined.
|
||
(USE_ENUM_BITFIELDS): Fix typo.
|
||
|
||
Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stor-layout.c (place_field): Set rli->offset_align properly.
|
||
|
||
2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
|
||
INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
|
||
PARM_BOUNDARY): Remove unnecessary casts.
|
||
|
||
Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (precompute_arguments): Remove must_preallocate and
|
||
args_size calls.
|
||
(expand_call): Update call of precompute_arguments.
|
||
|
||
* loop.c (check_insn_for_bivs, for_every_insn_in_loop,
|
||
check_insn_for_givs): Break out from ...
|
||
(strength_reduce) ... here; use for_every_insn_in_loop to call
|
||
check_insn_for_givs.
|
||
* loop.h (for_every_insn_in_loop): Declare.
|
||
(loop_insn_callback): New type.
|
||
|
||
2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (do_pragma_poison): Strings in the token buffer are
|
||
not nul-terminated.
|
||
|
||
Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
|
||
flag_pic and RELOC.
|
||
|
||
2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cccp.c, cexp.y, cexp.c, cccp.1: Removed.
|
||
|
||
* configure.in: Delete --disable-cpplib option and all
|
||
references to cpp_main.
|
||
* configure: Regenerate.
|
||
* Makefile.in: Remove all references to CCCP, CCCP_OBJS,
|
||
@cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
|
||
cccp.o, cccp, or cppmain. Link cppmain.o straight to
|
||
cpp$(exeext). Add --no-headers to makeinfo command line when
|
||
generating INSTALL. Install and uninstall cpp.1 manpage, not
|
||
cccp.1.
|
||
* install.texi: Delete all references to cexp.y/cexp.c.
|
||
Delete ancient instructions for compiling GCC on 3b1.
|
||
* INSTALL: Regenerate.
|
||
|
||
* cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
|
||
mips/t-elf, mips/t-r3900: Remove references to cccp.c.
|
||
* convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
|
||
cexp.c/cexp.y.
|
||
* xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
|
||
which is no longer tested anywhere.
|
||
|
||
* cppinit.c (handle_option): Don't run error message through
|
||
gettext twice.
|
||
|
||
Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
|
||
* cpperror.c (hashtab.h): Now include.
|
||
* cppexp.c (hashtab.h): Likewise.
|
||
* cpplex.c (hashtab.h): Likewise.
|
||
* cppfiles.c (hashtab.h): Likewise.
|
||
(find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
|
||
to htab_find_slot_with_hash.
|
||
* cpphash.c (hashtab.h): Now include.
|
||
(_cpp_lookup_slot): INSERT is now enum insert_option.
|
||
* cpphash.h (_cpp_lookup_slot): Likewise.
|
||
* cppinit.c (hashtab.h): Include earlier.
|
||
(initialize_builtins): Pass enum to htab_find_slot.
|
||
* cpplib.c (hashtab.h): Now include.
|
||
(do_define, do_undef): Pass enum type to _cpp_lookup_slot.
|
||
(do_pragma_poison, do_assert): Likewise.
|
||
* emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
|
||
htab_find_slot_with_hash.
|
||
* simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
|
||
* tree.c (type_hash_add): Likewise.
|
||
(build1): Minor cleanup.
|
||
|
||
* ggc-common.c: Add missing blanks.
|
||
* print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
|
||
* tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
|
||
|
||
* stmt.c (mark_case_node): New function.
|
||
(mark_case_nesting): Call it.
|
||
|
||
* expmed.c (emit_store_flag): If comparing two-word integer
|
||
with zero, can optimize NE, EQ, GE, and LT.
|
||
|
||
* c-decl.c (mark_binding_level): Use 'for' instead of `while'.
|
||
* conflict.c: Minor cleanups.
|
||
* optabs.c: Add blank line
|
||
* simplify-rtx.c: Minor cleanups.
|
||
|
||
2000-04-18 Stan Cox <scox@cygnus.com>
|
||
|
||
* gengenrtl.c (genlegend): Fix misspelling.
|
||
|
||
2000-04-18 Robert Lipe <robertlipe@usa.net>
|
||
|
||
* configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that
|
||
bitfields of the host compiler are not signed quantities.
|
||
* config.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* system.h (USE_ENUM_BITFIELDS): Added.
|
||
(ENUM_BITFIELDS): Added.
|
||
* rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
|
||
(SHORT_ENUM_BUG): Deleted.
|
||
* tree.h (tree_common): Members `code', `mode', `built_in_class',
|
||
now ENUM_BITFIELD.
|
||
* config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
|
||
(CODE_FIELD_BUG): Likewise.
|
||
* config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
|
||
(OLD_CC): Likewise.
|
||
* config/m68k/x-ccur (X_CFLAGS): Likewise.
|
||
|
||
2000-04-18 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
|
||
mark is active.
|
||
|
||
2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppexp.c (lex): Don't assume tokens are NUL terminated.
|
||
* cpplib.c (do_include, do_import, do_include_next,
|
||
read_line_number, detect_if_not_defined): Likewise.
|
||
* cpphash.c (collect_expansion): Likewise.
|
||
(special_symbol, _cpp_macroexpand): Check return from
|
||
cpp_file_buffer.
|
||
* cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
|
||
macros. Delete all uses.
|
||
|
||
* gcc.dg/cpp-mi.c: Add two more test cases.
|
||
* gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
|
||
|
||
2000-04-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
|
||
(reorder_basic_blocks): If no epilogue in rtl, force last block last.
|
||
|
||
2000-04-17 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* function.c (expand_function_start): Use hard_function_value to
|
||
compute the RTL to use for DECL_RESULT.
|
||
|
||
Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
|
||
(x86_integer_DFmode_moves, x86_partial_reg_dependency,
|
||
x86_memory_mismatch_stall): New global variables.
|
||
(ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
|
||
alloved; fix load penalties for Athlon.
|
||
* i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
|
||
x86_memory_mismatch_stall): Declare.
|
||
(TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
|
||
TARGET_MEMORY_MISMATCH_STALL): New.
|
||
* i386.md (athlon scheduling parameters): Fix latencies according to
|
||
Athlon Optimization Manual.
|
||
(sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
|
||
vector.
|
||
(fsqrt instruction patterns): Set athlon_decode to direct.
|
||
(movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
|
||
PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
|
||
(movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
|
||
and TARGET_PARTIAL_REGISTER_STALL machines.
|
||
(pushdf_nointeger): New pattern.
|
||
(pushdf_integer): Rename from pushdf.
|
||
(movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
|
||
(movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
|
||
|
||
2000-04-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* loop.c (canonicalize_condition): Add WANT_REG argument.
|
||
Stop the search if we match it.
|
||
* expr.h (canonicalize_condition): Update decl.
|
||
* predict.c (expected_value_to_br_prob): Use it. Track last
|
||
expected value note.
|
||
(find_expected_value): Remove.
|
||
|
||
* reorg.c (mostly_true_jump): Always use BR_PROB if present.
|
||
|
||
2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
|
||
(AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
|
||
a plain file.
|
||
* configure.in: Call AC_FUNC_MMAP_FILE.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
* intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
|
||
* fixinc/fixincl.c: Likewise.
|
||
|
||
2000-04-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_expect): New.
|
||
(expand_builtin): Call it.
|
||
* builtins.def (BUILT_IN_EXPECT): New.
|
||
* c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
|
||
* extend.texi: Document it.
|
||
|
||
* predict.c (expected_value_to_br_prob): New.
|
||
(find_expected_value): New.
|
||
* basic-block.h (expected_value_to_br_prob): Declare.
|
||
* toplev.c (rest_of_compilation): Invoke it.
|
||
|
||
* rtl.h (NOTE_EXPECTED_VALUE): New.
|
||
(NOTE_INSN_EXPECTED_VALUE): New.
|
||
* rtl.c (note_insn_name): Update.
|
||
* print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
|
||
cases; handle NOTE_INSN_EXPECTED_VALUE.
|
||
|
||
2000-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
|
||
leaf sibcall delay slot if flag_pic.
|
||
(output_sibcall): Always emit call for leaf sibcall if flag_pic.
|
||
|
||
2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
|
||
|
||
* fixproto: If fix-header fails, exit with an error.
|
||
|
||
Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cse.c (struct check_dependence_data): New.
|
||
(check_dependence): New function.
|
||
(invalidate): Use check_depdenence.
|
||
|
||
2000-04-16 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
|
||
UNITS_PER_WORD is unsigned.
|
||
|
||
* tree.h (struct tree_common): Remove misleading comment.
|
||
|
||
2000-04-16 Dave Pitts <dpitts@cozx.com>
|
||
|
||
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
|
||
message in quotes. Otherwise, IBM's make program treats the '#' as the
|
||
start of a comment and ignores the remainder of the line.
|
||
|
||
* c-lex.c (yylex): Change for EBCDIC, lower case characters precede
|
||
upper case.
|
||
* cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
|
||
* cexp.y (initialize_random_junk): Likewise.
|
||
* cppfiles.c (find_include_file): Cast alloca return value.
|
||
* cppinit.c (initialize_standard_includes): Likewise.
|
||
* cpplib.c (cpp_define, cpp_undef): Likewise.
|
||
* defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
|
||
* final.c (output_asm_insn): Allow for holes in EBCDIC.
|
||
* fold-const.c (CHARMASK): New.
|
||
(real_hex_to_f): Use it.
|
||
* real.c (CHARMASK): New.
|
||
(etoasc, asctoeg): Use it.
|
||
(asctoeg): EBCDIC lower case characters precede upper case.
|
||
|
||
* i370.c (mvs_add_label): Change spacing for coding conventions.
|
||
* i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
|
||
outputing case vectors.
|
||
(ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
|
||
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
|
||
since vector in in the data CSECT.
|
||
(ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
|
||
* i370.md (Many patterns): Put the length in the XL directives.
|
||
(movdi): Put back STM and MVC in definition.
|
||
(floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
|
||
pattern using the TCA.
|
||
* oe.h (CPP_SPEC): Added to allow trigraphs.
|
||
* xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
|
||
not support the "long long" type.
|
||
|
||
2000-04-16 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* config/mips/mips-protos.h (mips_legitimate_address_p): New
|
||
function.
|
||
(mips_reg_mode_ok_for_base_p): Likewise.
|
||
* config/mips/mips.h (REG_OK_STRICT_P): Don't define.
|
||
(REG_OK_FOR_INDEX_P): Define unconditionally.
|
||
(REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
|
||
* config/mips/mips.c (mips16_simple_memory_operand): Adjust now
|
||
that GET_MODE_SIZE is unsigned.
|
||
(mips_reg_mode_ok_for_base_p): Define.
|
||
(mips_legitimate_address_p): Likewise. Adjust now
|
||
that GET_MODE_SIZE is unsigned.
|
||
(block_move_loop): Make the number of bytes unsigned.
|
||
(expand_block_move): Likewise.
|
||
(function_arg): Make the loop counter unsigned to match the
|
||
boundary condition.
|
||
|
||
2000-04-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtl.h (enum insn_note): New enumeration. Subsume
|
||
NOTE_INSN_DELETED and friends.
|
||
(GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
|
||
* rtl.c (note_insn_name): Tweak string order.
|
||
|
||
2000-04-15 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
|
||
to offset * 2.
|
||
|
||
* cpplex.c (output_line_command): Remove debugging prints.
|
||
(cpp_output_tokens): Don't write out a zero-length buffer or
|
||
try to see if it has a newline in it.
|
||
(_cpp_expand_to_buffer): Copy the source buffer before pushing.
|
||
(_cpp_read_and_prescan): Move shift-down of pushback bytes to
|
||
the end of the loop. Use memmove. Don't read past the end of
|
||
the buffer. Remove trailing newlines from error messages.
|
||
|
||
2004-04-16 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
|
||
* cpplib.c: Add new syntax flags to directive table, and
|
||
supporting macros.
|
||
|
||
2000-04-15 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
* i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
|
||
using ret $N.
|
||
|
||
2000-04-15 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* toplev.c (display_help): Prefix "f" to "sched-verbose=".
|
||
* haifa-sched.c: Update -fsched-verbose comments to use "=".
|
||
|
||
Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* Makefile.in (ggc-page.o): Now includes toplev.h.
|
||
* ggc-page.c (toplev.h): Now included.
|
||
(gc_time): Remove declaration.
|
||
(ggc_collect): TIME now long.
|
||
* toplev.c (parse_time, varasm_time, gc_time): Still global; all
|
||
others static.
|
||
* toplev.h (gc_time, parse_time, gc_time): New declarations.
|
||
|
||
* toplev.c: Make *_time variable long to reduce chance of overflow.
|
||
(TIMEVAR): Likewise for `otime'.
|
||
(print_time): Arg is now long; compute percentage in FP and round.
|
||
* toplev.h (print_time): Arg is long.
|
||
|
||
* tree.c: Minor whitespace changes.
|
||
|
||
* configure.in (alpha*-*-*): Add config/alpha/t-alpha.
|
||
* configure: Rebuilt.
|
||
* libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
|
||
(__fixunsxfDI): Renamed from __fixunsxfdi.
|
||
(__fixunsdfDI): Renamed from __fixunsdfdi.
|
||
(__fixunssfDI): Renamed from __fixunssfdi.
|
||
(__floatdisf): Use proper type in REP_BIT macro.
|
||
(__fixunsxfSI): Renamed from __fixunsxfsi.
|
||
(__fixunsdfSI): Renamed from __fixunsdfsi.
|
||
(__fixunssfSI): Renamed from __fixunssfsi.
|
||
* libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
|
||
Change location of macros and upper-case some names as above.
|
||
* longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
|
||
* config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
|
||
|
||
* varasm.c (assemble_variable): Add cast to remove warning.
|
||
(immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
|
||
|
||
* flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
|
||
* optabs.c (emit_libcall_block): If have REG_EH_REGION, update
|
||
region number to -1.
|
||
|
||
2000-04-15 Richard Earnshaw (rearnsah@arm.com)
|
||
|
||
* emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
|
||
call unshare_all_rtl.
|
||
|
||
* arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
|
||
|
||
Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
|
||
Use .s1 not .s0 for all FP instructions.
|
||
|
||
2000-04-14 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
|
||
interfaces.
|
||
(safe_fwrite, output_line_command): New static functions.
|
||
(cpp_expand_to_buffer): Now private to cpplib.
|
||
(cpp_scan_buffer): Take a printer.
|
||
|
||
* cpphash.h: Update prototypes.
|
||
* cpplib.h: Update prototypes.
|
||
(cpp_printer): New.
|
||
(cpp_buffer): Remove last_nominal_fname.
|
||
(cpp_reader): Remove lineno.
|
||
|
||
* cppmain.c: Use a cpp_printer.
|
||
* fix-header.c: No need to inhibit line commands. Call
|
||
cpp_start_read with no printer.
|
||
|
||
* cpperror.c (cpp_notice_from_errno): Provide default name.
|
||
* cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
|
||
(find_include_file, cpp_read_file): Use make_IHASH.
|
||
(file_cleanup): Set control_macro and clear
|
||
input_stack_listing_current here.
|
||
(_cpp_execute_include): Don't output entering-file marker.
|
||
* cpphash.c (special_symbol): Look for the line number in the
|
||
buffer, not the reader.
|
||
(_cpp_macroexpand): No need to disable line commands.
|
||
(_cpp_dump_definition): No need to generate line commands.
|
||
(dump_hash_helper): Remove excess newline from output.
|
||
* cppinit.c (dump_special_to_buffer): No need to generate line
|
||
commands.
|
||
(cpp_printer_init): New.
|
||
(cpp_start_read): Take a printer, and start it up if it's not
|
||
NULL. No need to generate line commands.
|
||
(cpp_finish): Expect no buffers stacked at all. Take a
|
||
printer argument, and flush the output buffer if it's not
|
||
NULL.
|
||
* cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
|
||
Don't put two hashes at the beginning of an assertion.
|
||
(cpp_get_token): Don't increment pfile->lineno or emit line
|
||
commands here. Return EOF if there's no buffer when we get
|
||
EOF.
|
||
* cpplib.c (do_define, skip_if_group):
|
||
No need to disable line commands.
|
||
(_cpp_output_line_command): Delete function.
|
||
(do_line): Don't emit line commands here, but set things up so
|
||
they will be emitted if necessary. Use _cpp_fake_ihash to
|
||
make unique nominal_fnames if necessary.
|
||
(do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
|
||
with 0 for column, not -1.
|
||
(_cpp_handle_eof): Don't set the control macro here. Don't
|
||
clear input_stack_listing_current here. Don't emit line
|
||
commands.
|
||
|
||
2000-04-14 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
|
||
always, use the default SVR4 start address.
|
||
|
||
* config/rs6000/linux.h (LINK_SPEC): Don't define.
|
||
(LINK_SHLIB_SPEC): Define.
|
||
(LINK_START_DEFAULT_SPEC): Define.
|
||
(LINK_OS_DEFAULT_SPEC): Define.
|
||
|
||
* config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
|
||
|
||
* config/rs6000/eabi.asm (__eabi): Call __init rather than
|
||
__do_global_ctors to handle constructors.
|
||
* config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
|
||
(STARTFILE_YELLOWKNIFE_SPEC): Likewise.
|
||
(STARTFILE_MVME_SPEC): Likewise.
|
||
(STARTFILE_SIM_SPEC): Likewise.
|
||
(ENDFILE_ADS_SPEC): Use crtend.
|
||
(ENDFILE_YELLOWKNIFE_SPEC): Likewise.
|
||
(ENDFILE_MVME_SPEC): Likewise.
|
||
(ENDFILE_SIM_SPEC): Likewise.
|
||
(STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
|
||
(ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
|
||
(STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
|
||
(ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
|
||
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
|
||
(EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
|
||
(CRTSTUFF_T_CFLAGS_S): Define.
|
||
* config/rs6000/eabi-ctors.c: Delete.
|
||
|
||
* config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
|
||
boundary.
|
||
(__fini): Likewise.
|
||
* config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
|
||
boundary.
|
||
(__fini): Likewise.
|
||
|
||
Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
|
||
plus mask size is smaller or equal to the mode size.
|
||
|
||
Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
|
||
not yet set.
|
||
|
||
* expr.c (reload.h): Now included.
|
||
(emit_block_move): Set volatile_ok when checking for movstr.
|
||
(emit_move_1): Check for replacements in addresses in multi-word case.
|
||
* Makefile.in (expr.o): Now includes reload.h.
|
||
|
||
* flow.c (count_basic_blocks): Remove unused var PREV_CALL.
|
||
Never have a LIBCALL end a basic block.
|
||
(find_basic_blocks_1): Likewise.
|
||
Reorganize CALL_INSN cases.
|
||
|
||
* sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
|
||
|
||
Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
|
||
completers from mov.ret instruction.
|
||
|
||
2000-04-14 Richard Henderson <rth@cygnus.com>
|
||
|
||
* fold-const.c (extract_muldiv): Don't distribute and widen
|
||
multiply across plus for non-sizetype unsigned types.
|
||
|
||
2000-04-14 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (find_auto_inc): Don't autoinc eliminable registers.
|
||
If the original source is dead in the incr insn, it's dead now.
|
||
|
||
Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
|
||
see if DECL_BIT_FIELD needs to still be set.
|
||
|
||
* tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
|
||
|
||
* dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
|
||
print_int_cst_octal with something that's not an INTEGER_CST.
|
||
|
||
* config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
|
||
and not a SUBREG to a FLOAT rtl.
|
||
|
||
Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* emit-rtl.c (try_split): Avoid infinite loop if the split
|
||
results in a sequence that contains the original insn.
|
||
|
||
2000-04-13 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/mips/mips.c (expand_block_move): Pass alignment
|
||
argument to move_by_pieces in bits, not bytes.
|
||
|
||
* config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
|
||
__pic__ for little endian.
|
||
|
||
2000-04-13 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/i386/i386-protos.h: Add prototype for
|
||
uno_comparison_operator.
|
||
|
||
Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
|
||
* calls.c (ECF_PURE): New flag.
|
||
(emit_call_1): Handle ECF_PURE calls.
|
||
(initialize_argument_information): Unset ECF_PURE flag too.
|
||
(precompute_arguments): Precompute for ECF_PURE too.
|
||
(expand_call): Handle ECF_PURE calls too.
|
||
(emit_library_call_value_1): Rename no_queue argument to fn_type,
|
||
accept value of 2 as pure function.
|
||
(emit_library_call_value, emit_library_call): Rename no_queue argument
|
||
to fn_type.
|
||
* optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
|
||
|
||
* tree.h (DECL_IS_PURE): New macro.
|
||
(struct tree_decl): Add pure_flag.
|
||
* c-common.c (enum attrs): Add attribute "pure".
|
||
(init_attributes): Initialize attribute "pure"
|
||
(decl_attributes): Handle attribute "pure".
|
||
* extend.texi (Attribute "pure"): Document.
|
||
* calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
|
||
in pure function.
|
||
(flags_from_decl_or_type): Support attribute "pure".
|
||
|
||
2000-04-13 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate
|
||
the token except for numbers and identifiers.
|
||
|
||
Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* i386.c (ix86_expand_binary_operator,
|
||
ix86_expand_unary_operator): Check no_new_pseudos
|
||
instead of reload_in_progress and reload_completed.
|
||
(ix86_split_ashldi, ix86_split_ashrdi,
|
||
ix86_split_lshrdi): Check no_new_pseudos instead
|
||
of reload_completed.
|
||
|
||
2000-04-12 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* function.c (purge_addressof): Unshare any shared rtl created by
|
||
purge_addressof and its children.
|
||
|
||
2000-04-12 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* function.c (aggregate_value_p): VOID_TYPE nodes are never
|
||
aggregates.
|
||
|
||
2000-04-05 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
|
||
not compiling PIC code, add flags for mabi=64.
|
||
(SUBTARGET_CPP_SIZE_SPEC): New.
|
||
(SUBTARGET_CPP_SPEC): New.
|
||
(CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default
|
||
for MIPS/Linux and lots of code needs these defines.
|
||
|
||
Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* reorg.c (fill_slots_from_thread): Check side_effects_p when
|
||
trying the "opposite arithmetic" approach.
|
||
|
||
Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
|
||
(struct sh_args): Add new field force_mem.
|
||
(INIT_CUMULATIVE_ARGS): Initialize it.
|
||
(FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
|
||
|
||
Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (expand_call): Do not reverse args in "equal from" field.
|
||
(emit_library_call_value_1): Emit_libcall_block for const and pure
|
||
function.
|
||
|
||
Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* reload1.c (reload_combine): Don't enable optimization for fixed
|
||
registers when encountering a BARRIER.
|
||
|
||
Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* builtins.c (expand_builtin_memcmp): Do expansion even with
|
||
!HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
|
||
|
||
* calls.c (expand_call): Do NO_DEFER_POP unconditionally once
|
||
stack is properly aligned; add sanity checking for aligned
|
||
stack pointer.
|
||
(expand_library_call_value_1): Add sanity checking for aligned
|
||
stack pointer.
|
||
|
||
Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com>
|
||
|
||
* calls.c (emit_library_call_value_1): Change 3rd arg to
|
||
locate_and_pad_parm to disregard the setting of partial.
|
||
|
||
Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
|
||
|
||
* print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
|
||
CALL_INSN from the normal case.
|
||
|
||
Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
|
||
New global variables.
|
||
(ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
|
||
adjustment.
|
||
* i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
|
||
Declare,
|
||
(TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
|
||
TARGET_ADD_ESP_8): New macros.
|
||
* i386.md: Add peep2s to convert esp adjustments to push and pop
|
||
instructions.
|
||
(pushsi_prologue, popsi_epilogue): New patterns.
|
||
|
||
2000-04-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* real.c (toe64): Remove stale #endif from the last change.
|
||
|
||
2000-04-12 Stephen L Moshier <moshier@mediaone.net>
|
||
|
||
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
|
||
* real.c (toe64): Revert previous change.
|
||
|
||
2000-04-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* objc/objc-act.c: Include ggc.h.
|
||
(objc_tree_index, objc_global_trees): Convert most of the
|
||
static tree variables into a static array with previous names
|
||
as defines.
|
||
(objc_ellipsis_node): New variable.
|
||
(lang_init): Call objc_act_parse_init and c_parse_init.
|
||
Create objc_ellipsis_node.
|
||
(build_selector_translation_table): Use objc_ellipsis_node instead
|
||
of (tree)1.
|
||
(hack_method_prototype): Likewise.
|
||
(get_arg_type_list): Likewise.
|
||
(start_method_def): Likewise.
|
||
(continue_method_def): Likewise.
|
||
(gen_method_decl): Likewise.
|
||
(ggc_mark_imp_list): New function.
|
||
(ggc_mark_hash_table): New function.
|
||
(objc_act_parse_init): New function.
|
||
* objc/objc-act.h (objc_ellipsis_node): Add extern variable.
|
||
* c-parse.in (c_parse_init): For objc add roots of objc specific
|
||
local tree variables.
|
||
* objc/objc-parse.y: Rebuilt.
|
||
* objc/objc-parse.c: Rebuilt.
|
||
(opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
|
||
|
||
Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* cse.c (delete_trivially_dead_insns): Also delete insns
|
||
that copy a register to itself where the destination is
|
||
a strict_low_part.
|
||
|
||
2000-04-11 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (struct propagate_block_info): Add new_dead, new_live.
|
||
(propagate_block): Initialize them. Use them in parallel instead
|
||
of one tmp variable, ie revert much of the 0408 and 0407 functional
|
||
changes, but keep the structural changes.
|
||
(mark_set_regs): Take new_dead from propagate_block_info instead.
|
||
(mark_set_1, mark_set_reg): Likewise.
|
||
(mark_used_regs): Likewise with new_live.
|
||
(mark_used_reg): Likewise. Revert 0408 change.
|
||
|
||
2000-04-11 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
|
||
restriction.
|
||
(DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
|
||
|
||
2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* config/elfos.h (SELECT_SECTION): Decide whether to use a data or
|
||
const section to output a CONSTRUCTOR based on the same conditions
|
||
used for VAR_DECLs.
|
||
|
||
Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
|
||
* pa/pa-protos.h (output_call): Add additional argument indicating
|
||
if the call is a sibling/tail call.
|
||
(compute_zdepdi_operands, output_64bit_and): Prototype new functions.
|
||
(compute_64bit_ior, cmpib_comparison_operator): Likewise.
|
||
(function_arg, function_arg_partial_nregs): Likewise
|
||
* pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
|
||
(emit_move_sequence): Zero extend certain constants as needed
|
||
for TARGET_64BIT.
|
||
(compute_zdepdi_operands, output_64bit_and): New functions.
|
||
(output_64bit_ior, function_arg): Likewise.
|
||
(cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
|
||
(compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
|
||
(hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
|
||
(hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
|
||
(output_bvb): Likewise.
|
||
(output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
|
||
(output_call): New argument 'sibcall'. Generate sibcall sequences
|
||
as needed.
|
||
(print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For
|
||
(ouput_arg_descriptor): Do not emit argument descriptors for
|
||
TARGET_64BIT.
|
||
* pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
|
||
defined.
|
||
(TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
|
||
(FUNCTION_OK_FOR_SIBALL): Define.
|
||
(CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
|
||
(CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
|
||
(CPP_SPEC): Use new spec infrastructure.
|
||
(BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
|
||
(STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
|
||
(RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
|
||
(REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
|
||
(STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
|
||
(FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
|
||
(TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
|
||
(INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
|
||
(CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
|
||
(FUNCTION_ARG); Call out to C code.
|
||
(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
|
||
(MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
|
||
(MIN_UNITS_PER_WORD): Likewise.
|
||
* pa/pa.md (cmpdi): New expander.
|
||
(scc patterns, movstrsi): Not available for TARGET_64BIT.
|
||
(64bit conditional arithmetic): New patterns.
|
||
(absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
|
||
(movsicc): Not available if modes on all the operands to not match.
|
||
(movdicc): New expander and associated patterns.
|
||
(64bit branches): New patterns.
|
||
(pre_load, post_store): Generate appropriate code for TARGET_64BIT.
|
||
(pre_ldd, post_std): New patterns.
|
||
(64bit addil, load low part): New patterns.
|
||
(special movsf constant): Not available for TARGET_64BIT.
|
||
(movsf, movdf expanders): Force constants into memory.
|
||
(32bit movdf/movdi patterns): Disable for TARGET_64BIT.
|
||
(64bit movdf/movdi patterns): New patterns.
|
||
(zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
|
||
for TARGET_64BIT.
|
||
(extendqidi2, extendhidi2, extendsidi2): Similarly.
|
||
(adddi3 expander): Allow "arith_operand" for second input.
|
||
(32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
|
||
(64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
|
||
(mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
|
||
(muldi3): New expander for TARGET_64BIT.
|
||
(divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
|
||
for TARGET_64BIT.
|
||
(32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
|
||
patterns for TARGET_64BIT.
|
||
(64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
|
||
patterns for TARGET_64BIT.
|
||
(64bit bit insertion/extractions): New patterns for TARGET_64BIT.
|
||
(64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
|
||
(sibcall_epilogue): New expander.
|
||
(casesi): Tweak for TARGET_64BIT.
|
||
(call expanders): Set & use the outgoing argument pointer. Use the
|
||
64bit call patterns as needed. Add additional arg to output_call.
|
||
(call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
|
||
(sibcall, sibcall_internal_symref): New expanders.
|
||
(sibcall_value, sibcall_value_internal_symref
|
||
(interspace_jump): Turn into an expander + matching patterns.
|
||
(canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
|
||
* pa/pa64-regs.h: Eliminate trigraph sequences.
|
||
* pa/pa64-start.h (TARGET_PA_20): Fix typo.
|
||
|
||
2000-04-11 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
|
||
cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
|
||
cpp_token with cpp_ttype everywhere.
|
||
* cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
|
||
Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
|
||
CPP_BUF_COL. Line and column numbers are unsigned int, not
|
||
long.
|
||
* cpplex.c (cpp_buf_line_and_col): Delete.
|
||
* cpplib.h (struct cpp_buffer, struct cpp_reader): Change
|
||
'long lineno' to 'unsigned int lineno'.
|
||
(CPP_BUF_LINE, CPP_BUF_COL): New macros.
|
||
|
||
2000-04-11 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* extend.texi: ISO C99 is not a draft anymore.
|
||
* invoke.texi: ISO C++ is not a draft anymore.
|
||
* cpp.texi: __cplusplus is required by the ISO standard.
|
||
|
||
* extend.texi (-fthis-is-variable): Undocument.
|
||
* flags.h (warn_template_debugging): Remove declaration.
|
||
* gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
|
||
-Wenum-clash, -Wtemplate-debugging): Undocument.
|
||
|
||
2000-04-10 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
|
||
integer.
|
||
(HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
|
||
integer.
|
||
(ARM_SIGN_EXTEND): Use HOST_UINT.
|
||
(STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
|
||
(ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
|
||
(INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
|
||
(DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
|
||
|
||
* config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
|
||
(arm_gen_constant): Use HOST_UINT.
|
||
(arm_canonicalize_constant): Use HOST_UINT.
|
||
(arm_reload_in_hi): Use HOST_UINT.
|
||
(arm_reload_out_hi): Use HOST_UINT.
|
||
(output_multi_immediate): Use HOST_UINT.
|
||
(int_log2): Use HOST_UINT.
|
||
(arm_poke_function_name): Use HOST_UINT.
|
||
(arm_output_epilogue): Use arm_volatile_func().
|
||
(output_thumb_prologue): Use arm_strip_name_encoding().
|
||
|
||
Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
|
||
of sequence point problems.
|
||
|
||
2000-04-10 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
|
||
Recomment.
|
||
* tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
|
||
|
||
Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* sbitmap.h: Whitespace changes and use upper-case macro args.
|
||
(struct simple_bitmap_def): All sizes now unsigned.
|
||
(EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
|
||
* sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
|
||
(sbitmap_vector_alloc): Parms and local vars now unsigned.
|
||
(sbitmap_zero): Cast bzero arg to PTR.
|
||
(sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
|
||
(sbitmap_union_of_diffs): Change loop index to unsigned and rework
|
||
loop to make structure clearer.
|
||
(sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
|
||
(sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
|
||
(sbitmap_a_and_b_or_c): Likewise.
|
||
(sbitmap_intersection_of_succs): Minor cleanups.
|
||
(sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
|
||
(sbitmap_union_of_preds): Likewise.
|
||
(sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
|
||
(debug_sbitmap): New function.
|
||
|
||
* c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
|
||
* c-typeck.c (convert_for_assignment): Likewise.
|
||
|
||
* expmed.c (init_expmed): Don't free objects we make.
|
||
* emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
|
||
|
||
* expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
|
||
(expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
|
||
|
||
* gcse.c (expr_hash_table_size): Now unsigned.
|
||
(compute_ae_gen): Local variable `i' now unsigned.
|
||
(compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
|
||
(compute_transout, hoist_code): Likewise.
|
||
(compute_local_properties): Likewise, also hash_table_size.
|
||
(alloc_expr_hash_table): N_INSNS now unsigned.
|
||
(delete_null_pointer_checks): Mark arg F as unused.
|
||
|
||
* regrename.c: Minor cleanups, including chang some variables
|
||
to unsigned int.
|
||
|
||
2000-04-10 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (skip_block_comment): Use pointer arithmetic rather
|
||
than GETC ().
|
||
* cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
|
||
|
||
2000-04-10 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* invoke.texi (-fno-gnu-keywords): Remove classof, headof,
|
||
__classof__, and __headof__ from the list of gnu keywords.
|
||
(-ansi): Remove -foperator-names from list of implied options.
|
||
Do not call it ANSI C++.
|
||
(-foperator-names): Document as -fno-operator-names.
|
||
|
||
2000-04-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (timestamp): Delete.
|
||
(del_HASHNODE): If type is T_MCONST, free value.cpval.
|
||
(special_symbol): Remove unnecessary braces. Remove
|
||
T_VERSION. Treat T_STDC like T_CONST unless
|
||
STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__
|
||
when one is encountered, then convert them into T_MCONST
|
||
nodes.
|
||
* cppinit.c (builtin_array): version_string is T_MCONST.
|
||
__STDC__ has a "1" in its cpval. Don't have a terminator
|
||
entry. Clean up which entries are dumped.
|
||
(initialize_builtins): Only __STDC__ gets the special
|
||
-traditional treatment. Count the length of builtin_array.
|
||
Render version_string here.
|
||
* cpphash.h: Remove T_VERSION. Add T_MCONST.
|
||
* cpplib.h (struct cpp_reader): Remove timebuf.
|
||
|
||
2000-04-09 Richard Henderson <rth@cygnus.com>
|
||
|
||
* genrecog.c (pred): Update comparison_operator for the unordered
|
||
operators.
|
||
|
||
* config/i386/i386.c (no_comparison_operator): Disallow unordered
|
||
operators.
|
||
(fcmov_comparison_operator): Allow UNORDERED/ORDERED.
|
||
(uno_comparison_operator): New.
|
||
(put_condition_code): Handle UNORDERED/ORDERED.
|
||
(unsigned_comparison): Likewise.
|
||
(ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
|
||
(ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
|
||
(ix86_expand_fp_compare): Use them. Take scratch as argument,
|
||
update all callers. Handle all 8 unordered operators.
|
||
(ix86_expand_setcc): Lose the unordered argument, update all callers.
|
||
(ix86_expand_branch): Likewise. Don't fully expand fp branches.
|
||
* config/i386/i386.h (PREDICATE_CODES): Update.
|
||
* config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
|
||
(ix86_expand_branch, ix86_expand_setcc): Update.
|
||
* config/i386/i386.md (sunordered, sordered): New.
|
||
(suneq, sunge, sungt, sunle, sunlt, sltgt): New.
|
||
(bunordered, bordered): New.
|
||
(buneq, bunge, bungt, bunle, bunlt, bltgt): New.
|
||
(*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
|
||
(*fp_jcc_5, *fp_jcc_6, and splitters): New.
|
||
|
||
2000-04-09 Philip Blundell <philb@gnu.org>
|
||
|
||
* config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
|
||
|
||
Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* i386.md (fix_truncsfhi2, fix_truncdfhi2,
|
||
fix_truncxfhi2): New patterns.
|
||
* i386.c (output_fix_trunc): Handle converting to HImode.
|
||
|
||
2000-04-08 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* ssa.c (convert_to_ssa): Eliminate dead code when calling
|
||
life_analysis.
|
||
(convert_from_ssa): Call compute_bb_for_insn before life_analysis.
|
||
(for_each_successor_phi): Change parameter to basic_block.
|
||
(coalesce_regs_in_successor_phi_nodes): Likewise.
|
||
(coalesce_regs_in_copies): Likewise.
|
||
(compute_coalesced_reg_partition): Use basic_block instead of index.
|
||
* rtl.h (convert_to_ssa): Delete.
|
||
(convert_from_ssa): Likewise.
|
||
(successor_phi_fn): Likewise.
|
||
(for_each_successor_phi): Likewise.
|
||
(in_ssa_form): Likewise.
|
||
* basic-block.h (convert_to_ssa): Moved from rtl.h.
|
||
(convert_from_ssa): Likewise.
|
||
(successor_phi_fn): Likewise.
|
||
(in_ssa_form): Likewise.
|
||
(for_each_successor_phi): Likewise. Change parameter to basic_block.
|
||
* flow.c (calculate_global_regs_live): Pass a basic_block to
|
||
for_each_successor_phi.
|
||
|
||
2000-04-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_used_reg): Use reg_set_p to determine if a register
|
||
was modified in the current insn.
|
||
|
||
2000-04-08 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* arm/thumb.md: Delete.
|
||
* arm/thumb-protos.h: Delete.
|
||
|
||
2000-04-08 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
Merge changes from merged-arm-thumb-backend-branch onto trunk.
|
||
|
||
2000-04-08 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
|
||
into branch.
|
||
|
||
* arm.md (nop): Use the standard RTL expression. Don't code as a
|
||
define_expand.
|
||
(*arm_nop, *thumb_nop): Delete.
|
||
|
||
* arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
|
||
constants. Use casts instead.
|
||
(arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
|
||
output_multi_immediate, arm_poke_function_name): Likewise.
|
||
* arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
|
||
MASK_RETURN_ADDDR): Likewise.
|
||
|
||
2000-03-31 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
|
||
into branch.
|
||
|
||
* arm.md (eh_epilogue): New function.
|
||
* arm.h (struct machine_function): Move to here ...
|
||
* arm.c: ... from here.
|
||
(arm_output_epilogue): Support epilogues for __builtin_eh_return.
|
||
(thumb_exit): Extra parameter eh_ofs. All callers changed.
|
||
Handle epilogues for __builtin_eh_return. Make bit-fields unsigned.
|
||
|
||
2000-03-30 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/semi.h (ASM_SPEC): Restore definition.
|
||
(SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
|
||
|
||
* config/arm/elf.h (ASM_SPEC): Restore definition.
|
||
(SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
|
||
|
||
* config/arm/arm.h (ASM_SPEC): Remove definition.
|
||
(SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
|
||
|
||
2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* config/arm/arm.c: Disable -fschedule-insns for Thumb.
|
||
|
||
2000-03-24 Nick Clifton <nickc@cygnus.com>
|
||
|
||
Various formating tidyups, elimination of compile time
|
||
warnings and synchronisation with internal sources:
|
||
|
||
* config/arm/arm-protos.h (assemble_align): Add prototype.
|
||
(gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
|
||
(gen_comapre_reg): Rename to arm_gen_compare_reg.
|
||
(arm_return_addr_rtx): Rename to arm_return_addr.
|
||
|
||
* config/arm/arm.c: Include except.h.
|
||
Define shorter typenames for strict minipool_node and struct
|
||
minipool_fix.
|
||
(arm_return_in_memory): For WinCE return all structures <= 32 bits
|
||
in memory.
|
||
(gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
|
||
(gen_comapre_reg): Rename to arm_gen_compare_reg.
|
||
|
||
* config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
|
||
already defined.
|
||
(ASM_SPEC): Define if not already defined.
|
||
(ASM_OUTPUT_DEF_FROM_DECLS): Define.
|
||
|
||
* config/arm/arm.md: Rename references to gen_rotated_half_load to
|
||
arm_gen_rotated_half_load, and references to gen_comapre_reg to
|
||
arm_gen_compare_reg.
|
||
(indirect_jump): Only accept register operands.
|
||
(load_indirect_jump): Keep this pattern since combine can generate
|
||
it.
|
||
|
||
* config/arm/coff.h: Include aout.h.
|
||
(MULTILIB_DEFAULTS): Only define if not already defined.
|
||
|
||
* config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
|
||
into arm.h (so that COFF ports can support thumb based aliases).
|
||
(ASM_SPEC): Move definition into arm.h
|
||
|
||
* config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
|
||
redundant apcs spec.
|
||
(ASM_SPEC): Move definition to arm.h
|
||
|
||
* config/arm/semi.h (ASM_SPEC): Move definition to arm.h
|
||
|
||
* config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
|
||
for entries in the .bss section
|
||
|
||
2000-03-23 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
|
||
to thumb_far_jump_used_p.
|
||
|
||
* config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
|
||
single integer parameter.
|
||
|
||
* config/arm/arm.c (struct machine_function): Add two new
|
||
fields, 'far_jump_used' and 'arg_pointer_live'.
|
||
(thumb_far_jump_used_p): Once the decision has been made that
|
||
far jumps might be used, always return true.
|
||
If being called from the initial elimination offset macro then
|
||
do not bother to perform the test if the arg pointer is not
|
||
being used.
|
||
(thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
|
||
(output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
|
||
|
||
2000-03-23 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* arm.c (output_return_instruction): Handle more cases where we can
|
||
return from a function with an ldr instruction.
|
||
(arm_output_epilogue): Likewise.
|
||
|
||
* arm.c (thumb_expand_prologue): Don't clobber the frame pointer
|
||
if we need to push a large stack frame and there are no callee-saved
|
||
registers.
|
||
|
||
* arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
|
||
in ARM code if the frame pointer has been eliminated.
|
||
|
||
* arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
|
||
unspec_volatile arguments to avoid duplicates.
|
||
(consttable_1, consttable_2): Fixes for big-endian mode.
|
||
|
||
* arm.md (all ARM-mode load insns): Add neg_pool_range attribute
|
||
as appropriate.
|
||
|
||
Re-write constant pool code.
|
||
* arm.c (minipool_node, minipool_fix): New types.
|
||
(minifix): Delete type.
|
||
(arm_add_minipool_constant): Delete.
|
||
(arm_compute_minipool_offsets, arm_find_barrier,
|
||
arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
|
||
(get_jump_table_size): Now returns HOST_WIDE_INT.
|
||
(move_minipool_fix_forward_ref, add_minipool_forward_ref): New
|
||
functions.
|
||
(move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
|
||
(assign_minipool_offsets, arm_print_value): Likewise.
|
||
(dump_minipool): Rewrite.
|
||
(arm_barrier_cost): New function.
|
||
(create_fix_barrier): New function.
|
||
(push_minipool_barrier): New function.
|
||
(push_minipool_fix): Record additional information about the fixup
|
||
required.
|
||
(note_invalid_constants): Remove push for (UNSPEC 3). Don't
|
||
check the mode of what needs fixing.
|
||
(arm_reorg): Rewrite.
|
||
|
||
2000-03-08 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.md (indirect_jump): Force constant addresses into
|
||
a register.
|
||
|
||
2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* config/arm/arm.md: Add splitter to turn SF moves into SI moves.
|
||
|
||
2000-02-24 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c (thumb_expand_prologue): Make sure that stack
|
||
adjust is word aligned.
|
||
(thumb_expand_epilogue): Make sure that stack adjust is word
|
||
aligned.
|
||
|
||
* config/arm/elf.h (ASM_FILE_START): Fix type of version string.
|
||
|
||
2000-02-24 Bernd Schmidt <bernds@cygnus.com>
|
||
|
||
* config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
|
||
pointer relative addresses.
|
||
|
||
2000-02-10 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm.c (find_barrier): Find the last barrier within the allowed
|
||
range.
|
||
|
||
2000-02-09 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm-protos.h: Replace PROTO with PARAMS.
|
||
|
||
2000-02-09 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
|
||
ARM_FUNCTION_PROFILER.
|
||
|
||
* config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
|
||
ARM_FUNCTION_PROFILER.
|
||
|
||
* config/arm/linux-oldld.h: Imported from mainline sources.
|
||
|
||
2000-02-07 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/lib1funcs.asm: Merge in thumb functions from
|
||
lib1thumb.asm.
|
||
|
||
* config/arm/lib1thumb.asm: Delete.
|
||
|
||
2000-02-04 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c: Sychronised with current Red hat local
|
||
sources.
|
||
* config/arm/arm.h: Ditto.
|
||
* config/arm/arm-protos.h: Ditto.
|
||
|
||
2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* arm.c (soft_df_operand): Reject SUBREGs containing a constant.
|
||
|
||
* arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
|
||
byte stores.
|
||
|
||
2000-02-02 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/thumb.c (thumb_exit): Additional fix for same bug.
|
||
|
||
* config/arm/arm.md (epilogue): Fix rtl checking abort because
|
||
(return) was emited using an emit_insn() call.
|
||
|
||
2000-01-31 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c (output_thumb_prologue): Fix bug generating
|
||
thumb stack frame.
|
||
(thumb_exit): Move frame pointer back into hard frame pointer
|
||
register if backtracing is being used.
|
||
|
||
2000-01-13 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
|
||
into branch.
|
||
|
||
1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* config/arm/arm.md (neg_pool_offset): Provide default for new
|
||
attribute.
|
||
(arm_movsi_insn): Add neg_pool_offset attribute.
|
||
* config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
|
||
rtx for the insn that starts the scan and an unsigned long for its
|
||
address. Add MIN_OFFSET and PINSERTED args. All callers changed.
|
||
Change scan to ignore insns before MIN_OFFSET. Store size of inserted
|
||
instructions in *PINSERTED.
|
||
(struct minipool_fixup): Add MIN_ADDRESS elt.
|
||
(sort_fixups): Compute it.
|
||
(arm_reorg): Changes to support inserting pools before the insn to be
|
||
fixed up.
|
||
|
||
1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
|
||
* config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
|
||
* config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
|
||
|
||
Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/semi.h (TARGET_VERSION): Do not define if already
|
||
defined.
|
||
(TARGET_DEFAULT): Do not define if already defined.
|
||
|
||
Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.md (anddi3): Allow disjoint source operands.
|
||
(iordi3): Allow disjoint source operands.
|
||
(xordi3): Allow disjoint source operands.
|
||
(negdi2): Permit construction for ARM and Thumb.
|
||
(arm_negdi2): Renamed version of old negdi2 pattern.
|
||
(thumb_negdi2): New pattern: Only permit non-overlapping
|
||
source and destination.
|
||
|
||
Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
|
||
scratch low register so that it will not be deleted.
|
||
|
||
Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/pe.h (ARM_PE): Define.
|
||
|
||
* config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
|
||
interfacearm attribute if this is a PE toolchain.
|
||
(output_return_instruction): Do not emit anything if the function
|
||
has the naked attribute set.
|
||
(is_called_in_ARM_mode): If the function has the interfacearm
|
||
attribute then return true.
|
||
(thumb_expand_prologue): Do not generate a prologue for naked
|
||
functions.
|
||
(thumb_expand_epilogue): Do not generate an epilogie for a naked
|
||
function.
|
||
(output_thumb_prologue): Do not bother if the function is naked.
|
||
Strip PE encoding from function name before emitting.
|
||
|
||
Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm.md (pic_load_addr): Fix constraints.
|
||
|
||
* arm.md (casesi_insn): Fix mis-applied patch.
|
||
|
||
* arm.md ("core" function unit): Add rules for single- and
|
||
multi-cycle insns.
|
||
(All TARGET_THUMB patterns): Add "type" attribute information
|
||
where needed.
|
||
* arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
|
||
the following insn is a CALL.
|
||
|
||
* arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
|
||
pointer.
|
||
* arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
|
||
ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
|
||
(FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
|
||
|
||
Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/linux-gas.h: oops - this file was missed out when the
|
||
branch was created...
|
||
|
||
Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* thumb.c: Deleted. Move contents to ...
|
||
* arm.c: ... here.
|
||
* t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
|
||
rule for thumb.o
|
||
* configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
|
||
* configure: Regen.
|
||
|
||
* arm-protos.h: Use RTX_CODE and tidy up long lines. Don't
|
||
declare a prototype for asm_output_align();
|
||
|
||
* arm.c (thumb_condition_code): Delete.
|
||
(arm_print_operand): Always use arm_condition_code array.
|
||
|
||
* arm.c (thumb_return_addr_rtx): Delete.
|
||
(arm_save_machine_status, arm_restore_machine_status): Delete.
|
||
(arm_init_machine_status, arm_mark_machine_status): New functions.
|
||
(arm_init_expanders): Update accordingly.
|
||
(arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite.
|
||
(thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
|
||
* arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
|
||
|
||
Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* configure.in : Fix arm-*-aout target to use new t-arm-aout
|
||
script.
|
||
* config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
|
||
targets.
|
||
|
||
Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/thumb.c (output_thumb_prologue): Fix bug creating
|
||
stack backtrace structure.
|
||
|
||
* config/arm/arm-protos.h: Add prototypes for functions defined in
|
||
arm/pe.h.
|
||
|
||
* config/arm/arm.c (arm_override_options): Fix selection of
|
||
attributes of default processor.
|
||
|
||
* config/arm/coff.h: Delete needless #include.
|
||
|
||
* config/arm/pe.c: Delete unused code.
|
||
|
||
* config/arm/pe.h (CPP_DEFINES): Delete
|
||
(SUBTARGET_CPP_SPEC): Define.
|
||
(ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
|
||
|
||
* config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
|
||
|
||
Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com)
|
||
|
||
* arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
|
||
updated.
|
||
(CAN_DEBUG_WITHOUT_FP): Define.
|
||
(FIXED_REGISTERS): Make r11 call-saved.
|
||
(CALL_USED_REGISTERS): Likewise.
|
||
(CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
|
||
(FRAME_POINTER_REQUIRED): Correct logic for determining when a
|
||
frame-pointer is required.
|
||
(TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
|
||
* arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
|
||
if the target normally needs a stack frame in non-leaf functions.
|
||
(use_return_insn): Correct logic for determining when a return
|
||
instruction can be used.
|
||
(output_return_instruction): Handle the frame-pointer register as
|
||
a normal register when not TARGET_APCS_FRAME.
|
||
(arm_output_prologue): Likewise.
|
||
(arm_output_epilogue): Likewise.
|
||
(output_func_epilogue): Likewise.
|
||
(arm_expand_prologue): Likewise.
|
||
* netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
|
||
|
||
* arm.c (use_return_insn): No need to check floating point regs if
|
||
TARGET_SOFT_FLOAT.
|
||
(arm_find_minipool_constant): Correct typo; use GET_CODE to get
|
||
the code of value stored in the minipool array.
|
||
(arm_add_minipool_constant): Likewise.
|
||
|
||
2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* basic-block.h (conflict_graph_enum_fn): K&R fix.
|
||
|
||
2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* tree.c (tree_expr_nonnegative_p): New function.
|
||
|
||
* tree.h (tree_expr_nonnegative_p): Declare.
|
||
|
||
* c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
|
||
elide some sign_compare warnings.
|
||
(build_conditional_expr): Likewise.
|
||
|
||
Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com)
|
||
|
||
* i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
|
||
|
||
* i386.md (floathisf2, floathidf2, floathixf2): New patterns.
|
||
* i386.c (print_operand): Use the proper suffix for a 387 HImode
|
||
operand. Abort if a 387 operand has an unsupported size.
|
||
|
||
2000-04-08 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c (parse_charconst): Null does not end character
|
||
constants.
|
||
* cppinit.c (ISTABLE): Null character handled as whitespace.
|
||
* cpplex.c (null_warning): new function.
|
||
(skip_string): Emit warning if nulls encountered.
|
||
(_cpp_skip_hspace): Emit warning if nulls encountered.
|
||
(_cpp_lex_token): Emit warning if nulls encountered. Drop
|
||
them.
|
||
* cpp.texi: Update.
|
||
|
||
2000-04-07 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (loop_depth): Remove.
|
||
(reg_next_use, cc0_live, mem_set_list): Replace with ...
|
||
(struct propagate_block_info): New.
|
||
(life_analysis): Don't allocate reg_next_use.
|
||
(propagate_block_delete_insn): Break out of propagate_block.
|
||
Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
|
||
(propagate_block_delete_libcall): Likewise.
|
||
(propagate_block): Create a propagate_block_info struct to pass
|
||
to subroutines. Allocate one not two temporary regsets. Don't
|
||
clobber memory for const calls. Look for clobbers in
|
||
CALL_INSN_FUNCTION_USAGE.
|
||
(mark_set_regs): Recognize COND_EXEC.
|
||
(mark_set_reg): Break out of mark_set_1.
|
||
(mark_used_reg): Break out of mark_used_regs.
|
||
(mark_used_regs): Recognize COND_EXEC.
|
||
(insn_dead_p): Use propagate_block_info struct.
|
||
(libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
|
||
(find_auto_inc, try_pre_increment_1): Likewise.
|
||
(print_rtl_with_bb): Dump regs live at end too.
|
||
(count_reg_sets_1): Pass in loop_depth.
|
||
(count_reg_sets, count_reg_references): Likewise.
|
||
(recompute_reg_usage): Provide it.
|
||
|
||
2000-04-07 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
|
||
not the raw files.
|
||
|
||
2000-04-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (do_elif): Skip the rest of the line if we're
|
||
not going to bother evaluating it.
|
||
(skip_if_group): Clear pfile->only_seen_white. Reorder loop
|
||
to avoid pointless calls to the lexer.
|
||
|
||
Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
|
||
|
||
2000-04-07 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* calls.c (expand_call): emit_queue if we're trying a sibcall.
|
||
|
||
2000-04-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
|
||
|
||
2000-04-06 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* Makefile.in: Build crtbeginS and crtendS like crtbegin and
|
||
crtend so they can be multilibbed.
|
||
(STAGESTUFF): Remove s-crt and s-crtS.
|
||
|
||
2000-04-07 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (alpha_emit_conditional_move): Fail
|
||
if we discover we need a pseudo and no_new_pseudos is true.
|
||
* config/alpha/alpha.md (ne:DI insn): New.
|
||
(trunctfsf2, sne): Emit NE instead of non-canonical LTU.
|
||
|
||
2000-04-07 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtl.def (COND_EXEC): New.
|
||
* rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
|
||
* tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
|
||
|
||
* genconfig.c (have_cond_arith_flag): Remove.
|
||
(have_cond_exec_flag): New.
|
||
(walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
|
||
(main): Print HAVE_conditional_execution.
|
||
|
||
* haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
|
||
(sched_analyze_insn, print_pattern): Likewise.
|
||
* reload.c (find_equiv_reg): Likewise.
|
||
* rtlanal.c (reg_referenced_p): Likewise.
|
||
(note_stores, dead_or_set_regno_p): Likewise.
|
||
(reg_overlap_mentioned_p): Rewrite to use a switch.
|
||
|
||
* ggc.h (struct rtx_def): Forward declare.
|
||
|
||
* print-rtl.c (debug_rtx_range): New.
|
||
* rtl.h (debug_rtx_range): Declare.
|
||
|
||
* varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
|
||
|
||
* gcse.c (gcse_main): Don't rebuild the CFG here.
|
||
(delete_null_pointer_checks): Likewise.
|
||
* ssa.c (convert_to_ssa): Likewise.
|
||
* toplev.c (rest_of_compilation): Do it here instead. Combine
|
||
sequential calls to TIMEVAR. Consistently use `insns' instead of
|
||
`get_insns()'. Always split insns after reload when optimizing.
|
||
|
||
* basic-block.h (merge_blocks_nomove): Declare.
|
||
(tidy_fallthru_edge): Declare.
|
||
* flow.c (merge_blocks_nomove): Document as merging into previous
|
||
blocks. Remove cruft from between blocks; remove all edges out of A.
|
||
(tidy_fallthru_edge): Export.
|
||
|
||
2000-04-06 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* ssa.c (compute_conservative_reg_partition): Declare with
|
||
void arguments.
|
||
* toplev.c (clean_dump_file): Remove previously-deleted function
|
||
inadvertantly merged back in.
|
||
* conflict.c (conflict_graph_add): Use a single call to
|
||
htab_find_slot to look up and insert.
|
||
|
||
2000-04-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* genrecog.c (*): Rename _last_insn to last_insn.
|
||
(make_insn_sequence): Set the position of the peephole2 C test
|
||
to be at the last insn.
|
||
|
||
2000-04-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (compute_flow_dominators): Free worklist.
|
||
|
||
2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de>
|
||
|
||
* flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
|
||
|
||
2000-04-06 Alex Samuel <samuel@codesourcery.com>
|
||
|
||
* rtl.h (INSN_P): New macro.
|
||
(successor_phi_fn): New typedef.
|
||
(for_each_successor_phi): New prototype.
|
||
(in_ssa_form): New variable.
|
||
(PHI_NODE_P): Likewise.
|
||
* flow.c (calculate_global_regs_live): Add to new_live_at_end from
|
||
phi nodes in successors.
|
||
(mark_used_regs): Add PHI case.
|
||
(set_phi_alternative_reg): New function.
|
||
(life_analysis): Assert that dead code elimination is not selected
|
||
when in SSA form.
|
||
* toplev.c (to_ssa_time): New variable.
|
||
(from_ssa_time): Likewise.
|
||
(compile_file): Zero to_ssa_time and from_ssa_time.
|
||
Print time to convert to and from SSA.
|
||
(rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
|
||
(print_time): Compute percent fraction as integer.
|
||
* ssa.c (PHI_NODE_P): Moved to rtl.h.
|
||
(convert_to_ssa): Check if we're already in SSA.
|
||
Don't eliminate dead code in life_analysis.
|
||
Rerun flow and life analysis at bottom.
|
||
(eliminate_phi): Use canonical regnos when adding nodes.
|
||
(mark_reg_in_phi): New function.
|
||
(mark_phi_and_copy_regs): Likewise.
|
||
(convert_from_ssa): Rerun life analysis at top.
|
||
Use coalesced partition.
|
||
Check for removing a phi node at the end of the block.
|
||
(compute_coalesced_reg_partition): New function.
|
||
(coalesce_regs_in_copies): Likewise.
|
||
(coalesce_reg_in_phi): Likewise.
|
||
(coalesce_regs_in_successor_phi_nodes): Likewise.
|
||
(for_each_successor_phi): Likewise.
|
||
(rename_context): New struct.
|
||
(rename_block): Use a rename_context with rename_insn_1. When
|
||
renaming sets of a subreg, emit a copy of the entire reg first.
|
||
(rename_insn_1): Treat data as a rename_context *. Save current
|
||
insn in set_data.
|
||
(rename_set_data): Add field set_insn.
|
||
* Makefile.in (HASHTAB_H): Move up in file.
|
||
(OBSTACK_H): New macro.
|
||
(collect2.o): Use OBSTACK_H in dependencies.
|
||
(sdbout.o): Likewise.
|
||
(emit-rtl.o): Likewise.
|
||
(simplify-rtx.o): Likewise.
|
||
(fix-header.o): Likewise.
|
||
(OBJS): Add conflict.o.
|
||
(conflict.o): New rule.
|
||
* basic-block.h: Include partition.h.
|
||
(conflict_graph): New typedef.
|
||
(conflict_graph_enum_fn): Likewise.
|
||
(conflict_graph_new): New prototype.
|
||
(conflict_graph_delete): Likewise.
|
||
(conflict_graph_add): Likewise.
|
||
(conflict_graph_conflict_p): Likewise.
|
||
(conflict_graph_enum): Likewise.
|
||
(conflict_graph_merge_regs): Likewise.
|
||
(conflict_graph_print): Likewise.
|
||
(conflict_graph_compute): Likewise.
|
||
* conflict.c: New file.
|
||
|
||
2000-04-06 Jason Merrill <jason@yorick.cygnus.com>
|
||
|
||
* tlink.c (read_repo_files): Don't look for .rpo info for
|
||
linker flags.
|
||
|
||
Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
|
||
|
||
Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* config/sh/lib1funcs.asm (___udivsi3_i4):
|
||
( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
|
||
only depends on FMOVD_WORKS.
|
||
|
||
Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
|
||
make double constant 8-byte aligned.
|
||
|
||
2000-04-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
|
||
movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
|
||
movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
|
||
(movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
|
||
Accept storing GENERAL_REGS into offsetable memory.
|
||
* config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
|
||
building a TFmode constant other than 0.0L into GENERAL_REGS.
|
||
|
||
2000-04-06 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
|
||
|
||
2000-04-06 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
|
||
(macro_cleanup): No need to cast pbuf->macro.
|
||
(collect_expansion): Use _cpp_get_define_token. Goto done if
|
||
it returns VSPACE. Remove check for trailing space after
|
||
CPP_COMMENT.
|
||
(_cpp_create_definition): Don't diddle flags here. Return
|
||
directly on error.
|
||
(unsafe_chars): Handle c1 being EOF.
|
||
(push_macro_expansion): Use unsafe_chars for both accidental-paste
|
||
checks. Don't push the buffer till after we're done with
|
||
them.
|
||
* cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
|
||
(PEEKN, FORWARD, GETC, PEEKC): Use them.
|
||
(cpp_push_buffer): Don't set new->alimit. Set new->mark
|
||
appropriately.
|
||
(_cpp_parse_assertion): Don't NUL terminate.
|
||
(_cpp_lex_token): Fix -traditional macro handling. Don't skip
|
||
hspace before calling _cpp_parse_assertion. Remove all sets
|
||
of only_seen_white. Treat '\f' as hspace. Don't do anything
|
||
special with '\n' here.
|
||
(maybe_macroexpand): Handle T_EMPTY hash entries without
|
||
pushing a buffer at all.
|
||
(cpp_get_token): Handle clearing only_seen_white here. Handle
|
||
incrementing the line number here. Clear
|
||
potential_control_macro as well as only_seen_white, if
|
||
appropriate.
|
||
(cpp_get_non_space_token): Don't eat CPP_POP tokens.
|
||
(_cpp_get_define_token): New function, basically like
|
||
_cpp_get_directive_token was but doesn't eat horizontal space.
|
||
Don't do anything with only_seen_white here.
|
||
(_cpp_get_directive_token): Just call _cpp_get_define_token
|
||
repeatedly till it returns non-hspace.
|
||
|
||
* cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
|
||
(conditional_skip, skip_if_group): Return int.
|
||
(DIRECTIVE_TABLE): Change origin of all conditional directives
|
||
to "COND".
|
||
(TRAD_DIRECT_P): New macro.
|
||
(_cpp_handle_directive): Use _cpp_get_directive_token. Issue
|
||
an error for a bogus directive, unless -lang-asm. Use
|
||
TRAD_DIRECT_P. Loop calling handler functions till one returns
|
||
zero.
|
||
(get_macro_name): Don't diddle flags here.
|
||
(do_define): Diddle flags here. Use _cpp_get_directive_token.
|
||
Create T_EMPTY nodes for #define macro /* nothing */.
|
||
(do_undef): Don't copy the name. Use _cpp_get_directive_token.
|
||
Use hp->name when calling pass_thru_directive.
|
||
(do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
|
||
Return the result of conditional_skip and/or skip_if_group.
|
||
Don't call _cpp_output_line_command.
|
||
(consider_directive_while_skipping): Use _cpp_get_directive_token.
|
||
Issue -Wtraditional warnings as appropriate. Don't complain
|
||
about unrecognized directives. If we are to stop skipping,
|
||
return the number of the directive that ended the skip.
|
||
(skip_if_group): Use _cpp_get_directive_token. Turn off macro
|
||
expansion and line commands while skipping. Return the result
|
||
of consider_directive_while_skipping, if nonzero.
|
||
(do_endif): Just set potential_control_macro here.
|
||
(validate_else): Use _cpp_get_directive_token.
|
||
(do_assert, do_unassert): Don't save pointers into the
|
||
token_buffer across calls to the lexer. Use
|
||
_cpp_get_directive_token.
|
||
|
||
* cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a
|
||
pointer, not an offset. Replace 'data', which was a generic
|
||
pointer, with 'macro', which points to a struct hashnode.
|
||
(cpp_reader): Add 'potential_control_macro' pointer.
|
||
* cpphash.h (T_UNUSED): Replace with T_EMPTY.
|
||
(CPP_BUF_GET, CPP_FORWARD): Delete.
|
||
(CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
|
||
(CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
|
||
ACTIVE_MARK_P): Update.
|
||
(_cpp_get_define_token): New internal function.
|
||
* cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
|
||
|
||
2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
|
||
|
||
* configure.in: And here.
|
||
* configure: Regenerate.
|
||
* acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
|
||
--enable-libstdcxx-v3 is passed at configure time.
|
||
* config.h.in: Regenerate.
|
||
|
||
2000-04-05 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* final.c (final): Use xcalloc to allocate line_note_exists.
|
||
* function.c (free_after_compilation): Free the temp_slots.
|
||
(assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
|
||
(combine_temp_slot): Free temp_slots when they get combined.
|
||
(purge_addressof): Fix typo in comment.
|
||
* stmt.c (mark_goto_fixup): Mark the fixup itself.
|
||
(expand_fixup): Allocate the fixup with ggc_alloc_obj.
|
||
|
||
* ggc.h: Include varray.h.
|
||
(ggc_pending_trees): Declare.
|
||
(ggc_mark_tree_children): Remove declaration.
|
||
(ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
|
||
* ggc-common.c (ggc_pending_trees): New variable.
|
||
(ggc_mark_roots): Call ggc_mark_trees.
|
||
(ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
|
||
the ggc_pending_trees.
|
||
* Makefile.in (GGC_H): New variable. Use it throughout in place
|
||
of ggc.h.
|
||
|
||
Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accommodate an unsigned
|
||
GET_MODE_SIZE.
|
||
|
||
Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.c (sh_insn_length_adjustment): New function.
|
||
* sh-protos.h (sh_insn_length_adjustment): Declare.
|
||
* sh.h (ADJUST_INSN_LENGTH): Use it.
|
||
|
||
Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
|
||
from the insn where REG_RETVAL is added.
|
||
(emit_no_conflict_block): Ditto.
|
||
|
||
* md.texi (Standard Names): Clarify when movX is needed.
|
||
|
||
* combine.c (simplify_comparison) [MINUS]: Do not replace
|
||
all (op (minus A B) 0) with (op A B).
|
||
|
||
Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com)
|
||
J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.md (block_lump_real_i4): Add missing clobber of T_REG
|
||
(block_lump_real): Likewise.
|
||
|
||
2000-04-05 Chris Demetriou <cgd@netbsd.org>
|
||
|
||
* mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
|
||
remaining non-zero debugging masks.
|
||
|
||
Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* basic-block.h (verify_flow_info): Declare.
|
||
(flow_loop_outside_edge_p): Declare.
|
||
* flow.c (verify_flow_info): Remove declaration.
|
||
(clear_log_links, flow_loop_outside_edge_p): Likewise.
|
||
|
||
Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
|
||
not C++ comments.
|
||
|
||
2000-04-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
|
||
snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
|
||
seqdi_zero_trunc+1): Allow splits only if registers are
|
||
different.
|
||
|
||
2000-04-04 Ulrich Drepper <drepper@cygnus.com>
|
||
|
||
* acconfig.h: Add HAVE_GAS_HIDDEN.
|
||
* config.in: Regenerated.
|
||
* configure.in: Add test for .hidden pseudo-op in gas.
|
||
* configure: Regenerated.
|
||
* crtstuff.c: Include auto-host.h.
|
||
Emit additional .hidden pseudo-op for __dso_handle if the
|
||
assembler knows about it.
|
||
|
||
2000-04-04 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
|
||
before freeing argnames.
|
||
* cpplib.c (do_ifndef): Cast return value of xstrdup.
|
||
|
||
2000-04-05 Michael Meissner <meissner@redhat.com>
|
||
|
||
* config/rs6000/rs6000.c (print_operand): Patch from Jonathan
|
||
Walton <jonboy@gordian.com> to make memory references with update
|
||
work wtih -mregnames.
|
||
|
||
2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
|
||
(regrename_optimize): Rename variables `def_uses' and
|
||
`ext_basic_blocks' to avoid conflicts with similarly named
|
||
typedefs in traditional C.
|
||
|
||
* calls.c (initialize_argument_information): Fix typo in previous
|
||
change.
|
||
|
||
2000-04-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* regrename.c (consider_available): Test fixed_regs not
|
||
PIC_OFFSET_TABLE_REGNUM.
|
||
|
||
2000-04-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
|
||
crtend.
|
||
(CRTSTUFF_T_CFLAGS_S): Delete definition.
|
||
* config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
|
||
(ENDFILE_LINUX_SPEC): Always use crtend.
|
||
* configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
|
||
(powerpc-*-linux-gnu): Likewise.
|
||
* configure: Regenerate.
|
||
|
||
* config/rs6000/eabi.h: Don't include sysv4.h.
|
||
(MULTILIB_DEFAULTS): Don't define.
|
||
* config/rs6000/eabiaix.h: Don't include eabi.h.
|
||
* config/rs6000/eabile.h: Delete.
|
||
* config/rs6000/eabilesim.h: Delete.
|
||
* config/rs6000/eabisim.h: Don't include eabi.h.
|
||
* config/rs6000/linux.h: Don't include sysv4.h.
|
||
(JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
|
||
(MULTILIB_DEFAULTS): Don't redefine.
|
||
* config/rs6000/rtems.h: Don't include eabi.h.
|
||
* config/rs6000/sol2.h: Don't include sysv4le.h.
|
||
* config/rs6000/sysv4le.h: Don't include sysv4.h.
|
||
* config/rs6000/t-ppc: Delete.
|
||
* config/rs6000/t-ppcgas: Correct comment.
|
||
* config/rs6000/t-ppcos: Correct comment. Don't build
|
||
multilibs for -fPIC, rather use -fPIC -mstrict-align
|
||
as default.
|
||
* config/rs6000/t-ppc: Delete.
|
||
* config/rs6000/vxppc.h: Don't include sysv4.h.
|
||
* config/rs6000/vxppcle.h: Delete.
|
||
* configure.in: Use multiple header files for p2pc ELF targets
|
||
powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
|
||
powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
|
||
powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
|
||
powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is
|
||
always available for these platforms.
|
||
|
||
2000-04-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c (try_to_integrate): Initialize reg_parm_stack_space.
|
||
|
||
2000-04-04 Stan Cox <scox@cygnus.com>
|
||
|
||
* Makefile.in: Add rules for regrename.o
|
||
* regrename.c: New file.
|
||
* rtl.h (regrename_optimize): Add prototype.
|
||
* toplev.c (rename_registers_dump, flag_rename_registers): New variables
|
||
(compile_file, decode_d_option): Add support for -frename-registers.
|
||
(rest_of_compilation): Call regrename_optimize.
|
||
* config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
|
||
New macros.
|
||
|
||
2000-04-04 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* Makefile (gccbug): New target.
|
||
(doc): Depend on it.
|
||
* gcc.texi (Bugs): Link subnodes.
|
||
(gccbug): New node.
|
||
* gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
|
||
Document severities, priorities, and classes in bug form.
|
||
|
||
2000-04-04 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplex.c (trigraph_map, speccase): Combine into single
|
||
table, chartab.
|
||
(NORMAL, NONTRI): New macros.
|
||
(_cpp_read_and_prescan): Change to use unified table. Use
|
||
is_hspace to test for whitespace.
|
||
|
||
* dbxout.c (CONTIN): If it doesn't have to do anything, give it a
|
||
definition that doesn't provoke the "empty body in an
|
||
if-statement" warning.
|
||
|
||
2000-04-04 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_strlen): Force the source to
|
||
be a memory address.
|
||
|
||
2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
|
||
|
||
Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
|
||
ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants.
|
||
(ECF_IS_CONST): Rename to ECF_CONST.
|
||
(special_function_p): Make static, change interface.
|
||
(flags_from_decl_or_type, try_to_integrate): Break out from ...
|
||
(expand_call) ... here; convert number of variables to flags.
|
||
(emit_library_call_vlue_1): Likewise.
|
||
(setjmp_call_p): New function.
|
||
(initialize_argument_information): Accepts flags as argument;
|
||
return flags.
|
||
(precompute_arguments): Likewise.
|
||
* tree.h (special_function_p): Remove.
|
||
(setjmp_call_p): Add prototype.
|
||
|
||
2000-04-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
|
||
so that addresses are offsetable by up to 16 bytes.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
|
||
non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
|
||
offsetable.
|
||
|
||
* config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
|
||
(movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
|
||
(movsf): Don't force any constant to memory if target is integer
|
||
hard register.
|
||
Move fp_zero_operand check below the const0_rtx check.
|
||
(movtf): Likewise. Also allow fp_zero_operand for stores into
|
||
memory.
|
||
(movdf): Likewise. Also allow fp_zero_operand for stores into
|
||
memory and into integer hard registers.
|
||
(clear_df, clear_dfp, movdf_const_intreg_sp32,
|
||
movdf_const_intreg_sp64): Remove.
|
||
(movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
|
||
conditions.
|
||
(movdf_no_e_insn_v9_sp32): New pattern.
|
||
(movdf_insn_v9only): Remove.
|
||
(movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
|
||
(movdf_insn_sp64): Remove.
|
||
(movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
|
||
(movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
|
||
(following splits): Rewrite conditions. Add two new splits
|
||
for storing 0.0 into memory and registers.
|
||
(clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
|
||
(movtf_insn_sp32): Redo constraints and conditions.
|
||
(movtf_insn_vis_sp32): New pattern.
|
||
(movtf_no_e_insn_sp32): Redo constraints and conditions.
|
||
(movtf_insn_hq_sp64): Likewise.
|
||
(movtf_insn_hq_vis_sp64): New pattern.
|
||
(movtf_insn_sp64): Redo constraints and conditions.
|
||
(movtf_insn_vis_sp64): New pattern.
|
||
(movtf_no_e_insn_sp64): Redo constraints and conditions.
|
||
(movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
|
||
or memory.
|
||
* config/sparc/sparc.c (sparc_override_options): Assume v9 if either
|
||
-mvis or -m64 to take down the number of various reload patterns.
|
||
|
||
Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* pa/pa-64.h: New file.
|
||
* pa/pa64-regs.h: New file.
|
||
* pa/pa64-start.h: New file.
|
||
* pa/t-pa64: New file.
|
||
* pa/xm-pa64hpux.h: New file.
|
||
|
||
2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* sparc.c (output_restore_regs): Prototype.
|
||
(sparc_emit_float_lib_cmp): Constification.
|
||
|
||
* emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
|
||
|
||
* reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
|
||
Prototype.
|
||
|
||
* simplify-rtx.c (entry_and_rtx_equal_p): Constification.
|
||
(get_value_hash, hash_rtx): Likewise.
|
||
|
||
* ssa.c (compute_conservative_reg_partition): Prototype.
|
||
|
||
* tree.c (mark_hash_entry): Prototype.
|
||
|
||
2000-04-03 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
|
||
* i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
|
||
* i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
|
||
|
||
* gcc.c (C specs): Pass -fno-show-column to the preprocessor.
|
||
* objc/lang-specs.h: Likewise.
|
||
|
||
2000-04-03 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR
|
||
and SYNTAX_ERROR2. Replace `' in messages with ''.
|
||
(op_to_str): Make re-entrant.
|
||
(_cpp_parse_expr): Implement new error macros. Use | rather
|
||
than || to logically or 2 boolean integers. Simply expression
|
||
checking we have a left operand iff needed.
|
||
|
||
2000-04-03 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* Makefile.in (diagnostic.o): Depend upon diagnostic.c
|
||
|
||
2000-04-03 Philip Blundell <philb@gnu.org>
|
||
|
||
* config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
|
||
|
||
2000-04-03 Felix Lee <flee@cygnus.com>
|
||
|
||
* fixinc/server.c (find_shell): New function. Avoid $SHELL.
|
||
(run_shell): Use it.
|
||
|
||
2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk>
|
||
|
||
* Makefile.in (stmp-int-hdrs): Make include subdir here...
|
||
(stmp-fixproto): ...rather than here.
|
||
|
||
Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* pa.c (print_operand): Compute 'base' only inside the code paths
|
||
that use it.
|
||
|
||
2000-04-03 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
|
||
CEIL_DIV_EXPR.
|
||
|
||
2000-04-03 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
|
||
|
||
Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu>
|
||
|
||
* Makefile.in (alias.o): Depend on $(TREE_H).
|
||
|
||
2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppinit.c (cpp_start_read): Turn off -Wtraditional if
|
||
processing C++.
|
||
* cpplib.c (_cpp_handle_directive): Improve warnings for
|
||
traditional C and indented directives.
|
||
|
||
* enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
|
||
fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
|
||
fixinc/inclhack.def: Indent the # of #include_next one space.
|
||
* cp/rtti.c: Un-indent #if and #endif.
|
||
|
||
* cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
|
||
syntax error, but an error has already been printed.
|
||
* cpplex.c (_cpp_parse_assertion): Give a more specific error
|
||
message when called with nothing remaining on the line.
|
||
(_cpp_lex_token): If _cpp_parse_assertion fails, return an
|
||
OTHER token, not an ASSERTION.
|
||
* cpplib.c (do_assert): When we create a 'base' node, clear
|
||
its aschain pointer.
|
||
|
||
2000-04-02 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: New typedef op_t. struct operation and struct
|
||
token updated to use it.
|
||
(op_to_str): New function.
|
||
(_cpp_parse_expr): Error messages modified to use op_to_str.
|
||
|
||
2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
|
||
before checking MUST_PASS_IN_STACK.
|
||
|
||
2000-04-02 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: New FINISHED dummy token. Combine operator initial
|
||
flags and initial priority into a single constant. New
|
||
EQUALITY macro. New operator flag SHORT_CIRCUIT.
|
||
(_parse_cpp_expr): Implement new constants. Take left operand
|
||
checks out of reduction loop. Handle SHORT_CIRCUIT. End of
|
||
parse indicated by reducing FINISHED token. Remove new lines
|
||
from cpp_error messages.
|
||
|
||
2000-04-01 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
|
||
permanent obstack.
|
||
|
||
2000-04-01 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c: Include symcat.h. Add 'origin' field to struct
|
||
directive. Add origin values to DIRECTIVE_TABLE. Generate
|
||
the strings and function names on the fly. Take the #sccs
|
||
entry out of the table if SCCS_DIRECTIVE is not defined.
|
||
(_cpp_handle_directive): Decide if the # was at the beginning
|
||
of the line here. Issue -pedantic warnings for extended
|
||
directives here. Warn about K+R directives with the #
|
||
indented, and C89/extended directives with the # not indented,
|
||
here.
|
||
(do_import, do_include_next, do_warning, do_ident, do_sccs,
|
||
do_assert, do_unassert): Don't issue pedantic warning here.
|
||
|
||
* cpphash.h: Add CPP_WTRADITIONAL macro.
|
||
* cpplib.h (struct cpp_options): Rename warn_stringify to
|
||
warn_traditional; update comments.
|
||
* cppinit.c (handle_option): Set warn_traditional not
|
||
warn_stringify.
|
||
* cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
|
||
CPP_WTRADITIONAL (pfile).
|
||
* cpplex.c (_cpp_lex_token): Don't decide if directives should
|
||
be ignored in -traditional mode here.
|
||
|
||
* cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
|
||
to initialize speccase[] and trigraph_map[]. Delete all
|
||
references to pfile->input_speccase. Always treat '?' as a
|
||
special character. Remove table-initialization code from
|
||
_cpp_init_input_buffer.
|
||
|
||
* cpplib.h (struct cpp_reader): Remove input_speccase field.
|
||
* cppinit.c (cpp_cleanup): Don't free input_speccase.
|
||
|
||
2000-04-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
|
||
(mostlyclean): Likewise.
|
||
|
||
* toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
|
||
(struct dump_file_info, enum dump_file_index, dump_file): New.
|
||
(open_dump_file): Take a dump_file_index not a suffix, and a decl
|
||
not a string. Clean out file if we haven't yet done so. Do nothing
|
||
if the dump isn't enabled.
|
||
(close_dump_file): Do nothing if the dump isn't open. Dump
|
||
graph data if requested.
|
||
(dump_rtl, clean_dump_file): Remove.
|
||
(compile_file): Don't clean the dump files. Only finalize .bp dump
|
||
if flag_test_coverage or flag_branch_probabilities. Only finalize
|
||
.combine dump if optimizing. Iterate over dump_file to finalize the
|
||
graph dumps.
|
||
(rest_of_compilation): Update for open_dump_file/close_dump_file.
|
||
Convert all uses of dump_rtl.
|
||
(decode_d_option): Iterate over dump_file to implement 'a' and to
|
||
locate pass-specific dumps.
|
||
|
||
2000-04-01 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: Redefine priority constants.
|
||
(_cpp_parse_expr): Replace left and right priority scheme with
|
||
single priority logic. Move LOGICAL to same place as COMPARE.
|
||
Remove bogus check for multiple unary +/- operators.
|
||
|
||
2000-04-01 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
|
||
within the switch statement. Binary operations break out of
|
||
the switch naturally. '(' tokens handled by forcing
|
||
immediate shift. ')' handled by forcing immediate reduce to
|
||
the previous '('. New error messages.
|
||
|
||
2000-03-31 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
|
||
part', it's already in use. Use %K instead. Add a return at the
|
||
end of what is now %K.
|
||
* config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
|
||
|
||
Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* builtins.c (expand_builtin_apply): Pass proper parameters to
|
||
allocate_dynamic_stack_space.
|
||
* calls.c (emit_call_1): Do not adjust stack pointer for SIB,
|
||
update stack_pointer_delta; do not update arg_size_so_far.
|
||
(compute_argument_block_size): Use stack_delta instead of
|
||
stack_pointer_pending and arg_size_so_far.
|
||
(expand_call): Add sanity checking for stack_pointer_delta;
|
||
save and restore stack_pointer_delta for SIB, use
|
||
stack_pointer_delta for alignment; do not update arg_space_so_far.
|
||
(emit_library_call_value): Use stack_pointer_delta for alignment.
|
||
(store_one_arg): Do not update arg_space_so_far.
|
||
* explow.c (adjust_stack, anti_adjust_stack): Update
|
||
stack_pointer_delta.
|
||
(allocate_dynamic_stack_space): Add sanity checking for
|
||
stack_pointer_delta.
|
||
* expr.c (init_expr, clear_pending_stack_adjust): Clear
|
||
stack_pointer_delta.
|
||
(emit_push_insn): Update stack_pointer_delta.
|
||
* function.h (struct expr_status): Add x_stack_pointer_delta;
|
||
remove x_arg_space_so_far.
|
||
(arg_space_so_far): Remove.
|
||
(stack_pointer_delta): New macro.
|
||
|
||
2000-03-31 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h: Merge struct cpp_options into struct cpp_reader.
|
||
Reorder struct cpp_options and struct cpp_reader for better
|
||
packing. Replace CPP_OPTIONS macro with CPP_OPTION which
|
||
takes two args. Change all 'char' flags to 'unsigned char'.
|
||
Move show_column flag into struct cpp_options. Don't
|
||
prototype cpp_options_init.
|
||
* cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
|
||
cppinit.c, cpplex.c, cpplib.c:
|
||
Replace CPP_OPTIONS (pfile)->whatever with
|
||
CPP_OPTION (pfile, whatever), and likewise for
|
||
opts = CPP_OPTIONS (pfile); ... opts->whatever;
|
||
|
||
* cppinit.c (merge_include_chains): Take a cpp_reader *.
|
||
Extract CPP_OPTION (pfile, pending) and work with that
|
||
directly.
|
||
(cpp_options_init): Delete.
|
||
(cpp_reader_init): Turn on on-by-default options here.
|
||
Allocate the pending structure here.
|
||
(cl_options, enum opt_code): Define these from the same table,
|
||
kept in a large macro. Add -fshow-column and -fno-show-column
|
||
options.
|
||
|
||
* cpperror.c (v_message): If show_column is off, don't print
|
||
the column number.
|
||
|
||
* cppmain.c: Update for new interface.
|
||
* fix-header.c: Likewise.
|
||
|
||
2000-03-30 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
|
||
definition.
|
||
* Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
|
||
are passed to any invocation of AR_FOR_TARGET.
|
||
(AR_CREATE_FOR_TARGET): New macro.
|
||
(AR_EXTRACT_FOR_TARGET): New macro.
|
||
(ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
|
||
AR_EXTRACT_FOR_TARGET.
|
||
(many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
|
||
in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
|
||
`$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
|
||
AR_EXTRACT_FOR_TARGET to sub-makes.
|
||
|
||
2000-03-31 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c: Delete SKIP_OPERAND. Correct priority
|
||
PAREN_INNER_PRIO.
|
||
(_cpp_parse_expr): Check for multiple unary +/- operators.
|
||
Correct priorities of ':' and '?'. Treat ')' as having a
|
||
value. Ensure conditional expression is not void.
|
||
|
||
2000-03-31 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* alias.c (canon_rtx): Make it global.
|
||
(rtx_equal_for_memref_p): CONST_INT equality is now pointer
|
||
equality.
|
||
* cse.c (struct table_elt): Add canon_exp.
|
||
(insert): Clear it.
|
||
(invalidate): Canonicalize expressions only once.
|
||
* rtl.h (canon_rtx): Declare.
|
||
|
||
2000-03-30 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
|
||
* alias.c (reg_known_value): Add comments.
|
||
(init_alias_analysis): Likewise.
|
||
* cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
|
||
address.
|
||
(cse_basic_block): Fix typo in comment.
|
||
* emit-rtl.c: Include hashtab.h.
|
||
(const_int_htab): New variable.
|
||
(const_int_htab_hash): New function.
|
||
(const_int_htab_eq): Likewise.
|
||
(rtx_htab_mark_1): Likewise.
|
||
(rtx_htab_mark): Likewise.
|
||
(gen_rtx_CONST_INT): Cache all CONST_INTs.
|
||
(unshare_all_rtx): Fix formatting.
|
||
(init_emit_once): Initialize const_int_htab.
|
||
* rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
|
||
address.
|
||
* rtl.texi: Document the fact that all CONST_INTs with the same
|
||
value are shared.
|
||
|
||
2000-03-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
|
||
|
||
2000-03-30 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* configure.in: Comment out --enable-c-cpplib stanza.
|
||
* configure: Regenerate.
|
||
|
||
Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (store_constructor): Properly compute displacement and
|
||
alignment when offset is variable.
|
||
|
||
* expmed.c (store_bit_field, store_fixed_bit_field): Fix more
|
||
cases of alignment in bytes.
|
||
|
||
Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* c-parse.in (cast_expr): Move change from March 21 into c-parse.in
|
||
since it is used to generate c-parse.y.
|
||
* objc-parse.c, objc-parse.y: Regenerated.
|
||
|
||
* function.c (expand_function_end): Pass alignment argument to
|
||
emit_block_move in bits, not bytes.
|
||
|
||
Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (move_by_pieces_ninsns): Fix one more missing align
|
||
correction.
|
||
|
||
* expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
|
||
|
||
* calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
|
||
* explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
|
||
* function.c (assign_parms): Likewise.
|
||
* integrate.c (expand_inline_function): Likewise.
|
||
* stmt.c (expand_decl): Likewise.
|
||
(copy_rtx_and_substitute): Likewise.
|
||
* expr.c (expand_expr, expand_expr_unaligned): Likewise.
|
||
(clear_by_pieces): Fix error in last change.
|
||
* emit-rtl.c (init_emit): Set known registers alignment in bits.
|
||
* function.h (regno_pointer_align): Now unsigned.
|
||
* config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
|
||
is in bits.
|
||
* config/i386/i386.c (aligned_operand): Likewise.
|
||
* config/sparc/sparc.c (mem_min_alignment): Likewise.
|
||
* config/alpha/alpha.c (aligned_memory_operand): Likewise.
|
||
(unaligned_memory_operand): Likewise.
|
||
(alpha_expand_block_move, alpha_expand_block_clear): Likewise.
|
||
Also make alignments and sizes unsigned and some whitespace cleanup.
|
||
(alpha_va_start): Do nothing if VALIST's type is error_mark_node.
|
||
|
||
* builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
|
||
(expand_builtin_apply): Pass alignment to emit_block_move in bits.
|
||
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
|
||
(expand_builtin_memset): Likewise, but to clear_storage.
|
||
* calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
|
||
(restore_fixed_argument_area): Likewise.
|
||
(store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
|
||
(load_register_parameters): Likewise, to emit_group_load.
|
||
(expand_call): Likewise, to emit_group_store and emit_block_move.
|
||
(emit_library_call_value_1): Likewise, to emit_block_move.
|
||
(store_one_arg): Likewise, and to emit_push_insn.
|
||
* expmed.c (extract_bit_field): Alignment is in bits, not bytes.
|
||
(extract_fixed_bit_field, extract_split_bit_field): Likewise.
|
||
* expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
|
||
(emit_block_move, emit_group_load, emit_group_store): Likewise.
|
||
(clear_by_pieces, clear_storage, emit_push_insn): Likewise.
|
||
(expand_assigment, store_expr, store_constructor_field): Likewise.
|
||
(expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
|
||
(store_constructor, store_field, get_inner_reference): Likewise.
|
||
Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
|
||
(expand_expr, case COMPONENT_REF): Likewise.
|
||
(copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
|
||
and positions; reindent code.
|
||
* expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
|
||
* function.c (purge_addressof_1): Pass bit align to store_bit_field.
|
||
(assign_parms): Likewise to emit_group_store.
|
||
* optabs.c (prepare_cmp_insn): Alignment is in bits.
|
||
(emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
|
||
* stmt.c (expand_value_return): Pass align in bits to emit_group_load.
|
||
(expand_return): Likewise to {extract,store}_bit_field.
|
||
* stor-layout.c (get_mode_alignment): Minor cleanup.
|
||
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
|
||
* config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
|
||
|
||
2000-03-29 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.h: Undo effects of previous delta:
|
||
(ASM_SPEC): Do not define.
|
||
(SUBTARGET_EXTRA_ASM_SPEC): Do not define.
|
||
|
||
* config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
|
||
typo.
|
||
|
||
2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppinit.c (cpp_start_read): Call initialize_dependency_output
|
||
only after reading in the primary source file.
|
||
|
||
2000-03-29 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): The first parameter to
|
||
__builtin_va_start and __builtin_va_copy is now either a 'va_list'
|
||
or a reference to a va_list.
|
||
* builtins.c (stabilize_va_list): Simplify now we don't have to
|
||
work around C array address decay.
|
||
* c-typeck.c (convert_for_assignment): Handle assignment to
|
||
a reference parameter by taking the address of the RHS.
|
||
* ginclude/stdarg.h (va_start): Don't take address of first parameter.
|
||
(va_copy): Likewise.
|
||
(__va_copy): Likewise.
|
||
* ginclude/varargs.h (va_start): Likewise.
|
||
(__va_copy): Likewise.
|
||
|
||
Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* i386/djgpp.h: Remove extraneous "+".
|
||
|
||
* stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
|
||
|
||
* calls.c (expand_call): Fix typo in last change.
|
||
|
||
2000-03-29 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
|
||
been expanded.
|
||
|
||
Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stor-layout.c (bit_from_pos, byte_from_pos): New functions.
|
||
(pos_from_byte, pos_from_bit, normalize_offset): Likewise.
|
||
(normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
|
||
* tree.c (bit_position, byte_position): Likewise.
|
||
* tree.h: Declare new functions.
|
||
|
||
2000-03-29 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c: Minor formatting changes/
|
||
* config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
|
||
already defined.
|
||
(ASM_SPEC): Define if not already defined.
|
||
|
||
2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (cpp_read_file): Don't pass zero-length string to
|
||
_cpp_calc_hash.
|
||
|
||
2000-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dwarf2out.c (gen_enumeration_type_die): If enum has a negative
|
||
value, don't output it as unsigned.
|
||
|
||
Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
|
||
|
||
2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): Don't special case
|
||
cplus_mode when declaring builtin bzero/bcmp, always avoid
|
||
prototype arguments.
|
||
|
||
2000-03-29 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
|
||
to a non-file
|
||
|
||
Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
Convert ACCUMULATE_OUTGOING_ARGS to an expression.
|
||
* calls.c (PUSH_ARGS_REVERSED) Change to expression.
|
||
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
|
||
(struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
|
||
(save_fixed_argument_area, restore_fixed_argument_area):
|
||
conditionize by #ifdef REG_PARM_STACK_SPACE only.
|
||
(emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
|
||
to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
|
||
(precompute_register_parameters): Avoid #ifdefs on
|
||
ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
|
||
(stire_one_args): Likewise.
|
||
(expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
|
||
(emit_library_call_value_1): Likewise.
|
||
(compute_argument_block_size): Align to STACK_BOUNDARY only for
|
||
ACCUMULATE_OUTGOING_ARGS.
|
||
* combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
|
||
value.
|
||
(nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
|
||
(use_crosses_set_p): Likewise.
|
||
* all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
|
||
#define ACCUMULATE_OUTGOING_ARGS 1.
|
||
* i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
|
||
frames.
|
||
* i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
|
||
constants.
|
||
(TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
|
||
(TARGET_SWITCHES): Add push-args, no-push-args,
|
||
accumulate-outgoing-args and no-accumulate-outgoing-args.
|
||
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
|
||
* expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
|
||
(push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
|
||
and PUSH_ROUNDING.
|
||
(emit_push_insn): Likewise.
|
||
* final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
|
||
(final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
|
||
* function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
|
||
(STACK_DYNAMIC_OFFSET): Define correctly for both
|
||
ACCUMULATE_OUTGOING_ARGS and normal mode.
|
||
* invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
|
||
* tm.texi (PUSH_ARGS): Document.
|
||
(ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
|
||
|
||
Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* flags.h (flag_optimize_sibling_calls): Declare.
|
||
* calls.c (expand_call): Fail sibcall when
|
||
!flag_optimize_sibling_calls
|
||
* invoke.texi (flag_optimize_sibling_calls): Document.
|
||
* toplev.c (flag_optimize_sibling_calls): New global variable.
|
||
(f_options): Add flag_optimize_sibling_calls.
|
||
(rest_of_compilation): Conditionize
|
||
optimize_sibling_and_tail_recursive_calls by
|
||
flag_optimize_sibling_calls.
|
||
(main): Set flag_optimize_sibling_calls for -O2.
|
||
* stmt.c (expand_return): Conditionize tail recursion by
|
||
flag_optimize_sibling_calls.
|
||
|
||
2000-03-29 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
|
||
(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
|
||
|
||
2000-03-29 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* except.c (add_eh_table_entry): Mark type_info's as referenced.
|
||
|
||
2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
|
||
is given.
|
||
* config/rs6000/aix43.h (CPP_SPEC): Likewise.
|
||
* config/rs6000/rs6000.h (CPP_SPEC): Moved to...
|
||
* config/rs6000/aix.h: then modified likewise.
|
||
|
||
2000-03-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtl.h: Redistribute enum reg_note documentation.
|
||
Kill trailing whitespace.
|
||
* rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
|
||
Kill trailing whitespace.
|
||
|
||
2000-03-28 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (hash_IHASH): Just return i->hash.
|
||
(cpp_included): Set dummy.hash using _cpp_calc_hash. Use
|
||
htab_find_with_hash.
|
||
(cpp_read_file): Likewise.
|
||
(find_include_file): Likewise. Properly initialize
|
||
ih->nshort. Share ih->name and ih->nshort if possible.
|
||
* cpphash.c (_cpp_calc_hash): New function.
|
||
(hash_HASHNODE): Just return h->hash.
|
||
(_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use
|
||
htab_find_with_hash.
|
||
* cpphash.h: Prototype _cpp_calc_hash.
|
||
* cppinit.c (initialize_builtins): Provide a valid hash
|
||
to _cpp_make_hashnode, using _cpp_calc_hash.
|
||
|
||
* cpphash.c (collect_expansion): # is not a special character
|
||
in object-like macros. In -traditional mode, /**/ is not
|
||
token paste at the beginning or end of the line.
|
||
* cpplib.c (do_include, do_import, do_include_next): If
|
||
parse_include fails, return immediately.
|
||
|
||
2000-03-28 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* config/arm/arm.md (return peepholes): Update to reflect the new
|
||
call insn patterns.
|
||
* config/arm/arm.c (arm_volatile_func): Also check
|
||
current_function_nothrow.
|
||
(output_return_instruction, output_func_prologue): Use it.
|
||
(arm_output_epilogue, arm_expand_prologue): Likewise.
|
||
|
||
2000-03-27 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* gcc.c (handle_braces): In {x*...} case, break out of loop if
|
||
switch is found.
|
||
|
||
Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (store_constructor): SIZE now signed.
|
||
For EXPR_SIZE, don't evaluate size; just needed if constant.
|
||
* fold-const.c (fold): Fix a number of cases when folded tree is
|
||
wrong type.
|
||
* function.c (flush_addressof): Reenable.
|
||
* tree.h (flush_addressof): Likewise.
|
||
* toplev.c (independent_decode_option): Look at strings_processed.
|
||
* config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
|
||
|
||
Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* sibcall.c (identify_call_return_value): Find last call in the chain;
|
||
Allow stack adjustment after function call.
|
||
|
||
* regmove.c (struct csa_memlist): Make mem field rtx *.
|
||
(record_one_stack_ref): Accept rtx * instead of rtx as parameter.
|
||
(try_apply_stack_adjustment): Replace whole MEM rtx.
|
||
(combine_stack_adjustments_for_block): Update calls
|
||
to record_one_stack_ref.
|
||
|
||
2000-03-28 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
|
||
'\\' rather than a null character, so nulls are not special. Fix
|
||
"\\\n" handling in end-of-buffer conditions. Use trigraph map to
|
||
speed trigraph conversion.
|
||
(_cpp_init_input_buffer): Initialize trigraph map.
|
||
|
||
2000-03-27 Alan Modra <alan@linuxcare.com.au>
|
||
|
||
* config/i386/i386.c (output_387_binary_op): Correct intel
|
||
mode assembly output, and add spaces after commas in AT&T
|
||
output. Correct Unixware assembler comment. Document input
|
||
constraints. Comment fp operations. Reduce profligate buffer
|
||
size. Remove extraneous abort. Localize temp var.
|
||
(SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code.
|
||
(output_fix_trunc): Add spaces after commas in assembly output.
|
||
|
||
2000-03-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386-protos.h (ix86_match_ccmode): Declare.
|
||
* i386.c (ix86_match_ccmode): New.
|
||
(ix86_expand_fp_compare): Update for pattern renames.
|
||
(ix86_expand_strlensi_unroll_1): Likewise.
|
||
* i386.h (EXTRA_CC_MODES): Add CCZ.
|
||
(SELECT_CC_MODE): Use it for EQ/NE zero.
|
||
* i386.md (cmpsi_ccz_1): New.
|
||
(cmpqi_ccz_1): New.
|
||
(*testsi_ccz_1): New.
|
||
(testqi_ccz_1): New.
|
||
(cmpsi_ccno_1): Rename from cmpsi_0.
|
||
(testsi_ccno_1): Rename from testsi_1.
|
||
(testqi_ccno_1): Rename from testqi_1.
|
||
(*testqi_ext_ccz_0): Rename from testqi_ext_0.
|
||
(testqi_ext_ccno_0): Rename from *testqi_ext_1.
|
||
(*cmphi_0): Use ix86_match_ccmode.
|
||
(*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
|
||
(*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
|
||
(*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
|
||
(*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
|
||
(*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
|
||
(*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
|
||
(*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
|
||
(*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
|
||
(*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
|
||
(*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
|
||
(appropriate peepholes): Likewise.
|
||
(*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
|
||
(*subsi_3, *subhi_3, *subqi_3): Remove.
|
||
(*negdi2_1+1 splitter): Use CCZ for neg patterns.
|
||
(*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
|
||
(*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
|
||
(*neghi2_cmpz, *negqi2_cmpz): Similarly.
|
||
(x86_shift_adj_1): Use CCZ.
|
||
(*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
|
||
|
||
2000-03-27 Stan Cox <scox@cygnus.com>
|
||
|
||
* resource.h (mark_resource_type): New.
|
||
* resource.c (find_dead_or_set_registers, mark_target_live_regs,
|
||
find_free_register): Use mark_resource_type.
|
||
(mark_set_resources): Change include_delayed_effects
|
||
to mark_resource_type.
|
||
* reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
|
||
redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
|
||
Use mark_resource_type.
|
||
|
||
2000-03-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.md (call_pop_0, call_value_pop_0): New.
|
||
(call_pop_1): Remove constraint from unused arg. Support sibcalls.
|
||
(call_value_pop_1): Likewise.
|
||
(call_0, call_value_0): New.
|
||
(call_1, call_value_1): Remove constraint from unused arg.
|
||
|
||
2000-03-27 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* invoke.texi (Spec Files): Document new spec % command created by
|
||
Tom Tromey's recent patch.
|
||
|
||
2000-03-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
|
||
if not defined.
|
||
|
||
Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (expand_assignment): Fix typo in last change.
|
||
|
||
* libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
|
||
|
||
Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* c-convert.c (convert): Return if output or input type is ERROR_MARK.
|
||
* c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
|
||
and DECL_INLINE if FUNCTION_DECL.
|
||
(pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
|
||
(store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
|
||
Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
|
||
(combine_parm_decls): Likewise.
|
||
* ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
|
||
* print-tree.c (print_node): Likewise.
|
||
Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
|
||
DECL_TRANSPARENT_UNION on proper decl types.
|
||
Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
|
||
* stor-layout.c (layout_decl): Only check DECL_PACKED and
|
||
DECL_BIT_FIELD of FIELD_DECL.
|
||
* tree.h (DECL_RESULT_FLD): New macro.
|
||
|
||
* expr.c (expand_assignment): Add code to handle variable-sized
|
||
BLKmode case.
|
||
|
||
2000-03-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c (expand_call): Pass parms not original exp to
|
||
optimize_tail_recursion. Mind return value instead of looking
|
||
for a barrier.
|
||
* stmt.c (optimize_tail_recursion): Take parameter list, not entire
|
||
call_expr. Move checks for call_expr and current_function_decl ...
|
||
(expand_return): ... here.
|
||
|
||
2000-03-26 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* gcc.c (handle_braces): Recognize `%{<S}' construct.
|
||
(SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
|
||
defines.
|
||
(process_command): Use them.
|
||
(check_live_switch): Likewise.
|
||
(give_switch): Skip ignored switches.
|
||
|
||
2000-03-26 Jan Hubicka <jh@suse.cz>
|
||
|
||
* jump.c (jump_optimize_1): Fix typo in elide optimizations
|
||
for minimal jump pass test.
|
||
|
||
2000-03-26 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* integrate.c (function_cannot_inline_p): Do inline functions that
|
||
return `void'.
|
||
|
||
Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stor-layout.c (layout_type, set_sizetype): early_type_list is
|
||
now a list of TREE_LIST entries, not types.
|
||
* tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
|
||
|
||
* expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
|
||
* config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
|
||
int_bit_position.
|
||
* config/mips/mips.c (function_arg): Likewise; also remove cast
|
||
and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
|
||
(mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
|
||
* config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
|
||
* config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
|
||
(UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
|
||
(POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
|
||
(GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
|
||
(struct mips_arg): arg_number, arg_words, fp_arg_words, and
|
||
num_adjusts now unsigned.
|
||
(FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
|
||
* config/sparc/sparc.c (struct function_arg_record_value_parms):
|
||
NREGS now unsigned.
|
||
(function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
|
||
as is BITPOS variable; use host_integerp and int_bit_position.
|
||
(function_arg_record_value_2): Likewise.
|
||
(function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
|
||
Variable REGNO now unsigned.
|
||
(function_arg_record_value): NREGS now unsigned.
|
||
|
||
2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
|
||
|
||
Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* Rework fields used to describe positions of bitfields and
|
||
modify sizes to be unsigned and use HOST_WIDE_INT.
|
||
* alias.c (reg_known_value_size): Now unsigned.
|
||
* c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
|
||
(really_start_incremental_init): Use bitsize_zero_node.
|
||
(push_init_level, pop_init_level, output_init_element): Likewise.
|
||
Use bitsize_unit_node and bitsize_one_node.
|
||
(output_pending_init_elements, process_init_element): Likewise.
|
||
* combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
|
||
(make_extraction): Position and length HOST_WIDE_INT and unsigned
|
||
HOST_WIDE_INT, respectively.
|
||
(get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
|
||
(num_sign_bit_copies): Returns unsigned.
|
||
BITWIDTH now unsigned; rework arithmetic.
|
||
Remove recursive call from arg to MAX.
|
||
(combine_instructions, init_reg_last_arrays): NREGS now unsigned.
|
||
(setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
|
||
REGNO now unsigned.
|
||
(set_nonzero_bit_and_sign_copies): NUM now unsigned.
|
||
(find_split_point, expand_compound_operation, make_extraction): LEN
|
||
now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
|
||
(make_field_assignment): Likewise.
|
||
(combine_simplify_rtx): Add cast.
|
||
(expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
|
||
(force_to_mode): WIDTH now unsigned; add cast.
|
||
(if_then_else_cond): SIZE now unsigned.
|
||
(nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
|
||
(extended_count): Now returns unsigned.
|
||
(simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
|
||
Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
|
||
(simplify_comparison): MODE_WIDTH now unsigned.
|
||
(update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
|
||
(mark_used_regs_combine): Likewise; rework arithmetic.
|
||
(record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
|
||
(record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
|
||
(record_promoted_value): REGNO now unsigned.
|
||
(get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
|
||
(get_last_value): REGNO now unsigned.
|
||
(use_crosses_set_p): REGNO and ENDREGNO now unsigned.
|
||
(reg_dead_regno, reg_dead_endregno): Now unsigned.
|
||
(remove_death): Arg REGNO now unsigned.
|
||
(move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
|
||
(reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
|
||
now unsigned.
|
||
* convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
|
||
* cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
|
||
(struct cse_reg_info): REGNO now unsigned.
|
||
(cached_regno): Now unsigned.
|
||
(REGNO_QTY_VALID_P): Add cast.
|
||
(make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
|
||
(remove_invalid_regs): Likewise.
|
||
(remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
|
||
as are variables END and I.
|
||
(get_cse_reg_info, insert): Likewise.
|
||
(mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
|
||
(canon_hash): Likewise.
|
||
(insert_regs, lookup_for_remove): REGNO now unsigned.
|
||
(invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
|
||
New variable RN.
|
||
* dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
|
||
* dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
|
||
* emit-rtl.c (subreg_realpart_p): Add cast.
|
||
(operand_subword): Arg I is now unsigned as is var PARTWORDS.
|
||
(operand_subword_force): Arg I is now unsigned.
|
||
* except.c (eh_regs): Variable I is now unsigned.
|
||
* explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
|
||
* expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
|
||
length is unsigned HOST_WIDE_INT; likewise for internal variables.
|
||
(store_split_bit_field, extract_fixed_bit_field): Likewise.
|
||
(extract_split_bit_field, store_bit_field, extract_bit_field):
|
||
Likewise.
|
||
* expr.c (store_constructor_fields, store_constructor, store_field):
|
||
Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
|
||
(expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
|
||
(do_jump): Likewise.
|
||
(move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
|
||
MAX_SIZE is now unsigned.
|
||
(emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
|
||
(emit_group_store): Likewise.
|
||
(emit_move_insn): I now unsigned.
|
||
(store_constructor): Use host_integerp, tree_low_cst, and
|
||
bitsize_unit_node.
|
||
(get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
|
||
Rework all calculations to use trees and new fields.
|
||
* expr.h (promoted_input_arg): Regno now unsigned.
|
||
(store_bit_field, extract_bit_field): Adjust types of pos and size.
|
||
(mark_seen_cases): Arg is HOST_WIDE_INT.
|
||
* flow.c (verify_wide_reg_1): REGNO now unsigned.
|
||
* fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
|
||
precisions and alignments are unsigned.
|
||
(optimize_bit_field_compare, fold_truthop): Likewise.
|
||
(int_const_binop): Adjust threshold for size_int_type_wide call.
|
||
(fold_convert): Likewise.
|
||
(size_int_type_wide): Make table larger and fix thinko that only
|
||
had half of table used.
|
||
(all_ones_mask_p, fold): Precisions are unsigned.
|
||
* function.c (put_reg_info_stack): REGNO is unsigned.
|
||
(instantiate_decl): Size is HOST_WIDE_INT.
|
||
(instantiate_virtual_regs): I is unsigned.
|
||
(assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
|
||
(promoted_input_arg): REGNO is unsigned.
|
||
* function.h (struct function): x_max_parm_reg is now unsigned.
|
||
* gcse.c (max_gcse_regno): Now unsigned.
|
||
(struct null_pointer_info): min_reg and max_reg now unsigned.
|
||
(lookup_set, next_set): REGNO arg now unsigned.
|
||
(compute_hash_table): REGNO and I now unsigned.
|
||
(handle_avail_expr): regnum_for_replacing now unsigned.
|
||
(cprop_insn): REGNO now unsigned.
|
||
(delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
|
||
* ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
|
||
* global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
|
||
* hard-reg-set.h (reg_class_size): Now unsigned.
|
||
* integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
|
||
* jump.c (mark_modified_reg): I now unsigned; add cast.
|
||
(rtx_equal_for_thread_p): Add cast.
|
||
* loop.c (max_reg_before_loop): Now unsigned.
|
||
(struct_movable): REGNO now unsigned.
|
||
(try_copy_prop): REGNO arg unsigned.
|
||
(regs_match_p): XN and YN now unsigned.
|
||
(consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
|
||
(strength_reduce): Likewise; NREGS also unsigned.
|
||
(first_increment_giv, last_increment_giv unsigned): Now unsigned.
|
||
* loop.h (struct iv_class): REGNO now unsigned.
|
||
(max_reg_before_loop, first_increment_giv, last_increment_giv):
|
||
Now unsigned.
|
||
* machmode.h (mode_size, mode_unit_size): Now unsigned.
|
||
(mode_for_size, smallest_mode_for_size): Pass size as unsigned.
|
||
* optabs.c (expand_binop): I and NWORDS now unsigned.
|
||
(expand_unop): I now unsigned.
|
||
* print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
|
||
print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
|
||
* real.c (significand_size): Now returns unsigned.
|
||
* real.h (significand_size): Likewise.
|
||
* regclass.c (reg_class_size): Now unsigned.
|
||
(choose_hard_reg_mode): Both operands now unsigned.
|
||
(record_reg_classes): REGNO and NR now unsigned.
|
||
(reg_scan): NREGS now unsigned.
|
||
(reg_scan_update): old_max_regno now unsigned.
|
||
(reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
|
||
* reload.c (find_valid_class): BEST_SIZE now unsigned.
|
||
(find_dummy_reload): REGNO, NWORDS, and I now unsigned.
|
||
(hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
|
||
Likewise for variable R.
|
||
(refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
|
||
as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
|
||
(find_equiv_reg): Add casts.
|
||
(regno_clobbered_p): Arg REGNO now unsigned.
|
||
* reload.h (struct reload): NREGS now unsigned.
|
||
(refers_to_regno_for_reload_p): Regno args are unsigned.
|
||
(regno_clobbered_p): Likewise.
|
||
* reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
|
||
(compute_use_by_pseudos): REGNO now unsigned.
|
||
(find_reg): I and J now unsigned, new variable K, and change loop
|
||
variables accordingly; THIS_NREGS now unsigned.
|
||
(alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
|
||
(spill_hard_reg): REGNO arg now unsigned; add casts.
|
||
(forget_old_reloads_1): REGNO, NR, and I now unsigned.
|
||
(mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
|
||
(clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
|
||
END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
|
||
(reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
|
||
(choose_reload_regs): MAX_GROUP_SIZE now unsigned.
|
||
(emit_reload_insns): REGNO now unsigned.
|
||
(reload_cse_move2add): Add cast.
|
||
(move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
|
||
and rework loop.
|
||
* resource.c (mark_referenced_resources, mark_set_resources): New
|
||
variable R; REGNO and LAST_REGNO now unsigned.
|
||
(mark_target_live_regs): J and REGNO now unsigned.
|
||
* rtl.c (mode_size, mode_unit_size): Now unsigned.
|
||
* rtl.h (union rtunion_def): New field rtuint.
|
||
(XCUINT): New macro.
|
||
(ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
|
||
(operand_subword, operand_subword_force): Word number is unsigned.
|
||
(choose_hard_reg_mode): Operands are unsigned.
|
||
(refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
|
||
(find_regno_note, find_regno_fusage, replace_regs): Likewise.
|
||
(regno_use_in, combine_instructions, remove_death): Likewise.
|
||
(reg_scan, reg_scan_update): Likewise.
|
||
(extended_count): Return is unsigned.
|
||
* rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
|
||
INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
|
||
(reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
|
||
(reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
|
||
(reg_reg_last_1): FIRS and LAST now unsigned.
|
||
(dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
|
||
(dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
|
||
now unsigned.
|
||
(find_regno_note, regno_use_in): Arg REGNO now unsigned.
|
||
(find_regno_fusage): Likewise; also var REGNOTE now unsigned.
|
||
(find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
|
||
(replace_regs): Arg NREGS now unsigned.
|
||
* sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
|
||
* simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
|
||
(simplify_binary_operation): Likewise.
|
||
(cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
|
||
THIS_LAST now unsigned.
|
||
(cselib_record_set): Add cast.
|
||
* ssa.c (ssa_max_reg_num): Now unsigned.
|
||
(rename_block): REGNO now unsigned.
|
||
* stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
|
||
sizes now unsigned.
|
||
(all_cases_count): Just return -1 not -2.
|
||
COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
|
||
Rework tests to use trees whenever possible.
|
||
Use host_integerp and tree_low_cst.
|
||
(mark_seen_cases): COUNT arg now HOST_WIDE_INT;
|
||
Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
|
||
(check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
|
||
* stor-layout.c (mode_for_size): SIZE arg now unsigned.
|
||
(smallest_mode_for_size): Likewise.
|
||
(layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
|
||
KNOWN_ALIGN is now an alignment, so simplify code.
|
||
Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
|
||
(start_record_layout): Renamed from new_record_layout_info.
|
||
Update to new fields.
|
||
(debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
|
||
New functions.
|
||
(place_union_field): Renamed from layout_union_field.
|
||
Update to use new fields in rli.
|
||
(place_field): Renamed from layout_field.
|
||
Major rewrite to use new fields in rli; pass alignment to layout_decl.
|
||
(finalize_record_size): Rework to use new fields in rli and handle
|
||
union.
|
||
(compute_record_mode): Rework to simplify and to use new DECL fields.
|
||
(finalize_type_size): Make rounding more consistent.
|
||
(finish_union_layout): Deleted.
|
||
(layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
|
||
(layout_type, case RECORD_TYPE): Call new function names.
|
||
(initialize_sizetypes): Set TYPE_IS_SIZETYPE.
|
||
(set_sizetype): Set TYPE_IS_SIZETYPE earlier.
|
||
(get_best_mode): UNIT is now unsigned; remove casts.
|
||
* tree.c (bit_position): Compute from new fields.
|
||
(byte_position, int_byte_position): New functions.
|
||
(print_type_hash_statistics): Cast to remove warning.
|
||
(build_range_type): Use host_integerp and tree_low_cst to try to hash.
|
||
(build_index_type): Likewise; make subtype of sizetype.
|
||
(build_index_2_type): Pass sizetype to build_range_type.
|
||
(build_common_tree_nodes): Use size_int and bitsize_int to
|
||
initialize nodes; add bitsize_{zero,one,unit}_node.
|
||
* tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
|
||
(DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
|
||
(DECL_PACKED, DECL_BIT_FIELD): Likewise.
|
||
(DECL_FIELD_BITPOS): Deleted.
|
||
(DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
|
||
(DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
|
||
(DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
|
||
(DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
|
||
(DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
|
||
(DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
|
||
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
|
||
(DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
|
||
(DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
|
||
(DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
|
||
(DECL_ALIGN): Adjust to new field in union.
|
||
(DECL_OFFSET_ALIGN): New field.
|
||
(DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
|
||
(DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
|
||
(union tree_decl): Add struct for both aligns.
|
||
(enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
|
||
(bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
|
||
(struct record_layout_info): Rework fields to have offset
|
||
alignment and byte and bit position.
|
||
(start_record_layout, place_field): Renamed from old names.
|
||
(rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
|
||
(byte_position, int_byte_position): Likewise.
|
||
(get_inner_reference): Change types of position and length.
|
||
* unroll.c (unroll_loop): New variable R; use for some loops.
|
||
MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
|
||
(calculate_giv_inc): Arg REGNO now unsigned.
|
||
(copy_loop_body): REGNO and SRC_REGNO now unsigned.
|
||
* varasm.c (assemble_variable): Clean up handling of size using
|
||
host_integerp and tree_low_cst.
|
||
(decode_addr_const): Use byte, not bit, position.
|
||
(output_constructor): bitpos and offsets are HOST_WIDE_INT;
|
||
use tree_low_cst and int_bit_position.
|
||
* objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
|
||
|
||
Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
|
||
(reorder_block_def): New members eff_head and eff_end.
|
||
(REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
|
||
(verify_insn_chain): New function.
|
||
(skip_insns_between_block): Add code to skip deleted insns.
|
||
Check for note before using.
|
||
(chain_reorder_blocks): Replace calls to skip_insns_between_block
|
||
with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
|
||
Check for note before using.
|
||
(make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
|
||
(fixup_reorder_chain): Restructure, clean up, defect removal.
|
||
(reorder_basic_blocks): Remove last_insn and references to it.
|
||
Moved insn chain verification code into a new function (see above).
|
||
Delete defective code that sets last insn.
|
||
Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
|
||
all blocks.
|
||
|
||
2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
|
||
|
||
2000-03-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* tree.c (lang_safe_for_unsave): Remove.
|
||
(unsafe_for_reeval): Transmute and rename from safe_for_unsave,
|
||
allowing for two levels of unsafeness. Remove lang hook.
|
||
* tree.h: Update declarations.
|
||
* calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
|
||
Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
|
||
Always fail sibcalls when there are pending cleanups.
|
||
|
||
2000-03-24 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* flow.c (propagate_block): When we delete an ADDR_VEC,
|
||
also delete the BARRIER following it if there is one.
|
||
|
||
2000-03-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_bzero): Convert `length' argument
|
||
to sizetype.
|
||
|
||
2000-03-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
|
||
comparison if regno's are equal.
|
||
* calls.c (initialize_argument_informat): Add ecf_flags argument.
|
||
Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
|
||
(expand_call): Update caller.
|
||
Avoid making a sibling call if argument size of the callee is larger
|
||
than argument size of the caller.
|
||
Call hard_function_value with outgoing set if in sibcall pass.
|
||
Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
|
||
|
||
* final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
|
||
Change LEAF_REGISTERS from an array initializer to actual array
|
||
identifier. Move static global variable into the function.
|
||
(leaf_function_p): Allow SIBLING_CALL_P calls even outside of
|
||
sequences for leaf functions.
|
||
* global.c (global_alloc): Likewise.
|
||
* tm.texi (LEAF_REGISTERS): Update documentation.
|
||
|
||
* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
|
||
TARGET_FLAT leaf disabling hack.
|
||
(LEAF_REGISTERS): Changed from an array initializer to actual array
|
||
identifier to avoid duplication and remove the above hack.
|
||
(FUNCTION_OK_FOR_SIBCALL): Define.
|
||
* config/sparc/sparc.md (sibcall): New attr type. Use it almost
|
||
always like call attribute.
|
||
(eligible_for_sibcall_delay): New attribute.
|
||
(sibcall): New delay type.
|
||
(sibcall, sibcall_value, sibcall_epilogue): New expands.
|
||
(sibcall_symbolic_sp32, sibcall_symbolic_sp64,
|
||
sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
|
||
* config/sparc/sparc.c (sparc_leaf_regs): New array.
|
||
(eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
|
||
New functions.
|
||
(output_function_epilogue): Move part of the code into
|
||
output_restore_regs.
|
||
(ultra_code_from_mask, ultrasparc_sched_reorder): Handle
|
||
TYPE_SIBCALL.
|
||
* sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
|
||
prototypes.
|
||
|
||
* config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
|
||
until infrastructure is finished.
|
||
|
||
Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
|
||
(save_parm_insns): Not here.
|
||
|
||
2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.c (expand_builtin_bzero): New function.
|
||
(expand_builtin): Handle bzero.
|
||
|
||
* builtins.def: Add BUILT_IN_BZERO.
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): Provide builtin
|
||
prototype & function for bzero.
|
||
|
||
2000-03-23 Michael Meissner <meissner@redhat.com>
|
||
|
||
* config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
|
||
change adding TARGET_FP to the TF floating point insns, except for
|
||
trunctfsf2, which generates direct calls to truncdfsf2.
|
||
|
||
2000-03-23 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
|
||
try to protect against middle-end changes that break binary
|
||
compatibility.
|
||
(DWARF_FRAME_REGISTERS): New definition, likewise for backend.
|
||
|
||
2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (load_immed_address): Add DP reg clobber.
|
||
|
||
Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* calls.c (expand_call): If TARGET is passed by reference and
|
||
is readonly, write a CLOBBER.
|
||
|
||
2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.c (expand_builtin): Handle bcmp.
|
||
|
||
* builtins.def: Add BUILT_IN_BCMP.
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): Provide builtin
|
||
prototype & function for bcmp.
|
||
|
||
Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
|
||
(rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
|
||
* config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
|
||
|
||
Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
|
||
alternative when using -fp64 -gp32.
|
||
|
||
2000-03-22 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
|
||
* config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
|
||
* config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
|
||
|
||
* frame.h (frame_state): Revert last change.
|
||
* frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
|
||
* libgcc2.c (throw_helper): Revert last change.
|
||
|
||
2000-03-22 Richard Henderson <rth@cygnus.com>
|
||
|
||
* stmt.c (expand_asm_operands): Don't promote the temporary.
|
||
|
||
2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
|
||
|
||
* builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
|
||
* c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
|
||
c_get_alias_set): Likewise.
|
||
* c-decl.c (duplicate_decls): Likewise.
|
||
* c-typeck.c (default_conversion,build_unary_op): Likewise.
|
||
* calls.c (initialize_argument_information): Likewise.
|
||
* dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
|
||
Likewise.
|
||
* dwarfout.c (decl_class_context,output_type): Likewise.
|
||
* expr.c (get_inner_reference): Likewise.
|
||
* fold-const.c (simple_operand_p,fold): Likewise.
|
||
* function.c (aggregate_value_p): Likewise.
|
||
* stmt.c (expand_asm_operands): Likewise.
|
||
* varasm.c (named_section): Likewise.
|
||
|
||
2000-03-22 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
Implement dwarf2 exception handling for the ARM.
|
||
* config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
|
||
(DWARF_FRAME_RETURN_COLUMN): Define.
|
||
* config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach
|
||
REG_FRAME_RELATED_EXPR note.
|
||
(emit_sfm): Likewise.
|
||
(arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
|
||
* dwarf2out.c (reg_save): Handle saving a register to itself.
|
||
(dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
|
||
* except.c (eh_regs): Don't use the static chain reg if it's
|
||
callee-saved.
|
||
* frame.h (frame_state): Add cfa_saved field.
|
||
* frame.c (execute_cfa_insn): Set it.
|
||
* libgcc2.c (throw_helper): Don't adjust sp if it's restored in
|
||
the epilogue.
|
||
* function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
|
||
Now takes a parm.
|
||
(instantiate_virtual_regs): Adjust.
|
||
* tm.texi: Adjust.
|
||
* config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
|
||
* config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
|
||
* config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
|
||
|
||
* dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
|
||
(initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
|
||
|
||
2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.def: New file.
|
||
|
||
* Makefile.in (TREE_H): Depend on builtins.def.
|
||
|
||
* builtins.c (built_in_names): Use builtins.def.
|
||
|
||
* tree.h (built_in_function): Likewise.
|
||
|
||
2000-03-22 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.c (size_in_bytes): Return size_zero_node, not
|
||
integer_zero_node.
|
||
|
||
2000-03-22 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/fp-bit.c (pack_d): Correct the case when a denormal
|
||
is rounded up and stops being denormal.
|
||
|
||
2000-03-21 Richard Henderson <rth@cygnus.com>
|
||
|
||
* config/alpha/alpha.c (function_arg): Check for void_type_node
|
||
before using MUST_PASS_IN_STACK.
|
||
|
||
2000-03-21 Stephane Carrez <stcarrez@worldnet.fr>
|
||
|
||
* regmove.c (combine_stack_adjustments_for_block): Check that
|
||
the stack pointer is a valid memory address.
|
||
|
||
Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c: re-install Mar 16 emit_library_call merge.
|
||
|
||
2000-03-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (mem_min_alignment): If not optimizing,
|
||
we cannot be sure that if reload_completed base register will
|
||
be properly aligned.
|
||
|
||
2000-03-21 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (delete_block): Fix typo last change.
|
||
|
||
2000-03-21 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
|
||
not COMPLETE_TYPE_P, to check the type of the expression.
|
||
|
||
2000-03-21 Michael Meissner <meissner@redhat.com>
|
||
|
||
* config/alpha/alpha.md (floating point insns): Add TARGET_FP to
|
||
all floating point insns that just tested the macro
|
||
TARGET_HAS_XFLOATING_LIBS.
|
||
(movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
|
||
used to only use the gprs.
|
||
|
||
2000-03-21 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h (COMPLETE_TYPE_P): New macro.
|
||
(COMPLETE_OR_VOID_TYPE_P): New macro.
|
||
(COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
|
||
* stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
|
||
* c-aux-info.c (gen_type): Use them.
|
||
* c-common.c (c_expand_expr_stmt): Likewise.
|
||
* c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
|
||
grokdeclarator, grokparms, finish_struct, start_function,
|
||
store_parm_decls, combine_parm_decls): Likewise.
|
||
* c-parse.y (cast_expr): Likewise.
|
||
* c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
|
||
c_size_in_bytes, c_alignof, build_component_ref,
|
||
build_indirect_ref, build_array_ref, convert_arguments,
|
||
build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
|
||
* calls.c (initialize_argument_information): Likewise.
|
||
* convert.c (convert_to_integer): Likewise.
|
||
* dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
|
||
* dwarfout.c (location_or_const_value_attribute,
|
||
output_enumeration_type_die, output_structure_type_die,
|
||
output_union_type_die, output_type): Likewise.
|
||
* expr.c (safe_from_p, expand_expr): Likewise.
|
||
* function.c (assign_parms): Likewise.
|
||
* sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
|
||
* tree.c (build_array_type, build_function_type,
|
||
build_method_type, build_offset_type, build_complex_type): Likewise.
|
||
* c-parse.c, c-parse.h: Regenerated.
|
||
|
||
2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/rtems.h: Include config/rtems.h.
|
||
|
||
Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
|
||
decl is a FUNCTION_DECL
|
||
|
||
Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
|
||
function uses output registers. Don't save RP for leaf functions.
|
||
Do save RP even if no epilogue.
|
||
* config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
|
||
(CALL_USED_REGISTERS): Unmark in registers.
|
||
(REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up,
|
||
to near the middle.
|
||
|
||
2000-03-20 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md (bunordered): New expander.
|
||
(bordered): New expander.
|
||
(buneq): New expander.
|
||
(bunge): New expander.
|
||
(bungt): New expander.
|
||
(bunle): New expander.
|
||
(bunlt): New expander.
|
||
(bltgt): New expander.
|
||
|
||
* config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
|
||
(ccr_bit_negated_p): New function.
|
||
(print_operand): For %C, generate appropriate cror for UNEQ,
|
||
UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p.
|
||
|
||
2000-03-20 Andreas Jaeger <aj@suse.de>
|
||
|
||
* sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
|
||
warning.
|
||
|
||
* tree.h (safe_for_unsave): Prototype.
|
||
|
||
2000-03-20 Richard Henderson <rth@cygnus.com>
|
||
|
||
* regmove.c (stack_memref_p): Fix typo, reorg for readability.
|
||
(combine_stack_adjustments_for_block): Don't allow sp references
|
||
in the side of a set we're not fixing up.
|
||
* toplev.c (rest_of_compilation): Run combine_stack_adjustments
|
||
after life_analysis.
|
||
|
||
2000-03-20 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c (expand_call): Don't bother generating tail call
|
||
sequences if there are pending cleanups. Use
|
||
expand_start_target_temps/expand_end_target_temps to elide
|
||
cleanups created during sibcall expansion.
|
||
|
||
2000-03-20 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* configure.in: Set $IFS to a value if it doesn't already have one
|
||
in the --enable-checking handling.
|
||
* configure: Regenerate.
|
||
|
||
2000-03-20 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* c-parse.in (SAVE_WARN_FLAGS): Use size_int.
|
||
* c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
|
||
Regenerated.
|
||
|
||
Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* jump.c (delete_noop_moves): Remove code attempting to
|
||
combine stack adjustments.
|
||
|
||
2000-03-19 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
|
||
* except.c (emit_cleanup_handler): Use them.
|
||
(expand_end_all_catch): Likewise.
|
||
* function.c (fixup_var_refs): Likewise.
|
||
(expand_function_end): Clear catch_clauses_last.
|
||
* rtl.h (push_to_full_sequence, end_full_sequence): Declare.
|
||
* except.h (struct eh_status): New field x_catch_clauses_last.
|
||
(catch_clauses_last): New define.
|
||
|
||
* Makefile.in (tree.o): Depend on HASHTAB_H.
|
||
* tree.c: Include hashtab.h.
|
||
(struct type_hash): Remove next field.
|
||
(TYPE_HASH_SIZE): Remove.
|
||
(TYPE_HASH_INITIAL_SIZE): New define.
|
||
(type_hash_table): Change type to htab_t.
|
||
(type_hash_eq, type_hash_hash, print_type_hash_statistics,
|
||
mark_hash_entry): New functions.
|
||
(init_obstacks): Allocate type hash.
|
||
(type_hash_lookup): Use htab functions.
|
||
(type_hash_add, mark_type_hash): Likewise.
|
||
(dump_tree_statistics): Call print_type_hash_statistics.
|
||
|
||
2000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* rs6000/t-aix41: New file.
|
||
|
||
* configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
|
||
|
||
Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* tm.texi (Driver): Fix typos and tweak entry for
|
||
INCLUDE_DEFAULTS.
|
||
Move misplaced STRUCT_FORCE_BLK entry ...
|
||
(Storage Layout): ... to here.
|
||
(Run-time Target): Recommend having TARGET_MASK_... helper macros.
|
||
|
||
2000-03-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (delete_block): Delete the addr_vec along with the block.
|
||
(flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
|
||
reference labels.
|
||
|
||
* fold-const.c (extract_muldiv): Apply type check for defined
|
||
overflow to multiply as well as divide.
|
||
|
||
* stor-layout.c (layout_decl): Don't abort on any zero sized decl.
|
||
|
||
2000-03-18 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* emit-rtl.c (remove_unnecessary_notes): Check that all
|
||
NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
|
||
associated NOTE_BLOCK.
|
||
* function.h (identify_blocks): Update comments.
|
||
(reorder_blocks): Declare.
|
||
* function.c (identify_blocks): Don't take paramters.
|
||
(reorder_blocks): Don't take parameters.
|
||
* loop.h (find_loop_tree_blocks): Remove.
|
||
(unroll_block_trees): Likewise.
|
||
* loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use
|
||
reorder_blocks instead of unroll_block_trees.h
|
||
* sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
|
||
* stmt.c (find_loop_tree_blocks): Remove.
|
||
(unroll_block_trees): Likewise.
|
||
* toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
|
||
in whole-function mode.
|
||
* tree.h (reorder_blocks): Remove declaration.
|
||
|
||
* expr.c: Include intl.h.
|
||
* Makefile.in (expr.o): Depend on intl.h.
|
||
|
||
2000-03-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* expr.c (emit_move_insn_1): Clarify cannot_inline message.
|
||
|
||
2000-03-18 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (tree_index): Remove enumerals for integer types.
|
||
(integer_type_kind): New type.
|
||
(integer_types): New variable.
|
||
(char_type_node): Adjust.
|
||
(signed_char_type_node): Likewise.
|
||
(unsigned_char_type_node): Likewise.
|
||
(short_integer_type_node): Likewise.
|
||
(short_unsigned_type_node): Likewise.
|
||
(integer_type_node): Likewise.
|
||
(unsigned_type_node): Likewise.
|
||
(long_integer_type_node): Likewise.
|
||
(long_unsigned_type_node): Likewise.
|
||
(long_long_integer_type_node): Likewise.
|
||
(long_long_unsigned_type_node): Likewise.
|
||
* tree.c (integer_types): New variable.
|
||
(init_obstacks): Register it as a root.
|
||
|
||
Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
|
||
NEXT_INSN. Update last insn in chain.
|
||
|
||
2000-03-17 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (dwarf2out_decl): Don't emit anything for types
|
||
with TYPE_DECL_SUPPRESS_DEBUG set.
|
||
|
||
2000-03-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
|
||
|
||
2000-03-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (call_insn_operand): Always allow SYMBOL_REF,
|
||
care for HALF_PIC_P.
|
||
(expander_call_insn_operand): Remove.
|
||
(ix86_expand_epilogue): New arg `emit_return' to control return insn.
|
||
* i386.h (PREDICATE_CODES): Update.
|
||
* i386.md (all call expanders): Remove predicates, remove special
|
||
handling for half-pic.
|
||
(*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
|
||
(*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
|
||
(sibcall_epilogue): New.
|
||
|
||
2000-03-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtlanal.c (single_set): Reject if the parallel has anything
|
||
except SET or USE or CLOBBER.
|
||
|
||
2000-03-17 Jeff Law <law@cygnus.com>
|
||
Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (OBJS): Add sibcall.o.
|
||
(sibcall.o): New.
|
||
* sibcall.c: New file.
|
||
* calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
|
||
(ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
|
||
(emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
|
||
Emit sibcall patterns when requested. Update all callers.
|
||
(expand_call): Generate CALL_PLACEHOLDER insns when tail call
|
||
elimination seems feasable.
|
||
* final.c (leaf_function_p): Sibling calls don't discount being
|
||
a leaf function.
|
||
* flow.c (HAVE_sibcall_epilogue): Provide default.
|
||
(find_basic_blocks_1): Sibling calls don't throw.
|
||
(make_edges): Make edge from sibling call to EXIT.
|
||
(propagate_block): Don't remove sibcall_epilogue insns.
|
||
* function.c (prologue, epilogue): Turn into varrays. Update all uses.
|
||
(sibcall_epilogue): New.
|
||
(fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
|
||
(identify_blocks_1): Likewise. Break out from ...
|
||
(identify_blocks): ... here.
|
||
(reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ...
|
||
(reorder_blocks): ... here.
|
||
(init_function_for_compilation): Zap prologue/epilogue as varrays.
|
||
(record_insns): Extend a varray instead of mallocing new memory.
|
||
(contains): Read a varray not array of ints.
|
||
(sibcall_epilogue_contains): New.
|
||
(thread_prologue_and_epilogue_insns): Emit and record
|
||
sibcall_epilogue patterns.
|
||
(init_function_once): Allocate prologue/epilogue varrays.
|
||
* genflags.c (gen_insn): Treat sibcall patterns as calls.
|
||
* integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
|
||
Broken out from ...
|
||
(save_for_inline_nocopy): ... here.
|
||
(copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
|
||
Broken out from ...
|
||
(expand_inline_function): ... here.
|
||
(copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
|
||
(subst_constants): Handle 'n' formats.
|
||
* jump.c (jump_optimize_minimal): New.
|
||
(jump_optimize_1): New arg `minimal'; update callers. Elide most
|
||
optimizations if it's set.
|
||
* rtl.c (copy_rtx): Do copy jump & call for insns.
|
||
* rtl.h (struct rtx_def): Document use of jump and call for insns.
|
||
(SIBLING_CALL_P): New.
|
||
(sibcall_use_t): New.
|
||
* toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
|
||
Invoke optimize_sibling_and_tail_recursive_calls.
|
||
* tree.c (lang_safe_for_unsave): New.
|
||
(safe_for_unsave): New.
|
||
* tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
|
||
|
||
* alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
|
||
* alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
|
||
(*sibcall_osf_1, *sibcall_value_osf_1): New.
|
||
|
||
2000-03-17 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* objc/objc-act.c (encode_method_prototype): Pass types, not
|
||
PARM_DECLs, to int_size_in_bytes.
|
||
|
||
Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
|
||
|
||
* config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
|
||
config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
|
||
|
||
Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* Clean up usages of TREE_INT_CST_LOW.
|
||
* c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
|
||
* c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
|
||
Regenerated.
|
||
* c-tree.h (min_precision): Move declaration to here.
|
||
* c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
|
||
(build_unary_op, add_pending_init): Use bit_position.
|
||
(pending_init_member, process_init_element): Likewise.
|
||
(really_start_incremental_init, push_init_level, pop_init_level):
|
||
Don't make copies of nodes or modify them in place, use consistent
|
||
types when tracking positions, and use tree routines computations.
|
||
(set_init_index, output_init_element): Likewise.
|
||
(output_pending_init_elements, process_init_element): Likewise.
|
||
* dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
|
||
tree_low_cst and int_bit_position; also minor cleanup.
|
||
(dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
|
||
(print_cst_octal): Precision is unsigned.
|
||
(dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
|
||
* dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
|
||
(simple_type_align_in_bits): Result is unsigned int.
|
||
Use tree_int_low_cst and host_integerp.
|
||
(simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
|
||
(field_byte_offset): Result is HOST_WIDE_INT.
|
||
Change types of internal variables so alignments are unsigned int,
|
||
offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
|
||
Use host_integerp, tree_low_cst, and int_bit_position.
|
||
(add_bit_offset_attribute): Likewise.
|
||
(add_data_member_location_attribute): Use tree_cst_low.
|
||
(add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
|
||
(add_bit_size_attribute): Use tree_low_cst.
|
||
(add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
|
||
* dwarfout.c: Similar changes to dwarf2out.c.
|
||
* expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
|
||
* genoutput.c (n_occurrences): Return -1 for null string.
|
||
(strip_whitespace): Accept null string and make into function.
|
||
(scan_operands): Reflect above changes.
|
||
* sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
|
||
(sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
|
||
* ssa.c (rename_registers): Add missing cast of arg to bzero.
|
||
* tree.c (int_size_in_bytes): Check for too big to represent.
|
||
(bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
|
||
* tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
|
||
New declarations.
|
||
(min_precision): Delete from here.
|
||
* varasm.c (decode_addr_const): Use host_integerp, bit_position,
|
||
and int_bit_position.
|
||
* objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
|
||
(encode_method_def): Likewise.
|
||
(build_ivar_list_initializer): Use int_bit_position.
|
||
(generate_shared_structures): Convert size.
|
||
(encode_type, encode_complete_bitfield): Use integer_zerop.
|
||
(encode_bitfield): Use tree_low_cst and int_bit_position.
|
||
|
||
2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (CPP_SPEC): Fix typo.
|
||
|
||
2000-03-17 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* call.c (special_function_p): It is only malloc if it returns
|
||
Pmode.
|
||
|
||
2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
|
||
(C33_FLAG, TARGET_C3X): Add macros.
|
||
(TARGET_SWITCHES): Add -m33 option.
|
||
* config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
|
||
|
||
2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
|
||
(PARALLEL_PACK_FLAG): Delete.
|
||
(TARGET_SWITCHES): Update.
|
||
(TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
|
||
|
||
Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* fold-const.c (fold): Fix a few cases when the returned result
|
||
is not of the same type as the input.
|
||
|
||
2000-03-16 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
|
||
warning.
|
||
|
||
2000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* libgcc2.h: Move prototypes above macros with the same name.
|
||
Wrap some function prototypes in the conditional which indicates
|
||
whether they are supported, i.e. "BITS_PER_UNIT == 8".
|
||
|
||
2000-03-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* calls.c: Revert last two changes.
|
||
|
||
2000-03-16 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
|
||
has exponent 0 is a zero.
|
||
|
||
* simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
|
||
HASH may already be nonzero. Add code/mode into hash value
|
||
immediately after repeat label.
|
||
(cselib_lookup): Don't leave the hash table in an inconsistent
|
||
state before a hash lookup operation.
|
||
|
||
Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (all HI and QI mode non-move patterns): Conditionize
|
||
by TARGET_[HQ]IMODE_MATH.
|
||
* i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
|
||
x86_promote_qi_regs): Declare.
|
||
(TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
|
||
TARGET_PROMOTE_QI_REGS): New macros.
|
||
(PROMOTE_MODE): New macro.
|
||
* i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
|
||
x86_promote_qi_regs): New global variables.
|
||
|
||
Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (emit_library_call_value_1): Break out from ...; handle
|
||
VOIDmode function calls too.
|
||
(emit_library_call_value): ... here.
|
||
(emit_library_call): Implement by calling emit_library_call_value_1.
|
||
|
||
Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (expand_call): Do sanity checking on arg_space_so_far.
|
||
Update arg_space_so_far on stack adjustments.
|
||
(emit_library_call, emit_library_call_value): Likewise; take into
|
||
account arg_space_so_far and pending_stack_adjust when calculcating
|
||
the boundary.
|
||
|
||
Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* flow.c: Move all basic block reordering code into its own file.
|
||
(create_basic_block): Externalize.
|
||
* bb-reorder.c: New file. Copy all basic block reordering code from
|
||
flow.c to this file.
|
||
(reorder_basic_blocks): Fix fencepost error in for-loop.
|
||
(reorder_basic_blocks): Remove braces from single statement for-loops.
|
||
* basic-block.h: Add declaration for create_basic_block.
|
||
* Makefile.in: Add rules for bb-reorder.o.
|
||
|
||
2000-03-16 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppinit.c (handle_option): Implement #unassert directive
|
||
as -A- command line option.
|
||
(print_help): Update.
|
||
* cpptexi.c: Update.
|
||
|
||
Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* md.texi (Standard Names): Document `jump'.
|
||
|
||
2000-03-15 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* calls.c (emit_call_1): Nothrow functions can still have nonlocal
|
||
gotos.
|
||
|
||
2000-03-15 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
Merge changes from newppc-branch onto trunk.
|
||
|
||
2000-03-15 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (toc_hash_table): Update for new hash table functions.
|
||
(toc_hash_function): Likewise.
|
||
(toc_hash_eq): Likewise.
|
||
(toc_hash_mark_entry): Likewise.
|
||
(toc_hash_mark_table): Likewise.
|
||
(output_toc): Likewise.
|
||
(rs6000_add_gc_roots): Likewise.
|
||
|
||
2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'...
|
||
(AR_FLAGS_FOR_TARGET): here. New macro.
|
||
|
||
2000-03-05 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
|
||
fpmem_operand) Delete.
|
||
(xer_operand) New.
|
||
(rs6000_reg_names, alt_reg_names): Change fpmem to xer.
|
||
(machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
|
||
(rs6000_save_machine_status, rs6000_restore_machine_status,
|
||
rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
|
||
references to above variables.
|
||
(gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
|
||
* config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
|
||
DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
|
||
(FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
|
||
(XER_REGNO_P, XER_REGNO): New.
|
||
(rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
|
||
(PREDICATE_CODES): Change fpmem_operand to xer_operand.
|
||
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
|
||
XER_REGNO_P.
|
||
(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
|
||
REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS.
|
||
(CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
|
||
|
||
2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
|
||
TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
|
||
* rs6000.h: from here.
|
||
|
||
* rs6000-protos.h (rs6000_select_section): Provide prototype.
|
||
(rs6000_select_rtx_section): Likewise.
|
||
(rs6000_encode_section_info): Likewise.
|
||
(sdata_section): Likewise.
|
||
(sdata2_section): Likewise.
|
||
(sbss_section): Likewise.
|
||
* sysv4.h (rs6000_select_section): Delete prototype.
|
||
(rs6000_select_rtx_section): Likewise.
|
||
(rs6000_encode_section_info): Likewise.
|
||
(sdata_section): Likewise.
|
||
(sdata2_section): Likewise.
|
||
(sbss_section): Likewise.
|
||
(REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
|
||
|
||
* sysv4.h: Delete various unnecessary #undef's and put a comment
|
||
on the remaining ones.
|
||
Change various comments according to coding standard.
|
||
|
||
2000-02-29 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
|
||
CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
|
||
(CR0_REGNO_P) Remove.
|
||
* config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
|
||
setup_incoming_varargs, mtcrf_operation, print_operand,
|
||
rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
|
||
Use the above macros.
|
||
|
||
2000-02-24 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md: Added a new alternative for each
|
||
pattern that had a 'x' alternative but no 'y' alternative.
|
||
Added a new split for each of the above patterns.
|
||
|
||
2000-02-18 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* aix41.h (ASM_CPU_SPEC): Delete.
|
||
(CPP_CPU_SPEC): Delete.
|
||
|
||
* aix.h (RS6000_OUTPUT_BASENAME): Define.
|
||
(ASM_OUTPUT_LABEL): Define.
|
||
(ASM_GLOBALIZE_LABEL): Define.
|
||
(STRIP_NAME_ENCODING): Define.
|
||
* rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
|
||
(STRIP_NAME_ENCODING): Don't define.
|
||
(ASM_OUTPUT_LABEL): Don't define.
|
||
(ASM_GLOBALIZE_LABEL): Don't define.
|
||
* sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
|
||
names, and ASM_OUTPUT_LABEL to output labels, rather than
|
||
asm_fprintf.
|
||
(ASM_OUTPUT_LABEL): Define.
|
||
(ASM_OUTPUT_INT): Use assemble_name.
|
||
(ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
|
||
(STRIP_NAME_ENCODING): Don't undefine first.
|
||
(RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
|
||
ELF.
|
||
(ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
|
||
specified with 'asm' even with -fleading-underscore.
|
||
* rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
|
||
(output_epilog): Likewise.
|
||
(output_toc): Likewise.
|
||
* tramp.asm: Handle -fleading-underscore correctly.
|
||
|
||
* rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
|
||
-mminimal-toc.
|
||
(nonlocal_goto_receiver): Delete.
|
||
* rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
|
||
|
||
* rs6000.h (ASM_OUTPUT_DEF): Don't define.
|
||
(SET_ASM_OP): Define.
|
||
* sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
|
||
|
||
* rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
|
||
(ASM_LONG): Define.
|
||
|
||
* rs6000.c (rs6000_dll_import_ref): Delete, not used.
|
||
* rs6000-protos.h (rs6000_dll_import_ref): Delete.
|
||
|
||
* rs6000.h: Add 'u' to more constants.
|
||
|
||
2000-02-18 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.md (mfcr+shift): Delete PowerPC64 version.
|
||
|
||
2000-02-15 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.c (reg_or_u_cint_operand): New function.
|
||
(logical_operand): Handle 64-bit hosts.
|
||
(logical_u_operand): New function.
|
||
(non_logical_cint_operand): Handle 64-bit hosts.
|
||
(non_logical_u_cint_operand): New function.
|
||
* rs6000.h (DATA_SECTION_ASM_OP): Add tab.
|
||
(PREDICATE_CODES): Define new functions.
|
||
* rs6000-protos.h: Declare new functions.
|
||
* rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
|
||
(movdi_64): Bracket code intended for 64-bit hosts. Create
|
||
CONST_DOUBLE for 32-bit values.
|
||
(scc insns): Generate DImode compares.
|
||
(mfcr insns): Create DImode versions.
|
||
(sge matchers): New patterns.
|
||
|
||
2000-02-15 Gabriel Paubert <paubert@iram.es>
|
||
|
||
* rs6000.md: Correct instructions length attributes and
|
||
constraints on unsigned compare instructions.
|
||
(*ne0): Disable for PowerPC64.
|
||
|
||
2000-02-11 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (output_function_profiler): Use .long for a 32-bit
|
||
quantity, fix profile1.C test failure under -fPIC.
|
||
|
||
* rs6000.c: Add 'u' to many constants to suppress warnings.
|
||
(constant_pool_expr_1): Make static.
|
||
(rs6000_emit_eh_toc_restore): Remove unused 'r2'.
|
||
* rs6000.h: Add 'u' to many constants to suppress warnings.
|
||
|
||
* rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
|
||
for the start of the TOC, instead of LCTOC..0.
|
||
* aix.h (toc_section): Use LCTOC..1 under AIX for the start
|
||
of the TOC.
|
||
* rs6000.md (load_toc_aix_si): Use LCTOC..1.
|
||
(load_toc_aix_di): Use LCTOC..1.
|
||
|
||
* rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
|
||
* rs6000.c (rs6000_legitimize_address): New function from
|
||
LEGITIMIZE_ADDRESS. Only use create_TOC_reference on
|
||
symbols in the constant pool that really are TOC references.
|
||
(print_operand_address): For ELF, write TOC offsets under
|
||
-fPIC as subtractions in the insn.
|
||
(output_toc): For ELF, define symbols in TOC as normal labels,
|
||
to match RTL.
|
||
(create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
|
||
* rs6000-protos.h (rs6000_legitimize_address): Prototype.
|
||
(create_TOC_reference): Prototype only when RTX_CODE is defined.
|
||
* rs6000.md (movsi): Only use create_TOC_reference on
|
||
symbols in the constant pool that really are TOC references.
|
||
|
||
* rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
|
||
* rs6000.c (rs6000_reorg): Delete.
|
||
* rs6000-protos.h (rs6000_reorg): Delete.
|
||
|
||
2000-02-09 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
|
||
|
||
* aix.h (SETUP_FRAME_ADDRESSES): Define.
|
||
* rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
|
||
[TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
|
||
[TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
|
||
* rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
|
||
rs6000_aix_emit_builtin_unwind_init.
|
||
* rs6000.md (eh_epilogue) [TARGET_AIX]: Call
|
||
rs6000_emit_eh_toc_restore on AIX.
|
||
(return_eh_si): Use r2.
|
||
(return_eh_di): Use r2.
|
||
|
||
* aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
|
||
since we're breaking binary compatibility anyway.
|
||
|
||
2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
|
||
constant_pool_expr_p): Declare them.
|
||
(constant_pool_expr_p): Declare it.
|
||
* config/rs6000/rs6000.c (toc_label_name): Define.
|
||
(rs6000_override_options): Set toc_label_name.
|
||
(input_operand): Allow any TOC_RELATIVE_EXPR_P.
|
||
(get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
|
||
uses_TOC): New functions.
|
||
(print_operand): Delete old '*' case.
|
||
(print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
|
||
and strip off rtl for TOC before calling output_addr_const.
|
||
(rs6000_emit_load_toc_table): Use toc_label_name.
|
||
* config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
|
||
the default.
|
||
(LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
|
||
(CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
|
||
(LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
|
||
(LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
|
||
into explicit TOC_REGISTER offsets.
|
||
(TOC_REGISTER): New macro.
|
||
* config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
|
||
TARGET_TOC to reference TOC_REGISTER.
|
||
(load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
|
||
* config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
|
||
uses_TOC before emitting label references.
|
||
|
||
2000-02-05 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (stack_tie): Fix warning.
|
||
|
||
* eabi-ctors.c: Use 'asm' names for the start/end variables,
|
||
to handle -fleading-underscore.
|
||
* sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
|
||
(USER_LABEL_PREFIX): New macro.
|
||
(ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
|
||
(ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
|
||
* t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
|
||
call-linux can use the same multilibs.
|
||
* t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
|
||
and call-linux multilibs. Do multilib with -fleading-underscore.
|
||
(MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
|
||
(MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions
|
||
to call-aix.
|
||
|
||
* sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
|
||
have MASK_SOFT_FLOAT set.
|
||
(CPP_FLOAT_DEFAULT_SPEC): New macro.
|
||
(SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
|
||
CPP_FLOAT_DEFAULT_SPEC.
|
||
|
||
* rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
|
||
* rs6000.md: Whitespace change.
|
||
* sysv4.h (LINK_TARGET_SPEC): Whitespace change.
|
||
* sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
|
||
|
||
2000-02-05 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (eh_epilogue): New expander.
|
||
(eh_reg_restore): New expand/split/insn combination.
|
||
(return_eh_si): New insn.
|
||
(return_eh_di): New insn.
|
||
|
||
* eabi-ci.asm: Put a label at the start of the .eh_frame section.
|
||
* eabi-cn.asm: Put a zero at the end of the .eh_frame section.
|
||
* eabi-ctors.c (__do_global_ctors): Register this object's
|
||
frame. Clean up. Call atexit() after the constructors.
|
||
(__do_global_dtors): Deregister this object's frame. Clean up.
|
||
Allow for recursive calls to exit().
|
||
* rs6000.c (fixuplabelno): New variable.
|
||
* sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
|
||
TARGET_RELOCATABLE, it slows down exec() under linux.
|
||
(ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
|
||
|
||
* aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
|
||
(ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
|
||
(ASM_OUTPUT_DWARF_DELTA2): New macro.
|
||
(ASM_OUTPUT_DWARF_DELTA4): New macro.
|
||
(ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
|
||
(ASM_OUTPUT_DWARF_ADDR): New macro.
|
||
(ASM_OUTPUT_DWARF_DATA4): New macro.
|
||
(ASM_OUTPUT_DWARF_DATA2): New macro.
|
||
(ASM_OUTPUT_DWARF_OFFSET4): New macro.
|
||
(ASM_OUTPUT_DWARF_OFFSET): New macro.
|
||
(UNALIGNED_INT_ASM_OP): New macro, fake definition.
|
||
|
||
2000-02-03 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_sr_alias_set): New variable.
|
||
(rs6000_override_options): Initialise rs6000_sr_alias_set.
|
||
(rs6000_emit_stack_tie): New function.
|
||
(rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
|
||
in a way that dwarf2out can understand.
|
||
(rs6000_frame_related): New function.
|
||
(rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify
|
||
RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
|
||
Use rs6000_emit_stack_tie when needed.
|
||
(rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set
|
||
RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed.
|
||
* rs6000.md (stack_tie): New insn.
|
||
(return_internal_si): Allow return value to be in the count
|
||
register.
|
||
(return_internal_di): Likewise.
|
||
|
||
* rs6000.c (output_mi_thunk): Remove unused variable `sp'.
|
||
|
||
2000-02-03 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
|
||
|
||
2000-01-31 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
|
||
|
||
* rs6000.md (stmw): Use the right POWER opcode.
|
||
(lmw): Likewise.
|
||
|
||
2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* rs6000-protos.h: New file.
|
||
|
||
* rs6000.c: Include tm_p.h. Fix compile time warnings.
|
||
|
||
* rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* sysv4.h: Likewise.
|
||
|
||
2000-01-28 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* ../../configure.in: Delete powerpcle-*-winnt*
|
||
and powerpcle-*-pe|powerpcle-*-cygwin*.
|
||
* ../../configure: Regenerated.
|
||
* cygwin.h: Delete.
|
||
* rs6000.h (OBJECT_WINDOWS_NT): Delete.
|
||
(TARGET_WINDOWS_NT): Delete.
|
||
(ABI_NT): Delete.
|
||
(CALL_NT_DLLIMPORT): Delete.
|
||
Delete NT-specific code.
|
||
* rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
|
||
* win-nt.h: Delete.
|
||
* t-winnt: Delete.
|
||
* nt-ci.asm: Delete.
|
||
* nt-cn.asm: Delete.
|
||
* ntstack.asm: Delete.
|
||
|
||
2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
|
||
(ASM_FILE_START): Likewise.
|
||
(ASM_DECLARE_FUNCTION_NAME): Likewise.
|
||
(ASM_OUTPUT_LABELREF): Likewise.
|
||
(ASM_OUTPUT_SKIP): Likewise.
|
||
(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
|
||
(ASM_GENERATE_INTERNAL_LABEL): Likewise.
|
||
(ASM_OUTPUT_CASE_LABEL): Likewise.
|
||
(ASM_OUTPUT_ALIGNED_COMMON): Likewise.
|
||
(ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
2000-01-27 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
|
||
reload_toc_labelno for non-prologue TOC reloads. Also, don't
|
||
increment rs6000_pic_labelno here.
|
||
(rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
|
||
and increment rs6000_pic_labelno here.
|
||
|
||
2000-01-24 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
|
||
rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
|
||
allocation knows (reg) is dead before the insn.
|
||
|
||
2000-01-21 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (movsi_to_cr): Correct typo in output template.
|
||
|
||
2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_pic_labelno): Always define.
|
||
(rs6000_pic_func_labelno): Delete.
|
||
(lmw_operation): Check for a zero base register,
|
||
which doesn't mean what we want.
|
||
(stmw_operation): New function.
|
||
(print_operand): Define new 'l' modifier.
|
||
(rs6000_stack_info): We must save all 64 bits of the registers
|
||
if TARGET_POWERPC64.
|
||
(rs6000_output_load_toc_table): Delete.
|
||
(rs6000_emit_load_toc_table): New function.
|
||
(rs6000_allocate_stack_space): Delete.
|
||
(rs6000_emit_allocate_stack): New function.
|
||
(rs6000_emit_prologue): New function.
|
||
(output_prolog): Use rs6000_emit_prologue.
|
||
(rs6000_emit_epilogue): Change a few variable names to be
|
||
more accurate. Restore all 64 bits of the registers if
|
||
TARGET_POWERPC64. Only restore the FP registers which were used
|
||
if they are being saved/restored one-at-a-time.
|
||
(output_mi_thunk): Delete inefficient code generation.
|
||
(output_function_profiler): Don't use rs6000_output_load_toc_table.
|
||
* rs6000.h: Declare rs6000_emit_load_toc_table,
|
||
rs6000_allocate_stack_space, stmw_operation. Don't declare
|
||
rs6000_output_load_toc_table.
|
||
* rs6000.md (elf_high): Allow register 0, but discourage it
|
||
heavily.
|
||
(elf_low): Support loading into register 0.
|
||
(load_toc_aix_si): New pattern.
|
||
(load_toc_aix_di): New pattern.
|
||
(load_toc_v4_pic_si): New pattern.
|
||
(load_toc_v4_pic_di): New pattern.
|
||
(load_toc_v4_PIC_1): New pattern.
|
||
(load_toc_v4_PIC_1b): New pattern.
|
||
(load_toc_v4_PIC_2): New pattern.
|
||
(builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
|
||
(nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
|
||
(prologue): New expander.
|
||
(movesi_from_cr): New pattern.
|
||
(stmw): New pattern.
|
||
(save_fpregs_si): New pattern.
|
||
(save_fpregs_di): New pattern.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
|
||
(movdi): Likewise.
|
||
(movhi): Likewise.
|
||
(movqi): Likewise.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
|
||
at present.
|
||
(movsi_got_internal): Likewise.
|
||
(movsi_got_internal+1): Likewise.
|
||
(set_sp): 'unspec 7' does a SImode clobber.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md (floatsidf2): Don't use the fpmem "register", just
|
||
allocate a stack temporary.
|
||
(floatsidf2_internal): Likewise.
|
||
(floatsidf2_internal+1): Likewise. Don't do bizzare hacks
|
||
with unspec.
|
||
(floatunssidf2): Don't use the fpmem "register", just
|
||
allocate a stack temporary.
|
||
(floatunssidf2_internal): Likewise.
|
||
(floatunssidf2_internal+1): Likewise. Don't do bizzare hacks
|
||
with unspec.
|
||
(floatsidf2_loadaddr): Delete.
|
||
(floatsidf2_store1): Delete.
|
||
(floatsidf2_store2): Delete.
|
||
(floatsidf2_load): Delete.
|
||
(fix_truncdfsi2): Don't use the fpmem "register", just
|
||
allocate a stack temporary.
|
||
(fix_truncdfsi2_internal_si): Delete.
|
||
(fix_truncdfsi2_internal_di): Delete.
|
||
(fix_truncdfsi2_internal): New insn.
|
||
(fix_truncdfsi2_internal+1): Don't use the fpmem "register".
|
||
(fix_truncdfsi2_store): Delete.
|
||
(fix_truncdfsi2_load): Delete.
|
||
(fctiwz): Produce gen_fctiwz.
|
||
|
||
2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* eabi.h (INVOKE__main): Define.
|
||
* rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
|
||
specially.
|
||
(rs6000_emit_prologue): Likewise.
|
||
* rs6000.h (struct rs6000_stack): Don't keep track of whether
|
||
this is the main program.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_va_arg): Delete some unused variables.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
|
||
goes after the argument.
|
||
|
||
2000-01-12 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.md: Document 'unspec' values used.
|
||
(epilogue): New expander.
|
||
(movesi_to_cr_one): New expander.
|
||
(movesi_to_cr and following): New pattern.
|
||
(lmw): New pattern.
|
||
(return_internal_si): New pattern.
|
||
(return_internal_di): New pattern.
|
||
(return_and_restore_fpregs_si): New pattern.
|
||
(return_and_restore_fpregs_di): New pattern.
|
||
* rs6000.h: Declare new functions.
|
||
* rs6000.c (rs6000_stack_info): Use current_function_is_leaf
|
||
rather than rs6000_calls_p.
|
||
(rs6000_makes_calls): Delete.
|
||
(lmw_operation): New function.
|
||
(mtcrf_operation): New function.
|
||
(rs6000_emit_epilogue): New function.
|
||
(output_epilog): Call rs6000_emit_epilogue and final if
|
||
!TARGET_SCHED_PROLOG, instead of writing text unconditionally.
|
||
|
||
2000-01-12 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
|
||
* aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
|
||
* aix.h (SUBTARGET_SWITCHES): Document switches.
|
||
* rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make
|
||
sched-prolog and sched-epilog the same. Document all the
|
||
switches.
|
||
(TARGET_OPTIONS): No longer allow -mdebug-.
|
||
|
||
2000-01-12 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.h (ASM_FILE_END): Move to aix.h.
|
||
(EXTRA_SECTIONS): Move to aix.h.
|
||
(READONLY_DATA_SECTION): Move to aix.h.
|
||
(EXTRA_SECTION_FUNCTIONS): Move to aix.h.
|
||
(SELECT_SECTION): Move to aix.h.
|
||
(JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
|
||
(INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
|
||
(LINK_REGISTER_REGNUM): New definition.
|
||
(RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
|
||
(SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
|
||
AIX and SVR4.
|
||
* sysv4.h: Delete the code between the inclusion of rs6000.h
|
||
and svr4.h.
|
||
(DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
|
||
(FP_ARG_MAX_REG): Move generic definition to rs6000.h.
|
||
(RS6000_REG_SAVE): Move generic definition to rs6000.h.
|
||
(RS6000_SAVE_AREA): Move generic definition to rs6000.h.
|
||
* rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
|
||
(fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
|
||
(fix_truncdfsi2_internal_di): New pattern.
|
||
(fix_truncdfsi2_store): The second arg here is Pmode too.
|
||
(fix_truncdfsi2_load): The second arg here is Pmode too.
|
||
(tablejumpdi): Now that switch tables hold only SImode values,
|
||
gcc needs to know how to add them to the pc which is DImode.
|
||
* rs6000.c (rs6000_stack_info): Use symbolic name for
|
||
LINK_REGISTER_REGNUM.
|
||
(output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
|
||
(output_toc): Delete unused variables s1 and s2.
|
||
(output_ascii): Use fputs not fprintf on a variable string.
|
||
|
||
2000-01-07 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.c (processor_target_table): Add power3 as alias for 630.
|
||
* aix43.h: Revert Aug 2 change.
|
||
(HAS_INIT_SECTION): Define, not visible yet.
|
||
(LD_INIT_SWITCH): Define, not visible yet.
|
||
* t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
|
||
|
||
2000-01-04 Joel Sherrill (joel@OARcorp.com>
|
||
|
||
* config/rs6000/rtems.h: Include config/rtems.h.
|
||
|
||
2000-01-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.h (HANDLE_PRAGMA_PACK): Define.
|
||
(SLOW_UNALIGNED_ACCESS): Define.
|
||
(CASE_VECTOR_MODE): Always use 32-bit offsets.
|
||
(ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
|
||
(EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
|
||
(toc_section): Likewise and .toc pseudo-op.
|
||
(ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
|
||
64-bit mode.
|
||
(TEXT_SECTION_ASM_OP): Likewise.
|
||
(ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
|
||
32-bit offsets.
|
||
|
||
1999-12-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
|
||
UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
|
||
compiling libgcc2.
|
||
|
||
2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* rs6000.h: Move more stuff from here...
|
||
* aix.h: to here.
|
||
* sysv4.h: Cleanup accordingly.
|
||
* netware.h: Likewise
|
||
|
||
2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* rs6000.h: Continue cleanup.
|
||
* aix.h: Likewise.
|
||
* lynx.h: Likewise.
|
||
* netware.h: Likewise.
|
||
* sol2.h: Likewise.
|
||
* sysv4.h: Likewise.
|
||
* win-nt.h: Likewise.
|
||
|
||
* rs6000.h (TARGET_SWITCHES): Add descriptions.
|
||
(TARGET_OPTIONS): Likewise.
|
||
|
||
* sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
|
||
(SUBTARGET_OPTIONS): Likewise.
|
||
|
||
* rs6000.md: Fix compile time warnings.
|
||
|
||
2000-01-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
vxworks patches from the Cygnus tree originally by
|
||
Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
|
||
<vmakarov@cygnus.com>.
|
||
* sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
|
||
(ENDFILE_SPEC): Likewise.
|
||
(LIB_VXWORKS_SPEC): New macro.
|
||
(STARTFILE_VXWORKS_SPEC): New macro.
|
||
(ENDFILE_VXWORKS_SPEC): New macro.
|
||
(LINK_START_VXWORKS_SPEC): New macro.
|
||
(LINK_OS_VXWORKS_SPEC): New macro.
|
||
(CPP_OS_VXWORKS_SPEC): New macro.
|
||
(SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
|
||
* vxppc.h: Rewrite to use proper configuration method.
|
||
* vxppcle.h: New file.
|
||
* ../../configure.in: Add powerpcle-wrs-vxworks*.
|
||
* ../../configure: Rebuilt.
|
||
|
||
2000-01-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
Lots of changes to rs6000.h, sysv4.h, aix.h,
|
||
aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
|
||
with the aim that rs6000.h is the first header
|
||
included and the others override it.
|
||
* aix.h: New file.
|
||
|
||
* x-aix41-gld: Remove.
|
||
* x-aix43: Remove.
|
||
* x-aix41: Remove target-specific switches, and don't specify
|
||
-Wl,-bbigtoc as we don't need it any more.
|
||
* ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
|
||
Use t-aix43 for AIX 4.3 and above.
|
||
* ../../configure: Regenerated.
|
||
|
||
* rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
|
||
options, that don't do anything yet.
|
||
(MASK_SCHED_PROLOG): New macro.
|
||
(MASK_SCHED_EPILOG): New macro.
|
||
(TARGET_SCHED_PROLOG): New macro.
|
||
(TARGET_SCHED_EPILOG): New macro.
|
||
|
||
2000-01-04 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c: Correct comment, the `minimal' TOCs are actually
|
||
one per translation unit, not one per function.
|
||
(output_toc): Also do duplicate constant elimination
|
||
for per-translation-unit TOCs.
|
||
|
||
* rs6000.md (nonlocal_goto_receiver): Put it back as before. Add
|
||
a comment explaining _exactly_ when this pattern gets used.
|
||
(builtin_setjmp_receiver): New pattern for better clarity.
|
||
(init_v4_pic): Move it into a section dealing with TOC registers.
|
||
|
||
1999-12-30 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (toc_hash_table): New variable.
|
||
(rs6000_hash_constant): New function.
|
||
(toc_hash_function): New function.
|
||
(toc_hash_eq): New function.
|
||
(toc_hash_mark_entry): New function.
|
||
(toc_hash_mark_table): New function.
|
||
(output_toc): Don't output duplicate TOC entries in
|
||
a single file.
|
||
(rs6000_add_gc_roots): Add the hash table as a GC root.
|
||
* t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
|
||
where they clearly shouldn't be. This may need to be fixed
|
||
later when there is a GNU ar for AIX.
|
||
* x-aix43: Don't define CLIB or AR_FOR_TARGET.
|
||
Don't define BOOT_LDFLAGS as it is now not necessary.
|
||
|
||
1999-12-29 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
|
||
for va_list on AIX. Use unsigned_char_type_node rather than
|
||
constructing our own version on svr4.
|
||
|
||
1999-12-17 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
|
||
since patently it's not.
|
||
|
||
1999-12-08 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
|
||
define_expand/define_insn pair, and handle restore of the
|
||
SVR4 -fpic register.
|
||
|
||
Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* acconfig.h (HAVE_GAS_WEAK): New define.
|
||
* configure.in (assembler weak support): Check for .weak support.
|
||
* config.in, configure: Rebuilt.
|
||
* pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
|
||
HAVE_GAS_WEAK is defined.
|
||
|
||
2000-03-15 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c (arm_output_epilogue): Do not pass %c to
|
||
asm_fprintf().
|
||
|
||
2000-03-15 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (open_include_file): New function.
|
||
(find_include_file, cpp_read_file): Use it.
|
||
|
||
2000-03-15 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cpphash.c (dump_hash_helper): Take the slot, not the element.
|
||
|
||
Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* flow.c (verify_flow_info): Check for unconditional return.
|
||
|
||
Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.md (restore_stack_nonlocal): New.
|
||
* config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
|
||
(__ia64_restore_stack_nonlocal): New.
|
||
* config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
|
||
|
||
2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* cpphash.c (collect_formal_parameters): Do not complain about
|
||
parameter names that just start with `__VA_ARGS__'.
|
||
|
||
Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
|
||
movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
|
||
* i386.c (pentiumpro_cost): Set mul cost to 4.
|
||
(x86_use_movx): Set for PPro.
|
||
|
||
Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (ix86_compute_frame_size): stack_alignment_needed is
|
||
STACK_BOUNDARY for empty frames now.
|
||
|
||
2000-03-14 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* stor-layout.c (layout_union): Remove.
|
||
(layout_union_field): New function, split out from layout_union.
|
||
(finish_union_layout): Likewise.
|
||
(layout_field): Handle unions by calling layout_union_field.
|
||
(finish_record_layout): Handle unions.
|
||
(layout_type): Combine RECORD_TYPE, UNION_TYPE, and
|
||
QUAL_UNION_TYPE handling.
|
||
|
||
Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
|
||
end of basic block is jump_insn, not barrier; use create_basic_block
|
||
instead of creating basic block by hand.
|
||
|
||
2000-03-14 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* flow.c (reorder_basic_blocks): Account for barriers when writing
|
||
over NEXT_INSN (last_bb->end).
|
||
(verify_flow_info): Add check for missing barriers.
|
||
|
||
2000-03-14 Greg McGary <gkm@gnu.org>
|
||
|
||
* c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
|
||
* c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
|
||
* c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
|
||
__ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
|
||
__unbounded, __unbounded__): New keywords.
|
||
* c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
|
||
* c-parse.y, c-parse.c, c-parse.h: Regenerate.
|
||
* objc/objc-parse.y, objc/objc-parse.c: Regenerate.
|
||
|
||
2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* cselib.h: New file.
|
||
* alias.c: Include "cselib.h".
|
||
(fixed_scalar_and_varying_struct_p): Accept the addresses of the
|
||
MEMs as two new arguments.
|
||
(get_addr): New static function.
|
||
(find_base_term): Handle VALUEs.
|
||
(memrefs_conflict_p): Likewise.
|
||
(true_dependence): Call get_addr on the addresses.
|
||
Call fixed_scalar_and_varying_struct_p with addresses that have been
|
||
passed through get_addr and canon_rtx.
|
||
(write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
|
||
with true_dependence.
|
||
Call get_addr on the addresses; don't call canon_rtx on the MEMs.
|
||
* loop.c: Include "cselib.h".
|
||
(load_mems): Process extended basic block that enters the loop with
|
||
cselib. Use that information to change initialization of the shadow
|
||
register so that a constant equivalence is seen by later passes.
|
||
* reload1.c: Include "cselib.h".
|
||
(reload_cse_invalidate_regno): Delete function.
|
||
(reload_cse_mem_conflict_p): Likewise.
|
||
(reload_cse_invalidate_mem): Likewise.
|
||
(reload_cse_invalidate_rtx): Likewise.
|
||
(reload_cse_regno_equal_p): Likewise.
|
||
(reload_cse_check_clobber): Likewise.
|
||
(reload_cse_record_set): Likewise.
|
||
(reg_values): Delete static variable.
|
||
(invalidate_regno_rtx): Likewise.
|
||
(reload_cse_delete_noop_set): New static function.
|
||
(reload_cse_simplify): New static function, broken out of
|
||
reload_cse_regs_1.
|
||
(reload_cse_noop_set_p): Delete unused argument INSN.
|
||
Just call rtx_equal_for_cselib_p on set source and destination.
|
||
(reload_cse_regs_1): Break out some code into reload_cse_simplify and
|
||
reload_cse_delete_noop_set. Delete code to keep track of values; use
|
||
cselib functions instead. Delete code to push/pop obstacks.
|
||
(reload_cse_simplify_set): Use cselib to find equivalent values.
|
||
Delete code to push/pop obstacks.
|
||
(reload_cse_simplify_operands): Likewise.
|
||
* rtl.def (VALUE): New rtx code.
|
||
* rtl.h (union rtunion_def): New elt rt_cselib.
|
||
(X0CSELIB, CSELIB_VAL_PTR): New macros.
|
||
* simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
|
||
(new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
|
||
unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
|
||
discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
|
||
hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
|
||
cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
|
||
cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
|
||
cselib_record_set, cselib_record_sets): New static functions.
|
||
(cselib_lookup, cselib_update_varray_sizes, cselib_init,
|
||
cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
|
||
references_value_p): New functions.
|
||
(MAX_USELESS_VALUES, REG_VALUES): New macros.
|
||
(table, cselib_current_insn, next_unknown_value, cselib_nregs,
|
||
n_useless_values, reg_values, callmem, cselib_obstack,
|
||
cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
|
||
New static variables.
|
||
* varray.h (union varray_data_tag): New elt te.
|
||
(VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
|
||
* Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
|
||
dependencies.
|
||
|
||
2000-03-14 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* gcc.c (do_spec_1): Catch the case where %* is used in a
|
||
substitution pattern, but it has not been initialised.
|
||
Issue a meaningful error message if an unrecognised operator
|
||
is encountered in a spec string.
|
||
|
||
2000-03-14 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* function.c (prepare_function_start): Correctly initialize
|
||
cfun->stack_alignment_needed.
|
||
|
||
2000-03-14 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (find_include_file): Don't assume nshort is a
|
||
substring of name.
|
||
|
||
Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* configure.in (hppa configurations): Add pa32-regs.h to the
|
||
list of tm files as appropriate.
|
||
* configure: Rebuilt.
|
||
* pa.c (compute_frame_size): Remove explicit knowledge about FP
|
||
register numbering.
|
||
(hppa_expand_prologue, hppa_expand_epilogue): Likewise.
|
||
(fmpyaddoperands, fmpysuboperands): Likewise.
|
||
* pa.h: Remove various definitions which depend on knowing
|
||
how registers are numbered.
|
||
* pa32-regs.h: New file with PA32 register numbering specific
|
||
definitions.
|
||
|
||
2000-03-14 Richard Henderson <rth@cygnus.com>
|
||
|
||
* regmove.c (combine_stack_adjustments): New.
|
||
(stack_memref_p, single_set_for_csa): New.
|
||
(free_csa_memlist, record_one_stack_memref): New.
|
||
(try_apply_stack_adjustment): New.
|
||
(combine_stack_adjustments_for_block): New.
|
||
* rtl.h (combine_stack_adjustments): Declare.
|
||
* toplev.c (rest_of_compilation): Call it.
|
||
|
||
* i386.md: Revert 2000-01-16 change.
|
||
|
||
2000-03-14 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* gccbug.in: Add web category, gcc specific classes.
|
||
|
||
2000-03-14 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* stor-layout.c (finalize_record_size): Fix typo.
|
||
|
||
2000-03-14 Stan Shebs <shebs@apple.com>
|
||
|
||
* c-typeck.c (c_alignof): Error on incomplete types.
|
||
* extend.texi (Alignment): Document this.
|
||
|
||
2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c: Include mkdeps.h.
|
||
(find_include_file, read_include_file): Remove _cpp_ prefix
|
||
from name, make static.
|
||
(_cpp_execute_include): New function, broken out of
|
||
do_include.
|
||
|
||
* cpplib.c: Don't include mkdeps.h.
|
||
(struct directive): Remove type field. Reorder entries. The
|
||
function takes only one argument.
|
||
(struct if_stack): Make type field an int.
|
||
(directive_table): Rename to dtable. Generate it, the
|
||
prototypes of the directive handlers, and the enum for the
|
||
directive numbers, from a template macro.
|
||
(do_ifndef, do_include_next, do_import): New functions.
|
||
(do_define, do_include, do_endif, do_ifdef, do_if, do_else,
|
||
do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
|
||
do_ident, do_assert, do_unassert, do_sccs): Take only one
|
||
argument.
|
||
(do_sccs): Define always, but alter behavior based on
|
||
SCCS_DIRECTIVE.
|
||
(_cpp_handle_directive, consider_directive_while_skipping):
|
||
Restructure for new directive table layout.
|
||
|
||
(pass_thru_directive): Take a directive number, not a pointer
|
||
to a struct directive.
|
||
(parse_include): New function, broken out of do_include.
|
||
(do_include, do_import, do_include_next): Use parse_include
|
||
and _cpp_execute_include.
|
||
(do_elif, do_else): Test for T_ELSE specifically when checking
|
||
for #elif/#else after #else.
|
||
(parse_ifdef): New function, broken out of do_ifdef.
|
||
(validate_else): Expect a name arg without a leading #.
|
||
(if_directive_name): Delete.
|
||
(cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
|
||
directive handlers with only one argument.
|
||
|
||
* cpphash.h: Update prototypes.
|
||
(enum node_type): Remove entries for directives.
|
||
* Makefile.in: Update dependencies.
|
||
|
||
* cpphash.c (dump_hash_helper): Only dump nodes of type
|
||
T_MACRO. Emit a newline after each definition.
|
||
|
||
2000-03-14 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* gccbug.in: New file.
|
||
* configure.in (all_outputs): Add gccbug.
|
||
* Makefile.in (install-common): Install gccbug.
|
||
(GCCBUG_INSTALL_NAME): New variable.
|
||
* configure: Rebuilt.
|
||
|
||
2000-03-13 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* function.c (put_var_into_stack): Use type_for_mode to calculate
|
||
part_type. Use MEM_SET_IN_STRUCT_P.
|
||
* expr.c (store_field): Handle CONCAT.
|
||
(store_constructor): Use fields_length.
|
||
* tree.c (fields_length): New fn.
|
||
* tree.h: Declare it.
|
||
|
||
2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (LIBCPP_OBJS): Add cpplex.o.
|
||
(cpplex.o): New target.
|
||
* po/POTFILES.in: Add cpplex.c.
|
||
|
||
* cpplex.c (_cpp_grow_token_buffer, null_cleanup,
|
||
cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
|
||
cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
|
||
skip_block_comment, skip_line_comment, skip_comment,
|
||
copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
|
||
_cpp_parse_name, skip_string, parse_string,
|
||
_cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
|
||
_cpp_get_directive_token, find_position,
|
||
_cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
|
||
(maybe_macroexpand, _cpp_lex_token): New functions.
|
||
|
||
* cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
|
||
parse_goto_mark): Delete.
|
||
(_cpp_handle_eof): New function.
|
||
(_cpp_handle_directive): Rename from handle_directive.
|
||
(_cpp_output_line_command): Rename from output_line_command.
|
||
(do_if, do_elif): Call _cpp_parse_expr directly.
|
||
* cppfiles.c (_cpp_read_include_file): Don't call
|
||
init_input_buffer here.
|
||
* cpphash.c (quote_string): Move here, rename _cpp_quote_string.
|
||
* cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
|
||
here; pop the token_buffer and skip the rest of the line here.
|
||
* cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
|
||
here.
|
||
|
||
* cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
|
||
Define here.
|
||
(CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
|
||
CPP_GOTO_MARK): New macros.
|
||
(_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
|
||
_cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
|
||
_cpp_read_and_prescan, _cpp_init_input_buffer,
|
||
_cpp_grow_token_buffer, _cpp_get_directive_token,
|
||
_cpp_handle_directive, _cpp_handle_eof,
|
||
_cpp_output_line_command): Prototype them here.
|
||
* cpplib.h (enum cpp_token): Add CPP_MACRO.
|
||
(CPP_RESERVE, get_directive_token, cpp_grow_buffer,
|
||
quote_string, output_line_command): Remove.
|
||
|
||
2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* stmt.c (expand_end_case): RANGE may be signed, and when checking
|
||
whether it is too large we must also verify that it isn't negative.
|
||
|
||
2000-03-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
|
||
(movsi_zero_liveg0): Remove.
|
||
(movsf_insn_novis_liveg0): Remove.
|
||
(negsi2): Remove.
|
||
(negsi2_not_liveg0): Rename to negsi2.
|
||
(one_cmplsi2): Remove.
|
||
(one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
|
||
(one_cmplsi2_liveg0): Remove.
|
||
* config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
|
||
MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
|
||
(CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
|
||
(PREDICATE_CODES): Remove zero_operand.
|
||
* config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
|
||
TARGET_BROKEN_SAVERESTORE.
|
||
(zero_operand): Remove.
|
||
* config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
|
||
-mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
|
||
options.
|
||
(SUBTARGET_OVERRIDE_OPTIONS): Remove.
|
||
* config/sparc/linux-aout.h (TARGET_LIVE_G0,
|
||
TARGET_BROKEN_SAVERESTORE): Remove.
|
||
* config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
|
||
Remove.
|
||
* config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
|
||
Remove.
|
||
* config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
|
||
Remove.
|
||
|
||
* config/sparc/sparc.md (return_df_no_fpu): New pattern.
|
||
|
||
2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (do_pragma_implementation): Fix off-by-one error
|
||
truncating a string. Don't assume tokens are nul terminated.
|
||
Problem noted by Andreas Jaeger <aj@suse.de>
|
||
|
||
2000-03-13 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (add_name_and_src_coords_attributes): Only add
|
||
DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
|
||
(ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
|
||
|
||
2000-03-13 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* stor-layout.c (new_record_layout_info): Fix typo inside ifdef
|
||
STRUCTURE_SIZE_BOUNDARY.
|
||
|
||
2000-03-13 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (record_layout_info_s): New structure.
|
||
(record_layout_info): New type.
|
||
(new_record_layout_info): New function.
|
||
(layout_field): Likewise.
|
||
(finish_record_layout): Likewise.
|
||
* stor-layout.c (layout_record): Remove.
|
||
(new_record_layout_info): New function.
|
||
(layout_field): New function, broken out from layout_record.
|
||
(finalize_record_size): Likewise.
|
||
(compute_record_mode): Likewise.
|
||
(finalize_type_size): New function, broken out from layout_type.
|
||
(finish_record_layout): Likewise.
|
||
(layout_type): Use them.
|
||
|
||
2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c: Don't include version.h.
|
||
(special_symbol) [case T_VERSION]: Look for the string in
|
||
hp->value.cpval; don't use version_string.
|
||
* cppinit.c (initialize_builtins): Set hp->value.cpval for
|
||
__VERSION__ to version_string.
|
||
* Makefile.in (cpphash.o): Update deps.
|
||
|
||
2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
Convert cpplib to use libiberty/hashtab.c.
|
||
|
||
* cpplib.h (struct cpp_reader): Make hashtab and
|
||
all_include_files of type 'struct htab *'. Delete HASHSIZE
|
||
and ALL_INCLUDE_HASHSIZE macros.
|
||
|
||
* cpphash.h: Update prototypes.
|
||
(struct hashnode): Remove next, prev, and bucket_hdr members.
|
||
Make length a size_t. Add hash member.
|
||
(struct ihash): Remove next member. Add hash member. Make
|
||
name a flexible array member.
|
||
|
||
* cppfiles.c: Include hashtab.h.
|
||
(include_hash): Delete.
|
||
(IHASHSIZE): New macro.
|
||
(hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
|
||
(cpp_included): Do the hash lookup here.
|
||
(_cpp_find_include_file): Rewrite.
|
||
(cpp_read_file): Put the "fake" hash entry into the hash
|
||
table. Honor the control_macro, if it turns out we've seen
|
||
the file before. Don't push the buffer here.
|
||
(_cpp_read_include_file): Push the buffer here.
|
||
(OMODES): New macro. Use it whenever we call open(2).
|
||
|
||
* cpphash.c: Include hashtab.h.
|
||
(hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
|
||
_cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
|
||
_cpp_lookup_slot): New functions.
|
||
(HASHSIZE): new macro.
|
||
(hashf, _cpp_install, _cpp_delete_macro): Delete.
|
||
(_cpp_lookup): Use hashtab.h routines.
|
||
|
||
* cppinit.c: Include hashtab.h.
|
||
(cpp_reader_init): Call _cpp_init_macro_hash and
|
||
_cpp_init_include_hash. Don't allocate hashtab directly.
|
||
(cpp_cleanup): Just call htab_delete on pfile->hashtab and
|
||
pfile->all_include_files.
|
||
(initialize_builtins): Use _cpp_make_hashnode and
|
||
htab_find_slot to add hash entries.
|
||
(cpp_finish): Just call _cpp_dump_macro_hash.
|
||
* cpplib.c: Include hashtab.h.
|
||
(do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
|
||
create hash entries.
|
||
(do_pragma_poison, do_assert): Likewise.
|
||
(do_include): Don't push the buffer here. Don't increment
|
||
system_include_depth unless _cpp_read_include_file succeeds.
|
||
(do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
|
||
or htab_remove_elt.
|
||
(do_pragma_implementation): Use alloca to create copy.
|
||
|
||
* Makefile.in: Update dependencies.
|
||
|
||
2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* cppinit.c (cl_directive_handler): More K&R fixing.
|
||
|
||
Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.c (ia64_compute_frame_size): Align size to
|
||
STACK_BOUNDARY.
|
||
* config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
|
||
|
||
2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
|
||
Change from char[] to macros.
|
||
|
||
2000-03-12 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppinit.c (cpp_start_read): Update indirect function
|
||
call to K&R C.
|
||
|
||
Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
|
||
entry.
|
||
|
||
* config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
|
||
config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
|
||
|
||
2000-03-11 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppinit.c (struct pending option): Replace undef with a
|
||
pointer to a directive handling routine.
|
||
(struct cpp_pending): Replace separate assert_ and define_
|
||
lists with one directive_ list.
|
||
(new_pending_define): Rename new_pending_directive. Extra
|
||
argument is the directive's handling routine.
|
||
(handle_option): Update to use new_pending_directive.
|
||
|
||
2000-03-11 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppfiles.c (file_cleanup, _cpp_find_include_file,
|
||
remap_filename, _cpp_read_include_file, actual_directory,
|
||
hack_vms_include_specification): Replace bcopy(), index() etc
|
||
calls. Add casts to some allocations. Make some variables
|
||
pointers to const [unsigned] char.
|
||
* cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
|
||
collect_formal_parameters): Similarly.
|
||
* cppinit.c (struct pending_option, append_include_chain,
|
||
cpp_options_init, cpp_reader_init, initialize_standard_includes,
|
||
cpp_start_read, new_pending_define, handle_option): Similarly.
|
||
* cpplib.c (cpp_define, copy_comment, do_define, do_include,
|
||
do_undef, do_error, do_warning, do_pragma, do_pragma_once,
|
||
do_pragma_implementation, detect_if_not_defined,
|
||
do_ifdef, skip_if_group, cpp_get_token, parse_string,
|
||
do_assert, do_unassert): Similarly.
|
||
* cpplib.h (cpp_buffer, cpp_options): Update types. Update
|
||
function prototypes.
|
||
* mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
|
||
|
||
2000-03-10 Richard Henderson <rth@cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_strlen): Revert last change.
|
||
Use emit_insn_before if we're at the beginning of a sequence.
|
||
|
||
2000-03-10 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_strlen): Make sure that we have something
|
||
at the beginning of the sequence.
|
||
|
||
* toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
|
||
deferred inlines.
|
||
|
||
* invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
|
||
|
||
2000-03-10 Richard Henderson <rth@cygnus.com>
|
||
|
||
* except.c (can_throw): Use INTVAL on a CONST_INT.
|
||
(reachable_handlers): Likewise.
|
||
* flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
|
||
|
||
2000-03-10 Andreas Jaeger <aj@suse.de>
|
||
|
||
* config/mips/linux.h: Undefine MD_EXEC_PREFIX and
|
||
MD_STARTFILE_PREFIX since those are not needed on linux.
|
||
(ASM_FILE_START): New, from mips/gnu.h.
|
||
|
||
2000-03-09 Richard Henderson <rth@cygnus.com>
|
||
Alex Samuel <samuel@codesourcery.com> and others
|
||
|
||
* Makefile.in (ssa.o): New rule.
|
||
(OBJS): Add ssa.o.
|
||
(STAGESTUFF): Add *.ssa and *.ussa.
|
||
(mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
|
||
* rtl.def (PHI): New RTL expression.
|
||
* rtl.h (clear_log_links): New declaration.
|
||
(convert_to_ssa): Likewise.
|
||
(convert_from_ssa): Likewise.
|
||
* flow.c (split_edge): If the entry node falls through to the
|
||
split edge's source block, split the entry edge.
|
||
(clear_log_links): New function.
|
||
* toplev.c (ssa_dump): New variable.
|
||
(flag_ssa): Likewise.
|
||
(f_options): Add "ssa".
|
||
(compile_file): Create SSA dump files.
|
||
(rest_of_compilation): Go to and from SSA if enabled.
|
||
(decide_d_option): Handle -de for SSA dump files.
|
||
* ssa.c: New file.
|
||
|
||
Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
|
||
same as VAR_DECL.
|
||
|
||
2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
|
||
|
||
* config/alpha/linux.h (WCHAR_TYPE): Make consistent.
|
||
|
||
Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
|
||
(MD_STARTFILE_PREFIX_1): New macro.
|
||
|
||
2000-03-09 Robert Lipe <robertl@sco.com>
|
||
|
||
* config/ia64/ia64.c: Include system.h.
|
||
|
||
2000-03-09 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* except.c (nothrow_function_p): If -fno-exceptions, just return.
|
||
(init_eh_nesting_info): Likewise.
|
||
|
||
* tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
|
||
(TREE_NOTHROW): Rename from TREE_RAISES.
|
||
* toplev.c (rest_of_compilation): Set it.
|
||
* print-tree.c (print_node): Adjust.
|
||
* tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
|
||
(stabilize_reference_1, get_unwidened, get_narrower): Likewise.
|
||
* calls.c (emit_call_1): Add 'nothrow' parm. Add
|
||
REG_EH_REGION note as appropriate.
|
||
(libfunc_nothrow): New fn.
|
||
(emit_library_call, emit_library_call_value): Use it.
|
||
(expand_call): Check TREE_NOTHROW.
|
||
|
||
* varasm.c (make_decl_rtl): Skip initial '*' when setting
|
||
DECL_ASSEMBLER_NAME.
|
||
|
||
2000-03-09 Andreas Jaeger <aj@suse.de>
|
||
|
||
* mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
|
||
(TARGET_MEM_FUNCTIONS): Define.
|
||
|
||
2000-03-09 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
|
||
|
||
* except.c (can_throw): See through a SEQUENCE.
|
||
(nothrow_function_p): New fn.
|
||
* except.h: Declare it.
|
||
* function.c (current_function_nothrow): New var.
|
||
(prepare_function_start): Initialize it.
|
||
* output.h: Declare it.
|
||
* toplev.c (rest_of_compilation): Set it.
|
||
* dwarf2out.c (dwarf2out_begin_prologue): Use it.
|
||
|
||
2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (collect_formal_parameters): strncmp returns 0 for
|
||
match. (cpp_compare_defs): Count the nul separator when
|
||
advancing over argument names.
|
||
|
||
2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* recog.c (preprocess_constraints): Matching constraints affect
|
||
same alternative/different operand, not same operand/different
|
||
alternative.
|
||
|
||
* reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
|
||
register and a constant specially.
|
||
|
||
2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* libgcc2.h: New file.
|
||
* libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
|
||
|
||
Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
|
||
* configure: Regenerate.
|
||
* config/ia64: New.
|
||
|
||
2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (LIBCPP_DEPS): New macro.
|
||
(cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
|
||
it to declare deps.
|
||
* cpperror.c: Include cpphash.h.
|
||
* cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS
|
||
dingleberry.
|
||
(lex): Don't use CPP_WARN_UNDEF.
|
||
(_cpp_parse_expr): Return an int, the truth value.
|
||
* cppfiles.c: Include cpphash.h.
|
||
(_cpp_merge_include_chains): Move to cppinit.c and make static.
|
||
* cppinit.c (include_defaults_array): Disentangle.
|
||
(cpp_cleanup): Don't free the if stack here.
|
||
(cpp_finish): Pop off all buffers, not just one.
|
||
* cpplib.c (eval_if_expr): Return int.
|
||
(do_xifdef): Rename do_ifdef.
|
||
(handle_directive): Don't use CPP_PREPROCESSED.
|
||
(cpp_get_token): Don't use CPP_C89.
|
||
* fix-header.c: Don't use CPP_OPTIONS.
|
||
|
||
* cpplib.h: Move U_CHAR, enum node_type, struct
|
||
file_name_list, struct ihash, is_idchar, is_idstart,
|
||
is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
|
||
CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
|
||
CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
|
||
CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
|
||
CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
|
||
of _cpp_simplify_pathname, _cpp_find_include_file,
|
||
_cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
|
||
Move struct if_stack to cpplib.c. Move struct cpp_pending to
|
||
cppinit.c.
|
||
Change all uses of U_CHAR to be unsigned char instead.
|
||
Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
|
||
|
||
2000-03-08 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (dw_fde_struct): Add 'nothrow'.
|
||
(dwarf2out_begin_prologue): Set it.
|
||
(output_call_frame_info): Don't emit EH unwind info for leaves.
|
||
|
||
* flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
|
||
can occur outside of an EH region.
|
||
* except.c: Correct comments about rethrow behavior.
|
||
(rethrow_symbol_map): Do nothing if !flag_new_exceptions.
|
||
|
||
2000-03-08 Andrew MacLeod <amacleod@cygnus.com>
|
||
|
||
* flow.c (make_edges): Always call make_eh_edge for calls.
|
||
|
||
2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
|
||
(struct cpp_buffer): Remove fname and underflow fields.
|
||
(struct cpp_reader): Remove get_token field.
|
||
(struct include_hash): Rename to struct ihash. Add typedef to
|
||
IHASH.
|
||
(struct if_stack): Remove fname field.
|
||
(IF_STACK_FRAME): Rename to IF_STACK.
|
||
|
||
* cpperror.c (print_containing_files): Trust that there are no
|
||
macro buffers below the top file buffer.
|
||
* cppfiles.c: Replace all references to 'struct include_hash'
|
||
with 'IHASH'. Rename initialize_input_buffer to
|
||
init_input_buffer. Don't set or reference cpp_buffer->fname,
|
||
use buffer->ihash->name instead.
|
||
* cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL
|
||
not CPP_NULL_BUFFER.
|
||
* cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
|
||
IF_STACK_FRAME, IHASH not struct include_hash.
|
||
* cpplib.c: Rename eval_if_expression to eval_if_expr. Remove
|
||
null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not
|
||
struct include_hash, NULL not CPP_NULL_BUFFER. Remove all
|
||
references to cpp_buffer->fname (delete entirely, or use
|
||
->ihash->name instead) and IF_STACK->fname.
|
||
(cpp_push_buffer): Don't set new->underflow.
|
||
(do_include): Use cpp_file_buffer.
|
||
|
||
* cpphash.c (collect_formal_parameters): Remove duplicate
|
||
increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is
|
||
used as a macro argument name. Don't append "..." to namebuf
|
||
for varargs macros. After we're done scanning, go through
|
||
namebuf and make it NUL separated, not comma separated.
|
||
(_cpp_compare_defs): Remove register tag from variables.
|
||
Expect defn->argnames to be NUL separated.
|
||
(_cpp_dump_definition): Expect defn->argnames to be NUL
|
||
separated and in forward order.
|
||
* cpphash.h: Update documentation of argnames field.
|
||
|
||
2000-03-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* builtins.c (expand_builtin_strlen): Be prepared for strlensi
|
||
to fail. Don't pre-expand the source operand.
|
||
|
||
* i386.md (strlensi): Initialize eoschar and align before use.
|
||
|
||
2000-03-08 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* expr.c (expand_expr, case ARRAY_REF): Still check for missing
|
||
CONSTRUCTOR element.
|
||
|
||
2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com>
|
||
|
||
* mips.c (mips_expand_prologue): If the last
|
||
named argument is the vararg marker "va_list", treat it as
|
||
an unnamed argument.
|
||
|
||
2000-03-08 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* dbxout.c (dbxout_parms): When correcting for promoted
|
||
big-endian parameters, use the mode of the DECL_RTL rather
|
||
than UNITS_PER_WORD.
|
||
|
||
2000-03-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* c-common.h (make_fname_decl): Declare.
|
||
* c-common.c (make_fname_decl): Define.
|
||
(declare_hidden_char_array): Remove.
|
||
(declare_function_name): Use make_fname_decl.
|
||
* c-decl.c (c_make_fname_decl): New function.
|
||
(init_decl_processing): Set make_fname_decl.
|
||
|
||
Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* cccp.c (handle_directive): Initialize backslash_newlines_p.
|
||
|
||
2000-03-07 Philipp Thomas <pthomas@suse.de>
|
||
|
||
* po/POTFILES.in: Remove cppalloc.c from file list.
|
||
|
||
2000-03-07 Steve Chamberlain <sac@pobox.com>
|
||
|
||
* pj.c (pj_expand_prologue): current_function->args_info is
|
||
now current_function_args_info.
|
||
|
||
* pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
|
||
LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
|
||
ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
|
||
|
||
2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
|
||
output as hexadecimal rather than the default octal.
|
||
|
||
2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (special_symbol): Fix thinko in previous commit.
|
||
|
||
2000-03-07 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppexp.c (struct operation, left_shift, right_shift,
|
||
cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
|
||
"int"s to "unsigned int"s.
|
||
* cpplib.c (detect_if_not_defined, do_assert, do_unassert):
|
||
Similarly.
|
||
* cpplib.h: Update for above.
|
||
* mkdeps.c (deps_init, deps_calc_target): Cast pointers
|
||
returned from allocations.
|
||
|
||
* cppinit.c (opt_comp, parse_options): New functions.
|
||
(handle_option): Use parse_option to parse a single command
|
||
line option, that possibly takes an argument.
|
||
(cpp_handle_options): Sort the array of command line options on
|
||
first invocation (non-ASCII hosts only).
|
||
(print_help): Update.
|
||
|
||
2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
|
||
backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>.
|
||
|
||
* cppfiles.c (_cpp_find_include_file): Make sure ih->name is
|
||
initialized.
|
||
* cppinit.c (cpp_cleanup): Free imp->nshort also.
|
||
|
||
* cpperror.c (cpp_print_containing_files,
|
||
cpp_print_file_and_line, v_cpp_message): Rename to
|
||
print_containing_files, print_file_and_line, and v_message.
|
||
* cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
|
||
to _cpp_parse_expr, parse_escape, and lex.
|
||
(parse_charconst): Remove broken multibyte support.
|
||
* cppfiles.c (include_hash): Make static.
|
||
(cpp_included): New function.
|
||
(merge_include_chains, find_include_file, finclude,
|
||
simplify_pathname): Rename to _cpp_merge_include_chains,
|
||
_cpp_find_include_file, _cpp_read_include_file, and
|
||
_cpp_simplify_pathname.
|
||
* cpphash.c (cpp_lookup, free_definition, delete_macro,
|
||
cpp_install, create_definition, macroexpand, compare_defs,
|
||
dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
|
||
_cpp_delete_macro, _cpp_install, _cpp_create_definition,
|
||
_cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
|
||
* cppinit.c (cpp_handle_option): Rename to handle_option, make
|
||
static.
|
||
* cpplib.c: Remove extern prototype of cpp_parse_expr.
|
||
|
||
* cpphash.h: Update prototypes.
|
||
* cpplib.h: Likewise. Prototype _cpp_parse_expr here.
|
||
|
||
2000-03-07 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
|
||
PTRDIFF_TYPE should be based solely on Pmode.
|
||
(SIZE_TYPE): ditto.
|
||
|
||
2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* rtl.h (rtunion_def): Constify member `rtstr'.
|
||
(emit_line_note_after, emit_line_note, emit_line_note_force,
|
||
emit_note, decode_asm_operands): Constify.
|
||
|
||
* cse.c (canon_hash): Likewise.
|
||
|
||
* dbxout.c (dbxout_block): Likewise.
|
||
|
||
* diagnostic.c (file_and_line_for_asm, v_error_for_asm,
|
||
v_warning_for_asm): Likewise.
|
||
|
||
* dwarfout.c (function_start_label): Likewise.
|
||
|
||
* emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
|
||
emit_line_note_force): Likewise.
|
||
|
||
* final.c (last_filename, asm_insn_count, final_scan_insn,
|
||
output_source_line): Likewise.
|
||
|
||
* function.h (struct emit_status): Likewise.
|
||
|
||
* gcse.c (hash_expr_1): Likewise.
|
||
|
||
* genattr.c (gen_attr, main): Likewise.
|
||
|
||
* genattrtab.c (struct function_unit, current_alternative_string,
|
||
write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
|
||
attr_numeral, check_attr_test, check_attr_value,
|
||
convert_set_attr_alternative, convert_set_attr,
|
||
compute_alternative_mask, simplify_by_exploding, gen_attr,
|
||
gen_unit): Likewise.
|
||
|
||
* genflags.c (gen_insn): Likewise.
|
||
|
||
* gengenrtl.c (type_from_format): Likewise.
|
||
|
||
* genopinit.c (gen_insn): Likewise.
|
||
|
||
* genoutput.c (n_occurrences, process_template, process_template):
|
||
Likewise.
|
||
|
||
* ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
|
||
Likewise.
|
||
|
||
* ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
|
||
Likewise.
|
||
|
||
* ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
|
||
ggc_set_mark, ggc_get_size): Likewise.
|
||
|
||
* objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
|
||
|
||
* optabs.c (init_one_libfunc): Likewise.
|
||
|
||
* output.h (assemble_start_function): Likewise.
|
||
|
||
* recog.c (decode_asm_operands): Likewise.
|
||
|
||
* toplev.c (rest_of_compilation): Likewise.
|
||
|
||
* tree.h (emit_line_note_after, emit_line_note,
|
||
emit_line_note_force): Likewise.
|
||
|
||
* varasm.c (asm_output_bss, asm_output_aligned_bss,
|
||
asm_emit_uninitialised, assemble_start_function,
|
||
assemble_variable, const_hash, compare_constant_1,
|
||
find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
|
||
|
||
* xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
|
||
|
||
* alpha/alpha.md (call_vms, call_value_vms): Likewise.
|
||
|
||
* arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
|
||
arm_dllimport_name_p): Likewise.
|
||
|
||
* arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
|
||
Likewise.
|
||
|
||
* arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
|
||
|
||
* arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
|
||
arm_mark_dllexport, arm_mark_dllimport,
|
||
arm_pe_encode_section_info): Likewise.
|
||
|
||
* arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
|
||
ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* arm/thumb.c (thumb_function_prologue): Likewise.
|
||
|
||
* arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
|
||
|
||
* i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
|
||
ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
|
||
|
||
* i386/i386-protos.h (asm_output_function_prefix): Likewise.
|
||
|
||
* i386/i386.c (asm_output_function_prefix): Likewise.
|
||
|
||
* i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
|
||
ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
|
||
ASM_OUTPUT_SECTION_NAME): Likewise.
|
||
|
||
* i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* m32r/m32r.c (m32r_encode_section_info): Likewise.
|
||
|
||
* mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* mcore/mcore.c (mcore_encode_section_info): Likewise.
|
||
|
||
* mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
|
||
|
||
* mips/mips.md (movdi, movsi): Likewise.
|
||
|
||
* mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
|
||
|
||
* ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
|
||
ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
|
||
output_mi_thunk, output_toc): Likewise.
|
||
|
||
* rs6000/rs6000.md (movsi): Likewise.
|
||
|
||
* rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
|
||
|
||
* tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
|
||
|
||
* v850/v850.c (print_operand, print_operand_address,
|
||
v850_encode_data_area): Likewise.
|
||
|
||
2000-03-07 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.md (zero_extendsidi2): Always force operand
|
||
one to memory for mips16.
|
||
|
||
Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
|
||
(struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
|
||
(attribute_hash_list, type_hash_canon): hashcode is now unsigned.
|
||
(type_hash_lookup, type_hash_add, type_hash_list): Likewise.
|
||
(min_precision): Result is unsigned.
|
||
(add_double, neg_double, mul_double): Low word is unsigned.
|
||
(lshift_double, rshift_double, lrotate_double): Likewise.
|
||
(rrotate_double, div_and_round_double): Likewise.
|
||
(tree_floor_log2, compare_tree_int): New functions.
|
||
(preserve_rtl_expr_temps): New declaration.
|
||
* c-common.c (declare_hidden_char_array): Use compare_tree_int.
|
||
(decl_attributes): Use tree_log2 to find alignment.
|
||
Check for TREE_INT_CST_HIGH for format args.
|
||
(min_precision): Now unsigned.
|
||
Use tree_floor_log2.
|
||
(truthvalue_conversion): Delete long-disabled code.
|
||
* c-decl.c (finish_struct): Clean up tests on field width.
|
||
(finish_function): Use compare_tree_int.
|
||
* c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
|
||
* c-typeck.c (comptypes): Use tree_int_cst_equal.
|
||
(default_conversion, digest_init): Use compare_tree_int.
|
||
(build_binary_op): Use integer_all_onesp and compare_tree_int.
|
||
Fix type errors in forming masks.
|
||
* calls.c (initialize_argument_information): Use compare_tree_int.
|
||
* dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
|
||
* except.c (expand_eh_region_start_tree): Use compare_tree_int.
|
||
* expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
|
||
(store_field): Use compare_tree_int.
|
||
(expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
|
||
(expand_expr, case ARRAY_REF): Use compare_tree_int.
|
||
(do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
|
||
(do_store_flag): Use compare_tree_int.
|
||
* fold-const.c (encode, decode): Low part is always unsigned.
|
||
(force_fit_type, add_double, neg_double, mul_double): Likewise.
|
||
(lshift_double, rshift_double, lrotate_double): Likewise.
|
||
(rrotate_double, div_and_round_double, int_const_binop): Likewise.
|
||
(fold_convert): Use compare_tree_int.
|
||
(operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
|
||
(invert_truthvalue, case INTEGER_CST): Likewise.
|
||
(fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
|
||
* mkdeps.c (deps_dummy_targets): Make I unsigned.
|
||
* rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
|
||
(lshift_double, rshift_double, lrotate_double, rrotate_double):
|
||
Likewise.
|
||
* stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
|
||
(expand_end_case): Use compare_tree_int.
|
||
(estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
|
||
* stor-layout.c (mode_for_size_tree): Use compare_tree_int.
|
||
(layout_decl): Likewise.
|
||
(layout_record, layout_union): Make sizes unsigned.
|
||
(layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
|
||
(layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
|
||
* tree.c (struct type_hash): hashcode is unsigned.
|
||
(build_type_attribute_variant, type_hash_list): Likewise.
|
||
(type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
|
||
(attribute_hash_list, build_array_type, build_method_type): Likewise.
|
||
(build_complex_type): Likewise.
|
||
(real_value_from_int_cst): Remove unneeded casts.
|
||
(integer_all_onesp): Add casts.
|
||
(tree_floor_log2, compare_tree_int): New functions.
|
||
(build_index_type): Use tree_int_cst_sgn.
|
||
* varasm.c (assemble_variable): Use compare_tree_int.
|
||
|
||
2000-03-06 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cpphash.c (collect_expansion): Also catch ## at start of macro.
|
||
|
||
* varasm.c (make_decl_rtl): Don't add a number to members of
|
||
local classes.
|
||
(make_function_rtl): Likewise.
|
||
|
||
2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* gcse.c (compute_can_copy): Adjust if/else blocks from rth's
|
||
patch from 2000-01-28.
|
||
|
||
2000-03-06 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/sh/sh.c: (barrier_align): Handle a delay slot that is
|
||
filled with an insn from the jump target.
|
||
|
||
2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
|
||
(c4x_external_ref): Likewise.
|
||
* config/c4x/c4x.c (struct name_list): Likewise.
|
||
|
||
1999-12-16 Ben Collins <bcollins@debian.org>
|
||
|
||
* Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
|
||
argument to genmultilib.
|
||
* genmultilib: accept new MULTILIB_EXCLUSIONS option and output
|
||
the contents into the multilib.h header.
|
||
* gcc.c: Declare multilib_exclusions for the specs file.
|
||
(set_multilib_dir): Use it.
|
||
(print_multilib_info): Likewise.
|
||
* t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
|
||
to pass to genmultilib.
|
||
|
||
2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.c (built_in_class_names, built_in_names): Constify a
|
||
char*.
|
||
|
||
* gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
|
||
int.
|
||
(_mcleanup): Ensure value matches format specifier in sprintf.
|
||
|
||
* cpphash.c (special_symbol): Don't needlessly cast away
|
||
const-ness.
|
||
|
||
* cppinit.c (base_name): Delete unused prototype.
|
||
|
||
* mkdeps.c (deps_init): Make definition K&R safe.
|
||
|
||
* tree.h (built_in_class_names, built_in_names): Constify a
|
||
char*.
|
||
|
||
2000-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
|
||
floating point instructions for epilogue delay.
|
||
|
||
* config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
|
||
to gas if it supports .register pseudo.
|
||
|
||
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
|
||
LONG_DOUBLE_TYPE_SIZE if not defined.
|
||
Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
|
||
LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
|
||
* real.c: Likewise.
|
||
* gengenrtl.c: Likewise.
|
||
* print-rtl.c: Likewise.
|
||
* rtl.c: Likewise.
|
||
* config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
|
||
MASK_LONG_DOUBLE_128.
|
||
* config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
|
||
* config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
|
||
* config/sparc/linux64 (TARGET_DEFAULT): Likewise.
|
||
(SUBTARGET_SWITCHES): Define.
|
||
(CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
|
||
with -mlong-double-128.
|
||
(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
|
||
(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
|
||
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
|
||
(CC1_SPEC): Include -mlong-double-{64,128} as needed.
|
||
* config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
|
||
(CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
|
||
with -mlong-double-128.
|
||
(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
|
||
(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
|
||
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
|
||
* config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
|
||
TARGET_LONG_DOUBLE_128): Define.
|
||
* config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
|
||
* config/sparc/sparc.c (sparc_override_options): Disallow 64bit
|
||
long double on TARGET_ARCH64.
|
||
|
||
2000-03-06 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* function.c (free_temps_for_rtl_expr): Don't free slots
|
||
that have been pushed into a higher level.
|
||
|
||
Revert this patch:
|
||
2000-03-05 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
2000-03-05 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* basic-block.h (ALLOCA_REG_SET): Remove.
|
||
(INITIALIZE_REG_SET): New macro.
|
||
* flow.c (update_life_info): Use it.
|
||
(calculate_global_regs_live): Likewise.
|
||
(propagate_block): Likewise.
|
||
* global.c (build_insn_chain): Likewise.
|
||
* haifa-sched.c (schedule_region): Likewise.
|
||
|
||
2000-03-05 Stephane Carrez <stcarrez@worldnet.fr>
|
||
|
||
* dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
|
||
(ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
|
||
(DWARF_ARANGES_PAD_SIZE): New define.
|
||
(output_aranges): Use it to pad the address range header.
|
||
(DWARF_ROUND): Fix for non power of 2 rounding.
|
||
|
||
2000-03-05 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* mkdeps.c (deps_calc_target): Remove incorrect 'const'.
|
||
|
||
2000-03-05 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.def (RTL_EXPR): Update documentation.
|
||
* tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
|
||
* expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
|
||
* function.c (preserve_rtl_expr_temp): New function.
|
||
(preserve_rtl_expr_temps): Likewise.
|
||
(preserve_rtl_expr_result): Use it.
|
||
|
||
Revert this patch:
|
||
2000-03-04 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net>
|
||
|
||
* regmove.c (copy_src_to_dest) Do not create src->dest move
|
||
for unchanging destination.
|
||
|
||
2000-03-04 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* function.h (struct sequence_stack): Remove rtl_expr.
|
||
(struct emit_staus): Likewise.
|
||
(seq_rtl_expr): Remove.
|
||
* tree.h (free_temps_for_rtl_expr): Don't declare.
|
||
(start_sequence_for_rtl_expr): Likewise.
|
||
* rtl.h (preserve_rtl_expr_result): Likewise.
|
||
* emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
|
||
(start_sequence_for_rtl_expr): Remove.
|
||
(push_topmost_sequence): Don't save sequence_rtl_expr.
|
||
(pop_topmost_sequence): Remove comment about not restoring it.
|
||
(end_sequence): Don't set seq_rtl_expr.
|
||
(init_emit): Don't initialize it.
|
||
(mark_sequence_stack): Don't mark it.
|
||
(mark_emit_status): Likewise.
|
||
* except.c (protect_with_terminate): Use
|
||
start_sequence_for_rtl_expr, not start_sequence.
|
||
* expr.c (expand_expr, case RTL_EXPR): Don't call
|
||
preserve_rtl_expr_result or free_temps_for_rtl_expr.
|
||
* function.c (assign_stack_temp_for_type): Don't set rtl_expr.
|
||
(preserve_rtl_expr_result): Remove.
|
||
(free_temps_for_rtl_expr): Likewise.
|
||
(pop_temp_slots): Likewise.
|
||
(mark_temp_slot): Don't mark the rtl_expr.
|
||
* stmt.c (expand_start_stmt_expr): Use start_sequence, not
|
||
start_sequence_for_rtl_expr.
|
||
|
||
2000-03-04 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* mkdeps.c, mkdeps.h: New files.
|
||
* po/POTFILES.in: Add them.
|
||
* Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
|
||
(cpplib.o, cppinit.o): Depend on mkdeps.h.
|
||
(mkdeps.o): New target.
|
||
|
||
* cppfiles.c: Delete deps_output.
|
||
* cppinit.c: Include mkdeps.h. Delete known_suffixes,
|
||
OBJECT_SUFFIX, and base_name.
|
||
(cpp_cleanup): Use deps_free. Free ihash->name when clearing
|
||
the include hash.
|
||
(initialize_dependency_output): Use deps_init,
|
||
deps_add_target, deps_calc_target, and deps_add_dep. Remove
|
||
all the unnecessary string bashing.
|
||
(cpp_finish): Use deps_write. Remove an unnecessary nesting
|
||
level.
|
||
* cpplib.c (do_include): Use deps_add_dep.
|
||
* cpplib.h (struct cpp_reader): Replace deps_buffer,
|
||
deps_allocated_size, deps_size, deps_column members with
|
||
single pointer to a struct deps. Delete prototype of
|
||
deps_output.
|
||
|
||
* cppinit.c: Fix thinko in previous patch.
|
||
|
||
Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
|
||
* stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
|
||
(mode_for_size_tree): New function.
|
||
(layout_decl, layout_type): Call it and clean up BLKmode checks.
|
||
* tree.h (mode_for_size_tree): New declaration.
|
||
|
||
* toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
|
||
|
||
2000-03-04 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* stmt.c (is_body_block): Move...
|
||
* dwarfout.c, dwarf2out.c: ...from here.
|
||
* tree.h: Declare it.
|
||
* emit-rtl.c (remove_unnecessary_notes): Don't remove the body block.
|
||
* final.c (final_start_function): Do call remove_unnecessary_notes
|
||
when scheduling.
|
||
|
||
2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
|
||
|
||
* cpplib.h (_dollar_ok): New macro.
|
||
(is_idchar, is_idstart): Use it.
|
||
(IStable): Rename to _cpp_IStable. Declare it const if
|
||
gcc >=2.7 or C99. Delete all references to FAKE_CONST.
|
||
(is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
|
||
is_space): Update for renamed IStable.
|
||
|
||
* cppinit.c: Delete all references to FAKE_CONST and CAT
|
||
macros. Define init_IStable as empty macro if gcc >=2.7 or
|
||
C99. Change TABLE() to ISTABLE and hardcode name of table.
|
||
(cpp_start_read): Don't change the IStable based on
|
||
dollars_in_ident.
|
||
|
||
* cpphash.c (unsafe_chars): Add pfile argument. All callers
|
||
changed. Handle '$' for char1 correctly.
|
||
* cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
|
||
|
||
* cppexp.c (tokentab2): Make const.
|
||
(cpp_lex): Make toktab const.
|
||
* cppinit.c (include_defaults_array): Make const.
|
||
(initialize_standard_includes): Make default_include const.
|
||
|
||
2000-03-03 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
|
||
(dwarf2out_decl): Functions can now have DECL_IGNORED_P.
|
||
(gen_decl_die): Likewise.
|
||
* dwarfout.c (dwarfout_file_scope_decl): Likewise.
|
||
(output_decl): Likewise.
|
||
|
||
* varasm.c (make_function_rtl): If we change the name used in the
|
||
rtl, update DECL_ASSEMBLER_NAME accordingly.
|
||
(make_decl_rtl): Likewise.
|
||
|
||
* toplev.c (rest_of_compilation): Tweak formatting.
|
||
|
||
* toplev.c (rest_of_compilation): find_loop_tree_blocks before
|
||
remove_unnecessary_notes.
|
||
(debug_ignore_block): New fn.
|
||
* toplev.h: Declare it.
|
||
* emit-rtl.c (remove_unnecessary_notes): Call it.
|
||
* dwarf2out.c (dwarf2out_ignore_block): New fn.
|
||
* dwarf2out.h: Declare it.
|
||
* final.c (final_start_function): Don't call remove_unnecessary_notes
|
||
if we did insn scheduling.
|
||
|
||
2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppinit.c (cpp_handle_option): Set opts->pedantic directly.
|
||
* cpplib.h: Delete SET_CPP_PEDANTIC.
|
||
|
||
Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
|
||
result is a RECORD_TYPE.
|
||
|
||
2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
|
||
|
||
* mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
|
||
|
||
2000-03-03 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
|
||
addition over compliments over shifts.
|
||
|
||
Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* reload1.c (reload_combine_note_use): Handle return register USEs.
|
||
REG case: Handle multi-hard-register hard regs.
|
||
|
||
Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* md.texi: Document use of '*' in insn pattern name.
|
||
|
||
2000-03-03 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* calls.c (special_function_p): operator new may not be malloc-like.
|
||
|
||
* gcse.c (dump_hash_table): Really fix error in last change.
|
||
|
||
2000-03-02 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* avr.c (print_operand): Use print_operand_address instead of
|
||
output_addr_const.
|
||
* avr/libgcc.S: Cleanup code.
|
||
|
||
2000-03-02 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_emit_set_const_1): Also try c + small constant.
|
||
|
||
2000-03-02 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (TYPE_ALIGN_UNIT): New macro.
|
||
|
||
2000-03-02 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* i386.c: (constant_call_address_operand): Reject CONST_INT.
|
||
|
||
2000-03-02 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
|
||
for the buffer.
|
||
(SET_CPP_PEDANTIC): New macro.
|
||
* cpplib.c (do_include): Don't bother checking system_header_p.
|
||
(do_warning, do_ident, do_assert, do_unassert): Likewise.
|
||
* cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
|
||
|
||
* function.h (struct expr_status): Add x_arg_space_so_far.
|
||
(arg_space_so_far): New macro.
|
||
* expr.c (init_expr): Initialize it.
|
||
* calls.c (emit_call_1): Reset it.
|
||
(compute_argument_block_size, expand_call): Use it.
|
||
(expand_call, store_one_arg): Increment it.
|
||
|
||
Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* varasm.c (output_constant): Strip off a CONVERT_EXPR to
|
||
a UNION_TYPE.
|
||
|
||
2000-03-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (cpp_read_file): New function.
|
||
|
||
* cpphash.c (collect_expansion): Make sure to reset last_token
|
||
to NORM when we hit a string. Handle trailing whitespace
|
||
properly when the expansion is empty.
|
||
(create_definition): Disable line commands while parsing the
|
||
directive line.
|
||
(dump_definition): If pfile->lineno == 0, output a line
|
||
command ahead of the dump, and add a trailing newline.
|
||
|
||
* cppinit.c (append_include_chain): Add fifth argument, which
|
||
indicates whether or not system headers are C++ aware.
|
||
(initialize_standard_includes): New function,
|
||
broken out of read_and_prescan. Pass 'cxx_aware' value from
|
||
the include_defaults_array on to append_include_chain.
|
||
(dump_special_to_buffer): Const-ify char array.
|
||
(builtin_array): Don't dump __BASE_FILE__.
|
||
(cpp_start_read): Use cpp_read_file. Reorder code for
|
||
clarity. Don't output line commands here for -D/-A/-U
|
||
switches. Don't call deps_output for files included with
|
||
-include or -imacros.
|
||
|
||
* cpplib.c (do_define): Don't pay any attention to the second
|
||
argument.
|
||
(cpp_expand_to_buffer): Disable line commands while scanning.
|
||
(output_line_command): Work in the file buffer.
|
||
* cpplib.h: Remove no_record_file flag from struct cpp_reader.
|
||
Fix formatting of comments. Prototype cpp_read_file.
|
||
|
||
Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
|
||
reference the language-equivalent of sizetype.
|
||
* c-typeck.c (comptypes): Treat sizetype like its language equivalent.
|
||
* fold-const.c (size_binop, size_diffop): Put back checks.
|
||
* gcse.c (dump_hash_table): Fix minor error in last change.
|
||
* stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
|
||
Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
|
||
all sizetypes.
|
||
|
||
Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (expand_call) Do not attempt to combine stack adjustments
|
||
with inhibit_defer_pop set.
|
||
|
||
2000-03-01 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* stor-layout.c (layout_decl): Allow front-ends to explicitly set
|
||
the DECL_SIZE for a FIELD_DECL.
|
||
|
||
2000-03-01 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/inclhack.tpl: remove unused symlinks
|
||
* fixinc/README: GCC Maintainer info
|
||
* fixinc/inclhack.sh: regen
|
||
* fixinc/fixincl.sh: regen
|
||
|
||
2000-03-01 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (collect_expansion): Trim trailing white space
|
||
from macro definitions, but don't go past the last insertion
|
||
point.
|
||
|
||
Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (mulqi3): New pattern.
|
||
|
||
2000-02-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
|
||
token types.
|
||
(struct cpp_reader): Add parsing_if_directive and
|
||
parsing_define_directive flags.
|
||
(struct cpp_options): Remove output_conditionals flag.
|
||
(check_macro_name): Delete prototype.
|
||
|
||
* cpphash.h (struct macrodef): Delete.
|
||
(struct reflist): Separate from struct definition.
|
||
(struct definition): Remove unused fields. Add column number.
|
||
(create_definition): Returns a DEFINITION *. Takes a
|
||
cpp_reader * and an int.
|
||
|
||
* cpphash.c (SKIP_WHITE_SPACE): Delete.
|
||
(PEEKC): Copy defn from cpplib.c.
|
||
(rest_extension, REST_EXTENSION_LENGTH): Delete.
|
||
(struct arg): New.
|
||
(struct arglist): Simplify.
|
||
(collect_expansion): Rewrite. Get tokens by calling
|
||
cpp_get_token. Add more error checking.
|
||
(collect_formal_parameters): New function, broken out of
|
||
create_definition and reworked to use get_directive_token.
|
||
(create_definition): All real work is now in collect_expansion
|
||
and collect_formal_parameters. do_define handles finding the
|
||
macro name. Return a DEFINITION, not a MACRODEF.
|
||
(macroexpand): Replace bcopy with memcpy throughout. Replace
|
||
character-at-a-time copy loop with memcpy and pointer increments.
|
||
(compare-defs): d1->argnames / d2->argnames might be null.
|
||
|
||
* cpplib.c (copy_rest_of_line): Delete function.
|
||
(skip_rest_of_line): Do all the work ourselves.
|
||
(skip_string): New function.
|
||
(parse_string): Use skip_string.
|
||
(get_macro_name): New function.
|
||
(check_macro_name): Delete.
|
||
(copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
|
||
(cpp_skip_hspace): Use CPP_BUMP_LINE.
|
||
(handle_directive): ICE if we're called on a macro buffer.
|
||
(do_define): Determine macro name and type (funlike/objlike)
|
||
here. Expunge all uses of MACRODEF.
|
||
(cpp_push_buffer): Set line_base to NULL.
|
||
(do_undef, read_line_number): Don't worry about getting a POP token.
|
||
(eval_if_expression): Set/reset parsing_if_directive around
|
||
cpp_parse_expr. Don't clear only_seen_white.
|
||
(skip_if_group): Remove output_conditionals logic. Use
|
||
skip_rest_of_line.
|
||
(cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
|
||
tokens under appropriate conditions.
|
||
(cpp_unassert): Call do_unassert not do_assert. Oops.
|
||
|
||
* cppexp.c (parse_defined): New function, break out of
|
||
cpp_lex.
|
||
(cpp_lex): We now get CPP_ASSERTION tokens and can check them
|
||
ourselves, with cpp_defined.
|
||
* cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
|
||
|
||
* gcc.dg/20000209-2.c: Turn off -pedantic-errors.
|
||
* gcc.dg/strpaste-2.c: New.
|
||
|
||
2000-02-29 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* fold-const.c (size_binop): Don't asert inputs are the same and
|
||
have TYPE_IS_SIZETYPE set.
|
||
(size_diffop): Likewise.
|
||
|
||
2000-02-29 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarfout.c (output_block): Output abstract blocks even if they
|
||
don't have TREE_ASM_WRITTEN set.
|
||
|
||
* calls.c (emit_library_call): Check for null REG.
|
||
|
||
2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
|
||
|
||
* c-decl.c (current_function_decl): Move to toplev.c.
|
||
(init_decl_processing): Don't add current_function_decl as a ggc
|
||
root here.
|
||
* dbxout.c (dbxout_symbol): Change return type to int.
|
||
(dbxout_symbol_location, dbxout_syms): Likewise.
|
||
(dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
|
||
any locals. Use current_function_func_begin_label if set.
|
||
* dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
|
||
* dwarf2out.c (dwarf2out_begin_prologue): Set
|
||
current_function_func_begin_label.
|
||
* final.c (final_start_function): Reset it.
|
||
* toplev.c (current_function_decl): Define it here.
|
||
(current_function_func_begin_label): New variable.
|
||
(main): Add both as ggc roots.
|
||
* tree.h (current_function_func_begin_label): Declare.
|
||
|
||
Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* gcse.c: Cleanups throughout: mostly white-space, but also
|
||
some minor rearrangement of code.
|
||
|
||
Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* calls.c (emit_library_call): Do not abort if FUNCTION_ARG
|
||
returns a PARALLEL. Use emit_group_load and use_group_regs
|
||
as needed.
|
||
(emit_library_call_value): Similarly.
|
||
|
||
* pa/t-pa: Use quadlib.c instead of quadlib.asm.
|
||
* pa/quadlib.asm: Remove.
|
||
* pa/quadlib.c: New file.
|
||
|
||
* configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
|
||
* configure: Rebuilt.
|
||
|
||
2000-02-29 Philip Blundell <pb@futuretv.com>
|
||
|
||
* config/arm/conix-elf.h: New file.
|
||
* configure.in (arm*-*-conix*): New configuration.
|
||
* configure: Regenerate.
|
||
|
||
2000-02-28 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (gen_block_die): Output abstract blocks even if they
|
||
don't have TREE_ASM_WRITTEN set.
|
||
|
||
Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* Eliminate DECL_FIELD_SIZE.
|
||
* builtins.c (built_in_class_names, built_in_names): New variables.
|
||
* c-decl.c (finish_struct): Set specified size in DECL_SIZE.
|
||
* expr.c (expand_expr, case COMPONENT_REF): Get field size from
|
||
DECL_SIZE, not DECL_FIELD_SIZE.
|
||
* print-tree.c (print_node): Remove code that prints extra blank
|
||
lines in some cases.
|
||
Properly handle inline and builtin function cases.
|
||
* stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
|
||
* tree.h (built_in_class_named, built_in_names): New declarations.
|
||
(union tree_decl): Rename internal unions to u1 and u2 and change
|
||
some of their components.
|
||
Add new field built_in_class.
|
||
(DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
|
||
Reflect above changes.
|
||
(DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
|
||
(DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
|
||
* objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
|
||
(encode_field_decl): Likewise; also remove obsolete test for bitfield.
|
||
|
||
2000-02-28 Dmitri Makarov <dim@windriver.com>
|
||
|
||
* extend.texi: Document ARM's support for long/short calls.
|
||
|
||
* invoke.texi: Document ARM's -mlong-calls command line switch.
|
||
|
||
* config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
|
||
(arm_encode_call_attribute): Add prototype.
|
||
(arm_set_default_type_attribute): Add prototype.
|
||
(arm_strip_name_encoding): Add prototype.
|
||
|
||
* config/arm/arm.c (arm_init_cumulative_args): replace
|
||
initialisation og 'long_calls' field with initialisation of
|
||
'call_cookie' field.
|
||
(enum arm_pragma_enum): New enum.
|
||
(arm_pragma_long_calls): New static variable.
|
||
(arm_process_pragma): Also process "#pragma long_calls_off".
|
||
(arm_valid_type_attribute_p): Accept short_call attribute.
|
||
(arm_comp_type_attributes): Check long/short call attributes.
|
||
(arm_encode_call_attribute): New function: Encode long_call
|
||
or short_call attribute in function name.
|
||
(arm_set_default_type_attributes): New function: Assign
|
||
default attributes to newly defined type.
|
||
(current_file_function_operand): New function: Return true if
|
||
the symbol is a function which has already been compiled.
|
||
(arm_is_longcall_p): New function: Return true if the
|
||
indicated function should be called via a long call.
|
||
(arm_get_strip_length): New function. Returns number of
|
||
prefix characters to be stripped from a function's name.
|
||
(arm_strip_name_encoding): New function. Strip prefix characters
|
||
from a function's name.
|
||
|
||
* config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
|
||
with 'call_cookie'.
|
||
(SHORT_CALL_FAG_CHAR): Define.
|
||
(LONG_CALL_FAG_CHAR): Define.
|
||
(ENCODED_SHORT_CALL_ATTR_P): Define.
|
||
(ENCODED_LONG_CALL_ATTR_P): Define.
|
||
(ARM_NAME_ENCODING_LENGTHS): Define.
|
||
(STRIP_NAME_ENCODING): Define.
|
||
(ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
|
||
(ARM_ENCODE_CALL_TYPE): Define.
|
||
(ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
|
||
(ARM_DECLARE_FUNCTION_SIZE): Define.
|
||
(SET_DEFAULT_TYPE_ATTRIBUTES): Define.
|
||
|
||
* config/arm/arm.md (call): Call arm_is_longcall_p to decide
|
||
if a long call is needed.
|
||
(call_value): Ditto.
|
||
(call_symbol): Ditto.
|
||
|
||
* config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
|
||
ARM_DECLARE_FUNCTION_SIZE.
|
||
|
||
* config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
|
||
(SUBTARGET_NAME_ENCODING_LENGTHS): Define.
|
||
(ARM_STRIP_NAME_ENCODING): Undefine.
|
||
(STRIP_NAME_ENCODING): Undefine.
|
||
(ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
|
||
(ASM_DECLARE_FUNCTION_NAME): Ditto.
|
||
(ASM_OUTPUT_COMMON): Ditto.
|
||
(ASM_DECLARE_OBJECT_NAME): Ditto.
|
||
|
||
* config/arm/pe.c (arm_dllexport_name_p): Check for
|
||
ARM_PE_FLAG_CHAR.
|
||
(arm_dllimport_name_p): Ditto.
|
||
(arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
|
||
(arm_mark_dllimport): Ditto.
|
||
|
||
Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
|
||
|
||
2000-02-28 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
|
||
|
||
2000-02-28 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
|
||
* cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
|
||
NO_BUILTIN_WCHAR_TYPE is not defined.
|
||
(CPP_WCHAR_TYPE): Delete.
|
||
* cccp.c (main): Don't change wchar_type if cplusplus.
|
||
(special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
|
||
|
||
2000-02-28 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
|
||
|
||
Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com>
|
||
|
||
* config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
|
||
(ASM_WEAKEN_LABEL): Define.
|
||
|
||
Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* expr.c (store_constructor): Do not emit USE.
|
||
* rtl.h (stupid_life_analysis): Remove.
|
||
|
||
Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* function.c (number_blocks): Reset next_block_index based on
|
||
what debugging format is used, not what is defined.
|
||
|
||
* lcm.c: Minor reformatting throughout.
|
||
(reg_dies, reg_becomes_live): Properly handle multiple hard regs.
|
||
|
||
* toplev.c (rest_of_compilation): Account for time in
|
||
optimize_mode_switching.
|
||
|
||
* jump.c (jump_optimize_1): Don't call delete_barrier_successors
|
||
if only marking labels.
|
||
|
||
Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (expand_call): Attempt to combine stack adjustments with
|
||
pending stack adjustments.
|
||
|
||
Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* loop.c (reg_in_basic_block_p): Don't abort when falling through
|
||
to the end of the function.
|
||
|
||
2000-02-27 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* emit-rtl.c (remove_unnecessary_notes): Remove notes for empty
|
||
blocks.
|
||
* final.c (next_block_index): Remove.
|
||
(max_block_depth): Likewise.
|
||
(pending_blocks): Likewise.
|
||
(init_final): Don't initialize them.
|
||
(final_start_function): Don't set next_block_index. Set up
|
||
BLOCK_NUMBER.
|
||
(final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
|
||
* function.h (number_blocks): New function.
|
||
* function.c (get_block_vector): New function.
|
||
(identify_blocks): Use it.
|
||
(reorder_blocks): Set NOTE_BLOCK.
|
||
(number_blocks): New function.
|
||
* tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
|
||
* tree.h (BLOCK_NUMBER): New macro.
|
||
(tree_block): Add block_num field.
|
||
* dbxout.c (next_block_number): Remove.
|
||
(dbxout_init): Don't set it.
|
||
(dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
|
||
set. Use BLOCK_NUMBER, rather than next_block_num, to determine
|
||
block numbers.
|
||
* toplev.c (rest_of_compilation): Always call
|
||
find_loop_tree_blocks. Fix indentation.
|
||
* dwarf2out.c (next_block_number): Remove.
|
||
(gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
|
||
to determine block numbers.
|
||
(gen_inlined_subroutine_die): Likewise.
|
||
(gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
|
||
(decls_for_scope): Don't increment next_block_number.
|
||
* dwarfout.c (next_block_number): Remove.
|
||
(output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
|
||
to determine block numbers.
|
||
(output_inlined_subroutine_die): Likewise.
|
||
(output_block): Only output blocks that have TREE_ASM_WRITTEN set.
|
||
(output_decls_for_scope): Don't increment next_block_number.
|
||
* sdbout.c (next_block_number): Remove.
|
||
(sdbout_block): Use BLOCK_NUMBER.
|
||
(sdbout_begin_block): Simplify.
|
||
* xcoffout.c (next_block_number): Remove.
|
||
(xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
|
||
(xcoffout_begin_block): Don't set next_block_number.
|
||
(xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
|
||
next_block_number.
|
||
|
||
Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* builtins.c (c_strlen): Use size_diffop and return ssizetype value.
|
||
(expand_builtin_strcpy): Pass correct type to size_binop.
|
||
(expand_builtin_strcmp): Likewise.
|
||
Clean up conditional structure.
|
||
* c-decl.c (init_decl_processing): Don't call set_sizetype twice.
|
||
(complete_array_type): Don't use size_binop for MAXINDEX.
|
||
* c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
|
||
(c_sizeof_nowarn, c_size_in_bytes): Likewise.
|
||
(c_alignof): Use size_one_node.
|
||
(build_unary_op): Pass arg of proper type to size_binop.
|
||
(really_start_incremental_init, push_init_level): Use sizetype for
|
||
constructor{,_bit,_unfilled}_index.
|
||
(pop_init_label, output_init_element): Likewise.
|
||
(output_pending_init_elements, process_init_element): Likewise.
|
||
* calls.c (compute_argument_block_size): Field VAR is ssizetype.
|
||
* expr.c (store_expr): Use size_int.
|
||
(store_constructor): Use proper types for size_binop args.
|
||
(get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
|
||
(expand_expr_unaligned): Likewise.
|
||
(string_contant): Return object of sizetype.
|
||
* expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
|
||
(ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
|
||
(ARGS_SIZE_TREE): Pass proper types to size_binop.
|
||
* fold-const.c (int_const_binop): Refine when size_int is called.
|
||
(fold_convert): Likewise.
|
||
(size_int_wide): Rework to take KIND as arg, only take low order
|
||
bits, handle new sizetype_tab datatype, and chain entries in
|
||
size_table.
|
||
(size_int_type_wide): New function.
|
||
(size_binop): Validate types of arguments.
|
||
(ssize_binop): Deleted.
|
||
(size_diffop): New function.
|
||
(extract_muldiv): Only fold division into multiplication for sizetypes.
|
||
* function.c (assign_parms): Use size_diffop and make sure
|
||
VAR field is of ssizetype; also pass proper type to size_binop.
|
||
(locate_and_pad_parm, pad_to_arg_alignment): Likewise.
|
||
(round_down): Deleted from here.
|
||
* store-layout.c (sizetype_tab): Now an array.
|
||
(sizetype_set, early_root_list): New variables.
|
||
(variable_size): Use size_one_node.
|
||
(round_up): Pass proper type to size_binop.
|
||
(round_down): Moved to here and corrected as above.
|
||
(layout_record): Pass proper arg types to size_binop.
|
||
(layout_type): Likewise.
|
||
If sizetype_set is zero, record the type just laid out.
|
||
(make_unsigned_type): Don't call set_sizetype;
|
||
(make_signed_type): Likewise; also, call fixup_signed_type.
|
||
(initialize_sizetypes): New function.
|
||
(set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
|
||
set name of bitsizetype to "bit_size_type".
|
||
Fix up type of sizes of all types made before call.
|
||
* tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
|
||
* tree.c (fix_sizetype): Deleted.
|
||
(build_common_tree_nodes): Call initialize_sizetypes.
|
||
(build_common_tree_nodes_2): Don't call fix_sizetype.
|
||
* tree.h (TYPE_IS_SIZETYPE): New macro.
|
||
(initialize_sizetype): New declaration.
|
||
(enum size_type_kind): New type.
|
||
(struct sizetype_tab): Deleted.
|
||
(sizetype_tab): Now array; adjust sizetype macros.
|
||
(size_diffop, size_int_type_wide): New functions.
|
||
(size_int_wide): Change number of args and type; access macros changed.
|
||
(ssize_int, sbitsize_int): New macros.
|
||
* config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
|
||
(ROUND_TYPE_SIZE_UNIT): New macro.
|
||
|
||
2000-02-27 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
|
||
|
||
Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
|
||
Mark as possibly unused.
|
||
|
||
* cse.c (cse_insn): Delete dead code involving tablejump.
|
||
Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
|
||
|
||
* Makefile.in (libcpp.a): Start by deleting it.
|
||
|
||
2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* cpplib.h (enum file_change_code): Added rename_file.
|
||
* cpplib.c (do_line): If a filename is given, set file_change to
|
||
rename_file.
|
||
(output_line_command): If file_change is rename_file, always
|
||
output a # directive with the file name.
|
||
|
||
* cpplib.c (do_pragma): Accept #pragma without consecutive token.
|
||
|
||
2000-02-26 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
|
||
when copying a PARM_DECL or RESULT_DECL.
|
||
|
||
2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fix-header.c (recognized_function): Also fix prototypes for
|
||
functions taking "void".
|
||
|
||
2000-02-26 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* reload1.c (do_output_reload): Check reg_reloaded_valid before
|
||
looking at reg_reloaded_contents.
|
||
|
||
2000-02-26 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (STMP_FIXINC): New toggle.
|
||
(LIBGCC2_DEPS): Delete all references.
|
||
(stmp-headers): Delete target. All references either deleted
|
||
or changed to stmp-int-headers.
|
||
(all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
|
||
(LIBCPP_OBJS): Take out cppalloc.o.
|
||
(cppalloc.o): Delete target.
|
||
(stmp-int-hdrs): Depend on $(STMP_FIXINC).
|
||
(gen-protos, fix-header): Link with libiberty.a.
|
||
* build-make: Don't change FIXINCLUDES. Override STMP_FIXINC
|
||
to empty.
|
||
|
||
* configure.in: Remove refs to strerror.
|
||
* acconfig.h: Take out NEED_DECLARATION_STRERROR.
|
||
* system.h: Take out strerror stanza.
|
||
|
||
* cpperror.c (my_strerror): Delete function.
|
||
(cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
|
||
* cppmain.c (main): Call xmalloc_set_program_name first thing.
|
||
* cppalloc.c: Delete file.
|
||
* gen-protos.c: Don't provide xrealloc.
|
||
|
||
* fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
|
||
xstrerror throughout.
|
||
|
||
2000-02-26 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/inclhack.def (undefine_null): the bypass pattern needs to
|
||
match for DOS headers, too.
|
||
* fixinc/inclhack.sh,fixincl.x: Regenerate.
|
||
|
||
2000-02-26 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default
|
||
is right for most ELF targets.
|
||
* config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
|
||
Let the default file use %U properly.
|
||
* config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the
|
||
default.
|
||
|
||
* config/fp-bit.c (pack_d): Properly handle rounding of denormal
|
||
numbers.
|
||
|
||
Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* toplev.c (documented_lang_options): Correct spelling error.
|
||
(decode_d_option, decode_f_option, main): Likewise.
|
||
|
||
* toplev.c (print_time): Avoid SIGFPE when all_time is zero.
|
||
|
||
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
|
||
to tell assembler it is permitted to expand large constants.
|
||
|
||
2000-02-25 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* protoize.c: (AUX_INFO_SUFFIX): New macro.
|
||
(aux_info_suffix): Use.
|
||
(SAVE_SUFFIX): New macro.
|
||
(save_suffix): Use.
|
||
(munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
|
||
(gen_aux_info_file): Use aux_info_suffix instead of ".X".
|
||
(edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
|
||
|
||
* invoke.texi (Running Protoize): Update documentation.
|
||
|
||
2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
|
||
|
||
2000-02-25 John Wehle (john@feith.com)
|
||
|
||
* rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
|
||
|
||
2000-02-25 Anthony Green <green@cygnus.com>
|
||
|
||
* toplev.c (rest_of_compilation): Rebuild jump labels if
|
||
combine_instructions has created a new direct jump.
|
||
* combine.c (try_combine): Add new_direct_jump_p argument. Set it
|
||
when appropriate.
|
||
(combine_instructions): Call try_combine with new argument.
|
||
Return non-null value when new direct jump instruction is created.
|
||
* rtl.h: combine_instructions returns an int.
|
||
|
||
Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* cse.c (cse_insn): Replace the PATTERN of the insn with an new
|
||
jump when changing a computed jump into a jump to a known
|
||
target.
|
||
|
||
Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk>
|
||
|
||
* resource.c (mark_referenced_resources): Changed use SET_DEST (...)
|
||
to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
|
||
|
||
* i386.md (define_expand "clrstrsi"): Fix typo.
|
||
|
||
Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com>
|
||
|
||
* rtl.texi: Fix typo.
|
||
|
||
Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
|
||
UNITS_PER_WORD. Change caller initial_elimination_offset.
|
||
(rounded_frame_size): Take into account that argument pushed has
|
||
changed. Fix TARGET_ALIGN_DOUBLE problem.
|
||
|
||
2000-02-25 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* haifa-sched.c (schedule_block): Explain the real reason
|
||
we delete REG_SAVE_NOTEs on the first insn of a block.
|
||
Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
|
||
|
||
2000-02-24 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* input.h (push_srcloc): New function.
|
||
(pop_srcloc): Likewise.
|
||
* toplev.c (push_srcloc): Define it.
|
||
(pop_srcloc): Likewise.
|
||
|
||
2000-02-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (life_analysis): When collecting reg info, clear
|
||
regs_ever_live.
|
||
|
||
Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
Fix bug exposed by reload.c no longer rounding the frame
|
||
size to BIGGEST_ALIGNMENT:
|
||
* sh.c (rounded_frame_size): New function.
|
||
(sh_expand_prologue, sh_expand_epilogue): Use it.
|
||
(initial_elimination_offset): Likewise.
|
||
|
||
Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
|
||
* sh-protos.h (sh_need_epilogue): Declare.
|
||
* sh.c (sh_need_epilogue_known): New static variable.
|
||
(sh_need_epilogue): New function.
|
||
(function_epilogue): Clear need_epilogue_known.
|
||
* sh.md (return): Split into expander / insn pattern.
|
||
Make the expander conditional on ! sh_need_epilogue ().
|
||
|
||
2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* machmode.h (get_mode_alignment): Declare.
|
||
(GET_MODE_ALIGNMENT): Call it.
|
||
* stor-layout.c (get_mode_alignment): New function. Make
|
||
sure alignment is always power of 2.
|
||
|
||
2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* i386.h: Remove useless definition of "I386" and misleading
|
||
comment above it.
|
||
|
||
2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* tree.h (TREE_SET_PERMANENT): New macro. Document conditions
|
||
under which TREE_PERMANENT will be set.
|
||
* tree.c (make_node, copy_node, make_tree_vec, tree_cons,
|
||
build1): Use TREE_SET_PERMANENT.
|
||
* print-tree.c (print_node): Don't report value of
|
||
TREE_PERMANENT if ggc_p is true.
|
||
|
||
* c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
|
||
decide whether to give a type a new alias set.
|
||
* objc/objc-act.c (build_objc_string_object): Never copy the string.
|
||
* tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
|
||
of value of 'obstack'.
|
||
|
||
|
||
2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
|
||
|
||
2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
|
||
* cpplib.c (cpp_get_token): Produce them.
|
||
* cppexp.c (cpp_lex): Handle them.
|
||
|
||
2000-02-23 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c (arm_comp_type_attributes): Simply and
|
||
comment tests on type attributes.
|
||
|
||
Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* final.c (shorten_branches): Make value passed to LOOP_ALIGN
|
||
conform to documentation.
|
||
* sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
|
||
to check for special cases.
|
||
* sh-protos.h (sh_loop_align): Declare.
|
||
* sh.c (sh_loop_align): Define.
|
||
|
||
2000-02-22 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
|
||
(SIZE_TYPE): Is 32 bits when using -mgp32.
|
||
(PTRDIFF_TYPE): Ditto.
|
||
|
||
Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* diagnostic.c (init_output_buffer): Handle case of null PREFIX.
|
||
|
||
2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* config/i386/i386.h: If IN_TARGET_LIBS is defined, make
|
||
BIGGEST_FIELD_ALIGNMENT a constant.
|
||
|
||
2000-02-21 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (output_line_info): Put the marker for the end of
|
||
the line number info at the actual end.
|
||
(gen_struct_or_union_type_die): Use decl_function_context
|
||
to check for local classes.
|
||
* dwarfout.c (output_type): Likewise.
|
||
|
||
Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
|
||
for arguments with a mode, but no type.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Similarly.
|
||
* t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
|
||
* pa/long_double.h: New file.
|
||
* configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
|
||
both have 128bit wide long doubles.
|
||
* configure: Rebuilt.
|
||
|
||
2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
|
||
|
||
* flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
|
||
fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
|
||
(life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
|
||
|
||
* haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
|
||
|
||
* integrate.c (compare_blocks, find_block): Likewise.
|
||
|
||
* rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
|
||
|
||
* rtl.h (set_file_and_line_for_stmt): Constify a char*.
|
||
|
||
* stmt.c (stmt_status, set_file_and_line_for_stmt,
|
||
expand_asm_operands): Likewise.
|
||
|
||
Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* predict.c (estimate_probability): Added the pointer heuristic to
|
||
the collection of static branch predictors.
|
||
|
||
2000-02-21 Catherine Moore <clm@cygnus.com>
|
||
|
||
* config/mips/mips.h (ASM_SPEC): Add -mfix700.
|
||
* invoke.texi (-mfix7000): Document.
|
||
|
||
2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* diagnostic.c (init_output_buffer): Make it possible to output at
|
||
least 32 characters if we're given a too long prefix.
|
||
|
||
2000-02-20 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* varasm.c (initializer_constant_valid_p): Call
|
||
lang_expand_constant to simplify the constant.
|
||
|
||
2000-02-20 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/inclhack.def(stdio_va_list):
|
||
typedef needs to be disabled.
|
||
* fixinc/inclhack.sh: regen
|
||
* fixinc/fixincl.x: regen
|
||
|
||
2000-02-20 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* print-rtl.c (print_rtx): Don't print addresses when
|
||
flag_dump_unnumbered.
|
||
|
||
2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* sparc.c (sparc_output_scratch_registers): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
(sparc_va_arg, sparc_flat_output_function_prologue,
|
||
sparc_flat_output_function_epilogue): Cast value to unsigned in
|
||
comparison.
|
||
(sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
|
||
|
||
* sparc.md: Add default case in switch.
|
||
|
||
2000-02-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* c-typeck.c (add_pending_init): Don't abort for multiple
|
||
fields at the same offset.
|
||
(pending_init_member): Test the correct member.
|
||
|
||
2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
|
||
instead of SImode.
|
||
(start_catch_handler) : Same.
|
||
|
||
2000-02-19 Brad Lucier (lucier@math.purdue.edu)
|
||
|
||
* Makefile.in: Have flow.o depend on $(EXPR_H)
|
||
|
||
Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
|
||
* c-decl.c (duplicate_decls, finish_enum): Likewise.
|
||
(finish_decl): Remove -Wlarger-than code from here.
|
||
* flags.h (id_clash_len): Now int.
|
||
(larger_than_size): Now HOST_WIDE_INT.
|
||
* fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
|
||
Clean up checking to see if in table.
|
||
(make_bit_field_ref): Remove extra parm to bitsize_int.
|
||
* ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
|
||
* print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
|
||
* stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
|
||
and for computing size of decl.
|
||
* stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
|
||
Move -Wlarger-than code to here.
|
||
(layout_record): Remove extra arg to bitsize_int.
|
||
Set TYPE_BINFO_SIZE_UNIT.
|
||
(layout_union): Remove extra arg to bitsize_int.
|
||
Use proper type for size of QUAL_UNION.
|
||
(layout_type): Remove extra arg to bitsize_int.
|
||
* toplev.c (id_clash_len): Now int.
|
||
(larger_than_size): Now HOST_WIDE_INT.
|
||
(decode_W_option): Clean up id-clash and larger-than- cases.
|
||
* tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
|
||
(expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
|
||
* tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
|
||
(struct tree_decl): New field size_unit.
|
||
(size_int_wide): No HIGH operand; NUMBER is now signed.
|
||
(size_int_2): Deleted.
|
||
(size_int, bitsize_int): Don't use it and rework args.
|
||
* varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
|
||
|
||
Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
|
||
|
||
2000-02-18 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* invoke.texi (Warning Options): Add an explanation of why
|
||
you might want the -Wfloat-equal flag.
|
||
|
||
Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
|
||
* cppinit.c (new_pending_define): Add cast to avoid warning.
|
||
* expmed.c (extract_bit_field): Likewise.
|
||
* flow.c (enum reorder_skip_type): New type.
|
||
(skip_insns_between_blcok): New it.
|
||
Rework to avoid warning about possibly undefined variable.
|
||
* function.c (assign_parms): Make thisparm_boundary unsigned.
|
||
* genrecog.c (write_switch): Cast XWINT result to int.
|
||
* lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
|
||
* mips-tfile.c (init_file): Make two versions of FDR initializer:
|
||
one for MIPS and one for Alpha.
|
||
(get_tag, copy_object): Add casts to avoid warnings.
|
||
* optabs.c (init_one_libfunc): Cast NAME to (char *).
|
||
* reload.c (find_reloads): Make TYPE enum reload_type.
|
||
* sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
|
||
* unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
|
||
* varasm.c (compare_constant_1): Add cast to avoid warning.
|
||
* config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
|
||
to (char *).
|
||
(alpha_expand_unaligned_load, alpha_expand_unaligned_store):
|
||
Cast switch operand of size to int.
|
||
(alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
|
||
* config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
|
||
in unhandled case.
|
||
|
||
2000-02-18 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
|
||
anything for an alignment of zero.
|
||
|
||
* config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
|
||
anything for an alignment of zero.
|
||
|
||
2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
|
||
|
||
* gcc.texi (Bug Reporting): Refer to bugs.html.
|
||
(Bug Lists): Likewise.
|
||
* system.h (GCCBUGURL): New preprocessor define.
|
||
* rtl.c (fancy_abort): Use it.
|
||
* gcc.c (main): Likewise.
|
||
|
||
2000-02-18 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
|
||
(life_analysis_1): Subsume into ...
|
||
(life_analysis): ... here. Force PROP_REG_INFO off after reload.
|
||
Use update_life_info for the relaxation.
|
||
(update_life_info): Update REG_BASIC_BLOCK for registers live on
|
||
entry and regs_live_at_setjmp.
|
||
(set_noop_p): Simplify.
|
||
(notice_stack_pointer_modification_1): Renamed from s/_1//.
|
||
(record_volatile_insns): Split into ...
|
||
(delete_noop_moves): ... here,
|
||
(notice_stack_pointer_modification): ... here,
|
||
(insn_dead_p): ... and here.
|
||
(propagate_block): Don't query INSN_VOLATILE.
|
||
(mark_used_regs): Mind !PROP_REG_INFO.
|
||
* toplev.c (rest_of_compilation): Call mark_constant_function here,
|
||
not in life_analysis.
|
||
|
||
Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com)
|
||
|
||
* loop.c (canonicalize_condition): New function,
|
||
broken out of get_condition.
|
||
(get_condition): Use it.
|
||
* expr.h (canonicalize_condition): Prototype it.
|
||
|
||
* tree.h (tree_int_cst_msb): Declare.
|
||
* tree.c (tree_int_cst_msb): New function.
|
||
|
||
2000-02-17 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
|
||
isn't set.
|
||
|
||
* invoke.texi (-fmessage-length=n): Document.
|
||
|
||
2000-02-17 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* bitmap.c (bitmap_operation): Don't leak bitmap elements.
|
||
|
||
2000-02-17 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* function.c (thread_prologue_and_epilogue_insns): Put a line note
|
||
after the prologue.
|
||
|
||
2000-02-17 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/thumb.c: Replace includes of system headers with
|
||
#include "system.h".
|
||
|
||
2000-02-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
|
||
Add crtbeginS.o and crtendS.o.
|
||
* alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
|
||
(ENDFILE_SPEC): Use crtendS.o.
|
||
* alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
|
||
|
||
* alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
|
||
(__do_global_dtors_aux): ... here. Call __cxa_finalize if
|
||
shared and present.
|
||
(__dso_handle): New variable.
|
||
* alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
|
||
bias to __CTOR_END__.
|
||
|
||
2000-02-16 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
|
||
|
||
Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* longlong.h (__clz_tab): Declare as static to match definition.
|
||
|
||
2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
|
||
|
||
* i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
|
||
(XREF_FILE_NAME): Define.
|
||
|
||
* i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
|
||
(EH_FRAME_SECTION_ASM_OP): Define.
|
||
(IDENT_ASM_OP): Define.
|
||
(TEXT_SECTION_ASM_OP): Define.
|
||
(CPP_SPEC): Define.
|
||
(CTORS_SECTION_ASM_OP): Define.
|
||
(CTOR_SECTION_FUNCTION): Use it.
|
||
(DTORS_SECTION_ASM_OP): Define.
|
||
(DTOR_SECTION_FUNCTION): Use it.
|
||
|
||
2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* reg-stack.c (emit_swap_insn): Do not put a new insn before a
|
||
NOTE_BASIC_BLOCK.
|
||
|
||
* flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
|
||
debug_bb_n): New functions.
|
||
(dump_flow_info, print_rtl_with_bb): Use dump_regset.
|
||
* basic-block.h: Prototype new functions.
|
||
|
||
Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* configure.in: Add support for avr target.
|
||
* configure: Rebuilt.
|
||
|
||
* invoke.texi: Add AVR invocation docs.
|
||
* install.texi: Add information about AVR.
|
||
* md.texi: Add AVR constraint letters description.
|
||
* extend.texi: Add description for AVR specific attributes.
|
||
|
||
2000-02-16 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
|
||
|
||
2000-02-16 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
|
||
(make_insn_raw): Move RTL check here.
|
||
|
||
2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* version.c: Include gansidecl.h and version.h.
|
||
|
||
* version.h: Wrap entire file in macro __GCC_VERSION_H__.
|
||
|
||
* configure.in (gcc_version): When setting, narrow search to
|
||
lines containing `version_string'.
|
||
|
||
* Makefile.in (mainversion): Likewise.
|
||
(GCC_H): New variable.
|
||
(gcc.h): Delete target.
|
||
(gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
|
||
(version.o): Depend on version.h.
|
||
(dbxout.o): Don't depend on gcc.h.
|
||
|
||
Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
Michael Meissner <meissner@cygnus.com>
|
||
|
||
* md.texi (Simple Constraints): Add item about whitespace.
|
||
* genoutput.c (strip_whitespace): New.
|
||
(scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
|
||
strip_whitespace for constraints.
|
||
Test pointer using NULL, not 0.
|
||
|
||
2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* cpplib.c (do_line): Pedwarn for #line > 32767.
|
||
|
||
* c-lex.c (readescape): Warn about '\x', but do not reject it.
|
||
|
||
2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
|
||
|
||
* gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
|
||
to default cpp spec.
|
||
(do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
|
||
* cpp.texi: Document __GNUC_PATCHLEVEL__.
|
||
* cpp.1: Likewise.
|
||
|
||
* objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
|
||
default spec.
|
||
|
||
2000-02-15 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* configure.in: Add support for avr target.
|
||
|
||
Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
|
||
(sh_addr_diff_vec_mode): Don't declare.
|
||
* sh.c (sh_addr_diff_vec_mode): Delete.
|
||
|
||
Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
|
||
|
||
Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
|
||
(smulsi3_highpart_i): Name.
|
||
(udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
|
||
(divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
|
||
(smulsi3_highpart, umulsi3_highpart): Likewise.
|
||
|
||
(mulsidi3_i, umulsidi3_i): Make rtl describe operation
|
||
correctly independent of endianness.
|
||
(mulsidi3, umulsidi3): Now define_insn. Hide details that
|
||
confuse the optimizers.
|
||
(mulsidi3+1, umulsidi3+1): New define_split.
|
||
|
||
Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com>
|
||
|
||
* config/sh/sh.md: Guard insn splits against illegal registers.
|
||
* config/sh/sh.h: Correct comment about macros.
|
||
|
||
Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
Andrew MacLeod <amacleod@cygnus.com>
|
||
|
||
* Makefile.in (lcm.o): Depend on insn-attr.h.
|
||
* basic-block.h (optimize_mode_switching): Declare.
|
||
* lcm.c (tm_p.h, insn-attr.h): #include.
|
||
(seginfo, bb_info): New structs.
|
||
(antic, transp, comp, delete, insert) : New file-scope static variables.
|
||
(new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
|
||
(reg_becomes_live, optimize_mode_switching): Likewise.
|
||
* tm.texi: Add description of mode switching macros.
|
||
* toplev.c (rest_of_compilation): Call optimize_mode_switching.
|
||
|
||
* sh-protos.h (remove_dead_before_cse): Remove prototype.
|
||
(fldi_ok, fpscr_set_from_mem): New prototypes.
|
||
* sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
|
||
Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
|
||
(sh_flag_remove_dead_before_cse): Remove declaration.
|
||
(NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
|
||
(MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
|
||
(MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
|
||
* sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
|
||
(barrier_align): Allow for JUMP_INSNS containing a parallel.
|
||
(machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
|
||
(fldi_ok): New function.
|
||
(get_fpscr_rtx): Add fpscr_rtx as GC root.
|
||
(emit_sf_insn): Only generate fpu switches when optimize < 1.
|
||
(emit_df_insn): Likewise.
|
||
(expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
|
||
(sh_flag_remove_dead_before_cse): Delete.
|
||
(get_free_reg, fpscr_set_from_mem): New functions.
|
||
* sh.md (movdf, movsf): Remove no_new_pseudos code.
|
||
(return): Remove emit_fpscr_use / remove_dead_before_cse calls.
|
||
|
||
2000-02-15 Loren Rittle <ljrittle@acm.org>
|
||
|
||
* ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
|
||
|
||
2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
|
||
cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
|
||
|
||
* cccp.c: Include version.h and/or don't declare `version_string'.
|
||
* collect2.c: Likewise.
|
||
* alpha.c: Likewise.
|
||
* arm/aof.h: Likewise.
|
||
* arm/coff.h: Likewise.
|
||
* arm/elf.h: Likewise.
|
||
* arm/pe.h: Likewise.
|
||
* arm/tcoff.h: Likewise.
|
||
* arm/telf.h: Likewise.
|
||
* arm/tpe.h: Likewise.
|
||
* arm/vxarm.h: Likewise.
|
||
* convex/convex.c: Likewise.
|
||
* i386/dgux.c: Likewise.
|
||
* i386/sun386.h: Likewise.
|
||
* m88k/m88k.c: Likewise.
|
||
* mcore/mcore-pe.h: Likewise.
|
||
* mips/mips.h: Likewise.
|
||
* romp/romp.h: Likewise.
|
||
* sh/sh.c: Likewise.
|
||
* cpphash.c: Likewise.
|
||
* cppinit.c: Likewise.
|
||
* dwarf2out.c: Likewise.
|
||
* dwarfout.c: Likewise.
|
||
* gcc.c: Likewise.
|
||
* gcc.h: Likewise.
|
||
* mips-tfile.c: Likewise.
|
||
* protoize.c: Likewise.
|
||
* toplev.c: Likewise.
|
||
* tree.h: Likewise.
|
||
|
||
* version.c (version_string): Constify a char*.
|
||
|
||
* version.h: New file.
|
||
|
||
2000-02-14 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* configure.in: Add mcore-elf and mcore-pe targets.
|
||
* configure: Regenerate.
|
||
|
||
* NEWS: Add note that MCore port has been contributed.
|
||
|
||
* invoke.texi: Document command line switches for MCore port.
|
||
* install.texi: Add MCore to list of supported targets.
|
||
|
||
2000-02-14 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
|
||
then we will need to import the frame handling functions.
|
||
(scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
|
||
to import the frames themselves.
|
||
|
||
Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com>
|
||
Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* basic_block.h: Added prototype for reorder_basic_blocks.
|
||
* toplev.c: Changes to add -freorder-blocks and graph dump after
|
||
block reordering is done.
|
||
* flow.c (reorder_block_def): New structure for use during block
|
||
reordering.
|
||
(REORDER_BLOCK_*): New macros to access members of above structure.
|
||
(skip_insns_between_block, get_common_dest, chain_reorder_blocks,
|
||
make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
|
||
functions for block reordering.
|
||
|
||
Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* gcc.texi (Passes): Fix typo.
|
||
* md.texi (Standard Names): Ditto.
|
||
* tm.texi (Storage Layout): Ditto.
|
||
|
||
2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (do_define): Only free the old definition if it
|
||
actually had one.
|
||
|
||
2000-02-13 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppfiles.c (read_and_prescan): When emitting deferred
|
||
newlines, test speccase[] again instead of checking each
|
||
possible whitespace character in turn. When we encounter \r,
|
||
look behind for \n first, then ahead.
|
||
|
||
2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cse.c (cse_altered): New internal flag.
|
||
(cse_insn): Set it if we changed an insn.
|
||
(cse_main): Clear cse_altered before each basic block.
|
||
Only garbage collect if cse_altered is true afterward.
|
||
|
||
Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||
|
||
* sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
|
||
|
||
Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* combine.c (simplify_comparison): Fix typo.
|
||
|
||
Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net>
|
||
|
||
* prefix.c (concat, lookup_key): Use xmalloc and xrealloc
|
||
consistently.
|
||
|
||
2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* flow.c (flow_loop_tree_node_add): Use better algorithm by passing
|
||
previously inserted node instead of root node. Caller changed.
|
||
|
||
2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
|
||
|
||
2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
|
||
__dereg_frame_dtor): Add prototype argument.
|
||
|
||
* gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
|
||
|
||
* gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
|
||
|
||
* gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
|
||
|
||
* gthr-vxworks.h (__gthread_once): Likewise.
|
||
|
||
* gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
|
||
|
||
Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
|
||
(ix86_expand_epilogue): ... here. Use mov instead of add to restore
|
||
stack pointer in functions w/o saved registers, output LEAVE more often
|
||
on TARGET_USE_LEAVE machines.
|
||
|
||
2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
|
||
|
||
* config/arm/arm.c (arm_init_cumulative_args); New function:
|
||
Initlaise the CUMULATIE_ARGS strcuture for a function
|
||
definition.
|
||
(arm_function_arg): New function: Determine where to place a
|
||
function's argument. Also handles deciding the function's
|
||
call cookie.
|
||
(current_file_function_operand): New function: Return true if
|
||
the symbol is a function which has already been compiled.
|
||
(arm_is_long_call_p): New function: Return true if the
|
||
indicated function should be called via a long call.
|
||
(arm_valid_type_attribute_p): New function: Return true if the
|
||
attribute is a valid, arm specific, attribute.
|
||
(arm_comp_type_attribute): New function: Return true if the
|
||
two types have compatible, arm specific, attributes.
|
||
|
||
* config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
|
||
structure.
|
||
(FUNCTION_ARG): Redefine to call arm_function_arg.
|
||
(FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
|
||
structure field.
|
||
(INIT_CUMULATIVE_ARGS): Redefine to call
|
||
arm_init_cumulative_args.
|
||
(FUNCTION_ARG_ADVANCE): Redefine to use correct structure
|
||
field.
|
||
(SETUP_INCOMING_VARARGS): Redefine to use correct structure
|
||
field.
|
||
(ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
|
||
functions.
|
||
(ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
|
||
(VALID_MACHINE_TYPE_ATTRIBUTE): Define.
|
||
(COMP_TYPE_ATTRIBUTES): Define.
|
||
|
||
* config/arm/arm.md (call): Call arm_is_long_call_p to decide
|
||
if a long call is needed.
|
||
(call_value): Call arm_is_long_call_p to decide if a long call
|
||
is needed.
|
||
(call_symbol): Call arm_is_long_call_p to decide if a long call
|
||
is needed.
|
||
|
||
* config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
|
||
|
||
2000-02-11 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* README.AVR: New file with information about the avr ports.
|
||
* config/avr: New directory with avr port files.
|
||
|
||
2000-02-11 Andreas Jaeger <aj@suse.de>
|
||
|
||
* fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
|
||
|
||
2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c: Fix formatting, update commentary.
|
||
(dump_definition): Take three separate arguments instead of a
|
||
MACRODEF structure argument.
|
||
* cpphash.h: Update prototype of dump_definition.
|
||
* cppinit.c (cpp_finish): Update call of dump_definition.
|
||
|
||
* cpplib.c (do_define): Always create new hash entry with
|
||
T_MACRO type. Remove redundant check for redefinition of
|
||
poisoned identifier. Update call of dump_definition.
|
||
(do_undef): Don't call check_macro_name. Rename sym_length to
|
||
len.
|
||
(do_error, do_warning): Don't use copy_rest_of_line or
|
||
SKIP_WHITE_SPACE.
|
||
(do_warning): Don't use pedwarn for the actual warning,
|
||
only the notice about its not being in the standard. (Fixes
|
||
bug with #warning in system headers.)
|
||
(do_ident): Stricter argument checking - accept only a single
|
||
string after #ident. Also, macro-expand the line.
|
||
(do_xifdef): Use cpp_defined. De-obfuscate.
|
||
|
||
(do_pragma): Split out specific pragma handling to separate
|
||
functions. Use get_directive_token. Update commentary. Do
|
||
not pass on #pragma once or #pragma poison to the front end.
|
||
(do_pragma_once, do_pragma_implementation, do_pragma_poison,
|
||
do_pragma_default): New.
|
||
|
||
Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* jump.c (jump_optimize_1): The first operand in a relational
|
||
can be a CONST_INT.
|
||
* optabs.c (emit_conditional_move): Handle relationals which
|
||
have a known true/false result.
|
||
|
||
2000-02-11 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* function.c (thread_prologue_and_epilogue_insns): Don't insert
|
||
a RETURN insn into a block which already ends with a jump.
|
||
|
||
2000-02-11 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* haifa-sched.c (BUF_LEN): Increase a lot.
|
||
|
||
2000-02-11 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* configure.in: Add tm_p_file specification for thumb targets.
|
||
* configure: Regenerate.
|
||
|
||
* config/arm/thumb-protos.h: New file: Prototypes for exported
|
||
functions defined in thumb.c.
|
||
|
||
2000-02-11 Robert Lipe <robertl@sco.com>
|
||
|
||
* Makefile.in (bootstrap-lean): Remove additional files.
|
||
(bootstrap2-lean): Likewise.
|
||
(VOL_FILES): List of files for above.
|
||
|
||
2000-02-11 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* cpphash.c (special_symbol): Remove spurious argument to
|
||
cpp_lookup.
|
||
|
||
2000-02-11 Joel Sherrill (joel@OARcorp.com>
|
||
|
||
* configure.in: (i*86-*-rtems*): Swapped elf and coff
|
||
stanzas.
|
||
* configure: Rebuilt.
|
||
|
||
2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
|
||
|
||
* pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
|
||
|
||
Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* pa.c, pa.h: Remove trigraph sequences within comments.
|
||
|
||
Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
|
||
|
||
* invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
|
||
|
||
Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
|
||
|
||
* sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
|
||
|
||
2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
|
||
|
||
2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
|
||
(ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
|
||
(ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
|
||
(ASM_FILE_END): Use c4x_file_end.
|
||
* config/c4x/c4x.c (c4x_global_label): New function.
|
||
(c4x_external_ref, c4x_file_end): Likewise.
|
||
|
||
* config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
|
||
(c4x_external_ref, c4x_end_file): Likewise.
|
||
|
||
2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppexp.c: Don't include cpphash.h.
|
||
(parse_charconst, cpp_lex): Use cpp_defined.
|
||
(cpp_lex): Use get_directive_token throughout. Remove
|
||
unnecessary cases from switch. Move assertion-handling code
|
||
down to OTHER case.
|
||
(cpp_parse_expr): If we see '+' or '-', check the context to
|
||
determine if they are unary or binary operators. Streamline
|
||
the jumps a bit. Do not call skip_rest_of_line.
|
||
|
||
* cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
|
||
static. Export get_directive_token. Update commentary.
|
||
(cpp_defined): New function.
|
||
(do_define): Remove reference to T_PCSTRING. Call
|
||
free_definition to release memory for old definition, when
|
||
redefining a macro.
|
||
(eval_if_expression): Set only_seen_white to 0 before calling
|
||
cpp_parse_expr. Call skip_rest_of_line after it returns.
|
||
(cpp_read_check_assertion): Don't preserve a pointer into the
|
||
token buffer across a call to cpp_get_token.
|
||
|
||
* Makefile.in (cppexp.o): Don't depend on cpphash.h.
|
||
* cppfiles.c (redundant_include_p): Use cpp_defined.
|
||
* cpphash.c (free_definition): New function.
|
||
(delete_macro): Use it. Update commentary.
|
||
* cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
|
||
free_definition.
|
||
* cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
|
||
from enum node_type. Prototype cpp_defined and get_directive_token.
|
||
Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
|
||
|
||
* fix-header.c (check_macro_names): Use cpp_defined.
|
||
(read_scan_file): Set inhibit_warnings and inhibit_errors in
|
||
the options structure.
|
||
|
||
2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
|
||
|
||
2000-02-10 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
|
||
rather than die->die_tag.
|
||
|
||
Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* combine.c (make_extraction, force_to_mode): Avoid warning on
|
||
mixed-signedness conditionals.
|
||
(make_field_assignment, nonzero_bits): Likewise.
|
||
* expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
|
||
(store_split_bit_field, extract_split_bit_field): Likewise.
|
||
(extract_fixed_bit_field, store_bit_field,
|
||
* expr.c: Change alignment to be unsigned everywhere.
|
||
(move_by_pieces, store_constructor_field, store_constructor):
|
||
Alignment parm is unsigned.
|
||
(emit_block_move, emit_group_load, emit_group_store): Likewise.
|
||
(clear_storage, emit_push_insn, compare_from_rtx): Likewise.
|
||
(do_compare_rtx_and_jump): Likewise.
|
||
(move_by_pieces_ninsns, clear_by_pieces): Likewise.
|
||
Compare align with GET_MODE_ALIGNMENT.
|
||
(expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
|
||
(get_inner_reference): Likewise.
|
||
(copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
|
||
(expand_assignment): Local vars for alignment now unsigned.
|
||
(store_constructor, store_field, expand_expr, do_jump): Likewise.
|
||
(do_compare_and_jump): Likewise.
|
||
(store_field): Call new function expr_align.
|
||
* expr.h (emit_block_move, emit_group_load, emit_group_store):
|
||
Alignment arg now unsigned.
|
||
(clear_storage, emit_push_insn, compare_from_rtx): Likewise.
|
||
(do_compare_rtx_and_jump, store_bit_field): Likewise.
|
||
(extract_bit_field): Likewise.
|
||
* fold-const.c (add_double): Add cast to eliminate signedness warning.
|
||
* machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
|
||
(get_best_mode): Alignment arg is unsigned.
|
||
* rtl.h (move_by_pieces): Likewise.
|
||
* store-layout.c (maximum_field_alignment, set_alignment):
|
||
Now unsigned.
|
||
(layout_decl): Alignment arg is now unsigned.
|
||
Remove unneeded casts.
|
||
(layout_record, layout_union, layout_type): Remove unneeded casts.
|
||
Local alignment variables now unsigned.
|
||
(get_best_mode): Alignment arg now unsigned.
|
||
* tree.c (expr_align): New function.
|
||
* tree.h (expr_align): Likewise.
|
||
(maximum_field_alignment, set_alignment): Now unsigned.
|
||
(get_inner_reference): Alignment argument is now pointer to unsigned.
|
||
* varasm.c (assemble_variable): Add cast to eliminate warning.
|
||
|
||
Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* expmed.c (store_bit_field): If op0 and fieldmode are the same size,
|
||
then store directly into op0.
|
||
|
||
* calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
|
||
the CALL_INSN, and emit the note immediately after it.
|
||
|
||
2000-02-10 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/thumb.md (epilogue): Include a (return) in the
|
||
generated insn, and emit it using emit_jump_insn not
|
||
emit_insn.
|
||
|
||
Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* function.c (assign_temp): Change zero-sized arrays to size 1.
|
||
* integrate.c (expand_inline_function): Do not update
|
||
stack_alignment_needed
|
||
* i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
|
||
add some sanity checking, remove optimization for function with
|
||
zero frame size.
|
||
|
||
2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* flow.c (mark_regs_live_at_end): Delete unused variables.
|
||
|
||
* ggc-page.c (ggc_page_print_statistics): bzero -> memset.
|
||
|
||
* integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
|
||
in macro FRAME_GROWS_DOWNWARD.
|
||
|
||
* stmt.c (expand_end_bindings): Delete unused variable.
|
||
|
||
* unroll.c (iteration_info): Mark parameter `loop' with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* fixinc/server.c (load_data): Return NULL if the marker line is
|
||
not found.
|
||
(run_shell): If load_data returns NULL, retry the command once, in
|
||
a new shell.
|
||
|
||
* configure: Rebuilt.
|
||
|
||
2000-02-09 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* gcc/fixincludes: ** DELETED **
|
||
* gcc/fixcpp: ** DELETED **
|
||
* gcc/fixinc-nt.sed: ** DELETED **
|
||
* gcc/just-fixinc: ** DELETED **
|
||
* gcc/Makefile.in: Removed out-dated commentary
|
||
* gcc/configure.in: Removed fast-fixincludes disablement.
|
||
* MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
|
||
|
||
2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
|
||
* function.c (thread_prologue_and_epilogue_insns): Uncomment
|
||
last change.
|
||
|
||
2000-02-09 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (delete_insn): Don't delete user labels at -O0.
|
||
|
||
2000-02-09 Robert Lipe <robertl@sco.com>
|
||
|
||
* Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
|
||
Don't link with HOST_LIBS.
|
||
|
||
2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* configure.in: Correct --help text for --with-dwarf2.
|
||
Put tm-dwarf2.h after other tm files, if it's requested.
|
||
* configure: Regenerate.
|
||
* config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
|
||
defining it.
|
||
|
||
2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h: Provide HASHNODE typedef and forward decl of
|
||
struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
|
||
DEFINITION, struct hashnode, struct macrodef, struct
|
||
definition, scan_decls prototype, default defn of
|
||
INCLUDE_LEN_FUDGE moved elsewhere.
|
||
|
||
* cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
|
||
definition, and struct hashnode moved here. Remove the unused
|
||
'predefined' field from struct definition. Replace the 'args'
|
||
union with its sole member. All users updated (cpphash.c).
|
||
Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
|
||
multiple include guard.
|
||
|
||
* cpphash.c (hashf): Make static; use better algorithm; drop
|
||
HASHSIZE parameter; return an unsigned int.
|
||
(cpp_lookup): Drop HASH parameter. PFILE parameter is
|
||
used. Calculate HASHSIZE modulus here.
|
||
(cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
|
||
here.
|
||
(create_definition): Drop PREDEFINITION parameter.
|
||
* cpplib.c (do_define): Don't calculate a hash value here.
|
||
Don't pass (keyword == NULL) to create_definition.
|
||
|
||
* scan.h: Prototype scan_decls here.
|
||
* cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
|
||
* cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
|
||
callers of cpp_lookup and cpp_install updated.
|
||
|
||
* cpphash.c (macarg): Hoist all the flag diddling out of the
|
||
function...
|
||
(macroexpand): ... and out of the loop that calls macarg.
|
||
Skip over the initial paren before macro arguments with
|
||
cpp_get_non_space_token; point may be some distance before
|
||
that paren. Abort if it's not there.
|
||
|
||
* cpplib.c (parse_clear_mark): Delete function.
|
||
(parse_set_mark, parse_goto_mark): Make static.
|
||
(ACTIVE_MARK_P): New macro.
|
||
(skip_block_comment, skip_line_comment): Do not bump the line
|
||
if ACTIVE_MARK_P is true.
|
||
(cpp_pop_buffer): The buffer to be popped may not have an
|
||
active mark.
|
||
(cpp_get_token): When looking for the initial paren before
|
||
macro arguments, only set a mark in a file buffer, Always
|
||
return to that mark before proceeding to call macroexpand or
|
||
return a NAME token.
|
||
|
||
* cpplib.h: Remove prototypes of parse_set_mark,
|
||
parse_clear_mark, parse_goto_mark.
|
||
(struct cpp_options): Rename 'put_out_comments' to
|
||
'discard_comments' and invert its sense.
|
||
* cppinit.c, cpphash.c, cpplib.c: All users of
|
||
put_out_comments changed to use discard_comments, with
|
||
opposite sense.
|
||
|
||
2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* function.c (thread_prologue_and_epilogue_insns): Don't delete
|
||
the edge from a block that both jumps and falls through to the
|
||
fallthru block.
|
||
|
||
2000-02-09 Scott Bambrough <scottb@netwinder.org>
|
||
|
||
* config/arm/arm.md (movsi): In PIC mode, make sure that a
|
||
constant source address is legitimate.
|
||
|
||
2000-02-09 Philip Blundell <pb@futuretv.com>
|
||
|
||
* config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
|
||
correctly.
|
||
|
||
* config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
|
||
generating PIC.
|
||
(LEGITIMATE_PIC_OPERAND): Disallow references to labels.
|
||
|
||
2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
|
||
ends with a newline and a NUL. Don't be so clever manipulating
|
||
strings.
|
||
|
||
Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
|
||
not to BIGGEST_ALIGNMENT.
|
||
|
||
2000-02-08 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
|
||
* dwarf2out.c (dwarf_cfi_name): Print name of new constant.
|
||
(reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
|
||
(output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
|
||
* frame.c (execute_cfa_insn): Handle
|
||
DW_CFA_GNU_negative_offset_extended.
|
||
|
||
2000-02-08 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (tidy_fallthru_edges): Split out from ...
|
||
(delete_unreachable_blocks): ... here.
|
||
(find_basic_blocks): Use it.
|
||
|
||
Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
|
||
|
||
2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
|
||
(gen_protos.o): Don't depend on cpplib.h or cpphash.h.
|
||
(fix-header.o): Don't depend on cpphash.h.
|
||
|
||
* scan.c (hashstr): New function.
|
||
* scan.h: Prototype it.
|
||
* fix-header.c: Don't include cpphash.h. Use hashstr.
|
||
* gen-protos.c: Don't include cpphash.h or cpplib.h. Use
|
||
hashstr. Report hash table statistics. Add private
|
||
definition of xrealloc.
|
||
|
||
2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* i386.h (TARGET_SWITCHES): Fix typo in option name.
|
||
|
||
2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* function.c (thread_prologue_and_epilogue_insns): Don't replace
|
||
jumps with returns unless they are jumps to the fallthru block.
|
||
|
||
Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (addqi3_cc): Fix constraints.
|
||
|
||
Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
|
||
|
||
2000-02-07 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
|
||
carriage return after a macro name.
|
||
|
||
2000-02-07 Fred Fish <fnf@be.com>
|
||
|
||
* i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
|
||
so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
|
||
|
||
2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (deps_output): Count spacers in deps_column.
|
||
|
||
2000-02-07 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cppinit.c (initialize_dependency_output): If there is no
|
||
suffix, don't try to look for known suffixes. Use strrchr.
|
||
(cpp_start_read): Remove duplicate initialization.
|
||
|
||
Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* calls.c (compute_argument_block_size): New argument
|
||
preferred_stack_boundary.
|
||
(expand_call): update cfun->preferred_stack_boundary, update call of
|
||
compute_argument_block_size
|
||
(emit_library_call): Increate cfun->preferred_stack_boundary
|
||
to PREFERRED_STACK_BOUNDARY
|
||
(emit_library_call_value): Likewise.
|
||
* explow.c (allocate_dynamic_stack_spave): Likewise.
|
||
* function.c (prepare_function_start): Set
|
||
cfun->preferred_stack_boundary
|
||
* function.h (struct function): Add preferred_stack_boundary field.
|
||
* integrate.c (expand_inline_function): Update
|
||
cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
|
||
(copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
|
||
* i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
|
||
|
||
2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
|
||
cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
|
||
cpp_pedwarn, cpp_pedwarn_with_line,
|
||
cpp_pedwarn_with_file_and_line): Move to cpperror.c.
|
||
(cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
|
||
v_cpp_error_with_line, v_cpp_warning_with_line,
|
||
cpp_message_from_errno, cpp_perror_with_name): Delete.
|
||
|
||
* cpperror.c (cpp_print_containing_files): Take starting
|
||
buffer as argument.
|
||
(cpp_file_line_for_message): Rename to cpp_print_file_and_line.
|
||
(v_cpp_message): Now called directly by all entry points.
|
||
Remove -1 case.
|
||
(cpp_pfatal_with_name, cpp_message): Delete.
|
||
(cpp_notice_from_errno, cpp_ice): New functions.
|
||
(cpp_notice): Is now for reporting error conditions, just
|
||
without an associated file.
|
||
(cpp_error, cpp_error_with_line): Don't do anything if
|
||
opts->inhibit_errors is on.
|
||
(cpp_pedwarn_with_file_and_line): Take column argument also.
|
||
|
||
* cpplib.h: Update prototypes of exported functions.
|
||
(struct cpp_options): Add inhibit_errors.
|
||
|
||
* cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
|
||
non-error messages. Include intl.h.
|
||
|
||
* cppinit.c, cppmain.c: Likewise. Also, use
|
||
cpp_notice_from_errno instead of cpp_perror_with_name or
|
||
cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
|
||
|
||
* cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
|
||
report internal errors.
|
||
|
||
* cpplib.c (do_define): Switch bcopy to memcpy.
|
||
Give cpp_pedwarn_with_file_and_line a dummy column argument.
|
||
|
||
* cpplib.c (copy_rest_of_line): Revert previous change: don't
|
||
bail out early if we hit a line comment.
|
||
|
||
2000-02-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (flow_delete_insn, make_edge, remove_edge): Export.
|
||
* basic-block.h: Declare them.
|
||
* emit-rtl.h (active_insn_p): New.
|
||
(next_active_insn, prev_active_insn): Use it.
|
||
* rtl.h: Declare it.
|
||
* function.c (emit_return_into_block): New.
|
||
(thread_prologue_and_epilogue_insns): Insert return insns instead
|
||
of epilogues when possible.
|
||
* jump.c (jump_optimize_1): Remove code to insert a return insn
|
||
on the fallthru to the exit block.
|
||
|
||
* i386.c (ix86_can_use_return_insn_p): Fail for large poped args
|
||
and for non-empty stack frames.
|
||
* i386.md (return): Expand to return-pop as needed.
|
||
|
||
2000-02-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* simplify-rtx.c (simplify_relational_operation): Canonicalize
|
||
constant to op1 for testing.
|
||
|
||
2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (*ldi_on_overflow): New pattern.
|
||
(fixuns_truncqfqi2): Use it.
|
||
|
||
2000-02-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
|
||
as a TYPE_LEA insn.
|
||
|
||
* i386.md (widening and peepholes): Mask the constant instead of
|
||
using gen_lowpart.
|
||
|
||
2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
|
||
input pointer before possibly branching off to the backslash
|
||
code.
|
||
* cpphash.c (macroexpand): Correctly delete \r escapes when
|
||
stringifying parameters.
|
||
* cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
|
||
if we can; bail out early if we hit a line comment.
|
||
(handle_directive): Treat '# 123' in an .S file just like
|
||
'# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
|
||
Return 1 for '# not_a_directive'.
|
||
(get_directive_token): Pop macro buffers here, so that
|
||
cpp_get_token can't sneakily move past a newline.
|
||
Add sanity checks.
|
||
(cpp_get_token): goto randomchar if handle_directive returns 0.
|
||
|
||
* cppalloc.c: Update copyright.
|
||
* cpplib.c: Merge all the static function prototypes into one
|
||
block.
|
||
* cpplib.h: Remove #if 0 block.
|
||
|
||
* cpperror.c: Remove #ifdef EMACS block.
|
||
* cppmain.c: Likewise.
|
||
* cpphash.c: Remove #if 0 blocks.
|
||
* cppinit.c: Remove #if 0 blocks, and the -lint option.
|
||
* cpplib.c: Remove #if 0 blocks and code referencing
|
||
pcp_inside_if or for_lint. Remove duplicate error message.
|
||
Fix error messages for #else after #else or #elif. Reformat.
|
||
Remove archaic TODO list.
|
||
* cpplib.h: Remove pcp_inside_if and for_lint flags.
|
||
|
||
2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* i386/osf1elf.h: Add missing backslash to multiline string.
|
||
|
||
2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
|
||
|
||
2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (c-common.o): Depend on $(EXPR_H).
|
||
|
||
* c-common.c: Include expr.h.
|
||
|
||
* c-pragma.c (mark_align_stack): Add prototype.
|
||
|
||
* caller-save.c (add_stored_regs): Likewise.
|
||
|
||
* combine.c (record_promoted_value): Likewise.
|
||
|
||
* i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
|
||
Likewise.
|
||
|
||
* cppinit.c (new_pending_define): Likewise.
|
||
|
||
* cpplib.c (skip_block_comment, skip_line_comment): Likewise.
|
||
|
||
* dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
|
||
AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
|
||
AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
|
||
class_scope_p): Likewise.
|
||
|
||
* dwarf2out.h (dwarf2out_set_demangle_name_func,
|
||
dwarf2out_add_library_unit_info): Likewise.
|
||
|
||
* ggc.h (ggc_page_print_statistics): Likewise.
|
||
|
||
* haifa-sched.c (propagate_deps): Likewise.
|
||
|
||
* reg-stack.c (next_flags_user, record_label_references): Likewise.
|
||
|
||
* rtl.h (set_stack_check_libfunc): Likewise.
|
||
|
||
* toplev.h (set_fatal_function): Likewise.
|
||
|
||
* toplev.c (set_fatal_function): Delete prototype.
|
||
|
||
* diagnostic.c: Deconstify functions returning malloc'ed ptrs.
|
||
|
||
2000-02-05 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
|
||
(FUNC_END): Likewise.
|
||
|
||
2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* caller-save.c: Include tm_p.h.
|
||
|
||
2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
|
||
|
||
2000-02-04 Neil Booth <NeilB@earthling.net>
|
||
|
||
* cccp.c (main): Check 'dir' for a NULL pointer before passing
|
||
it to strcmp.
|
||
|
||
2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* recog.h: Remove NO_MD_PROTOTYPES ifdefs.
|
||
* genflags.c: Use the max_operand_1 logic from genemit.c to
|
||
calculate how many arguments gen_insn prototypes have. Remove
|
||
NO_MD_PROTOTYPES ifdefs from the generated file.
|
||
* genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
|
||
file. Cast gen_insn initializers to insn_gen_fn.
|
||
* config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
|
||
* gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
|
||
|
||
2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc/Makefile.in (HDR): Add machname.h.
|
||
(clean): Likewise.
|
||
|
||
2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
|
||
(c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
|
||
(c4x_cpu_version): Ditto.
|
||
* config/c4x/c4x-protos.h: ... here.
|
||
|
||
2000-02-04 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c (add_abstract_origin_attribute): Don't call
|
||
gen_abstract_function on our context if we're a nested function.
|
||
|
||
2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
|
||
* config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
|
||
|
||
2000-02-04 Bruce Korb <bkorb@gnu.org>
|
||
|
||
* fixinc/genfixes(machname.h):
|
||
Move the functionality from gen-machine.h into this file.
|
||
UNdef MN_NAME_PAT if there are no names to change.
|
||
Also, be a little kinder when AutoGen is not present.
|
||
|
||
* fixinc/Makefile.in(machname.h):
|
||
Change the generation rule to use genfixes.
|
||
|
||
* fixinc/fixfixes.c(machine_name):
|
||
machine_name_fix's functionality now dependent upon whether
|
||
MN_NAME_PAT is defined.
|
||
|
||
* fixinc/fixtests.c(machine_name):
|
||
ditto.
|
||
|
||
* fixinc/fixlib.c(mn_get_regexps): conditional on definition
|
||
of MN_NAME_PAT.
|
||
|
||
* fixinc/fixlib.h(mn_get_regexps):
|
||
ditto
|
||
|
||
* fixinc/gen-machine.h: DELETED
|
||
|
||
2000-02-04 Jan Hubicka <jh@suse.cz>
|
||
Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (SAVE_REGS_FIRST): Remove.
|
||
(ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
|
||
(ix86_compute_frame_size): Likewise.
|
||
(ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
|
||
(ix86_emit_restore_regs): Remove.
|
||
(ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
|
||
when a frame pointer is in use.
|
||
(ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
|
||
instead of pop to restore a register when profitable; emit leave
|
||
when profitable.
|
||
(ix86_attr_length_default): Handle pro_epilogue_adjust_stack
|
||
as a TYPE_LEA insn.
|
||
(ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
|
||
* i386.md (prologue_allocate_stack): Remove.
|
||
(epilogue_deallocate_stack): Remove.
|
||
(pro_epilogue_adjust_stack): New.
|
||
|
||
2000-02-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* function.c (diddle_return_value): Rework to use a callback function.
|
||
Use current_function_return_rtx if it's been set up.
|
||
(do_clobber_return_reg, clobber_return_register): New.
|
||
(do_use_return_reg, use_return_register): New.
|
||
(expand_function_end): Use them.
|
||
* stmt.c (expand_null_return): Likewise.
|
||
* function.h: Declare them.
|
||
* flow.c (mark_regs_live_at_end): Use diddle_return_value.
|
||
(mark_reg): Change arguments as appropriate for callback.
|
||
* integrate.c (expand_inline_function): Revert 19 Jan change.
|
||
|
||
Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* tm.texi (Values in Registers): Fix typo: "fo" "for".
|
||
(Misc): Say the scheduler, not the Haifa scheduler.
|
||
|
||
2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
|
||
when in_mem is set. Update all callers.
|
||
|
||
2000-02-04 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386/openbsd.h (INT_ASM_OP): Define.
|
||
|
||
Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* tm.texi: Fix various typos.
|
||
|
||
Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
|
||
(MD_STARTFILE_PREFIX_1): New macro.
|
||
|
||
Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (movstrsi, clrstrsi): Support variable sized copies, align
|
||
destination when needed.
|
||
(strmovsi, strsetsi): New expander.
|
||
(strmovsi_1, strsetsi_1): New pattern.
|
||
* i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
|
||
TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
|
||
(TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
|
||
* invoke.texi (align-stringops, inline-all-stringops): Document.
|
||
|
||
Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
|
||
|
||
* i386/netbsd.h (INT_ASM_OP): Define.
|
||
|
||
2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (cpp_reader): Add new flag, no_directives.
|
||
* cpphash.c (macarg): Set it.
|
||
* cpplib.c (handle_directive): If no_directives is on and we
|
||
find a directive, issue an error and discard the line.
|
||
|
||
Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
|
||
FP constants. Add ! TARGET_FPU check for FP constants.
|
||
|
||
2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* flow.c (find_basic_blocks): Don't kill label_value_list
|
||
here.
|
||
(cleanup_cfg): Kill it here.
|
||
|
||
Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (store_field): Ensure ALIGN is no stricter than the
|
||
alignment of EXP.
|
||
|
||
2000-02-02 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (delete_insn): Partially revert 19 Jan change;
|
||
don't convert unused code labels to notes at -O0.
|
||
|
||
2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* toplev.c (rest_of_compilation): Run rebuild_jump_labels after
|
||
split_all_insns to recreate REG_LABEL notes for flow2 pass.
|
||
|
||
2000-02-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (general_no_elim_operand): New.
|
||
(nonmemory_no_elim_operand): New.
|
||
(ix86_expand_move): Copy eliminable operands before a push.
|
||
* i386-protos.h: Declare new functions.
|
||
* i386.h (CAN_ELIMINATE): Simplify.
|
||
(PREDICATE_CODES): Update.
|
||
* i386.md (push insns): Don't allow eliminable register operands.
|
||
|
||
2000-02-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_regs_live_at_end): Follow expand_function_end and
|
||
replace BLKmode with DECL_RTL's mode.
|
||
|
||
2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* frame.c (find_fde): Convert for loop to do-while so compiler
|
||
sees it's always executed at least once.
|
||
* libgcc2.c (BBINBUFSIZE): Kill.
|
||
(__bb_init_prg): Use fgets.
|
||
(__bb_exit_trace_func): Don't paste strings.
|
||
* unroll.c (unroll_loop): Initialize unroll_type, not
|
||
unroll_number, and tweak logic to match.
|
||
|
||
* i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
|
||
all failure paths.
|
||
(ix86_flags_dependant): Likewise. Disentangle control flow.
|
||
(ix86_sched_reorder): Break guts out to
|
||
ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
|
||
(ix86_sched_reorder_ppro): Initialize pair2 and insnp before
|
||
any possible use.
|
||
|
||
* i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
|
||
use string concatenation. Don't save and restore esi.
|
||
|
||
* fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
|
||
(machname.h): Remove script to separate file. Use two-step
|
||
sequence so target is not created if script fails.
|
||
* fixinc/gen-machname.h: New file. Handle case where no non-reserved
|
||
identifiers are defined.
|
||
* fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
|
||
an empty string, machine_name doesn't need to do anything at
|
||
all.
|
||
(is_cxx_header): Add more cases to regexp.
|
||
* fixinc/fixlib.h: Update prototype.
|
||
* fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
|
||
mn_get_regexps.
|
||
* fixinc/fixincl.c: Define NO_BOGOSITY.
|
||
|
||
* fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
|
||
(hp_sysfile): Add missing comma.
|
||
(math_exception): Put the wrapper ifdefs at the beginning and
|
||
the end of the file.
|
||
* fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
|
||
|
||
2000-02-01 Richard Henderson <rth@cygnus.com>
|
||
|
||
* sparc.c (fp_zero_operand): Turn into a normal predicate.
|
||
Use CONST0_RTX. Update all callers.
|
||
* sparc.h, sparc-protos.h: Update accordingly.
|
||
* sparc.md (fp mov insns): Use fp_zero_operand directly
|
||
where applicable.
|
||
|
||
Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
|
||
example.
|
||
|
||
2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (specs.ready): New target.
|
||
(fixinc.sh): Depend on `specs.ready' instead of `specs'.
|
||
|
||
2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* fixinc.irix: Use unique filenames for writing into /tmp,
|
||
* fixinc.ptx: Likewise.
|
||
* fixinc.sco: Likewise.
|
||
* fixinc.svr4: Likewise.
|
||
* fixinc.winnt: Likewise.
|
||
|
||
2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* tsystem.h: New file.
|
||
|
||
* Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
|
||
s-crtS): Depend on tsystem.h.
|
||
|
||
* crtstuff.c: Include tsystem.h.
|
||
* frame.c: Likewise.
|
||
* libgcc2.c: Likewise.
|
||
|
||
Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* builtins.c (expand_builtin_memset): Expand for variable sized
|
||
lengths too.
|
||
|
||
2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
|
||
|
||
* config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
|
||
on ABI.
|
||
|
||
Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* dwarfout.c (SHORT_TYPE_SIZE): Correct default.
|
||
|
||
* tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
|
||
|
||
2000-01-31 Chandra Chavva <cchavva@cygnus.com>
|
||
|
||
* combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
|
||
case 3->2 combining (combining with splitting) in which 2 is CC0
|
||
setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
|
||
checked at the begining of the function with the aid of calling
|
||
function 'can_combine_p'.
|
||
|
||
2000-01-31 Dave Brolley <brolley@redhat.com>
|
||
|
||
* cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
|
||
|
||
2000-01-31 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
|
||
new label.
|
||
|
||
2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
|
||
|
||
* sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
|
||
PROTO -> PARAMS.
|
||
|
||
2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
|
||
i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
|
||
i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
|
||
i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
|
||
i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
|
||
i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
|
||
i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
|
||
i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
|
||
i386/vxi386.h, i386/win-nt.h, i386/win32.h:
|
||
Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
|
||
|
||
* i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
|
||
Add %(cpp_cpu) to CPP_SPEC.
|
||
|
||
* i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
|
||
Add %(cc1_cpu) to CC1_SPEC.
|
||
|
||
2000-01-28 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
* c-decl.c (c_decode_option): Accept optional numeric argument to
|
||
-Wformat and set warn_format.
|
||
* c-common.c: Don't emit warning about non-constant printf format
|
||
string unless warn_format > 1.
|
||
|
||
2000-01-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.md (return_internal): Allow after reload only.
|
||
|
||
2000-01-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (ix86_compute_frame_size): Omit padding1 if the
|
||
local frame size is zero.
|
||
|
||
2000-01-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_expand_epilogue): Don't emit the return insn.
|
||
* alpha.h (EPILOGUE_USES): New. Mark $26 live.
|
||
* alpha.md (return): Turn into an expander.
|
||
(return_internal): Don't use $26.
|
||
(epilogue): Emit the return insn.
|
||
|
||
2000-01-30 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.md (negtf2, abstf2): Fix word order thinko.
|
||
(extendsftf2): New.
|
||
(trunctfsf2): Avoid intermediate rounding errors.
|
||
|
||
2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppfiles.c (find_position): Drop 'colp' argument, return the
|
||
new line base.
|
||
(read_and_prescan): Adjust to match. Don't ever manipulate
|
||
line or line_base except via find_position.
|
||
|
||
2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-parse.in: Apply Ulrich's changes from c-parse.y.
|
||
* c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
|
||
Regenerate.
|
||
|
||
2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpperror.c (cpp_file_line_for_message): If 'line' is zero,
|
||
just print "<command line>". If 'filename' is null or an
|
||
empty string, print "<stdin>" for the filename.
|
||
* cpplib.c (do_define): Don't print the 'location of the
|
||
previous definition' message if we're still parsing the
|
||
command line.
|
||
(cpp_pedwarn_with_file_and_line): Always call
|
||
cpp_file_line_for_message.
|
||
|
||
2000-01-29 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* flow.c (mark_regs_live_at_end): Fix typo.
|
||
|
||
2000-01-28 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
* c-common.c: Adjust variable names, comments, help strings to c99.
|
||
* c-lex.c: Likewise.
|
||
* c-parse.y: Likewise.
|
||
* c-tree.h: Likewise.
|
||
* cccp.c: Likewise.
|
||
* cpplib.h: Likewise.
|
||
* c-decl.c: Likewise. Recognize options with names "*99" as well.
|
||
* cppinit.c: Likewise.
|
||
|
||
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
|
||
* c4x.c: Define the optab rtx values.
|
||
(c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
|
||
(c4x_emit_libcall): Use new optab rtx values.
|
||
(c4x_emit_libcall3): Likewise.
|
||
(c4x_emit_libcall_mulhi): Likewise.
|
||
* c4x-protos.h: Add prototypes for optab rtx values and change
|
||
prototypes for above c4x_emit_libcall functions.
|
||
|
||
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* c4x.c (c4x_output_ascii): Restrict line length of output when TI
|
||
syntax is used.
|
||
(c4x_function_prologue): Use regnames intead of float_reg_names when
|
||
TI syntax is used.
|
||
(c4x_function_epilogue): Likewise.
|
||
(c4x_print_operand): Likewise.
|
||
* c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
|
||
* c4x.md (set_high): Disable for TARGET_TI.
|
||
|
||
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
|
||
of framepointer + constant to ADDR_REGS class.
|
||
* c4x.md (addqi3, addqi3_noclobber_reload): Update.
|
||
* c4x.c (std_or_reg_operand): New function.
|
||
* c4x-protos.h (std_or_reg_operand): Prototype it.
|
||
|
||
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||
|
||
* t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
|
||
object names as libgcc2.c.
|
||
* libgcc.S: Use newly defined names.
|
||
|
||
Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
|
||
* sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
|
||
function.
|
||
* sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
|
||
* basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
|
||
(FLOW_LOOP_LAST_BLOCK): Likewise.
|
||
|
||
2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* basic-block.h (struct loop): New fields 'first' and 'last'.
|
||
* flow.c (flow_loops_find): Compute loop->first and loop->last.
|
||
(flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
|
||
and loop->last to check for NOTE_INSN_LOOP_END.
|
||
|
||
Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
|
||
|
||
* predict.c (estimate_probability): Use the new FIRST and LAST fields
|
||
of the loop descriptor rather than HEADER and LATCH. Also added
|
||
missing break statements as well making some coding style modifications
|
||
as suggested by Michael Hayes.
|
||
|
||
2000-01-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (find_basic_blocks): Remove do_cleanup argument.
|
||
Break out that code ...
|
||
(cleanup_cfg): ... here.
|
||
(commit_one_edge_insertion): Detect a return instruction being
|
||
emitted to an edge. Emit a barrier following; clear fallthru.
|
||
(commit_edge_insertions): Verify CFG consistency.
|
||
* function.c (expand_function_start): Kill unused variable.
|
||
(expand_function_end): Likewise.
|
||
(thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
|
||
to insert the epilogue.
|
||
|
||
* gcse.c (gcse_main): Adjust for find_basic_blocks change.
|
||
(delete_null_pointer_checks): Likewise.
|
||
* output.h: Likewise.
|
||
* reg-stack.c (reg_to_stack): Likewise.
|
||
* toplev.c (rest_of_compilation): Likewise. Run
|
||
thread_prologue_and_epilogue_insns after rebuilding the CFG.
|
||
|
||
2000-01-28 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (flow.o): Revert 24 Jan change.
|
||
* flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
|
||
FUNCTION_VALUE result to DECL_RESULT's mode.
|
||
|
||
* haifa-sched.c (schedule_insns): Don't recompute reg info
|
||
after reload.
|
||
|
||
2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* configure.in: Make --enable-cpplib the default.
|
||
* configure: Regenerate.
|
||
* gcc.dg/990119-1.c: No longer expected to fail.
|
||
|
||
2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* jump.c (jump_optimize_1): Delete an optimization that is also done
|
||
by merge_blocks in flow.
|
||
|
||
2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* diagnostic.c (build_message_string, output_printf,
|
||
line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
|
||
(build_location_prefix): Fix non-literal format string.
|
||
|
||
2000-01-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.md (trunctfsf2): New.
|
||
|
||
2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
|
||
|
||
* configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
|
||
|
||
2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppinit.c (cpp_handle_option): Recognize C++ comments under
|
||
-std=gnu89.
|
||
* cpplib.c (skip_block_comment, skip_line_comment): Split code
|
||
out of...
|
||
(skip_comment) ... here. Permit C++ comments in system
|
||
headers always. Warn about C++ comments in user code under
|
||
-std=gnu89 -pedantic.
|
||
(copy_comment): Use skip_comment.
|
||
(cpp_skip_hspace, cpp_get_token): skip_comment can no longer
|
||
return EOF.
|
||
(consider_directive_while_skipping, do_else, do_endif): Call
|
||
validate_else unconditionally.
|
||
(validate_else): Check CPP_PEDANTIC here. Accept non-comment
|
||
text after the conditional in a system header.
|
||
* cpplib.h (struct cpp_buffer): Add flag
|
||
warned_cplusplus_comments.
|
||
|
||
2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
|
||
Use unshare_all_rtl_1.
|
||
(unshare_all_rtl_again): New function.
|
||
(unshare_all_rtl_1): New function split out of unshare_all_rtl.
|
||
|
||
* function.c (purge_addressof_1): Use unshare_all_rtl_again
|
||
rather than resetting the 'used' flags ourself.
|
||
|
||
* toplev.c (rest_of_compilation): Add current_function_decl
|
||
to the unshare_all_rtl call.
|
||
* tree.h: Prototype unshare_all_rtl.
|
||
* rtl.h: Prototype unshare_all_rtl_again here.
|
||
|
||
2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
|
||
|
||
* genoutput.c (output_prologue): Include ggc.h in generated
|
||
files.
|
||
* Makefile.in (insn-output.o): Depends on ggc.h.
|
||
|
||
2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
|
||
Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
|
||
Remove redundant include of xm-ns32k.h.
|
||
* ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
|
||
Remove redundant include of xm-ns32k.h.
|
||
* ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
|
||
Remove redundant include of xm-ns32k.h.
|
||
* ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
|
||
|
||
* ns32k/ns32k.h: Update comment on multiply-add instructions.
|
||
(TARGET_SWITCHES): Add documentation strings.
|
||
(DWARF_FRAME_REGNUM): Override default definition.
|
||
(REG_CLASS_CONTENTS): Add comments.
|
||
(SUBSET_P): Format to reduce line length.
|
||
(SMALL_REGISTER_CLASSES): Make a run time option.
|
||
(GO_IF_NONINDEXED_ADDRESS): Reformat.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
|
||
dereferencing it. Braces to avoid "ambiguous else" were misplaced.
|
||
(regclass_map): fix typo in comment.
|
||
* ns32k/ns32k.c: Add spaces before parentheses for consistant style.
|
||
Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
|
||
(trace, reg_or_mem_operand): Delete, unused function.
|
||
(calc_address_cost): Small offsets are cheaper than large ones.
|
||
(expand_block_move): Generate more efficient code when bytes is a
|
||
known at compile time.
|
||
* ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
|
||
(udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
|
||
instead of reg_or_mem_operand.
|
||
|
||
* ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
|
||
not general_operand. Similarly use "=rm" or stricter, not "=g".
|
||
For input operands, use stricter constraints than "g" if not
|
||
general_operand. Similarly use stricter predicate than
|
||
"general_operand" when stricter constraints than "g" are present,
|
||
except for matching constraints.
|
||
(movstrsi): Use "memory_operand" for operands 0 and 1.
|
||
(truncsiqi2, truncsihi2, trunchiqi2): Remove.
|
||
(udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
|
||
not reg_or_mem_operand.
|
||
(udivmoddisi4): Ditto.
|
||
Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
|
||
Use nonimmediate_operand for operand 3, not register_operand.
|
||
(udivmoddiqi4_internal): Use register_operand for operand 1, not
|
||
reg_or_mem_operand.
|
||
|
||
2000-01-27 Fred Fish <fnf@be.com>
|
||
|
||
* gthr-posix.h: Fix typo; compatibily -> compatibility.
|
||
* gthr-single.h: Likewise.
|
||
* gthr-solaris.h: Likewise.
|
||
* gthr-vxworks.h: Likewise.
|
||
* gthr-win32.h: Likewise.
|
||
* gthr.h: Likewise.
|
||
|
||
2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cppinit.c: Add " (cpplib)" to end of string printed by
|
||
-v / --version.
|
||
|
||
2000-01-27 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_emit_conditional_move): Use VOIDmode when
|
||
testing for a signed comparison.
|
||
(alpha_emit_floatuns): New.
|
||
* alpha-protos.h: Declare it.
|
||
* alpha.md (floatunsdisf2, floatunsdidf2): New.
|
||
(extendsfdf2): Tidy.
|
||
|
||
2000-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
|
||
no -g option specifying debugging format, default to -gstabs+.
|
||
|
||
Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* calls.c (special_function_p): New argument fork_or_exec.
|
||
(expand_call): When profile_arc_flag is set and the function
|
||
is in the fork_or_exec group, call __bb_fork_func first.
|
||
* libgcc2.c, _bb module (__bb_fork_func): New function.
|
||
(__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
|
||
output file.
|
||
* config/svr4.h (TARGET_HAS_F_SETLKW): Define.
|
||
* tree.h (special_function_p): Update prototype.
|
||
|
||
2000-01-26 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_split_tfmode_pair): New.
|
||
* alpha-protos.h: Declare it.
|
||
* alpha.md (abstf2, negtf2): New.
|
||
(movtf insn): Add input G constraint.
|
||
(movtf splitter): Use alpha_split_tfmode_pair.
|
||
|
||
2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* i386/cygwin.h: PROTO -> PARAMS.
|
||
|
||
2000-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
|
||
TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
|
||
using _Qp_cmp/_Q_cmp and testing the return value.
|
||
(print_operand): Call reverse_condition_maybe_unordered if
|
||
we are handling CCFPmode or CCFPEmode.
|
||
Handle ORDERED, UN* and LTGT comparisons.
|
||
* config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
|
||
if not TARGET_HARD_QUAD.
|
||
(seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
|
||
bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
|
||
Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
|
||
Adjust gen_b* calls so that they reflect return comparison of
|
||
sparc_emit_float_lib_cmp.
|
||
|
||
2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
|
||
incoming operands array is large enough for one more operand.
|
||
(alpha_emit_xfloating_arith): Likewise.
|
||
|
||
2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
|
||
file with one line and no trailing newline.
|
||
Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
|
||
* fixinc/fixtests.c (machine_name_test): Fix fencepost error
|
||
checking if the match is on the line.
|
||
* fixinc/gnu-regex.c: Provide regerror not __regerror.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* sparc.c (output_cbranch): Fix accidental squashing of the
|
||
fp branch pre-delay nop.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* tree.def (UNNE_EXPR): Remove.
|
||
* c-typeck.c (build_binary_op): Don't handle it.
|
||
* expr.c (expand_expr, do_jump, do_store_flag): Likewise.
|
||
|
||
* rtl.def (UNNE): Remove.
|
||
(LTGT): Add.
|
||
* jump.c (reverse_condition): Update accordingly.
|
||
(swap_condition): Likewise.
|
||
(comparison_dominates_p): Handle unordered comparisons.
|
||
(reverse_condition_maybe_unordered): New.
|
||
* rtl.h (reverse_condition_maybe_unordered): Declare.
|
||
|
||
* sparc.c (select_cc_mode): Update for UNNE/LTGT.
|
||
(output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
|
||
* sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
|
||
* sparc.md (bltgt): New.
|
||
|
||
2000-01-25 Nick Clifton <nickc@redhat.com>
|
||
|
||
* emit-rtl.c (emit_insn): Only check machine class insns for
|
||
improper emission of a RETURN.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* Makefile.in (flow.o): Depend on $(EXPR_H).
|
||
* flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
|
||
duplicate the structure of diddle_return_value for keeping regs live.
|
||
|
||
2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.c (current_loop_info): Delete.
|
||
(consec_sets_invariant_p): Add loop argument, update callers.
|
||
(get_condition_for_loop): Likewise.
|
||
(count_nonfixed_reads, update_giv_derive): Likewise.
|
||
(simplify_giv_expr, general_induction_var): Likewise.
|
||
(consec_sets_giv, recombine_givs): Likewise.
|
||
(move_movables): Delete loop_start and loop_end arguments,
|
||
add loop argument, and update callers.
|
||
(find_mem_givs, check_final_value): Likewise.
|
||
(record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
|
||
(loop_invariant_p): Rename from invariant_p, add loop argument, and
|
||
update callers.
|
||
(basic_induction_var): Add loop argument, delete loop_level argument,
|
||
and update callers.
|
||
* unroll.c (iteration_info): Delete loop_start and loop_end arguments,
|
||
add loop argument, and update callers.
|
||
(find_splittable_regs, find_splittable_givs): Likewise.
|
||
(reg_dead_after_loop, loop_find_equiv_value): Likewise.
|
||
(final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
|
||
(biv_total_increment): Delete loop_start and loop_end arguments;
|
||
update callers.
|
||
(precondition_loop_p): Delete loop_start and loop_info arguments;
|
||
update callers.
|
||
* loop.h (get_condition_for_loop): Add loop argument.
|
||
(biv_total_increment): Delete loop_start and loop_end arguments.
|
||
(precondition_loop_p): Delete loop_start and loop_info arguments;
|
||
add loop argument.
|
||
(final_biv_value): Delete loop_start and loop_end arguments;
|
||
add loop argument.
|
||
(final_giv_value, back_branch_in_range_p): Likewise.
|
||
|
||
2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
|
||
|
||
* config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
|
||
|
||
2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
|
||
|
||
* Makefile.in (c-gperf.h) : Change the "See" pointer to
|
||
point to the new "generated_files" doc.
|
||
|
||
2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/fp-bit.c (_unord_f2): Fix typo.
|
||
|
||
2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
|
||
c-typeck.c, objc/objc-act.c: Remove all references to obstack
|
||
functions obsoleted by GC, such as push_obstacks_nochange,
|
||
end_temporary_allocation, savealloc, saveable_tree_cons, etc.
|
||
and code which existed only to decide whether or not to call
|
||
them. Remove now-unused NESTED argument from start_function;
|
||
all callers changed. Do not change behavior based on ggc_p.
|
||
The use of the ixp_obstack in c-iterate.c and the util_obstack
|
||
in objc/objc-act.c remain; these are not obsoleted by garbage
|
||
collection.
|
||
* c-tree.h: Update prototype for start_function.
|
||
|
||
* c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
|
||
|
||
2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.md (zero_extendsidi2_internal): Disable for
|
||
mips16.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* sparc-protos.h (select_cc_mode): Declare.
|
||
* sparc.c (select_cc_mode): New. Handle unordered compares.
|
||
(output_cbranch): Always reverse via code change. Handle
|
||
unordered compares. Factor tests and string updates.
|
||
* sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
|
||
(REVERSIBLE_CC_MODE): Also exclude CCFPmode.
|
||
* sparc.md (bunordered, bordered): New.
|
||
(bungt, bunlt, buneq, bunge, bunle): New.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
|
||
* ggc-common.c (ggc_add_rtx_varray_root): New.
|
||
(ggc_mark_rtx_varray): New.
|
||
(ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
|
||
functions down below ggc_mark_foo.
|
||
* ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
|
||
|
||
2000-01-25 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (secondary_reload_class): Don't allocate a secondary
|
||
for integral mode memories into FLOAT_REGS. Rearrange the more
|
||
complicated memory expression inward.
|
||
|
||
2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* inclhack.def: Fixes to play nicer with FreeBSD, and
|
||
corrections to comments.
|
||
(cxx_unready): Add select expression.
|
||
(irix_sockaddr): Add bypass expression.
|
||
(machine_ansi_h_va_list): New fix.
|
||
(stdio_va_list): No need to edit _BSD_VA_LIST_.
|
||
Split out addition of "#include <stdarg.h>" to...
|
||
(stdio_stdarg_h): ... here.
|
||
(systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
|
||
to stdlib.h also. Do not munge _BSD_SIZE_T_.
|
||
(sysz_stdlib_for_sun): Delete duplicate fix for unprotected
|
||
size_t.
|
||
(ultrix_ifdef): Tighten up select expression.
|
||
|
||
* fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
|
||
re_ct and max_mach to avoid use of shell. Make printed names
|
||
match names in inclhack.def. Use static copyright date.
|
||
Don't count c_test and test expressions as requiring regex_t
|
||
slots. Add some commentary.
|
||
* inclhack.tpl: Do not include the 'This script contains N
|
||
fixup scripts' line if PROGRAM is defined. Use static
|
||
copyright date.
|
||
|
||
2000-01-24 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* dwarf2out.c: include "varray.h", not dyn-string.h.
|
||
(ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
|
||
(addr_const_to_string, addr_to_string): Lose.
|
||
(ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
|
||
(struct dw_val_struct): val_addr is now an rtx.
|
||
(add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
|
||
(used_rtx_varray): New varray.
|
||
(dwarf2out_init): Initialize it.
|
||
(save_rtx): New fn.
|
||
(mem_loc_descriptor, add_const_value_attribute): Call it instead of
|
||
addr_to_string.
|
||
* arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
|
||
sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
|
||
* Makefile.in (dwarf2out.o): Update dependencies.
|
||
|
||
2000-01-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (i386_dwarf_output_addr_const): New.
|
||
* i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
|
||
|
||
* dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
|
||
if defined.
|
||
* dwarfout.c (output_mem_loc_descriptor): Likewise.
|
||
* i386.c (i386_simplify_dwarf_addr): New.
|
||
* i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
|
||
|
||
Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* dwarf2out.c (gen_struct_or_union_type_die): Set complete if
|
||
TYPE_STUB_DECL is NULL.
|
||
|
||
2000-01-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* builtins.c (expand_tree_builtin): Move ...
|
||
* c-common.c (expand_tree_builtin): ... here.
|
||
|
||
2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.h (LOOP_INFO): New accessor macro.
|
||
* basic-block.h (struct loop): Rename field `info' to `aux'.
|
||
* loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
|
||
(prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
|
||
* unroll.c (loop_iterations, unroll_loop): Likewise.
|
||
|
||
2000-01-24 Christopher Faylor <cgf@cygnus.com>
|
||
|
||
* config/i386/t-cygwin: Accommodate new winsup directory layout
|
||
when searching for include files.
|
||
|
||
2000-01-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* rtl.def: Add unordered fp comparisions.
|
||
* tree.def: Likewise.
|
||
* tree.h: Add ISO C 9x unordered fp comparision builtins.
|
||
|
||
* builtins.c (expand_tree_builtin): New function.
|
||
* c-typeck.c (build_function_call): Use it.
|
||
(build_binary_op): Support unordered compares.
|
||
* c-common.c (c_common_nodes_and_builtins): Add unordered compares.
|
||
|
||
* combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
|
||
(reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
|
||
* cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
|
||
(record_jump_equiv): Handle reverse_condition returning UNKNOWN.
|
||
* jump.c (reverse_condition): Don't abort for UNLE etc, but
|
||
return UNKNOWN.
|
||
(swap_condition): Handle unordered compares.
|
||
(thread_jumps): Check can_reverse before reversing.
|
||
* loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
|
||
reversed for FP.
|
||
|
||
* optabs.c (can_compare_p): New argument CODE. Verify branch or
|
||
setcc is present before acking for cmp_optab. Update all callers.
|
||
(prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
|
||
* expmed.c (do_cmp_and_jump): Update for can_compare_p.
|
||
* expr.c (expand_expr): Likewise. Support unordered compares.
|
||
(do_jump, do_store_flag): Likewise.
|
||
* expr.h (enum libfunc_index): Add unordered compares.
|
||
|
||
* Makefile.in (FPBIT_FUNCS): Add _unord_sf.
|
||
(DPBIT_FUNCS): Add _unord_df.
|
||
* config/fp-bit.c (_unord_f2): New.
|
||
* fp-test.c (main): Try unordered compare builtins.
|
||
|
||
* alpha-protos.h (alpha_fp_comparison_operator): Declare.
|
||
* alpha.c (alpha_comparison_operator): Check mode properly.
|
||
(alpha_swapped_comparison_operator): Likewise.
|
||
(signed_comparison_operator): Likewise.
|
||
(alpha_fp_comparison_operator): New.
|
||
(alpha_emit_conditional_branch): Handle unordered compares.
|
||
* alpha.h (PREDICATE_CODES): Update.
|
||
* alpha.md (fp compares): Use alpha_fp_comparison_operator.
|
||
(bunordered, bordered): New.
|
||
|
||
2000-01-24 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
|
||
* alpha.md (movtf): New expander, insn, and splitter.
|
||
|
||
Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
|
||
dead registers.
|
||
|
||
Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
|
||
(FIXED_REGISTERS, CALL_USED_REGISTERS,
|
||
REG_ALLOC_ORDER): Add frame pointer
|
||
(FRAME_POINTER_REGNUM): Set to 20
|
||
(HARD_FRAME_POINTER_REGNUM): New macro.
|
||
(ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
|
||
to HARD_FRAME_POINTER.
|
||
(REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
|
||
(REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
|
||
(REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
|
||
(HI_REGISTER_NAMES): Add "frame".
|
||
(CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
|
||
(debug_reg): Handle FRAME_POINTER_REGNUM.
|
||
(reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
|
||
GENERAL_REGS and INDEX_REGS.
|
||
* i386.c (SAVED_REGS_FIRST): new macro.
|
||
(AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
|
||
(ix86_decompose_address, memory_address_length): Likewise.
|
||
(regclass_map): Add frame pointer.
|
||
(call_insn_operand): Handle frame_pointer_rtx.
|
||
(reg_no_sp_operand): Likewise.
|
||
(ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
|
||
(print_operand, legitimize_pic_address): Fix formating.
|
||
(ix86_compute_frame_size): Make static, update prototype, new
|
||
parameters padding1, padding2, use ix86_nsaved_regs, use
|
||
stack_alignment_needed.
|
||
(ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
|
||
to HARD_FRAME_POINTER_REGNUM conversions.
|
||
(ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
|
||
(ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
|
||
(print_reg): Abort on FRAME_POINTER_REGNUM
|
||
|
||
Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.h (PREDICATE_CODES): Add aligned_operand.
|
||
* i386.c (aligned_operand): New function.
|
||
(ix86_aligned_p): Kill.
|
||
* i386.md (movhi_1): Emit mov for aligned operands.
|
||
(promoting peep2s): Use aligned_operand.
|
||
|
||
2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
|
||
expression to allow underscores in macro names.
|
||
(fix_char_macro_defines): Increment scanning pointer.
|
||
|
||
2000-01-23 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
|
||
* alpha/osf5.h: New file.
|
||
* configure.in (alpha-*-osf5): Add it to tm_file.
|
||
|
||
* emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
|
||
|
||
* alpha-protos.h (alpha_emit_xfloating_arith): Declare.
|
||
(alpha_emit_xfloating_cvt, function_arg): Declare.
|
||
* alpha.c (alpha_emit_conditional_branch): Call
|
||
alpha_emit_xfloating_compare for TFmode compares.
|
||
(alpha_lookup_xfloating_lib_func): New.
|
||
(alpha_compute_xfloating_mode_arg): New.
|
||
(alpha_emit_xfloating_libcall): New.
|
||
(alpha_emit_xfloating_arith): New.
|
||
(alpha_emit_xfloating_compare): New.
|
||
(alpha_emit_xfloating_cvt): New.
|
||
(print_operand): Add default abort case.
|
||
(function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
|
||
* alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
|
||
(BIGGEST_ALIGNMENT): Increase to 128 bits.
|
||
(RETURN_IN_MEMORY): True for TF/TCmode.
|
||
(ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
|
||
(FUNCTION_ARG): Move to function_arg.
|
||
(FUNCTION_ARG_PASS_BY_REFERENCE): New.
|
||
(ASM_OUTPUT_LONG_DOUBLE): New.
|
||
(ASM_OUTPUT_DOUBLE): Always output bits.
|
||
* alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
|
||
(fix_trunctfdi2, floatditf2, floatunsditf2): New.
|
||
(extenddftf2, trunctfdf2): New.
|
||
|
||
2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
|
||
* config/sparc/sol2.h: ... here.
|
||
|
||
2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* basic-block.h (struct loops): New field `levels'.
|
||
* flow.c (flow_loops_level_compute): Traverse all outer loops.
|
||
(flow_loop_level_compute): Initialise level to 1.
|
||
(flow_loops_find): Set loops->levels.
|
||
(flow_loops_dump): Print loops->levels.
|
||
|
||
2000-01-23 Richard Henderson <rth@cygnus.com>
|
||
|
||
* libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
|
||
(throw_helper): Iterate over DWARF_FRAME_REGISTERS.
|
||
|
||
2000-01-23 Richard Henderson <rth@cygnus.com>
|
||
|
||
* i386.c (dbx_register_map, svr4_dbx_register_map): New.
|
||
* i386.h (DBX_REGISTER_NUMBER): Use them.
|
||
* i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
|
||
* i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
|
||
* i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
|
||
* i386/sequent.h: Kill incorrect comment.
|
||
|
||
2000-01-23 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* ggc-page.c (struct page_entry): Make `context_depth' an
|
||
`unsigned short'.
|
||
(struct globals): Likewise.
|
||
|
||
2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* loop.c (check_dbra_loop): When checking a loop for
|
||
reversability, check the source of any stores to ensure
|
||
they don't depend on an initial value.
|
||
|
||
2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
|
||
|
||
2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixincl.c: Move declarations of 'pz_fname' and
|
||
'pz_scan' into scope of entire function. Only affects
|
||
compiles with -DDEBUG.
|
||
|
||
2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
|
||
|
||
* config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
|
||
section naming to that prior to 2000-01-07 patch.
|
||
* config/mips/elf.h (UNIQUE_SECTION): Ditto.
|
||
* config/mips/elf64.h (UNIQUE_SECTION): Ditto.
|
||
* config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
|
||
* config/i386/interix.c (UNIQUE_SECTION): Ditto.
|
||
* config/i386/winnt.c (UNIQUE_SECTION): Ditto.
|
||
|
||
2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
|
||
constant.
|
||
|
||
2000-01-21 Jim Wilson <wilson@cygnus.com>
|
||
|
||
* fixinc/inclhack.tpl: Test for directory before trying to cd into it.
|
||
* fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
|
||
|
||
2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpphash.c (change_newlines): Delete function.
|
||
(struct argdata): Delete 'newlines' and 'use_count' fields.
|
||
(macroexpand): Remove code referencing those fields.
|
||
|
||
2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.c (loops_info): New variable.
|
||
(loop_optimize): Allocate loops->array and free it on exit.
|
||
Allocate memory for loops_info and assign to each loop,
|
||
replacing alloca.
|
||
(find_and_verify_loops): Do not allocate loops->array.
|
||
|
||
2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
|
||
|
||
2000-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
|
||
pseudos if expanded after first flow.
|
||
(movdi_pic_label_ref): Likewise.
|
||
|
||
2000-01-20 Richard Henderson <rth@cygnus.com>
|
||
|
||
* jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
|
||
|
||
2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* Makefile.in (fixinc.sh): Depend on specs.
|
||
* fixinc/Makefile.in: Add rule to create machname.h.
|
||
(fixlib.o): Depend on machname.h.
|
||
* fixinc/fixtests.c (machine_name): New test.
|
||
* fixinc/fixfixes.c (machine_name): New fix.
|
||
* fixinc/fixlib.c (mn_get_regexps): New helper function for
|
||
the machine_name test and fix.
|
||
* fixinc/fixlib.h: Prototype it.
|
||
* fixinc/inclhack.def (machine_name): Use the C test and fix.
|
||
* fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
|
||
|
||
* gcc.c (do_spec_1) [case P]: Take care not to create
|
||
identifiers with three leading or trailing underscores.
|
||
|
||
* fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
|
||
(fixincl): Don't specify libraries twice on link line.
|
||
(gnu-regex.o): Remove special rule.
|
||
* fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
|
||
defined by config.h. Do not define _REGEX_RE_COMP.
|
||
(regcomp): Allocate and initialize a fastmap.
|
||
* fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
|
||
|
||
2000-01-20 Brad Lucier <lucier@math.purdue.edu>
|
||
|
||
* Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
|
||
|
||
2000-01-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (propagate_block): Replace FIRST, LAST and BNUM
|
||
arguments with BB. Update all callers. Tidy line wrapping.
|
||
|
||
2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* emit-rtl.c (try_split): Return last_insn if we split the
|
||
last_insn.
|
||
|
||
Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386-protos.h (ix86_compute_frame_size): Remove prototype.
|
||
(ix86_initial_elimination_offset): Declare.
|
||
* i386.c (ix86_nsaved_regs): Break out from ...
|
||
(ix86_can_use_return_insn_p): ... here.
|
||
(ix86_emit_save_regs): Break out from ...
|
||
(ix86_expand_prologue): ... here.
|
||
(ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
|
||
out from ...
|
||
(ix86_expand_epilogue): ... here.
|
||
(ix86_compute_frame_size): Make static, add prototype.
|
||
(ix86_initial_elimination_offset): Break out from ...
|
||
* i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
|
||
|
||
2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* recog.h (OUT_FCN): Delete.
|
||
|
||
* vax.md: Call `get_insn_template' instead of OUT_FCN.
|
||
|
||
2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* cppalloc.c: PROTO -> PARAMS.
|
||
* cpperror.c: Likewise.
|
||
* cppfiles.c: Likewise.
|
||
* cpplib.c: Likewise.
|
||
* cpplib.h: Likewise.
|
||
|
||
* config/arm/arm-protos.h: PROTO -> PARAMS.
|
||
* config/arm/arm.c: Likewise.
|
||
* config/c4x/c4x.c: Likewise.
|
||
* config/fr30/fr30-protos.h: Likewise.
|
||
* config/nextstep.c: Likewise.
|
||
* config/pa/pa.c: Likewise.
|
||
* config/pj/pj.c: Likewise.
|
||
* config/rs6000/rs6000.c: Likewise.
|
||
* config/v850/v850-protos.h: Likewise.
|
||
* config/v850/v850.c: Likewise.
|
||
|
||
2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* i370-protos.h: New file.
|
||
|
||
* i370.c: Include tm_p.h. Fix compile time warnings.
|
||
|
||
* i370.h: Move prototypes to i370-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* i370.md: Likewise.
|
||
|
||
2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
|
||
(target_isinf, target_isnan, eisnan): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
(eiisinf): Wrap in INFINITY.
|
||
(etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
|
||
(ibmtoe): Remove unused variable `rndsav'.
|
||
|
||
Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
|
||
|
||
2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
|
||
* fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
|
||
(fix_char_macro_defines, fix_char_macro_uses): New functions.
|
||
|
||
* fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
|
||
Recognize Emacs mode markers also.
|
||
* fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
|
||
C++ comments in C++ headers. Call is_cxx_header only if
|
||
necessary.
|
||
|
||
* fixinc/inclhack.def (avoid_bool): Add select for the problem and
|
||
bypass for ncurses.
|
||
(bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
|
||
(io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
|
||
... these, which use the new C fixes.
|
||
(math_exception): Escape literal '+' in bypass expression.
|
||
|
||
* fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
|
||
Regenerate.
|
||
|
||
2000-01-19 Geoff Keating <geoffk@cygnus.com>
|
||
|
||
* rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
|
||
inside the MEM.
|
||
|
||
2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.c (loop_optimize): Allocate loop_info structure for each loop
|
||
prior to calling scan_loop.
|
||
|
||
Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.c (find_barrier, gen_block_redirect): Fix indentation.
|
||
(split_branches, calc_live_regs): Likewise.
|
||
|
||
Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* sh.md (fpu_single, fp_mode): New attributes.
|
||
|
||
2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.c (current_loop_info): Renamed from loop_info_data
|
||
and changed to a pointer.
|
||
(loop_optimize): Allocate loop_info structure for each loop
|
||
and initialise to zero.
|
||
(scan_loop): Set current_loop_info.
|
||
|
||
* unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
|
||
on iteration_var.
|
||
|
||
2000-01-19 Richard Henderson <rth@cygnus.com>
|
||
|
||
* stupid.c: Die die die.
|
||
* Makefile.in (OBJS): Remove stupid.o.
|
||
(stupid.o): Likewise.
|
||
|
||
* except.c (emit_eh_context): Don't emit USEs for stupid.
|
||
* explow.c (probe_stack_range): Likewise.
|
||
* flags.h (obey_regdecls): Remove.
|
||
* flow.c (find_basic_blocks): Don't run try_merge_blocks
|
||
when not optimizing.
|
||
(life_analysis): Limit data collection when not optimizing.
|
||
(mark_regs_live_at_end): Always mark the return value registers.
|
||
(mark_used_regs): Remove dummy RETURN case.
|
||
(print_rtl_with_bb): Don't consult obey_regdecls.
|
||
* function.c (use_variable, use_variable_after): Remove.
|
||
(assign_parms): Consult optimize not obey_regdecls.
|
||
(expand_function_start): Don't emit USEs for stupid.
|
||
(expand_function_end): Likewise.
|
||
* global.c (build_insn_chain): Export.
|
||
* integrate.c (expand_inline_function): Kill return-value USE
|
||
handling code.
|
||
* jump.c (jump_optimize_1): Do simple jump optimizations and
|
||
dead code elimination.
|
||
(calculate_can_reach_end): Remove check_deleted argument.
|
||
(delete_insn): Patch out insns even when not optimizing.
|
||
* local-alloc.c (block_alloc): Don't do tying when not optimizing.
|
||
* rtl.h (use_variable, use_variable_after): Remove declarations.
|
||
(build_insn_chain): Declare.
|
||
* stmt.c (expand_value_return): Don't emit USEs for stupid.
|
||
(expand_end_bindings): Likewise.
|
||
(expand_decl): Likewise. Consult optimize not obey_regdecls.
|
||
* toplev.c (obey_regdecls): Remove.
|
||
(rest_of_compilation): Don't set it. Kill stupid in favour of
|
||
flow1, local-alloc, and reload.
|
||
(main): Don't set obey_regdecls.
|
||
|
||
* config/nextstep.c (handle_pragma): Likewise.
|
||
|
||
* alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
|
||
|
||
* arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* alpha-protos.h: PROTO -> PARAMS.
|
||
* alpha.c: Likewise.
|
||
* elf.h: Likewise.
|
||
* h8300.c: Likewise.
|
||
* i386-protos.h: Likewise.
|
||
* i386.c: Likewise.
|
||
* m32r-protos.h: Likewise.
|
||
* m32r.c: Likewise.
|
||
* mips.c: Likewise.
|
||
* mips.md: Likewise.
|
||
* gmon-sol2.c: Likewise.
|
||
* sparc.c: Likewise.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* ns32k-protos.h: New file.
|
||
|
||
* ns32k.c: Fix compile time warnings.
|
||
|
||
* ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* ns32k.md: Likewise.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* vax-protos.h: New file.
|
||
|
||
* vax.c: Fix compile time warnings.
|
||
|
||
* vax.h: Move prototypes to vax-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* vax.md: Likewise.
|
||
|
||
* vaxv.md: Likewise.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* romp-protos.h: New file.
|
||
|
||
* romp.c: Fix compile time warnings.
|
||
|
||
* romp.h: Move prototypes to romp-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* romp.md: Likewise.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* we32k-protos.h: New file.
|
||
|
||
* we32k.c: Fix compile time warnings.
|
||
|
||
* we32k.h: Move prototypes to we32k-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
|
||
|
||
* except.c (eh_regs): Likewise.
|
||
|
||
* final.c (output_operand): Likewise.
|
||
|
||
* fold-const.c (target_isinf, target_isnan): Likewise.
|
||
|
||
Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
|
||
|
||
* i386.h (BIGGEST_ALIGNMENT): Set to 128.
|
||
(BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
|
||
|
||
* i386.md (memstr): Do not use rep stosb for counts divisible by 4
|
||
when optimize_size.
|
||
(clrstrsi): Rewrite.
|
||
(strsethi, strsetqi): New expanders.
|
||
(strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
|
||
(cmpstrsi): Emit compare insn before cmpstrsi_1
|
||
(cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
|
||
(strlensi_1): Likewise.
|
||
(cmpstrsi_1): Likewise; do not output compare.
|
||
(strlen expander): Do not unroll when optimizing for size.
|
||
(*subsi3_carry): Rename to subsi3_carry
|
||
(addqi3_cc): New pattern.
|
||
* i386.h (processor_costs): Add move_ratio field.
|
||
(MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
|
||
* i386.c (*_cost): Set move_ratio.
|
||
(x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
|
||
(x86_expand_strlensi_1): Rewrite the main loop.
|
||
|
||
2000-01-17 Richard Henderson <rth@cygnus.com>
|
||
|
||
* combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
|
||
* cse.c (find_comparison_args, fold_rtx): Likewise.
|
||
* integrate.c (subst_constants): Likewise.
|
||
* loop.c (get_condition): Likewise.
|
||
|
||
* tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
|
||
|
||
* alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
|
||
|
||
2000-01-18 Martin v. L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
|
||
(RESTORE_WARN_FLAGS): Unpack it.
|
||
Change semantic type of extension to ttype.
|
||
* c-common.c (split_specs_attrs): Expect an INTEGER_CST.
|
||
* c-parse.y, c-parse.c, objc/objc-parse.y,
|
||
objc/objc-parse.c: Regenerate.
|
||
|
||
2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* fixinc/fixlib.c: Add copyright notice.
|
||
(compile_re): New function.
|
||
* fixinc/fixlib.h: Prototype compile_re.
|
||
|
||
* fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
|
||
Use compile_re to compile regular expressions.
|
||
|
||
* fixinc/fixincl.c (egrep_test): Don't bother asking regexec
|
||
where the pattern matched.
|
||
|
||
* fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
|
||
use 'replace'.
|
||
(ultrix_ansi_compat): Likewise.
|
||
(interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
|
||
add egrep test.
|
||
(interactv_add2, interactv_add3): Delete.
|
||
(x11_sprintf): Don't use filename glob.
|
||
* fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
|
||
Regenerate.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* print-rtl.c: PROTO -> PARAMS.
|
||
* real.c: Likewise.
|
||
* reg-stack.c: Likewise.
|
||
* resource.c: Likewise.
|
||
* sdbout.h: Likewise.
|
||
* simplify-rtx.c: Likewise.
|
||
* stor-layout.c: Likewise.
|
||
* stupid.c: Likewise.
|
||
* xcoffout.c: Likewise.
|
||
* xcoffout.h: Likewise.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* toplev.c: PROTO -> PARAMS.
|
||
* toplev.h: Likewise.
|
||
* tree.c: Likewise.
|
||
* tree.h: Likewise.
|
||
* unroll.c: Likewise.
|
||
* varasm.c: Likewise.
|
||
* varray.c: Likewise.
|
||
* varray.h: Likewise.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* reload.c: PROTO -> PARAMS.
|
||
* reload.h: Likewise.
|
||
* reload1.c: Likewise.
|
||
* reorg.c: Likewise.
|
||
* resource.h: Likewise.
|
||
* rtl.c: Likewise.
|
||
* rtl.h: Likewise.
|
||
* rtlanal.c: Likewise.
|
||
* sbitmap.h: Likewise.
|
||
* sdbout.c: Likewise.
|
||
* stack.h: Likewise.
|
||
* stmt.c: Likewise.
|
||
* system.h: Likewise.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* machmode.h: PROTO -> PARAMS.
|
||
* mbchar.h: Likewise.
|
||
* mips-tdump.c: Likewise.
|
||
* mips-tfile.c: Likewise.
|
||
* optabs.c: Likewise.
|
||
* output.h: Likewise.
|
||
* prefix.c: Likewise.
|
||
* profile.c: Likewise.
|
||
* protoize.c: Likewise.
|
||
* real.h: Likewise.
|
||
* recog.c: Likewise.
|
||
* recog.h: Likewise.
|
||
* regclass.c: Likewise.
|
||
* regmove.c: Likewise.
|
||
* regs.h: Likewise.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* ggc-common.c: PROTO -> PARAMS.
|
||
* ggc-page.c: Likewise.
|
||
* ggc-simple.c: Likewise.
|
||
* ggc.h: Likewise.
|
||
* global.c: Likewise.
|
||
* graph.c: Likewise.
|
||
* gthr-win32.h: Likewise.
|
||
* haifa-sched.c: Likewise.
|
||
* halfpic.h: Likewise.
|
||
* integrate.c: Likewise.
|
||
* integrate.h: Likewise.
|
||
* jump.c: Likewise.
|
||
* lcm.c: Likewise.
|
||
* local-alloc.c: Likewise.
|
||
* loop.c: Likewise.
|
||
* loop.h: Likewise.
|
||
|
||
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* genattr.c: PROTO -> PARAMS.
|
||
* genattrtab.c: Likewise.
|
||
* gencheck.c: Likewise.
|
||
* gencodes.c: Likewise.
|
||
* genconfig.c: Likewise.
|
||
* genemit.c: Likewise.
|
||
* genextract.c: Likewise.
|
||
* genflags.c: Likewise.
|
||
* gengenrtl.c: Likewise.
|
||
* genopinit.c: Likewise.
|
||
* genoutput.c: Likewise.
|
||
* genpeep.c: Likewise.
|
||
* genrecog.c: Likewise.
|
||
|
||
2000-01-16 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (BINFO_VPTR_FIELD): Augment documentation.
|
||
|
||
2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
|
||
* configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
|
||
* ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
|
||
* configure, config.in: Rebuilt.
|
||
|
||
2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* config/i386/i386.md: Add peephole to merge successive stack
|
||
adjusts.
|
||
|
||
Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
|
||
|
||
* gcse.c (insert_insn_end_bb): Use emit_block_insn_before
|
||
instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
|
||
when walking backwards to find all the parameter loads when
|
||
the basic block ends in a call.
|
||
|
||
2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* loop.c (this_loop_info): Delete.
|
||
(uid_loop): Add in place of uid_loop_num. All uses updated.
|
||
(loop_number_exit_count): Delete and replace with entry in loop
|
||
structure. All uses updated.
|
||
(loop_number_loop_starts, loop_number_loop_ends): Likewise.
|
||
(loop_number_loop_cont, loop_number_cont_dominator): Likewise.
|
||
(loop_outer_loop): Likewise.
|
||
(loop_invalid, loop_number_exit_labels): Likewise.
|
||
(loop_used_count_register): Delete and replace with entry in
|
||
loop_info structure.
|
||
(find_and_verify_loops): Add loops argument.
|
||
(verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
|
||
loop_end, etc. arguments with loop structure pointer. All callers
|
||
changed.
|
||
(loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
|
||
(check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
|
||
(load_mems_and_recount_loop_regs_set, load_mems): Likewise.
|
||
(insert_bct): Likewise.
|
||
(basic_induction_var): New argument level.
|
||
* loop.h (struct loop_info): Delete fields num, loops_enclosed,
|
||
vtop, and cont. Add used_count_register.
|
||
(uid_loop): Delete declaration.
|
||
(loop_number_exit_count): Likewise.
|
||
(loop_number_loop_starts, loop_number_loop_ends): Likewise.
|
||
(loop_number_loop_cont, loop_number_cont_dominator): Likewise.
|
||
(loop_outer_loop, loop_used_count_register): Likewise.
|
||
(loop_invalid, loop_number_exit_labels): Likewise.
|
||
(unroll_loop): Replace loop_start and loop_end arguments
|
||
with loop structure pointer.
|
||
(loop_precondition_p, loop_iterations): Likewise.
|
||
Include basic-block.h.
|
||
* unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
|
||
with loop structure pointer.
|
||
(loop_precondition_p, loop_iterations): Likewise.
|
||
* basic-block.h (struct loop): New entries vtop, cont,
|
||
cont_dominator, start, end, top, scan_start, exit_labels,
|
||
exit_count.
|
||
* Makefile.in (LOOP_H): Add basic-block.h to dependencies.
|
||
|
||
2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||
|
||
* defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
|
||
|
||
2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
|
||
|
||
* config.in: Rebuilt for 2000-01-13 change to acconfig.h.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* pdp11-protos.h: New file.
|
||
|
||
* pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* pdp11.md: Likewise.
|
||
|
||
* 2bsd.h: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* mn10300-protos.h: New file.
|
||
|
||
* mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* mn10300.md: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* mn10200-protos.h: New file.
|
||
|
||
* mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* mn10200.md: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* h8300-protos.h: New file.
|
||
|
||
* h8300.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* h8300.h: Move prototypes to h8300-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* h8300.md: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
|
||
(asm_emit_uninitialised): Likewise.
|
||
|
||
2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
|
||
|
||
* config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
|
||
* config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
|
||
|
||
2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.c (override_options): Don't turn on extra
|
||
alignment for mips16.
|
||
|
||
2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
|
||
eabi, and make sure queued POSTINCREMENT rtl is emitted at
|
||
the right point.
|
||
|
||
2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* builtins.c (PAD_VARARGS_DOWN): Define.
|
||
(std_expand_builtin_va_arg): Use the above macro.
|
||
* config/mips/mips.h (PAD_VARARGS_DOWN): Define.
|
||
* tm.texi (Register Arguments): Document the above macro.
|
||
|
||
2000-01-14 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* emit-rtl.c (emit_insn): If checking is enabled, make sure
|
||
that this function has not been used to emit a jump
|
||
instruction.
|
||
|
||
* jump.c (return_jump_1): Cope with being passed a null rtx.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* eh-common.h: PROTO -> PARAMS.
|
||
* emit-rtl.c: Likewise.
|
||
* errors.c: Likewise.
|
||
* errors.h: Likewise.
|
||
* except.c: Likewise.
|
||
* except.h: Likewise.
|
||
* explow.c: Likewise.
|
||
* expmed.c: Likewise.
|
||
* expr.c: Likewise.
|
||
* expr.h: Likewise.
|
||
* final.c: Likewise.
|
||
* fix-header.c: Likewise.
|
||
* flow.c: Likewise.
|
||
* fold-const.c: Likewise.
|
||
* function.c: Likewise.
|
||
* function.h: Likewise.
|
||
* gcc.c: Likewise.
|
||
* gcov-io.h: Likewise.
|
||
* gcov.c: Likewise.
|
||
* gcse.c: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* sh-protos.h: New file.
|
||
|
||
* sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
|
||
Add static prototypes. Fix compile time warnings.
|
||
|
||
* sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
|
||
* sh.md: Likewise.
|
||
* elf.h: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* arc-protos.h: New file.
|
||
|
||
* arc.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* arc.h: Move prototypes to arc-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* arc.md: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* dsp16xx-protos.h: New file.
|
||
|
||
* dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* dsp16xx.md: Likewise.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* convex-protos.h: New file.
|
||
|
||
* convex.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* convex.h: Move prototypes to convex-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* elxsi-protos.h: New file.
|
||
|
||
* elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* elxsi.md: Likewise.
|
||
|
||
2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
|
||
case for moving from HI/LO/HI_LO_REG. This makes the behavior
|
||
match the comment for MIPS16.
|
||
|
||
Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* flow.c (split_edge): Do not call set_block_for_insn if we
|
||
do not have a basic_block_for_insn structure.
|
||
|
||
* fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
|
||
and destination functions are 32bit aligned within the trampoline.
|
||
(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
|
||
(TRAMPOLINE_ALIGNMENT): Define.
|
||
|
||
* cse.c (cse_insn): When changing (set (pc) (reg)) to
|
||
(set (pc) (label_ref)), verify the change creates a valid insn.
|
||
|
||
* fr30.c (call_operand): Tighten and rework to match rules for
|
||
call RTL expressions.
|
||
* fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
|
||
* fr30.md (call patterns): Improve constraints.
|
||
|
||
Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
|
||
|
||
* fr30.c (fr30_expand_epilogue): Revert last change.
|
||
Use emit_jump_insn for the return insn.
|
||
|
||
Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
|
||
Stan Cox <scox@cygnus.com>
|
||
|
||
* predict.c: New file. Preliminary infrastructure work for static
|
||
branch prediction and basic block reordering.
|
||
* basic-block.h: Add prototype for estimate_probability.
|
||
* Makefile.in: Add rules for predict.o.
|
||
|
||
2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
|
||
|
||
* fixincludes (va_list): Use __not_va_list__ for the dummy.
|
||
* fixinc/*: Likewise.
|
||
|
||
2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* cccp.c: PROTO -> PARAMS.
|
||
* cexp.y: Likewise.
|
||
* collect2.c: Likewise.
|
||
* combine.c: Likewise.
|
||
* convert.h: Likewise.
|
||
* cse.c: Likewise.
|
||
* dbxout.c: Likewise.
|
||
* dbxout.h: Likewise.
|
||
* diagnostic.c: Likewise.
|
||
* doprint.c: Likewise.
|
||
* dwarf2out.c: Likewise.
|
||
* dwarf2out.h: Likewise.
|
||
* dwarfout.c: Likewise.
|
||
* dwarfout.h: Likewise.
|
||
* dyn-string.h: Likewise.
|
||
|
||
2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
|
||
macro conditionals guarding use.
|
||
|
||
* dwarf2out.c: Include "tm_p.h".
|
||
|
||
* function.c (locate_and_pad_parm): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
(expand_function_end): Likewise for variable `context'.
|
||
|
||
* reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
|
||
|
||
2000-01-13 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
|
||
register to prevent compile time warnings.
|
||
|
||
2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
|
||
to avoid -Wtraditional warning.
|
||
|
||
2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* 1750a-protos.h: New file.
|
||
|
||
* 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
* 1750a.md: Likewise.
|
||
|
||
2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* a29k-protos.h: New file.
|
||
|
||
* a29k.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* a29k.h: Move prototypes to a29k-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* clipper-protos.h: New file.
|
||
|
||
* clipper.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* clipper.h: Move prototypes to clipper-protos.h. Fix compile time
|
||
warnings.
|
||
|
||
Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
|
||
|
||
2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
|
||
|
||
* configure.in (--enable-new-gxx-abi): New option.
|
||
* acconfig.h (ENABLE_NEW_GXX_ABI): New define.
|
||
* Makefile.in (GXX_ABI_FLAG): New variable.
|
||
* configure: Regenerate.
|
||
|
||
2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
|
||
* tm.texi (FORCE_STRUCT_BLK): Document.
|
||
* config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
|
||
|
||
Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* config/ns32k/ns32k.md: Revert Jan 9 change.
|
||
|
||
* genrecog.c (maybe_both_true_2): Do not compare a predicate-test
|
||
to a mode-test, if the predicate is address_operand.
|
||
|
||
Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* combine.c (if_then_else_cond): Be careful about what kinds
|
||
of RTL expressions are passed to operand_subword.
|
||
|
||
* flow.c (split_edge): If we have to insert a new jump, make
|
||
sure to associate it with a basic block.
|
||
|
||
* flow.c (commit_one_edge_insertion): A block with one successor
|
||
can end in a JUMP_INSN that is not a simplejump.
|
||
|
||
2000-01-12 Robert Lipe <robertl@sco.com>
|
||
|
||
* i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
|
||
(BUILD_VA_LIST_TYPE): Define.
|
||
(EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
|
||
with crtstuff.c.
|
||
|
||
2000-01-12 Jason Merrill <jason@casey.cygnus.com>
|
||
|
||
* cccp.c (do_pragma): Add cast to (char *).
|
||
|
||
2000-01-12 Richard Henderson <rth@cygnus.com>
|
||
Fred Fish <fnf@be.com>
|
||
Jason Merrill <jason@cygnus.com>
|
||
|
||
* configure.in (i?86-*-beos{pe,elf,}*): Recognize.
|
||
* i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
|
||
* i386/beos-elf.h, i386/beos-pe.h: New files.
|
||
|
||
* Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
|
||
* cross-make (SYSTEM_HEADER_DIR): Define using
|
||
CROSS_SYSTEM_HEADER_DIR.
|
||
|
||
* gcc.c (LIBRARY_PATH_ENV): Provide default.
|
||
(process_command): Use it.
|
||
(main): Likewise. Kill trailing = from env vars.
|
||
(build_search_list): Put it back.
|
||
* collect2.c (main): Use LIBRARY_PATH_ENV.
|
||
|
||
* configure.in (GCC_NEED_DECLARATIONS): Add environ.
|
||
* toplev.c: Use NEED_DECLARATION_ENVIRON.
|
||
|
||
* tm.texi (Frame Layout): Document SMALL_STACK.
|
||
* c-common.c (c_common_nodes_and_builtins): Check it.
|
||
|
||
* system.h: Undef alloca after including glibc's <stdlib.h>,
|
||
if USE_C_ALLOCA is defined.
|
||
|
||
* gcc.c (set_input): New fn.
|
||
(main): After all input files are compiled, reset the input file
|
||
info to the first.
|
||
|
||
* aclocal.m4 (rindex, index): If already defined, don't attempt
|
||
to redefine.
|
||
|
||
* ginclude/varargs.h: (__va_list__): Define ifndef.
|
||
* ginclude/stdarg.h: Likewise.
|
||
|
||
* ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
|
||
instead of unsigned char.
|
||
|
||
* hash.h (true, false, boolean): Undef before enum.
|
||
|
||
* expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
|
||
proper type of "HOST_WIDE_INT *", rather than their natural type of
|
||
"unsigned HOST_WIDE_INT *".
|
||
|
||
2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
|
||
|
||
* recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
|
||
|
||
* regclass.c (choose_hard_reg_mode): Likewise.
|
||
|
||
* reload.c (find_valid_class, strict_memory_address_p): Likewise.
|
||
|
||
* reorg.c (optimize_skip): Wrap prototype in macro conditionals.
|
||
|
||
2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* c-common.c: PROTO -> PARAMS.
|
||
* c-common.h: Likewise.
|
||
* c-decl.c: Likewise.
|
||
* c-iterate.c: Likewise.
|
||
* c-lang.c: Likewise.
|
||
* c-lex.c: Likewise.
|
||
* c-lex.h: Likewise.
|
||
* c-parse.in: Likewise.
|
||
* c-pragma.c: Likewise.
|
||
* c-pragma.h: Likewise.
|
||
* c-tree.h: Likewise.
|
||
* c-typeck.c: Likewise.
|
||
* objc/objc-act.c: Likewise.
|
||
* objc/objc-act.h: Likewise.
|
||
|
||
2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* m88k-protos.h: New file.
|
||
|
||
* m88k.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
|
||
|
||
* m88k.md: Likewise.
|
||
|
||
* tekXD88.h: Likewise.
|
||
|
||
2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* m68k-protos.h: New file.
|
||
|
||
* m68k.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
|
||
|
||
* mot3300.h: Likewise.
|
||
|
||
2000-01-12 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* haifa-sched.c (split_edges): Pass edgeset_size as second arg to
|
||
extract_bitlst.
|
||
(extract_bitlist): Declare bitlen.
|
||
|
||
2000-01-12 Zack Weinberg <zack@wolery.cumb.org
|
||
|
||
* cccp.c: Accept and ignore -lang-fortran.
|
||
|
||
* c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
|
||
qualifiers don't match at any level of pointerness.
|
||
|
||
2000-01-12 Robert Lipe <robertl@sco.com>
|
||
|
||
* i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
|
||
|
||
2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* reload1.c (reload_reg_unavailable): New static variable.
|
||
(reload_reg_free_p): Test it.
|
||
(reload_reg_free_for_value_p): Test it instead of
|
||
reload_reg_used.
|
||
(choose_reload_regs_init): Compute it.
|
||
|
||
Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
|
||
|
||
* reorg.c (fill_slots_from_thread): Check modified_in_p
|
||
before replacing.
|
||
|
||
Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
|
||
|
||
* gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
|
||
these nodes even if INTERNALS is not set.
|
||
|
||
Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
|
||
|
||
* gcse.c (delete_null_pointer_checks_1): Cope when
|
||
get_condition cannot determine the condition.
|
||
|
||
2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
|
||
|
||
* toplev.h (set_message_length): Declare.
|
||
|
||
* diagnostic.c (obstack_chunk_alloc): Define macro.
|
||
(obstack_chunk_free): Likewise.
|
||
(struct output_buffer): New data structure.
|
||
(vmessage): Remove.
|
||
(output_maximum_width): New variable.
|
||
(doing_line_wrapping, set_message_length, init_output_buffer,
|
||
get_output_prefix, output_space_left, emit_output_prefix,
|
||
output_newline, output_append, output_puts, dump_output,
|
||
vbuild_message_string, build_message_string, build_location_prefix,
|
||
voutput_notice, output_printf, line_wrapper_printf,
|
||
vline_wrapper_message_with_location): New functions. Implement
|
||
automatic line wrapping.
|
||
(v_message_with_decl): Make it handle automatic line wrapping.
|
||
(v_error_with_file_and_line): Likewise.
|
||
(v_warning_with_file_and_line): Likewise.
|
||
(announce_function): Likewise.
|
||
(default_print_error_function): Likewise.
|
||
|
||
2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
|
||
|
||
* cpplib.h (struct cpp_options): Change lang_asm to char.
|
||
Add lang_fortran.
|
||
* cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
|
||
done in cpp_handle_option now.
|
||
(initialize_builtins): Take out special case code used only by
|
||
__STDC_VERSION__.
|
||
(cpp_handle_option): Turn off trigraphs and trigraph warnings
|
||
if -traditional. Recognize -lang-fortran and set
|
||
lang_fortran, also turn off cplusplus_comments.
|
||
(print_help): Document -lang-fortran.
|
||
* cpplib.c (handle_directive): Ignore `# 123 "file"' if
|
||
lang_asm. Ignore all directives other than `# 123 "file"' if
|
||
CPP_PREPROCESSED.
|
||
(cpp_get_token): If -traditional, don't recognize directives
|
||
unless the # is in column 1.
|
||
(parse_string): If lang_fortran or lang_asm, silently
|
||
terminate strings ('' or "") at end of line.
|
||
Remove unnecessary braces.
|
||
|
||
2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
Richard Henderson <rth@cygnus.com>
|
||
|
||
* resource.c (mark_referenced_resources): Mark a set strict_low_part
|
||
as used.
|
||
* config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
|
||
strict_low_part when possible.
|
||
|
||
2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* alias.c: PROTO -> PARAMS.
|
||
* basic-block.h: Likewise.
|
||
* bitmap.c: Likewise.
|
||
* bitmap.h: Likewise.
|
||
* builtins.c: Likewise.
|
||
* c-aux-info.c: Likewise.
|
||
* caller-save.c: Likewise.
|
||
* calls.c: Likewise.
|
||
|
||
2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (toplev.o): Depend on regs.h.
|
||
|
||
* output.h (tdesc_section): Prototype.
|
||
|
||
* regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
|
||
|
||
* sdbout.c: Include "tm_p.h".
|
||
|
||
* toplev.c: Include "regs.h".
|
||
|
||
Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
|
||
|
||
* unroll.c (unroll_loop): Add EH support.
|
||
|
||
2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* pa-protos.h: New file.
|
||
|
||
* pa.c: Include recog.h and tm_p.h.
|
||
(compute_zdepwi_operands, compute_movstrsi_length,
|
||
remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
|
||
find_addr_reg, import_milli): Add static prototypes.
|
||
(pa_cpu_string, pa_arch_string): Constify a char*.
|
||
(legitimize_pic_address): Pass argument `mode' to pic_label_operand.
|
||
(read_only_operand): Add argument `mode'.
|
||
(singlemove_string, output_move_double, output_fp_move_double,
|
||
output_block_move, output_and, output_ior, output_ascii,
|
||
remove_useless_addtr_insns, milli_names, output_mul_insn,
|
||
output_div_insn, output_mod_insn, output_arg_descriptor,
|
||
output_cbranch, output_bb, output_bvb, output_dbra, ,
|
||
output_millicode_call, output_call, hppa_encode_label,
|
||
output_parallel_movb, output_parallel_addb): Constify a char*.
|
||
(hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
|
||
(output_parallel_addb): Remove extra arg to `constrain_operands'
|
||
|
||
* pa.h: Move all prototypes to pa-protos.h.
|
||
(pa_cpu_string, pa_arch_string): Constify a char*.
|
||
(LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
|
||
|
||
* pa.md: Call `function_label_operand' with mode argument.
|
||
Likewise for `read_only_operand'.
|
||
Fix nesting of parens in call to `symbolic_operand'.
|
||
|
||
2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* i860-protos.h: New file.
|
||
|
||
* i860.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
|
||
|
||
* i860.md: Likewise.
|
||
|
||
Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (movstrsi expander): Rewrite.
|
||
(movstrsi_1 insn): Deleted.
|
||
(strmovhi, strmovqi expander): New expanders.
|
||
(movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
|
||
* i386.c (x86_single_stringop): New global variable.
|
||
* i386.h (x86_single_stringop): Declare.
|
||
(TARGET_SINGLE_STRINGOP): New macro.
|
||
|
||
2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* config/mips/mips.c (mips_va_arg): For EABI, emit the queued
|
||
integer vararg POSTINCREMENT before the destination of the jump
|
||
for the hard fp case.
|
||
(function_arg_pass_by_reference): Pass a copy of CUM to
|
||
FUNCTION_ARG.
|
||
|
||
* config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
|
||
for CONSTANT_ADDRESS_P above while loop for subreg.
|
||
|
||
2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
|
||
|
||
* flow.c (propagate_block): When a prologue/epilogue insn
|
||
is marked dead, unconditionally clear libcall_is_dead and
|
||
insn_is_dead, and only dump rtl if warnings aren't being
|
||
suppressed.
|
||
|
||
Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
|
||
* i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
|
||
(FIXED_REGISTERS): Set dirflag as fixed.
|
||
(CALL_USED_REGISTERS): Set dirflag as used.
|
||
(REG_ALLOC_ORDER): Set dirflag as last one.
|
||
(DIRFLAG_REG): New macro.
|
||
(MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
|
||
(HI_REGISTER_NAMES): Add dirflag.
|
||
(DEBUF_PRINT_REG): Handle dirflag.
|
||
* i386.md (type attribute): New cld and str types.
|
||
(length_opcode attribute): Set cld and str to 1.
|
||
(memory attribute): Set str to unknown - it is not clear from the
|
||
patterns.
|
||
(pent_np function unit): Prefixed string operations takes 12 cycles
|
||
minimally; cld takes 2 cycles.
|
||
(ppro_uops attribute): Str is "many" and cld is "few".
|
||
(ppro_p0 unit): Handle cld here.
|
||
(k6_alux unit): Handle cld and str types.
|
||
(k6_load unit): It is ocupied by str opcodes.
|
||
(k6_store unit): It is ocupied by str opcodes.
|
||
(athlon_decode): Str is vector decoded.
|
||
(athlon_ieu): Handle str and cld.
|
||
(cld pattern): New.
|
||
(movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
|
||
(movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
|
||
cmpstrsi_nz_1 insn): Do not output cld instruction
|
||
|
||
Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
|
||
|
||
* gcc.texi (G++ and GCC): Add Java and Chill.
|
||
(Bug Critera): Don't list languages.
|
||
|
||
* gcc.texi (Incompatibilities): No longer claim most C compilers
|
||
are K&R.
|
||
|
||
* gcc.texi (G++ and GCC): Update other front-ends list.
|
||
|
||
Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* i386.c (ix86_expand_setcc): Fix typo.
|
||
(ix86_expand_movcc): Similarly.
|
||
|
||
* Band-aid until haifa's bitset implementation is nuked.
|
||
* haifa-sched.c (extract_bitlst): New parameter for size of the
|
||
bitset in bits. All callers changed. Avoid looking at undefined
|
||
bits in the bitset.
|
||
(edgeset_bitsize): New variable.
|
||
(schedule_region): Initialize edgeset_bitsize.
|
||
|
||
2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* Makefile.in (optabs.o): Depend on real.h
|
||
(resource.o): Depend on insn-attr.h
|
||
|
||
* builtins.c (result_vector): Wrap prototype in macro conditions
|
||
governing definition and use.
|
||
|
||
* c-common.c: Include tm_p.h.
|
||
|
||
* c-lex.c: Likewise.
|
||
|
||
* elfos.h: Constify a char*.
|
||
|
||
* final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
|
||
(get_attr_length, shorten_branches, profile_after_prologue): Mark
|
||
parameter with ATTRIBUTE_UNUSED.
|
||
|
||
* fold-const.c (exact_real_inverse): Wrap variable `i' in
|
||
CHECK_FLOAT_VALUE.
|
||
|
||
* haifa-sched.c (schedule_insns): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
* optabs.c: Include real.h.
|
||
|
||
* real.h (ereal_atof): Add prototype arguments.
|
||
|
||
* resource.c: Include insn-attr.h.
|
||
|
||
* sdbout.c (sdbout_queue_anonymous_type,
|
||
sdbout_dequeue_anonymous_types): Wrap in macro
|
||
SDB_ALLOW_FORWARD_REFERENCES.
|
||
(sdbout_init, sdbout_start_new_source_file): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
* stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
|
||
|
||
* stupid.c: Include tm_p.h.
|
||
|
||
* tree.c (real_value_from_int_cst): Mark parameter with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* i960-protos.h: New file.
|
||
|
||
* i960.c: Include tm_p.h. Add static prototypes. Fix compile
|
||
time warnings.
|
||
|
||
* i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
|
||
|
||
2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* combine.c (expand_field_assignment): Do not discard SUBREGs
|
||
while computing nonzero_bits.
|
||
|
||
2000-01-09 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/arm/arm.c: Fix compile time warnings about signed vs
|
||
unsigned constants.
|
||
* config/arm/arm.h: Fix compile time warnings about signed vs
|
||
unsigned constants.
|
||
|
||
2000-01-09 Philip Blundell <philb@gnu.org>
|
||
|
||
* config/arm/arm.c (output_return_instruction): Use `ldr' rather
|
||
than `ldm' with only one register.
|
||
* config/arm/arm.md (push_multi): Use `str' rather than `stm' with
|
||
only one register.
|
||
|
||
* config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
|
||
clobbered.
|
||
|
||
Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* config/ns32k/ns32k.md (load or push effective address): Operand 1
|
||
must have SImode.
|
||
|
||
2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
|
||
assignment used as truth value.
|
||
|
||
* function.c (assign_temp): Mark parameter `dont_promote' with
|
||
ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
|
||
PROMOTE_FOR_CALL_ONLY.
|
||
|
||
* genrecog.c (write_subroutine): Mark variable `operands' with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
* optabs.c (prepare_cmp_insn): Mark parameter `align' with
|
||
ATTRIBUTE_UNUSED.
|
||
|
||
* sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
|
||
(sdbout_begin_block, sdbout_end_block): Likewise for `file'.
|
||
|
||
* toplev.c (note_deferral_of_defined_inline_function): Likewise
|
||
for `decl'.
|
||
|
||
2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x.h: Tidy up comments.
|
||
* config/c4x.c: Likewise.
|
||
|
||
Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
|
||
|
||
* fold-const.c (lshift_double, rshift_double): Handle
|
||
shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
|
||
|
||
2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||
|
||
* toplev.c (rest_of_compilation): Initialize cse_not_expected as
|
||
in prepare_function_start().
|
||
|
||
Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/v850/v850.c (expand_epilogue): Interrupt functions no
|
||
longer allocate extra stack for function calls.
|
||
|
||
2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (*subqf3_set): Fix typo.
|
||
|
||
2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
|
||
|
||
2000-01-07 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000.c (processor_target_table): Add power3 as alias for 630.
|
||
* aix43.h: Revert Aug 2 change.
|
||
(HAS_INIT_SECTION): Define, not visible yet.
|
||
(LD_INIT_SWITCH): Define, not visible yet.
|
||
* t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
|
||
|
||
* glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
|
||
|
||
* collect2.c (main): Expand ld2 size further.
|
||
(export_object_lst): Cast assignment to avoid warning.
|
||
(main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
|
||
(scan_prog_file, COFF): Do not collect initialization or
|
||
finalization functions generated for entire shared object if
|
||
init/fini support present.
|
||
|
||
2000-01-07 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/elfos.h: Tidy up formatting of marcos. Make sure
|
||
that .section directives are always prefixed by a tab.
|
||
|
||
* config/svr4.h: Add #include "elfos.h" and remove duplicate
|
||
definitions.
|
||
|
||
2000-01-07 Matt Austern <austern@sgi.com>
|
||
|
||
* fold-const.c (real_hex_to_f): Remove duplicate declaration of
|
||
expon.
|
||
|
||
Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
|
||
crtstuff.c.
|
||
(crtbegin.o, s-crtS): Likewise.
|
||
|
||
2000-01-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* alpha.md (adddi_2+1): Limit offset such that it will be
|
||
loadable with a single ldah+lda pair.
|
||
(adddi_2+2): Explicitly fail split if we can't make it work.
|
||
|
||
2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* protoize.c: Conditionally include unistd.h.
|
||
(IS_SAME_PATH_CHAR): New macro.
|
||
(IS_SAME_PATH): New macro.
|
||
(CPLUS_FILE_SUFFIX): New macro.
|
||
(cplus_suffix): New static variable.
|
||
(is_abspath): New static function.
|
||
(in_system_include_dir): Handle DOS style pathnames.
|
||
(file_could_be_converted): Likewise.
|
||
(file_normally_convertible): Likewise.
|
||
(directory_specified_p): Likewise.
|
||
(file_excluded_p): Likewise.
|
||
(abspath): Likewise.
|
||
(shortpath): Likewise.
|
||
(referenced_file_is_newer): Likewise.
|
||
(save_def_or_dec): Likewise.
|
||
(do_processing): Likewise.
|
||
(main): Likewise.
|
||
(edit_file): Likewise. Use rename instead of link.
|
||
(rename_c_file): Likewise. Don't rename syscalls file.
|
||
(munge_compile_params): Define null device for DOS based systems.
|
||
(process_aux_info_file): Use binary mode if appliable.
|
||
(edit_file): Likewise.
|
||
* invoke.texi (Running Protoize): Document C++ suffixes used.
|
||
|
||
* cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
|
||
IS_DIR_SEPARATOR macros.
|
||
* collect2.c: Likewise.
|
||
* cppinit.c: Likewise.
|
||
* dwarf2out.c: Likewise.
|
||
* gcc.c: Likewise.
|
||
* gcov.c: Likewise.
|
||
* prefix.c: Likewise.
|
||
* rtl.c: Likewise.
|
||
* toplev.c: Likewise.
|
||
* system.h: And move to here.
|
||
|
||
* prefix.c (update_path): Fix typo in variable name.
|
||
|
||
2000-01-06 Richard Henderson <rth@cygnus.com>
|
||
|
||
* flow.c (mark_set_1): Use loop_depth+1 as reference weight.
|
||
(find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
|
||
(count_reg_sets_1, count_reg_references): Likewise.
|
||
(flow_loops_level_compute): Start counting actual loop depth at 1.
|
||
(flow_loops_find): Likewise.
|
||
* local-alloc.c (update_equiv_regs): Likewise.
|
||
* regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
|
||
|
||
2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
|
||
|
||
* defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
|
||
FIRST_PSEUDO_REGISTER
|
||
* dwarf2out.c: Don't include frame.h
|
||
* dwarfout.c: Likewise
|
||
* Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
|
||
frame.h
|
||
|
||
Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
|
||
|
||
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
|
||
dead registers.
|
||
|
||
* i386.c (movsf splitter): Fix typo in my last checkin.
|
||
|
||
2000-01-05 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* varasm.c (IN_NAMED_SECTION): Allow targets to provide their
|
||
own definition of this macro.
|
||
(asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
|
||
flag_data_sections or UNIQUE_SECTION_P are true.
|
||
|
||
* tm.texi (UNIQUE_SECTION): Document that it can be called for
|
||
uninitialized data decls.
|
||
|
||
* config/i386/winnt.c (i386_pe_unique_section): Cope with
|
||
being called for uninitialised data.
|
||
|
||
* config/i386/interix.c (i386_pe_unique_section): Cope with
|
||
being called for uninitialised data.
|
||
|
||
* config/mips/elf.h (UNIQUE_SECTION): Cope with being called
|
||
for uninitialised data.
|
||
|
||
* config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
|
||
for uninitialised data.
|
||
|
||
* config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
|
||
for uninitialised data.
|
||
|
||
* config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
|
||
(UNIQUE_SECTION_P): Always generate a unique section if
|
||
flag_data_sections is true.
|
||
(UNIQUE_SECTION): Also generate unique sections for
|
||
uninitialised data.
|
||
(ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
|
||
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
|
||
named_section().
|
||
|
||
2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
|
||
SI, or DI.
|
||
|
||
2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (udivqi3, divqi3): Delete.
|
||
(umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
|
||
(*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
|
||
(*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
|
||
(*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
|
||
|
||
* c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
|
||
|
||
2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
|
||
|
||
* c-decl.c (finish_enum): Simplify code to determine minimum and
|
||
maximum values of the enum, and calculate the type. Remove check
|
||
for FUNCTION_DECLs in the values list, which cannot happen. Replace
|
||
the DECL_INITIAL of each enumeration constant with a copy converted
|
||
to the enumeration type. When updating variant types, don't bother
|
||
updating the type itself.
|
||
|
||
* c-typeck.c (build_binary_op): Simplify conditional expressions
|
||
when weeding out spurious signed-unsigned warnings. Add new
|
||
spurious warning category: if the unsigned quantity is an enum
|
||
and its maximum value fits in signed_type(result_type). Update
|
||
commentary.
|
||
(build_conditional_expr): Warn here if one alternative is signed
|
||
and the other is unsigned.
|
||
|
||
2000-01-05 Nick Clifton <nickc@cygnus.com>
|
||
|
||
* config/fr30/fr30.h: Remove extraneous comments.
|
||
|
||
2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* reload1.c (choose_reload_regs): When disabling a reload, also
|
||
set reload_spill_index to -1.
|
||
|
||
2000-01-04 Joel Sherrill (joel@OARcorp.com>
|
||
|
||
* configure.in (m68*-*-rtemscoff*): New target, formal name for
|
||
old m68*-*-rtems*.
|
||
(m68*-*-rtemself*): New target.
|
||
(mips64orion-*-rtems*): Remove duplicate definition of tm_file.
|
||
(sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
|
||
(sparc*-*-rtemself*): New target.
|
||
(sparc*-*-rtems*): Now elf not a.out.
|
||
* config/i386/rtems.h: Include config/rtems.h.
|
||
* config/i386/rtemself.h: Include config/rtems.h.
|
||
* config/i960/rtems.h: Include config/rtems.h.
|
||
* config/m68k/rtems.h: Include config/rtems.h.
|
||
* config/m68k/rtemself.h: Include config/rtems.h.
|
||
* config/mips/rtems64.h: Include config/rtems.h.
|
||
* config/pa/rtems.h: Include config/rtems.h.
|
||
* config/rs6000/rtems.h: Include config/rtems.h.
|
||
* config/sh/rtems.h: Include config/rtems.h.
|
||
* config/sh/rtemself.h: Include config/rtems.h.
|
||
* config/sparc/rtems.h: Include config/rtems.h.
|
||
* config/sparc/rtemself.h: Include config/rtems.h
|
||
|
||
Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* final.c (shorten_branches): Correctly compute length of
|
||
asms without operands.
|
||
|
||
Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
|
||
|
||
* configure.in: Add pj target.
|
||
* configure: Regenerate.
|
||
* config/pj: New directory.
|
||
* config/pj/lib1funcs.S: New file.
|
||
* config/pj/linux.h: New file.
|
||
* config/pj/pj.c: New file.
|
||
* config/pj/pj.md: New file.
|
||
* config/pj/pjl.h: New file.
|
||
* config/pj/t-pj: New file.
|
||
* config/pj/xm-pj.h: New file
|
||
|
||
Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* toplev.c (rest_of_compilation): Run shorten-branches before
|
||
reg-stack for now.
|
||
|
||
2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
|
||
macros so that they're consistent with their names.
|
||
* config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
|
||
* config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
|
||
|
||
2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||
|
||
* config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
|
||
modified inadvertently.
|
||
|
||
2000-01-04 Joel Sherrill <joel@OARcorp.com>
|
||
|
||
* configure.in (v850*-*-rtems*): New target.
|
||
* configure: Regenerate.
|
||
* config/v850/rtems.h: New file.
|
||
|
||
2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
|
||
|
||
* gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
|
||
(__gthread_key_create): Likewise.
|
||
(__gthread_key_dtor): Likewise.
|
||
(__gthread_once): Fix logic.
|
||
(__gthread_key_delete): Cast away constness.
|
||
|
||
* i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
|
||
* invoke.texi: Document.
|
||
* i386/mingw32.h (CPP_SPEC): Use.
|
||
(LIBGCC_SPEC): Likewise.
|
||
* i386/crtdll.h (LIBGCC_SPEC): Likewise.
|
||
|
||
2000-01-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
|
||
(HANDLE_PRAGMA_PACK): Undefine.
|
||
(SLOW_UNALIGNED_ACCESS): Define.
|
||
|
||
2000-01-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
|
||
to default definition.
|
||
(store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
|
||
(store_fixed_bit_field): Call macro with word_mode and alignment.
|
||
(extract_bit_field): Call macro with relevant mode and alignment.
|
||
* expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
|
||
to default definition.
|
||
(move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
|
||
and alignment.
|
||
(move_by_pieces_ninsns): Likewise.
|
||
(clear_by_pieces): Likewise.
|
||
(emit_push_insn): Likewise.
|
||
(store_field): Call macro with relevant mode and alignment.
|
||
(expand_expr): Likewise.
|
||
(expand_expr_unaligned): Likewise.
|
||
|
||
* rs6000.h (HANDLE_PRAGMA_PACK): Define.
|
||
(SLOW_UNALIGNED_ACCESS): Define.
|
||
(CASE_VECTOR_MODE): Always use 32-bit offsets.
|
||
(ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
|
||
(EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
|
||
(toc_section): Likewise and .toc pseudo-op.
|
||
(ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
|
||
64-bit mode.
|
||
(TEXT_SECTION_ASM_OP): Likewise.
|
||
(ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
|
||
32-bit offsets.
|
||
|
||
* a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
|
||
* alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
|
||
* arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
|
||
* gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
|
||
* fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
|
||
|
||
Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* regclass.c: Revert my Jan 4 change to loop cost computation.
|
||
|
||
Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
|
||
|
||
* regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
|
||
compilation.
|
||
|
||
2000-01-04 Stan Cox <scox@cygnus.com>
|
||
|
||
* haifa-sched.c (build_control_flow): Change unreachable simple
|
||
loop test to check if current block has only one predecessor.
|
||
(find_rgns): Initialize degree. Use dest as degree index, not src.
|
||
|
||
2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.c (expand_builtin_strlen): Initialize variable `icode'.
|
||
|
||
* calls.c (expand_call): Likewise for
|
||
`old_stack_arg_under_construction'.
|
||
|
||
* cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
|
||
|
||
* function.c (pad_to_arg_alignment): Likewise for `save_var' and
|
||
`save_constant'.
|
||
|
||
* gcc.c (execute): Likewise for `ut' and `st'.
|
||
|
||
* genattrtab.c (attr_rtx): Likewise for `rt_val'.
|
||
|
||
* genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
|
||
|
||
* jump.c (jump_optimize_1): Likewise for `temp2'.
|
||
|
||
* local-alloc.c (block_alloc): Likewise for `r1'.
|
||
|
||
* loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
|
||
|
||
* reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
|
||
(subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
|
||
|
||
* regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
|
||
and `set2'.
|
||
|
||
* reload.c (find_reloads): Likewise for `goal_alternative_number'
|
||
and `goal_earlyclobber'.
|
||
|
||
* scan-decls.c (scan_decls): Likewise for `prev_id_end'.
|
||
|
||
* sdbout.c (sdbout_one_type): Likewise for `member_scl'.
|
||
|
||
* stupid.c (stupid_life_analysis): Likewise for `chain'.
|
||
|
||
* unroll.c (copy_loop_body): Likewise for `copy'.
|
||
|
||
* varasm.c (output_constructor): Likewise for `byte'.
|
||
|
||
Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
|
||
|
||
* i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
|
||
all FP constants for constant->reg moves.
|
||
(ix86_split_to_parts): Try to convert memory address into immediate
|
||
when available in the constant pool.
|
||
* i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
|
||
moves.
|
||
(LEGITIMATE_CONSTANT_P): Return 1.
|
||
* i386.md (pushsf): New splitter to convert constant pool memory
|
||
reference to immediate.
|
||
(mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
|
||
reload.
|
||
|
||
2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* i386.md (ashlsi3_cmpno): Don't accept variables shifts.
|
||
(ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
|
||
ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
|
||
(rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
|
||
rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
|
||
|
||
2000-01-04 Martin von L<>wis <loewis@informatik.hu-berlin.de>
|
||
|
||
* ginclude/stdbool.h: Support compilation as C++.
|
||
|
||
Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||
|
||
* fold-const.c (make_range): Don't try to reverse an unbounded range.
|
||
|
||
Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
|
||
|
||
* regclass.c (regclass): Properly compute loop_cost. Adjust
|
||
comments.
|
||
|
||
* regclass.c: Fix minor whitespace problems.
|
||
|
||
2000-01-03 Anthony Green <green@cygnus.com>
|
||
|
||
* config/i386/i386.md (builtin_setjmp_receiver): New pattern.
|
||
Restore the pic register if required.
|
||
|
||
2000-01-03 Ulrich Drepper <drepper@cygnus.com>
|
||
|
||
* c-common.c (format_char_info): Update comment.
|
||
(check_format_info): Recognize 'z' modifier in the same way 'Z'
|
||
was recognized. Emit warning for formats new in ISO C99 only
|
||
if flag_isoc9x is not set.
|
||
|
||
Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
|
||
|
||
* config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
|
||
|
||
Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
|
||
|
||
* combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
|
||
SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
|
||
(make_compound_operation): Choose cheaper alternative between
|
||
ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
|
||
|
||
* regclass.c (op_costs): Remove global variable.
|
||
(record_reg_classes): New parameter "op_costs" and "reg_pref".
|
||
(record_operand_costs): Break out from ...
|
||
(scan_one_insn): ... here.
|
||
(dump_regclass): Make dumps nicer.
|
||
(regclass): Dump preferrences choosed and changes done during passes.
|
||
|
||
2000-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
|
||
|
||
2000-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (gen_df_reg): New function.
|
||
* config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
|
||
* config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
|
||
movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
|
||
movtf_cc_reg_sp64+1): Use it.
|
||
|
||
2000-01-02 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
|
||
copied LABEL_DECLs.
|
||
|
||
Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_unary_operator): Function
|
||
definition made void.
|
||
(ix86_expand_binary_operator): Update outdated preceding comment.
|
||
* config/i386/i386-protos.h (ix86_expand_unary_operator): Update
|
||
prototype.
|
||
|
||
* config/i386/i386.c (override_options): Fix option-name typo.
|
||
|
||
2000-01-02 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* system.h (CEIL): Define.
|
||
* builtins.c (CEIL): Remove.
|
||
* expmed.c (CEIL): Likewise.
|
||
* expr.c (CEIL): Likewise.
|
||
* stor-layout.c (CEIL): Likewise.
|
||
|
||
2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||
|
||
* expr.c (store_constructor_field): Fix typo introduced with last
|
||
gcc2 merge.
|
||
|
||
2000-01-01 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.h (BINFO_N_BASETYPES): New macro.
|
||
|
||
2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
|
||
|
||
* expmed.c (emit_store_flag): Prevent losing a pending stack
|
||
adjust the same way we prevent losing queued increments.
|
||
|
||
See ChangeLog.2 for earlier changes.
|