recog.c (check_asm_operands): Treat indeterminate operand ok results as success.
* recog.c (check_asm_operands): Treat indeterminate operand ok
results as success. Try harder to resolve a matching constraint.
* stmt.c (expand_asm_operands): Recognize when an output operand's
constraint does not allow memory. Treat indeterminate operand ok
results as failure. Try harder to resolve a matching constraint.
Ken Raeburn [Mon, 1 Feb 1999 12:50:53 +0000 (12:50 +0000)]
Use varrays for constant-equivalence data:
* varray.h (struct const_equiv_data): New type.
(union varray_data_tag): New element const_equiv.
(VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
(VARRAY_SIZE): New macro, returns number of elements.
* integrate.h: Include varray.h.
(struct inline_remap): Replace const_equiv_map, const_age_map and
const_equiv_map_size with a const_equiv_varray element.
(MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if needed.
(SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields simultaneously,
growing the varray if needed.
* integrate.c (global_const_equiv_map, global_const_equiv_map_size): Deleted,
replaced by....
(global_const_equiv_varray): New variable.
(expand_inline_function): References changed.
* integrate.h: Update declarations.
* integrate.c (process_reg_parm, expand_inline_function,
copy_rtx_and_substitute, try_constants, subst_constants, mark_stores): Use
varray allocation and accessor macros, new integrate.h macros, and
global_const_equiv_varray. Don't conditionalize non-NULL stores on array size;
instead, expand the array as needed.
* unroll.c (unroll_loop): Likewise.
* unroll.c (unroll_loop): Initialize const_equiv_varray element to zero. After
allocating varray, always exit through bottom of function, where it can be
deallocated if needed. Don't explicitly reallocate const_equiv_map storage;
instead, just ensure the varray has been initialized, and update the global
reference.
Kaveh R. Ghazi [Mon, 1 Feb 1999 07:00:40 +0000 (07:00 +0000)]
Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
* Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
* gjavah.c: Include config.h and system.h.
* javaop.h (inline): Don't define, its handled by system.h.
(WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
from `inline' to `static inline'.
* jcf.h (inline): Don't define, its handled by system.h.
* lex.c (inline): Likewise.
Michael Hayes [Sun, 31 Jan 1999 13:51:08 +0000 (13:51 +0000)]
configure.in: Don't remove loop.o and unroll.o when enable-haifa is selected.
Mon Feb 1 10:52:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* configure.in: Don't remove loop.o and unroll.o when
enable-haifa is selected.
* configure: Rebuilt.
* toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
when declaring arguments and calling va_arg() to initialize them.
* collect2.c (notice): Likewise.
* loop.c (find_life_end): Use PROTO() macro in the prototype.
Kaveh R. Ghazi [Fri, 29 Jan 1999 04:18:00 +0000 (04:18 +0000)]
cccp.c (eprint_string): Constify a char*.
* cccp.c (eprint_string): Constify a char*.
(notice): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
(vnotice): Constify a char*.
(error): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
(verror): Constify a char*.
(warning): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
(vwarning): Constify a char*.
(error_with_line): Likewise. Use PVPROTO not VPROTO, add
ATTRIBUTE_PRINTF_2.
(verror_with_line): Constify a char*.
(vwarning_with_line): Likewise.
(warning_with_line): Likewise. Use PVPROTO not VPROTO, add
ATTRIBUTE_PRINTF_2.
(pedwarn): Constify a char*. Use PVPROTO not VPROTO, add
ATTRIBUTE_PRINTF_1.
(pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
(pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
Also correct typo in parameter name declaration.
(make_assertion): Constify a char*.
(quote_string_for_make): Likewise.
(deps_output): Likewise.
(fatal): Likewise. Use PVPROTO not VPROTO, add
ATTRIBUTE_PRINTF_1. Use ATTRIBUTE_NORETURN not an explicit
"__attribute__ ((noreturn))".
(fancy_abort): Likewise for ATTRIBUTE_NORETURN.
(pfatal_with_name): Likewise.
(pipe_closed): Likewise.
(memory_full): Likewise.
J"orn Rennecke [Thu, 28 Jan 1999 15:28:14 +0000 (15:28 +0000)]
loop.c (recombine_givs): New parameter unroll_p.
* loop.c (recombine_givs): New parameter unroll_p. If set, don't
generate complex adds. Changed caller.
Don't generate adds that cost more than the original one.
(strength_reduce): Warning fixes.
J"orn Rennecke [Wed, 27 Jan 1999 15:45:50 +0000 (15:45 +0000)]
rtl.h (insn_first_p): Declare.
* rtl.h (insn_first_p): Declare.
* rtlanal.c (insn_first_p): New function.
* loop.h (varray.h): Include.
(struct induction): Change combined_with to unsigned.
New members derived, ix and last_use.
(reg_iv_type, reg_iv_info): Now varray_type. All references changed.
(REG_IV_TYPE, REG_IV_INFO): Define.
(first_increment_giv, last_increment_giv): Declare.
* loop.c (loop_number_loop_cont): New static variable.
(loop_number_cont_dominator): Likewise.
(reg_iv_type, reg_iv_info): Now varray_type.
(first_increment_giv, last_increment_giv): New variables.
(compute_luids, verify_dominator, find_life_end): New functions.
(cmp_recombine_givs_stats, recombine_givs): Likewise.
(loop_optimize): Allocate loop_number_loop_cont and
loop_number_cont_dominator. Use compute_luids.
(find_and_verify_loops): Initialize loop_number_loop_cont and
loop_number_cont_dominator.
(strength_reduce): Try to find bivs that can be expressed as givs
of another biv, and to convert biv increments into givs.
Call recombine_givs. Handle derived givs.
(record_biv): New argument location. All callers changed.
(record_giv): Initialize derived and last_use fields.
(basic_induction_var): New argument location. All callers changed.
(combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
Increment combined_with instead of setting to 1.
* unroll.c (derived_regs): New static variable.
(unroll_loop): Initialize it.
Allocate local_regno according to max_reg_num.
(copy_loop_body): Cope with derived givs.
(find_splittable_givs): Check for Givs made from biv increments.
Set derived_regs for givs.
* Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
Jason Merrill [Tue, 26 Jan 1999 20:23:36 +0000 (20:23 +0000)]
pt.c (instantiate_class_template): Set up the DECL_INITIAL of member constants.
* pt.c (instantiate_class_template): Set up the DECL_INITIAL of
member constants.
g++.ns/template6.C
* init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in
a ctor initializer.
g++.other/typedef6.C
Zack Weinberg [Tue, 26 Jan 1999 09:12:47 +0000 (09:12 +0000)]
cppfiles.c (safe_read): Deleted.
1999-01-26 12:11 -0500 Zack Weinberg <zack@midnite.ec.rhno.columbia.edu>
* cppfiles.c (safe_read): Deleted.
(read_and_prescan): New function, replaces safe_read, converts
and/or warns about trigraphs, silently converts odd line
terminators (\r, \n\r, \r\n). Warns about no newline at EOF.
(finclude): Use read_and_prescan; turn off nonblocking mode on
the input descriptor; remove file-size-examination and
no-newline-at-EOF gunk which is longer necessary; be more
careful about checking that we've been handed a legitimate
file to read (only real files, pipes, and ttys are acceptable).
* cpplib.h (cpp_options): Rename no_trigraphs flag to
`trigraphs' and invert its sense.
(trigraph_table): Declare.
(cpp_warning_with_line): Prototype.
* cpplib.c: Remove all references to trigraph_pcp. Define
trigraph_table; initialize it in initialize_char_syntax. Open
files in nonblocking mode. s/no_trigraphs/trigraphs/
throughout, and invert sense. Put cpp_warning_with_line back
in and export it.
Michael Hayes [Tue, 26 Jan 1999 02:33:29 +0000 (02:33 +0000)]
c4x.h (COUNTER_REGS): New register class.
Tue Jan 26 23:21:49 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (COUNTER_REGS): New register class.
* config/c4x/c4x.md (*rptb_init): Change constraints.
(rptb_end): Emit alternate looping instructions if
RC register not allocated for loop counter.
(decrement_and_branch_on_count): Allow other registers
for loop counter.
Jason Merrill [Mon, 25 Jan 1999 20:43:21 +0000 (20:43 +0000)]
class.c (resolve_address_of_overloaded_function): Mark the chosen function used.
* class.c (resolve_address_of_overloaded_function): Mark the
chosen function used.
* call.c (build_call): Make sure that a function coming in has
been marked used already.
* decl.c (expand_static_init): Call mark_used instead of
assemble_external.
* except.c (call_eh_info, do_pop_exception, expand_end_eh_spec,
alloc_eh_object, expand_throw): Likewise.
* init.c (build_builtin_delete_call): Likewise.
* rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1,
expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
expand_generic_desc): Likewise.
Zack Weinberg [Mon, 25 Jan 1999 11:28:11 +0000 (11:28 +0000)]
cppexp.c: (struct arglist): Removed.
1999-01-25 14:26 -0500 Zack Weinberg <zack@rabi.columbia.edu>
* cppexp.c:
(struct arglist): Removed.
(parse_number): Use HOST_WIDE_INT for the accumulator.
Allow two `l' suffixes unless C89. Clean up. Make
static.
(parse_charconst): New function broken out of cpp_lex.
Code cleaned up drastically. Don't use a token_buffer.
(token_buffer): Removed.
(cpp_lex): Don't call parse_number on a constant string.
Use parse_charconst.
(cpp_parse_expr): Properly handle an ERROR op returned by
cpp_lex.
Zack Weinberg [Mon, 25 Jan 1999 11:23:01 +0000 (11:23 +0000)]
cpplib.c: Don't include signal.h, sys/times.h, or sys/resource.h.
1999-01-25 14:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c: Don't include signal.h, sys/times.h, or
sys/resource.h. Don't declare localtime.
(macroexpand): Handle special symbols here.
(push_macro_expansion): Chop off the trailing '@ ' if possible
here.
(cpp_get_token): Don't do either of the above two things here.
Move `string' label just after case '"' so that wide strings
don't crash the preprocessor.
Andrew Haley [Mon, 25 Jan 1999 10:32:18 +0000 (10:32 +0000)]
except.c, [...] (expand_resume_after_catch): new function.
Mon Jan 25 17:39:19 1999 Andrew Haley <aph@cygnus.com>
* except.c, java-except.h (expand_resume_after_catch): new
function.
* expr.c (java_lang_expand_expr): call expand_resume_after_catch
to branch back to main flow of control after a catch block.
Martin v. Löwis [Sun, 24 Jan 1999 15:38:44 +0000 (15:38 +0000)]
decl.c (decls_match): Return 1 if old and new are identical.
1999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de>
* decl.c (decls_match): Return 1 if old and new are identical.
(push_overloaded_decl): Set OVL_USED when PUSH_USING.