1 2001-05-16 Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
2 Bruce Korb <bkorb@gnu.org>
4 * fixinc/inclhack.def(solaris27_mutex_init): Fix broken mutex
7 2001-05-16 Zack Weinberg <zackw@stanford.edu>
9 * i386.md: Add two peepholes to clean up code generated by
12 2001-05-16 Richard Henderson <rth@redhat.com>
14 * dwarf2asm.c (eh_data_format_name): Add names for "pointer size"
15 variants of non-absolute encodings.
17 * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
19 * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases,
20 __register_frame_info_table_bases): Export.
22 2001-05-16 Richard Henderson <rth@redhat.com>
24 * except.c (eh_data_format_name): Move to ...
25 * dwarf2asm.c: ... here. Use designated initializers if available.
26 (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary.
27 * dwarf2asm.h: Update declarations.
28 * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind
29 ASM_PREFERRED_EH_DATA_FORMAT.
30 (output_call_frame_info): Likewise. Use 'L' augmentation for
33 * unwind-dw2-fde.h (struct fde_vector): New.
34 (struct old_object): Rename from struct object.
36 (__register_frame_info_bases): Declare.
37 (__register_frame_info_table_bases): Declare.
38 (struct dwarf_fde): Remove explicit pc_begin/pc_range members.
39 * unwind-dw2-fde.c (objects): Remove.
40 (unseen_objects, seen_objects): New.
41 (__register_frame_info_bases): New.
42 (__register_frame_info): Use it.
43 (__register_frame_info_table_bases): New.
44 (__register_frame_info_table): Use it.
45 (__deregister_frame_info): Rewrite for changed object struct.
46 (base_from_object, get_cie_encoding, get_fde_encoding): New.
47 (fde_unencoded_compare): Rename from fde_compare; uninline.
48 (fde_single_encoding_compare, fde_mixed_encoding_compare): New.
49 (start_fde_sort): Adjust for new definition of fde_vector.
50 (fde_insert): Likewise.
51 (end_fde_sort): Likewise. Select comparison function based
52 on properties of the object.
53 (fde_split): Take object and fde_compare_t arguments.
54 (frame_heapsort, fde_merge): Likewise.
55 (classify_object_over_fdes): Rename from count_fdes. Handle
56 encoded pointers. Collect encoding, mixed_encoding, and pc_begin
58 (add_fdes): Handle encoded pointers.
59 (init_object): Rename from frame_init. Update for new struct object.
60 (linear_search_fdes): Rename from search_fdes. Handle encoded
62 (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE.
63 (binary_search_single_encoding_fdes): New.
64 (binary_search_mixed_encoding_fdes): New.
66 (_Unwind_Find_FDE): Update for new struct object. Fill in
68 * unwind-dw2.c: Include unwind-pe.h. Constify all pointers
69 iterating over EH data.
70 (_Unwind_FrameState): Remove saw_lsda, addr_encoding. Add
71 fde_encoding, lsda_encoding.
72 (read_uleb128, read_sleb128): Remove.
73 (read_encoded_pointer): Remove. All callers use read_encoded_value.
74 (extract_cie_info): Set lsda_encoding from 'L' augmentation.
75 (uw_frame_state_for): Don't set bases.func. Handle encoded fde
77 * unwind-pe.h: Add "struct" to _Unwind_Context references.
79 2001-05-16 Neil Booth <neil@cat.daikokuya.demon.co.uk>
81 * cppexp.c (lex): Use NODE_NAME and NODE_LEN.
82 * cpphash.c (_cpp_lookup_with_hash): Similarly.
83 * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len,
84 cpp_spell_token, cpp_output_token): Similarly.
85 * cpplib.c (lex_macro_node, do_undef, do_pragma,
86 do_pragma_poison, parse_assertion, do_assert): Similarly.
87 * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p,
88 save_parameter, _cpp_create_definition, check_trad_stringification,
89 cpp_macro_definition): Similarly.
90 * cppmain.c (cb_define, cb_undef, dump_macro): Similarly.
91 * c-lex.c (cb_undef, c_lex): Similarly.
92 * fix-header.c (recognized_function): Similarly.
93 * cpplib.h (NODE_LEN, NODE_NAME): New.
94 (cpp_hashnode): Rename length len.
96 Wed May 16 13:41:10 2001 Jeffrey A Law (law@cygnus.com)
98 * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in
101 2001-05-16 Andreas Jaeger <aj@suse.de>
103 * Makefile.in (toplev.o): Add dependency on dwarf2asm.h.
105 * toplev.c: Include dwarf2asm.h for prototype of
106 dw2_output_indirect_constants.
108 Wed May 16 19:53:53 CEST 2001 Jan Hubicka <jh@suse.cz>
110 * stmt.c (expand_asm_operands): Be able to offload addressof
111 expression to memory. (PR optimization/185)
113 Wed May 16 18:53:23 CEST 2001 Jan Hubicka <jh@suse.cz>
115 * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after
116 applying distributive law.
118 2001-05-16 John David Anglin <dave@hiauly1.hia.nrc.ca>
120 * pa-hpux10.h (THREAD_MODEL_SPEC): Define.
122 * gthr-dce.h (UNUSED): Attribute unused macro.
123 (__gthread_key_dtor): Make arguments UNUSED.
124 (__gthread_key_delete): Revise for compatibility with DRAFT4
127 2001-05-16 David Edelsohn <edelsohn@gnu.org>
129 * doc/install.texi: Update AIX information.
130 * README.RS6000: Remove obsolete file.
132 2001-05-16 Jakub Jelinek <jakub@redhat.com>
133 Nathan Sidwell <nathan@codesourcery.com>
135 * gcc.c (give_switch): Don't write before start of string.
136 Always append suffix.
138 2001-05-16 Nathan Sidwell <nathan@codesourcery.com>
140 * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear
143 2001-05-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
145 * README.ALTOS: Remove obsolete file.
147 2001-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
149 * c-lex.h (save_and_forget_protocol_qualifiers,
150 forget_protocol_qualifiers, remember_protocol_qualifiers):
151 Remove deleted functions' prototypes.
153 2001-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
155 * c-parse.in (methodtype): New production.
156 (methoddef, methodproto): Collapse separate '-' and '+'
159 2001-05-16 Neil Booth <neil@cat.daikokuya.demon.co.uk>
161 * c-common.h (RID_FIRST_PQ): New.
162 * c-parse.in (objc_pq_context): New.
163 (objc parser): Set objc_pq_context rather than calling
164 remember_protocol_qualifiers and forget_protocol_qualifiers.
165 Don't call save_and_forget_protocol_qualifiers.
166 (yylexname): Handle objc protocol qualifiers here.
167 * stringpool.c (struct str_header): Replace with sp_hashnode.
168 (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
169 (alloc_string): Rename alloc_ident. Use the SP_ accessors.
170 Allocate an IDENTIFIER_NODE for each identifier.
171 (FORALL_STRINGS, set_identifier): Delete.
172 (FORALL_IDS, expand_string_table, stringpool_statistics): Update.
173 (ggc_alloc_string): Use an obstack.
174 (get_identifier, maybe_get_identifier, mark_string_hash): Update.
175 * tree.h: Update comments.
176 (set_identifier): Delete.
177 * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
178 save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
179 remember_protocol_qualifiers): Delete.
181 Tue May 15 22:14:09 2001 Jeffrey A Law (law@cygnus.com)
183 * flow.c (life_analysis): After life analysis is complete, do
184 an optional scan over insns looking for REG_LABEL notes that
185 reference a deleted label.
186 (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL
187 before peeking at LABEL_NUSES.
189 2001-05-15 Richard Henderson <rth@redhat.com>
191 * unwind-sjlj.c (_Unwind_GetDataRelBase): New.
192 (_Unwind_GetTextRelBase): New.
194 2001-05-15 Mark Mitchell <mark@codesourcery.com>
196 * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
198 2001-05-15 Geoffrey Keating <geoffk@redhat.com>
200 * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
201 so that CHOOSE_SECTION gets used.
203 * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat
204 TARGET_RELOCATABLE like flag_pic for now.
206 2001-05-15 David Edelsohn <edelsohn@gnu.org>
208 * rs6000.md (movdi splitter): Sign extend more efficiently.
209 * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant
210 to "long long" valid on 32-bit and 64-bit hosts.
211 (logical_operand): Cast trunc_int_for_mode return value.
212 (rs6000_emit_move): Shift macro to encapsulate variable.
213 (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC.
214 (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but
215 plus_constant requires signed argument.
217 2001-05-15 Loren J. Rittle <ljrittle@acm.org>
219 * gthr-posix.h: Make additional pthread-* functions weak.
221 Tue May 15 13:51:32 CEST 2001 Jan Hubicka <jh@suse.cz>
223 * recog.c (apply_change_group): Avoid unneeded validating.
225 2001-05-14 David Edelsohn <edelsohn@gnu.org>
227 * rs6000.c (num_insns_constant_wide): Constants are sign-extended.
228 (num_insns_constant): CONST_INT can be 64-bits.
230 2001-05-14 Stan Shebs <shebs@apple.com>
232 * config/darwin.h (LIB_SPEC): Just use -lSystem.
233 (LIBGCC_SPEC): Don't define.
235 2001-05-14 Richard Henderson <rth@redhat.com>
237 * configure.in (gcc_cv_as_eh_frame): New test.
238 * config.in, configure: Rebuild.
239 * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT.
241 2001-05-14 Andrew MacLeod <amacleod@redhat.com>
243 * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
244 extended precision divide.
246 2001-05-14 Andrew MacLeod <amacleod@redhat.com>
248 * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
251 Mon May 14 17:34:48 CEST 2001 Jan Hubicka <jh@suse.cz>
253 * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH
254 (CPP_CPU??_SIZE_TYPE): New.
255 (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from...
256 (CPP_CPU_SPEC): ... here; support choosing of CPU.
257 (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon.
258 (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only
260 * i386.c (override_options): Add sorry about not suported modes.
262 Mon May 14 08:56:47 2001 Jeffrey A Law (law@cygnus.com)
264 * config/pa/som.h (NM_FLAGS): Remove.
265 (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names.
266 (ASM_OUTPUT_SECTION_NAME): Remove.
267 (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise.
269 2001-05-14 Mark Mitchell <mark@codesourcery.com>
271 * regrename.c (regrename_optimize): Do not rename registers to
274 2001-05-14 Alexandre Oliva <aoliva@redhat.com>
276 * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
277 contain MEMs. Remove useless distinction about clobbering
280 2001-05-13 Geoff Keating <geoffk@redhat.com>
282 * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
283 * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
284 * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
285 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
286 (EXCEPTION_SECTION): Define.
288 2001-05-13 Zack Weinberg <zackw@stanford.edu>
290 * libgcc2.c, libgcc2.h: Restore __eprintf. Label as used for
291 binary backward compat only.
292 * Makefile.in (LIB2FUNCS_ST): New. Put _eprintf here, not
293 in LIB2FUNCS. Pass it to mklibgcc.
294 * mklibgcc.in: Handle LIB2FUNCS_ST.
296 * Makefile.in (installdirs): Don't create $(gcc_tooldir).
298 2001-05-13 Alexandre Oliva <aoliva@redhat.com>
300 * tm.texi (THREAD_MODEL_SPEC): Document it.
301 * gcc.c (main): Use it.
302 * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it.
303 * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise.
305 2001-05-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
307 * rtl.h (SYMBOL_REF_WEAK): New macro.
308 * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap.
309 * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary.
310 * rtl.texi (SYMBOL_REF_WEAK): Document it.
311 * gcc.texi: Remove wrong description.
313 2001-05-13 Mark Mitchell <mark@codesourcery.com>
315 * Makefile.in (STAMP): New macro.
316 Replace all uses of `touch' with $(STAMP).
317 * fixinc/Makefile.in: Likewise.
319 Sun May 13 07:26:34 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
321 * configure.in: ldopen is never in -lexc, so don't test for it.
322 Add test for exc_resume in -lexc for Ada.
323 * configure: Regenerated.
325 2001-05-12 Richard Henderson <rth@redhat.com>
327 * dwarf2asm.c (size_of_encoded_value): New function.
328 * dwarf2asm.h: Declare it.
329 * except.c (output_function_exception_table): Align the TType
330 array only as wide as the encoding.
332 2001-05-12 Zack Weinberg <zackw@stanford.edu>
334 * extend.texi: Document #pragma GCC java_exceptions.
336 2001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
338 * c-parse.in (bison parser, init_reswords): Remove uses of
340 * c-tree.h (doing_objc_thang): Remove.
342 2001-05-12 Neil Booth <neil@daikokuya.demon.co.uk>
344 * cpplex.c (_cpp_lex_token): Ensure we warn at most once
345 about files not ending in newlines.
347 2001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
349 * dwarfout.c (dwarfout_init): Add cast.
350 * sched-deps.c (sched_analyze_insn): Remove unused vars.
351 * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so.
353 * method.c (build_mangled_C99_name): Remove unused prototype.
355 2001-05-12 Alexandre Oliva <aoliva@redhat.com>
357 * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
359 2001-05-12 Alexandre Oliva <aoliva@redhat.com>
361 * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
362 * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document.
364 2001-05-11 Richard Henderson <rth@redhat.com>
366 * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
367 * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1,
368 dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New.
369 * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype.
370 (dw2_output_indirect_constants): Prototype.
371 * dwarf2out.c (dwarf2out_begin_prologue): Generate
372 current_function_func_begin_label if we'll need it for EH. Exit
373 early for IA64_UNWIND_INFO.
374 * except.c: Get DW_EH_PE_* defines from dwarf2.h.
375 (eh_data_format_name): Update for indirect references.
376 (output_function_exception_table): Care for IA64_UNWIND_INFO.
377 Handle ASM_PREFERRED_EH_DATA_FORMAT.
378 * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't
379 define HAVE_eh_return etc.
380 * final.c (final_start_function): Always call dwarf2out_begin_prologue.
381 (final_end_function): Don't call output_function_exception_table.
382 * toplev.c (compile_file): Call dw2_output_indirect_constants.
383 (rest_of_compilation): Invoke output_function_exception_table
384 for ia64 before assemble_end_function.
385 * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document.
386 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document.
388 * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New.
389 * unwind.h: Declare them.
390 * libgcc-std.ver: Export them.
391 * unwind-pe.h: New file.
393 * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
395 * config/ia64/fde-glibc.c: Use "struct unw_table_entry"
397 (find_fde_for_dso): Extract DT_PLTGOT.
398 (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return
399 the segment and gp as well.
400 * config/ia64/frame-ia64.c: Remove file.
401 * config/ia64/frame-ia64.h: Remove file.
402 * config/ia64/unwind-ia64.c: New file.
403 * config/ia64/unwind-ia64.h: New file.
404 * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove.
405 (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove.
406 (ASM_OUTPUT_EH_DOUBLE_INT): Remove.
407 (ASM_PREFERRED_EH_DATA_FORMAT): New.
408 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
409 (IA64_UNWIND_INFO): Re-enable.
410 (HANDLER_SECTION): Remove.
411 (EH_RETURN_DATA_REGNO): New.
412 * config/ia64/ia64.md (exception_receiver): Remove.
413 * config/ia64/t-glibc (LIB2ADDEH): Re-enable.
414 * config/ia64/t-ia64 (LIB2ADDEH): Re-enable.
416 2001-05-11 Richard Henderson <rth@redhat.com>
418 * config/ia64/ia64.c (group_barrier_needed_p): Don't allow
419 calls and jumps to be bundled together.
420 (ia64_reorg): Emit a break after a noreturn call that ends
422 * config/ia64/ia64.md (break_f): New.
424 2001-05-12 Neil Booth <neil@daikokuya.demon.co.uk>
426 * c-lex.c (lex_charconst): Convert into a simple wrapper
427 around cpp_interpret_charconst, to which most of the code
429 * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE,
430 MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK,
431 MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove.
432 (lex): Use cpp_interpret_charconst.
433 * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst,
434 hex_digit_value): New functions.
435 (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros.
436 * cpplib.h (cpp_interpret_charconst): New prototype.
437 * Makefile.in: Update.
439 2001-05-12 Dean Wakerley <dean@wakerley.com>
441 * doc/install.texi: New file. Converted to texinfo from the HTML
442 documentation in wwwdocs/htdocs/install.
444 Fri May 11 15:50:13 2001 Jeffrey A Law (law@cygnus.com)
446 * gcse.c (insert_insn_end_bb): Do not search for assignments to
447 non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
449 * toplev.c (compile_file): Move comment for opening output
450 file to just before the code that opens the output file.
452 2001-05-11 Jakub Jelinek <jakub@redhat.com>
454 * regmove.c (regmove_optimize): Suppress the optimization for
455 unchanging destination register. Add comment above function.
457 2001-05-11 Zack Weinberg <zackw@stanford.edu>
459 * Makefile.in: Exterminate all references to assert.h.
460 * cross-make: Likewise.
462 * configure.in: Correct commentary.
463 * configure: Regenerate.
465 * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
468 * config/t-freebsd, config/t-linux, config/t-linux-aout,
469 config/t-netbsd, config/t-rtems, config/x-linux,
470 config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
471 No need to override INSTALL_ASSERT_H.
473 * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
474 fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
475 fixinc/fixincl.sh: Don't install assert.h into objdir/include.
477 2001-05-11 Graham Stott <grahams@redhat.com>
479 * combine.c (simplify_comparison): Fix typo.
481 2001-05-11 Mark Mitchell <mark@codesourcery.com>
483 * loop.h (struct movables): Remove `num'.
484 * loop.c (scan_loop): Don't set it. Use count_insns_in_loop.
485 Adjust call to strength_reduce.
486 (num_unmoved_movables): New function.
487 (move_movables): Don't set movables->num.
488 (strength_reduce): Compute the number of instructions in the loop
489 here, rather than in the caller.
490 (check_dbra_loop): Always clear reversible_mem_store if there
492 (loop_regs_scan): Don't count instructions here.
493 (count_insn_in_loop): New function.
495 2001-05-11 Mark Mitchell <mark@codesourcery.com>
497 * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P.
499 2001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
501 * c-common.c (finish_label_expr): New function, lifted from
503 * c-common.h (finish_label_expr, lookup_label): New prototypes.
504 * c-parse.in: Move 3 blocks of parser code into new functions.
505 * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions.
506 * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes.
507 (lookup_label): Remove.
509 2001-05-11 Alexandre Oliva <aoliva@redhat.com>
511 * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define
512 FLOAT_BIT_ORDER_MISMATCH.
514 2001-05-10 David Edelsohn <edelsohn@gnu.org>
516 * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
517 bytes. Reported by Kazu Hirata <kazu@hxi.com>.
519 2001-05-10 David Edelsohn <edelsohn@gnu.org>
521 * expr.c (emit_group_load): extract_bit_field requires a REG or
524 Thu May 10 14:45:44 2001 Jeffrey A Law (law@cygnus.com)
526 * cse.c (cse_insn): Mostly remove first hunk of code which collapsed
527 a computed jump into an unconditional jump.
528 In second hunk of code for collapsing computed and conditional jumps
529 into unconditional jumps, reemit the jump in additional cases.
531 * jump.c (jump_optimize_1): Do not wrap the new jump target
532 inside a LABEL_REF; gen_jump will do that automatically.
534 2001-05-10 Toon Moene <toon@moene.indiv.nluug.nl>
536 * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
537 contents for a SYMBOL_REF in case of floating point constants.
539 2001-05-10 DJ Delorie <dj@redhat.com>
541 * c-common.c (combine_strings): Widen strings in a
542 host-endian-independent way.
544 2001-05-10 Joseph S. Myers <jsm28@cam.ac.uk>
546 * c-parse.in: Remove many shift/reduce conflicts. Update
548 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
549 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
550 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
551 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
552 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
553 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
554 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
555 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
556 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
557 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
558 maybe_type_quals_setattrs, typespec_nonattr, typespec_attr,
559 typespec_reserved_nonattr, typespec_reserved_attr,
560 typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr,
561 structsp_nonattr, components_notype, component_notype_declarator,
562 absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute,
563 firstparm, setspecs_fp): New
564 (typed_declspecs, reserved_declspecs, typed_typespecs,
565 reserved_typespecquals, declmods, typespec, typespecqual_reserved,
566 typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
567 declmods_no_prefix_attr, nonempty_type_quals, structsp,
568 type_quals): Remove. Users updated.
569 (initdecls, notype_initdecls, after_type_declarator,
570 parm_declarator, notype_declarator, absdcl1, components, ivars):
571 Don't allow attributes at the start of a declarator; include them
572 in the production containing the declarator instead. Always
573 require type specifiers before trying to redeclare a typedef name.
574 (typename): Allow for attributes but warn that they are ignored.
575 (parmlist, firstparm, setspecs_fp): Include attributes in
576 parmlist; suck them off the parser stack in firstparm using
579 Thu May 10 09:17:42 2001 Jeffrey A Law (law@cygnus.com)
581 * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
582 to determine if a block has an unconditional jump at its end.
584 * jump.c (jump_optimize_1): When converting a conditional jump
585 to an unconditional jump, build the jump using gen_jump instead
586 of just modify operands in-place.
588 2001-05-09 Zack Weinberg <zackw@stanford.edu>
590 * cppinit.c (cpp_post_options): Shut off macro expansion if
592 * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept
593 IN_I directives only if the # is in column 1 and the directive
594 name begins in column 2.
595 * cppmain.c (scan_buffer): Insert a space between # and an
596 identifier, when that identifier is a directive name.
598 * tradcpp.c (struct file_buf): Add a pointer to the next entry
599 in the header search path.
600 (enum node_type): Add T_INCLUDE_NEXT.
601 (directive_table): Add entry for include_next.
602 (do_include_next): New function.
603 (process_include): New routine, broken out of do_include.
604 (finclude): Insert 'nhd' argument, to be copied into
605 next_header_dir of the new buffer.
606 (main): Adjust to match.
607 * gsyslimits.h, limity.h: Un-indent #include_next.
609 2001-05-09 Joseph S. Myers <jsm28@cam.ac.uk>
611 * objc.texi: Move from ../libobjc/objc-features.texi. Adjust for
612 inclusion as a chapter of the GCC manual.
613 * gcc.texi: Include objc.texi.
614 * fdl.texi: Use @unnumberedsec for the addendum.
615 * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies.
617 Wed May 9 16:01:41 CEST 2001 Jan Hubicka <jh@suse.cz>
619 * i386.md (DImode move splitters): Use !MMX and !SSE for the condition.
621 Wed May 9 10:40:25 2001 Alexandre Oliva <aoliva@redhat.com>
623 * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
624 handling of two-address insns.
626 Wed May 9 10:36:18 2001 Alexandre Oliva <aoliva@redhat.com>
628 * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
629 ../binutils/nm-new instead of ../binutils/nm.
631 Wed May 9 12:15:46 CEST 2001 Jan Hubicka <jh@suse.cz>
633 * i386.md (movdi splitter): Fix the splitting condition
634 (float_extenddftf splitter): Fix mode.
636 Wed May 9 12:05:39 CEST 2001 Jan Hubicka <jh@suse.cz>
638 * genrecog.c (write_switch): Avoid outputting of switch for
639 types wider than int.
641 2001-05-03 Andrew Haley <aph@cambridge.redhat.com>
643 * reload1.c (copy_eh_notes): New function.
644 (emit_input_reload_insns): Call it.
645 (emit_output_reload_insns): Call it.
647 2001-05-07 Zack Weinberg <zackw@stanford.edu>
649 * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*):
651 * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h,
652 config/i386/sco4dbx.h, config/i386/x-sco4: Delete file.
654 * optabs.c: Delete #ifdef BROKEN_LDEXP block.
656 2001-05-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
658 * pa.md (interspace_jump): Revise comment.
659 (builtin_longjmp): Block initial setup insns from delay slot of
661 (builtin_setjmp_receiver): New expander to save and restore PIC
664 * som.h (NM_FLAGS): Remove `-n' sort option. Revise comment.
666 Mon May 7 09:30:14 2001 Jeffrey A Law (law@cygnus.com)
668 * toplev.c (compile_file): Set up the output file before we call
669 the various initializers for the compiler.
671 * except.c (sjlj_mark_call_sites): Do not search for assignments to
672 non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
674 * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
675 * pa-64.h (*_TYPE_SIZE): Undefine before redefining.
677 2001-05-06 Zack Weinberg <zackw@stanford.edu>
679 * Makefile.in (tradcpp0): Correct typo in dependency list.
681 2001-05-06 Geoff Keating <geoffk@redhat.com>
683 * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
684 the link register if we're not going to use it.
686 * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
687 (output_function_profiler): Likewise.
689 2001-05-07 Alan Modra <amodra@one.net.au>
691 * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
693 2001-05-06 Alexandre Oliva <aoliva@redhat.com>
695 * unroll.c (loop_iterations): Don't sign-extend abs_diff;
696 zero-extend it. Make abs_inc unsigned.
698 * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the
699 widest mode in narrowing and widening operations.
701 * config/mips/mips.md: Sign extend CONST_INTs.
703 2001-05-06 Andreas Jaeger <aj@suse.de>
705 * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer
706 (i386 Options): Document -momit-leaf-frame-pointer.
708 2001-05-06 Neil Booth <neil@daikokuya.demon.co.uk>
710 * c-typeck.c (internal_build_compound_expr): Check for
711 array to pointer conversion just once.
713 2001-05-05 Richard Henderson <rth@redhat.com>
715 * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.
717 2001-05-05 Richard Henderson <rth@redhat.com>
719 * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes
720 to the parent of the fixup region.
722 2001-05-05 Jakub Jelinek <jakub@redhat.com>
724 * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring
726 * cpp.texi (__NO_INLINE): Document it.
728 2001-05-05 Neil Booth <neil@daikokuya.demon.co.uk>
730 * cppfiles.c (struct include_file): New member err_no.
731 (find_or_create_entry): Set it.
732 (open_file): Don't set fds to -2. Instead, use err_no to
733 remember previous errors, if any.
735 2001-05-05 Stephane Carrez <Stephane.Carrez@worldnet.fr>
737 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
738 between X and Y by using sequences of xgdx and xgdy.
740 2001-05-05 Stephane Carrez <Stephane.Carrez@worldnet.fr>
742 * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
743 of '!' for the 'D' alternative ('!' is too strong).
744 ("*logicalsi3_silshl16"): Likewise.
745 ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
746 ("movstrictsi"): Remove spurious '+'.
747 ("movstrictqi"): Don't accept 'A' and remove spurious '+'.
748 ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
749 ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
752 2001-05-04 David Edelsohn <edelsohn@gnu.org>
754 * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT.
756 2001-05-04 Lars Brinkhoff <lars@nocrew.org>
758 * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
761 2001-05-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
763 * config/rs6000/rs6000.md (ashldi3 splits): Guard with
766 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
768 * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
769 soft register, use ror instead of rol.
771 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
773 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
774 into account pre/post increment decrement for 68HC12.
775 Fix other problems in replacement and fix call to reg_mentioned_p.
777 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
779 * config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
780 Put the soft registers in bss for 68HC12.
781 (L_regs_d3_4): New for _.d3 and _.d4.
782 (L_regs_d5_6): Likewise.
783 (L_regs_d1_2): Likewise.
784 * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
786 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
788 * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
789 to the pre-processor when -fshort-double is specified.
790 * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
792 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
794 * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
795 (__mulsi3): Rewrite for 68HC12.
796 * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
797 Mark 'x' constraint with earlyclobber to prevent a
798 RELOAD_FOR_OTHER_ADDRESS to go in it.
799 (mulhi3_m68hc12): New pattern.
800 (mulhi3_m68hc11): Rename of mulhi3.
801 (mulhi3): New expand for 68HC12 optimisation.
802 (umulhisi3, mulhisi3): New patterns for 68HC12.
804 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
806 * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
807 (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
808 (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
810 2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
812 * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
813 constants cheap after reload.
814 * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
816 (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
817 so that gcc prefers a shift by 16.
818 (m6811_cost, m6812_cost): Make the shift cheap compared to an add.
820 2001-05-04 Nick Clifton <nickc@cambridge.redhat.com>
822 * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define.
824 2001-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
826 * alpha.h: NULL_PTR -> NULL.
836 * m68hc11.h: Likewise.
837 * rs6000.h: Likewise.
848 2001-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
850 * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
851 `bool' parameter to `int'.
853 * hash.c (hash_lookup): Likewise.
855 * hash.h (hash_lookup): Likewise.
857 * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
859 Fri May 4 13:10:03 CEST 2001 Jan Hubicka <jh@suse.cz>
861 * i386.c (x86_initialize_trampoline): Fix mode of constant.
863 2001-05-03 Geoff Keating <geoffk@redhat.com>
865 * invoke.texi (i386 Options): Delete references to -malign-jumps,
866 -malign-loops, -malign-functions.
867 * i386.c (ix86_align_funcs): Delete.
868 (ix86_align_loops): Delete.
869 (ix86_align_jumps): Delete.
870 (override_options): Mark -malign-* as obsolete. Emulate their
871 behaviour with the -falign-* options. Default -falign-* from
873 * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
874 patch of Wed May 2 13:09:36 2001.
875 (LOOP_ALIGN): Delete.
876 (LOOP_ALIGN_MAX_SKIP): Delete.
877 (LABEL_ALIGN_AFTER_BARRIER): Delete.
878 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
880 2001-05-04 Andreas Jaeger <aj@suse.de>
882 * except.h: Add prototype declaration for
883 expand_builtin_init_dwarf_reg_sizes.
885 2001-05-03 Geoffrey Keating <geoffk@redhat.com>
887 * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
889 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
891 * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
893 ("bitcmpqi2"): New pattern for bit-extract and test.
894 ("bitcmphi"): New pattern for bitb/bita instructions.
896 2001-05-03 Joseph S. Myers <jsm28@cam.ac.uk>
898 * gccbug.in: Use a temporary directory when the mktemp command is
901 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
903 * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
905 (INITIALIZE_TRAMPOLINE): Call it.
906 (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
907 (TRAMPOLINE_TEMPLATE): Remove.
908 * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
909 * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
912 2001-05-03 David O'Brien <obrien@FreeBSD.org>
914 * config/t-freebsd: Don't install "assert.h" in gcc. Compile crtbeginS.o
915 and crtendS.o with PIC.
917 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
919 * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
921 (___subdi3, ___adddi3): Use x instead of y as index register.
922 (__init_bss_section, __map_data_section): Optimize for 68HC12.
923 (__memset, __memcpy): Likewise.
924 (regs): Put the soft registers in bss for 68HC12.
925 (abort): Use trap to abort for 68hc12.
926 (__mulhi3, __mulhi32): Use emul for 68hc12.
927 (__mulsi3): Avoid to use the tmp soft register for 68hc12.
929 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
931 * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
932 * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
933 * config/m68hc11/m68hc11.c (limit_reload_class): Remove.
934 (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
935 Set 68HC12 min offset to -65536.
936 (print_operand): Put parenthesis arround the operand if it refers
937 to a symbol having the same name as a register.
938 (m68hc11_z_replacement): When z register is replaced by its
939 equivalent soft register, force the insn to be re-recognized.
940 (m68hc11_check_z_replacement): Fix the test when destination is
941 the index register and z dies in the insn.
942 (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
944 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
946 * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
947 costs according to processor variant.
948 (m68hc11_shift_cost): New function to compute shift costs.
949 (m68hc11_rtx_costs): Define costs according to processor variant.
950 (m6811_cost): Costs for 68HC11.
951 (m6812_cost): Costs for 68HC12.
952 (COSTS_N_INSNS): Remove.
954 * config/m68hc11/m68hc11.h (RTX_COSTS): New.
955 (DEFAULT_RTX_COSTS): Remove.
956 (CONST_COSTS): Define costs according to OUTER_CODE.
957 (processor_costs): New struct to define costs.
958 (m68hc11_cost): Pointer to current costs.
960 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
962 * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
963 and use m68hc11_notice_keep_cc when using leax/leay.
964 (addhi3 split): Reject split if the insn is handled by
966 * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
967 push must be handled in a special way if the source operand uses
968 sp as index register.
969 (m68hc11_notice_keep_cc): New function.
970 (m68hc11_gen_movhi): Use it when an insn changes a register but
972 (m68hc11_gen_movqi): Fix move for 68HC12.
973 * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
975 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
977 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
978 and don't pass operands[0] to emit_library_call_value.
980 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
982 * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
983 (zero_extendsi split): Simplify and use (zero_extendhi).
984 (*addhi3): Remove 'w' constraint since stack pointer is handled
986 (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
987 (*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
988 (*ashrhi3_const): Fix shift by 7.
989 (*lshrsi3_const16): Fix template.
990 (call, call_value): Fix constraint and predicate.
992 2001-05-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
994 * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
995 (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
996 (CC_REGNUM): Likewise.
997 (*unnamed splits): Use above constants instead of hard coded numbers.
998 (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
999 (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
1000 (*return_16bit, *unnamed peepholes): Likewise.
1002 2001-05-03 David O'Brien <obrien@FreeBSD.org>
1004 * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix): Do not include
1005 rs6000/rs6000.h twice.
1007 2001-05-03 Mark Elbrecht <snowball3@bigfoot.com>
1009 * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
1010 (CPP_SPEC): Conditionally define MSDOS and GO32.
1011 (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
1012 (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
1014 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
1016 2001-05-03 Alexandre Oliva <aoliva@redhat.com>
1018 * config/mn10300/mn10300.md: Sign-extend GEN_INT operands.
1020 2001-05-03 Mark Mitchell <mark@codesourcery.com>
1022 * integrate.h (struct inline_remap): Add leaf_reg_map table.
1023 * integrate.c (expand_inline_function): Use xcalloc to allocate
1025 (copy_rtx_and_substitute): Use the leaf_reg_map for leaf
1028 2001-05-03 Mark Mitchell <mark@codesourcery.com>
1030 * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
1033 2001-05-03 Alexandre Oliva <aoliva@redhat.com>
1035 * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
1036 linker if -mrelax is given.
1037 (TARGET_SWITCHES): Document -mrelax.
1039 Re-installed 2001-01-09's patch:
1040 * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
1041 if it's wider than long and the target's long is wider than the
1044 2001-05-02 David O'Brien <obrien@FreeBSD.org>
1046 * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h: Do not
1047 directly include rs6000/rs6000.h. Instead do it in tm.h.
1049 2001-05-02 Stan Shebs <shebs@apple.com>
1051 * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
1052 NSConstantString for NeXT-style runtimes.
1053 (STRING_OBJECT_GLOBAL_NAME): New macro.
1054 (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
1055 OCTI_STRING_CLASS_DECL.
1056 (constant_string_global_id): New macro.
1057 (string_class_decl): Ditto.
1058 (setup_string_decl): New function.
1059 (build_objc_string_object): Use it to build a NeXT runtime
1060 compatible string initializer.
1062 2001-05-02 Jakub Jelinek <jakub@redhat.com>
1064 * tradcpp.c (do_define): Make sure we don't walk past limit.
1066 2000-05-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1068 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
1069 offsets if not REG_OK_STRICT.
1071 * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
1072 (INT_REG_OK_FOR_INDEX_P): Likewise.
1073 (INT_REG_OK_FOR_BASE_P): Likewise.
1074 (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
1075 (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
1076 (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
1077 INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
1078 REG_OK_FOR_BASE_P. Take an additional parameter.
1079 (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
1080 (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
1081 (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
1082 (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
1083 rs6000_legitimate_address() and use it.
1084 * config/rs6000/rs6000.c: Update all callers.
1085 (rs6000_legitimate_address): New function.
1087 2001-05-02 David Edelsohn <edelsohn@gnu.org>
1089 * config/rs6000/rs6000.c (rs6000_emit_move): Merge
1090 special_constant conditional blocks together.
1092 2001-05-02 Dale Johannesen <dalej@apple.com>
1094 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
1096 (STRICT_ARGUMENT_NAMING): Define.
1097 * config/rs6000/rs6000.c (function_arg_advance, function_arg,
1098 function_arg_partial_nregs, setup_incoming_varargs): Remove
1099 args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
1102 Wed May 2 13:09:36 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1104 * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
1106 * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
1109 * expr.c (store_field): Do nothing except elaborate side-effects if
1112 2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1114 * c-lex.c: NULL_PTR -> NULL.
1116 * emit-rtl.c: Likewise.
1118 * genpeep.c: Likewise.
1120 * mips-tdump.c: Likewise.
1121 * reload1.c: Likewise.
1122 * rtlanal.c: Likewise.
1124 * stor-layout.c: Likewise.
1125 * toplev.c: Likewise.
1127 2001-05-01 Per Bothner <per@bothner.com>
1129 * expr.c (expand_expr): When compiling LABELED_BLOCK_EXPR,
1130 call do_pending_stack_adjust before emiting label.
1132 2001-05-01 Mark Mitchell <mark@codesourcery.com>
1134 * extend.texi: Fix typo.
1136 2001-05-01 Stan Shebs <shebs@apple.com>
1138 * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
1139 of UOBJC_MODULES_decl.
1140 (generate_strings): Clear DECL_CONTEXT of new decl nodes.
1141 (generate_descriptor_table): Ditto.
1142 (generate_protocols): Ditto.
1143 (generate_protocol_list): Ditto.
1144 (generate_classref_translation_entry): Ditto.
1146 2001-05-01 Jeffrey Oldham <oldham@codesourcery.com>
1148 * invoke.texi (Optimize Options): Add documentation for `--param
1149 max-delay-slot-insn-search' and `--param
1150 max-delay-slot-live-search' and reorder --param section.
1151 * params.def: Modify initial comment.
1152 * params.h (param_info): Add `help' member.
1153 * toplev.c (lang_independent_params): Include `help' description.
1154 (display_help): Print --param parameters.
1156 2001-05-01 Zack Weinberg <zackw@stanford.edu>
1158 * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
1159 Remove references to deleted files.
1160 (*-*-openbsd): No need to override xmake_file.
1161 (*-*-sysv4): Treat like *-*-sysv.
1163 * configure.in: Probe for ldopen in various places, and set up
1164 collect2 to be linked with them if found.
1165 Don't dink with Windows registry stuff unless $host_os is a
1166 Win32 os name. Check to see if we need -ladvapi32.
1167 * configure: Regenerate.
1169 * Makefile: Get rid of CLIB and HOST_CLIB.
1170 Substitute in COLLECT2_LIBS and link collect2 against its contents.
1171 * build-make: Get rid of HOST_CLIB.
1173 * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
1174 config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
1175 config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
1176 config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
1177 config/rs6000/x-rs6000: Delete.
1179 * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
1182 24 x-host fragments remain, 0 x-cpu, 3 top level.
1184 2001-05-01 Zack Weinberg <zackw@stanford.edu>
1186 * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
1187 * configure: Regenerate.
1189 2001-05-01 Angela Marie Thomas <angela@cygnus.com>
1191 * Makefile.in (install-headers): Remove redundant dependency.
1193 2001-05-01 Nathan Sidwell <nathan@codesourcery.com>
1195 * c-tree.texi (USING_STMT): Document.
1197 2001-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1199 * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
1200 * c-common.c: Likewise.
1201 * c-decl.c: Likewise.
1202 * combine.c: Likewise.
1203 * rs6000.c: Likewise.
1204 * except.c: Likewise.
1205 * explow.c: Likewise.
1207 * fold-const.c: Likewise.
1208 * function.c: Likewise.
1211 * integrate.c: Likewise.
1213 * objc/objc-act.c: Likewise.
1214 * recog.c: Likewise.
1215 * reg-stack.c: Likewise.
1216 * reload.c: Likewise.
1217 * reload1.c: Likewise.
1218 * simplify-rtx.c: Likewise.
1220 * varasm.c: Likewise.
1222 2001-05-01 Gabriel Dos Reis <gdr@codesourcery.com>
1224 * diagnostic.def: New file.
1225 * diagnostic.h (diagnostic_t): New enum.
1226 * Makefile.in (diagnostic.o): Depend on diagnostic.def
1228 2001-04-30 Zack Weinberg <zackw@stanford.edu>
1230 * tsystem.h: Test only POSIX for availability of string.h
1232 * config.gcc (all systems): If USG appeared in xm_defines,
1233 change it to POSIX. If both USG and POSIX appeared, just
1234 delete USG. Remove unnecessary quotes around xm_defines
1236 (m68k-crds-unos*): Don't #define unos - tested nowhere.
1237 (m68k-apple-aux*): Don't #define AUX - tested nowhere.
1238 (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
1239 powerpc-*-linux*): No need to set xm_defines - handled by
1240 global settings for *-*-linux*.
1242 2001-04-30 Zack Weinberg <zackw@stanford.edu>
1244 * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
1245 Always include gstab.h, not system stab.h. Don't provide
1246 default definitions of N_CATCH or N_OPT. Always use the
1247 gstab.h variant of STAB_CODE_TYPE.
1248 * final.c: Don't include stab.h/gstab.h at all, or provide
1249 defaults for N_SLINE and N_SOL.
1251 * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
1252 N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
1254 * sdbout.c: Always include gsyms.h instead of system syms.h.
1256 * configure.in: No need to check for stab.h.
1257 * configure, config.in: Regenerate.
1258 * Makefile.in (final.o): Don't depend on gstab.h.
1260 2001-04-30 Mark Mitchell <mark@codesourcery.com>
1261 Richard Henderson <rth@redhat.com>
1263 * extend.texi: Improve documentation of volatile asms.
1265 2001-04-30 Mark Mitchell <mark@codesourcery.com>
1267 * c-tree.texi: Fix thinko.
1268 * gcc.texi: Likewise.
1270 2001-04-30 Richard Henderson <rth@redhat.com>
1272 * c-common.c (c_promoting_integer_type_p): New function, from the
1273 corpse of old macro. Properly promote too-small enumerations and
1274 booleans. Adjust all callers.
1275 * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
1276 (c_promoting_integer_type_p): Declare.
1277 * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
1278 * c-typeck.c: Likewise.
1279 (default_conversion): Remove now redundant boolean check.
1281 2001-04-30 Jan Hubicka <jh@suse.cz>
1282 Richard Henderson <rth@redhat.com>
1284 * regmove.c (try_apply_stack_adjustment): Remove now redundant
1286 (combine_stack_adjustments_for_block): Don't combine stack
1287 allocation followed by deallocations. Handle grow-up stacks.
1289 2001-04-30 Mark Mitchell <mark@codesourcery.com>
1291 * fdl.texi: New file.
1292 * c-tree.texi: Use the GFDL.
1293 * gcc.texi: Likewise.
1295 2001-04-30 Stan Shebs <shebs@apple.com>
1297 * invoke.texi: Add a section documenting Objective-C options.
1299 2001-04-27 Andrew Haley <aph@cambridge.redhat.com>
1301 * emit-rtl.c (try_split): Copy EH notes to sequence.
1303 2001-04-30 Mark Mitchell <mark@codesourcery.com>
1305 * regmove.c (record_stack_memrefs): Catch all references to the
1308 2001-04-29 Toomas Rosin <toomas at ns dot tklabor dot ee>
1310 * Makefile.in(stmp-fixinc): quote shell assignment values
1312 2001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1314 * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
1318 * prefix.c: Likewise.
1320 2001-04-28 Stan Shebs <shebs@apple.com>
1322 * objc/objc-act.c (handle_class_ref): Rewrite to flush target
1323 specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
1324 * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
1325 * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
1327 * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
1328 (NEXT_OBJC_RUNTIME): Define.
1330 Sat Apr 28 21:02:58 CEST 2001 Jan Hubicka <jh@suse.cz>
1332 * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
1333 * simplify-rtx.c (simplify_gen_relational): Likewise.
1335 * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
1337 * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
1338 * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
1340 * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
1341 registers in SSE case; fix handling of the immediates.
1342 (negsf2_ifs, abssf2_ifs): Tweak constraints; require
1343 operands to be in regsiters before reload.
1344 (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
1345 (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
1346 (abstf,absxf,negtf,negxf splitters): Compute
1347 properly the regnum for x86_64.
1348 (avsdf2_if_rex64): New.
1350 Sat Apr 28 10:36:23 2001 Jeffrey A Law (law@cygnus.com)
1352 * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
1353 and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
1354 into the constant pool.
1355 * jump.c (jump_optimize_1): Remove barrier successors after all
1356 the LABEL_NUSES counds have been computed.
1357 (delete_barrier_successors): When deleting a tablejump insn, also
1358 delete the jump table it uses.
1359 * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
1362 2001-04-28 Martin Kalen <martin.kalen@todaysystems.com.au>
1364 * pa.c (FRP): Remove erroneous white space in macro definition.
1366 2001-04-28 Andreas Jaeger <aj@suse.de>
1368 * invoke.texi: Use XX-bit instead of XXbit or XX bit where
1370 * extend.texi: Likewise.
1371 * tm.texi: Likewise.
1373 2001-04-28 Andreas Jaeger <aj@suse.de>
1375 * md.texi: Use XX-bit instead of XXbit or XX bit where
1378 2001-04-28 Jens Schweikhardt <schweikh@schweikhardt.net>
1380 * gcc.c (process_command): Allow -l lib in addition to -llib
1381 for POSIX compliance. This fixes PR c/2347.
1383 * invoke.texi: Update section on Link Options accordingly.
1385 2001-04-27 Zack Weinberg <zackw@stanford.edu>
1387 * function.c (purge_addressof_1): Remove the duplicate
1388 if (code == SET) block. Fold the two if (code == ADDRESSOF)
1391 2001-04-28 Jason Merrill <jason_merrill@redhat.com>
1393 * except.c (expand_eh_region_start): Don't start a new block.
1394 (expand_eh_region_end): Don't end a block.
1395 * stmt.c (expand_end_bindings): Don't end EH blocks.
1396 (expand_decl_cleanup): Starting an EH region won't change the block.
1397 (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
1398 (is_eh_region): Lose.
1401 2001-04-27 Jeffrey Oldham <oldham@codesourcery.com>
1403 * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
1405 * collect2.c (main): Add `-L' case to remove duplicate entries.
1406 (is_in_args): New function to check for a duplicate argument.
1407 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
1408 * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
1409 * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
1410 Define to be nonzero.
1412 2001-04-27 Andreas Jaeger <aj@suse.de>
1413 Richard Henderson <rth@redhat.com>
1415 * md.texi (Machine Constraints): Document additional i386
1416 constraints and fix description of "A".
1418 Fri Apr 27 10:43:49 2001 Jeffrey A Law (law@cygnus.com)
1420 * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
1422 2001-04-27 Jason Merrill <jason_merrill@redhat.com>
1424 * except.c (get_exception_filter): word_mode, not Pmode.
1426 2001-04-26 Geoffrey Keating <geoffk@redhat.com>
1428 * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
1429 common to other movsf patterns. Move up so that in future
1430 people who change the other patterns will change it too.
1431 (movsf_lo_sum): Allow even for soft-float; add appropriate
1433 (movsf_high): Likewise.
1434 (movsf_high+1): Allow even for soft-float.
1436 * function.c (expand_function_end): Always clobber the
1437 return registers, even if there is no return label.
1439 Thu Apr 26 20:28:21 CEST 2001 Jan Hubicka <jh@suse.cz>
1441 * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
1443 Thu Apr 26 19:20:28 CEST 2001 Jan Hubicka <jh@suse.cz>
1445 * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
1446 (pushqi2_rex64, pushhi2_rex64): Add.
1448 2001-04-26 Andrew Haley <aph@cambridge.redhat.com>
1450 * except.c (expand_eh_region_end_cleanup): Force pending stack
1451 adjust before emitting label that branches around cleanup code.
1453 2001-04-26 H.J. Lu (hjl@gnu.org)
1455 * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
1457 * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
1459 * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
1460 (ASM_OUTPUT_SECTION_NAME): Likewise.
1461 (ASM_WEAKEN_LABEL): Likewise.
1462 (UNIQUE_SECTION): Likewise.
1463 (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1464 (ASM_OUTPUT_DESTRUCTOR): Likewise.
1465 * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
1466 (ASM_OUTPUT_SECTION_NAME): Likewise.
1467 (ASM_WEAKEN_LABEL): Likewise.
1468 (UNIQUE_SECTION): Likewise.
1469 (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1470 (ASM_OUTPUT_DESTRUCTOR): Likewise.
1471 * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
1472 * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
1473 (ASM_FILE_START): Likewise.
1474 (ASM_OUTPUT_SOURCE_LINE): Likewise.
1475 (ASM_DECLARE_OBJECT_NAME): Likewise.
1476 (ASM_FILE_END): Likewise.
1477 (ASM_DECLARE_FUNCTION_NAME): Likewise.
1478 (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1479 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1480 (ASM_OUTPUT_CASE_LABEL): Likewise.
1481 (ASM_OUTPUT_SKIP): Likewise.
1482 (ASM_OUTPUT_ASCII): Likewise.
1483 (ASM_OUTPUT_IDENT): Likewise.
1484 (READONLY_DATA_SECTION): Likewise.
1485 (EXTRA_SECTIONS): Likewise.
1486 (EXTRA_SECTION_FUNCTIONS): Likewise.
1487 (SELECT_RTX_SECTION): Likewise.
1488 (SELECT_SECTION): Likewise.
1490 * config/mips/linux.h (INVOKE__main): Undefine.
1491 (CTOR_LIST_BEGIN): Likewise.
1492 (CTOR_LIST_END): Likewise.
1493 (DTOR_LIST_BEGIN): Likewise.
1494 (DTOR_LIST_END): Likewise.
1495 (SET_ASM_OP): Defined it to ".dummy".
1496 (ASM_OUTPUT_DEF): Defined.
1497 (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
1499 2001-04-26 Nick Clifton <nickc@cambridge.redhat.com>
1501 * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
1502 assembler supports .p2align.
1504 2001-04-26 Nathan Sidwell <nathan@codesourcery.com>
1506 * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
1508 2001-04-26 Jakub Jelinek <jakub@redhat.com>
1510 * integrate.c (expand_inline_function): Check for error_mark_node
1513 2001-04-26 Jakub Jelinek <jakub@redhat.com>
1515 * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
1518 2001-04-26 Alexandre Oliva <aoliva@redhat.com>
1520 * configure.in (configargs.h): Define thread_model.
1521 * configure: Rebuilt.
1522 * gcc.c (main): Print it with -v.
1524 2001-04-25 Joseph S. Myers <jsm28@cam.ac.uk>
1526 * invoke.texi: Document -Wmissing-braces, -dumpspecs,
1527 -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
1528 * gcc.1: Regenerate.
1530 2001-04-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1532 * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
1533 is_redundant_typedef): Use static inline instead of inline static.
1535 Wed Apr 25 18:21:01 2001 Christopher Faylor <cgf@cygnus.com>
1537 * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
1538 this directory is always searched.
1540 2001-04-25 Richard Henderson <rth@redhat.com>
1542 * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
1543 of registers to restore along non eh_return path.
1545 2001-04-25 Jakub Jelinek <jakub@redhat.com>
1547 * c-format.c (check_format_info_recurse): Handle
1548 PLUS_EXPR for format string.
1550 2001-04-25 Jakub Jelinek <jakub@redhat.com>
1552 * config/ia64/ia64.h (CC1_SPEC): Define.
1553 * config/ia64/linux.h (CC1_SPEC): Define.
1555 Wed Apr 25 17:09:50 2001 J"orn Rennecke <amylaar@redhat.com>
1557 * emit-rtl.c (constant_subword): Also do sign extension in
1558 BITS_PER_WORD == 16 case.
1560 2001-04-25 Jason Merrill <jason_merrill@redhat.com>
1562 * loop.c (try_swap_copy_prop): Go back to checking insn.
1564 2001-04-25 Jakub Jelinek <jakub@redhat.com>
1566 * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
1567 if check_mode is non-zero.
1569 2001-04-25 Jakub Jelinek <jakub@redhat.com>
1571 * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
1572 out and comparison sequence has been detected, put result into
1573 proper temporary pseudo.
1575 2001-04-24 Zack Weinberg <zackw@stanford.edu>
1577 * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
1578 * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
1579 * libgcc2.c: Remove __dummy and __builtin_saveregs.
1580 * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
1581 * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
1582 for future reference.
1584 2001-04-24 Jason Merrill <jason_merrill@redhat.com>
1586 * except.c (reachable_handlers): Step out one level from a RESX.
1588 * except.c (struct eh_region): Rename 'last' to 'resume'.
1589 (mark_eh_region, duplicate_eh_region_1): Adjust.
1590 (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
1591 (build_post_landing_pads): Likewise.
1592 (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
1593 (expand_eh_region_end_must_not_throw): Likewise.
1594 (connect_post_landing_pads): Thread (only) regions with non-deleted
1597 * except.c (expand_eh_region_end_cleanup): Save the EH return data
1598 registers around the cleanup.
1599 (get_exception_filter): New fn.
1600 (finish_eh_generation): Use it.
1602 2001-04-24 Nathan Sidwell <nathan@codesourcery.com>
1604 * c-semantics.c (add_scope_stmt): Don't call
1605 current_scope_stmt_stack multiple times.
1607 2001-04-24 Zack Weinberg <zackw@stanford.edu>
1608 Nathan Sidwell <nathan@codesourcery.com>
1610 Lazy __FUNCTION__ generation.
1611 * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
1612 RID_C99_FUNCTION_NAME): New _RIDs.
1613 (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
1614 (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
1615 CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
1617 (function_id_node, pretty_function_id_node, func_id_node): Remove.
1618 (c99_function_name_decl_node, function_name_decl_node,
1619 pretty_function_name_decl_node, saved_function_name_decls):
1621 (struct language_function): Remove x_function_name_declared_p.
1622 (make_fname_decl): Remove a parameter.
1623 (declare_function_names): Remove prototype.
1624 (start_fname_decls, finish_fname_decls): Prototype.
1625 (fname_as_string): Likewise.
1626 (fname_string, fname_decl): Likewise.
1627 * c-common.c (make_fname_decl): Adjust.
1628 (struct fname_var_t): New struct.
1629 (fname_vars): New static array.
1630 (declare_function_name): Remove.
1631 (start_fname_decls, finish_fname_decls): New functions.
1632 (fname_as_string): New function from remnants of
1633 declare_function_name.
1634 (fname_string, fname_decl): New functions.
1636 * c-decl.c (c_function_name_declared_p): Remove.
1637 (init_decl_processing): Don't generate __FUNCTION__ et al ids,
1638 don't call declare_function_name. Call start_fname_decls.
1639 (c_make_fname_decl): Adjust parameters. Generate the name. Don't
1640 clobber the line number. Call finish_decl.
1641 (start_function): Call start_fname_decls.
1642 (finish_function): Call finish_fname_decls.
1643 Remove c_function_name_declared_p.
1644 (push_c_function_context): Don't push c_function_name_declared_p.
1645 (pop_c_function_context): Don't pop c_function_name_declared_p.
1646 (c_begin_compound_stmt): Don't check c_function_name_declared_p.
1647 * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
1648 (program): Call finish_fname_decls for C.
1649 (primary): Add VAR_FUNC_NAME.
1650 (reswords): Add slots for __FUNCTION__ et al.
1651 (rid_to_yy): Add mappings for __FUNCTION__ et al.
1652 (yylexname): If it's a STRING_FUNC_NAME generate the function name
1653 now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
1654 * c-semantics.c (prune_unused_decls): Remove.
1655 (finish_stmt_tree): Don't call prune_unused_decls.
1656 (genrtl_decl_stmt): Don't prune unused decls here.
1658 2001-04-24 Nick Clifton <nickc@cambridge.redhat.com>
1660 * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
1661 constant pool, use the pool's SYMBOL_REF instead.
1663 * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
1666 2001-04-23 Joseph S. Myers <jsm28@cam.ac.uk>
1668 * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
1669 passing nested NOP_EXPRs to fold.
1671 Mon Apr 23 14:32:12 CEST 2001 Jan Hubicka <jh@suse.cz>
1673 * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
1675 2001-04-22 Mark Mitchell <mark@codesourcery.com>
1677 * loop.c (loop_delete_insns): Add prototype.
1679 2001-04-23 Phil Edwards <pme@sources.redhat.com>
1681 * configure.in: Remove ENABLE_STD_NAMESPACE.
1682 * config.in: Regenerated.
1683 * configure: Regenerated.
1685 2001-04-22 Stan Shebs <shebs@apple.com>
1687 * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
1689 * config/rs6000/xm-darwin.h: Remove file.
1691 2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1693 * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
1694 (write_c_file_stat): Likewise.
1696 * dbxout.c (dbxout_init): Likewise.
1698 * profile.c (output_func_start_profiler): Likewise.
1700 2001-04-22 Philipp Thomas <pthomas@suse.de>
1702 * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
1703 require it instead of the CVS version.
1704 * cpperror.c (v_message): Put a blank before the macro
1705 body to not confuse exgettext.
1707 2001-04-21 Mark Mitchell <mark@codesourcery.com>
1709 * flow.c (proagate_one_insn): Remove useless assignment.
1710 * jump.c (delete_insn): Tidy.
1711 * loop.c (try_copy_prop): When deleting an instruction with a
1712 REG_RETVAL note, delete the entire libcall sequence.
1713 (loop_delete_insns): New function.
1714 * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
1715 we're not substituting into them yet.
1717 2001-04-21 Kazu Hirata <kazu@hxi.com>
1719 * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
1721 * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
1723 * config/i960/i960.c (signed_arith_operand): Likewise.
1725 * calls.c (expand_call): Fix a comment typo.
1727 2001-04-20 Zack Weinberg <zackw@stanford.edu>
1729 * configure.in: Probe for times, clock, struct tms, and clock_t.
1730 * configure, config.in: Regenerate.
1731 * timevar.c: Replace ifdef forest in get_time with (relatively)
1732 straightforward series of checks based on autoconf's probes.
1734 Fri Apr 20 12:24:50 2001 Jeffrey A Law (law@cygnus.com)
1736 * config/pa/som.h (NM_FLAGS): Define.
1738 2001-04-20 Bernd Schmidt <bernds@redhat.com>
1740 * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
1742 * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
1743 * ia64.c (nop_cycles_until): New function.
1744 (prev_cycle, prev_first, last_issued): New static variables.
1745 (ia64_sched_reorder): Additional arg for clock.
1746 On final scheduling pass, emit extra NOPs as needed.
1747 Set prev_first and prev_cycle.
1748 (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
1749 (ia64_variable_issue): Set last_issued.
1751 2001-04-20 Alexandre Oliva <aoliva@redhat.com>
1753 * config/i386/i386.c (ix86_expand_int_movcc,
1754 ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
1756 2001-04-20 Geoff Keating <geoffk@redhat.com>
1758 * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
1759 ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
1760 ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
1761 ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
1762 ctrdi_internal6): In the short-branch case, this insn is only 4
1763 bytes long. Reported by Reza Yazdani <reza@apple.com>.
1765 2001-04-20 Jakub Jelinek <jakub@redhat.com>
1767 * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
1768 "=u" is used together with "st" resp. "st(1)" clobber.
1770 2001-04-20 Jakub Jelinek <jakub@redhat.com>
1772 * gcse.c (gcse_main): Fix comment typo.
1773 (delete_null_pointer_check): Likewise.
1774 (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
1775 * cse.c (cse_insn): Likewise.
1776 * function.c (fixup_var_refs_insns_with_hash): The sequence is
1779 2001-04-19 Zack Weinberg <zackw@stanford.edu>
1781 * toplev.c: Excise all code for the undocumented -dm option.
1782 (float_signal): Call signal just once, unconditionally.
1784 2001-04-19 Geoff Keating <geoffk@redhat.com>
1786 * fold-const.c (fold): Use first_rtl_op rather than
1787 TREE_CODE_LENGTH when looping over parameters of a tree.
1788 Correct strange grouping in test for evaluated SAVE_EXPR.
1790 Thu Apr 19 19:15:26 2001 Jeffrey A Law (law@cygnus.com)
1792 * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
1793 * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
1795 * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
1796 name at 32 total characters.
1797 (ASM_OUTPUT_SECTION_NAME): Similarly. Also, only support placing
1798 functions in named sections -- data items can still go into unique
1799 sections, but they have normal names (ie $LIT$ and $DATA$).
1801 * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
1804 2001-04-19 DJ Delorie <dj@redhat.com>
1806 * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1807 to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
1808 * config/i386/cygwin.h: Likewise.
1809 * config/i386/mingw32.h: Likewise.
1810 * config/vax/vms.h: Likewise.
1811 * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
1813 * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1814 to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
1815 * config/i386/xm-cygwin.h: Likewise.
1816 * config/i386/xm-djgpp.h: Likewise.
1817 * config/i386/xm-mingw32.h: Likewise.
1818 * config/vax/xm-vms.h: Likewise.
1820 * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
1821 instead of OBJECT_SUFFIX.
1822 * collect2.c (find_a_file): Look for files matching the extension
1823 HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
1824 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
1825 TARGET_EXECUTABLE_SUFFIX.
1826 (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
1827 (make_relative_prefix): Likewise.
1828 (convert_filename): Use TARGET_ suffixes throughout. Remove
1830 (process_command): Likewise.
1831 (do_spec_1): Likewise.
1832 * java/lang.c (init_parse): Likewise.
1834 * gcc.texi : Document four new options matching the pattern
1835 (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX. Remove documentation
1836 for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX. Remove
1837 documentation for NO_AUTO_EXE_SUFFIX.
1839 2001-04-19 Mark Mitchell <mark@codesourcery.com>
1841 * toplev.h (struct lang_hooks): Allow decode_option to indicate
1842 that language-independent processing should not be done.
1843 * toplev.c (main): Adjust accordingly.
1845 * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
1846 * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
1848 * mips.md (reload_outputdi): Require that operand0 be a
1851 2001-04-19 Jakub Jelinek <jakub@redhat.com>
1853 * invoke.texi (-Wshadow): Clarify.
1855 2001-04-18 Mark Mitchell <mark@codesourcery.com>
1857 * loop.c (load_mems): Examine all the instructions in the loop
1858 before concluding that all jumps branch to the first instruction
1861 Wed Apr 18 20:32:03 2001 Christopher Faylor <cgf@cygnus.com>
1863 * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
1865 2001-04-18 Jakub Jelinek <jakub@redhat.com>
1867 * cpp.texi (-Wwhite-space): Remove.
1868 (-Wall): -Wall does not imply -Wwhite-space.
1870 2001-04-17 Zack Weinberg <zackw@stanford.edu>
1872 * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
1873 use it instead of blindly generating a .stabs.
1874 * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
1876 * xcoffout.c: Don't bother defining default for N_CATCH.
1877 (UNKNOWN_STAB): Use internal_error.
1878 (stab_to_sclass): Remove now-unnecessary aborts.
1879 Remove #if 0'ed case N_BROWS. Add #ifdef N_OPT block.
1881 Tue Apr 17 21:41:11 2001 Jeffrey A Law (law@cygnus.com)
1883 * jump.c (mark_all_labels): Canonicalize the tail recursion
1884 label attached to CALL_PLACEHOLDER insns.
1886 2001-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1888 * output.h (dump_flow_info, free_basic_block_vars,
1889 which_alternative): Delete redundant prototypes.
1891 * rtl.h (bss_section): Likewise.
1893 2001-04-17 Loren J. Rittle <ljrittle@acm.org>
1895 * dbxout.c (N_OPT): Define if not available from <stab.h>
1897 2001-04-17 John David Anglin <dave@hiauly1.hia.nrc.ca>
1899 * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
1900 libraries and native K&R compilers.
1902 2001-04-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1904 * c-typeck.c (convert_arguments): Don't check for width changes
1907 * invoke.texi (-Wtraditional): Update documentation.
1909 2001-04-16 Zack Weinberg <zackw@stanford.edu>
1911 * toplev.c (output_lang_identify): Delete.
1912 (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
1913 Don't generate gcc2_compiled. label. Don't emit a nop if profiling.
1914 If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
1915 after calling ASM_FILE_END.
1917 * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
1918 Instead, unconditionally emit an N_OPT stab with string equal
1919 to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
1921 * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
1923 * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
1924 config/psos.h, config/ptx4.h, config/1750a/1750a.h,
1925 config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
1926 config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
1927 config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
1928 config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
1929 config/i370/i370.h, config/i386/beos-elf.h,
1930 config/i386/osf1elf.h, config/i386/osfrose.h,
1931 config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
1932 config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
1933 config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
1934 config/m68k/tower-as.h, config/mcore/mcore-elf.h,
1935 config/mips/iris6.h, config/mips/osfrose.h,
1936 config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
1937 config/sparc/sp64-elf.h:
1938 Delete definitions of any or all of: ASM_IDENTIFY_GCC,
1939 ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
1941 * config/elfos.h, config/freebsd.h, config/linux.h,
1942 config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
1943 config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
1944 config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
1945 of ASM_FILE_START which merely emit a .version directive. Delete
1946 definitions of ASM_FILE_END which merely emit an .ident directive.
1948 * config/avr/avr.h, config/vax/vax.h: Delete definition of
1949 ASM_IDENTIFY_GCC and move part of its logic into
1952 * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
1953 config/sparc/linux-aout.h: Don't emit .version directive in
1956 * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
1957 (output_file_start): Correct comment.
1959 * config/i386/osfrose.h: Don't emit trailing .ident directive.
1960 * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
1962 * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
1963 * config/rs6000/aix.h: Correct comment.
1965 * config/i386/i386afe.h: Delete.
1966 * config.gcc: Remove references to i386afe.h.
1968 * tm.texi: Delete documentation of ASM_IDENTIFY_GCC. The
1969 other macros deleted by this patch were undocumented.
1971 Mon Apr 16 08:03:48 2001 Jeffrey A Law (law@cygnus.com)
1973 * pa.md (reload_outdi): Operand 0 must be a non hard register.
1975 * pa.c (secondary_reload_class): SAR<->FP copies require a
1978 * install.texi (mips-mips-bsd): Update list of functions
1979 required to include memmove.
1980 * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
1981 used functions to include memmove.
1983 2001-04-15 Toon Moene <toon@moene.indiv.nluug.nl>
1985 * i386.md (sqrtdf2): SFmode should be DFmode.
1987 2001-04-15 Alexandre Oliva <aoliva@redhat.com>
1989 * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
1990 (find_moveable_store): Likewise.
1992 2001-04-15 Jim Wilson <wilson@redhat.com>
1994 * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
1996 Sat Apr 14 16:24:19 CEST 2001 Jan Hubicka <jh@suse.cz>
1998 * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
1999 (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
2001 2001-04-14 Alexandre Oliva <aoliva@redhat.com>
2003 * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
2006 2001-04-14 Alan Modra <amodra@one.net.au>
2008 * pa.c (force_mode): New function.
2009 (emit_move_sequence): Use it instead of generating new rtx_REGs.
2011 2001-04-13 Jim Wilson <wilson@redhat.com>
2013 * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
2014 (first_instruction): New static variable.
2015 (rtx_needs_barrier): Return 1 for alloc.
2016 (init_insn_group_barriers): Set first_instruction.
2017 (rws_sum): Delete duplicate definition.
2018 (group_barrier_needed_p): Return 0 when first_instruction true.
2019 (safe_group_barrier_needed_p): Save and restore first_instruction
2020 around group_barrier_needed_p call.
2022 Fri Apr 13 21:40:28 2001 Loren J. Rittle <ljrittle@acm.org>
2024 * expr.h (enum libfunc_index): Add LTI_memmove.
2025 (memmove_libfunc): Define macro.
2026 * optabs.c (init_optabs): Initialize memmove_libfunc.
2027 * expr.c (expand_assignment): Use memmove_libfunc instead of
2030 2001-04-13 Alan Modra <alan@linuxcare.com.au>
2032 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
2035 2001-04-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2037 * Makefile.in (reg-stack.o): Depend on reload.h.
2038 (insn-attrtab.o): Depend on flags.h.
2040 * genattrtab (main): Include flags.h in insn-attrtab.c.
2042 * reg-stack.c: Include reload.h.
2044 * sparc.h (flag_pic): Delete redundant declaration.
2046 * output.h (flag_pic): Likewise.
2048 * tree.h (pedantic): Likewise.
2050 2001-04-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2052 * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
2054 * jump.c, regmove.c, toplev.c: Include reload.h.
2056 * reload.h (reload_cse_regs): Declare.
2058 * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
2059 reload_cse_regs, init_reload, mark_home_live, reload,
2060 init_caller_save): Delete redundant prototypes.
2062 2001-04-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2064 * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
2066 * regclass.c, ssa.c: Include expr.h.
2068 * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
2069 gen_move_insn): Delete redundant declarations.
2071 2001-04-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2073 * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
2074 (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
2075 MAKEINFO and MAKEINFOFLAGS too.
2076 (stage4_build): Correctly order -B flags.
2078 2001-04-13 Alan Modra <amodra@one.net.au>
2080 * pa.c (hppa_init_pic_save): Set rtx_unchanging for
2081 PIC_OFFSET_TABLE_SAVE_RTX.
2082 (zdepi_cint_p): Describe zdepi insn.
2083 Formatting and white space fixes throughout file.
2085 * pa.c (uint32_operand): Don't use long constant >= 2^32.
2086 (emit_move_sequence): Use HOST_WIDE_INT constants. Don't worry
2087 about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
2088 (compute_movstrsi_length): Make `align' unsigned to avoid warning.
2089 (output_64bit_and): Use plain `int's for shift counts.
2090 (output_64bit_ior): Likewise.
2091 (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
2092 * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
2095 * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
2096 * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
2097 * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
2098 NEW_HP_ASSEMBLER into one. Kill warnings.
2100 * pa-gas.h: Delete file.
2101 * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
2102 Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*. Update
2103 hppa*-*-linux*. For all pa targets, remove pa/gas.h from tm_file,
2104 instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
2106 * config/pa/mill32.S: New file.
2107 * config/pa/mill64.S: New file.
2108 * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
2109 LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
2110 * config/pa/t-linux64: New file.
2111 * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
2112 (LIB1ASMFUNCS, LIB1ASMSRC): Define.
2113 (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
2115 * elfos.h (SELECT_SECTION): Undef before defining.
2116 * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
2117 (LIB_SPEC): Remove -lmilli.
2118 (DBX_REGISTER_NUMBER): Remove.
2119 (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
2120 (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
2121 NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
2122 DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
2123 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
2124 ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
2125 ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
2126 TARGET_GAS): Define.
2127 * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
2128 (function_arg): If TARGET_ELF32, pass fp args in both general and fp
2129 regs if we don't have a prototype.
2130 * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
2131 * pa.h (TARGET_ELF32): Default to 0 if undefined.
2132 (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
2133 EH_RETURN_HANDLER_RTX): Define.
2134 * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
2135 (DWARF_FRAME_REGNUM): Define.
2136 * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
2137 * pa32-linux.h: New file.
2138 * pa64-linux.h: New file.
2140 * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2141 (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
2142 (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
2143 NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
2144 DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
2145 DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
2146 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2147 FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2148 READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
2149 DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
2150 UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
2151 ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
2152 TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
2153 * pa64-hpux.h: New file.
2154 (ASM_FILE_START): Correct typo.
2155 (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
2156 * config.gcc: Modify for above.
2158 Fri Apr 13 00:09:22 EDT 2001 John Wehle (john@feith.com)
2160 * jump.c (jump_optimize_1): Don't delete dead stores here.
2161 * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
2162 prior to running jump optimize before cse2.
2164 2001-04-12 Richard Henderson <rth@redhat.com>
2166 * Makefile.in (regmove.o): Depend on except.h.
2167 * regmove.c: Include it.
2169 2001-04-12 Stan Shebs <shebs@apple.com>
2171 * objc/objc-act.c: Remove all code ifdefed with the never-used
2172 macro OBJC_INT_SELECTORS.
2173 * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
2174 * tm.texi: Remove doc for OBJC_INT_SELECTORS.
2176 Thu Apr 12 18:13:37 2001 Rodney Brown <RodneyBrown@mynd.com>
2178 * config/pa/quadlib.c: Add prototypes.
2180 2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2182 * bitmap.h (debug_bitmap): Delete redundant prototype.
2184 * rtl.h (get_frame_size): Likewise.
2186 2001-04-12 Jim Wilson <wilson@redhat.com>
2188 * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
2189 to just emit an fnorm.
2191 2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2193 * c-common.h (truthvalue_conversion, type_for_mode,
2194 type_for_size): Delete redundant declarations.
2196 * c-lex.h (is_class_name): Likewise.
2198 * c-tree.h (pedantic, convert, getdecls, gettags,
2199 global_bindings_p, init_decl_processing, insert_block,
2200 maybe_build_cleanup, poplevel, print_lang_decl,
2201 print_lang_identifier, print_lang_type, pushdecl, pushlevel,
2202 set_block, incomplete_type_error, build_function_call,
2203 lvalue_or_else, mark_addressable): Likewise.
2205 * expr.h (expand_tree_builtin): Likewise.
2207 2001-04-12 Mark Mitchell <mark@codesourcery.com>
2209 * invoke.texi: Document --param max-gcse-memory.
2211 2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2213 * configure.in (errno): Check for declaration.
2214 * configure, config.in: Regenerated.
2216 * system.h (errno): Only declare if not already done.
2218 2001-04-12 Alexandre Oliva <aoliva@redhat.com>
2220 * recog.c (general_operand, immediate_operand,
2221 nonmemory_operand): Require CONST_INTs to be sign-extended
2222 values for their modes.
2224 2001-04-12 Alexandre Oliva <aoliva@redhat.com>
2226 * expmed.c (store_bit_field): Truncate CONST_INTs.
2227 (expand_mult_highpart, expand_divmod): Likewise.
2228 * expr.c (convert_modes, store_field): Likewise.
2229 * integrate.c (expand_inline_function): Use promote_mode() to
2230 determine whether to convert_modes() an argument as signed
2232 * optabs.c (expand_binop): Get CONST_INT operands
2233 sign-extended for their appropriate modes.
2234 * stmt.c (emit_case_nodes): Convert node values to the
2236 (expand_end_case): Convert minval and range to the appropriate
2238 * unroll.c (loop_iterations): Truncate abs_diff to the mode of
2239 the iteration variable.
2240 * varasm.c (immed_double_const): Don't require words to be
2241 narrower than host wide ints to properly sign-extend
2244 2001-04-12 kaz Kojima <kkojima@rr.iij4u.or.jp>
2246 * sh.md (builtin_setjmp_receiver): New expander.
2248 2001-04-12 David Edelsohn <dje@watson.ibm.com>
2250 * config/rs6000/rs6000.c (rs6000_emit_move): Do not
2251 special-case HOST_BITS_PER_WIDE_INT != 32. Use same criteria
2252 for generating CONST_INT and CONST_DOUBLE.
2254 2001-04-12 Alexandre Oliva <aoliva@redhat.com>
2256 * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
2257 already sign-extended.
2258 (rs6000_emit_prologue): Make register iterator signed.
2259 (rs6000_emit_epilogue): Likewise.
2260 * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
2262 (movsf split, movdf split): Sign-extend CONST_INTs.
2263 (movdi splits): Likewise.
2265 2001-04-12 Kelley Cook <kelley.cook@home.com>
2267 * config-lang.in (lang_dirs): Add in zlib.
2269 2001-04-11 Alexandre Oliva <aoliva@redhat.com>
2271 * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
2272 operands that make it to RTL.
2274 2001-04-11 Stan Shebs <shebs@apple.com>
2276 Add Darwin (Mac OS X kernel) native support.
2277 * config.gcc (powerpc-*-darwin*): Add native bits.
2278 * config/darwin.c: New file, generic Darwin support functions.
2279 * config/darwin.h: New file, generic Darwin definitions.
2280 * config/darwin-protos.h: New file, generic Darwin prototypes.
2281 * rs6000/darwin.h: New file, Darwin for PowerPC.
2282 * rs6000/t-darwin: New file, Darwin makefile fragment.
2283 * rs6000/rs6000.h (OBJECT_MACHO): New macro.
2284 (TARGET_MACHO): Ditto.
2285 (rs6000_abi): Add ABI_DARWIN.
2286 (RS6000_REG_SAVE): Add ABI_DARWIN case.
2287 (RS6000_SAVE_AREA): Ditto.
2288 (FP_ARG_MAX_REG): Ditto.
2289 (RETURN_ADDRESS_OFFSET): Ditto.
2290 * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
2292 (rs6000_emit_move): Add ABI_DARWIN cases.
2293 (print_operand): Ditto.
2294 (first_reg_to_save): Ditto.
2295 (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
2296 (debug_stack_info): Ditto.
2297 (rs6000_emit_prologue): Ditto.
2298 (rs6000_emit_epilogue): Ditto.
2299 (output_profiler_hook): Ditto.
2300 (output_function_profiler): Ditto.
2301 (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
2302 (output_mi_thunk): Add TARGET_MACHO case.
2303 (add_compiler_stub): Ditto.
2304 (output_compiler_stub): Ditto.
2305 (no_previous_def): Ditto.
2306 (output_call): Ditto.
2307 (machopic_output_stub): Ditto.
2308 (rs6000_machopic_legitimize_pic_address): Ditto.
2309 (toc_section): Ditto.
2310 * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
2311 (macho_high): Ditto.
2314 (load_macho_picbase): Ditto.
2315 (call): Add TARGET_MACHO case to modify function.
2316 (call_value): Ditto.
2317 (call_nonlocal_sysv): Add ABI_DARWIN case.
2318 (call_value_nonlocal_sysv): Ditto.
2319 * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
2321 (machopic_output_stub): Ditto.
2322 * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
2324 2001-04-11 Mark Mitchell <mark@codesourcery.com>
2326 * dwarf2out.c (modified_type_die): Don't create new types here.
2327 * tree.h (get_qualified_type): New function.
2328 (build_qualified_type): Adjust comment.
2329 * tree.c (get_qualified_type): New function.
2330 (build_qualified_type): Use it.
2332 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2334 * cpp.texi (-Wtraditional): Update description.
2336 * invoke.texi (-Wtraditional): Likewise.
2338 2001-04-11 Jim Wilson <wilson@redhat.com>
2340 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
2341 requires more than 64 bits of alignment.
2343 2001-04-11 Neil Booth <neil@daikokuya.demon.co.uk>
2345 * cpplib.c (do_line): Sanity check iff enable checking.
2347 2001-04-11 Richard Henderson <rth@redhat.com>
2349 * Makefile.in (insn-recog.o): Depend on toplev.h.
2350 (insn-emit.o, doloop.o): Likewise.
2351 * genrecog.c, genemit.c: Include toplev.h in generated file.
2352 * doloop.c: Include toplev.h.
2354 2001-04-11 Mark Mitchell <mark@codesourcery.com>
2356 * Makefile.in (gcse.o): Depend on params.h.
2357 * gcse.c: Include params.h.
2358 (gcse_main): Don't do GCSE if doing so will take inordinate
2360 * params.def (PARAM_MAX_GCSE_MEMORY): New parameter.
2361 * params.h (MAX_GCSE_MEMORY): New macro.
2363 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2365 * Makefile.in (insn-output.o): Depend on $(EXPR_H).
2367 * genoutput.c (output_prologue): Include expr.h in insn-output.c.
2369 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2371 * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
2373 * real.h (ereal_atof, real_value_truncate, target_isnan,
2374 target_isinf, target_negative, assemble_real, debug_real): Delete
2375 redundant prototypes.
2377 * Makefile.in (ifcvt.o): Depend on toplev.h.
2379 * c-semantics.c: Include expr.h.
2381 * ifcvt.c: Include toplev.h.
2383 * expr.h (rtx_equal_p): Delete prototype.
2385 * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
2386 protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
2387 eliminate_constant_term, expand_complex_abs, find_single_use,
2388 make_tree, init_expr_once, init_optabs, supports_one_only):
2391 * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
2392 rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
2393 expand_assignment, store_expr, emit_line_note_after,
2394 emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
2396 * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
2398 * sparc-protos.h: Delete redundant prototypes.
2400 2001-04-11 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
2402 * reload.c (push_reload): Add condition missed in SUBREG byte
2405 Wed Apr 4 00:28:23 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2407 * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
2409 Wed Apr 11 14:06:10 CEST 2001 Jan Hubicka <jh@suse.cz>
2411 * i386.md (floatsisf_sse): Fix output template
2412 * i386.c (ix86_expand_fp_movcc)
2414 * reg-stack.c (emit_pop_insn): Handle complex modes.
2415 (move_for_stack_reg): Emit proper move mode.
2416 (subst_stack_regs_pat): Handle complex modes.
2418 2001-04-11 Jakub Jelinek <jakub@redhat.com>
2420 * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
2422 2001-04-10 Richard Henderson <rth@redhat.com>
2424 * libgcc2.h (__terminate_func_ptr): Remove typedef.
2425 (__pure_virtual, __terminate, __terminate_set_func,
2426 __default_terminate, __throw_type_match, __empty,
2427 __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
2428 __eh_rtime_match, __unwinding_cleanup, __rethrow,
2429 __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
2430 Remove prototypes of deleted functions.
2432 2001-04-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2434 * c-typeck.c (convert_arguments): -Wtraditional now activates
2435 -Wconversion warnings, except for changes in signed-ness.
2436 Detect complex<->int & int<->complex conversions as well.
2438 * invoke.texi (-Wtraditional): Document it.
2440 Tue Apr 10 17:45:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2442 * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
2443 * flow.c (set_block_for_new_insns): Remove needless cast and
2444 properly check for unset block number.
2446 2001-04-10 Andrew MacLeod <amacleod@redhat.com>
2448 * function.c (purge_single_hard_subreg_set): Only check REGNO if
2449 the subreg was a hard register. Pseudos are left as subregs.
2451 2001-04-09 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2453 * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
2454 (LIB2ADD_ST): New macro, pass it to mklibgcc.
2455 * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
2456 (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
2457 * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
2459 2001-04-09 Bo Thorsen <bo@suse.co.uk>
2461 * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
2463 2001-04-09 Andrew MacLeod <amacleod@redhat.com>
2465 * output.h (set_block_num): Missed it earlier, remove deprecated
2468 2001-04-09 Andrew MacLeod <amacleod@redhat.com>
2470 * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
2471 (load_killed_in_block_p): Change bb parameter from int to basic_block.
2472 (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
2473 (handle_rd_kill_set): Change bb parameter from int to basic_block.
2474 (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
2475 (expr_killed_p): Change bb parameter from int to basic_block, pass
2476 basic_blocks instead of ints as parameters.
2477 (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
2478 (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
2479 from int to basic_block, pass basic_blocks instead of ints as parms.
2480 (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
2481 parameter from int to basic_block, pass basic_blocks instead of ints.
2482 (process_insert_insn): Pass basic_blocks instead of ints as parameters.
2483 (insert_insn_end_bb): Change bb parameter from int to basic_block,
2484 pass basic_blocks instead of ints.
2485 (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
2486 basic_blocks instead of ints as parameters.
2487 (pre_delete): Pass basic_blocks instead of ints as parameters.
2488 (hoist_expr_reaches_here_p): Change bb parameter from int to
2489 basic_block, pass basic_blocks instead of ints.
2490 (hoist_code): Pass basic_blocks instead of ints as parameters.
2491 (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
2492 Change bb parameter from int to basic_block.
2493 (build_store_vectors): Pass basic_blocks instead of ints as parameters.
2494 (insert_insn_start_bb): Change bb parameter from int to basic_block,
2495 pass basic_blocks instead of ints.
2496 (insert_store): Pass basic_blocks instead of ints as parameters.
2497 (replace_store_insn, delete_store): Change bb parameter from int to
2498 basic_block, pass basic_blocks instead of ints.
2499 (store_motion): Pass basic_blocks instead of ints as parameters.
2501 2001-04-09 Andrew MacLeod <amacleod@redhat.com>
2503 * basic-block.h (set_new_block_for_insns): New Prototype.
2504 (set_block_num): Delete prototype.
2505 * flow.c (set_block_num): Remove obsolete function.
2506 (set_block_for_new_insns): Set BB for single or multiple insns.
2507 * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
2508 (process_insn_end_bb): Use set_block_for_new_insns or
2509 set_block_for_insn instead of set_block_num.
2510 (pre_insert_copy_insn): Use set_block_for_new_insns.
2511 (update_ld_motion_stores): Use set_block_for_new_insns.
2512 (insert_insn_start_bb): Use set_block_for_new_insns.
2513 (replace_store_insn): Use set_block_for_new_insns.
2515 2001-04-09 Andrew MacLeod <amacleod@redhat.com>
2516 Jeff Law <law@redhat.com>
2518 * alias.c (get_addr): Externalize.
2519 (canon_true_dependence): New function. Behaves like true_dependance
2520 except it already assumes a MEM has been canonicalized.
2521 * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
2522 * gcse.c (struct ls_expr): Add load/store expressions structure.
2523 (modify_mem_list, canon_modify_mem_list): New variable.
2524 (gcse_main): Initialize & finalize alias analysis. Use enhanced
2525 load motion and store motion if requested.
2526 (alloc_gcse_mem): Allocate space for modify_mem_list array.
2527 (free_gcse_mem): Free the modify_mem_list array.
2528 (oprs_unchanged_p): Use load_killed_in_block_p.
2529 (gcse_mems_conflict_p, gcse_mem_operand): New variables.
2530 (mems_conflict_for_gcse_p): New function. Don't kill loads
2531 with stores to themselves if its in the load/store expression list.
2532 (load_killed_in_block_p): New function.
2533 (canon_list_insert): New Function.
2534 (record_last_mem_set_info): Keep a list of all instructions which
2535 can modify memory for each basic block.
2536 (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
2537 (oprs_not_set_p): Use load_killed_in_block_p.
2538 (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
2539 (expr_killed_p): Use load_killed_in_block_p.
2540 (compute_transp): Do not pessimize memory references.
2541 (pre_edge_insert): Update stores for a load motion expression.
2542 (one_pre_gcse_pass): Check loads/stores for extra load motion.
2543 (ldst_entry): Find or create a ldst_expr structure.
2544 (free_ldst_entry): Free memory for an individual item.
2545 (free_ldst_mems): Free entire load/store expression list.
2546 (print_ldst_list): Print debug info.
2547 (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
2548 (enumerate_ldsts): Assign integer values to each entry in list.
2549 (first_ls_expr): First expression in the list.
2550 (next_ls_expr): Next expression in the list.
2551 (simple_mem): Check if expression qualifies for ld/st expression list.
2552 (invalidate_any_buried_refs): Remove from expression list if its
2553 used in some other way we dont understand.
2554 (compute_ld_motion_mems): Find all potential enhanced load motion
2556 (trim_ld_motion_mems): Remove any expressions which are invalid.
2557 (update_ld_motion_stores): Copy store values to registers for loads
2558 which have been moved.
2559 (regvec, st_antloc, num_store): New global statics.
2560 (reg_set_info): Marks registers as set.
2561 (store_ops_ok): Verfies registers expressions are valid in a block.
2562 (find_moveable_store): Look for moveable stores in a pattern.
2563 (compute_store_table): Find stores in a function worth moving, maybe.
2564 (load_kills_store): Check dependance of a load and store.
2565 (find_loads): Find any loads in a pattern.
2566 (store_killed_in_insn): Check if a store is killed in an insn.
2567 (store_killed_after): Check is store killed after an insn in a block.
2568 (store_killed_before): Check is store killed before an insn in a block.
2569 (build_store_vectors): Generate the antic and avail vectors.
2570 (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
2571 (insert_store): Add a store to an edge.
2572 (replace_store_insn): Replace a store with a SET insn.
2573 (delete_store): Delete a store insn.
2574 (free_store_memory): Free memory.
2575 (store_motion): Perform store motion.
2576 * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
2577 * rtl.h (get_addr, canon_true_dependence): Add prototypes.
2578 * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
2579 (f_options): Add gcse-lm and gcse-sm.
2581 Mon Apr 9 16:18:03 CEST 2001 Jan Hubicka <jh@suse.cz>
2583 * i386.c (expand_fp_movcc): Fix condition reversal code.
2585 * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
2586 * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
2587 (CLASS_MAX_NREGS): Use it.
2589 * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
2590 handle properly complex values.
2591 (CLASS_MAX_NREGS): Likewise; update comment.
2593 2001-04-05 Bernd Schmidt <bernds@redhat.com>
2595 * ia64.c (ia64_flag_schedule_insns2): New variable.
2596 (ia64_override_options): Initialize it. Clear
2597 flag_schedule_insns_after_reload.
2598 (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
2600 Mon Apr 9 15:09:13 CEST 2001 Jan Hubicka <jh@suse.cz>
2602 * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
2603 Do not require source to match destination anymore;
2604 Add abort to the nontrivial cases that should be handled by split.
2605 (fix_trunc?fdi): Add SSE case for x86_64.
2606 (floatdi?f): Likewise.
2607 (floatdi?f_sse): New.
2608 (fix_trunc?fdi_sse): New.
2610 2001-04-09 Richard Sandiford <rsandifo@redhat.com>
2612 * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
2613 (DEBUG_ARANGES_END_LABEL): Ditto.
2614 (dwarfout_init): Generate length and version fields at the start
2615 of the .debug_aranges info. Insert DEBUG_ARANGES_BEGIN_LABEL
2616 after the length field.
2617 (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
2618 the .debug_aranges info.
2620 Sun Apr 8 00:43:27 CEST 2001 Jan Hubicka <jh@suse.cz>
2622 * i386.c (call, call_value): Make sure that resulting call_insn
2623 does have proper second operand.
2625 Sun Apr 8 22:50:49 2001 Christopher Faylor <cgf@cygnus.com>
2627 * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
2628 function. Remove include of sys/cygwin.h.
2630 Sun Apr 8 22:20:27 2001 Christopher Faylor <cgf@cygnus.com>
2632 * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
2633 (CPP_SPEC): Always search */include/w32api for header files.
2634 (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
2635 (LINK_SPEC): Add "cyg" to the library search prefixes.
2637 2001-04-08 Philip Blundell <philb@gnu.org>
2639 * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
2641 2001-04-08 Neil Booth <neil@daikokuya.demon.co.uk>
2643 * cpperror.c (print_location): Don't special case <stdin>.
2644 (_cpp_begin_message): Handle WARNING_SYSHDR the same as
2645 WARNING, but we don't check if we're in system headers.
2646 * cpplib.h (enum error_type): WARNING_SYSHDR: New.
2647 * cpplib.c (do_warning): Warn in system headers.
2649 2001-04-07 Mumit Khan <khan@NanoTech.Wisc.EDU>
2651 * mbchar.c: Include config.h first.
2653 2001-04-07 Zack Weinberg <zackw@stanford.edu>
2655 * config.gcc: Set default for xmake_file at top, not bottom.
2656 Change places that set xmake_file to "none" to set to the
2657 empty string instead, or remove them entirely if there is no
2658 default xmake_file for this cpu_type. Remove references to
2661 * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
2662 config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
2663 config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
2664 config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
2665 config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
2666 config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
2667 config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
2668 config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
2669 config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
2670 config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
2673 * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
2674 config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
2675 config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
2676 config/mips/x-sysv, config/rs6000/x-aix31:
2677 Just set CLIB to -lld or -lmld, as appropriate.
2679 * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
2680 config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
2681 config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
2682 config/mips/x-iris, config/pa/x-pa:
2683 Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
2684 OTHER_FIXINCLUDES_DIRS.
2686 * config/i386/x-djgpp: Don't set LN or LN_S.
2687 * config/m88k/x-dolph: Don't define __m88k__.
2688 * config/m88k/x-tekXD88: Don't set AR_FLAGS.
2689 * config/pa/x-pa-mpeix: Just set up quadlib.asm.
2690 * config/i860/fx2800.h: No need to #undef SVR4.
2692 38 x-host fragments remain, 2 x-cpu.
2694 2001-04-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2696 * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
2698 2001-04-06 Neil Booth <neil@daikokuya.demon.co.uk>
2700 * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
2702 2001-04-06 Neil Booth <neil@daikokuya.demon.co.uk>
2704 * configure.in: Add check for lstat.
2705 * configure, config.in: Regenerate.
2706 * cppinit.c (append_include_chain): Make empty path ".".
2707 * cpplib.c (do_line): Don't simplify #line paths.
2708 * cppfiles.c (remove_component_p): New function.
2709 (find_or_create_entry): Acknowledge stat () errors during
2710 path simplification.
2711 (handle_missing_header): Don't simplify paths.
2712 (_cpp_simplify_pathname): Don't simplify VMS paths. Return
2713 the empty path untouched. Don't leave a trailing '/'.
2715 2001-04-06 Benjamin Kosnik <bkoz@redhat.com>
2717 * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2718 * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2720 2001-04-06 Neil Booth <neil@daikokuya.demon.co.uk>
2722 * cppfiles.c (open_file): Fail directories silently, but
2723 with an errno of NOENT set.
2724 (read_include_file): Move the common exit code to the sole
2725 caller. Return an int indicating success or failure. Let
2726 open_file handle directories.
2727 (stack_include_file): If read_include_file fails,
2728 push a "null" buffer.
2730 2001-04-05 DJ Delorie <dj@redhat.com>
2732 * function.h (virtuals_instantiated): Declare.
2733 * function.c: (virtuals_instantiated): Make global.
2734 * calls.c (emit_library_call_value_1): Use
2735 virtual_outgoing_args_rtx only if it hasn't been instantiated.
2736 Otherwise, use the stack pointer directly.
2738 Thu Apr 5 19:13:33 CEST 2001 Jan Hubicka <jh@suse.cz>
2740 * i386.c (x86_initialize_trampoline): New global function.
2741 * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
2742 (INITIALIZE_TRAMPOLINE): Move offline.
2743 * i386-protos.h (x86_initialize_trampoline): Declare.
2745 Thu Apr 5 19:02:15 CEST 2001 Jan Hubicka <jh@suse.cz>
2747 * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
2748 (lea_0): Rename to lea_1.
2749 (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
2750 (lea_general_?): Allow SImodes on TARGET_64BIT
2751 (lea_general_?_zext): New patterns.
2752 (call_1, call_1_rex64): Fix.
2754 Thu Apr 5 19:00:15 CEST 2001 Jan Hubicka <jh@suse.cz>
2756 * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
2758 Thu Apr 5 18:25:56 CEST 2001 Jan Hubicka <jh@suse.cz>
2760 * i386.c (function_arg): Return constm1_rtx for last argument.
2761 (ix86_expand_prologue): Update gen_call calls.
2762 * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
2763 * i386.md (call_pop): Likewise.
2764 (call): Second operand is VOIDmode.
2765 (call_0): Likewise; Support 64bits.
2766 (call_exp): New expander.
2767 (call_1): Get to the sync.
2768 (call_1_exp): New pattern.
2769 (call_value): Support 64bit.
2770 (call_value_exp): New pattern.
2771 (untyped_call): Update gen_call call.
2772 (call_value_pop): Disable for 64bit.
2773 (call_value_0_rex64): New pattern.
2774 (call_value_1_rex64): Likewise.
2776 2001-04-05 Bo Thorsen <bo@suse.de>
2778 * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
2780 Thu Apr 5 13:44:17 2001 J"orn Rennecke <amylaar@redhat.com>
2782 * i386.md (*andsi_1+3): If used after reload, make sure the operand
2783 satisfies ANY_QI_REG_P.
2785 2001-04-05 Bernd Schmidt <bernds@redhat.com>
2787 * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
2790 * sched-deps.c (sched_analyze_insn): Revert more of the March 27
2793 2001-04-04 Zack Weinberg <zackw@stanford.edu>
2795 * config.gcc: Remove default for xm_file. Clean up local
2796 machine type handling. Remove settings of xm_file to
2797 something that doesn't exist. In the big switch, set xm_file,
2798 don't append to it (the value before the big switch is always
2799 null). Don't force build_xm_file or host_xm_file to have a value.
2800 * configure.in: Remove default for xm_file. Do not special
2801 case $cpu/xm-$cpu.h not existing.
2802 * configure: Regenerate.
2804 2001-04-04 Diego Novillo <dnovillo@redhat.com>
2806 * simplify-rtx.c (simplify_binary_operation): Check for overflow
2807 when folding integer division and modulo operations.
2809 2001-04-04 Andrew MacLeod <amacleod@redhat.com>
2811 * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
2812 instead of DWARF2_ADDR_SIZE for EH addresses.
2813 (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
2816 2001-04-04 Richard Henderson <rth@redhat.com>
2818 * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
2819 * config/ia64/t-glibc (LIB2ADDEH): Disable.
2820 * config/ia64/t-ia64 (LIB2ADDEH): Disable.
2822 2001-04-04 Richard Henderson <rth@redhat.com>
2824 * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
2825 * configure: Rebuilt.
2827 2001-04-04 Jakub Jelinek <jakub@redhat.com>
2829 * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
2830 push insns to delete to it instead of deleting them.
2831 (delete_null_pointer_checks): Delete insns from delete_list after
2832 all delete_null_pointer_checks_1 passes are done.
2834 2001-04-04 Richard Henderson <rth@redhat.com>
2836 * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
2837 * configure: Rebuilt.
2839 2001-04-04 Zack Weinberg <zackw@stanford.edu>
2841 * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
2842 * config/romp/xm-romp.h: Delete.
2844 2001-04-04 Bernd Schmidt <bernds@redhat.com>
2846 * sched-deps.c (sched_analyze_insn): Partially revert March 27
2849 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2851 * emit-rtl.c (mark_label_nuses) Increment the label uses for
2852 all labels present in rtx.
2853 (try_split) Call new function for all split insns.
2855 2001-04-04 Jakub Jelinek <jakub@redhat.com>
2857 * recog.c (validate_replace_rtx_1): Instead of aborting just make
2858 sure the change won't be validated.
2860 Wed Apr 4 00:45:38 EDT 2001 John Wehle (john@feith.com)
2862 * rtl.h (set_noop_p): Declare.
2863 * flow.c (set_noop_p): Move from here ...
2864 * rtlanal.c (set_noop_p): ... to here and enhance.
2865 * cse.c (delete_trivially_dead_insns): Use it.
2866 * gcse.c (hash_scan_set): Likewise.
2867 * jump.c (delete_noop_moves): Likewise.
2868 * recog.c (split_all_insns): Likewise.
2870 2001-04-04 Alan Modra <alan@linuxcare.com.au>
2872 * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
2873 stack pointer via a LO_SUM. Ditto for setting a temp register
2874 used to save to the stack. Set cfa_temp when setting fp, and
2875 allow matches to cfa_temp in addition to cfa_store when saving
2876 regs. Handle POST_INC and LO_SUM register stores. Document the
2877 changes and errors in rule 12 doco.
2879 * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
2880 (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
2881 (load_reg): Move closer to epilogue code.
2882 (DO_FRAME_NOTES): Define to control the following..
2883 (FRP): Define to set RTX_FRAME_RELATED_P on insns.
2884 (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
2886 (hppa_expand_epilogue): Likewise.
2888 2001-04-03 Richard Henderson <rth@redhat.com>
2890 * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
2891 * configure: Rebuild.
2893 2001-04-03 Richard Henderson <rth@redhat.com>
2895 * rtl.h (LCT_THROW): New.
2896 * calls.c (emit_library_call_value_1): Handle it.
2897 * except.c (connect_post_landing_pads): Use it.
2899 2001-04-03 Zack Weinberg <zackw@stanford.edu>
2901 * gansidecl.h: Delete file.
2902 * configure.in: Change all refs to gansidecl.h to use
2903 ansidecl.h. Adjust *_file_list so they know where ansidecl.h
2905 * configure: Regenerate.
2907 * Makefile.in (intl.o): Don't depend on gansidecl.h.
2908 * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
2909 * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
2910 Don't include gansidecl.h.
2911 * intl.c, main.c, version.c, fixinc/fixlib.h,
2912 fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
2915 Tue Apr 3 19:41:21 CEST 2001 Jan Hubicka <jh@suse.cz>
2917 * i386.c (ix86_force_to_memory, ix86_free_from_memory):
2920 2001-04-03 Zack Weinberg <zackw@stanford.edu>
2922 * config/i386/xm-beos.h, config/i386/xm-isc.h,
2923 config/i386/xm-next.h, config/i386/xm-sco.h,
2924 config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
2925 config/m88k/xm-m88k.h: Delete.
2927 * config/i386/xm-djgpp.h: Don't define __MSDOS__.
2928 * config/romp/xm-romp.h: Don't define bcopy.
2929 * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
2930 HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
2932 * config.gcc: Remove references to deleted files.
2934 14 xm-host.h remain, 1 xm-cpu.h.
2936 2001-04-03 Jakub Jelinek <jakub@redhat.com>
2937 David S. Miller <davem@pierdol.cobaltmicro.com>
2938 Andrew MacLeod <amacleod@redhat.com>
2940 Use byte offsets in SUBREGs instead of words.
2942 * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
2943 * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
2944 to pass new argument.
2945 (add_stored_regs): Use subreg_regno_offset function.
2946 * calls.c (expand_call): For non-paradoxical SUBREG take endianess
2948 (precompute_arguments): Use gen_lowpart_SUBREG.
2949 * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
2950 (combine_simplify_rtx): Rework to use SUBREG_BYTE.
2951 (simplify_set): Rework to use SUBREG_BYTE.
2952 (expand_field_assignment): Use SUBREG_BYTE.
2953 (make_extraction): Use SUBREG_BYTE.
2954 (if_then_else_cond): Use SUBREG_BYTE.
2955 (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
2956 (gen_lowpart_for_combine): Compute full byte offset.
2957 * cse.c (mention_regs): Use SUBREG_BYTE.
2958 (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
2959 (canon_hash): Use SUBREG_BYTE.
2960 (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
2961 (gen_lowpart_if_possible): Formatting.
2962 * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
2964 * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2965 (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2966 (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2967 * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2968 (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2969 (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2970 * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
2971 certain invariants about SUBREGs the compiler creates.
2972 (gen_lowpart_SUBREG): New function.
2973 (subreg_hard_regno): New function to get the final register number.
2974 (gen_lowpart_common): Use SUBREG_BYTE.
2975 (gen_imagpart): Spacing nits.
2976 (subreg_realpart_p): Use SUBREG_BYTE.
2977 (gen_highpart): Use SUBREG_BYTE.
2978 (subreg_lowpart_p): Always compute endian corrected goal offset,
2979 even at the byte level, then compare against that.
2980 (constant_subword): New function, pulled out all constant cases
2981 from operand_subword and changed second argument name to offset.
2982 (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
2983 and call constant_subword to do the work. Return const0_rtx if
2984 looking for a word outside of OP.
2985 (operand_subword_force): Change second arg name to offset.
2986 * expmed.c (store_bit_field): Use SUBREG_BYTE.
2987 (store_split_bit_field): Use SUBREG_BYTE.
2988 (extract_bit_field): Use SUBREG_BYTE.
2989 (extract_split_bit_field): Use SUBREG_BYTE.
2990 (expand_shift): Use SUBREG_BYTE.
2991 * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
2992 * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
2993 * flow.c (set_noop_p): Use SUBREG_BYTE.
2994 (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
2995 * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
2996 (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
2998 (optimize_bit_field): Use SUBREG_BYTE.
2999 (purge_addressof_1): Use SUBREG_BYTE.
3000 (purge_single_hard_subreg_set): Use subreg_regno_offset function.
3001 (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
3002 actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
3003 * gengenrtl.c (special_rtx): Add SUBREG.
3004 * global.c (mark_reg_store): Use SUBREG_BYTE.
3005 (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
3006 * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
3007 * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
3008 final byte offset is congruent to subreg's mode size.
3009 (subst_constants): Use SUBREG_BYTE.
3010 (mark_stores): Use subreg_regno_offset function.
3011 * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
3012 function and SUBREG_BYTE.
3013 * local-alloc.c (combine_regs): Use subreg_regno_offset function.
3014 (reg_is_born): Use subreg_hard_regno.
3015 * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
3016 endian correction code. Don't combine subregs unless resulting
3017 offset aligns with type. Fix subreg constant extraction for DImode.
3018 Simplify SUBREG of VOIDmode CONST_DOUBLE.
3019 (general_operand): Remove dead mode_altering_drug code.
3020 (indirect_operand): Use SUBREG_BYTE.
3021 (constrain_operands): Use subreg_regno_offset function.
3022 * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
3023 * regmove.c (regmove_optimize): Use SUBREG_BYTE.
3024 (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
3025 * regs.h (REG_SIZE): Allow target to override.
3026 (REGMODE_NATURAL_SIZE): New macro which target can override.
3027 * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
3028 on the entire subreg rtx.
3029 (push_reload): Use SUBREG_BYTE in comments and code.
3030 (find_dummy_reload): Use subreg_regno_offset. Only adjust offsets
3031 for hard registers inside subregs.
3032 (operands_match_p): Use subreg_regno_offset.
3033 (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
3034 containing hard regs.
3035 (find_reload_toplev): Use SUBREG_BYTE. Remove byte endian
3036 corrections when fixing up MEM subregs.
3037 (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
3038 subreg_regno_offset where appropriate.
3039 (find_reloads_subreg_address): Use SUBREG_BYTE. Remove
3040 byte endian corrections when fixing up MEM subregs.
3041 (subst_reloads): When combining two subregs, make sure final
3042 offset is congruent to subreg's mode size.
3043 (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
3044 (refers_to_regno_for_reload_p): Use subreg_regno.
3045 (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
3046 * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
3047 correction code for memory subreg fixups.
3048 (forget_old_reload_1): Use subreg_regno_offset.
3049 (choose_reload_regs): Use subreg_regno.
3050 (emit_input_reload_insns): Use SUBREG_BYTE.
3051 (reload_combine_note_store): Use subreg_regno_offset.
3052 (move2add_note_store): Use subreg_regno_offset.
3053 * resource.c (update_live_status, mark_referenced_resources): Use
3054 subreg_regno function.
3055 (mark_set_resources): Use subreg_regno function.
3056 * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
3057 (subreg_regno_offset, subreg_regno): Define prototypes.
3058 (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
3059 (gen_lowpart_SUBREG): Add prototype.
3060 * rtl.texi (subreg): Update to reflect new byte offset representation.
3061 Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
3062 * rtlanal.c (refers_to_regno_p): Use subreg_regno.
3063 (reg_overlap_mentioned_p): Use subreg_regno.
3064 (replace_regs); Make sure final offset of combined subreg is
3065 congruent to size of subreg's mode.
3066 (subreg_regno_offset): New function.
3067 (subreg_regno): New function.
3068 * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
3069 * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
3070 * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
3071 * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
3072 (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
3073 * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
3074 (a29k_get_reloaded_address): Use SUBREG_BYTE.
3075 (print_operand): Use SUBREG_BYTE.
3076 * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
3077 * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
3078 (arm_reload_out_hi): Use SUBREG_BYTE.
3079 * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
3080 instead of SUBREG_WORD.
3081 (d30v_print_operand_memory_reference): Use subreg_regno_offset.
3082 * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
3083 SUBREG creation to use byte offset.
3084 * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
3085 inverted load insns): Fix explicit rtl subregs to use byte
3087 * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
3088 udivsi3, umodsi3): Generate SUBREGs with byte offsets.
3089 * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
3090 * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
3091 to use byte offsets.
3092 (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
3093 * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
3094 offsets, also make sure it is congruent to SUBREG's mode size.
3095 (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
3096 unnamed ldob insn): Generate SUBREGs with byte offset.
3097 (zero_extendqihi2): SUBREG's are byte offsets.
3098 * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
3099 (m68hc11_gen_highpart): Use SUBREG_BYTE.
3100 * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
3101 zero-extendqisi2): Generate SUBREGs with byte offset.
3102 (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
3103 subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
3104 subregs in rtl to use byte offsets.
3105 * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
3106 * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
3107 (mips_move_2words): Use subreg_regno_offset.
3108 (mips_secondary_reload_class): Use subreg_regno_offset.
3109 * config/mips/mips.md (DImode plus, minus, move, and logical op
3110 splits): Fixup explicit subregs in rtl to use byte offsets.
3111 * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
3112 * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
3113 * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
3114 rtl to use byte offsets.
3115 * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
3116 * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
3117 subregs to use byte offsets.
3118 * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
3119 Fixup explicit subregs in rtl to use byte offsets.
3120 * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
3121 and remove byte endian correction code.
3122 * config/sh/sh.c (output_movedouble): Use subreg_regno.
3123 (gen_ashift_hi): Use SUBREG_BYTE.
3124 (regs_used): Use subreg_regno_offset.
3125 (machine_dependent_reorg): Use subreg_regno_offset.
3126 * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
3127 * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
3128 (movdf_i4): Subregs are byte offsets now.
3129 * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
3130 * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
3131 (REGMODE_NATURAL_SIZE): Override.
3132 (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
3133 * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
3135 (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
3136 extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
3137 extendqidi2): Generate SUBREGs with byte offsets, also make sure
3138 it is congruent to SUBREG's mode size.
3139 (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
3141 (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
3142 cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
3143 lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
3144 SUBREG_BYTE offset for non-paradoxical subregs in patterns.
3145 * config/v850/v850.c (print_operand, output_move_double): Use
3146 subreg_regno function.
3148 2001-04-03 Alexandre Oliva <aoliva@redhat.com>
3150 * configure.in (target_subdir): Use target_alias, not target.
3151 * configure: Rebuilt.
3153 * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
3155 * config/sh/crti.asm: Fix typos in comments.
3157 2001-04-03 Alan Modra <alan@linuxcare.com.au>
3159 * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
3160 TARGET_FAST_INDIRECT_CALLS.
3161 * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
3163 (return_addr_rtx): Short circuit export stub matching when
3164 TARGET_NO_SPACE_REGS.
3165 (output_millicode_call): For out of range calls, make -fPIC
3166 take precedence, then TARGET_PORTABLE_RUNTIME, then ble. Don't
3167 return before delay slot checks when TARGET_PORTABLE_RUNTIME.
3168 * pa.md: Modify length attr calculation of all millicode insns to
3171 2001-04-02 Geoffrey Keating <geoffk@redhat.com>
3173 * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
3174 Require at least 2.11 in the version test. Specifically check
3175 for and reject GAS version 2.10.90.
3176 * configure: regenerate.
3178 2001-04-03 Alan Modra <alan@linuxcare.com.au>
3180 * pa.c (override_options): Remove PIC profiling warning.
3181 (hp_profile_labelno): Delete.
3182 (hp_profile_label_rtx): Delete.
3183 (hp_profile_label_name): Delete.
3184 (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
3185 (output_function_prologue): Remove profiling code and all tests on
3186 profile_flag. Move store of PIC_OFFSET_TABLE_REGNUM now that
3187 merge_sp_adjust_with_store can work for PIC and profiling.
3188 (hppa_expand_epilogue): Remove profile_flag test.
3189 (hppa_can_use_return_insn_p): Likewise.
3190 (hppa_init_pic_save): Emit before tail_recursion_reentry, and
3191 cater for PROFILE_HOOK.
3192 (hppa_profile_hook): New function.
3193 * pa.h (FUNCTION_PROFILER): Now does nothing.
3194 (PROFILE_HOOK): Define.
3195 (hppa_profile_hook): Declare.
3196 (PROFILE_BEFORE_PROLOGUE): Delete.
3197 (ASM_OUTPUT_REG_PUSH): Delete.
3198 (ASM_OUTPUT_REG_POP): Delete.
3199 * pa.md (call_profiler): Turn it into a call insn, and don't `use'
3200 r24. Accept function name operand, and use this and a locally
3201 generated label to calculate pc-rel offset to func start.
3203 2001-04-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3205 * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
3206 ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
3209 2001-04-03 Alan Modra <alan@linuxcare.com.au>
3211 * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
3212 LO_SUM cases to where they belong.
3214 2001-04-02 Richard Henderson <rth@redhat.com>
3216 * except.h (lang_eh_type_covers): Mark extern.
3217 (lang_eh_runtime_type): Likewise.
3219 2001-04-02 Zack Weinberg <zackw@stanford.edu>
3221 * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
3222 gengenrtl.c: Wrap generated header in multiple-include guard.
3223 Improve error checking.
3225 2001-04-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3227 * configure.in: Don't check for putenv.
3228 * configure: Regenerate.
3229 * gcc.c (putenv): Don't define.
3230 * vax/xm-vms.h: Handle putenv.
3232 2001-04-02 Jakub Jelinek <jakub@redhat.com>
3234 * ifcvt.c (noce_emit_move_insn): New.
3235 (noce_try_store_flag, noce_try_store_flag_constants,
3236 noce_try_store_flag_inc, noce_try_store_flag_mask,
3237 noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
3238 noce_try_abs): Use it.
3239 (noce_process_if_block): Likewise.
3240 For STRICT_LOW_PART, take mode from its SUBREG.
3242 2001-04-02 Jakub Jelinek <jakub@redhat.com>
3244 * fold-const.c (fold): Before optimizing unsigned comparison with
3245 0x7fffffffU, make sure arg0 is integral type.
3247 2001-04-02 Joseph S. Myers <jsm28@cam.ac.uk>
3249 * c-tree.texi: Document representation of wide strings.
3251 2001-04-01 Richard Henderson <rth@redhat.com>
3253 * except.h (expand_builtin_dwarf_fp_regnum): Declare.
3255 Sun Apr 1 11:49:05 CEST 2001 Jan Hubicka <jH@suse.cz>
3257 * i386.md: remove obsoleted comments.
3258 (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
3259 (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
3260 fix output template.
3262 2001-03-31 Marek Michalkiewicz <marekm@linux.org.pl>
3264 * config/avr/libgcc.S (__mulhi3): Optimize previous change.
3266 2001-03-30 Bernd Schmidt <bernds@redhat.com>
3268 * loop.c (load_mems): When generating a load from a pseudo, update
3271 Fri Mar 30 17:36:43 CEST 2001 Jan Hubicka <jh@suse.cz>
3273 * i386.c (ix86_split_long_move): Use change address to compensate
3274 stack pointer change in push instruction.
3276 Fri Mar 30 00:31:00 CEST 2001 Jan Hubicka <jh@suse.cz>
3278 * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
3279 instead of rtx_equal_p; fix the output template.
3281 Fri Mar 30 00:21:41 CEST 2001 Jan Hubicka <jh@suse.cz>
3283 * i386.c (ix86_expand_setcc): Support 64bit.
3284 (ix86_expand_int_movcc): Likewise.
3285 * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
3288 * i386.md (allocate_stack_worker): Turn to expander.
3289 (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
3291 * i386.c (print_reg): Do not print x86_64 style regs on IA-32
3293 2001-03-29 Richard Henderson <rth@redhat.com>
3295 * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
3297 2001-03-28 Matthew Hiller <hiller@redhat.com>
3299 * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
3302 * MAINTAINERS: Added self.
3304 2001-03-28 Richard Henderson <rth@redhat.com>
3306 * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
3307 Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
3309 2001-03-28 Jim Wilson <wilson@redhat.com>
3311 * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
3314 2001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3316 * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
3318 * tradcif.y (yyerror): Likewise. Add format specifier in call to
3321 * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
3323 2001-03-28 DJ Delorie <dj@redhat.com>
3325 * Makefile.in (stage1_build): Revert CFLAGS patch.
3327 2001-03-28 Marek Michalkiewicz <marekm@linux.org.pl>
3329 * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
3330 when multiplier or multiplicand is zero.
3332 2001-03-28 Bernd Schmidt <bernds@redhat.com>
3334 * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
3336 * config/ia64/ia64.c (update_set_flags): New function, broken out of
3338 (set_src_needs_barrier): Likewise.
3339 (rtx_needs_barrier): For SET case, use these two functions. Rework
3340 PARALLEL case to handle all inputs before all outputs.
3341 (emit_insn_group_barriers): Call init_insn_group_barriers only if we
3342 saw a label and no stop bit since then.
3343 (maybe_rotate, process_epilogue): Add prototypes.
3345 2001-03-28 Richard Henderson <rth@redhat.com>
3347 * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
3348 not TARGET_TOC for special toc restore handling.
3349 * config/rs6000/rs6000.md (eh_return): Likewise.
3351 2001-03-28 Richard Henderson <rth@redhat.com>
3353 * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
3354 current_function_calls_eh_return.
3355 (output_function_epilogue): Handle eh_return.
3356 * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
3357 (EH_RETURN_DATA_REGNO): New.
3358 (EH_RETURN_STACKADJ_RTX): New.
3359 (EH_RETURN_HANDLER_RTX): New.
3360 * config/sparc/sparc.md (call/short branch peepholes): Check
3361 can_throw_internal instead of in_same_eh_region.
3363 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
3364 for eh_return data registers.
3365 (rs6000_emit_prologue): Save eh_return data registers.
3366 (rs6000_emit_epilogue): Force inline restores if eh_return.
3367 Restore eh_return data registers. Mind EH_RETURN_STACKADJ_RTX.
3368 * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
3369 (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
3370 (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
3371 the target uses one.
3372 * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
3373 (return_eh_si, return_eh_di): Remove.
3374 (eh_return): New, from corpse of eh_epilogue.
3375 (eh_set_lr_si, eh_set_lr_di): New.
3377 * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
3378 (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
3379 True for pic register if current_function_calls_eh_return.
3380 (ix86_expand_epilogue): Change "emit_return" argument into "style".
3381 Handle eh_return requirements.
3382 * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
3383 (EH_RETURN_STACKADJ_RTX): New.
3384 * config/i386/i386.md (exception_receiver): Remove.
3385 (eh_return, eh_return_1): New.
3386 * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3388 * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
3389 (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
3390 (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
3391 * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
3392 (EH_RETURN_DATA_REGNO): New.
3393 (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
3394 * config/alpha/alpha.md (eh_epilogue): Remove.
3395 (exception_receiver): Use $26 for ldgp input.
3396 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3398 2001-03-28 Richard Henderson <rth@redhat.com>
3400 * except.c: Rewrite entirely for IA-64 ABI exception handling.
3401 * except.h: Likewise.
3403 * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
3404 (LIB2ADDEHDEP): New.
3405 (LIB2FUNCS_EH): Remove.
3406 (LIB2ADD): Remove LIB2ADDEH.
3407 (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
3408 (LIBGCC_DEPS): Use LIB2ADDEHDEP.
3409 (crt{begin,end}[S].o): Likewise.
3410 (except.o): Update includes.
3411 * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
3412 (libgcc2_c_dep): Use LIB2ADDEHDEP.
3414 * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
3415 * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
3416 * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
3417 * builtins.c (expand_builtin): Implement it.
3418 [BUILT_IN_EH_RETURN]: Update for nr arguments change.
3419 * c-common.c (c_common_nodes_and_builtins): Declare it.
3420 * c-decl.c (init_decl_processing): Update __builtin_eh_return.
3421 * calls.c (libfunc_nothrow): Remove.
3422 (emit_library_call_value_1): Don't call it.
3423 * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
3424 * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
3425 (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
3426 * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
3427 (current_funcdef_number): Globalize.
3428 (output_call_frame_info): Emit frame data if an lsda is needed.
3429 Generate augmentation for personality routine. Don't play with
3431 (dwarf2out_begin_prologue): Record funcdef_number.
3432 * dwarf2out.h (current_funcdef_number): Declare.
3433 * expr.c (expand_expr): Update for except.h name changes.
3434 Remove POPDCC_EXPR, POPDHC_EXPR. Add EXC_PTR_EXPR.
3435 * expr.h (LTI_throw, LTI_rethrow): Remove.
3436 (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
3437 (LTI_eh_rtime_match): Remove.
3438 (LTI_unwind_resume, LTI_eh_personality): Add.
3439 (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
3440 * final.c (final): Don't call check_exception_handler_labels,
3441 init_insn_eh_region, or free_insn_eh_region.