1 2002-04-12 Eric Norum <eric.norum@usask.ca>
3 * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
4 config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
5 config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
6 config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
7 config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
8 config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
9 config/v850/rtems.h (*-rtems*): Cleanup pass to move common
10 definitions to config/rtems.h and make the targets more similar.
12 Fri Apr 12 08:06:54 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14 * expr.c (expand_assigment): Remove duplicate conversions #ifdef
15 POINTERS_EXTEND_UNSIGNED.
16 (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
17 (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
19 * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
22 Fri Apr 12 12:11:26 2002 J"orn Rennecke <joern.rennecke@superh.com>
24 * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
25 depends on TARGET_SHMEDIA, not TARGET_SH5.
27 2002-04-12 Hans-Peter Nilsson <hp@bitrange.com>
29 * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
30 For paradoxical (subreg VAR), replace VAR, don't try the subreg.
32 Fri Apr 12 10:51:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
34 * sh.c (broken_move): Constant 0. / 1. load is OK if there is
37 2002-04-12 Andreas Schwab <schwab@suse.de>
39 * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
41 2002-04-12 Richard Henderson <rth@redhat.com>
44 * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
46 * flow.c (mark_used_reg): Manage reg_cond_dead properly for
47 modes spanning multiple hard regs.
49 * recog.c (peephole2_optimize): Rebuild jump labels as needed.
51 2002-04-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
53 * pa.c (pa_output_function_prologue): Don't accumulate the total
54 number of code bytes when using TARGET_64BIT, or gas, SOM and not
56 (output_deferred_plabels): Handle 64bit plabels.
57 (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
58 generating pic code using the GAS assembler for object formats that
59 are not SOM (ie., ELF32 and ELF64).
60 (output_millicode_call): Check attribute type if attribute length is 28.
61 Likewise use $PIC_pcrel$0. Only call get_attr_length and
62 dbr_sequence_length once.
63 (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
64 dbr_sequence_length once.
65 * pa.h (TARGET_SOM): Define if not defined.
66 * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
68 (jump, call_internal_reg, call_value_internal_reg): Likewise.
69 * som.h (OBJ_SOM): Rename to TARGET_SOM. Undefine before defining.
71 2002-04-11 David O'Brien <obrien@FreeBSD.org>
73 * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
74 (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
75 (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
76 DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
77 elfos.h and dbxelf.h values are fine now.
78 * config/i386/freebsd.h, config/alpha/freebsd.h
79 (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
81 2002-04-11 David O'Brien <obrien@FreeBSD.org>
83 * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
84 or set Acpu or Amachine. Reformat.
85 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
87 (LINK_SPEC): Do not need to undef.
88 * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
89 * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
90 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
92 * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
93 (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
94 (LINK_SPEC): Do not need to undef.
95 (DONT_USE_BUILTIN_SETJMP): Do not define.
96 * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
97 (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine. Remove -Dia64.
98 (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
99 Remove trailing spaces.
100 * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
101 __ELF__, or set Acpu or Amachine. Reformat.
102 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
105 2002-04-11 David O'Brien <obrien@FreeBSD.org>
107 * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
108 all other *-*-freebsd* targets.
110 2002-04-11 Richard Henderson <rth@redhat.com>
112 * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
114 2002-04-11 David O'Brien <obrien@FreeBSD.org>
116 * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
117 Include {cpu}/{cpu}.h thru tm_file.
118 (alpha*-*-linux*ecoff): Remove target.
119 * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
120 (LINK_SPEC): Remove, is not OS independent.
121 * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
122 (LINK_SPEC): Do not need to #undef any longer.
123 * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
125 * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
127 (LINK_SPEC): Moved here from alpha/elf.h.
128 * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
130 * config/alpha/linux-ecoff.h: Remove.
131 * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
132 (CPP_SPEC): Define _POSIX_SOURCE as needed.
133 (CPP_SUBTARGET_SPEC): Do not define.
134 (LINK_SPEC): Do not need to #undef any longer.
135 * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
136 * config/alpha/vms.h: Likewise.
138 2002-04-11 Richard Sandiford <rsandifo@redhat.com>
140 * doc/extend.texi: Remove old claim that typedefs cannot have
141 an alignment attribute.
143 2002-04-11 Jakub Jelinek <jakub@redhat.com>
146 * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
147 bitpos is 0 and bitsize CONCAT size.
149 2002-04-11 Jakub Jelinek <jakub@redhat.com>
152 * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
154 2002-04-10 David O'Brien <obrien@FreeBSD.org>
156 * config/alpha/freebsd.h: Minor reformatting.
157 (CPP_SPEC): Define ELF and add cpp_subtarget.
158 (ASM_SPEC): No longer needed.
160 2002-04-11 Richard Henderson <rth@redhat.com>
162 * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
163 (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory.
164 (dimode mem/zero splitter): New.
166 2002-04-11 Hans-Peter Nilsson <hp@axis.com>
168 * config/cris/cris.c (cris_override_options): Tweak error message
169 for PIC not implemented.
171 * config/cris/cris.h: Tweak comments related to parameter-passing.
173 * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
175 2002-04-10 Richard Henderson <rth@redhat.com>
177 * except.c (add_ehl_entry): Allow duplicates after landing pad
180 2002-04-10 David Edelsohn <edelsohn@gnu.org>
182 * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
184 2002-04-10 Toon Moene <toon@moene.indiv.nluug.nl>
186 * c-decl.c (c_init_decl_processing): Move generation of
187 decls for g77_integer_type_node and friends from here ...
188 * c-common.c (c_common_nodes_and_builtins): ... to here.
190 2002-04-10 Ulrich Weigand <uweigand@de.ibm.com>
192 * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
193 is only used as frame pointer when frame_pointer_needed is true.
195 2002-04-10 Richard Earnshaw <rearnsha@arm.com>
198 * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
199 for the fact that the pool entry uses two words.
200 (movdf_hard_insn): Similarly. Also, ADR instruction can span
202 (movdf_soft_insn): Similarly.
203 (movxf_hard_insn): Adjust neg_pool_range attribute to allow
204 for the fact that the pool entry uses three words.
206 2002-04-10 Richard Sandiford <rsandifo@redhat.com>
208 * config/mips/mips.c (mips_va_arg): When using the struct version
209 of the EABI va_list, allow arguments in the register save area to
210 take up less room than a stack argument.
212 2002-04-10 Richard Henderson <rth@redhat.com>
214 * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
215 if EXPAND_INITIALIZER.
217 2002-04-09 Richard Henderson <rth@redhat.com>
219 * config/alpha/alpha.md (movdi_er_maybe_g): New.
220 * config/alpha/alpha.c (alpha_expand_mov): Use it.
222 2002-04-10 Alan Modra <amodra@bigpond.net.au>
225 * rtlanal.c (pure_call_p): New function.
226 * rtl.h (pure_call_p): Declare.
227 * loop.c (prescan_loop): Use it to set has_nonconst_call.
228 * gcse.c (store_killed_in_insn): Use pure_call_p here too.
230 2002-04-09 Eric Christopher <echristo@redhat.com>
232 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
233 information to .comm directive.
235 2002-04-09 Richard Henderson <rth@redhat.com>
238 * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
240 2002-04-09 Richard Henderson <rth@redhat.com>
242 * basic-block.h (flow_delete_block_noexpunge): Declare.
243 (expunge_block_nocompact): Declare.
244 * cfg.c (expunge_block_nocompact): Split out from ...
245 (expunge_block): ... here.
246 * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
247 (flow_delete_block_noexpunge): Split out from ...
248 (flow_delete_block): ... here.
249 * cfgcleanup.c (delete_unreachable_blocks): Compact while
250 removing dead blocks.
251 * except.c (exception_handler_labels): Remove.
252 (exception_handler_label_map): New.
253 (struct eh_region): Add aka member.
254 (mark_ehl_map_entry, mark_ehl_map, free_region): New.
255 (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
256 (for_each_eh_label, for_each_eh_label_1): New.
257 (init_eh): Register exception_handler_label_map.
258 (free_eh_status): Use free_region.
259 (find_exception_handler_labels): Use the map, not the list.
260 (remove_exception_handler_label): Likewise.
261 (maybe_remove_eh_handler): Likewise.
262 (remove_eh_handler): Use the region aka bitmap.
263 * except.h (exception_handler_labels): Remove.
264 (for_each_eh_label): Declare.
265 * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
266 * loop.c (invalidate_loops_containing_label): New.
267 (find_and_verify_loops): Use it. Use for_each_eh_label.
268 * sched-rgn.c (is_cfg_nonregular): Use
269 current_function_has_exception_handlers.
271 2002-04-09 Richard Henderson <rth@redhat.com>
273 * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
274 sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
275 Do not return changed status.
276 (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
277 sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
278 New functions that do return changed status.
279 * sbitmap.h: Update decls.
280 * gcse.c, lcm.c: Use _cg functions as needed.
282 Tue Apr 9 19:15:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
284 * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
285 (sh64-*-elf*, sh-*-rtemself*): Likewise.
286 * config/sh/embed_bb.c: New file.
287 * config/sh/embed-elf.h: New file.
288 * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
289 if -m[12345]* option is given. Don't use subtarget_cpp_ptr_spec.
290 (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
292 (SUBTARGET_CPP_PTR_SPEC): Don't define.
293 (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
294 Add subtarget_asm_endian_spec.
295 (ASM_SPEC): Use subtarget_asm_endian_spec.
296 (SUBTARGET_ASM_ENDIAN_SPEC): Define.
297 (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
298 (WCHAR_UNSIGNED): Define.
299 (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
300 (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
301 (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
303 * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
304 (sh_adjust_cost): Likewise.
305 sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
307 (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
308 (WCHAR_TYPE_SIZE): Likewise.
309 (ASM_SPEC): Use subtarget_asm_endian_spec.
310 (SH_ELF_WCHAR_TYPE): #undef/ #define.
311 (MAX_WCHAR_TYPE_SIZE): Don't #undef.
312 * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
313 (MAX_WCHAR_TYPE_SIZE): Don't #define .
314 (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
315 (USER_LABEL_PREFIX): Don't #undef /#define .
316 (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
317 * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
318 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
319 (ASM_SPEC): Likewise.
320 (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
321 (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
322 * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
323 (LIB2FUNCS_EXTRA): Define.
324 * t-sh64 (LIB2FUNCS_EXTRA): Define.
325 * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
326 (LIB1ASMFUNCS_CACHE): Define.
327 (LIB2FUNCS_EXTRA): Redefine empty.
329 2002-04-08 Richard Henderson <rth@redhat.com>
331 * reorg.c (get_branch_condition): Use reversed_comparison_code.
333 2002-04-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
335 * config/m68hc11/larith.asm (__map_data_section): Fix condition
336 and optimize for size.
337 (__do_global_ctors): Fix pointer comparison.
338 (__do_global_dtors): Likewise.
340 2002-04-09 David S. Miller <davem@redhat.com>
342 * config/sparc/sparc.c (sparc_extra_constraint_check): New
343 function, implementing EXTRA_CONSTRAINTS. For memory constraints,
344 allow reloading pseudos.
345 * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
346 * config/sparc/sparc-protos.h: Declare it.
348 * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
349 unsigned comparison warning.
350 (output_restore_regs): Mark leaf_function as unused.
352 Tue Apr 9 09:35:45 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
354 * expr.c (is_aligning_offset): New function.
355 (expand_expr, case COMPONENT_EXPR): Call it.
357 2002-04-08 David S. Miller <davem@redhat.com>
360 * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
362 Make init_priority work on Sparc when using GNU ld.
363 * config/sparc/linux.h, config/sparc/linux64.h,
364 config/sparc/netbsd-elf.h, config/sparc/freebsd.h
365 (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
366 * config/sparc/sol2-gld.h: New file to do the same.
367 * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
368 sparc/sol2-gld.h to tm_file.
371 * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
372 * doc/md.texi: Document it.
373 * config/sparc/sparc.md (movdi_insn_sp64_novis,
374 movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
375 movdf_insn_v9only_vis, movdf_insn_sp64_novis,
376 movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
377 * config/sparc/sparc.c (mem_min_alignment): Fix comment.
379 2002-04-08 Andreas Jaeger <aj@suse.de>
381 * stmt.c (expand_asm_operands): Revert last patch from Richard
384 2002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
386 * doc/contrib.texi (Contributors): Add John David Anglin and Loren
387 J. Rittle (the latter also to Testers). Update David O'Brien's entry.
389 2002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
391 * doc/contrib.texi (Contributors): Add David O'Brien.
393 2002-04-08 Alan Modra <amodra@bigpond.net.au>
395 * configure.in (auto-build.h): Use target_alias and build_alias
396 when running configure.
397 (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
398 (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
399 * configure: Regenerate.
401 2002-04-07 David S. Miller <davem@redhat.com>
403 * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
405 2002-04-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
408 * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
409 generating 32-bit pic code.
411 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
413 * cppinit.c (cpp_create_reader): Initialize
414 discard_comments_in_macro_exp.
415 (COMMAND_LINE_OPTIONS): Add "-CC" option.
416 (cpp_handle_option): Handle "-CC" option.
417 * cpplex.c (save_comment): If saving a C++ comment in
418 a directive, convert it to a C comment.
419 (_cpp_lex_direct): Pass second comment start character to
420 save_comment to indicate comment type.
421 * cpplib.c (_cpp_handle_directive): If processing
422 a "#define" directive and discard_comments_in_macro_exp
423 is false, re-enable saving of comments.
424 (lex_macro_node): If discard_comments_in_macro_exp is false,
425 discard any comments before the macro identifier.
426 * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
428 * cppmacro.c (cpp_get_token): If expanding a macro while
429 processing a directive, discard any comments we might encounter.
430 (parse_params): If discard_comments_in_macro_exp is false,
431 ignore comments in the macro parameter list.
432 * gcc.c (cpp_unique_options): Add "-CC" option.
433 (option_map): Map "--comments-in-macros" to "-CC".
434 * doc/cppopts.texi: Document "-CC" option.
435 * f/lang-specs.h: Add "-CC" option.
436 * testsuite/gcc.dg/cpp/maccom1.c: New test.
437 * testsuite/gcc.dg/cpp/maccom2.c: New test.
438 * testsuite/gcc.dg/cpp/maccom3.c: New test.
439 * testsuite/gcc.dg/cpp/maccom4.c: New test.
440 * testsuite/gcc.dg/cpp/maccom5.c: New test.
441 * testsuite/gcc.dg/cpp/maccom6.c: New test.
443 2002-04-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
446 * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
448 2002-04-06 Mark Mitchell <mark@codesourcery.com>
451 * stor-layout.c (layout_decl): Reset the RTL for the decl.
454 * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
455 RTX_UNCHANGING_P for the functions arguments when a tail call
458 2002-04-06 Jason Merrill <jason@redhat.com>
460 * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
461 (parse_options_and_default_flags): Set them appropriately.
462 * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
464 2002-04-06 Hans-Peter Nilsson <hp@bitrange.com>
466 * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
469 * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
472 * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
473 types come in by-reference. Fix typo in comment.
475 2002-04-05 David S. Miller <davem@redhat.com>
477 * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
478 * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
479 sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
480 {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
482 2002-04-05 David S. Miller <davem@redhat.com>
484 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
485 are not going to emit return instructions, emit at least a nop
486 for the sake of sane backtraces.
488 2002-04-05 Richard Henderson <rth@redhat.com>
490 * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
492 2002-04-05 Jakub Jeilnek <jakub@redhat.com>
494 * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
496 2002-04-05 Alexandre Oliva <aoliva@redhat.com>
498 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
499 ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
500 ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
502 2002-04-05 Andreas Schwab <schwab@suse.de>
504 * c-convert.c: Include c-common.h.
505 * Makefile.in (c-convert.o): Updated.
507 2002-04-05 Jakub Jelinek <jakub@redhat.com>
509 * mklibgcc.in: Use separate libgcc.map for each multilib.
510 * Makefile.in (distclean): Don't remove libgcc.map here.
512 2002-04-05 Jakub Jelinek <jakub@redhat.com>
514 * Makefile.in (s-mlib): Handle --disable-multilib by separate
515 genmultilib invocation.
517 2002-04-04 Richard Sandiford <rsandifo@redhat.com>
519 * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
520 to avoid clash with Irix header file sys/ucontext.h. Rename gp_regs
521 to num_gprs for symmetry.
522 * config/mips/mips.c: Adjust accordingly.
524 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
526 * c-common.c (truthvalue_conversion): Rename, update.
527 * c-common.h (c_common_truthvalue_conversion): New.
528 * c-convert.c (convert): Update.
529 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
530 * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
531 * c-typeck.c (build_binary_op, build_unary_op,
532 build_conditional_expr): Update.
533 * fold-const.c (constant_boolean_node, fold): Use langhook.
534 * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
535 * langhooks.h (struct lang_hooks): New hook.
536 * stmt.c (expand_decl_cleanup): Use langhook.
537 * tree.h (truthvalue_conversion): Remove.
539 * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
541 2002-04-05 Alan Modra <amodra@bigpond.net.au>
543 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
544 Add rules to make null object file.
546 2002-04-04 Jim Blandy <jimb@redhat.com>
548 * cppmacro.c (cpp_macro_definition): Do not emit spaces after
549 macro formal parameter names.
551 2002-04-04 David S. Miller <davem@redhat.com>
553 * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
555 2002-04-04 Richard Henderson <rth@redhat.com>
558 * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
559 Support copies into and out of memory. Don't accept allows_reg
560 and allows_mem as gospel.
562 2002-04-04 Richard Henderson <rth@redhat.com>
565 * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
566 (write_dependence_p): Likewise.
568 2002-04-04 Richard Henderson <rth@redhat.com>
570 * predict.c (estimate_bb_frequencies): Do frequency calculation
571 with a volatile temporary.
573 2002-04-04 Ulrich Weigand <uweigand@de.ibm.com>
575 * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
577 2002-04-04 Jakub Jelinek <jakub@redhat.com>
580 * final.c (final_start_function): Don't bump profile_label_no here...
581 (final_end_function): ...but here.
583 2002-04-04 Jakub Jelinek <jakub@redhat.com>
585 * config/sparc/sparc.md (pic): New attribute.
586 (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
588 (split after do_builtin_setjmp_setup): New.
590 2002-04-04 Jakub Jelinek <jakub@redhat.com>
593 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
596 2002-04-04 Jakub Jelinek <jakub@redhat.com>
598 * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
599 UNITS_PER_WORD for zero sized aggregates.
601 2002-04-03 David S. Miller <davem@redhat.com>
603 * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
604 one-character spec for this, just use %(link_gcc_c_sequence).
606 2002-04-03 David S. Miller <davem@redhat.com>
608 * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
611 2002-04-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
613 * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
614 (DWARF_FRAME_RETURN_COLUMN): Move.
615 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
616 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
617 * pa.c (except.h, predict.h): Include.
619 (store_reg_modify, set_reg_plus_d): Revise prototypes.
620 (output_ascii): Add cast.
621 (store_reg_modify): Revise to add frame notes.
622 (set_reg_plus_d): Likewise.
623 (compute_frame_size): Include space for eh data registers in frame if
624 the current function calls eh_return.
625 (hppa_expand_prologue): Ensure register %r2 is saved if the current
626 function calls eh_return. Save eh data registers if the current
627 function calls eh_return. Fix code to add frame notes. Emit
628 blockage to prevent insns with frame notes being scheduled in the
630 (hppa_expand_epilogue): Restore eh data registers and do final stack
631 adjustment if the current function calls eh_return. Don't add frame
633 (output_call): Revise for change in length of call insn. Don't do
634 return pointer adjustment for an unconditional jump in the delay slot
635 of a call when using frame notes.
636 * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
637 (EH_RETURN_HANDLER_RTX): Use saved value on stack.
638 (ARG_POINTER_CFA_OFFSET): Define.
639 * pa.md (return_external_pic): New pattern.
640 (prologue): Correct formatting. Use return_external_pic if current
641 function calls eh_return.
642 (call_internal_symref, call_value_internal_symref,
643 sibcall_internal_symref, sibcall_value_internal_symref): Change default
644 lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
646 (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
648 * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
649 list of targets to check using "nop" insn.
650 * configure: Rebuilt.
652 2002-04-04 Alan Modra <amodra@bigpond.net.au>
654 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
656 2002-04-03 David S. Miller <davem@redhat.com>
658 * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
659 library sequence passed to the linker.
660 (LINK_COMMAND_SPEC): Use it.
661 * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
662 a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
663 * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
665 2002-04-03 Jason Merrill <jason@redhat.com>
667 * except.c (struct eh_status): Remove protect_list.
668 (begin_protect_partials, end_protect_partials): Remove.
669 (add_partial_entry): Remove.
670 * except.h: Remove prototypes.
672 * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
673 expand_decl_cleanup_eh.
676 * tree.h (CLEANUP_EH_ONLY): New macro.
677 * stmt.c (expand_decl_cleanup_eh): New fn.
678 (expand_cleanups): Check CLEANUP_EH_ONLY.
679 * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
680 Use expand_decl_cleanup_eh.
681 (expand_stmt): Adjust.
682 * c-common.h: Adjust prototype.
684 2002-04-04 Hans-Peter Nilsson <hp@axis.com>
686 * config/cris/cris.c (cris_target_asm_function_prologue): Cast
687 uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
688 (cris_target_asm_function_epilogue): Ditto.
689 (cris_initial_frame_pointer_offset): Ditto.
690 (cris_simple_epilogue): Ditto.
691 (cris_expand_builtin_va_arg): Variable-size types come in
694 2002-04-03 David S. Miller <davem@redhat.com>
696 * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
698 (set_fast_math): Correct 'fsr' type.
700 2002-04-03 Richard Henderson <rth@redhat.com>
703 * langhooks.h (lang_hooks.decls.warn_unused_global): New.
704 * toplev.c (check_global_declarations): Use it.
705 * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
706 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
707 (LANG_HOOKS_DECLS): Add it.
708 * langhooks.c (lhd_warn_unused_global_decl): New.
709 * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
710 * c-objc-common.c (c_warn_unused_global_decl): New.
711 * c-tree.h (c_warn_unused_global_decl): Declare.
712 * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
714 2002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
716 * langhooks-def.h (lhd_set_decl_assembler_name,
717 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
718 (LANG_HOOKS_INITIALIZER): Update.
719 * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
720 * langhooks.h (struct lang_hooks): New hook.
721 * tree.c (set_decl_assembler_name): Move to langhooks.c.
722 (lang_set_decl_assembler_name): Remove.
723 (init_obstacks): Don't set hook.
724 (decl_assembler_name): New function.
725 * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
726 (decl_assembler_name): New.
727 (lang_set_decl_assembler_name): Remove.
729 2002-04-03 Jakub Jelinek <jakub@redhat.com>
731 * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
732 works properly with .hidden symbols.
733 * configure: Rebuilt.
734 * config.in: Rebuilt.
735 * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
736 DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
737 properly with .hidden symbols.
739 2002-04-03 Jakub Jelinek <jakub@redhat.com>
742 * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
745 2002-04-03 Richard Henderson <rth@redhat.com>
748 * sched-rgn.c (sets_likely_spilled): New.
749 (sets_likely_spilled_1): New.
750 (add_branch_dependences): Use it.
752 2002-04-02 Richard Henderson <rth@redhat.com>
755 * loop.h (LOOP_FIRST_PASS): New.
756 * loop.c (strength_reduce): Mind it when deciding to unroll.
757 * toplev.c (rest_of_compilation): Set it.
759 2002-04-02 David S. Miller <davem@redhat.com>
761 * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
762 mems_ok_for_ldd_peep when the order of the loads being examined
764 * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
765 existing comment to increase comprehension of this situation.
767 2002-04-02 Zack Weinberg <zack@codesourcery.com>
769 * config/sh/sh.md: Don't use union real_extract.
771 2002-04-02 Richard Henderson <rth@redhat.com>
773 * libgcc2.c (__bb_exit_func): Revert 03-31 change.
775 2002-04-02 David O'Brien <obrien@FreeBSD.org>
777 * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
778 i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
779 i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
780 i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
781 i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
782 i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
783 i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
784 i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
785 i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
786 i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
787 i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
788 i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
789 i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
790 i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
791 Include as many configury headers via tm_file as possible. This
792 includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
793 * config/openbsd-oldgas.h: New file.
794 * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
795 config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
796 config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
797 config/i386/i386-coff.h, config/i386/i386-interix.h,
798 config/i386/iscdbx.h, config/i386/linux-aout.h,
799 config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
800 config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
801 config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
802 config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
803 config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
804 config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
805 config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
806 config/i386/vxi386.h: Do not directly include configury headers.
807 * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
808 Directly include configury headers that are no longer automatically
809 included by the above headers.
810 * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
811 * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
812 config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
813 config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
814 config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
815 config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
816 config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
817 (TARGET_VERSION): Define.
818 * config/i386/beos-elf.h, config/i386/freebsd.h,
819 config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
820 config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
821 config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
822 config/i386/sco5.h, config/i386/sysv4.h
823 (TARGET_VERSION): Do not need to protect.
824 * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
825 * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
826 config/i386/freebsd-aout.h, config/i386/i386-aout.h,
827 config/i386/i386-interix.h, config/i386/linux-aout.h,
828 config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
829 config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
830 (YES_UNDERSCORES): Do not define - not needed.
831 * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
832 ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
833 USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
834 * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
835 (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
836 USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
837 * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
838 * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
840 2002-04-02 Eric Botcazou <ebotcazou@multimania.com>
841 Richard Henderson <rth@redhat.com>
844 * function.c (assign_temp): Accept either type or decl argument.
845 Detect variables whose size is too large to fit into an integer.
846 * stmt.c (expand_decl): Pass the decl, not the type.
848 2002-04-02 David O'Brien <obrien@FreeBSD.org>
850 * protoize.c: Match include directory usage with cppdefault.c.
852 2002-04-03 Jeffrey A Law (law@redhat.com)
853 Hans-Peter Nilsson <hp@bitrange.com>
855 * combine.c (simplify_comparison): Avoid narrowing a comparison
856 with a paradoxical subreg when doing so would drop signficant bits.
858 2002-04-02 Steve Ellcey <sje@cup.hp.com>
860 * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
861 if POINTERS_EXTEND_UNSIGNED is defined.
863 2002-04-02 Richard Henderson <rth@redhat.com>
866 * local-alloc.c (contains_replace_regs): LO_SUM may contain
869 2002-04-02 Richard Henderson <rth@redhat.com>
871 * doc/standards.texi: Document required freestanding libc entry points.
873 2002-04-02 Alan Modra <amodra@bigpond.net.au>
875 * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
876 associated splitter. Remove MQ constraint.
877 (ctrdi_internal4): Correct CCmode clobber.
879 2002-04-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
881 * milli64.S ($$dyncall): New function.
882 * t-linux (LIB1ASMFUNCS): Revise module list.
883 (LIB1ASMSRC): Use pa/milli64.S.
885 2002-04-02 Richard Henderson <rth@redhat.com>
887 * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
888 rename solaris_sys_varargs_h.
890 Tue Apr 2 06:47:40 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
892 * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
893 the same mode as its component.
895 2002-04-02 Richard Henderson <rth@redhat.com>
898 * final.c (this_is_asm_operands): Export.
899 * output.h (this_is_asm_operands): Declare.
900 * config/i386/i386.c (print_operand): Error odd asm operands.
902 2002-04-02 Richard Henderson <rth@redhat.com>
905 * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
907 2002-04-01 Richard Henderson <rth@redhat.com>
910 * fixinc/inclhack.def (solaris_sys_varargs_h): New.
911 * fixinc/fixincl.x: Rebuild.
913 2002-04-01 Richard Henderson <rth@redhat.com>
915 * config/ia64/unwind-ia64.c: Include ia64intrin.h.
916 (atomic_alloc, atomic_free): New.
917 (SIZE, MASK_FOR, PTR_IN): New.
918 (emergency_reg_state, emergency_reg_state_free): New.
919 (emergency_labeled_state, emergency_labeled_state_free): New.
920 (reg_state_alloced, labeled_state_alloced): New.
921 (alloc_reg_state, free_reg_state): New.
922 (alloc_label_state, free_label_state, free_label_states): New.
923 (push, pop, dup_state_stack, free_state_stack): Use them.
924 (desc_label_state): Likewise.
925 (uw_frame_state_for): Free label states and state stack.
926 (uw_update_reg_address): Eliminate warnings.
928 2002-04-01 Vladimir Makarov <vmakarov@redhat.com>
930 * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
931 ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
933 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
935 * c-decl.c (grokdeclarator): Update.
936 * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
937 * c-tree.h (c_mark_addressable): New.
938 * c-typeck.c (default_function_array_conversion, build_unary_op,
939 build_array_ref, convert_for_assignment): Update.
940 (mark_addressable): Rename.
941 * calls.c (try_to_integrate, expand_call): Use langhook.
942 * expr.c (expand_expr): Use langhook.
943 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
944 * langhooks.h (struct lang_hooks): New hook.
945 * stmt.c (expand_asm_operands): Use langhook.
946 * tree.h (mark_addressable): Remove.
948 * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
950 2002-04-01 Bob Wilson <bob.wilson@acm.org>
952 * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
955 2002-04-01 Bob Wilson <bob.wilson@acm.org>
957 * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
958 for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
960 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
962 * c-common.c (unsigned_conversion_warning, convert_and_check,
963 unsigned_type, signed_type, shorten_compare,
964 c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
965 (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
966 * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
968 * c-decl.c (grokdeclarator): Update.
969 * c-format.c (check_format_types): Update.
970 * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
971 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
972 * c-typeck.c (build_binary_op, convert_for_assignment): Update.
973 * convert.c (convert_to_integer): Use new hooks.
974 * expmed.c (make_tree): Use new hooks.
975 * expr.c (store_expr): Use new hooks.
976 * fold-const.c (operand_equal_for_comparison_p, build_range_check,
977 all_ones_mask_p, unextend, fold): Use new hooks.
978 * langhooks.h (struct lang_hooks_for_types): New hooks.
979 * tree.h (signed_or_unsigned_type, signed_type,
980 unsigned_type): Remove.
982 * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
983 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
985 2002-03-31 Richard Henderson <rth@redhat.com>
987 * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
988 (desc_frgr_mem): Fix reference to f16-f31.
990 2002-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
992 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
993 RTVEC_ELT): Const-ify.
994 * varray.h (VARRAY_CHECK): Const-ify.
995 * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
996 ggc_mark_rtvec, ggc_mark): Const-ify.
998 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1000 * diagnostic.c: Include langhooks-def.h.
1001 * Makefile.in (diagnostic.o): Update.
1003 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1005 * c-common.c (c_unsafe_for_reeval): Rename.
1006 * c-common.h (c_unsafe_for_reeval): Rename.
1007 * c-decl.c (finish_incomplete_decl): Rename.
1008 (c_init_decl_processing): Don't set langhook.
1009 * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1010 LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1011 * c-objc-common.c (c_objc_common_init): Don't set langhook.
1012 * c-tree.h (finish_incomplete_decl): Rename.
1013 * langhooks-def.h (lhd_unsafe_for_reeval): New.
1014 (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1015 (LANG_HOOKS_INITIALIZER): Update.
1016 * langhooks.c (lhd_unsafe_For_reeval): New.
1017 * langhooks.h (struct langhooks): New hooks.
1018 * toplev.c (incomplete_decl_finalize_hook): Remove.
1019 (wrapup_global_declarations): Update.
1020 * tree.c (lang_unsafe_for_reeval): Remove.
1021 (unsafe_for_reeval): Update.
1022 * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1025 * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1026 LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1028 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1030 * diagnostic.c (print_error_function): Remove.
1031 (default_print_error_function): Rename.
1032 (report_error_function): Update.
1033 * diagnostic.h (print_error_function): Remove.
1034 (default_print_error_function): Remove.
1035 * langhooks-def.h (struct diagnostic_context): Predeclare.
1036 (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1037 (LANG_HOOKS_INITIALIZER): Update.
1038 * langhooks.h (struct diagnostic context): Predeclare.
1039 (struct lang_hooks): New hook.
1041 2002-03-31 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1043 * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1044 (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1046 (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1047 * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1048 of PIC_OFFSET_TABLE_REGNUM thruout.
1049 * config/rs6000/rs6000.md: Likewise.
1050 * config/rs6000/darwin.h: Likewise.
1052 Sun Mar 31 14:43:24 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1054 * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1055 unsigned HOST_WIDE_INT, not unsigned int.
1057 2002-03-31 Jakub Jelinek <jakub@redhat.com>
1059 PR middle-end/6096, middle-end/6098, middle-end/6099
1060 * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1062 (fill_slots_from_thread): Likewise.
1064 2002-03-31 Jakub Jelinek <jakub@redhat.com>
1066 * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1067 floating fields in float regs.
1068 (function_arg_record_value_2): Likewise.
1070 2002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
1072 * config/mmix/mmix.md (define_constants): Remove misleading
1073 FIXME. Add MMIX_fp_rO_OFFSET.
1074 ("nonlocal_goto_receiver"): Don't have stack-frame address of
1075 saved rO as part of the pattern. Remove FIXME.
1076 ("*nonlocal_goto_receiver_expanded"): Similar. Generate address
1077 here, at output-time.
1079 2002-03-31 Jakub Jelinek <jakub@redhat.com>
1082 * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1084 (output_v9branch): Likewise.
1086 2002-03-31 Alexandre Oliva <aoliva@redhat.com>
1088 * gcc.c: Revert previous patch for now.
1089 * config/i386/djgpp.h: Likewise.
1091 2002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
1093 * config/mmix/crti.asm (_init): Register _fini with atexit.
1094 * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1096 2002-03-31 Richard Henderson <rth@redhat.com>
1099 * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1100 (ASM_OUTPUT_DEF_FROM_DECLS): New.
1102 2002-03-31 Richard Henderson <rth@redhat.com>
1104 * libgcc2.c (__bb_exit_func): Make static.
1106 * config/alpha/alpha.md (trap): New.
1108 2002-03-31 Richard Henderson <rth@redhat.com>
1110 * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1111 promoted argument types; build trap.
1112 (expand_builtin_trap): New.
1113 (expand_builtin): Use it.
1114 * stmt.c (expand_nl_goto_receivers): Likewise.
1115 * expr.h (expand_builtin_trap): Declare.
1116 * libfuncs.h (LTI_abort, abort_libfunc): New.
1117 * optabs.c (init_optabs): Init abort_libfunc.
1119 2002-03-31 Alexandre Oliva <aoliva@redhat.com>
1121 * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1122 (LINK_COMMAND_SPEC): ... from here.
1123 (init_gcc_specs): Duplicate it here too, omitting
1124 shared_name in the second copy.
1125 (init_spec): Test for duplicate
1126 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1128 2002-03-30 David S. Miller <davem@redhat.com>
1130 * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1131 * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1133 2002-03-30 Roger Sayle <roger@eyesopen.com>
1134 Richard Henderson <rth@redhat.com>
1136 * regmove.c (combine_stack_adjustments_for_block): Avoid
1137 emitting a stack adjustment of zero bytes. Let delete_insn
1140 2002-03-30 Richard Henderson <rth@redhat.com>
1142 * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1143 (sparc_emitting_epilogue): New.
1144 (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1145 * config/sparc/sparc-protos.h: Update.
1146 * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1147 (TARGET_SWITCHES): Update.
1148 * config/sparc/sparc.md (return): Remove.
1149 (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1150 * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1151 config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1152 config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1153 config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1154 config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1155 config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1156 Remove MASK_EPILOGUE.
1157 * doc/invoke.texi: Update.
1159 2002-03-30 Daniel Berlin <dan@dberlin.org>
1161 * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1162 CPP will start the file for us.
1164 2002-03-30 Richard Henderson <rth@redhat.com>
1167 * config/ia64/ia64.c (group_barrier_needed_p): Special case
1168 prologue_allocate_stack.
1169 (ia64_single_set): Use insn codes for recognition of special
1170 cases, not rtl matching.
1171 * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1173 Sat Mar 30 23:48:41 CET 2002 Jan Hubicka <jh@suse.cz>
1175 * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1177 2002-03-30 Richard Henderson <rth@redhat.com>
1180 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1181 or -fomit-frame-pointer with profiling.
1182 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1183 (FUNCTION_PROFILER): Do nothing.
1184 (PROFILE_HOOK): New.
1185 * config/sparc/sparc.c (sparc_override_options): Don't check
1186 code models for profiling.
1187 (sparc_function_profiler): Remove.
1188 (sparc_profile_hook): New.
1189 * config/sparc/sparc-protos.h: Update.
1191 2002-03-30 Jakub Jelinek <jakub@redhat.com>
1193 PR optimization/6086
1194 * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1195 of SUBREG of volatile MEM or because the MEM was mode dependent,
1196 return CLOBBER instead of unmodified SUBREG.
1198 Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
1200 * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1201 when not optimizing.
1203 * toplev.c (rest_of_compilation): Cann mark_constant_function
1204 only when optimizing.
1206 * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1209 * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1210 (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1211 (try_optimize_cfg): clear all AUX fields.
1213 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1214 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1215 (ix86_address_cost): Be prepared for SUBREGed registers.
1216 (legitimate_address_p): Accept SUBREGed registers.
1218 2002-03-29 Richard Henderson <rth@redhat.com>
1221 * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1223 2002-03-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1225 * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1226 for aggregate and TFmode types.
1228 2002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
1230 * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1232 2002-03-29 Richard Henderson <rth@redhat.com>
1235 * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1236 * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1238 2002-03-29 Richard Henderson <rth@redhat.com>
1241 * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1242 (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1243 * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1244 * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1246 * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1248 2002-03-29 Dale Johannesen <dalej@apple.com>
1250 * loop.c (combine_movables): Do allow combination of pseudos.
1252 2002-03-29 Loren J. Rittle <ljrittle@acm.org>
1254 * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1255 * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1256 No functional change except ...
1257 * config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file.
1258 * doc/install.texi (*-*-freebsd*): Document port configuration.
1260 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1262 * Makefile.in (convert.o, calls.o, expmed.o): Update.
1263 * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1265 * builtin-types.def (BT_PTRMODE): Update.
1266 * c-common.c (type_for_size): Rename c_common_type_for_size.
1267 (type_for_mode): Similarly.
1268 (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1270 * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1271 * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1272 * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1274 * c-typeck.c (common_type, comptypes, default_conversion):
1276 * calls.c: Include langhooks.h.
1277 (emit_library_call_value_1): Use new hooks. Avoid redundant
1279 * convert.c: Include langhooks.h
1280 (convert_to_pointer, convert_to_integer): Use new hooks.
1281 * except.c (init_eh): Similarly.
1282 * expmed.c: Include langhooks.h.
1283 (expand_mult_add): Use new hooks.
1284 * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1285 try_casesi): Similarly.
1286 * fold-const.c (optimize_bit_field_compare, make_range,
1287 decode_field_reference, fold_truthop, fold): Similarly.
1288 * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1289 put_var_into_stack): Similarly.
1290 * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1291 LANG_HOOKS_TYPE_FOR_SIZE): New.
1292 (LANG_HOOKS_TYPES_INITIALIZER): Update.
1293 * langhooks.h (lang_hooks_for_types): New hooks.
1294 * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1295 * tree.c (get_unwidened, get_narrower): Similarly.
1296 * tree.h (type_for_mode, type_for_size): Remove.
1297 * varasm.c (force_const_mem): Use new hooks.
1298 * utils2.c (nonbinary_modular_operation): Update.
1300 * objc-act.c (handle_impent): Update.
1301 * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1304 2002-03-29 Steve Ellcey <sje@cup.hp.com>
1306 * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1307 * config/ia64/ia64.c (basereg_operand): New.
1308 * config/ia64/ia64-protos.h (basereg_operand): Declare.
1309 * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1311 2002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
1313 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
1314 unwind information when frame_pointer_needed.
1315 (mmix_assemble_integer): Tweak wording in comment.
1317 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1319 * Makefile.in (except.o): Update.
1320 * except.c: Include langhooks.h.
1321 (init_eh): Use langhook.
1322 * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
1323 LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
1324 (LANG_HOOKS_INITIALIZER): Update.
1325 * langhooks.h (lang_hooks_for_types): New.
1326 (struct lang_hooks): Add it.
1327 * tree.c (make_lang_type_fn, make_lang_type): Remove.
1328 * tree.h (make_lang_type_fn, make_lang_type): Remove.
1330 * alpha/alpha.c: Include langhooks.h.
1331 (alpha_build_va_list): Use langhook.
1332 * d30v/d30v.c: Include langhooks.h.
1333 (d30v_build_va_list): Use langhook.
1334 * i386/i386.c: Include langhooks.h.
1335 (ix86_build_va_list): Use langhook.
1336 * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
1337 * s390/s390.c: Include langhooks.h.
1338 (s390_build_va_list): Use langhook.
1339 * stormy16/stormy16.c: Include langhooks.h.
1340 (stormy16_build_va_list): Use langhook.
1342 2002-03-29 Jakub Jelinek <jakub@redhat.com>
1345 * config/sparc/sparc.md (empty_delay_slot, branch_type): New
1347 (length): Compute variable length for branches/calls/jumps here.
1348 (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
1349 normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
1350 define branch_type attribute.
1351 (divsi3_sp32): Maximum length is 6 not 7.
1352 (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1353 call_address_untyped_struct_value_sp32,
1354 call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
1355 * config/sparc/sparc.c (empty_delay_slot): New function.
1356 * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
1357 * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
1359 2002-03-29 Jakub Jelinek <jakub@redhat.com>
1361 * combine.c (set_nonzero_bits_and_sign_copies): Don't call
1362 nonzero_bits if not needed.
1363 (nonzero_bits) [XOR]: Likewise.
1364 (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
1365 reg_last_set_mode and mode are both MODE_INT, but not equal.
1366 (record_value_for_reg): Compute reg_last_set_nonzero_bits
1367 in nonzero_bits_mode for MODE_INT modes.
1369 2002-03-28 Richard Henderson <rth@redhat.com>
1372 * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1373 to GAS. Correct drift between alternatives.
1375 2002-03-28 Richard Henderson <rth@redhat.com>
1378 * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
1380 2002-03-28 Alexandre Oliva <aoliva@redhat.com>
1382 * config/i386/freebsd.h (LINK_SPEC): Don't pass default
1383 emulation to the linker.
1385 2002-03-28 Loren J. Rittle <ljrittle@acm.org>
1387 * config/alpha/freebsd.h (LINK_SPEC): Likewise.
1388 * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1390 Thu Mar 28 16:35:31 2002 Jeffrey A Law (law@redhat.com)
1392 * combine.c (simplify_and_const_int): Make sure to apply mask
1393 when force_to_mode returns a constant integer. PR3311.
1395 2002-03-28 John David Anglin <dave@hiauly1.hia.nrc.ca>
1397 * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
1399 2002-03-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1401 * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
1402 and Objective-C Dialect Options.
1404 2002-03-28 Richard Henderson <rth@redhat.com>
1406 * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
1407 comparison should be done vs !=0 not >0 return code. Tidy cases.
1409 2002-03-28 Richard Henderson <rth@redhat.com>
1411 * c-decl.c (finish_function): New arg can_defer_p. Pass it
1412 on to c_expand_body.
1413 * c-tree.h (finish_function): Update decl.
1414 * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
1416 Thu Mar 28 19:13:36 CET 2002 Jan Hubicka <jh@suse.cz>
1418 * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
1420 Thu Mar 28 13:21:53 CET 2002 Jan Hubicka <jh@suse.cz>
1422 * rtlanal.c: Include flags.h
1423 (may_trap_p): Do not mark FP operations if trapping
1424 if !flag_trapping_math
1425 * Makefile.in (rtlanal.o): Add dependency on flag.h
1426 * ifcvt.c (noce_operand_ok): Avoid the lameness.
1428 2002-03-27 Zack Weinberg <zack@codesourcery.com>
1430 * mips.md: Use dconst1, not 1.0, as first argument of
1431 REAL_VALUE_LDEXP. Don't use union real_extract.
1433 2002-03-28 Alan Modra <amodra@bigpond.net.au>
1435 * configure.in (gcc_cv_as): Use $target_alias in directory searchs
1436 rather than $target. Heed program_prefix and
1437 program_transform_name. Search for gas in cross-compiler case too.
1438 "test -x" rather than "test -f".
1439 (gcc_cv_ld): Likewise.
1440 (gcc_cv_nm): Heed program_prefix and program_transform_name.
1441 (gcc_cv_objdump): Likewise.
1442 * configure: Regenerate.
1444 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1446 * Makefile.in (attribs.o): Update.
1447 * attribs.c: Include langhooks.h.
1448 (decl_attributes): Use langhook.
1449 * c-decl.c (insert_default_attributes): Rename.
1450 * c-tree.h (c_insert_default_attributes): New.
1451 * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
1452 (LANG_HOOKS_INITIALIZER): Update.
1453 * langhooks.h (struct lang_hooks): New hook.
1454 * tree.h (insert_default_attributes): Remove.
1456 * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1458 2002-03-27 Andreas Schwab <schwab@suse.de>
1460 * config/i386/i386.c (classify_argument): Also check for
1463 2002-03-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1465 * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
1468 Wed Mar 27 23:19:30 CET 2002 Jan Hubicka <jh@suse.cz>
1470 * i960.md (ret): Set PC.
1471 (nonlocal_goto): Fix expander.
1472 * builtins.c (epxand_builin_longjmp): Check that we've emitted
1475 Wed Mar 27 23:11:35 CET 2002 Jan Hubicka <jh@suse.cz>
1477 * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
1480 Wed Mar 27 22:54:14 CET 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1482 * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
1483 assigning to BLOCK_FOR_INSN directly.
1485 Wed Mar 27 22:33:05 CET 2002 Jan Hubicka <jh@suse.cz>
1487 * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
1489 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1491 * c-common.c (c_expand_expr): Fix prototype.
1492 * c-common.h (c_expand_expr): Always declare, update.
1493 * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1494 * c-objc-common.c (c_objc_common_init): No global hook.
1495 * expr.c (expand_expr): Use langhook.
1496 * expr.h (enum expand_modifier): Conditionally declare.
1497 * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
1498 (LANG_HOOKS_INITIALIZER): Update.
1499 * langhooks.c (lhd_expand_expr): New.
1500 * langhooks.h (struct lang_hooks): New hook.
1501 * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
1502 (lang_independent_init): Don't default hook.
1504 * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1506 2002-03-27 Richard Henderson <rth@redhat.com>
1509 * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
1510 TARGET_CONST_GP. Simplify conditions.
1512 2002-03-27 Richard Henderson <rth@redhat.com>
1514 * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1515 config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
1516 config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
1518 2002-03-27 Danny Smith <dannysmith@users.sourceforge.net>
1520 * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
1521 TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
1522 (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
1523 Remove unnecessary masks.
1524 (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
1525 (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
1526 -mwindows, -mdll switches and their negations.
1528 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1530 * gcc-common.c (lang_mark_false_label_stack): Remove.
1531 * ggc.h (lang_mark_false_label_stack): Similarly.
1533 2002-03-26 Vladimir Makarov <vmakarov@redhat.com>
1535 * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
1537 * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
1538 or __rtems_ is defined.
1540 2002-03-26 Richard Henderson <rth@redhat.com>
1542 * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
1543 if a non-trivial load was emitted.
1544 (alpha_emit_set_const_1): Remove obsolete extension. Fix thinko
1545 in high+extra+low case.
1547 2002-03-26 Richard Henderson <rth@redhat.com>
1549 * config.gcc (sparc*-solaris): Use float_format=sparc.
1551 2002-03-26 Richard Henderson <rth@redhat.com>
1553 * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1554 * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
1555 * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
1556 * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
1557 (WINT_TYPE_SIZE): Fix at 32.
1559 2002-03-26 Richard Henderson <rth@redhat.com>
1561 * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
1562 until after eh landing pad generation.
1563 * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
1564 * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
1566 2002-03-26 Richard Henderson <rth@redhat.com>
1568 * expr.h (ADD_PARM_SIZE): One more convert for INC.
1570 2002-03-26 Phil Edwards <pme@gcc.gnu.org>
1572 * gcc.c (cpp_options): Preserve relative ordering of -pedantic
1573 and warning switches.
1574 (cc1_options): Likewise.
1576 2002-03-26 Hans Boehm <Hans_Boehm@hp.com>
1578 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
1579 Restore more of the signal context. Set no_reg_stack_frame.
1580 * config/ia64/unwind-ia64.c (unw_state_record):
1581 Add no_reg_stack_frame, comments.
1582 (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
1583 (uw_update_context): Adjust bsp when unwinding from leaf,
1584 but not signal frame.
1586 2002-03-26 David Edelsohn <edelsohn@gnu.org>
1588 * config/rs6000/aix51.h (WCHAR_TYPE): Define.
1590 2002-03-26 Bob Wilson <bob.wilson@acm.org>
1592 * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
1594 2002-03-26 Richard Earnshaw <rearnsha@arm.com>
1597 * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
1598 "Add a pool_range attribute", which was lost during the ARM/Thumb
1601 2002-03-26 Bob Wilson <bob.wilson@acm.org>
1603 * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
1604 a register into the MAC16 accumulator.
1606 2002-03-26 Andrew Cagney <ac131313@redhat.com>
1608 * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
1609 (Warning Options): Document -Wswitch-enum.
1610 * toplev.c (W_options): Add -Wswitch-enum. Update comment on
1612 (warn_switch_enum): Define variables.
1613 * flags.h (warn_switch_enum): Declare variables.
1614 * stmt.c (expand_end_case_type): When warn_switch_enum /
1615 -Wswitch-enum, perform switch checks.
1618 2002-03-26 Richard Earnshaw <rearnsha@arm.com>
1620 * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
1621 (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
1622 (reload_muladdsi_compare0_scratch): Delete.
1624 2002-03-26 Loren J. Rittle <ljrittle@acm.org>
1626 * doc/install.texi (*-*-freebsd*): Update.
1628 2002-03-26 Richard Henderson <rth@redhat.com>
1630 * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
1631 (SUB_PARM_SIZE): Cast DEC to ssizetype.
1633 * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
1634 types from the normal argument frame.
1636 * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
1637 variable sized objects by reference.
1638 (sparc_va_arg): Receive them by reference too.
1640 2002-03-26 Hartmut Penner <hpenner@de.ibm.com>
1642 * config/s390/s390.c (s390_emit_epilogue): Change epilogue
1643 code to not restoring global registers.
1645 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
1647 * Makefile.in (ggc-common.o): Update.
1648 * c-decl.c (lang_mark_tree): Rename c_mark_tree.
1649 * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1650 * c-tree.h (c_mark_tree): New.
1651 * ggc-common.c: Include langhooks.h.
1652 (gcc_mark_trees): Use new langhook.
1653 * ggc-callbacks.c: Delete file.
1654 * ggc.h (lang_mark_tree): Remove.
1655 * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
1656 (LANG_HOOKS_INITIALIZER): Update.
1657 * langhooks.h (struct lang_hooks): New hook.
1659 * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1661 2002-03-25 Zack Weinberg <zack@codesourcery.com>
1663 * doc/cpp.texi: Exclude entire Top node from printed manual.
1664 Move option index after directive index. Insert page breaks
1665 before GFDL and concept index. Index environment variables
1666 with command line options.
1667 * doc/cppenv.texi: Use @vtable for environment variable list.
1668 Add paragraph explaining semantics of empty elements in path
1669 variables. Exclude a cross-reference to Fishkill from the
1670 manpage. Remove an unnecessary cross-reference of the entry
1671 right above the referer. Don't use @anchor in text that goes
1673 * doc/cppopts.texi: Cross-reference the environment variables
1674 section, not the specific environment variable, for consistency.
1676 2002-03-25 Richard Henderson <rth@redhat.com>
1678 * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
1679 anywhere in the block. Don't refer to insns that have been
1680 removed from the chain. Iterate backward through the new insns.
1681 Don't refer to edges that have been removed.
1683 2002-03-26 Alan Modra <amodra@bigpond.net.au>
1685 * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
1686 test for overflow of constant.
1688 2002-03-25 Richard Earnshaw <rearnsha@arm.com>
1691 * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
1692 (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
1693 these patterns on arm_archv4.
1695 2002-03-25 Danny Smith <dannysmith@sourceforge.users.net>
1697 * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
1700 2002-03-25 Zack Weinberg <zack@codesourcery.com>
1702 * toplev.c: Don't include setjmp.h. Kill float_handler_set,
1703 float_handled, float_handler, float_signal, set_float_handler,
1704 and do_float_handler. Set handler for SIGFPE to crash_signal.
1705 * toplev.h: Don't prototype do_float_handler.
1707 * c-lex.c: Fold parse_float into lex_number. Make warning
1708 about portability of hex float constants more informative, and
1709 don't issue it on top of a syntax error.
1710 * fold-const.c: Fold const_binop_1 and fold_convert_1 into
1712 * real.h: Define REAL_VALUE_ABS here...
1713 * simplify-rtx.c: ... not here. Fold check_fold_consts,
1714 simplify_unary_real, simplify_binary_real, and
1715 simplify_binary_is2orm1 into their callers.
1716 * tree.c: Fold build_real_from_int_cst_1 into caller.
1718 * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
1720 * tsystem.h: Include float.h here...
1721 * libgcc2.c: ... not here.
1723 2002-03-25 Nick Clifton <nickc@cambridge.redhat.com>
1725 Fixes for: PR bootstrap/3591, target/5676
1726 * config/mcore/mcore.h (CC1_SPEC): Define only if not already
1727 defined. Do not disable exceptions or rtti.
1728 * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
1729 mcore.h. Disable exceptions and rtti, since they are not
1732 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
1734 * c-decl.c (maybe_build_cleanup): Remove.
1735 * expr.c (expand_expr): Use langhook.
1736 * langhooks-def.h (lhd_return_null_tree,
1737 LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
1738 (LANGHOOKS_INITIALIZER): Update.
1739 * langhooks.c (lhd_return_null_tree): New.
1740 * langhooks.h (struct lang_hooks): New hook.
1741 * tree-inline.c (initialize_inlined_parameters): Use langhook.
1742 * tree.h (maybe_build_cleanup): Remove.
1744 2002-03-25 Jakub Jelinek <jakub@redhat.com>
1746 * regrename.c (build_def_use): Move recog_memoized
1747 before extract_insn.
1749 2002-03-25 Jakub Jelinek <jakub@redhat.com>
1752 * expr.c (emit_group_store): Handle storing into CONCAT.
1754 2002-03-25 Jakub Jelinek <jakub@redhat.com>
1756 * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
1757 corresponding MATCH_DUP.
1759 2002-03-24 Richard Henderson <rth@redhat.com>
1761 * unroll.c (unroll_loop): Zero label_map.
1763 * gcse.c: Include except.h.
1764 * Makefile.in (gcse.o): Update.
1766 2002-03-24 Richard Henderson <rth@redhat.com>
1768 * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
1769 Do resolve_unique_section before shared data clause.
1771 2002-03-24 Richard Henderson <rth@redhat.com>
1773 * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
1775 2002-03-24 Richard Henderson <rth@redhat.com>
1777 * recog.c (peephole2_optimize): Split blocks when EH insns are
1778 generated in the middle of a block. Do global life update if
1781 2002-03-24 Richard Henderson <rth@redhat.com>
1783 * mips.c (mips_function_value): Only promote_mode for non-libcalls.
1785 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1788 * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
1789 * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
1790 (init_dependency_output): Don't make no_output decision here.
1792 2002-03-24 Andrew Cagney <ac131313@redhat.com>
1794 * stmt.c (check_for_full_enumeration_handling): Remove tests of
1795 warn_switch. Update description.
1796 (expand_end_case_type): Call check_for_full_enumeration_handling
1799 2002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1801 * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
1802 (m68hc11_split_move): Call it to see if the source and destination
1803 operands use the same direction auto inc/dec mode, otherwise make the
1804 source an offsetable memory operand and generate an add.
1806 2002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1808 * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
1809 register for operand 2.
1810 ("*subsi3_zero_extendqi"): Likewise.
1811 ("*iorhi3_gen"): Do the operation on the upper bits and then lower
1812 bits so that it is compatible with a pop.
1813 ("*andhi3_gen"): Likewise.
1814 ("xorhi3"): Likewise.
1816 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1818 * cppinit.c (cpp_handle_option): Set warn_endif_labels if
1820 (cpp_post_options): ... not here.
1822 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1823 Aldy Hernandez <aldyh@redhat.com>
1825 Removal of separate preprocessor cpp0.
1827 * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
1828 cpp0, install-common): Update.
1829 * c-common.c (flag_preprocess_only): New.
1830 (c_common_init): Preprocess for -E.
1831 * c-common.h (flag_preprocess_only): New.
1832 * c-decl.c (c_decode_option): Handle -E and -std=c++98.
1833 * c-objc-common.c (c_init_decl_processing): Exit quickly
1834 for NULL return from c_common_init.
1835 * cpplib.h (cpp_preprocess_file): New.
1836 * cppmain.c (main, general_init, pfile, progname): Remove.
1837 (do_preprocessing): Rename cpp_preprocess_file, don't call
1838 cpp_finish. Don't close stdout here.
1839 (setup_callbacks): Update prototype.
1840 * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
1842 * tradcpp.c (main): Ignore -quiet.
1844 * lang-specs.h (default_compilers): Preprocess with cc1obj.
1846 2002-03-24 Richard Henderson <rth@redhat.com>
1848 PR optimization/5742
1849 * machmode.def: Add inner mode field to complex modes.
1850 * config/mips/mips.c (mips_function_value): Always define. Add
1851 new argument to handle libcalls.
1852 * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
1853 (FUNCTION_VALUE): Likewise.
1854 * config/mips/abi64.h (FUNCTION_VALUE): Remove.
1855 * config/mips/mips-protos.h: Update.
1857 2002-03-23 Richard Henderson <rth@redhat.com>
1859 * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
1860 * config/sparc/sparc-protos.h: Update.
1861 * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
1863 2002-03-23 Richard Henderson <rth@redhat.com>
1865 * config/sparc/gmon-sol2.c (internal_mcount): Assume either
1866 _start or _init begins the text segment.
1868 2002-03-23 David Edelsohn <edelsohn@gnu.org>
1870 * config/rs6000/rs6000.h (RETURN_IN_MEMORY): Cast to HOST_WIDE_INT
1871 not HOST_WIDEST_INT.
1872 (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
1874 2002-03-23 Richard Earnshaw <rearnsha@arm.com>
1877 * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
1878 operand argument to output_return_instruction.
1879 * arm.c (arm_print_operand, case 'd'): If the operand is
1880 const_true_rtx then just return.
1881 (arm_print_operand, case 'D'): If the operand is const_true_rtx
1884 2002-03-23 Andrew Cagney <ac131313@redhat.com>
1886 * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
1887 (Warning Options): Document -Wswitch-default.
1888 * toplev.c (W_options): Add -Wswitch-default. Update comment on
1890 (warn_switch_default): Define variable.
1891 (warn_switch): Update comment.
1892 * flags.h (warn_switch_default): Declare variable.
1893 (warn_switch): Update comment.
1894 * stmt.c (expand_end_case): Check for and, when
1895 warn_switch_no_default, warn of a missing default case.
1897 2002-03-23 Alan Modra <amodra@bigpond.net.au>
1899 * real.h (N): Special case 128 bit doubles.
1901 * combine.c (simplify_comparison): When widening modes, ignore
1902 sign extension on CONST_INTs.
1904 2002-03-22 Bob Wilson <bob.wilson@acm.org>
1906 * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
1907 passed to adjust_address. Fix comment formatting.
1910 2002-03-22 Zack Weinberg <zack@codesourcery.com>
1912 * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
1913 Always make REAL_VALUE_TYPE a struct containing an array of
1914 HOST_WIDE_INT, not a double. Tidy up the code deciding how
1915 big it is. Don't declare or use union real_extract.
1917 * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
1918 decode_rtx_const, output_constant_pool), config/a29k/a29k.c
1919 (print_operand), config/arm/arm.c (output_move_double),
1920 config/arm/arm.md (consttable_4, consttable_8),
1921 config/romp/romp.c (output_fpops), config/s390/s390.h
1922 (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
1923 (xtensa_output_literal): Don't use union real_extract.
1925 * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
1926 (sfmode_constant_to_ulong), config/ns32k/merlin.h
1927 (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
1928 config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
1929 (PRINT_OPERAND): Don't use local version of union
1932 * config/convex/convex.c (check_float_value), config/vax/vax.c
1933 (vax_float_literal), config/m88k/m88k.md (divdf3),
1934 config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
1935 config/pdp11/pdp11.c (output_move_quad): Don't do host
1936 arithmetic on target floating point quantities.
1938 * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
1939 (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
1941 * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
1942 Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
1944 * real.c (earith): Test INFINITY rather than REAL_INFINITY;
1945 NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
1947 * print-rtl.c (print_rtx): Disable code which needs
1948 floating-point emulator.
1949 * libgcc2.c: Include float.h and use DBL_MANT_DIG,
1950 FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
1951 depending on HOST_FLOAT_FORMAT to be defined properly.
1953 * config/1750a/1750a.c (get_double, float_label): Delete.
1954 (print_operand): Delete huge commented-out chunk. Use
1955 REAL_VALUE_TO_DECIMAL.
1956 * config/1750a/1750a-protos.h: Delete prototypes of deleted
1958 * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
1960 * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
1961 Use REAL_VALUE_TO_DECIMAL as ELF version does.
1962 * config/m88k/m88k.c (real_power_of_2_operand,
1963 legitimize_operand): Take the REAL_VALUE_TYPE and/or union
1964 real_extract out of the union; run the input through
1965 REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
1966 from that into the union.
1967 * config/pdp11/pdp11.c (output_move_double): Rearrange
1968 parentheses to make automatic indenter happy.
1970 * doc/tm.texi (Cross-compilation): Rename node to "Floating
1971 Point" and rewrite to describe current situation. Also adjust
1972 documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
1974 * doc/rtl.texi: Adjust cross reference.
1976 2002-03-22 Bob Wilson <bob.wilson@acm.org>
1978 * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
1979 (xtensa_valid_move, xtensa_preferred_reload_class): Define.
1980 * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
1981 (xtensa_valid_move, xtensa_preferred_reload_class): Define to
1982 prevent use of sp as a reload register.
1983 (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
1984 non_acc_reg_operand.
1985 * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
1986 (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
1987 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
1988 movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
1990 2002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
1992 * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
1993 * cpplex.c (unterminated): Delete.
1994 (parse_string): No string literal may extend over multiple
1995 lines. Suppress the error when preprocessing assembly.
1996 * cppmain.c (scan_translation_unit): Strings are single-line.
1998 * doc/cpp.texi: Update to match.
2000 2002-03-22 Jakub Jelinek <jakub@redhat.com>
2002 PR optimization/5854
2003 * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2005 (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2006 (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2007 * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2008 const0 if scratch register was not allocated.
2009 (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2010 m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2012 (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2013 * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2014 with GEN_INT (...) everywhere. Remove constraints in define_split
2016 (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2017 require scratch register for setting 0 into regs/non-pushable memory.
2019 2002-03-22 Alexandre Oliva <aoliva@redhat.com>
2021 * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2022 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2024 2002-03-22 Phil Edwards <pme@gcc.gnu.org>
2026 * cpplib.h (struct cpp_options): New member, warn_endif_labels.
2027 * cppinit.c (cpp_create_reader): On by default.
2028 (cpp_handle_option): Handle -W[no-]endif-labels.
2029 (cpp_post_options): Also enable if -pedantic.
2030 * cpplib.c (do_else): Use it.
2031 (do_endif): Likewise.
2032 * doc/cppopts.texi: Document new option.
2033 * doc/invoke.texi: Document new option.
2035 2002-03-22 Lars Brinkhoff <lars@nocrew.org>
2037 * config/i386/i386.c, config/i386/i386.md: Change all occurences
2038 of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2040 2002-03-22 Alexandre Oliva <aoliva@redhat.com>
2042 * flow.c (calculate_global_regs_live): Clear aux fields of
2045 2002-03-22 Jakub Jelinek <jakub@redhat.com>
2047 * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2048 REG or MEM subregs, pass rtx * instead of rtx to it.
2049 * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2050 rtx * instead of rtx to alter_subreg.
2051 * config/m32r/m32r.c (gen_split_move_double): Likewise.
2052 * config/pj/pj.c (pj_output_rval): Likewise.
2054 2002-03-22 Richard Henderson <rth@redhat.com>
2057 * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2058 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2059 * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2060 (ia64_expand_prologue): Look at int_regs, not words, for number
2061 of incomming int regs.
2063 2002-03-22 Andrew MacLeod <amacleod@redhat.com>
2065 * expr.c (expand_expr): A RESULT_DECL is part of a call.
2067 Fri Mar 22 16:30:42 CET 2002 Jan Hubicka <jh@suse.cz>
2069 * toplev.c (flag_loop_optimize, flag_crossjumping):
2070 New static variables.
2071 (rest_of_compilation): Conditionalize crossjumping and
2073 (parse_options_and_default_flags): Default loop_optimize and
2075 (lang_independent_options): Add -fcrossjumping and -floop-optimize
2076 * invoke.texi (crossjumping, loop-optimize): Document.
2078 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
2080 * real.c (eiisneg): Move outside #ifdef NANS.
2082 Fri Mar 22 12:08:36 CET 2002 Jan Hubicka <jh@suse.cz>
2084 * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2085 frequencies match; avoid match on different loop depths.
2086 (try_crossjump_to_bb): Kill tests that no longer brings time
2088 * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2090 (split_edge): Likewise.
2092 * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2095 * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2096 * cfgrtl.c: Include insn-config.h
2097 (split_block) Dirtify block in presence of conditional execution
2099 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
2101 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2102 * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2103 (function_arg): Constify CUMULATIVE_ARGS.
2104 (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2105 * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2106 (UNITS_PER_DOUBLE): New macro.
2107 (SETUP_INCOMING_VARARGS): Define. Use mips_setup_incoming_varargs.
2108 (CUMULATIVE_ARGS): Reformat. Remove num_adjusts workaround and
2109 last_arg_fp field. Replace arg_words and fp_arg_words with gp_regs,
2110 fp_regs and stack_words.
2111 (EABI_FLOAT_VARARGS_P): New macro.
2112 * config/mips/mips.c (struct mips_arg_info): New.
2113 (mips_arg_info): New function.
2114 (function_arg_advance): Use it. Add adjustment instructions here
2115 rather than in function_arg.
2116 (function_arg): Constify CUMULATIVE_ARGS. Use mips_arg_info. Check
2117 for VOIDmode at the beginning of the function.
2118 (function_partial_nregs): Constify CUMULATIVE_ARGS. Use mips_arg_info.
2119 (function_arg_pass_by_reference): Likewise.
2120 (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2121 (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2122 (mips_va_start): Likewise. Use the new stack_words field of
2123 CUMULATIVE_ARGS to set up overflow area. Reformat.
2124 (mips_va_arg): Test EABI_FLOAT_VARARGS_P. Unify EABI handling of
2125 doubles and other types, aligning the overflow pointer for non-doubles
2126 too. Remove some code duplication. Replace hard-coded constants.
2128 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
2130 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2131 (CLASS_UNITS): Undefine.
2132 (CLASS_MAX_NREGS): Use FP_INC.
2133 * config/mips/mips.c (compute_frame_size): Likewise.
2134 (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2136 2002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
2138 * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2139 prototype, and handle lexing numbers and identifiers.
2140 (parse_identifier): Update to new form of parse_slow.
2141 (parse_number): Fast path only, use parse_slow otherwise.
2142 (_cpp_lex_direct): Update calls to parse_number.
2144 2002-03-21 DJ Delorie <dj@redhat.com>
2146 * bb-reorder.c (make_reorder_chain_1): Protect against
2147 when redundant edges are omitted.
2148 * predict.c (dump_prediction): Likewise.
2150 2002-03-21 Richard Henderson <rth@redhat.com>
2153 * fixinc/inclhack.def (solaris_stdio_tag): New.
2154 * fixinc/fixincl.x: Regenerate.
2156 2002-03-21 Eric Botcazou <ebotcazou@multimania.com>
2159 * c-typeck.c (process_init_element): Flag non-static
2160 initialization of a flexible array member as illegal.
2162 2002-03-22 Alan Modra <amodra@bigpond.net.au>
2164 * config/rs6000/t-linux64: New.
2165 * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2166 t-ppccomm. Use t-rs6000 and t-linux64.
2167 (powerpc64-*-gnu* <tmake_file>): Likewise.
2168 * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2169 * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2170 * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2172 2002-03-21 Aldy Hernandez <aldyh@redhat.com>
2174 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2175 flag_really_no_inline instead of optimize == 0.
2177 * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2179 * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2181 * flags.h (flag_really_no_inline): New.
2183 * c-common.c (c_common_post_options): Initialize
2184 flag_really_no_inline.
2186 * toplev.c (flag_really_no_inline): New.
2188 2002-03-21 Jakub Jelinek <jakub@redhat.com>
2190 * config/avr/avr.md (length): Fix length computation for
2191 conditional branches.
2193 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
2195 * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2196 sdbout.o, profile.o): Update.
2197 * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2199 * c-common.h (gettags): Move here from tree.h.
2200 * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2201 insert_block, getdecls, kept_level_p, global_bindings_p): New.
2202 * dbxout.c (dbxout_init): Use getdecls langhook.
2203 * expr.c (expand_expr): Use insert_block langhook.
2204 * fold-const.c: Include langhooks.h.
2205 (fold_range_test, fold_binary_op_with_conditional_arg,
2206 fold): Use global_bindings_p langhook.
2207 * integrate.c (expand_inline_function): Use insert_block langhook.
2208 * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2209 LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2210 LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2211 LANG_HOOKS_GETDECLS): New.
2212 (LANG_HOOKS_INITIALIZER): Update.
2213 * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2215 * langhooks.h (struct lang_hooks_for_decls): New.
2216 (struct lang_hooks): Update.
2217 * profile.c: Include langhooks.h.
2218 (output_func_start_profiler): Use new langhooks.
2219 * sdbout.c: Include langhooks.h.
2220 (sdbout_init, sdbout_finish): Use getdecls langhook.
2221 * stmt.c: Include langhooks.h.
2222 (expand_fixup, fixup_gotos): Use new langhooks.
2223 * stor-layout.c: Include langhooks.h.
2224 (variable_size): Use global_bindings_p langhook.
2225 * toplev.c (compile_file): Use getdecls langhook.
2226 * tree-inline.c (remap_block): Use insert_block langhook.
2227 * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2228 insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2230 2002-03-21 Richard Henderson <rth@redhat.com>
2232 * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2233 constants in .data when -fpic.
2235 2002-03-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2237 * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2240 2002-03-21 Tom Tromey <tromey@redhat.com>
2242 * config/i386/sol2.h (ASM_QUAD): Undef. Fixes PR bootstrap/5948.
2244 Thu Mar 21 09:50:48 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2246 * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2248 * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2250 2002-03-21 Eric Botcazou <ebotcazou@multimania.com>
2251 Richard Henderson <rth@redhat.com>
2254 * c-common.c (c_expand_expr): Preserve result of a statement
2255 expression if needed.
2257 2002-03-21 Jakub Jelinek <jakub@redhat.com>
2260 * genrecog.c (maybe_both_true_mode): Remove.
2261 (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2262 * machmode.def (Pmode): Likewise.
2264 Thu Mar 21 01:55:06 EST 2002 John Wehle (john@feith.com)
2266 * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2267 (nonlocal_mentioned_p_1): New function.
2268 (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2269 (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2270 (mark_constant_function): Recognize pure functions.
2271 * rtl.h (global_reg_mentioned_p): New prototype.
2272 * rtlanal.c (global_reg_mentioned_p,
2273 global_reg_mentioned_p_1): New function.
2275 2002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2277 * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2279 * fixinc/fixincl.x: Regenerate.
2281 2002-03-20 Jason Merrill <jason@redhat.com>
2283 * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2285 2002-03-20 Michael Meissner <meissner@redhat.com>
2287 * doc/invoke.texi (Optimize Options): Document that -O2 sets
2290 2002-03-20 Bob Wilson <bob.wilson@acm.org>
2292 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2293 ".literal_position" directive before the constant pool.
2295 2002-03-20 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2297 * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2298 Add Craig Rodrigues.
2299 Add Brad Lucier to testers.
2301 2002-03-20 Jakub Jelinek <jakub@redhat.com>
2304 * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2306 (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2307 * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2308 instead of insn_extract.
2310 2002-03-20 Jakub Jelinek <jakub@redhat.com>
2313 * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2315 * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2316 stmt if some case has been output.
2318 2002-03-20 Jakub Jelinek <jakub@redhat.com>
2321 * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
2322 movsfcc_1, movdfcc_1): Add %O2.
2323 * config/i386/i386.c (print_operand): Handle %ON.
2324 Print . before float condition codes in Sun as cmov syntax.
2325 * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
2326 * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
2329 2002-03-20 Philip Blundell <pb@nexus.co.uk>
2331 * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2332 return instruction if PC was popped.
2334 2002-03-20 Bob Wilson <bob.wilson@acm.org>
2336 * config/xtensa/xtensa.md: Remove unused type attributes.
2337 (adddi_carry, subddi_carry): Change type attribute to "multi".
2339 2002-03-19 Dale Johannesen <dalej@apple.com>
2341 PR optimization/5999, middle-end/5731
2342 * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2343 multiplications by reciprocals.
2345 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
2347 * Makefile.in: Update.
2348 * c-common.c: Include langhooks.h.
2349 (inline_forbidden_p): Use new hook.
2350 * diagnostic.c: Include langhooks.h.
2351 (format_with_decl, announce_function,
2352 default_print_error_function): Use new hook.
2353 * dwarf2out.c (dwarf2_name): Use new hook.
2354 * function.c: Include langhooks.h.
2355 (init_function_start): Use new hook.
2356 * langhooks-def.h (lhd_decl_printable_name): New.
2357 (LANGHOOKS_DECL_PRINTABLE_NAME): New.
2358 (LANGHOOKS_INITIALIZER): Update.
2359 * langhooks.c (lhd_decl_printable_name): New.
2360 * langhooks.h (struct lang_hooks): New hook.
2361 * toplev.c (decl_name, decl_printable_name): Remove.
2362 (open_dump_file): Use new hook.
2363 (process_options): Remove old hook.
2364 * tree.h (decl_printable_name): Remove.
2366 * objc-act.c (objc_init): Remove old hook.
2367 (objc_printable_name): Export.
2368 * objc-act.h (objc_printable_name): New.
2369 * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2371 2002-03-19 Jim Blandy <jimb@redhat.com>
2373 * c-lex.c (cb_file_change): Pass the #inclusion's line number to
2374 the start_source_file debug hook, not the current line number.
2376 2002-03-19 Richard Henderson <rth@redhat.com>
2378 * flow.c (EH_USES): Provide default.
2379 (calculate_global_regs_live): Use it for EH edges and noreturn calls.
2380 * doc/tm.texi (EH_USES): New.
2382 * config/ia64/ia64.c (ia64_eh_uses): New.
2383 * config/ia64/ia64-protos.h: Update.
2384 * config/ia64/ia64.h (EH_USES): New.
2386 2002-03-19 Richard Henderson <rth@redhat.com>
2388 * varasm.c (output_constant_def): Fix stupid typo.
2390 2002-03-19 Richard Henderson <rth@redhat.com>
2393 * except.c (current_function_has_exception_handlers): New.
2394 * except.h: Declare it.
2395 * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
2396 Combine tests that disable all sibcalls for the function.
2398 2002-03-19 Olivier Hainque <hainque@act-europe.fr>
2400 * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
2403 2002-03-19 Richard Henderson <rth@redhat.com>
2406 * config/ia64/ia64.c: Revert 2002-03-01 patch.
2407 * config/ia64/ia64.h (INIT_EXPANDERS): New.
2409 2002-03-19 Jim Blandy <jimb@redhat.com>
2411 * cppmacro.c (cpp_macro_definition): Emit a space after the macro
2412 name, even if the replacement list contains no tokens, as required
2415 2002-03-19 Jason Merrill <jason@redhat.com>
2417 * varasm.c (globalize_decl): Get the name from the RTL, not
2418 DECL_ASSEMBLER_NAME.
2420 * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
2422 2002-03-19 Bob Wilson <bob.wilson@acm.org>
2424 * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
2425 subdi_carry): Define.
2427 2002-03-19 David Edelsohn <edelsohn@gnu.org>
2429 * config/rs6000/rs6000.c (rs6000_override_options): Only warn
2430 about -fpic/-fPIC if extra_warnings set.
2432 2002-03-19 David Edelsohn <edelsohn@gnu.org>
2434 * expr.c (expand_expr): Sign-extend CONST_INT generated from
2435 TREE_STRING_POINTER.
2436 * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
2438 Tue Mar 19 14:12:32 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2440 * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
2441 in favor of SP if FRAME_POINTER_REQUIRED is false.
2443 2002-03-19 Lars Brinkhoff <lars@nocrew.org>
2445 * emit-rtl.c (gen_int_mode): New function.
2446 * rtl.h: Prototype for it.
2447 * combine.c (make_extraction, simplify_comparison), expmed.c
2448 (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
2449 (convert_modes, store_field), optabs.c (expand_fix),
2450 simplify-rtx.c (neg_const_int, simplify_unary_real),
2452 * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
2453 Use it instead of GEN_INT (trunc_int_for_mode (...)).
2455 2002-03-19 Jakub Jelinek <jakub@redhat.com>
2458 * langhooks.h (struct lang_hooks_for_tree_inlining): Add
2459 convert_parm_for_inlining.
2460 * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2462 * langhooks-def.h: Likewise.
2463 * objc/objc-lang.c: Likewise.
2464 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
2466 * tree-inline.c (initialize_inlined_parameters):
2467 Call convert_parm_for_inlining lang hook if needed.
2468 * c-typeck.c (c_convert_parm_for_inlining): New function.
2469 * c-tree.h (c_convert_parm_for_inlining): Add prototype.
2471 2002-03-18 Mark Mitchell <mark@codesourcery.com>
2473 * calls.c (precompute_arguments): Do not assume that temporaries
2474 can be destroyed after expanding the argument.
2475 (expand_call): Likewise.
2477 2002-03-15 Eric Christopher <echristo@redhat.com>
2479 * config/mips/mips.md (movdf_internal2): Add two new move constraints.
2480 Fix register preference on last change.
2481 * config/mips/mips.c (mips_return_in_memory): New function.
2482 * config/mips/mips.h (RETURN_IN_MEMORY): Use.
2483 * config/mips/mips-protos.h: Declare.
2484 * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
2485 * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
2487 2002-03-18 Alexandre Oliva <aoliva@redhat.com>
2489 * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
2491 (anddi3, iorsi3): Likewise.
2493 * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
2494 use %gprel for symbols that are going to be placed in linkonce
2497 * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
2498 RETURN_ADDRESS_POINTER_REGNUM to $ra.
2499 (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
2500 not needed. Disregard leaf_function_p().
2501 (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
2502 mips16 frame pointer.
2503 * config/mips/mips.md (store ra): Only to small SP offsets.
2504 2001-08-22 Graham Stott <grahams@redhat.com>
2505 * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
2506 return a REG rtx for the return address register.
2508 2002-03-18 Bob Wilson <bob.wilson@acm.org>
2510 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
2511 constant-pool addresses as "mode-dependent".
2512 (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
2514 2002-03-18 Jakub Jelinek <jakub@redhat.com>
2517 * expr.c (emit_group_load): Use extract_bit_field if
2518 needed for CONCAT arguments.
2520 2002-03-18 Richard Earnshaw <rearnsha@arm.com>
2523 * arm.md (tablejump): Make this a define_expand. For PIC add the
2524 offset to the base of the table.
2525 (thumb_tablejump): Matcher for Thumb tablejump insn.
2526 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
2527 as the difference of two labels.
2528 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2529 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
2531 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2532 * arm.c (get_jump_table_size): If the table is not in the text
2533 section, return zero.
2535 2002-03-18 Bernd Schmidt <bernds@redhat.com>
2537 * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
2539 (arm_reload_out_hi): Use gen_lowpart instead of
2540 gen_rtx_SUBREG to access QImode components.
2541 * config/arm/arm.md: Disable zero_extend split for QImode
2542 subregs in BIG_ENDIAN mode.
2543 (storehi_bigend): Match use of least significant byte.
2544 (storeinthi): Remove extraneous SUBREG.
2545 Add missing construction of operands[2].
2546 (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
2547 (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
2548 Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
2550 2002-03-18 Aldy Hernandez <aldyh@redhat.com>
2552 * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
2555 2002-03-17 Richard Henderson <rth@redhat.com>
2557 * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
2560 2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
2562 * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
2563 (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
2565 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2567 * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
2569 * predict.c (estimate_bb_frequencies): Delete unused variables.
2571 2002-03-17 Richard Henderson <rth@redhat.com>
2573 * config/ia64/ia64.c (ia64_attribute_table): Move before
2574 targetm definition. Make static.
2576 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
2578 * c-common.h (yyparse, c_common_parse_file): New.
2579 * c-lang.c: Include c-common.h.
2580 (LANG_HOOKS_PARSE_FILE): Redefine.
2581 * c-lex.c: Include c-common.h.
2582 (yyparse): Rename c_common_parse_file. Call yyparse.
2583 * c-parse.in (yyparse): Remove macro.
2584 * c-tree.h (yyparse_1): Remove.
2585 * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
2586 (LANG_HOOKS_INITIALIZER): Update.
2587 * langhooks.h (struct lang_hoooks): New hook parse_file.
2588 * toplev.c (compile_file): Use parse_file hook.
2589 * tree.h (yyparse): Remove.
2590 * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2592 2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
2594 * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
2595 float_truncate, not fix.
2596 ("*truncdfsf2_real"): Ditto.
2597 ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
2599 * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
2601 2002-03-16 Alexandre Oliva <aoliva@redhat.com>
2603 * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
2604 (s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses
2605 where appropriate. Make the second reference to
2606 leaf_function_p a function call, as intended. Reindented.
2608 * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
2609 * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
2611 * config/mips/mips.md (addsi3, adddi3): Use scratch register to
2612 add register to non-constant into sp.
2614 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
2615 * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
2616 (mips16_gp_pseudo_rtx): Lose.
2617 (INIT_EXPANDERS): Deleted.
2618 * config/mips/mips.c (mips_init_machine_status): New.
2619 (mips_free_machine_status): New.
2620 (mips_mark_machine_status): New.
2621 (override_options): Set them.
2622 (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
2623 (struct machine_function): ... new. Replaced all references.
2624 (mips_add_gc_roots): Don't mark them.
2625 (embedded_pic_fnaddr_reg): New, extracted from...
2626 (embedded_pic_offset): ... here.
2627 * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
2630 2002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
2632 * cppinit.c: Revert -MD removal.
2634 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2636 * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
2637 soft registers by default for 68HC12.
2638 (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
2639 when compiling with -fomit-frame-pointer.
2640 (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
2641 (expand_epilogue): Likewise.
2642 (m68hc11_gen_rotate): Use exg when rotating by 8.
2644 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2646 * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
2647 * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
2648 (splits): Remove unused add splits.
2649 ("*addhi3_68hc12"): Tune constraints.
2650 ("addhi_sp"): Try to use X instead of Y in all cases and if the
2651 constant fits in 8-bits and D is dead use abx/aby instructions.
2652 ("*addhi3"): Remove extern declaration of ix_reg.
2653 ("*subsi3"): Optimize and provide new split.
2654 ("subhi3"): Cleanup.
2655 ("*subhi3_sp"): Avoid saving X if we know it is dead.
2656 (arith splits): For 68hc12 save the address register on the stack
2657 and do the arithmetic operation with a pop.
2659 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2661 * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
2662 allocating QImode in address registers.
2663 ("*movqi_m68hc11"): Likewise.
2665 Sat Mar 16 12:57:28 CET 2002 Jan HUbicka <jh@suse.cz>
2667 * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
2669 2002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
2671 * cppinit.c (print_help): Display -MD and -MMD.
2672 Don't display usage string. Update assertion syntax and
2674 (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
2675 (cpp_handle_option): Update.
2677 2002-03-15 Chris Demetriou <cgd@broadcom.com>
2679 * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
2680 MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
2681 and define it so that regardless of target CPU size,
2682 __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
2683 of "int" rather than "long."
2685 2002-03-15 Richard Henderson <rth@redhat.com>
2687 * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
2690 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2692 * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
2693 ("tstqi" split): Avoid using memory for tstqi on address register.
2694 (splits): Remove constraints.
2695 ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
2696 ("cmpdf", "cmpsf"): Remove since not used.
2697 ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
2698 (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
2700 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2702 * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
2703 ("neghi2"): Tighten constraints.
2704 ("one_cmplsi2"): Optimize and simplify split.
2705 * config/m68hc11/larith.asm (__negsi2): Likewise for library.
2707 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2709 * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
2710 and split of AND operation to clear the upper bits.
2711 ("*logicalsi3_zextqi"): Likewise.
2712 ("*logicallhi3_zexthi_ashift8"): Likewise.
2713 ("*logicalsi3_silshr16"): Likewise.
2714 ("logicalsi3_silshl16"): Likewise.
2715 ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
2717 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2719 * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
2720 (m68hc11_indirect_p): New function.
2721 (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
2722 (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
2724 (asm_print_register): Likewise.
2725 * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
2726 (m68hc11_indirect_p): Declare.
2727 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
2728 (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
2729 (TARGET_SWITCHES): New option -mrelax.
2730 * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
2732 ("iorsi3", "xorsi3"): Likewise.
2733 ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
2734 ("*andhi3_mem"): New to handle destination in memory with bclr
2735 and a scratch register.
2736 ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
2737 ("*andhi3_const"): New when operand2 is constant.
2738 ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
2739 ("*andhi3_gen"): Cleanup of the old "andhi3".
2740 ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
2741 ("xorqi3"): Update constraints.
2743 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2745 * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
2746 for reg_equiv_memory_loc when the operand is a register that does
2747 not get a hard register (stack location).
2748 (tst_operand): After reload, accept all memory operand.
2749 (symbolic_memory_operand): Fix detection of symbolic references.
2750 * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
2751 accept symbols and any constant.
2753 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2755 * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
2756 note on the insn that sets the soft frame register.
2757 (must_parenthesize): ix and iy are also reserved names.
2758 (print_operand_address): One more place where parenthesis are required
2759 to avoid confusion with register names.
2760 (m68hc11_gen_movhi): Allow push of stack pointer.
2761 (m68hc11_check_z_replacement): Fix handling of parallel with a
2763 (m68hc11_z_replacement): Must update the REG_INC notes to tell what
2764 the replacement register is.
2765 * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
2766 and D8_REGS classes.
2767 (MODES_TIEABLE_P): All modes are tieable except QImode.
2769 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2771 * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
2772 (___subdi3): Likewise.
2773 (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
2774 (__map_data_section): Optimize 68hc11 case.
2776 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2778 * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
2779 than a shift to avoid adding a register with itself.
2780 (m68hc11_memory_move_cost): Take into account NO_REGS.
2781 (m68hc11_register_move_cost): Update and use memory move cost
2783 (m68hc11_address_cost): Make cost of valid offset not 0 so that
2784 it gives more opportunities to cse to optimize.
2785 * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
2786 * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
2788 2002-03-15 Mark Mitchell <mark@codesourcery.com>
2790 * c-common.c (statement_code_p): Handle CLEANUP_STMT.
2791 * c-common.def (CLEANUP_STMT): New tree node.
2792 * c-common.h (CLEANUP_DECL): New macro.
2793 (CLEANUP_EXPR): Likewise.
2794 * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
2795 * expr.c (expand_expr): Tidy.
2796 * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
2797 * tree-inline.c (initialize_inlined_parameters): Clean up
2798 new local variables.
2800 2002-03-15 Jakub Jelinek <jakub@redhat.com>
2803 * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
2804 before movrXX only, use reg_overlap_mentioned_p.
2805 Only special case NE if just one insn can be generated.
2807 2002-03-15 Jason Merrill <jason@redhat.com>
2809 * varasm.c (assemble_variable): Call resolve_unique_section before
2810 checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL
2813 2002-03-15 Richard Earnshaw <rearnsha@arm.com>
2816 * arm.md (split pattern for thumb shiftable immediates): Add comment
2817 explaining non-obvious test.
2819 2002-03-15 Richard Earnshaw <rearnsha@arm.com>
2822 * arm.md (movaddr, movaddr_insn): Delete.
2824 2002-03-15 Jason Merrill <jason@redhat.com>
2826 * toplev.c (wrapup_global_declarations): Clarify variable handling.
2827 -fkeep-static-consts doesn't apply to comdats.
2829 2002-03-14 Richard Henderson <rth@redhat.com>
2831 * c-decl.c: Include c-pragma.h.
2832 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
2833 (finish_function): Tidy.
2834 * c-pragma.c: Include c-common.h.
2835 (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
2836 (handle_pragma_weak): Use them.
2837 (init_pragma): Register pending_weaks.
2838 * c-pragma.h (maybe_apply_pragma_weak): Declare.
2839 * print-tree.c (print_node): Print DECL_WEAK.
2840 * varasm.c (mark_weak_decls): Remove.
2841 (remove_from_pending_weak_list): Remove.
2843 (asm_emit_uninitialised): Call globalize_decl for weak commons.
2844 (weak_decls): Make a tree_list.
2845 (declare_weak): Cons weak_decls directly.
2846 (globalize_decl): Remove weak_decls elements directly.
2847 (weak_finish): Simplify weak_decls walk. Don't weaken unused
2848 symbols. Don't pretend to handle aliases.
2849 (init_varasm_once): Update weak_decls registry.
2850 * Makefile.in: Update dependencies.
2852 2002-03-14 Richard Henderson <rth@redhat.com>
2855 * config/ia64/ia64.c: Include tm_p.h last.
2856 (gen_nop_type): Remove duplicate definition.
2857 (cycle_end_fill_slots): Set sched_data for second L slot.
2858 (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
2859 (nop_cycles_until): Fix typos.
2861 2002-03-15 Jakub Jelinek <jakub@redhat.com>
2863 PR optimization/5891
2864 * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
2866 2002-03-14 David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
2868 * config/ia64/unwind-ia64.c: Handle copy_state and label_state
2869 descriptors correctly.
2871 2002-03-14 Michael Meissner <meissner@redhat.com>
2873 * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
2874 100, allowing MAX_UNROLLED_INSNS to be overridden.
2876 * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
2879 * unroll.c (params.h): Include.
2880 (MAX_UNROLLED_INSNS): Delete, now in params.h.
2882 * doc/invoke.texi (--param max-unroll-insns): Document.
2884 * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
2886 2002-03-14 Richard Earnshaw <rearnsha@arm.com>
2888 * arm.md: Fix warnings about constraints in peepholes and splits.
2890 2002-03-14 Zack Weinberg <zack@codesourcery.com>
2892 * cpphash.h (struct lexer_state): Remove line_extension member.
2893 * cpplib.c (dequote_string, do_linemarker): New functions.
2894 (linemarker_dir): New data object.
2895 (DIRECTIVE_TABLE): No longer need to interpret #line in
2896 preprocessed source. Delete obsolete comment about return
2898 (end_directive, directive_diagnostics, _cpp_handle_directive):
2899 Don't muck with line_extension.
2900 (directive_diagnostics): No need to issue warnings for
2902 (_cpp_handle_directive): Issue warnings for linemarkers here,
2903 when appropriate. Dispatch linemarkers to do_linemarker, not
2905 (do_line): Code to handle linemarkers split out to do_linemarker.
2906 Convert escape sequences in filename argument, both places.
2908 * cppmacro.c (quote_string): Rename cpp_quote_string and
2909 export. All callers changed.
2910 * cpplib.h (cpp_quote_string): Prototype.
2911 * cppmain.c (print_line): Call cpp_quote_string on to_file
2914 * doc/cpp.texi: Document that escapes are now interpreted in
2915 #line and in linemarkers, and that non-printing characters are
2916 converted to octal escapes when linemarkers are generated.
2918 Thu Mar 14 19:04:29 CET 2002 Jan Hubicka <jh@suse.cz>
2920 * emit-rtl.c (try_split): Use delete_insns.
2921 * recog.c (split_all_insns): Fix terminating condition.
2923 2002-03-14 Richard Earnshaw <rearnsha@arm.com>
2924 Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
2927 * arm.c (arm_output_epilogue): Fix floating-point register save
2928 adjustment when using a frame pointer.
2930 2002-03-14 Richard Sandiford <rsandifo@redhat.com>
2932 * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
2933 * config/mips/mips.c (compute_frame_size): Retrofit them here.
2934 (save_restore_insns, mips_expand_epilogue): And here.
2935 (build_mips16_call_stub): And here.
2936 (mips_function_value): Use the new macros to decide whether a single
2937 or complex float can be returned in floating-point registers. Return
2938 a parallel rtx in the complex case.
2940 Thu Mar 14 11:03:12 CET 2002 Jan Hubicka <jh@suse.cz>
2942 * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
2943 call after liveness analysis.
2945 * recog.c (split_insn): Use delete_insn_and_edges.
2947 * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
2948 instructions to have branch prediction notes.
2949 * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
2951 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
2953 * configure.in: Don't pass -Wno-long-long to a ADA compiler
2954 that doesn't support it.
2955 * configure: Regenerate.
2957 2002-03-13 Jakub Jelinek <jakub@redhat.com>
2960 * config/sparc/sparc.md (normal_branch, inverted_branch,
2961 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
2962 inverted_fp_branch): Adjust calls to output_cbranch.
2963 Set length attribute.
2964 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
2965 output_v9branch. Set length attribute.
2966 * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
2968 (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
2969 (output_cbranch): Likewise. Handle far branches.
2970 (output_v9branch): Handle far branches.
2971 * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
2973 * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
2974 noov_compare64_op predicates.
2976 2002-03-13 Jason Merrill <jason@redhat.com>
2978 * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
2979 into the function and constify it.
2980 * gthr-dce.h, gthr-solaris.h: Likewise.
2982 2002-03-13 David Edelsohn <edelsohn@gnu.org>
2984 * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
2985 * config/rs6000/rs6000.c (rs6000_va_arg): Use
2986 std_expand_builtin_va_arg if not ABI_V4.
2988 2002-03-13 Jason Merrill <jason@redhat.com>
2990 * varasm.c (globalize_decl): New fn.
2991 (assemble_start_function): Use it.
2992 (asm_emit_uninitialized): Use it.
2993 (assemble_alias): Use it.
2994 (assemble_variable): Use it.
2996 2002-03-13 Hans-Peter Nilsson <hp@axis.com>
2998 * config/cris/cris.c (cris_target_asm_function_prologue): Revert
2999 2002-03-12 internal visibility change.
3000 (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3001 visibility into SYMBOL_REF_FLAG.
3003 2002-03-13 Ulrich Weigand <uweigand@de.ibm.com>
3005 * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3006 VOIDmode operand. Add compile-time optimization for constant results.
3008 2002-03-12 Jason Merrill <jason@redhat.com>
3010 * c-typeck.c (convert_for_assignment): Don't allow conversions
3011 between pointers and references. Only allow lvalues to convert to
3014 2002-03-13 Hartmut Penner <hpenner@de.ibm.com>
3016 * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3017 before prologue, to avoid scheduling problems.
3019 2002-03-13 Jakub Jelinek <jakub@redhat.com>
3021 * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3022 (ELIMINABLE_REGS): Add sfp->sp.
3023 (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3025 2002-03-13 Jakub Jelinek <jakub@redhat.com>
3027 PR optimization/5892
3028 * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3030 2002-03-13 Jakub Jelinek <jakub@redhat.com>
3032 * loop.c (basic_induction_var): Don't call convert_modes if mode
3033 classes are different.
3035 2002-03-12 Richard Henderson <rth@redhat.com>
3037 PR optimization/5901
3038 * function.c (reposition_prologue_and_epilogue_notes): Position
3039 the markers after/before the last/first insn not deleted.
3041 2002-03-12 Richard Henderson <rth@redhat.com>
3043 PR optimization/5878
3044 * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3045 config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3046 (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3048 * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3049 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3050 PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3052 * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3053 * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3054 (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3055 also. Don't set it if not flag_pic.
3056 * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3057 to be INVALID_REGNUM when not used.
3059 2002-03-13 Aldy Hernandez <aldyh@redhat.com>
3061 * expmed.c (store_bit_field): Reset alias set for memory.
3062 (extract_bit_field): Same.
3064 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3066 * c-common.c (c_tree_code_type, c_tree_code_length,
3067 c_tree_code_name, add_c_tree_codes): Delete.
3068 * c-common.h (add_c_tree_codes): Delete.
3069 * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3071 * c-objc-common.c (c_objc_common_init): Don't call
3072 add_c_tree_codes, instead set lang_unsafe_for_reeval.
3073 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3074 objc_tree_code_name, add_objc_tree_codes): Delete.
3075 (objc_init): Don't call add_objc_tree_codes.
3076 * objc/objc-lang.c (tree_code_type, tree_code_length,
3077 tree_code_name): Define.
3078 * toplev.c (lang_independent_init): Don't set
3079 tree_code_length[IDENTIFIER_NODE].
3080 * tree.c (tree_code_type, tree_code_length, tree_code_name):
3081 Delete definitions, moved to language front-ends.
3082 * tree.def (IDENTIFIER_NODE): Hardwire the length.
3083 * tree.h (tree_code_type, tree_code_length, tree_code_name):
3085 (tree_code_length): Change type to unsigned char.
3087 2002-03-12 Richard Henderson <rth@redhat.com>
3089 * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3090 internal visibility change.
3092 2002-03-12 Bob Wilson <bob.wilson@acm.org>
3094 * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3095 validize_mem() instead of change_address to avoid clobbering
3098 2002-03-12 Neil Booth <neil@daikokuya.demon.co.uk>
3100 * c-lex.h (position_after_whitespace): Remove.
3102 2002-03-12 Jakub Jelinek <jakub@redhat.com>
3104 * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3105 (lex_string): Use unsigned char pointers.
3107 2002-03-12 Ulrich Weigand <uweigand@de.ibm.com>
3109 * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3110 is not a valid memory_operand.
3112 2002-03-12 Bob Wilson <bob.wilson@acm.org>
3114 * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3115 * config/xtensa/lib1funcs.asm: Fix copyright to include
3116 special case for libgcc files.
3117 (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3118 (__divsi3): Likewise.
3119 (__umodsi3): Likewise.
3120 (__modsi3): Likewise.
3121 * config/xtensa/lib2funcs.S: Fix copyright to include
3122 special case for libgcc files.
3124 2002-03-12 Tom Rix <trix@redhat.com>
3126 * collect2.c (resolve_lib_name): Move outside of
3127 OBJECT_FORMAT_COFF ifdef.
3128 (ignore_library): Same.
3130 2002-03-12 Bob Wilson <bob.wilson@acm.org>
3132 * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3134 2002-03-12 Bob Wilson <bob.wilson@acm.org>
3136 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3137 to function_section before writing out the constant pool.
3139 2002-03-12 David Edelsohn <edelsohn@gnu.org>
3141 * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3143 * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3145 2002-03-12 Alan Modra <amodra@bigpond.net.au>
3147 * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3151 (cmpsi splitter): Likewise.
3152 (modsi3): Fail if <= 0.
3153 * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3154 redundant test when HOST_BITS_PER_WIDE_INT != 32.
3155 (reg_or_sub_cint64_operand): Likewise.
3156 (num_insns_constant_wide): Optimize sign extension.
3157 (rs6000_legitimize_address): Likewise.
3159 2002-03-12 Andrew MacLeod <amacleod@redhat.com>
3161 * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3162 * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3164 2002-03-12 Andrew MacLeod <amacleod@redhat.com>
3166 * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3167 address calculation.
3169 2002-03-12 Ulrich Weigand <uweigand@de.ibm.com>
3171 * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3172 scratch register to DImode / TImode.
3173 config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3174 register used does not overlap the target.
3176 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3178 * Makefile.in (debug.o): Depend on debug.h.
3179 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3180 * debug.c (do_nothing_debug_hooks): Likewise.
3181 * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3182 sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3183 dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3184 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3185 * dwarfout.c (dwarf_debug_hooks): Likewise.
3186 * integrate.c (output_inline_function): Likewise.
3187 * objc/objc-act.c (synth_module_prologue): Likewise.
3188 * sdbout.c (sdb_debug_hooks): Likewise.
3189 * toplev.c (debug_hooks): Likewise.
3190 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3192 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3194 * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3195 dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3196 m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3197 ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3198 v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3199 * defaults.h (POINTER_SIZE): Define.
3200 * doc/tm.texi (POINTER_SIZE): Document default.
3202 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3204 * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3206 2002-03-11 Richard Henderson <rth@redhat.com>
3208 * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3209 if rebuild_label_notes_after_reload.
3211 2002-03-12 Hans-Peter Nilsson <hp@axis.com>
3213 * config/cris/cris.c (cris_target_asm_function_prologue): Do not
3214 emit pic register load if "internal" visibility.
3215 (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3216 (cris_expand_builtin_va_arg): Do all computations on trees.
3218 2002-03-11 Richard Henderson <rth@redhat.com>
3220 * rtlanal.c: Include recog.h.
3221 (keep_with_call_p): Fix thinko.
3222 * Makefile.in (rtlanal.o): Update dependencies.
3224 2002-03-11 Chris Meyer <cmeyer@gatan.com>
3226 * genflags.c (gen_insn): Use IS_VSPACE.
3227 * genoutput.c (output_insn_data): Likewise.
3228 (process_template): Likewise.
3230 2002-03-11 Richard Henderson <rth@redhat.com>
3232 * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3234 2002-03-11 Neil Booth <neil@daikokuya.demon.co.uk>
3236 * Makefile.in: Update.
3237 * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3238 Update documentation.
3239 * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3240 * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3242 2002-03-11 Zack Weinberg <zack@codesourcery.com>
3244 * Makefile.in: Give texi2pod its input file as a command line
3245 argument, not on stdin.
3247 2002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
3248 Daniel Berlin <dan@dberlin.org>
3250 C++ alias analysis improvement.
3251 * alias.c (record_component_aliases): Record aliases for base
3254 2002-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3256 * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3258 2002-03-11 Douglas B Rupp <rupp@gnat.com>
3260 * toplev.c (vms_fopen): Remove, not needed.
3262 * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3264 * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3266 * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3267 for FP, already done later.
3269 * toplev.c (debug_args): Add entry for VMS_DEBUG.
3270 * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3272 2002-03-11 Richard Sandiford <rsandifo@redhat.com>
3274 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3275 (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3276 LARGEST_EXPONENT_IS_NORMAL for the given mode.
3277 (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3278 * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3279 (ediv, emul, eldexp, esqrt): Likewise.
3280 (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3281 (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3282 (saturate): New function.
3283 (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3284 (make_nan): Use a saturation value instead of a NaN if
3285 LARGEST_EXPONENT_IS_NORMAL. Warn when this happens.
3286 * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3287 inputs if LARGEST_EXPONENT_IS_NORMAL. Represent subnormals as
3288 zero if NO_DENORMALS. Only round to nearest if !ROUND_TOWARDS_ZERO.
3289 (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3290 (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3291 !ROUND_TOWARDS_ZERO.
3292 * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3293 (ROUND_TOWARDS_ZERO): Document.
3295 2002-03-11 Andreas Jaeger <aj@suse.de>
3297 * cfg.c (dump_flow_info): Remove unused variable.
3299 2002-03-11 Hans-Peter Nilsson <hp@bitrange.com>
3301 * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3302 computations on trees.
3304 2002-03-10 Richard Henderson <rth@redhat.com>
3307 * reload.c (copy_replacements_1): New.
3308 (copy_replacements): Use it to recurse through the rtx.
3310 2002-03-10 Richard Henderson <rth@redhat.com>
3312 * loop.c (strength_reduce): Compute number of iterations as
3313 unsigned HOST_WIDE_INT.
3315 2002-03-10 Richard Henderson <rth@redhat.com>
3317 * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
3318 to move away from the end of the block.
3320 2002-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
3322 PR preprocessor/5899
3323 * cppinit.c (init_dependency_output): Don't ignore -dM etc.
3325 2002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3327 * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
3329 * attribs.c (decl_attributes): Fix signed/unsigned warning.
3331 2002-03-10 Hans-Peter Nilsson <hp@bitrange.com>
3333 * config/mmix/mmix.c: Improve comments.
3334 (mmix_target_asm_function_prologue): Drop variable
3335 empty_stack_frame. Don't allocate unused slot above fp.
3336 (mmix_target_asm_function_epilogue): Mirror prologue changes.
3337 * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
3338 brace in first column.
3339 (enum reg_class): Ditto.
3340 (FIRST_PARM_OFFSET): Now 0.
3341 (USER_LABEL_PREFIX): Remove #if 0:d definition.
3343 2002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3345 * combine.c (make_extraction): Fix error in last change.
3347 2002-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3349 * c4x.c (c4x_fp_reglist): Const-ify.
3350 * cris.c (cris_print_operand): Likewise.
3351 * i386.c (ix86_va_arg): Likewise.
3352 * ia64/unwind-ia64.c (unw_decode_table): Likewise.
3353 * m32r.c (m32r_hard_regno_mode_ok): Likewise.
3354 * m32r.h (m32r_hard_regno_mode_ok): Likewise.
3355 * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
3356 * mcore.h (regno_reg_class): Likewise.
3357 * mips.c (gen_int_relational): Likewise.
3358 * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
3359 * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
3360 * pdp11.c (move_costs): Likewise.
3361 * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
3362 * s390.c (s390_branch_condition_mnemonic, regclass_map):
3364 * s390.h (regclass_map): Likewise.
3365 * sh.c (shift_amounts): Likewise.
3366 * sh.md (rotlsi3): Likewise.
3368 2002-03-09 Geoffrey Keating <geoffk@redhat.com>
3370 * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
3371 (ne0+5): Use new clobber to generate proper shift pattern.
3372 Patch by Michael Matz <matz@kde.org>.
3374 2002-03-09 Andreas Schwab <schwab@suse.de>
3376 * gcc.c (validate_all_switches): Also handle `%W{...}'.
3378 2002-03-09 Geoffrey Keating <geoffk@redhat.com>
3380 * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
3382 2002-03-09 Jakub Jelinek <jakub@redhat.com>
3385 * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
3386 even for non-representable constants.
3388 Sat Mar 9 07:20:01 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3390 * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
3391 * function.c (fixup_var_refs): Add MAY_SHARE parameter.
3392 (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
3393 (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
3394 (pop_function_context): Compute MAY_SHARE parameter for
3396 (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
3397 (gen_mem_addressof): Call fixup_var_refs with new parm.
3399 * combine.c (make_extraction): Don't make extension of CONST_INT.
3401 2002-03-09 Alexandre Oliva <aoliva@redhat.com>
3403 * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
3404 in o32 and o64 ABIs.
3405 * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
3406 but getting fixed-size structs passed in registers regardless of
3407 padding in o32 and o64 ABIs.
3409 * config/mips/mips.c (mips_va_arg): Apply big-endianness address
3410 offset before loading address of argument passed by transparent
3413 2002-03-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
3415 * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
3417 2002-03-09 Alexandre Oliva <aoliva@redhat.com>
3419 * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
3420 marker such that registers after it are saved.
3422 2002-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3424 * sparc.c (arith_4096_operand): Fix error in last change.
3426 2002-03-08 Alexandre Oliva <aoliva@redhat.com>
3428 * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
3431 2002-03-08 Aldy Hernandez <aldyh@redhat.com>
3433 * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
3436 2002-03-08 Aldy Hernandez <aldyh@redhat.com>
3438 * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
3440 Fri Mar 8 21:27:49 CET 2002 Jan Hubicka <jh@suse.cz>
3442 * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
3443 removed; fix return value.
3444 * combine.c (combine_instructions): Dirtify blocks where we failed to
3445 update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
3446 * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
3448 2002-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3450 * gcse.c (insert_insn_end_bb): Fix typo in last change.
3452 Fri Mar 8 21:08:52 CET 2002 Jan Hubicka <jh@suse.cz>
3454 * recog.c (peephole2_optimize): Re-distribute EH edges.
3456 2002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
3458 * expr.c (expand_expr): Use unsave lang hook.
3459 * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
3460 (LANG_HOOKS_INITIALIZER): Update.
3461 * langhooks.h (struct lang_hooks): New hook unsave.
3462 * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
3463 (unsave_expr_1): Remove unused lang_unsave_expr_now.
3464 (unsave_expr_now_r): Rename lhd_unsave. Update. Return input.
3465 (unsave_expr_now): Remove.
3466 * tree.h (unsave_expr_now, lang_unsave,
3467 lang_unsave_expr_now): Remove.
3470 2002-03-08 Andreas Jaeger <aj@suse.de>
3472 * flow.c (propagate_block_delete_insn): Remove unused variable.