Alexandre Oliva [Fri, 5 Oct 2001 03:48:18 +0000 (03:48 +0000)]
Makefile.in (tree-inline.o): Depend on newly-included headers.
* Makefile.in (tree-inline.o): Depend on newly-included headers.
* tree-inline.c: Include headers needed for the functions moved in.
(struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
(copy_body, initialize_inlined_parameters): Likewise.
(declare_return_variable, inlinable_function_p): Likewise.
(expand_call_inline, expand_calls_inline): Likewise.
(optimize_inline_calls, clone_body): Likewise.
(walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
(copy_tree_r, remap_save_expr): Likewise.
Alexandre Oliva [Fri, 5 Oct 2001 02:49:16 +0000 (02:49 +0000)]
Makefile.in (OBJS): Added tree-inline.o.
* Makefile.in (OBJS): Added tree-inline.o.
(c-common.o): Depend on tree-inline.h.
(tree-inline.o): New target.
* c-common.c: Include tree-inline.h.
(c_mark_lang_decl): Don't mark saved_tree.
(c_common_lang_init): Set lang_anon_aggr_type_p.
* c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
(struct c_lang_decl): Moved saved_tree to tree_decl.
* ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
* integrate.h (function_attribute_inlinable_p): Declare it.
* integrate.c (function_attribute_inlinable_p): Export it.
* tree-inline.c: New file. Define variables declared in...
* tree-inline.h: New file. Declare functions to be moved to
tree-inline.c. Define macros and declare types and hooks for
language-specific tree inlining.
(flag_inline_trees): Moved definition from cp/decl2.c.
* tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
(struct tree_decl): Moved saved_tree from c_lang_decl and
inlined_fns from C++'s lang_decl.
Alexandre Oliva [Fri, 5 Oct 2001 02:48:47 +0000 (02:48 +0000)]
Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
(flag_inline_trees): Moved declaration to ../tree-inline.h.
(walk_tree): Moved declaration to ../tree-inline.h.
(walk_tree_without_duplicates, copy_tree_r): Likewise.
(remap_save_expr): Likewise.
* decl.c: Include tree-inline.h.
(lang_mark_tree): Don't mark inlined_fns.
* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
* optimize.c: Include tree-inline.h.
(optimize_inline_calls): Move declaration to ../tree.h, as
non-static.
(remap_decl): Use language-independent constructs and hooks.
(remap_block, copy_body_r, declare_return_variable): Likewise.
(inlinable_function_p): Likewise. Don't test for
DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
no longer language-specific.
(optimize_inline_calls): Likewise. Make it non-static. Moved
call of dump_function to...
(optimize_function): Here...
(clone_body): New function, extracted from...
(maybe_clone_body): ... here. Build decl_map locally and pass
it on to clone_body.
* pt.c, semantics.c: Include tree-inline.h.
* tree.c: Likewise.
(cp_walk_subtrees): New language-specific hook for tree inlining.
(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
cp_is_overload_p, cp_auto_var_in_fn_p,
cp_copy_res_decl_for_inlining): Likewise.
(walk_tree): Move language-specific constructs into...
(cp_walk_subtrees): this new function.
(copy_tree_r): Use language-independent constructs and hooks.
(init_tree): Initialize tree inlining hooks.
(remap_save_expr): Adjust prototype so that the declaration
does not require the definition of splay_tree.
mips.c (init_cumulative_args): Remember to set cum->prototype.
2001-10-04 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (init_cumulative_args): Remember to set
cum->prototype.
* config.gcc: Redo linux configuration. Add target_cpu_default
of soft-float to all mipsisa32 combinations and tx39.
* config/mips/linux.h: Remove include of mips.h.
Ziemowit Laski [Wed, 3 Oct 2001 22:05:57 +0000 (22:05 +0000)]
c-parse.in (objc_inherit_code, [...]): Make static.
2001-10-03 Ziemowit Laski <zlaski@apple.com>
* c-parse.in (objc_inherit_code, objc_pq_context,
objc_public_flag): Make static.
(objc_interface_context, objc_implementation_context,
objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
global tree array in objc/objc-act.[ch].
(methoddef): Remove unnecessary code.
* objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
Hoist struct definitions to objc-act.h.
(nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
cat_count): Place declaration in objc-act.h.
(objc_tree_index): Move enumeration to objc-act.h.
(objc_global_trees): Place declaration and macro accessors in
objc-act.h.
(implementation_context): Remove duplicate; use
objc_implementation_context instead:
(method_context): Remove duplicate; use objc_method_context
instead.
(objc_ellipsis_node, objc_method_prototype_template,
implemented_classes, function_type): Move global vars to
objc_global_trees.
(init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
(build_message_expr): Move actual construction of ObjC message
send nodes to finish_message_expr.
(finish_message_expr): New routine, contains code formerly in
build_message_expr.
* objc/objc-act.h (finish_message_expr): New prototype.
(objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
declarations; these vars are now part of objc_global_trees.
(objc_tree_index, objc_global_trees): Move definitions from
objc-act.c.
* objc/objc-tree.def: Update copyright info.
Tom Tromey [Tue, 2 Oct 2001 13:44:32 +0000 (13:44 +0000)]
prims.cc (_Jv_NewMultiArrayUnchecked): New method.
* prims.cc (_Jv_NewMultiArrayUnchecked): New method.
(_Jv_NewMultiArray): Use it. Check each array dimension.
(_Jv_NewMultiArray): Likewise.
* java/lang/reflect/natMethod.cc (can_widen): Nothing promotes to
`char'.
* java/lang/reflect/natArray.cc (newInstance): Throw
IllegalArgumentException if there are no dimensions.
* config/i386/linux64.h: New spec file for Linux x86-64 support.
* config.gcc: Fix tm_file settings for x86-64.
* config/i386/x86-64.h: New file with OS independent x86-64
definitions.
* config/i386/biarch64.h: New file used to configure compiler
to biarch/64bit compilation.
* config/i386/i386.c: (override_options): Set flags default
for 64bit compilation.
* i386.c (legitimize_pic_address): Add missing bits of 64bit support.
(ix86_expand_int_movcc): Optimize DImode conditional moves with
constants on x86_64.
(ix86_attr_length_immediate_default): Support MODE_DI.
* i386.md (fixdi splitter): Add missing "&& 1" in splitter
condition.
(indirect_jump, tablejump): Turn into expander.
Joseph Myers [Tue, 2 Oct 2001 07:19:47 +0000 (08:19 +0100)]
c-common.c (c_format_attribute_table): Make format and format_arg attributes apply to function types rather than to decls.
* c-common.c (c_format_attribute_table): Make format and
format_arg attributes apply to function types rather than to
decls.
(is_valid_printf_arglist): Construct an attribute list and pass
that to check_function_format rather than a name.
* c-common.h (check_function_format): Adjust prototype.
* c-decl.c (duplicate_decls): Preserve attributes from type of
built-in decl when allowing for harmless conflict in types.
* c-format.c (record_function_format,
record_international_format, function_format_list,
international_format_info, international_format_list): Remove.
(function_format_info): Remove next, name and assembler_name.
Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
(decode_format_attr): New.
(handle_format_attribute): Handle receiving a type rather than a
decl. Call decode_format_attr. Store format information in a
function_format_info.
(handle_format_arg_attribute): Correct comment. Handle receiving
a type rather than a decl. Use unsigned HOST_WIDE_INT for
arg_num.
(check_format_info_recurse, check_format_info_main): Take argument
numbers as unsigned HOST_WIDE_INT.
(check_function_format): Take a list of attributes from the
function type rather than a name or assembler name. Check for
format attributes in that list and the attributes on the type of
the current function rather than looking through
function_format_list.
(check_format_info): Use unsigned HOST_WIDE_INT for argument
numbers.
(check_format_info_recurse): Take format_arg attributes from the
type of the function calls rather than using
international_format_list. Allow for multiple format_arg
attributes.
* c-typeck.c (build_function_call): Pass type attributes to
check_function_format rather than name or assembler name. Don't
require there to be a name or assembler name to check formats.
cp:
* call.c (build_over_call), typeck.c (build_function_call_real):
Pass type attributes to check_function_format rather than name or
assembler name. Don't require there to be a name or assembler
name to check formats.
testsuite:
* g++.dg/warn/format2.C, gcc.dg/format/attr-7.c,
gcc.dg/format/multattr-1.c, gcc.dg/format/multattr-2.c,
gcc.dg/format/multattr-3.c: New tests.
* gcc.dg/format/attr-3.c: Update expected error texts. Remove
tests for format attributes on function pointers being rejected.
Dale Johannesen [Tue, 2 Oct 2001 03:36:45 +0000 (03:36 +0000)]
rs6000.h (enum processor_type): Add support for 7400 (G4) and 7450.
2001-10-01 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.h (enum processor_type): Add support
for 7400 (G4) and 7450.
(RTX_COSTS): Ditto.
* config/rs6000/rs6000.c (rs6000_override_options): Ditto.
(rs6000_issue_rate): Ditto.
(rs6000_adjust_cost): Fix cycle counts for compares.
(debug_stack_info): Fix an obvious typo.
* config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
* doc/invoke.texi: Document.
* config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
for Darwin.
(PROCESSOR_DEFAULT): Ditto.
* Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
(fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
later recursive make invocation.
Richard Kenner [Mon, 1 Oct 2001 23:22:24 +0000 (23:22 +0000)]
alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
* alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
Loop through NOPs, placeholders, and components.
Don't go through NOPs if change mode.
(record_alias_subset): Do nothing if SUBSET and SET are the same.
* emit-rtl.c (set_mem_alias_set): Enable check.
* expr.c (find_placeholder): New function.
(expand_expr, case PLACEHOLDER_EXPR): Use it.
(expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
to modify it and avoid unneeded copies.
* expr.h (expand_expr): Always define.
(find_placeholder): New declaration.
Stephane Carrez [Mon, 1 Oct 2001 13:33:55 +0000 (15:33 +0200)]
m68hc11.md ("add-split"): Fix add split when operand 2 is the stack pointer.
* config/m68hc11/m68hc11.md ("add-split"): Fix add split when
operand 2 is the stack pointer.
("addr-peephole"): Fix address computation peephole when operand 2
is the stack pointer.
Richard Kenner [Mon, 1 Oct 2001 11:00:47 +0000 (11:00 +0000)]
function.c (keep_stack_depressed): Don't use delete_insn.
* function.c (keep_stack_depressed): Don't use delete_insn.
* expr.h (set_mem_alias_set): Move decl to here.
* rtl.h (mem_attrs): New typedef and struct.
(union rtunion_def): Add field for mem_attrs.
(X0MEMATTR, MEM_ATTRS): New macros.
(MEM_ALIAS_SET): Use MEM_ATTRS.
(MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
(MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
(set_mem_alias_set): Delete decl from here.
* alias.c (set_mem_alias_set): Delete from here.
* emit-rtl.c (mem_attrs_htab): New variable.
(rtx_htab_mark, rtx_htab_mark_1): Deleted.
(mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
(mem_attrs_mark, get_mem_attrs): Likewise.
(gen_rtx_MEM): Clear MEM_ATTRS.
(set_mem_attributes): Move to here.
(set_mem_alias_set): Likewise, and call get_mem_attrs.
(init_emit_once): const_int_htab now deletable htab.
Initialize mem_attrs_htab.
* explow.c (set_mem_attributes): Delete from here.
* function.c (put_var_into_stack): Clear MEM_ATTRS.
(gen_mem_addressof): Likewise; rework to use set_mem_attributes.
* ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
* reload1.c (reload): Rework changing REG to MEM.
* aclocal.m4: Get definition of libtool.
* Makefile.in: Use libtool.
* configure.in: Use libtool.
* configure: Regenerated.
* libF77/Makefile.in: Use libtool; treat main program contained in
libF77/main.c specially.
* libF77/configure.in: Use libtool.
* libF77/configure: Regenerated.
* libI77/Makefile.in: Use libtool.
* libI77/configure.in: Use libtool.
* libI77/configure: Regenerated.
* libU77/Makefile.in: Use libtool.
* libU77/configure.in: Use libtool.
* libU77/configure: Regenerated.
* libU77/date_.c: Adapt for -fPIC compiling.
* libU77/vxtidate_.c: Ditto.
* config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
("tsthi_1"): Avoid allocation in register y.
("*movqi_68hc12"): Reorganize and fix constraints.
("zero_extendqisi2"): Prefer d over x and y for operand 1.
("addqi3"): Likewise.
("addhi3"): Fix constraints.
("*logicalhi3_zexthi"): Disparage soft registers.
re PR libgcj/4383 (file: protocol not supported in URLConnection?)
PR libgcj/4383
* gnu/gcj/protocol/file/Connection.java (connect): Throw
FileNotFoundException if appropriate.
* gnu/gcj/protocol/file/Handler.java (openConnection): Throw an
IOException if we got a file: url with a hostname. Comment out protocol
switch to ftp for now.
* java/net/URL.java (URL): Include protocol name in exception
message
when handler can't be found.
* config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
update md_exec_prefix.
(UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
to string constant.
* config/s390/s390.c (check_and_change_labels): Preserve CC mode
when converting conditional branches to far branches.
* config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
cmpint_di): Use CCSmode instead of CCUmode.
* config/s390/s390.c (legitimate_la_operand_p): New.
* config/s390/s390-protos.h (legitimate_la_operand_p): Add.
* config/s390/s390.md (movsi): Convert load address patterns to
arithmetic operations when necessary.
(addaddr_picR, addaddr_picL, addaddr_picN): Removed.
(do_la): Renamed to *do_la and use legitimate_la_operand_p.
(*do_la_reg_0): Don't use before reload.
* config/s390/s390.c (legitimize_address): Make more efficient
use of two-register addressing mode.
* config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
with -mno-backchain in some corner cases.
* config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
reload.c (find_reloads): Mark new USE insns with QImode.
* reload.c (find_reloads): Mark new USE insns with QImode.
(find_reloads_toplev, find_reloads_address, subst_reg_equivs,
find_reloads_subreg_address): Likewise.
* regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
encountered.
* reload1.c (reload_combine_note_use): Likewise, inside USEs and
CLOBBERs.
(reload): Make sure there are no USEs with mode other than
VOIDmode. At the end, remove those marked with QImode.
Per Bothner [Sat, 29 Sep 2001 18:22:05 +0000 (11:22 -0700)]
cppdefault.c (cpp_include_defaults): Also search PREFIX_INCLUDE_DIR.
* cppdefault.c (cpp_include_defaults): Also search PREFIX_INCLUDE_DIR.
* Makefile.in (includedir): Rename to local_includedir.
(includedir): Define as $(prefix)/include.
* config.in (PREFIX_INCLUDE_DIR): New variable.
* configure.in (PREFIX_INCLUDE_DIR): Test for new variable.
* configure.target (LIMITSH): Set for cris.
(cpu_include_dir): Set for cris-*-*.
* config/cpu/cris/bits/atomicity.h: New file.
* config/cpu/cris/bits/limits.h: New file.