OSDN Git Service

* configure.in (assembler dwarf2 debug_line support): Define insn
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-12  Hans-Peter Nilsson  <hp@axis.com>
2
3         Don't warn on dollars in builtin macro definitions,
4         e.g. __REGISTER_PREFIX__.
5         * cpphash.h (struct cpp_reader): Move member warn_dollars...
6         * cpplib.h (struct cpp_options): ...to here.  Change type to
7         unsigned char.
8         * cppinit.c (cpp_create_reader): Set it to 1 here.
9         (post_options): Don't set it here.
10         * c-opts.c (c_common_init_options): Reset it to 0 here.
11         (finish_options): Set it here.
12         * cpplex.c (forms_identifier_p): Tweak for new location of
13         warn_dollars.
14
15         * configure.in (assembler dwarf2 debug_line support): Define insn
16         for cris-*-* and mmix-*-*.
17         * configure: Regenerate.
18
19 2003-06-11  Uwe Stieber  <uwe@kaos-group.de>
20
21         * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
22         powerpcle-*-kaos*, strongarm-*-kaos*): New targets.
23         (sh-*-elf*): Add sh*-*-kaos* support.
24         * config/kaos.h, config/arm/kaos-strongarm.h, config/arm/kaos-arm.h,
25         config/i386/kaos-i386.h, config/rs6000/kaos-ppc.h,
26         config/sh/kaos-sh.h: New files.
27
28 2003-06-12  Kazu Hirata  <kazu@cs.umass.edu>
29
30         * gcse.c (fis_get_condition): Make it a global function.
31         * reload1.c (reload_cse_move2add): Detect implicit sets.
32         * rtl.h: Add a prototype for fis_get_condition.
33
34 2003-06-11  Richard Henderson  <rth@redhat.com>
35
36         * stmt.c (expand_asm_operands): Don't warn for memories with
37         queued addresses.
38
39 2003-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
40
41         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without
42         brackets.
43
44 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
45
46         * hooks.c (hook_int_size_t_constcharptr_int_0): New.
47         * hooks.h (hook_int_size_t_constcharptr_int_0): New.
48         * langhooks-def.h (lhd_decode_option, LANG_HOOKS_DECODE_OPTION): Die.
49         (LANG_HOOKS_HANDLE_OPTION, LANG_HOOKS_INITIALIZER): Update.
50         * langhooks.c (lhd_decode_option): Remove.
51         * langhooks.h (struct lang_hooks): Remove decode_option.
52         * opts.c (handle_option): No longer use decode_option.
53
54 2003-06-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
55
56         * cfgloopanal.c (variable_initial_value): Update the set of altered
57         registers correctly.
58
59 2003-06-11  Roger Sayle  <roger@eyesopen.com>
60             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
61
62         * config/d30v/d30v.h: Delete reference to ASM_FINAL_SPEC.
63         * config/i386/netbsd-elf.h: Likewise.
64         * config/m32r/m32r.h: Likewise.
65         * config/mn10300/mn10300.h: Likewise.
66         * config/stormy16/stormy16.h: Likewise.
67         * config/v850/v850.h: Likewise.
68         * config/vax/netbsd-elf.h: Likewise.
69         * config/xtensa/elf.h: Likewise.
70         * config/xtensa/linux.h: Likewise.
71
72 2003-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
73
74         * config/mips/iris5gas.h (MDEBUG_ASM_SPEC): Override to match
75         DWARF 2 default.
76
77         * config/mips/dbxmdebug.h: New file.
78         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it with
79         gas and --with-stabs.
80
81 2003-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
82
83         * expr.c (can_move_by_pieces): align argument may be unused.
84
85 2003-06-11  J"orn Rennecke <joern.rennecke@superh.com>
86
87         * expr.c (convert_move): Handle moves between two CONCATs.
88
89 2003-06-11  Kazu Hirata  <kazu@cs.umass.edu>
90
91         * config/h8300/h8300.h (RETURN_IN_MEMORY): Accept DImode if
92         !TARGET_H8300.
93
94 2003-06-11  Kazu Hirata  <kazu@cs.umass.edu>
95
96         * config/h8300/h8300.c (final_prescan_insn): Don't dump rtl.
97         * config/h8300/h8300.h (MASK_RTL_DUMP): Remove.
98         (TARGET_RTL_DUMP): Likewise.
99         (TARGET_SWITHCES): Remove -mrtl-dump.
100
101 2003-06-10  Richard Henderson  <rth@redhat.com>
102
103         * optabs.c (gen_cond_trap): Fix prepare_operand typo.
104
105 2003-06-10  Richard Henderson  <rth@redhat.com>
106
107         * config/ia64/ia64.md (call_gp): Fix memory mode.
108
109 2003-06-10  James E Wilson  <wilson@tuliptree.org>
110
111         PR target/8812
112         * reload1.c (choose_reload_regs): For equiv reg, add loop over all
113         hard regs for reload_reg_used_at_all and reg_class_contents checks.
114
115 2003-06-10  Kazu Hirata  <kazu@cs.umass.edu>
116
117         * config/h8300/h8300.c (print_operand): Remove support for
118         operand character 'b'.
119         Add the AND case to operand character 'c'.
120         * config/h8300/h8300.md (two anonymous patterns): Replace
121         operand character 'b' with 'c'.
122
123 2003-06-10  Kazu Hirata  <kazu@cs.umass.edu>
124
125         * config/h8300/h8300.c (print_operand): Remove support for
126         operand character 'u'.
127
128 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
129
130         * configure.in: Fix typo.
131         * configure: Regenerate.
132
133 2003-06-10  Loren James Rittle  <ljrittle@acm.org>
134
135         * config/alpha/alpha.c (unicosmk_file_end): Add conditional
136         compilation guard.
137
138 2003-06-10  J"orn Rennecke <joern.rennecke@superh.com>
139
140         * sh-protos.h (function_symbol): Declare.
141         * sh.c (expand_block_move, expand_ashiftrt): Use it.
142         (sh_expand_prologue, sh_expand_epilogue): Likewise.
143         (sh_initialize_trampoline): Likewise.
144         (function_symbol): New function.
145         * sh.md (udivsi3, divsi3, mulsi3, ic_invalidate_line): Use it.
146         (initialize_trampoline, call, call_pop, call_value, sibcall): Likewise.
147         (call_value_pop, shcompact_return_tramp): Likewise.
148
149         * sh.h (OVERRIDE_OPTIONS): Don't suppress --profile-arc-flag.
150
151         * sh.md (GOTaddr2picreg): Use gen_lowpart to get lowpart of
152         target register.
153
154 2003-06-10  DJ Delorie  <dj@redhat.com>
155
156         * doc/md.texi (Machine Constraints): Document stormy's Z
157         constraint.
158
159 2003-06-10  Geoffrey Keating  <geoffk@apple.com>
160
161         * except.c (call_site_base): Mark with GTY.
162
163 2003-06-10  Richard Earnshaw  <rearnsha@arm.com>
164
165         * arm-proto.h: Convert to ISO C90 prototypes.
166         * arm.c: Likewise.
167
168 2003-06-10  J"orn Rennecke <joern.rennecke@superh.com>
169
170         * sh.c (sh_output_mi_thunk): Call insn_locators_initialize.
171
172 2003-06-10  Steve Ellcey  <sje@cup.hp.com>
173
174         * calls.c (expand_call): Convert structure_value_addr to Pmode if
175         necessary.
176
177 2003-06-10  Andrew Haley  <aph@redhat.com>
178
179         * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
180         (LANG_HOOKS_DECLS): Add LANG_HOOKS_DECL_OK_FOR_SIBCALL.
181         (lhd_decl_ok_for_sibcall): New.
182         * langhooks.c (lhd_decl_ok_for_sibcall): New.
183         * langhooks.h (lang_hooks_for_decls.ok_for_sibcall): New field.
184         * calls.c (expand_call): Check lang_hook before generating a
185         sibcall.
186
187 2003-06-10  DJ Delorie  <dj@redhat.com>
188
189         * config/stormy16/stormy16.c (xstormy16_extra_constraint_p): Add Z,
190         which matches (const_int 0) for addhi3.
191         * config/stormy16/stormy16.md: Document known constraints.
192         (addhi3): Handle adding zero.
193
194 2003-06-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
195
196         * config/m32r/m32r.h (HARD_REGNO_RENAME_OK): New.
197         * config/m32r/m32r.c (m32r_hard_regno_rename_ok): New.
198         * config/m32r/m32r-protos.h: Prototype it.
199
200 2003-06-10  Janis Johnson  <janis187@us.ibm.com>
201
202         * config/rs6000/eabi.h (TARGET_OS_CPP_BUILTINS): Define builtins
203         common to rs6000 sysv targets.
204         * config/rs6000/eabisim.h (TARGET_OS_CPP_BUILTINS): Ditto.
205         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Ditto.
206
207 2003-06-10  Nick Clifton  <nickc@redhat.com>
208
209         * config.gcc: Add arm-wince-pe target.
210         * config/arm/pe.h (MULTILIB_DEFAULTS): Define.
211         Add comment about default apcs26 support.
212         * config/arm/t-pe (MULTILIB_OPTIONS): Add an -mapcs-32
213         multilib.
214         (MULTILIB_DIRNAMES): Add 'apcs32'.
215         * config/arm/t-wince-pe: New makefile fragment.
216         * config/arm/wince-pe.h: New file.  Overrides a few definitions
217         in arm/pe.h
218
219 2003-06-10  Roger Sayle  <roger@eyesopen.com>
220
221         * builtins.c (fold_builtin): Optimize cos(-x) as cos(x).
222         * fold-const.c (fold <NEGATE_EXPR>): Convert -f(x) into f(-x)
223         when x is easily negated and f is sin, tan or atan.
224         (fold <MULT_EXPR>): Optimize tan(x)*cos(x) and cos(x)*tan(x) as
225         sin(x) with flag_unsafe_math_optimizations.
226         (fold <RDIV_EXPR>): With flag_unsafe_math_optimizations fold
227         sin(x)/cos(x) as tan(x) and cos(x)/sin(x) as 1.0/tan(x).
228
229 2003-06-10  Roger Sayle  <roger@eyesopen.com>
230
231         * fold-const.c (fold <EQ_EXPR>):  Don't fold x == x only if x
232         is a floating point type *and* we currently honor NaNs.
233         (fold <NE_EXPR>): Likewise.
234
235 2003-06-10  Mark Mitchell  <mark@codesourcery.com>
236
237         PR c++/11131
238         * tree-inline.c (inlinable_function_p): Call the language-specific
239         hook early.
240
241 2003-06-09  David Taylor  <dtaylor@emc.com>
242
243         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_va_arg):  Skip over
244         the f_res field.
245
246 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
247
248         * configure.in: Remove references to host_truncate_target.
249         * configure: Regenerate.
250         * config.gcc: Remove references to truncate_target,
251         host_truncate_target.
252
253         * Makefile.in, configure.in, config/m68hc11/t-m68hc11-gas:
254         Replace "build_canonical" with build, "host_canonical" with host.
255         * configure.in: Use GCC_TOPLEV_SUBDIRS.
256         * aclocal.m4: Include ../config/acx.m4.
257         * configure: Regenerate.
258
259 2003-06-09  David Taylor  <dtaylor@emc.com>
260
261         * config/rs6000/rs6000.c (rs6000_build_va_list): Give the two
262         bytes of padding in the __va_list_tag structure a name (reserved).
263
264 2003-06-09  Jason Merrill  <jason@redhat.com>
265
266         * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR.
267
268 2003-06-09  Osku Salerma  <osku@iki.fi>
269
270         * c-format.c (check_format_string, get_constant): New.
271         (handle_format_attribute, handle_format_arg_attribute,
272         decode_format_attr): Change to use above functions.
273
274 2003-06-09  Richard Henderson  <rth@redhat.com>
275
276         * stmt.c (expand_asm_operands): Re-word warning.
277
278 2003-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
279
280         PR target/8787
281         * config/i386/djgpp.h (ASM_FILE_START): emit `.intel_syntax'
282         if -masm=intel.
283
284 2003-06-09  James E Wilson  <wilson@tuliptree.org>
285
286         * config/frv/cmovc.c, config/frv/cmovh.c, config/frv/cmovw.c,
287         config/frv/frvbegin.c, config/frv/frvend.c, config/frv/lib1funcs.asm:
288         Add libgcc exception.
289
290 2003-06-09  David Edelsohn  <edelsohn@gnu.org>
291             Ayal Zaks  <gcchaifa@us.ibm.com>
292
293         * config/rs6000/rs6000.md (define_attr "type"): Add insert_word.
294         (insvsi*): Add insert_word attribute.
295         * config/rs6000/rs6000.c (rs6000_variable_issue): Add TYPE_INSERT_WORD.
296         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
297         power4.md,rios1.md,rios2.md,rs64.md}: Add insert_word.
298
299 2003-06-09  Kazu Hirata  <kazu@cs.umass.edu>
300
301         * fold-const.c (fold): Fix a comment typo.
302
303 2003-06-09  Nathan Sidwell  <nathan@codesourcery.com>
304
305         * tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is
306         removed.
307
308 2003-06-09  J"orn Rennecke <joern.rennecke@superh.com>
309
310         * sh.c (gen_block_redirect): Use locators.
311
312 2003-06-09  Richard Earnshaw  <rearnsha@arm.com>
313
314         * arm.h (THUMB_PRINT_OPERAND_ADDRESS): Use %wd in format and remove
315         cast to int.
316
317 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
318
319         * configure.in: Assume gas 2.14 and above can handle MIPS relocation
320         operators.
321         * configure: Regenerated.
322
323 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
324             Alexandre Oliva  <aoliva@redhat.com>
325
326         * config/mips/mips.h (GLOBAL_POINTER_REGNUM): New macro.
327         (PIC_OFFSET_TABLE_REGNUM): Look at pic_offset_table_rtx after reload.
328         (STARTING_FRAME_OFFSET): Don't allocate a cprestore slot for
329         n32/64 PIC.
330         (MUST_SAVE_REGISTERS): Delete.
331         * config/mips/mips.c (mips_frame_info): Remove extra_size field.
332         (machine_function): Add global_pointer field.
333         (mips_classify_constant): Check for (const $gp) using pointer equality
334         with pic_offset_table_rtx.
335         (mips_classify_constant): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
336         (mips_restore_gp): Use current_function_outgoing_args_size.
337         (print_operand): Use PIC_OFFSET_TABLE_REGNUM instead of
338         GP_REG_FIRST + 28.  Handle relocation strings that have
339         more than one '('.
340         (mips_reloc_string): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
341         (mips_global_pointer): New function.
342         (mips_save_reg_p): New function, mostly split out from...
343         (compute_frame_size): ...here.  Remove handling of extra_size.
344         Reclaim args_size if no variables depend on it.  Don't treat gp
345         as a special case: handle it in the main GPR loop.
346         (mips_initial_elimination_offset): Fix comment.
347         (save_restore_insns): Save every register in the GPR mask,
348         removing distinction between mask and real_mask.
349         (mips_output_function_prologue): Update .frame psuedo-op after
350         the removal of extra_size.  Move the SVR4 PIC stack allocation
351         and cprestore instructions to mips_expand_prologue.
352         (mips_gp_insn): New function.
353         (mips_expand_prologue): Set REGNO (pic_offset_table_rtx) to
354         the chosen global pointer.  Handle SVR4 PIC stack allocation
355         in the same way as other ABIs.  Adjust varargs code accordingly.
356         Emit a cprestore insn after allocating the stack.  Use mips_gp_insn
357         to emit the loadgp sequence.  Follow it with a loadgp_blockage
358         if not using explicit relocs.
359         (mips_output_function_epilogue): Reinstate the default gp register.
360         (mips16_gp_pseudo_reg): Use pic_offset_table_rtx.
361         (mips16_optimize_gp): Likewise.
362         * config/mips/mips.md (UNSPEC_LOADGP): Remove.
363         (UNSPEC_SETJMP, UNSPEC_LONGJMP): Remove.
364         (UNSPEC_CPRESTORE, RELOC_LOADGP_HI, RELOC_LOADGP_LO): New.
365         (loadgp): Remove.
366         (loadgp_blockage, cprestore): New instructions.
367         (builtin_setjmp_setup): Implement using emit_move_insn.  Use
368         pic_offset_table_rtx.
369         (builtin_setjmp_setup_32, builtin_setjmp_setup_64): Remove.
370         (builtin_longjmp): Use gen_raw_REG to force use of $28.
371
372 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
373
374         * config/mips/mips-protos.h (mips_output_division): Declare.
375         * config/mips/mips.h (MASK_CHECK_RANGE_DIV): Remove.
376         (MASK_BRANCHLIKELY): Use MASK_CHECK_RANGE_DIV's old number.
377         (TARGET_NO_CHECK_ZERO_DIV, TARGET_CHECK_RANGE_DIV): Remove.
378         (TARGET_CHECK_ZERO_DIV): New macro.
379         (TARGET_SWITCHES): Remove -mcheck-range-div & -mno-check-range-div.
380         * config/mips/mips.c (mips_output_division): New function.
381         * config/mips/mips.md (length): Take TARGET_CHECK_ZERO_DIV into
382         account when calculating the default length of a division.
383         (divmodsi4, divmoddi4, udivmodsi4, udivmoddi4): Turn into define_insns.
384         Enable regardless of optimization level.  Use mips_output_division.
385         (divmodsi4_internal, divmoddi4_internal, udivmodsi4_internal,
386         udivmoddi4_internal, div_trap, div_trap_normal, div_trap_mips16,
387         divsi3, divsi3_internal, divdi3, divdi3_internal, modsi3,
388         modsi3_internal, moddi3, moddi3_internal, udivsi3, udivsi3_internal,
389         udivdi3, udivdi3_internal, umodsi3, umodsi3_internal, umoddi3,
390         umoddi3_internal): Remove.
391
392 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
393
394         * config/mips/mips.c (mips_reg_names): Change hilo entry to "".
395         (mips_sw_reg_names): Likewise.
396         (mips_regno_to_class): Change hilo entry to NO_REGS.
397         (hilo_operand): Use MD_REG_P.
398         (extend_operator): New predicate.
399         (override_options): Remove 'a' constraint.
400         (mips_secondary_reload_class): Remove hilo handling.  Also remove
401         handling of (plus sp reg) reloads for mips16.
402         (mips_register_move_cost): Remove hilo handling.
403         * config/mips/mips.h (FIXED_REGISTERS): Make hilo entry fixed.
404         (MD_REG_LAST): Remove hilo from range.
405         (HILO_REGNUM): Delete.
406         (reg_class): Remove HILO_REG and HILO_AND_GR_REGS.
407         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
408         (PREDICATE_CODES): Add entry for extend_operator.
409         (DEBUG_REGISTER_NAMES): Change hilo entry to "".
410         * config/mips/mips.md: Remove hilo clobbers wherever they occur.
411         Remove constraints from multiplication define_expands.  Remove
412         clobbers from "decorative" define_expand patterns.
413         (UNSPEC_HILO_DELAY): Delete.
414         (*mul_acc_si, *mul_sub_si): Add early-clobber to operand 6.
415         (mulsidi3, umulsidi3): Change pattern to match the TARGET_64BIT case.
416         Adjust C code to just emit insns for !TARGET_64BIT.
417         (mulsidi3_internal): Rename to mulsidi3_32bit.
418         (mulsidi3_64bit): Use a "d" constraint for the destination.
419         Use extend_operator so that the pattern can handle umulsidi3 as well.
420         Split the instruction after reload.
421         (*mulsidi3_64bit_parts): New pattern, generated by mulsidi3_64bit.
422         (umulsidi3_internal): Rename to umulsidi3_32bit.
423         (umulsidi3_64bit): Remove.
424         (*smsac_di, *umsac_di): Line-wrap fixes.
425         (udivsi3_internal): Don't allow operand 2 to be constant.
426         (udivdi3_internal, umodsi3_internal, umoddi3_internal): Likewise.
427         (movdi_internal2, movsi_internal): Remove hilo alternatives.
428         (reload_in[sd]i, reload_out[sd]i, hilo_delay): Remove.
429
430 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
431
432         PR target/10913
433         * config/mips/mips.h (TARGET_FILE_SWITCHING, NO_DBX_FUNCTION_END,
434         PUT_SDB_SCL, PUT_SDB_INT_VAL, PUT_SDB_VAL, PUT_SDB_ENDEF,
435         PUT_SDB_TYPE, PUT_SDB_SIZE, PUT_SDB_DIM, PUT_SDB_START_DIM,
436         PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM, PUT_SDB_TAG, PUT_SDB_SRC_FILE,
437         SDB_GENERATE_FAKE, TEXT_SECTION): Delete.
438         (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF, PUT_SDB_BLOCK_START,
439         PUT_SDB_BLOCK_END, PUT_SDB_FUNCTION_END): Replace use of
440         asm_out_text_file with asm_out_file.
441         * config/mips/iris5gas.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Likewise.
442         * config/mips/elf.h (TEXT_SECTION): Undefine.
443         * config/mips/elf64.h (TEXT_SECION): Undefine.
444         * config/mips/openbsd.h (TEXT_SECION): Undefine.
445         * config/mips/mips.c (asm_out_text_file, asm_out_data_file): Delete.
446         (override_options): Disable small-data optimizations unless using
447         gas or explicit relocations.
448         (mips_asm_file_start, mips_asm_file_end, mips_output_function_epilogue,
449         iris6_asm_named_section, iris6_asm_file_start): Remove code for
450         handling TARGET_FILE_SWITCHING.
451         (copy_file_data): Move into TARGET_IRIX6 block.
452
453 2003-06-08  Richard Henderson  <rth@redhat.com>
454
455         * expr.h (EXPAND_MEMORY): New.
456         * expr.c (expand_expr): Check it.
457         * stmt.c (expand_asm_operands): Provide it when the constraint
458         requires a memory.  Warn for memory input constraints without
459         a memory operand.
460
461 2003-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
462
463         * varasm.c: Don't include c-tree.h.
464
465 2003-06-08  Andreas Jaeger  <aj@suse.de>
466
467         * predict.h: Convert to ISO C90 prototypes.
468         * predict.c: Likewise.
469         * tree-dump.h: Likewise.
470         * tree-dump.c: Likewise.
471         * diagnostic.h: Likewise.
472         * diagnostic.c: Likewise.
473         * combine.c: Likewise.
474
475         * rtl.h: Convert prototypes of combine.c to ISO C90.
476
477 Sun Jun  8 21:27:41 CEST 2003  Jan Hubicka  <jh@suse.cz>
478
479         * cfglayout.c (insn_scope): New static function
480         (block_locators_*, line_locators*, file_locators*): New static varrays.
481         (scope_to_insns_initialize): Use them.
482         (insn_line, insn_file): New functions.
483         (scope_to_insns_finalize): Use insn_scope.
484         (prologue_locator, epilogue_locator): New global variables.
485         * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
486         make_call_insn_raw, emit_copy_of_insn_after): Use locators.
487         (emit_insn_after_scope, emit_insn_before_scope
488         emit_jump_insn_after_scope, emit_jump_insn_before_scope
489         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
490         (emit_insn_after_setloc, emit_insn_before_setloc
491         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
492         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
493         use locators.
494         * final.c (notice_source_line): Use locators.
495         (final_start_function): Set initial source file and line.
496         (final_scan_insn): Use locators.
497         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
498         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
499         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
500         noce_process_if_block, find_cond_trap): Likewise.
501         * integrate.c (copy_insn_list): Likewise.
502         * jump.c (duplicate_loop_exit_test): LIkewise.
503         * print-rtl.c (print_rtx): Print locators.
504         * recog.c (peephole2_optimize): Likewise.
505         * rtl.h (INSN_SCOPE): Remove.
506         (emit_insn_after_scope, emit_insn_before_scope
507         emit_jump_insn_after_scope, emit_jump_insn_before_scope
508         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
509         (emit_insn_after_setloc, emit_insn_before_setloc
510         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
511         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
512         (insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
513         * unroll.c (copy_loop_body): Use locators.
514         * function.c (set_insn_locators): New function.
515         (thread_prologue_and_epilogue_insns): Set the locators accordingly.
516
517 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
518
519         * config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.
520         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf
521         _fixsfdi _fixunssfdi.
522         (LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2,
523         popcounthi2.
524         (TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI.
525         * config/h8300/clzhi2.c: New.
526         * config/h8300/ctzhi2.c: Likewise.
527         * config/h8300/parityhi2.c: Likewise.
528         * config/h8300/popcounthi2.c: Likewise.
529
530 Sun Jun  8 15:52:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
531
532         * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates.
533         * i386.c (k8_avoid_jump_misspredicts): Fix debug output.
534
535         * cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here.
536         (dump_bb): New based on old dump_bb in cfgrtl.c
537         (debug_bb, debug_bb_n): Move the functions from cfgrtl.c here.
538         * cfghooks.h (cfgh_verify_flow_info): Return status.
539         * cfglayout.c (cfg_layout_finalize): Verify CFG correctness.
540         * cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c
541         (dump_bb): Remove generic parts.
542         (rtl_verify_flow_info_1): Break out from rtl_verify_flow_info.
543         (rtl_verify_flow_info): Only check things dependeing on linearized RTL.
544
545 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
546
547         * Makefile.in: Rename options.c and options.h to c-options.c and
548         c-options.h.
549         (OBJS): Remove options.o.
550         * c-opts.c: Don'tInclude c-options.h instead of options.h.
551         * opts.c: Don't include options.h.
552         (find_opt): Can't use enum opt_code or N_OPTS.
553         * opts.h (struct cl_option, cl_options, cl_options_count): Move from...
554         * opts.sh: ... here.
555
556 2003-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
557             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
558
559         PR pch/9830
560         * ggc-common.c (HAVE_MMAP_FILE): Include sys/types.h
561         if HAVE_MINCORE is defined.
562         (MAP_FAILED): Define if not defined.
563         (gt_pch_save): Test against MAP_FAILED.
564         (gt_pch_restore): If HAVE_MINCORE, use MAP_FIXED to force
565         the mapping address to the preferred base after checking it
566         is possible to do so. Test against MAP_FAILED.
567         * configure.in: Test for the presence of mincore in libc.
568         * config.in: Regenerate.
569         * configure: Regenerate.
570
571 2003-06-07  Richard Henderson  <rth@redhat.com>
572
573         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Fix
574         conditional compilation guard.
575
576 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
577
578         * optabs.c (expand_abs): Set result_unsignedp to 1 if
579         flag_trav is zero.
580
581 2003-06-07  Richard Henderson  <rth@redhat.com>
582
583         * c-cppbuiltin.c (c_cpp_builtins): Define __EXCEPTIONS for C also.
584
585 2003-06-07  Richard Henderson  <rth@redhat.com>
586
587         * basic-block.h (EDGE_SIBCALL): New.
588         (EDGE_ALL_FLAGS): Update.
589         * cfg.c (dump_edge_info): Add sibcall name.
590         * cfgbuild.c (make_edges): Use EDGE_SIBCALL.
591         * cfgrtl.c (purge_dead_edges): Handle sibcalls.
592
593 2003-06-07  Andreas Jaeger  <aj@suse.de>
594
595         * mklibgcc.in (lib2funcs): Remove _exit.
596         * libgcc2.c: Remove L_exit.
597         * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT.
598
599         * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY.
600
601         * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY.
602
603         * ggc.h: Convert to ISO C90 prototypes.
604         * ggc-none.c: Likewise.
605         * ggc-common.c: Likewise.
606         * ggc-page.c: Likewise.
607         * ggc-simple.c: Likewise.
608
609         * crtstuff.c: Remove undefined usage of INIT_SECTION_PREAMBLE.
610
611         * system.h: Poison INIT_SECTION_PREAMBLE.
612
613 2003-06-07  Zack Weinberg  <zack@codesourcery.com>
614
615         * config.gcc (with_cpu handling): Translate sparc64 in
616         $machine to --with-cpu=v9.
617         * config/alpha/alpha.c
618         (TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition.
619         (alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK.
620
621         * target.h: New hook asm_out.file_end.
622         * target.h: Update to match.  New hook macro TARGET_ASM_FILE_END.
623         * toplev.c (compile_file): Use targetm.asm_out.file_end.
624         * system.h: Poison ASM_FILE_END.
625         * varasm.c (file_end_indicate_exec_stack): New.
626         * output.h: Prototype it.
627         * doc/tm.texi: Document TARGET_ASM_FILE_END and
628         file_end_indicate_exec_stack.  Delete references to attasm.h.
629
630         * config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end.
631         (ASM_FILE_END): Delete; move code...
632         * config/darwin.c (darwin_file_end): Here; new function.
633         * config/darwin-protos.h: Prototype it.
634         * config/alpha/alpha.c (unicosmk_asm_file_end): Make static,
635         rename unicosmk_file_end.
636         * config/arm/aof.h (ASM_FILE_END): Delete; move code...
637         * config/arm/arm.c (aof_file_end): ... here; new static function.
638         Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER.
639         Make aof_dump_imports and aof_dump_pic_table static.
640         * config/avr/avr.c (asm_file_end): Rename avr_file_end, make static.
641         Set TARGET_ASM_FILE_END to avr_file_end.
642         * config/c4x/c4x.c (c4x_file_end): Make static.  Take no arguments.
643         Set TARGET_ASM_FILE_END to c4x_file_end.
644         * config/h8300/h8300.c (asm_file_end): Rename h8300_file_end,
645         make static. Take no arguments.  Set TARGET_ASM_FILE_END to
646         h8300_file_end.
647         * config/i370/i370.h (ASM_FILE_END): Delete; move code...
648         * config/i370/i370.c (i370_file_end): ... here; new static function.
649         Set TARGET_ASM_FILE_END to i370_file_end.
650          * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end.
651          Take no arguments.  Call file_end_indicate_exec_stack if
652          NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END.
653         * config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
654         Define NEED_INDICATE_EXEC_STACK to 0.
655         * config/i386/linux.h, config/i386/linux64.h: Redefine
656         NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END.
657         * config/i386/winnt.c (i386_pe_asm_file_end): Rename to
658         i386_pe_file_end.  Take no arguments.  Use ix86_file_end.
659         * config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to
660         ia64_hpux_file_end, make static.  Take no arguments.
661         * config/ip2k/ip2k.c (asm_file_start, asm_file_end,
662         commands_in_prologues, commands_in_epilogues): Delete.
663         (function_epilogue): Update to match.
664         * config/mips/mips.c (mips_asm_file_end): Rename mips_file_end,
665         make static.  Take no arguments.
666         (iris6_asm_file_end): Rename iris6_file_end, make static, use
667         mips_file_end, take no arguments.
668         Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as
669         appropriate.
670         * config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end,
671         make static, take no arguments. Set TARGET_ASM_FILE_END to
672         mmix_file_end.
673         * config/pa/pa.c (output_deferred_plabels): Make static, take
674         no arguments.  Set TARGET_ASM_FILE_END to output_deferred_plabels.
675         * config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it.
676         (ASM_FILE_END): Delete; move code...
677         * config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here;
678         new static function.
679
680         * config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h
681         * config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h:
682         Don't set ASM_FILE_END.
683         * config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h
684         * config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h
685         * config/sparc/linux64.h: Set TARGET_ASM_FILE_END to
686         file_end_indicate_exec_stack; don't set ASM_FILE_END.
687         * config/alpha/unicosmk.h, config/i386/cygming.h
688         * config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
689         * config/arm/arm-protos.h, config/alpha/alpha-protos.h
690         * config/avr/avr-protos.h, config/c4x/c4x-protos.h
691         * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
692         * config/ip2k/ip2k-protos.h, config/mips/mips-protos.h
693         * config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update.
694
695 Sat Jun  7 18:32:13 CEST 2003  Jan Hubicka  <jh@suse.cz>
696
697         * i386.h (OPTION_DEFAULT_SPECS): Avoid -mcpu default when -march is
698         specified.
699
700 Sat Jun  7 15:20:01 CEST 2003  Jan Hubicka  <jh@suse.cz>
701
702         * Makefile.in (stageprofile_build): Kill redundant target.
703         * i386.c (mdep_reorg): Don't pad jumps for Athlon.
704
705 2003-06-07  Andreas Jaeger  <aj@suse.de>
706
707         * doc/tm.texi (Costs): Remove DONT_REDUCE_ADDR documentation.
708
709         * config/avr/avr.h: Remove comment regarding DONT_REDUCE_ADDR.
710         * config/dsp16xx/dsp16xx.h: Likewise.
711         * config/i386/i386.h: Likewise.
712         * config/ip2k/ip2k.h: Likewise.
713
714 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
715
716         * Makefile.in (OJBS, c-opts.o): Update.
717         (c-options.c, c-options.h): Rename options.h and options.c.
718         (options.h): Rename options_.h.
719         (opts.o): New.
720         * c-common.h (c_common_handle_option): Replace c_common_decode_option.
721         (c_common_init_options): Update prototype.
722         * c-lang.c (c_init_options): Update prototype.
723         (LANG_HOOKS_HANDLE_OPTION): Override.
724         (LANG_HOOKS_DECODE_OPTION): Drop.
725         * c-opts.c: Include opts.h and options.h instead of c-options.h
726         and c-options.c.
727         (lang_flags): Move to file scope.
728         (find_opt, c_common_decode_option): Remove.
729         (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE,
730         CL_REJECT_NEGATIVE): Move to opts.h.
731         (missing_arg): Update prototype.
732         (c_common_init_options): Update for new prototype.
733         (c_common_handle_options): Filenames are passed as N_OPTS.
734         * hooks.c (hook_int_void_0): New.
735         * hooks.h (hook_int_void_0): New.
736         * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default.
737         (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now.
738         (LANG_HOOKS_INITIALIZER): Update.
739         * langhooks.h (init_options): Update.
740         (handle_option): New.
741         * opts.c, opts.h: New files.
742         * opts.sh: Update c file to include opts.h and options.h.
743         * toplev.c: Include opts.h; change options.h to options_.h.
744         (parse_options_and_default_flags): Get lang_mask, use
745         handle_option for language-specific handling.
746         * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
747         (LANG_HOOKS_HANDLE_OPTION): Override.
748         (objc_init_options): Update.
749
750 2003-06-07  Magnus Kreth <magnus.kreth@gmx.de>
751             Thibaud Gaillard <thibaud.gaillard@nto.atmel.com>
752
753         PR other/7031
754         * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of
755         gcov.
756
757 2003-06-07  Kelley Cook  <kelleycook@wideopenwest.com>
758
759         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
760         section names.
761         * configure: Regenerate.
762
763 2003-06-07  Alan Modra  <amodra@bigpond.net.au>
764
765         * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
766
767 2003-06-06  James E Wilson  <wilson@tuliptree.org>
768
769         PR inline-asm/10890
770         * reload1.c (merge_assigned_reloads): Abort only if two reloads have
771         different in fields.
772
773 2003-06-06  Nathanael Nerode  <neroden@gcc.gnu.org>
774
775         * configure.in: Make $(target_subdir) correspond with top level usage.
776         * Makefile.in: Likewise.
777         * configure: Regenerate.
778
779 2003-06-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
780
781         * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
782         ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
783         unsigned HOST_WIDE_INT.
784         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
785         Likewise.
786         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
787         Likewise.
788
789 2003-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
790
791         * doc/install.texi (Prerequisites): New section documenting
792         tools and packages necessary prior to building and/or
793         modifying GCC.
794         * doc/install.texi2html: Also generate prerequisites.html.
795
796 2003-06-06  Richard Earnshaw  <rearnsha@arm.com>
797
798         PR target/11052
799         * ifcvt.c (noce_process_if_block): Fail if the destination has
800         side-effects.
801
802 2003-06-06  Jason Merrill  <jason@redhat.com>
803
804         * stmt.c (resolve_asm_operand_names): Rename from
805         resolve_operand_names.  No longer static.  Avoid needless copying.
806         Don't build array of constraints.
807         (expand_asm_operands): Build it here.
808         * tree.h: Declare resolve_asm_operand_names.
809
810         * stmt.c (expand_decl): Put artificial vars into registers even
811         when not optimizing, and don't mark the regs as user vars.
812
813 2003-06-06  J"orn Rennecke <joern.rennecke@superh.com>
814
815         * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
816         of the generated register.
817
818 2003-06-06  Daniel Jacobowitz  <drow@mvista.com>
819
820         * config.gcc: Add a missing sparc64 case.
821
822 2003-06-06  Jakub Jelinek  <jakub@redhat.com>
823
824         * mklibgcc.in: Propagate .note.GNU-stack section if needed into
825         the .hidden assembly stubs.
826
827 2003-06-06  H.J. Lu <hongjiu.lu@intel.com>
828
829         * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
830         and x86_64-*-*.
831
832         * config/i386/mmintrin.h: Update version and add alternate
833         intrinsic names.
834         * config/i386/xmmintrin.h: Likewise.
835
836         * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
837         intrinsics to ...
838         * config/i386/emmintrin.h: Here. New file.
839
840 2003-06-06  Roger Sayle  <roger@eyesopen.com>
841
842         * fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
843         fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
844         when the ABS_EXPR (fabs or abs) is not required.
845         (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
846         always nonnegative from fold to here.  Additionally, cabs and fabs
847         are always non-negative, and pow and atan are non-negative if
848         their first argument is non-negative.
849
850         * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
851         Evaluate cabs of a constant at compile-time.  Convert cabs of a
852         non-complex argument into fabs.  Convert cabs(z) into
853         sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
854         -funsafe-math-optimizations or -ffast-math.
855         (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
856         Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
857
858 Thu Jun  5 20:51:09 CEST 2003  Jan Hubicka  <jh@suse.cz>
859
860         * sourcebuild.texi (Front End Directory): Document new hooks.
861
862 Fri Jun  6 11:02:35 CEST 2003  Jan Hubicka  <jh@suse.cz>
863
864         * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
865         * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
866         stack frames.
867         (pro_epilogue_adjust_stack_rex64_2): New pattern
868
869 Fri Jun  6 11:03:14 CEST 2003  Jan Hubicka  <jh@suse.cz>
870                                Pop Sebastian
871                                Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
872
873         * cfghooks.h, cfghooks.c: New files.
874         * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
875         (OBJS): Add cfghooks.o.
876         (cfghooks.o): New rule.
877         * basic-block.h (split_edge): Rename to rtl_split_edge.
878         (verify_flow_info): Rename to rtl_verify_flow_info.
879         (cfghooks.h): Included here.
880         * cfgrtl.c (split_edge): Renamed rtl_split_edge.
881         (verify_flow_info): Renamed rtl_verify_flow_info.
882         * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
883
884         * basic-block.h (split_block, split_edge, flow_delete_block,
885         redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
886         (flow_delete_block_noexpunge):  Return void.
887         * cfg.c (verify_flow_info): New function.
888         * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
889         try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
890         Use delete_block.
891         * cfglayout.c (function_footer): Rename to...
892         (cfg_layout_function_footer): ... this variable
893         (unlink_insn_chain): Make global.
894         (fixup_reorder_chain, record_effective_endpoints): Update.
895         (cleanup_unconditional_jumps): Use delete_block.
896         (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
897         (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
898         (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
899         * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
900         (cfg_layout_function_footer): Declare.
901         * cfgloopmanip (split_loop_bb): Do not update RBI.
902         (remove_bbs): Use delete_block.
903         (loop_reidrect_edge, loop_delete_branch_edge): Use
904         redirect_edge_and_branch.
905         (create_preheader): Use split_block and redirect_edge_and_branch_force.
906         (split_edge_with): Likewise.
907         * cfgrtl.c: Include cfglayout.h
908         (split_edge): Rename to ...
909         (rtl_split_edge) ... this one; make local.
910         (redirect_edge_and_branch): Rename to ...
911         (rtl_redirect_edge_and_branch) ... this one; make local.
912         (redirect_edge_and_branch_force): Rename to ...
913         (rtl_redirect_edge_and_branch_force) ... this one; make local.
914         (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
915         (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
916         cfglayout.c; update to directly call RTL counterparts.
917         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
918         * ifcvt.c (find_cond_trap): Use delete_block.
919         (find_if_case_1): Use delete_block.
920         (find_if_case_2): Use delete_block.
921         * rtl.h (unlink_insn_chain): Declare.
922         * toplev.c (rtl_reigster_cfg_hooks): New.
923
924 2003-06-05  Richard Henderson  <rth@redhat.com>
925
926         * recog.c (peephole2_optimize): Revert last change.
927
928 2003-06-05  Richard Henderson  <rth@redhat.com>
929
930         * recog.c (peephole2_optimize): Don't split block unless
931         can_throw_internal.
932
933 2003-06-06  Kazu Hirata  <kazu@cs.umass.edu>
934
935         * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
936         * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
937
938 2003-06-05  Kelley Cook  <kelleycook@wideopenwest.com>
939
940         PR optimization/4490
941         * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
942         * doc/invoke.texi (m96bit-long-double, m128bit-long-double):  Reword
943         documentation to accurately reflect what these options do.
944
945 2003-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
946
947         * config/sh/linux.h (STARTFILE_SPEC): Handle -pie.  Simplify.
948         (ENDFILE_SPEC): Redefine to handle -pie.
949
950 2003-06-05  Phil Edwards <phil@jaj.com>
951
952         * Makefile.in (qmtest-g++): Use target_alias, not target.
953
954 2003-06-05  Per Bothner  <pbothner@apple.com>
955
956         * toplev.c (push_srcloc):  Simplify behavior to save current location
957         and set current location to parameters.
958         (pop_srcloc):  Simplify semantics.
959         (lang_dependent_init):  Remove now-useless initial push_srcloc.
960
961 2003-05-06  Richard Henderson  <rth@redhat.com>
962
963         * dwarf2out.c (loc_descriptor_from_tree): Return 0 for
964         language-specific tree codes.
965
966 2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
967
968         PR middle-end/9986
969         * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
970         BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
971
972 Thu Jun  5 18:32:46 CEST 2003  Jan Hubicka  <jh@suse.cz>
973
974         * install.tex: Document profiledbootstrap.
975
976         * configure.in:  Add support for lang.stageprofile and
977         lang.stagefeedback
978         * Makefile.in (clean, distclean): Kill new stages
979         (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
980         (STAGE2_FLAGS_TO_PASS): ... this one.
981         (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
982         (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
983         (stageprofile_build, stageprofile_copy, stagefeedback_build,
984         stagefeedback_copy): New.
985         (restageprofile, restagefeedback, stageprofile-start,
986         stageprofile, stagefeedback-start): Likewise.
987
988 2003-06-05  David Miller  <davem@redhat.com>
989             Richard Henderson  <rth@redhat.com>
990
991         * optabs.c (HAVE_conditional_trap): Provide default.
992         (gen_conditional_trap): Likewise.
993         (init_optabs): Merge init_traps.
994         (gen_cond_trap): Use prepare_operand.  Restructure and avoid ifdef.
995
996 Thu Jun  5 14:59:44 CEST 2003  Jan Hubicka  <jh@suse.cz>
997
998         * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
999         is REG for nonzero_bits (REG) == 8.
1000
1001 Thu Jun  5 13:23:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
1002
1003         * i386.md (align): Fix warning; clarify what to do when no p2align
1004         is available.
1005
1006 2003-06-05  Nick Clifton  <nickc@redhat.com>
1007
1008         * config.gcc (m32r-elf): Revert previous delta.
1009         * config/m32r/t-m32r (crtinit.o): Fix rule to work with
1010         multilibs.  Remove m32rx specific version.
1011         (crtfini.o): Likewise.
1012         (EXTRA_MULTILIB_PARTS): Define.
1013
1014 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1015
1016         * doc/md.texi (Machine Constraints): Correct the meaning of
1017         constraints related to floating-point registers on SPARC.
1018
1019 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1020             Paolo Bonzini  <bonzini@gnu.org>
1021
1022         PR target/10663
1023         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
1024         assembler and linker output to /dev/null.
1025         Use a 'sed' construct instead of 'grep -A1'.
1026         * configure: Regenerate.
1027
1028 2003-06-04  Richard Henderson  <rth@redhat.com>
1029
1030         * config/i386/i386.c (struct ix86_address): Add seg.
1031         (no_seg_address_operand): New.
1032         (ix86_decompose_address): Restructure PLUS loop.  Accept one
1033         UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS.  Adjust ESP swap test
1034         to test for a regnum, not stack_pointer_rtx.
1035         (ix86_address_cost): Reduce cost if non-default segment.
1036         (legitimate_address_p): Remove UNSPEC_TP check.
1037         (get_thread_pointer): Add to_reg argument.  Don't represent
1038         the thread pointer as a memory load.
1039         (legitimize_tls_address): Split out of ...
1040         (legitimize_address): ... here.
1041         (print_operand_address): Handle parts.seg.
1042         (ix86_expand_move): Use legitimize_tls_address.
1043         (ix86_rtx_costs): Handle UNSPEC_TP.
1044         * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
1045         (TARGET_TLS_DIRECT_SEG_REFS): New.
1046         (TARGET_SWITCHES): Add tls-direct-seg-refs.
1047         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
1048         (PREDICATE_CODES): Add no_seg_address_operand.
1049         * config/i386/i386.md (lea_1): Use it.
1050         (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
1051         (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
1052         * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
1053         * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
1054         * doc/invoke.texi: Add -mtls-direct-seg-refs.
1055
1056 2003-06-04  Mark Mitchell  <mark@codesourcery.com>
1057
1058         * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
1059         (QMTEST_GPP_TESTS): Use "g++" by default.
1060         (stamp-qmtest): Tweak database creation.
1061         (QMTEST_DIR/context): Update context file format.
1062         (qmtest-g++): Tweak command-line.
1063
1064 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1065
1066         * Makefile.in (varasm.o): Don't set -Wno-error.
1067         * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
1068
1069 2003-06-04  Zack Weinberg  <zack@codesourcery.com>
1070
1071         PR bootstrap/3163
1072         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
1073         (gcc_AC_FUNC_MMAP_BLACKLIST): New.
1074         * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
1075         and AC_CHECK_FUNCS lists, respectively.  Use
1076         gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
1077         AC_FUNC_MMAP_FILE.
1078         * configure, config.in: Regenerate.
1079
1080 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1081
1082         * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
1083         * arm.c (arm_output_function_prologue): Fix format specifiers.
1084         * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
1085         * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
1086         HOST_WIDE_INT_PRINT_DEC.
1087         * vax.c (vax_output_function_prologue): Fix format specifiers.
1088
1089 2003-06-04  Richard Henderson  <rth@redhat.com>
1090
1091         * cse.c (find_best_addr): Consider binary operators even if second
1092         argument is not CONST_INT.
1093
1094 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1095
1096         * doc/invoke.texi (max-cse-path-length): Document.
1097
1098 2003-06-04  Richard Henderson  <rth@redhat.com>
1099
1100         * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
1101
1102 2003-06-04  Andrew Pinski <pinskia@physics.uc.edu>
1103
1104         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
1105         Remove semi-colon at the end of the expression.
1106
1107 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1108
1109         * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
1110         * i370.h (mvs_function_name_length): Likewise.
1111         * i960.h (CONSTANT_ALIGNMENT): Likewise.
1112         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1113         * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1114         * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1115         * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
1116         variable.
1117
1118 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
1119
1120         * config.gcc: Reorganize --with-cpu logic.  Set
1121         configure_default_options according to the default CPU, --with-cpu,
1122         --with-arch, --with-tune, --with-schedule, --with-abi, and
1123         --with-float.  Check for legal values of various options.
1124         * configure.in: Define configure_default_options in configargs.h.
1125         * configure: Regenerated.
1126         * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
1127         (TARGET_DEFAULT_FLOAT_P): New macros.
1128         * gcc.c (do_option_spec): New function.
1129         (struct default_spec, option_default_specs): New.
1130         (main): Call do_option_spec.
1131         * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
1132         config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
1133         config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
1134
1135         * doc/install.texi: Update --with-cpu documentation.  Mention
1136         --with-arch, --with-schedule, --with-tune, --with-abi, and
1137         --with-float.
1138         * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
1139
1140 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
1141
1142         * config.gcc: Only process --with-cpu logic in the third pass.
1143
1144 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
1145
1146         * config.gcc: Reorganize --with-cpu section.  Remove an
1147         obsolete comment about the default CPU for x86-64.  Fix
1148         a typo for the ep9312.  Update the list of supported PowerPC
1149         CPUs.  Support a limited set of new --with-cpu options
1150         for i386.
1151
1152 2003-06-04  Aldy Hernandez  <aldyh@redhat.com>
1153
1154         * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
1155         complex numbers <= 32 bits into two registers.
1156
1157 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1158
1159         * alpha.c (print_operand_address): Fix format specifier warnings.
1160         * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1161         * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1162         * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
1163         * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
1164         * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
1165         ASM_OUTPUT_SKIP): Likewise.
1166         * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1167         * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1168         * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
1169         Likewise.
1170         * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1171         * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
1172         * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
1173         * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1174         * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
1175         * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1176         * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1177         * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1178         * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1179         * svr3.h (ASM_OUTPUT_COMMON): Likewise.
1180
1181 2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
1182
1183         * c-decl.c (c_init_decl_processing): Clear input_file_name
1184         while building common nodes.
1185         * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
1186         Don't add working directory for strings like <built-in> .
1187
1188 2003-06-04  David Edelsohn  <edelsohn@gnu.org>
1189
1190         * doc/install.texi (*-ibm-aix*): Native as and ld required
1191         to bootstrap on AIX 5L.
1192
1193 2003-06-04  Richard Henderson  <rth@redhat.com>
1194
1195         * c-common.c (handle_cleanup_attribute): New.
1196         (c_common_attributes): Add it.
1197         * c-decl.c (finish_decl): Honor the cleanup attribute.
1198         * doc/extend.texi (Variable Attributes): Document it.
1199
1200         * unwind-c.c: New file.
1201         * Makefile.in (LIB2ADDEH): Add it.
1202         * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
1203         config/ia64/t-ia64: Likewise.
1204
1205 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
1206
1207         * function.c (trampolines_created): New variable.
1208         (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
1209         * function.h (trampolines_created): Add.
1210         * config/s390/linux.h (ASM_FILE_END): Define.
1211         * config/alpha/linux-elf.h (ASM_FILE_END): Define.
1212         * config/m68k/linux.h (ASM_FILE_END): Define.
1213         * config/rs6000/linux.h (ASM_FILE_END): Define.
1214         * config/rs6000/linux64.h (ASM_FILE_END): Define.
1215         * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
1216         * config/sparc/linux.h (ASM_FILE_END): Define.
1217         * config/sparc/linux64.h (ASM_FILE_END): Define.
1218         * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
1219         * config/i386/linux.h (SUBTARGET_FILE_END): Define.
1220         * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
1221
1222 Wed Jun  4 18:39:33 CEST 2003  Jan Hubicka  <jh@suse.cz>
1223
1224         * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
1225         (ix86_reorg): Use it.
1226         * i386.md (align): New insn pattern.
1227
1228 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1229
1230         * toplev.c (rest_of_type_compilation): Fix typo.
1231
1232 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
1233             Alan Modra  <amodra@bigpond.net.au>
1234
1235         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
1236         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
1237         * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
1238         * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
1239         * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
1240         * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
1241         (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
1242         * config/rs6000/rs6000.c (output_profile_hook): Likewise.
1243
1244         * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
1245         Pass it to $gcc_cv_as.
1246         * configure: Rebuilt.
1247
1248         * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
1249         (print_operand): Allow TARGET_AIX to be non-constant.
1250         (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
1251         Define unconditionally.
1252         (rs6000_elf_declare_function_name): New function.
1253         * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
1254         non-constant.
1255         * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
1256         to 1.
1257         (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
1258         [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
1259         is defined.
1260         (TARGET_AIX): Define to 1 if TARGET_64BIT.
1261         (PROCESSOR_DEFAULT): Remove.
1262         (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
1263         INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
1264         [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
1265         (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
1266         -m32 and -m64.
1267         (MULTILIB_DEFAULTS): Define.
1268         (SUBSUBTARGET_EXTRA_SPECS): Define.
1269         (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
1270         (TARGET_TOC): Define only if !RS6000_BI_ARCH.
1271         (TARGET_NO_TOC): Remove.
1272         [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
1273         TARGET_PROTOTYPE): Define to 0.
1274         (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
1275         (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
1276         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
1277         if !TARGET_64BIT.
1278         (USER_LABEL_PREFIX): Remove.
1279         (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
1280         (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
1281         if TARGET_64BIT.
1282         (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
1283         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
1284         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
1285         (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
1286         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1287         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
1288         TARGET_64BIT.
1289         (RS6000_CALL_GLUE): Likewise.
1290         (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
1291         RESTORE_FP_SUFFIX): Likewise.
1292         (ASM_DECLARE_FUNCTION_NAME): Remove.
1293         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
1294         DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
1295         name if TARGET_64BIT.
1296         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
1297         !TARGET_64BIT.
1298         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
1299         (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
1300         (DRAFT_V4_STRUCT_RET): Define.
1301         (SIGNAL_FRAMESIZE): New enum value.
1302         (MD_FALLBACK_FRAME_STATE_FOR): Define.
1303         * config/rs6000/default64.h: New file.
1304         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
1305         options.
1306         (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
1307         to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
1308         if !TARGET_64BIT.
1309         [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
1310         (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
1311         function.
1312         (TARGET_OS_SYSV_CPP_BUILTINS): Define.
1313         (TARGET_OS_CPP_BUILTINS): Use it.
1314         (CPP_SYSV_SPEC): Remove.
1315         (CPP_SPEC): Remove cpp_sysv.
1316         (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
1317         Add SUBSUBTARGET_EXTRA_SPECS.
1318         (SUBSUBTARGET_EXTRA_SPECS): Define.
1319         * config/rs6000/biarch64.h: New file.
1320         * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
1321         New prototype.
1322         * config/rs6000/x-linux64: New file.
1323         * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
1324         multilibs.
1325         * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
1326         * config/rs6000/eabi-cn.asm: Likewise.
1327         * config/rs6000/tramp.asm: Likewise.
1328         * config/rs6000/sol-ci.asm: Likewise.
1329         * config/rs6000/sol-cn.asm: Likewise.
1330         * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
1331         (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
1332         * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
1333         _CALL_AIXDESC section.
1334         * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
1335         defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
1336         or default32.
1337
1338 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
1339
1340         * config.gcc: Revert accidentally committed ARM changes.
1341
1342 2003-06-04  Roger Sayle  <roger@eyesopen.com>
1343
1344         * builtins.c (dconstpi, dconste): New mathematical constants.
1345         (init_builtin_dconsts): New function to initialize dconstpi
1346         and dconste.
1347         (fold_builtin): Optimize exp(1.0) = e.  Evaluate exp(x) at
1348         compile time with -ffast-math when x is an integer constant.
1349         Optimize tan(0.0) = 0.0.  Optimize atan(0.0) = 0.0,
1350         atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
1351
1352 2003-06-04  Roger Sayle  <roger@eyesopen.com>
1353
1354         * calls.c (expand_call): Avoid calling pure or const functions
1355         when the result is ignored (or void) and none of the arguments
1356         are volatile.  Move warning diagnostic earlier in function.
1357
1358 2003-06-04  Andreas Jaeger  <aj@suse.de>
1359
1360         * system.h: Do not poison TDESC_SECTION_ASM_OP,
1361         RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
1362
1363 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1364
1365         * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
1366         optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
1367         handle %ll, optimize regular character case.
1368
1369 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1370
1371         * Makefile.in (cse.o): Add params.h dependency.
1372         * cse.c: Include params.h.
1373         (PATHLENGTH): Removed.
1374         (struct cse_basic_block_data): Make path array dynamic.
1375         (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
1376         of PATHLENGTH.
1377         (cse_main, cse_basic_block): Allocate path array.
1378         * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
1379
1380 Wed Jun  4 09:49:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
1381
1382         * i386.c (ix86_reorg): Replace the jump instead of adding nop.
1383         * i386.md (UNSPEC_REP): New constant.
1384         (return_internal_long): New pattern.
1385
1386 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1387
1388         PR optimization/11018
1389         * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
1390         consistently to decide whether the scratch register is really
1391         required.
1392
1393 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1394
1395         PR optimization/10876
1396         * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
1397         new 'O' constraint for constant 4096.
1398         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1399         * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
1400         Do not transform into MINUS insn for constant 4096.
1401         (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
1402         for constant 4096 as third operand.
1403         (addsi3 expander): Remove.
1404         (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
1405         new alternative for constant 4096 as third operand.
1406         (subdi3 expander): Do not transform into PLUS insn for constant 4096.
1407         (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
1408         operand.
1409         (subsi3 expander): Remove.
1410         (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
1411         constant 4096 as third operand.
1412         * doc/md.texi (Machine Constraints): Document new 'O' constraint for
1413         the SPARC port.
1414
1415 2003-06-03  Chris Demetriou  <cgd@broadcom.com>
1416
1417         * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
1418
1419 2003-06-04  Andreas Jaeger  <aj@suse.de>
1420
1421         * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
1422
1423         * config/i386/i386.c (ix86_expand_prologue): Do not use
1424         SUBTARGET_PROLOGUE.
1425
1426         * system.h: Poision SUBTARGET_PROLOGUE.
1427
1428         * config/arm/arm-protos.h: Remove unused rdate_section prototype.
1429
1430         * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
1431         dependend code.
1432
1433         * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
1434
1435         * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
1436         INSN_CACHE_LINE_WIDTH.
1437
1438         * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
1439         (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
1440         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
1441
1442         * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
1443         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
1444
1445         * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
1446         (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
1447         (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
1448         (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
1449         (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
1450         (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
1451
1452         * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
1453         DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
1454         DBX_WORKING_DIRECTORY.
1455
1456         * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
1457         DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
1458
1459         * config/frv/frv-protos.h: Remove unused const_section
1460         declaration.
1461         * config/vax/vax-protos.h: Likewise.
1462
1463         * output.h: Remove CONST_SECTION_ASM_OP usage.
1464
1465         * system.h: Poison CONST_SECTION_ASM_OP.
1466
1467         * crtstuff.c (__do_global_dtors_aux): Remove usage of
1468         CRT_GET_RFIB_TEXT.
1469         (frame_dummy): Likewise.
1470         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1471         * system.h: Poison CRT_GET_RFIB_TEXT.
1472
1473         * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
1474
1475         * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
1476         (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
1477         (recognized_function): Likewise.
1478         (read_scan_file): Likewise.
1479
1480 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1481
1482         * optabs.c (expand_binop): Optimize complex multiplication for
1483         the case of squaring a complex argument.
1484
1485 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1486
1487         * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
1488         non-volatile operands of binary operations.
1489         (prepare_cmp_insn): Likewise.
1490
1491 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1492
1493         * varasm.c (force_const_mem): Handle alignment of constants not
1494         representable as a type in the front-end language.
1495
1496 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
1497
1498         * flow.c (initialize_uninitialized_subregs): Use
1499         emit_move_insn instead of emitting a hardcoded move.
1500
1501 2003-06-03  Richard Henderson  <rth@redhat.com>
1502
1503         * optabs.c (expand_abs_nojump): Split out from ...
1504         (expand_abs): ... here.
1505         * optabs.h (expand_abs_nojump): Declare.
1506         * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
1507         * Makefile.in (ifcvt.o): Depend on optabs.h.
1508
1509 2003-06-03  Alan Modra  <amodra@bigpond.net.au>
1510
1511         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
1512
1513 2003-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1514
1515         * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
1516         (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
1517         to yes.
1518         * configure.in: Allow default_use_cxa_atexit to determine the
1519         value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
1520         disabled.
1521         * configure: Regenerate.
1522
1523 2003-06-03  Douglas B Rupp  <rupp@gnat.com>
1524
1525         * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
1526         * doc/gcc.texi: Remove vms.texi section.
1527         * doc/vms.texi: Remove obsolete file.
1528
1529 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
1530
1531         * configure.in (inhibit_libc): Don't define when configuring
1532         with --with-newlib --with-headers.
1533         * configure: Regenerate.
1534
1535         * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
1536
1537 2003-06-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1538
1539         * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
1540         IRIX 6 without GNU ld.
1541         * configure: Regenerate.
1542
1543 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1544
1545         * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
1546         of a complex number rather than invoke mov_optab directly.
1547
1548 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
1549
1550         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
1551         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
1552
1553 2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
1554
1555         * config/i386/x86-64.h: Remove two target-independent comments;
1556          replace "GNU CC" with "GCC".
1557
1558 2003-06-03  Anthony Green  <green@redhat.com>
1559
1560         * config/frv/t-frv (EXTRA_HEADERS): Remove media.h
1561
1562 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1563
1564         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
1565         New builtins representing ISO C99's cabs, cabsf and cabsl.
1566         * builtins.c (expand_builtin_fabs): New function.
1567         (expand_builtin_cabs): New function.
1568         (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L}
1569         using expand_builtin_fabs and expand_builtin_cabs respectively.
1570
1571         * doc/extend.texi: Document new cabs, cabsf and cabsl builtins.
1572
1573 2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
1574
1575         * function.c (assign_parms): Split complex arguments.
1576
1577         * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
1578
1579         * expr.h (SPLIT_COMPLEX_ARGS): Define.
1580         (split_complex_types): Protoize.
1581         (split_complex_values): Protoize.
1582
1583         * calls.c (expand_call): Split complex arguments on architectures
1584         that require it.
1585         (split_complex_values): New.
1586         (split_complex_types): New.
1587
1588         * config/rs6000/rs6000.c (rs6000_libcall_value): New.
1589         (rs6000_function_value): Handle complex values on AIX.
1590         (rs6000_complex_function_value): New.
1591
1592         * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
1593
1594         * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
1595         (SPLIT_COMPLEX_ARGS): New.
1596
1597 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
1598
1599         * configure.in (HAVE_LD_PIE): Check for ld -pie.
1600         * config.in: Rebuilt.
1601         * configure: Rebuilt.
1602         * toplev.c (flag_pie, flag_shlib): New variables.
1603         (f_options): Add -fpie and -fPIE.
1604         (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
1605         Set flag_shlib if flag_pic and not -fpie/-fPIE.
1606         * flags.h (flag_pic, flag_shlib): Add.
1607         * varasm.c (default_binds_local_p): Use flag_shlib instead of
1608         flag_pic.
1609         * gcc.c (LINK_PIE_SPEC): Define.
1610         (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
1611         (option_map): Add --pie -> -pie mapping.
1612         * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
1613         and -fPIE the same way as -fPIC.
1614         * config/openbsd.h (ASM_SPEC): Likewise.
1615         * config/frv/frv.h (ASM_SPEC): Likewise.
1616         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
1617         * config/arm/semi.h (ASM_SPEC): Likewise.
1618         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
1619         * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
1620         * config/i386/beos-elf.h (CC1_SPEC): Likewise.
1621         * config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
1622         * config/m68k/linux.h (CPP_SPEC): Likewise.
1623         * config/m68k/netbsd.h (ASM_SPEC): Likewise.
1624         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
1625         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
1626         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
1627         * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
1628         * config/pa/pa-linux.h (CPP_SPEC): Likewise.
1629         * config/netbsd-aout.h (ASM_SPEC): Likewise.
1630         * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
1631         * config/rs6000/vxworks.h (CPP_SPEC): Likewise.
1632         * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
1633         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
1634         * config/sparc/sparc.h (ASM_SPEC): Likewise.
1635         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
1636         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1637         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
1638         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
1639         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
1640         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
1641         Simplify.
1642         * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1643         * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1644         * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1645         * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1646         * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1647         * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1648         * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1649         * doc/invoke.texi: Document -pie, -fpie and -fPIE options.
1650
1651 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
1652
1653         * builtins.c (expand_builtin_memcpy): Remove endp argument and endp
1654         != 0 handling.  Pass 0 to store_by_pieces.
1655         (expand_builtin_mempcpy): Add endp argument.  Don't call
1656         expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
1657         directly.  If ignoring result, only do expand_call.
1658         (expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
1659         otherwise.
1660         (expand_builtin_strncpy, expand_builtin_memset): Adjust
1661         store_by_pices callers.
1662         (expand_builtin): Adjust expand_builtin_memcpy and
1663         expand_builtin_mempcpy callers.
1664         * expr.c (can_move_by_pieces): New function.
1665         (move_by_pieces): Add endp argument, return to resp. memory at end
1666         or one byte earlier depending on endp.
1667         (store_by_pieces): Likewise.
1668         (emit_block_move): Adjust call to move_by_pieces.
1669         (emit_push_insn): Adjust move_by_pieces caller.
1670         * expr.h (can_move_by_pieces): New prototype.
1671         (store_by_pieces): Adjust prototypes.
1672         * rtl.h (move_by_pieces): Adjust prototype.
1673         * config/mips/mips.c (expand_block_move): Adjust move_by_pieces
1674         caller.
1675
1676 2003-06-03  Ben Elliston  <bje@wasabisystems.com>
1677
1678         * doc/md.texi (Processor pipeline description): Improve wording.
1679
1680 2003-06-03  Neil Booth  <neil@daikokuya.co.uk>
1681
1682         * c-opts.c (c_common_handle_option): New, pulled out of
1683         c_common_decode_option.  Substitute uses of argv.
1684         (c_common_decode_option): Broken into two.
1685
1686 2003-06-02  Roger Sayle  <roger@eyesopen.com>
1687             Zack Weinberg  <zack@codesourcery.com>
1688
1689         * emit-rtl.c (gen_complex_constant_part):  Remove unnecessary
1690         test of TREE_CONSTANT_POOL_ADDRESS_P.
1691
1692 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1693
1694         * mips.c: Don't include output.h twice.
1695         * stormy16.c: Likewise.
1696         * xtensa.c: Likewise.
1697         * output.h: Protect against multiple inclusion.
1698
1699 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
1700
1701         * sh.h (OLD_ARG_MODE): New macro.
1702         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
1703         (FUNCTION_ARG_1): Break out of:
1704         (FUNCTION_ARG).  Use OLD_ARG_MODE.
1705
1706 2003-06-02  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1707
1708         * gcc/config.gcc Add support multilib parts for m32rx processor.
1709
1710 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1711
1712         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
1713         (mostlyclean): Delete c-options.c and c-options.h.
1714
1715 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
1716
1717         * c-opts.c (CL_REJECT_NEGATIVE): New.
1718         (c_common_decode_option): Update to use it.
1719         * c.opt: Update documentation; use RejectNegative.
1720         * opts.sh: Handle RejectNegative.
1721
1722 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
1723
1724         * ggc-page.c (init_ggc): Give better diagnostics on failure to
1725         open /dev/zero.
1726         * toplev.c (crash_signal): Reset handling for received signal
1727         to SIG_DFL.
1728
1729 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
1730
1731         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
1732         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
1733         (arm_use_dfa_pipeline_interface): Implement.
1734         * config/arm/arm.md (arm): New automaton.
1735         (write_buf): Remove function units; new cpu unit.
1736         (write_blockage): Remove function units; new cpu unit.
1737         (core): Remove function units; new cpu unit.
1738         (r_mem_f_wbuf): New instruction reservation.
1739         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
1740         (store1_ldsched, store2, store3, store4): Likewise.
1741         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
1742         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
1743         (multi_cycle, single_cycle): Likewise.
1744         * config/arm/fpa.md (armfp): New automaton.
1745         (fpa): Remove function units; new cpu unit.
1746         (fpa_mem): Remove function unit; new cpu unit.
1747         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
1748         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
1749
1750 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1751
1752         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
1753         * c-format.c (enum format_type): Add asm_fprintf_format_type.
1754         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
1755         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
1756         (format_types_orig): Renamed from format_types.  Add new data.
1757         (format_types): Declare as pointer.
1758         (handle_format_attribute): Move later in file so we have all
1759         necessary declarations.  Add section to capture HOST_WIDE_INT.
1760         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
1761         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
1762
1763 2003-06-01  Andreas Jaeger  <aj@suse.de>
1764
1765         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
1766         ROUND_TYPE_SIZE_UNIT.
1767
1768         * stor-layout.c (finalize_record_size): Remove usages of
1769         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1770         (finalize_type_size): Likewise.
1771         (layout_type): Likewise.
1772
1773         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1774
1775         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
1776
1777         * config/d30v/d30v.h: Remove text copied from the manual.
1778
1779 2003-06-01  Roger Sayle  <roger@eyesopen.com>
1780             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1781             Geoffrey Keating  <geoffk@apple.com>
1782
1783         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
1784         constants as condition code values.
1785
1786 2003-06-01  DJ Delorie  <dj@redhat.com>
1787
1788         * cppmacro.c (warn_of_redefinition): Handle cases where the two
1789         definitions have different numbers of tokens.
1790
1791 2003-06-01  Andreas Jaeger  <aj@suse.de>
1792
1793         * gen-protos.c (main): Readd unused attribute for argc.
1794
1795 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1796
1797         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
1798         * c.opt: End in blank line.
1799         * opts.sh: Take AWK from environment if available; use C locale.
1800
1801 2003-06-01  Andreas Schwab  <schwab@suse.de>
1802
1803         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
1804
1805 2003-06-01  Andreas Jaeger  <aj@suse.de>
1806
1807         * gen-protos.c (main): Revert patch to check for argument.
1808
1809 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1810
1811         PR target/11044
1812         * config/i386/i386.md (length attribute): Set length to 4
1813         for instructions of type "fcmp".
1814
1815 2003-06-01  Andreas Jaeger  <aj@suse.de>
1816
1817         * toplev.c: Use ISO C90 prototypes.
1818
1819         * toplev.h: Use ISO C90 prototypes.
1820
1821         * genrecog.c: Use ISO C90 prototypes.
1822         (nodes_identical): Correct declaration to match prototype.
1823         (maybe_both_true): Likewise.
1824         (merge_trees): Likewise.
1825
1826         * genpeep.c (gen_peephole): Remove #if 0 code.
1827         Use ISO C90 prototypes.
1828
1829         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
1830         Remove #if 0'ed function simplify_by_alternatives.
1831         (optimize_attrs): Remove #if 0'ed code.
1832         Remove ^L.
1833         Use ISO C90 prototypes.
1834         (make_canonical): Remove #if 0'ed code.
1835         (convert_const_symbol_ref): Remove #if 0'ed function.
1836
1837         * gen-protos.c (main): Check for argument.
1838
1839         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
1840
1841         * params.h: Use ISO C90 prototypes.
1842         * params.c: Likewise.
1843         * intl.c: Likewise.
1844         * intl.h: Likewise.
1845         * lists.c: Likewise.
1846         * errors.c: Likewise.
1847         * errors.h: Likewise.
1848         * gencodes.c: Likewise.
1849         * genpreds.c: Likewise.
1850         * genattr.c: Likewise.
1851         * gen-protos.c: Likewise.
1852         * genflags.c: Likewise
1853         * genconditions.c: Likewise.
1854         * genautomata.c: Likewise.
1855         * gencheck.c: Likewise.
1856         * genconfig.c: Likewise.
1857         * genconstants.c: Likewise.
1858         * genemit.c: Likewise.
1859         * genextract.c: Likewise.
1860         * gengenrtl.c: Likewise.
1861         * gengtype.c: Likewise.
1862         * gengtype.h: Likewise.
1863         * genopinit.c: Likewise.
1864         * genoutput.c: Likewise.
1865         * gensupport.c: Likewise.
1866         * gensupport.h: Likewise.
1867
1868         * sdbout.h: Use ISO C90 prototypes.
1869
1870         * sdbout.c (CONTIN): Removed empty macro.
1871         (sdbout_one_type): Remove CONTIN usages.
1872         Remove ^Ls.
1873         (tag_of_ru_type): Remove #if 0'ed function.
1874         (sdbout_symbol): Remove #if 0'ed code.
1875         (sdbout_one_type): Remove a #if 1.
1876         (sdbout_one_type): Remove #if 0'ed code.
1877         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
1878         Remove PARAMS, use ISO C90 prototypes for all functions.
1879
1880 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
1881
1882         * rtl.def (CONST_DOUBLE): Update comment.
1883
1884 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1885
1886         * opts.sh: Remove path from sort.
1887
1888 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
1889
1890         PR/9680
1891         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
1892         TARGET_SPE for SPE_VECTOR_MODE.
1893
1894 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
1895
1896         * toplev.c (botch): Remove.
1897         (do_abort): Remove.
1898         (set_Wunused): Comment.
1899         (set_Wextra): Comment.
1900         Remove ^L's.
1901         (rest_of_compilation): Factor out common code into functions.
1902         (rest_of_handle_inlining): New.
1903         (rest_of_handle_ssa): New.
1904         (rest_of_handle_cse): New.
1905         (rest_of_handle_gcse): New.
1906         (rest_of_handle_loop_optimize): New.
1907         (rest_of_handle_jump_bypass): New.
1908         (rest_of_handle_sibling_calls): New.
1909         (rest_of_handle_null_pointer): New.
1910         (rest_of_handle_addresof): New.
1911         (rest_of_handle_flow): New.
1912         (rest_of_handle_branch_prob): New.
1913         (rest_of_handle_if_conversion): New.
1914         (rest_of_handle_tracer): New.
1915         (rest_of_handle_loop2): New.
1916         (rest_of_handle_cse2): New.
1917         (rest_of_handle_life): New.
1918         (rest_of_handle_combine): New.
1919         (rest_of_handle_if_after_combine): New.
1920         (rest_of_handle_regmove): New.
1921         (rest_of_handle_sched): New.
1922         (rest_of_handle_old_regalloc): New.
1923         (rest_of_handle_new_regalloc): New.
1924         (rest_of_handle_regrename): New.
1925         (rest_of_handle_reorder_blocks): New.
1926         (rest_of_handle_sched2): New.
1927         (rest_of_handle_new_regalloc): New.
1928         (rest_of_handle_old_regalloc): New.
1929         (rest_of_handle_regrename): New.
1930         (rest_of_handle_reorder_blocks): New.
1931         (rest_of_handle_stack_regs): New.
1932         (rest_of_handle_machine_reorg): New.
1933         (rest_of_handle_delay_slots): New.
1934         (rest_of_handle_final): New.
1935
1936         * toplev.h (botch): Remove prototype.
1937         (do_abort): Same.
1938
1939 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
1940
1941         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
1942         * c-opts.c: Include c-options.h and c-options.c.
1943         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
1944         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
1945         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
1946         OPT, opt_comp): Remove.
1947         (missing_arg, c_common_init_options, c_common_decode_option,
1948         write_langs): Update for macro redefinitions and enumeration
1949         name changes.
1950         * c.opt, opts.sh: New files.
1951         * doc/passes.texi: Update.
1952
1953 2003-05-31  Andreas Jaeger  <aj@suse.de>
1954
1955         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
1956         usage.
1957
1958         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
1959
1960         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
1961
1962         * system.h: Poison ALLOCATE_TRAMPOLINE.
1963
1964         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
1965         * system.h: Poison HANDLE_PRAGMA.
1966
1967 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1968
1969         * doc/invoke.texi: Update dump file names.
1970
1971 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1972
1973         * c-format.c (format_length_info, format_char_info,
1974         format_flag_spec, format_flag_pair, format_kind_info):
1975         De-const-ify structure members.
1976
1977 2003-05-31  Roger Sayle  <roger@eyesopen.com>
1978
1979         * flags.h (flag_wrapv): New flag controlling overflow semantics.
1980         * toplev.c (flag_wrapv): Declare the variable with default false.
1981         (lang_independent_options): New option "-fwrapv" to set the above.
1982
1983         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
1984         as x, when signed arithmetic overflow wraps around.
1985         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
1986         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
1987         overflow when flag_wrapv is true.
1988
1989         * doc/invoke.texi: Document new -fwrapv command line option.
1990         * doc/c-tree.texi: Mention that the overflow semantics of
1991         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
1992         upon both flag_wrapv and flag_trapv.
1993
1994 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1995
1996         * doc/install.texi (mips-sgi-irix5): Add missing
1997         HTML <hr> marker.
1998
1999 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2000
2001         * doc/md.texi (Machine Constraints): Document
2002         missing SPARC constraints.
2003
2004 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2005
2006         * doc/md.texi (Automaton pipeline description): Use
2007         "type" instead of "cpu" as the attribute in the examples.
2008
2009 2003-05-30  Stan Shebs  <shebs@apple.com>
2010
2011         * system.h: Poison OBJC_PROLOGUE.
2012
2013 2003-05-30  Roger Sayle  <roger@eyesopen.com>
2014
2015         * emit-rtl.c (gen_complex_constant_part): New function for getting
2016         the constant real or imaginary part of a complex constant.
2017         (gen_realpart): Use it.
2018         (gen_imagpart): Likewise.
2019
2020 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2021
2022         * doc/invoke.texi: Fix typos.
2023         * doc/rtl.texi: Likewise.
2024
2025 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
2026
2027         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
2028         mode.
2029         * config/h8300/crtn.asm: Likewise.
2030         * config/h8300/lib1funcs.asm: Likewise.
2031         * config/h8300/h8300.c (asm_file_start): Likewise.
2032         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
2033         h8300snelf emulations for normal mode.
2034         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
2035         emulations for normal mode.
2036
2037 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
2038
2039         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
2040         true if TARGET_NORMAL_MODE.
2041
2042 2003-05-30  Roger Sayle  <roger@eyesopen.com>
2043
2044         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
2045         making a substitution.
2046         (dead_libcall_p): If directly replacing a libcall with a
2047         constant value produces an invalid instruction, also try forcing
2048         the constant into the constant pool.
2049         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
2050         obvious that the source is a constant.
2051         (compress_float_constant): Use set_unique_reg_note to place
2052         REG_EQUAL notes on instructions.
2053
2054 2003-05-30  Eric Christopher  <echristo@redhat.com>
2055
2056         * config/mips/mips.c (extern_list): Add GTY marker.
2057         (extern_head): Separate out definition. Add marker.
2058         (mips_output_external): Use ggc_alloc for extern_list
2059         allocation.
2060         (mips_output_external_libcall): Ditto.
2061
2062 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
2063
2064         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
2065         later.
2066
2067 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2068
2069         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
2070         warnings.
2071         (PRINT_OPERAND): Likewise.
2072
2073 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2074
2075         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
2076         -mdebug/-no-mdebug switches ...
2077         (MDEBUG_ASM_SPEC): ... here.
2078         Use only with gas.
2079         (EXTRA_SPECS): Initialize mdebug_asm_spec.
2080
2081 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
2082
2083         * gthr-gnat.c: Remove #undef UNUSED.
2084         (__gnat_default_lock, __gnat_default_unlock): Prototype.
2085         (__gnat_task_lock, __gnat_task_unlock): Make declarations
2086         prototypes.
2087         (__gnat_install_locks): Convert declaration to ISO C90, make
2088         parameter declarations prototypes, and remove blank line.
2089         * gthr-gnat.h (__gnat_install_locks): Make parameter
2090         declarations prototypes.
2091
2092 2003-05-29  Jason Merrill  <jason@redhat.com>
2093
2094         * Makefile.in (unstrap): Remove stage_last after make unstage1.
2095
2096 2003-05-29  Roger Sayle  <roger@eyesopen.com>
2097
2098         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
2099
2100 2003-05-29  Roger Sayle  <roger@eyesopen.com>
2101             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
2102
2103         PR bootstrap/10169
2104         * mips-tfile.c (main): Use getopt_long instead of getopt.
2105         Add new command line option --version to display version.
2106         Treat --verbose like -v to report a single line version.
2107         (options): New global variable for getopt_long.
2108         * mips-tdump.c (main): Use getopt_long instead of getopt.
2109         New command line options -v, --version and -verbose to display
2110         the program version number (to match mips-tfile's behavior).
2111         (options): New global variable for getopt_long.
2112
2113         * gcov.c (options): Zero-terminate getopt_long array.
2114         * gcov-dump.c (options): Likewise.
2115
2116         * Makefile.in (mips-tdump.o): Add dependency on version.h.
2117
2118 2003-05-29  Stan Shebs  <shebs@apple.com>
2119
2120         Remove OBJC_PROLOGUE everywhere.
2121         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
2122         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
2123         * config/d30v/d30v.h: Similarly.
2124         * config/ip2k/ip2k.h: Similarly.
2125         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
2126
2127 2003-05-29  Roger Sayle  <roger@eyesopen.com>
2128
2129         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
2130         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
2131         (expand_unreachable_stmt): Expand unreachable while statements
2132         using genrtl_do_stmt_1.
2133
2134 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
2135
2136         * config/mips/mips-protos.h (mips_output_load_label): Declare.
2137         * config/mips/mips.c (mips_output_load_label): New function.
2138         (mips_output_conditional_branch): Use it.
2139         * config/mips/mips.md (jump): And here.
2140
2141 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
2142
2143         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
2144         (xtensa_split_operand_pair): New proto.
2145         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
2146         (smalloffset_double_mem_p): Delete.
2147         (gen_float_relational, printx, print_operand, xtensa_va_arg):
2148         Fix whitespace.
2149         (xtensa_split_operand_pair): New.
2150         (xtensa_dbx_register_number): Fix formatting.
2151         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
2152         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
2153         instead of splitting them into single-word moves.  Remove unnecessary
2154         checks for reload_in_progress and reload_completed.
2155         (movdi_internal, movdf_internal): Change to post-reload split patterns.
2156         Add constraints to allow constant operands.
2157         (movsf_internal): Allow CONST_INT operands.
2158
2159 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
2160
2161         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
2162         fragment i386/x-mingw32.
2163         * config/i386/x-mingw32: New file. Make local_includedir
2164         relative to EXEC_PREFIX.
2165
2166 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
2167
2168         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
2169         (MD_STARTFILE_PREFIX): Define.
2170
2171 2003-05-27  Denis Chertykov  <denisc@overta.ru>
2172
2173         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
2174         VOIDmode.
2175         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
2176         call of cselib_invalidate_regno.
2177
2178 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
2179
2180         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
2181         -lthread to -lpthread.
2182
2183 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
2184             Bruce Korb  <bkorb@gnu.org>
2185             Arno Klaassen  <arno@heho.snv.jussieu.fr>
2186
2187         * fixinc/inclhack.def: Add missing declaration of getpagesize()
2188         to unistd.h on Solaris 2.5.1.
2189         Fix prototype of recv() and send() in sys/socket.h on
2190         Solaris 2.5.1 and 2.6.
2191         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
2192         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
2193         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
2194         * fixinc/fixincl.x: Regenerate.
2195
2196 2003-05-27  Jason Merrill  <jason@redhat.com>
2197
2198         * tree.c (expr_first, expr_length): New fns.
2199         * tree.h: Declare them.
2200
2201         * tree.c (iterative_hash_expr): Hash commutative expressions
2202         consistently.
2203
2204 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2205
2206         * tree.h (contains_placeholder_p): Now returns bool.
2207         (CONTAINS_PLACEHOLDER_P): New macro.
2208         (type_contains_placeholder_p): New function.
2209         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
2210         (contains_placeholder_p): Now returns bool.
2211         Rework to use CONTAINS_PLACEHOLDER_P macro.
2212         (type_contains_placeholder_p): New function.
2213         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
2214         type_contains_placeholder_p.
2215         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
2216         Use CONTAINS_PLACEHOLDER_P macro.
2217         * builtins.c (fold_builtin): Likewise.
2218         * calls.c (initialize_argument_information): Likewise.
2219         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2220         * explow.c (expr_size): Likewise.
2221         * expr.c (store_constructor, get_inner_reference): Likewise.
2222         * function.c (assign_parms): Likewise.
2223         * stor-layout.c (variable_size): Likewise.
2224
2225 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
2226
2227         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
2228         attribute.
2229
2230 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2231
2232         * doc/contrib.texi (Contributors): Update Kean Johnston.
2233
2234 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
2235
2236         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
2237
2238 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2239
2240         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
2241         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
2242         Replace "GNU CC" with "GCC".
2243
2244 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
2245
2246         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
2247         intermediate computation.
2248
2249 2003-05-23  Eric Christopher  <echristo@redhat.com>
2250
2251         * config/mips/mips.md (clzsi, clzdi): New patterns.
2252
2253 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
2254
2255         * gcc.c (default_compilers): Use -o to specify preprocessor's output
2256         file.  Make -no-integrated-cpp work when building PCH files.
2257         * objc/lang-specs.h: Likewise.
2258
2259 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2260
2261         * fixinc/Makefile.in: Correct description.
2262         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
2263         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
2264         fixinc/genfixes: Replace "GNU CC" with "GCC".
2265
2266 2003-05-23  Roger Sayle  <roger@eyesopen.com>
2267
2268         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
2269         builtin functions (and their __builtin_* variants).
2270         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
2271         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
2272         optimizing.
2273
2274         * doc/extend.texi: Document new tan and atan builtins, and
2275         their float and long double variants.
2276
2277 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
2278
2279         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
2280         __sparcv9 in the TARGET_ARCH64 case.
2281
2282 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
2283
2284         * i386.c (ix86_reorg): Calls are also jumps.
2285
2286 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
2287
2288         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
2289         note containing an EXPR_LIST, process all the arguments.
2290
2291 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
2292                                Andreas Jaeger  <aj@suse.de>
2293
2294         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
2295         do not use assertion.
2296
2297 2003-05-23  Mike Stump  <mrs@apple.com>
2298
2299         * tlink.c (scan_linker_output): Add support for darwin linker, as it
2300         emits unresolved symbols one per line, consuming the entire line.
2301
2302 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
2303             Zack Weinberg <zack@codesourcery.com>
2304
2305         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
2306         * config/m68k/m68k.c (m68k_output_function_prologue):
2307         Remove code under #if NEED_PROBE.
2308         * config/m68k/m68k.h: Don't define NEED_PROBE.
2309         * config/m68k/m68k.md: Remove "probe" insn.
2310         * doc/md.texi: Remove documentation of "probe" pattern.
2311
2312 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
2313
2314         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
2315
2316 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2317
2318         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
2319         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
2320
2321 2003-05-22  Roger Sayle  <roger@eyesopen.com>
2322
2323         * real.c (real_maxval): New function to return the largest finite
2324         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
2325         * real.h (real_maxval): Prototype here.
2326         * fold-const.c (fold_inf_compare): Transform comparisons against
2327         +-Infinity into comparisons against DBL_MAX (or equivalent).
2328
2329 2003-05-22  Mike Stump  <mrs@apple.com>
2330
2331         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
2332         default.
2333
2334 2003-05-22  DJ Delorie  <dj@redhat.com>
2335
2336         * calls.c (expand_call): If the arg block is going to grow
2337         downward, we need argblock to point to the top of the block,
2338         not the bottom.
2339
2340 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2341
2342         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
2343
2344         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
2345         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
2346
2347 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2348
2349         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
2350         * m68k.c: Likewise.
2351         * m68k.h: Likewise.
2352
2353 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
2354
2355         PR other/2873
2356         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
2357         expressions to prevent triggering on recent curses.h,
2358         linux/nls.h, or X11/Xlib.h.
2359         (stdio_va_list): Add _G_va_list to bypass pattern.
2360         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
2361         * fixinc/fixincl.x: Regenerate.
2362
2363 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
2364
2365         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
2366         switches when --target-help option is specified.
2367
2368 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2369
2370         PR bootstrap/10805
2371         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
2372         failure with Sun assembler 5.0 Alpha 03/27/98.
2373
2374 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
2375
2376         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
2377         to match system compiler convention.
2378
2379 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
2380
2381         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for non-zero
2382         value, not just if defined.
2383         Update copyright year.
2384
2385 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2386
2387         PR target/6428
2388         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
2389         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
2390         option is used without `-static'.
2391         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
2392         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
2393
2394 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
2395
2396         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
2397         TARGET_SERIALIZE_VOLATILE): Delete.
2398         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
2399         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
2400         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
2401         "-mno-serialize-volatile".
2402         * config/xtensa/xtensa.c (print_operand): Remove checks of
2403         TARGET_SERIALIZE_VOLATILE.
2404         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2405         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
2406         "-mserialize-volatile" and "-mno-serialize-volatile" options.
2407
2408 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2409
2410         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
2411         (nested_function): Likewise.
2412         (notype_nested_function): Likewise.
2413
2414 2003-05-21  Nick Clifton  <nickc@redhat.com>
2415
2416         * config/stormy16/stormy-abi: Update overflow type for
2417         R_XSTORMY16_16 reloc.
2418
2419 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2420
2421         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
2422         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
2423         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
2424         * print-tree.c (print_node): Remove ambient-boundedness.
2425         * tree.h (tree_common): Remove bounded_flag.
2426         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
2427         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2428         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2429         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2430         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
2431         Remove.
2432         (TYPE_QUALS): Remove BOUNDED.
2433         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
2434         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2435         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2436         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
2437         VA_LIST_POINTER_DEPTH): Remove.
2438         (struct tree_type): Remove pointer_depth.
2439
2440 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2441
2442         * c-pretty-print.c (pp_c_integer_literal): Use
2443         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
2444
2445 2003-05-20  Roger Sayle  <roger@eyesopen.com>
2446             Kazu Hirata  <kazu@cs.umass.edu>
2447             Joern Rennecke  <joern.rennecke@superh.com>
2448
2449         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
2450         setcc and jump, if they exist.  If substituted instruction
2451         fails to validate, store current effort in a REG_EQUAL note.
2452         (cprop_insn): Don't attempt further substitutions if the
2453         current instruction has been deleted.
2454         (local_cprop_pass): Likewise.
2455
2456         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
2457         one is attached to the jump instruction.
2458         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
2459
2460 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
2461
2462         PR c++/9738
2463         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
2464         even if not first.
2465
2466 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2467
2468         * genautomata.c (output_description, output_automaton_units,
2469         output_state_arcs): Add missing specifiers.
2470
2471 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
2472
2473         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
2474         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
2475         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
2476         (nsau): Rename to do_nsau.  Provide alternate version for use when
2477         the NSAU instruction is available.
2478         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
2479         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
2480         * config/xtensa/xtensa-config.h: Update comments to match binutils.
2481         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
2482         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
2483         (TARGET_ABS, TARGET_ADDX): Define.
2484         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
2485         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
2486         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
2487         *subx8): Set predicate condition to TARGET_ADDX.
2488         (abssi2): Set predicate condition to TARGET_ABS.
2489         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
2490         "-maddx", and "-mno-addx" options.
2491         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
2492
2493 2003-05-20  Kevin Ryde <user42@zip.com.au>
2494             Wolfgang Bangerth <bangerth@dealii.org>
2495
2496         PR/10355
2497         * doc/extend.texi: Put a warning into the documentation
2498         of attribute regparm.
2499
2500 2003-05-20  Jason Merrill  <jason@redhat.com>
2501
2502         * tree.c (expr_last): New fn.
2503         * tree.h: Declare it.
2504         * objc/objc-act (expr_last): Rename to objc_expr_last.
2505
2506 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2507
2508         * sh.c (sh_register_move_cost): Add clase for moving between
2509         FP registers and MAC registers.
2510
2511 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
2512
2513         * pa/milli64.S ($$mulI): Fix typo.
2514
2515 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
2516
2517         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
2518         (nonlocal_set_p): Remove initial blank line.
2519         * dwarf2out.c (simple_type_size_in_bits): Likewise.
2520         * et-forest.c (et_forest_create): Likewise.
2521         * explow.c (stabilize): Likewise.
2522         * fix-header.c (write_lbrac): Likewise.
2523         * graph.c (start_fct, node_data): Likewise.
2524         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
2525         * rtlanal.c (global_reg_mentioned_p): Likewise.
2526         * tree.c (bit_position): Likewise.
2527
2528 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
2529
2530         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
2531         -lthread to -lpthread.
2532
2533 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
2534
2535         * c-opts.c (c_common_decode_option): Don't accept dollars
2536         as identifier characters in assembly.
2537         * doc/cpp.texi: Document this.
2538
2539 2003-05-19  Seth Arnold  <sarnold@wirex.com>
2540             Aldy Hernandez  <aldyh@redhat.com>
2541
2542         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
2543         vrsave_size twice.
2544
2545 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
2546
2547         * doc/tm.texi (function_arg): Fix typo.
2548
2549 2003-05-19  Matt Austern  <austern@apple.com>
2550
2551         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
2552         * c-common.h (warn_invalid_offsetof): Declare.
2553         * c-common.c (warn_invalid_offsetof): Define.
2554         * doc/invoke.texi: Document -Winvalid-offsetof.
2555         * testsuite/g++.dg/other/offsetof3.C: New.
2556         * testsuite/g++.dg/other/offsetof4.C: New.
2557
2558 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
2559             David Edelsohn  <edelsohn@gnu.org>
2560
2561         * config/rs6000/rs6000.c (rs6000_alignment_string,
2562         rs6000_alignment_flags): New variables.
2563         (rs6000_parse_alignment_option): New function.
2564         (rs6000_override_options): Call it.
2565         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
2566         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
2567         macros.
2568         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
2569         natural alignment if TARGET_NATURAL_ALIGNMENT
2570         (ROUND_TYPE_ALIGN): Always use default record alignment if
2571         TAGET_NATURAL_ALIGNMENT.
2572         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
2573         (ROUND_TYPE_ALIGN): Same.
2574         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
2575         (ROUND_TYPE_ALIGN): Same.
2576         * doc/invoke.texi (Option Summary, PowerPC Options): Document
2577         new options.
2578
2579 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
2580
2581         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
2582         of a function using ASMSPEC, prepend a star.
2583
2584 2003-05-19  Jason Merrill  <jason@redhat.com>
2585
2586         * tree-inline.c (copy_body_r): Avoid generating &* during inline
2587         substitution.
2588
2589 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
2590
2591         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
2592         not mark assignments to the hard frame pointer as being stack
2593         frame related.
2594         (xstormy16_expand_epilogue): Mark adjustments to the stack
2595         pointer as being stack frame related.
2596
2597 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2598
2599         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
2600         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
2601         (PREDICATE_CODES): Add hilo_operand.
2602         * config/mips/mips.c (hilo_operand): New predicate.
2603         (mips_adjust_insn_length): Account for the number nops that might
2604         be needed to avoid hardware hazards.
2605         * config/mips/mips.md (dslot): Remove attribute.
2606         (hazard): New attribute.
2607         (can_delay): Use it.  Check for calls, branches & jumps.
2608         (muldi3): Use the standard dmult pattern for mips16 code.
2609         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
2610
2611 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2612
2613         * config/mips/mips-protos.h (final_prescan_insn,
2614         mips_count_memory_refs, mips_fill_delay_slot): Remove.
2615         * config/mips/mips.h (delay_type, dslots_load_total,
2616         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
2617         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
2618         mips_load_reg3, mips_load_reg4): Remove.
2619         (MASK_STATS): Remove.
2620         (MASK_EXPLICIT_RELOCS): Reuse its value.
2621         (TARGET_STATS): Remove.
2622         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
2623         Warn that -mstats is now ignored.
2624         (FINAL_PRESCAN_INSN): Undefine.
2625         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
2626         (ASM_OUTPUT_REG_POP): Likewise.
2627         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
2628         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
2629         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
2630         mips_fill_delay_slot, mips_count_memory_refs,
2631         final_prescan_insn): Remove.
2632         (output_block_move): Remove calls to mips_count_memory_refs.
2633         (print_operand): Remove printing of #nop for TARGET_STATS.
2634         (mips_output_function_epilogue): Remove TARGET_STATS code.
2635         Reorganize setting of fnnmae.
2636         * config/mips/mips.md: Remove handling of dslot statistics
2637         throughout file.  Change all fcmp patterns into normal asm
2638         templates, removing calls to mips_fill_delay_slot.
2639         * doc/invoke.texi: Remove documentation of -mstats.
2640
2641 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2642
2643         * config/mips/mips.c (mips_class_max_nregs): Return the number of
2644         words in the mode.
2645
2646 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2647
2648         * config/mips/mips.c (override_options): Disable explicit
2649         relocs for old ABIs unless using gas.
2650
2651 2003-05-18  Eric Christopher  <echristo@redhat.com>
2652
2653         * config/mips/mips.h: Remove definition of g_switch_value.
2654
2655 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
2656
2657         * flags.h (g_switch_value): Change to an unsigned
2658         HOST_WIDE_INT.
2659         * toplev.c (g_switch_value): Likewise.
2660
2661         * config/alpha/alpha.c (small_symbolic_operand): Remove
2662         g_switch_value cast.
2663         (alpha_in_small_data_p): Cast size to an unsigned
2664         HOST_WIDE_INT.
2665
2666         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
2667         unsigned HOST_WIDE_INT.
2668         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
2669         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
2670
2671         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
2672         unsigned HOST_WIDE_INT.
2673         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2674         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
2675         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
2676
2677         * config/rs6000/rs6000.c (rs6000_file_start): Use
2678         HOST_WIDE_INT_PRINT_UNSIGNED.
2679         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
2680         (rs6000_elf_in_small_data_p): Cast size to unsigned
2681         HOST_WIDE_INT.
2682         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
2683         Remove.
2684         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
2685         g_switch_set.
2686         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
2687         g_switch_value cast.
2688
2689 2003-05-18  Roger Sayle  <roger@eyesopen.com>
2690             Zack Weinberg  <zack@codesourcery.com>
2691
2692         PR middle-end/10472
2693         * builtins.c (expand_builtin_memcpy):  Call force_operand on
2694         expressions and use simplify_gen_binary to create the addition.
2695
2696 2003-05-18  Andreas Schwab  <schwab@suse.de>
2697
2698         * config/m68k/m68k.md: Use define_constants for unspec numbers.
2699
2700 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
2701
2702         * config/sparc/sparc.h: Define sparc for now.
2703 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
2704
2705         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
2706
2707         * config/stormy16/stormy16.h: Remove about 3000 lines of
2708         target-independent comments.  Update copyright notice.
2709
2710         * doc/collect2.texi: GNU CC -> GCC.
2711         * doc/headerdirs.texi: GNU CC -> GCC.
2712
2713 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
2714
2715         * hashtable.h (struct ht_identifier): Add data member "hash_value".
2716         * hashtable.c (ht_lookup): Use it when searching, remember.
2717         (ht_expand): Do not recompute.
2718         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
2719
2720 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
2721
2722         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
2723
2724 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
2725
2726         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
2727         Default here.
2728         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
2729         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
2730         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
2731         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
2732         config/arm/linux-elf.h, config/arm/rtems-elf.h,
2733         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
2734         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
2735         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
2736         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
2737         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
2738         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
2739         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
2740         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
2741         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
2742         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
2743         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
2744         Don't define __ELF__.
2745         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
2746         Define __ELF__.
2747         * doc/cpp.texi: Document __ELF__.
2748         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
2749
2750 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2751
2752         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
2753         always use stdarg.
2754         * c-errors.c (pedwarn_c99): Likewise.
2755         * c-format.c (status_warning): Likewise.
2756         * c-semantics.c (build_stmt): Likewise.
2757         * calls.c (emit_library_call, emit_library_call_value): Likewise.
2758         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
2759         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
2760         * diagnostic.c (build_message_string, output_printf,
2761         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
2762         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
2763         error_with_decl, fnotice): Likewise.
2764         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
2765         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
2766         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
2767         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
2768         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2769         dw2_asm_output_encoded_addr_rtx): Likewise.
2770         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
2771         * errors.c (warning, error, fatal, internal_error): Likewise.
2772         * final.c (output_operand_lossage, asm_fprintf): Likewise.
2773         * fix-header.c (fatal): Likewise.
2774         * gcc.c (fatal, error, notice): Likewise.
2775         * gcov.c (fnotice): Likewise.
2776         * genattrtab.c (attr_rtx, attr_printf): Likewise.
2777         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
2778         * gensupport.c (message_with_line): Likewise.
2779         * mips-tfile.c (fatal, error): Likewise.
2780         * protoize.c (notice): Likewise.
2781         * ra-debug.c (ra_debug_msg): Likewise.
2782         * read-rtl.c (fatal_with_file_and_line): Likewise.
2783         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
2784         * tree.c (build, build_nt, build_function_type_list): Likewise.
2785
2786 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2787
2788         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
2789         * gcc.c (cpp_predefines): Remove.
2790         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
2791         (static_specs): Remove predefines.
2792         * system.h: Poison CPP_PREDEFINES.
2793         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
2794         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
2795
2796 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2797
2798         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
2799         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
2800         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
2801         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
2802
2803 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2804
2805         PR c/9209
2806         * c-common.c, c-common.h (dollars_in_ident): Remove.
2807         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
2808         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
2809         * cpphash.h (warned_dollar): Rename warn_dollars.
2810         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
2811         Permit dollars regardless of -std=.
2812         (post_options): Set warn_dollars.
2813         * cpplex.c (forms_identifier_p): Use warn_dollars.
2814         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
2815         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
2816         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
2817         Update documentation.
2818
2819 2003-05-17  Andreas Schwab  <schwab@suse.de>
2820
2821         * config/m68k/m68k.c (m68k_output_function_prologue): Use
2822         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
2823         formatting a HOST_WIDE_INT.
2824         (m68k_output_function_epilogue): Likewise.
2825
2826 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
2827
2828         * doc/install.texi: Remove information about desupported targets.
2829
2830 2003-05-17  Andreas Schwab  <schwab@suse.de>
2831
2832         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
2833         * config/m68k/linux.h: Likewise.
2834         * config/m68k/m68k-none.h: Likewise.
2835         * config/m68k/netbsd-elf.h: Likewise.
2836         * config/m68k/sgs.h: Likewise.
2837         * config/m68k/m68k.h: Likewise.
2838         * config/m68k/m68k.md: Likewise.
2839         * config/m68k/m68k.c: Likewise.
2840         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
2841         constraints.
2842         * doc/invoke.texi (Option Summary): Remove -mfpa.
2843         (M680x0 Options): Likewise.
2844
2845 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
2846
2847         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
2848
2849 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2850
2851         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
2852         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
2853         config/sparc/rtemself.h, config/sparc/sol2-64.h,
2854         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
2855         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
2856
2857 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2858
2859         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
2860         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
2861
2862 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2863
2864         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
2865         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
2866         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
2867         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
2868         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
2869         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
2870         sparc/sysv4.h,
2871         * sparc/sysv4-only.h: New.
2872
2873 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
2874
2875         * function.c (assign_parms): Check for zero size args.
2876
2877 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2878
2879         * cfgloopanal.c (test_for_iteration): Use string concatentation on
2880         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2881         function calls into one.
2882         * dbxout.c (dbxout_symbol): Likewise.
2883         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
2884         * dwarf2asm.c (dw2_asm_output_data_uleb128,
2885         dw2_asm_output_data_sleb128): Likewise.
2886         * genrecog.c (debug_decision_2): Likewise.
2887         * loop.c (emit_prefetch_instructions): Likewise.
2888         * print-rtl.c (print_rtx): Likewise.
2889         * print-tree.c (print_node_brief, print_node): Likewise.
2890         * ra-debug.c (dump_igraph, dump_graph_cost,
2891         dump_static_insn_cost): Likewise.
2892         * ra-rewrite.c (dump_cost): Likewise.
2893         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2894         * sreal.c (dump_sreal): Likewise.
2895         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
2896         * varasm.c (assemble_vtable_entry): Likewise.
2897
2898         * avr.c (avr_output_function_prologue,
2899         avr_output_function_epilogue, print_operand): Fix format specifier
2900         warnings.
2901         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
2902         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
2903
2904 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
2905
2906         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
2907         and ! TARGET_STRING cases.
2908
2909         * doc/cppopts.texi (-undef): Fix texinfo warning.
2910
2911         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
2912         * cppfiles.c (validate_pch): When -H is used, print some information
2913         about PCH files found.
2914
2915 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2916
2917         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
2918         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
2919         * config/mips/t-sr71k: Likewise.
2920
2921 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2922
2923         * arc.c (arc_output_function_prologue,
2924         arc_output_function_epilogue): Fix format specifier warnings.
2925         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
2926
2927         * v850.c (print_operand): Fix format specifier warnings.
2928
2929         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
2930         specifier warnings.
2931
2932         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
2933         format specifier warnings.
2934
2935         * ip2k.c (function_prologue, function_epilogue, print_operand):
2936         Fix format specifier warnings.
2937         * ip2k.md: Likewise.
2938
2939         * i960.c (i960_output_function_prologue, i960_print_operand,
2940         i960_print_operand_addr): Fix format specifier warnings.
2941
2942         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
2943         (i370_output_function_prologue): Fix format specifier warnings.
2944         * i370.h (PRINT_OPERAND): Likewise.
2945
2946         * fr30.c (fr30_print_operand): Fix format specifier warnings.
2947
2948         * dsp16xx.c (print_operand_address): Fix format specifier warning.
2949         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
2950
2951         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
2952         specifier warnings.
2953
2954         * alpha.c (print_operand_address, alpha_start_function,
2955         unicosmk_output_ssib): Use string concatentation on
2956         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2957         function calls into one.
2958         * arm.c (arm_print_operand): Likewise.
2959         * cris.c (cris_asm_output_mi_thunk): Likewise.
2960         * frv.c (frv_asm_output_mi_thunk): Likewise.
2961         * ia64.c (ia64_print_operand, process_set): Likewise.
2962         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
2963         Likewise.
2964         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
2965         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2966         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
2967         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
2968         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
2969         * s390.c (s390_assemble_integer): Likewise.
2970         * sparc.c (sparc_flat_function_prologue,
2971         sparc_flat_function_epilogue): Likewise.
2972         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
2973         * vax.c (vax_output_mi_thunk): Likewise.
2974
2975         * frv.c (frv_print_operand_memory_reference): Fix format specifier
2976         warning.
2977         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
2978
2979         * m68k.c (m68k_output_function_epilogue): Fix format specifier
2980         warnings.
2981
2982         * stormy16-protos.h (xs_hi_general_operand,
2983         xs_hi_nonmemory_operand): Prototype.
2984         * stormy16.c (xstormy16_output_shift): Fix format specifier
2985         warnings.
2986
2987         * cris.c: Fix format specifier warnings.
2988
2989 2003-05-16  Nick Clifton  <nickc@redhat.com>
2990
2991         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
2992
2993 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
2994
2995         * doc/bugreport.texi: Remove most of the of the preface of the
2996         bugs section.
2997
2998 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2999
3000         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
3001         .save XX, r0.
3002
3003 2003-05-15  Roger Sayle  <roger@eyesopen.com>
3004
3005         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
3006
3007 2003-05-15  Eric Christopher  <echristo@redhat.com>
3008
3009         * cfgcleanup.c (merge_blocks): Fix return value.
3010
3011 2003-05-15 Eric Christopher <echristo@redhat.com>
3012
3013         * combine.c (expand_compound_operation): Make sure
3014         that zero_extend operation is profitable.
3015
3016 2003-05-15  Richard Henderson  <rth@redhat.com>
3017
3018         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
3019         code protected by USE_GNULIBC_1.
3020
3021 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
3022
3023         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
3024         remove hppa*-*-mpeix* which could not be built, and prune
3025         files from tmake_file= or tm_file= lists that don't exist.
3026
3027         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
3028         * config/alpha/t-interix, config/arm/conix-elf.h
3029         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
3030         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
3031         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
3032         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
3033         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
3034         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
3035         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
3036         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
3037         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
3038         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
3039         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
3040         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
3041         * config/m68k/tower-as.h, config/m68k/tower.h
3042         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
3043         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
3044         * config/m88k/m88k-protos.h, config/m88k/m88k.c
3045         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
3046         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
3047         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
3048         * config/mips/rtems64.h, config/mips/sni-gas.h
3049         * config/mips/sni-svr4.h, config/mips/t-ecoff
3050         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
3051         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
3052         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
3053         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
3054         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
3055         * config/romp/romp-protos.h, config/romp/romp.c
3056         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
3057         * config/rs6000/aix3newas.h, config/rs6000/mach.h
3058         * config/sparc/bsd.h, config/sparc/hal.h
3059         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
3060         * config/sparc/lynx.h, config/sparc/netbsd.h
3061         * config/sparc/sp86x-aout.h, config/sparc/splet.h
3062         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
3063         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
3064         * config/sparc/t-halos, config/sparc/t-sparcbare
3065         * config/sparc/t-splet, config/sparc/t-sunos41
3066         * config/v850/rtems.h: Delete file.
3067
3068 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
3069
3070         * config/rs6000/rs6000-protos.h (function_value): Protoize.
3071
3072         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
3073
3074         * config/rs6000/rs6000.c (rs6000_function_value): New.
3075
3076 2003-05-15  Philip Blundell  <philb@gnu.org>
3077
3078         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
3079         All uses updated.
3080         (arm_tune_xscale): New variable.
3081         (arm_override_options): Set it.
3082         (arm_adjust_cost): Use it in place of arm_arch_xscale.
3083         (arm_gen_load_multiple): Likewise.
3084         (arm_gen_store_multiple): Likewise.
3085         * config/arm/arm.md (is_xscale): Likewise.
3086         * config/arm/arm.h (arm_tune_xscale): Declare.
3087
3088 2003-05-15  Philip Blundell  <philb@gnu.org>
3089
3090         PR target/10730
3091         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
3092         involving invalid constants.
3093
3094 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3095
3096         * pa.c (hppa_expand_prologue): Remove blockage.
3097
3098 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
3099
3100         * doc/bugreport.texi: Remove most of the bug reporting
3101         instructions and merge them into bugs.html.
3102
3103 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
3104
3105         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3106         g_switch_value to unsigned HOST_WIDE_INT.
3107
3108 2003-05-14  Eric Christopher  <echristo@redhat.com>
3109
3110         * combine.c: Fix header comments.
3111         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
3112         to all calls and prototype.
3113
3114 2003-05-14  Roger Sayle  <roger@eyesopen.com>
3115
3116         PR optimization/10764
3117         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
3118         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
3119         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
3120         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
3121         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
3122         the corresponding *fyl2x_?fxf3 instructions.
3123
3124 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
3125
3126         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
3127         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
3128         XCHAL_HAVE_L32R): New.
3129         * config/xtensa/xtensa-protos.h (non_const_move_operand,
3130         xtensa_load_constant, xtensa_function_prologue,
3131         xtensa_function_epilogue): Delete prototypes.
3132         (xtensa_expand_prologue): New.
3133         * config/xtensa/xtensa.c (frame_size_const,
3134         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
3135         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
3136         xtensa_function_prologue): Delete.
3137         (add_operand, xtensa_mem_offset): Formatting.
3138         (move_operand): If the const16 option is available, allow any SFmode
3139         and SImode constants.
3140         (xtensa_emit_move_sequence): Inline the former contents of
3141         xtensa_load_constant with modifications to handle the const16 option.
3142         (override_options): Add xtensa_char_to_class['W'] and set it to
3143         the general register class only if the const16 option is enabled.
3144         Fix formatting.  Disallow PIC when using the const16 option.
3145         (print_operand): Reorganize to switch on "letter" instead of the
3146         RTL code.  Add output_operand_lossage calls for invalid cases.
3147         Add support for 't' and 'b' letters.
3148         (xtensa_expand_prologue): New function to replace
3149         xtensa_function_prologue and xtensa_reorg.
3150         (xtensa_function_epilogue): Declare this as static.  Delete code
3151         to print the retw.n or retw instruction.
3152         (xtensa_return_addr): Use A0_REG instead of 0.
3153         (xtensa_rtx_costs): Add costs for using the const16 option.
3154         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
3155         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
3156         (TARGET_SWITCHES): Add "const16" and "no-const16".
3157         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
3158         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
3159         using the const16 option.
3160         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
3161         (TRAMPOLINE_SIZE): Change from 49 to 59.
3162         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
3163         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
3164         when using the const16 option.
3165         (PREDICATE_CODES): Delete non_const_move_operand.
3166         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
3167         UNSPECV_ENTRY.
3168         (movdi, movdf): If the source is a constant, always expand to a
3169         sequence of movsi insns.
3170         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
3171         (movsi_internal, movsf_internal): Add alternative using const16 insns.
3172         (movsf): Add const16 support.
3173         (entry, prologue, epilogue): New.
3174         (set_frame_ptr): Add missing mode for unspec_volatile operation.
3175         Likewise for subsequent split pattern.
3176         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
3177         "-mconst16" and "-mno-const16" options.
3178
3179 2003-05-14  Richard Henderson  <rth@redhat.com>
3180
3181         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
3182         to be DImode register.  Merge load_symptr.
3183         * config/ia64/ia64.md (load_symptr): Remove.
3184
3185 2003-05-14  Richard Henderson  <rth@redhat.com>
3186
3187         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
3188         DEFERRED_CONSTANT_P.
3189         * integrate.c (copy_rtx_and_substitute): Update use.
3190         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
3191         to the copy generated.
3192         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
3193         of the constant to see if we should emit.
3194         (mark_constant): Similarly.
3195         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
3196
3197 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
3198
3199         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
3200         move record condition.
3201         (movdi_internal2): Same.
3202
3203 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
3204
3205         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
3206         (GCOV_TAG_*) Force type to gcov_unsigned_t.
3207         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
3208         (struct gcov_var): Remove modified. Add start, length, offset,
3209         overread. Have buffer array for libgcov.
3210         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
3211         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
3212         * gcov-io.c (gcov_open): Set mode, do not read anything.
3213         (gcov_close): Write final block.
3214          (gcov_write_block, gcov_allocate): New.
3215         (gcov_write_bytes): Make static. Write or allocate buffer.
3216         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
3217         null.
3218         (gcov_write_string): Adjust.
3219         (gcov_write_tag)
3220         (gcov_write_length): Adjust. Flush the block.
3221         (gcov_write_tag_length): Buffer can never be null.
3222         (gcov_read_bytes): Make static. Read in block.
3223         (gcov_sync): Moved here. Adjust.
3224         (gcov_seek): Moved here. Adjust.
3225         * coverage.c (read_counts_file): Adjust.
3226         * gcov-dump.c (print_prefix): Add position parameter.
3227         (flag_dump_positions): New flag.
3228         (options, main, print_usage): Add it.
3229         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
3230         tag_summary): Adjust.
3231         * gcov.c (read_graph_file, read_count_file): Adjust.
3232         * libgcov.c (gcov_exit): Adjust.
3233
3234         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
3235         (libgcov.a): Depend on libgcc.a.
3236         (gcov.o, gcov-dump.o): Add gcov-io.c.
3237         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
3238
3239         * loop.c (check_dbra_loop): Factor common test.
3240
3241 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
3242
3243         * doc/md.texi (Automaton pipeline description): Grammar fixes.
3244
3245 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
3246
3247         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
3248         (TARGET_INITIALIZER): Include it.
3249         * target.h (struct gcc_target): Add machine_dependent_reorg field.
3250         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
3251         * system.h: Poison MACHINE_DEPENDENT_REORG.
3252
3253         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
3254         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
3255         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3256         (alpha_handle_trap_shadows): Remove "first insn" parameter.
3257         (alpha_align_insns): Likewise.
3258         (alpha_reorg): Likewise.  Make static.  Update calls to above
3259         functions.
3260
3261         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
3262         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
3263         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3264         (arm_reorg): Remove parameter.  Make static.
3265
3266         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
3267         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
3268         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3269         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
3270         Remove parameter.
3271
3272         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
3273         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
3274         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3275         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
3276         Remove parameter.
3277
3278         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
3279         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
3280         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
3281
3282         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
3283         * config/frv/frv.c: Remove orphaned comment.
3284
3285         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
3286         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
3287         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3288         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
3289         Remove parameter.
3290
3291         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
3292         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
3293         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3294         (emit_insn_group_barriers): Remove "first insn" parameter.
3295         (emit_all_insn_group_barriers): Likewise.
3296         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
3297         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
3298
3299         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
3300         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
3301         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3302         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
3303         Remove parameter.
3304
3305         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
3306         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
3307         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3308         (m68hc11_reorg): Make static.  Remove parameter.
3309
3310         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
3311         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
3312         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3313         (conditionalize_optimization): Remove parameter.
3314         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
3315         Make static.  Update call to conditionalize_optimization.
3316
3317         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
3318         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
3319         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3320         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
3321         Make static.
3322
3323         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
3324         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
3325         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3326         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
3327         Remove parameter.
3328
3329         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
3330         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
3331         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3332         (pa_combine_instructions): Remove "first insn" parameter.
3333         (remove_useless_addtr_insns): Likewise.
3334         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
3335
3336         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
3337         commented-out definition.
3338
3339         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
3340         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
3341         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3342         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
3343         Remove parameter.
3344
3345         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
3346         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
3347         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3348         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
3349         Remove parameter.
3350         (sh_output_mi_thunk): Call sh_reorg directly.
3351         * config/sh/sh.md: Update comment.
3352
3353         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
3354         commented-out definition.
3355
3356         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
3357         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
3358         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3359         (v850_reorg): Make static.  Remove parameter.
3360
3361         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
3362         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
3363         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3364         (xtensa_reorg): Make static.  Remove parameter.
3365
3366         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
3367         (TARGET_MACHINE_DEPENDENT_REORG): Document.
3368
3369 2003-05-13  Richard Henderson  <rth@redhat.com>
3370
3371         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
3372         the old decl had instantiated DECL_RTL.
3373
3374 2003-05-13  Mike Stump  <mrs@apple.com>
3375
3376         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
3377
3378 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
3379
3380         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
3381         HOST_WIDE_INT argument.
3382
3383 2003-05-13  Jason Merrill  <jason@redhat.com>
3384
3385         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
3386
3387         * tree.c (iterative_hash_expr): New fn.
3388
3389         * c-semantics.c (emit_local_var): Don't mess with temp slots if
3390         there's no initializer.
3391
3392 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
3393
3394         * final.c (final_scan_insn): Apply the effects of frame-related
3395         delay slot insns before emitting a delayed branch.
3396
3397 2003-05-13  Nick Clifton  <nickc@redhat.com>
3398
3399         * config/mcore/mcore.md (jump): Use emit_jump_insn.
3400
3401 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3402
3403         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
3404         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
3405
3406 2003-05-12  DJ Delorie  <dj@redhat.com>
3407
3408         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
3409         (emit_push_insn): Don't use push when the source alignment is less
3410         than the stack's push rounding.
3411
3412 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
3413
3414         * diagnostic.c (output_format): Add support for %m.
3415         (output_printf, output_verbatim, diagnostic_set_info,
3416         verbatim): Set err_no field of the text_info structure being
3417         initialized.
3418         (fatal_io_error): Delete function.
3419         * diagnostic.h (text_info): Add err_no field.
3420         * toplev.h (fatal_io_error): Delete prototype.
3421
3422         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
3423         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
3424         * objc/objc-act.c: Replace all calls to fatal_io_error with
3425         calls to fatal_error; add ": %m" to the end of all the affected
3426         error messages.
3427
3428 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
3429
3430         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
3431         * rtl.h: Prototype it.
3432         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
3433         when appropriate.
3434
3435 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3436
3437         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
3438         ("*iorsi3_oi"): Likewise.
3439
3440 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
3441
3442         * arm.md (compare_scc): Use shorter sequence for EQ case.
3443         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
3444         (and_scc_scc): Ensure split only applies when there is a dominance
3445         of the comparisons.
3446         (and_scc_scc_nodom): New insn-and-split pattern.
3447
3448 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
3449
3450         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
3451         to _Unwind_SetGRPtr().
3452
3453 2003-05-13  Michael Eager <eager@mvista.com>
3454
3455         * Makefile.in: Initialize program_transform_cross_name from
3456         @program_transform_name@ instead of target_alias.
3457
3458 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
3459             Alan Modra  <amodra@bigpond.net.au>
3460             Jakub Jelinek  <jakub@redhat.com>
3461
3462         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
3463         * configure: Rebuild.
3464         * config/rs6000/rs6000-protos.h: Update.
3465         * config/rs6000/rs6000.c (rs6000_tls_size): New.
3466         (rs6000_tls_size_string): New.
3467         (rs6000_parse_tls_size_option): New.
3468         (rs6000_legitimize_tls_address): New.
3469         (rs6000_tls_get_addr): New.
3470         (rs6000_got_sym): New.
3471         (rs6000_tls_symbol_ref): New.
3472         (rs6000_tls_symbol_ref_1): New.
3473         (rs6000_get_some_local_dynamic_name): New.
3474         (rs6000_get_some_local_dynamic_name_1): New.
3475         (TARGET_HAVE_TLS): New.
3476         (TARGET_CANNOT_FORCE_CONST_MEM): New.
3477         (rs6000_override_options): Handle -mtls-size option.
3478         (constant_pool_expr_1): Handle TLS symbols.
3479         (rs6000_legitimize_address): Handle TLS symbols.
3480         (rs6000_tls_referenced_p): New.
3481         (rs6000_legitimate_address): Handle TLS symbols.
3482         (rs6000_emit_move): Handle TLS symbols.
3483         (print_operand): Handle TLS symbols.
3484         (uses_TOC): Handle TLS symbols.
3485         (rs6000_emit_prologue): Use symbol for unspec constant.
3486         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
3487         (some_ld_name): New.
3488         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
3489         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
3490         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
3491         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
3492         Support TLS.
3493         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
3494         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
3495         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
3496         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
3497         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
3498         tls_tls_64): New.
3499         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
3500
3501 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
3502
3503         * Makefile.in (stage2_build, stage3_build, stage4_build):
3504         Set BUILD_CC to the same as CC.
3505
3506 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
3507
3508         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
3509
3510 2003-05-12  Andreas Schwab  <schwab@suse.de>
3511
3512         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
3513         as unused.
3514         (bundling): Initialize 'pos'.
3515         (ia64_expand_builtin): Initialize 'rmode'.
3516
3517 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
3518
3519         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
3520         (ASM_OUTPUT_ALIGNED_COMMON): Same.
3521         (ASM_OUTPUT_LOCAL): Same.
3522
3523 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
3524
3525         * varasm.c (output_constant):  Fix underflow.
3526
3527 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
3528
3529         PR other/10745
3530         * configure.in: Correct detection of GNU ld version number.
3531         * configure: Regenerated.
3532
3533 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
3534
3535         * diagnostic.c (diagnostic_for_decl): Take a
3536         diagnostic_context argument.  Restructure to be consistent
3537         with diagnostic_report_diagnostic.
3538         (diagnostic_count_diagnostic): Now static.  Take a
3539         diagnostic_info argument, not just a diagnostic_t.  Some code
3540         moved here from internal_error.  Move a case label for
3541         clarity.
3542         (diagnostic_action_after_output): New function.  Code moved
3543         here from internal_error and fatal_error.
3544         (bug_report_request): New #define so that this text appears in
3545         only one place.
3546         (diagnostic_report_diagnostic): Update to match changes to
3547         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
3548         (diagnostic_set_info): Call gettext here.
3549
3550         (pedwarn): Update comment.  Don't call gettext here.
3551         (sorry): Use report_diagnostic.  Don't call gettext here.
3552         (fatal_error): Remove final fnotice and exit, but call
3553         real_abort to prevent warnings about noreturn function returning.
3554         (internal_error): Likewise.  Don't do ICE suppression here nor
3555         call context->internal_error.
3556         (warning_with_decl): Suppress for decls in system headers.
3557         Adjust call to diagnostic_for_decl.
3558         (pedwarn_with_decl): Likewise.
3559         (error_with_decl): Adjust call to diagnostic_for_decl.
3560         (error_recursion): Use bug_report_request.
3561
3562         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
3563         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
3564         diagnostic_count_diagnostic.
3565
3566 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3567
3568         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
3569
3570 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
3571
3572         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
3573         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
3574         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
3575
3576 2003-05-12  Roger Sayle  <roger@eyesopen.com>
3577
3578         * doc/rtl.texi: Document zero_extract as a valid destination
3579         of a set insn.
3580
3581 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
3582
3583         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
3584         '.'.  Change all local symbol definitions and references to use LSYM.
3585
3586 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
3587
3588         * expr.h (assemble_static_space): Update prototype.
3589         * output.h (assemble_zeros, output_constant): Likewise.
3590         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
3591         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
3592         it 64bit clean.
3593         * elf.h (ASM_OTUPUT_SKIP): Likewise.
3594         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
3595         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3596         Expect HOST_WIDE_INT operand.
3597         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3598         Expect HOST_WIDE_INT operand.
3599         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3600         Expect HOST_WIDE_INT operand.
3601         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
3602         HOST_WIDE_INT operand.
3603         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
3604         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
3605         * aout.h (ASM_OTUPUT_SKIP): Likewise.
3606         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
3607         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
3608         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
3609         * frv.h (ASM_OTUPUT_SKIP): Likewise.
3610         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
3611         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3612         Make it 64bit
3613         clean.
3614         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
3615         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3616         Make it 64bit clean.
3617         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
3618         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
3619         HOST_WIDE_INT operand
3620         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3621         Expect HOST_WIDE_INT operand
3622         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
3623         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
3624         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
3625         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3626         Likewise.
3627         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
3628         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3629         Likewise.
3630         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3631         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3632         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3633         ASM_OUTPUT_SKIP): Likewise.
3634         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3635         Likewise.
3636         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3637         ASM_OUTPUT_SKIP): Likewise.
3638         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3639         ASM_OUTPUT_SKIP): Likewise.
3640         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
3641         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
3642         ASM_OUTPUT_SKIP): Likewise.
3643         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
3644         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
3645         ASM_OUTPUT_SKIP): Likewise.
3646         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
3647         Likewise.
3648         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
3649         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
3650         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
3651         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3652         ASM_OUTPUT_SKIP): Make it 64bit clean.
3653         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
3654         Make it 64bit clean.
3655         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
3656         ASM_OUTPUT_SKIP): Make it 64bit clean.
3657         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
3658         64bit clean.
3659         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
3660         HOST_WIDE_INT argument
3661         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
3662         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
3663         HOST_WIDE_INT argument
3664         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
3665         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
3666         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
3667         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3668         HOST_WIDE_INT argument
3669         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
3670         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
3671         * varasm.c (asm_output_bss, asm_output_aligned_bss,
3672         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
3673         HOST_WIDE_INT argument
3674
3675 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
3676
3677         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
3678         favor of walk_tree_without_duplicates.  Add comments.
3679
3680 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
3681
3682         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
3683         (struct alloc_pool_def): New element 'id'.
3684         * alloc-pool.c (fancy_abort): Extern function prototype.
3685         (abort): Macro which uses fancy_abort.
3686         (struct allocation_object_def): New structure.
3687         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
3688         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
3689         (last_id): New variable.
3690         (create_alloc_pool): Add the offset of u.data to size of element,
3691         increase and use last_id.
3692         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
3693         (pool_alloc): Likewise. Set ID for elements.
3694         (pool_free): Check whether the PTR was allocated from POOL.
3695
3696 2003-05-11  Richard Henderson  <rth@redhat.com>
3697
3698         PR c/10675
3699         * c-decl.c: Include hashtab.h.
3700         (detect_field_duplicates): New.
3701         (finish_struct): Use it.
3702         * Makefile.in (c-decl.o): Update.
3703         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
3704         (component_decl_list, component_decl_list2,
3705         components, components_notype): Build list in reverse order.
3706         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
3707
3708         * tree.c (chainon): Special case op2 null as well.
3709         Reorg for clarity.
3710
3711 2003-05-11  Roger Sayle  <roger@eyesopen.com>
3712
3713         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
3714         to implement log, logf and logl built-ins as inline x87 intrinsics.
3715         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
3716         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
3717         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
3718
3719         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
3720         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
3721
3722 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3723
3724         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
3725
3726         * sparc.c (print_operand): Fix uninitialized warning.
3727
3728 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3729
3730         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
3731         real insns.
3732         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
3733         condition.
3734
3735 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3736
3737         * doc/cpp.texi: Fix typos.
3738
3739 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3740
3741         * config/s390/s390.c (s390_function_arg_float): New function.
3742         (s390_function_arg_pass_by_reference): Use it.
3743         (s390_function_arg_advance): Likewise.
3744         (s390_function_arg): Likewise.
3745         (s390_va_arg): Likewise
3746
3747 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3748
3749         * coverage.h (coverage_counter_alloc): New function.
3750         * function.h (struct function): Remove arc_profile flag.
3751         * coverage.c (fn_ident): Remove.
3752         (fn_b_ctrs, no_coverage): New.
3753         (get_coverage_counts): Use current_function_funcdef_no.
3754         (coverage_counter_alloc): New.
3755         (coverage_counter_ref): Adjust.
3756         (coverage_begin_output): Check no_coverage. Use
3757         current_function_funcdef_no.
3758         (coverage_end_function): Likewise.
3759         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
3760         than clearing flag_inline_functions. Do not clear arc_profile
3761         flag.
3762         * function.c (prepare_function_start): Do not set arc_profile
3763         flag.
3764         * profile.c (instrument_edges): Return number of instrumented
3765         edges. Use a for loop.
3766         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
3767         local to here and simplify. Use profile_arc_flag not arc_profile
3768         flag.
3769         (find_spanning_tree): Reformat.
3770         * toplev.c (rest_of_compilation): Use profile_arc_flags and
3771         flag_test_coverage rather than arc_profile flag.
3772
3773 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
3774
3775         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
3776
3777 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3778
3779         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
3780
3781 2003-05-11  Bruno Haible  <bruno@clisp.org>
3782
3783         * cppfiles.c (find_or_create_entry): Preserve errno.
3784
3785 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3786
3787         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
3788         cpplib as it's a Standard Predefined Macro.
3789         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
3790         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
3791         __STDC_HOSTED__ appropriately.
3792         * cpplib.h (_cpp_init_builtins): Update.
3793         * fix-header.c (read_scan_file): Update.
3794         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
3795
3796 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3797
3798         PR C++/689
3799         PR C++/9257
3800         * c-opts.c (c_common_decode_option): Don't set
3801         warn_ctor_dtor_privacy wen -Wall.
3802         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
3803
3804 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
3805
3806         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
3807         patch.
3808
3809 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
3810
3811         * diagnostic.c: Reorder functions for clarity, putting all the
3812         functions in the "error" family next to each other, and
3813         likewise all the functions in the "error_with_decl" family.
3814         Some other routines were moved too.  Add comments.
3815         (vbuild_message_string): Fold into sole caller.
3816
3817
3818 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3819
3820         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
3821         (EH_RETURN_HANDLER_RTX): Likewise.
3822         (expand_builtin_eh_return): Do not copy stack adjustment
3823         if EH_RETURN_STACKADJ_RTX is not defined.
3824         (expand_eh_return): Likewise.  Also, do not pass stack
3825         adjustment as argument to the eh_return pattern.
3826         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
3827         because EH_RETURN_STACKADJ_RTX is not defined.
3828         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
3829         is not defined, treat stack pointer like a regular register.
3830         (uw_init_context_1): Set up fake initial stack pointer register.
3831         (uw_install_context_1): Do not compute stack adjustment if
3832         EH_RETURN_STACKADJ_RTX is not defined.
3833
3834         * config/i386/i386.md ("eh_return"): Remove first argument.
3835         * config/mips/mips.md ("eh_return"): Likewise.
3836         * config/rs6000/rs6000.md ("eh_return"): Likewise.
3837         * config/sh/sh.md ("eh_return"): Likewise.
3838
3839         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
3840
3841 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
3842
3843         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
3844
3845 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3846
3847         * defaults.h (GCOV_TYPE_SIZE): Remove.
3848         * gcov-io.h (gcov_type): Set to specific mode int on target.
3849         (gcov_unsigned_t, gcov_position_t): New.
3850         (GCOV_TYPE_NODE): New.
3851         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
3852         (GCOV_COUNTERS_SUMMABLE): New.
3853         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
3854         gcov_ctr_info, gcov_info): Adjust types.
3855         (gcov_var): Adjust types.
3856         (gcov_write_unsigned, gcov_write_tag,
3857         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3858         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3859         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
3860         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
3861         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3862         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3863         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
3864         __gcov_init, __gcov_merge_add): Adjust gcov types.
3865         * coverage.c (ctr_merge_functions): Constify.
3866         (ctr_names): New.
3867         (read_counts_file): Adjust gcov types. Only summarize & merge
3868         summable counters.
3869         (coverage_counter_ref): Use GCOV_TYPE_NODE.
3870         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
3871         build_ctr_info_value, build_gcov_info): Adjust types.
3872         * profile.c (branch_prob): Adjust gcov types.
3873         * gcov_dump (dump_file): Adjust gcov types.
3874
3875 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
3876
3877         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
3878         constants.
3879         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
3880         * arm.c (arm_select_dominance_cc_mode): Renamed from
3881         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
3882         Callers updated.
3883         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
3884
3885 2003-05-09  Roger Sayle  <roger@eyesopen.com>
3886
3887         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
3888         as unsigned to avoid signed/unsigned comparison warnings.
3889
3890 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3891
3892         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
3893         instruction if the Xtensa density option is enabled.
3894
3895 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
3896
3897        * mklibgcc.in: Remove extra quotes.
3898
3899 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
3900
3901         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
3902         of int_ftype_void.
3903
3904 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
3905
3906         * reload1.c (reload_cse_move2add): Don't turn an implicit
3907         truncation into a self-set in the narrow mode.
3908
3909 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
3910
3911         * arm.md (clzsi2): The CLZ instruction is predicable.
3912
3913 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3914
3915         * config/xtensa/xtensa.c: Formatting.
3916
3917 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3918
3919         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
3920         instead of TREE_OPERAND to access the operand of a
3921         CONSTRUCTOR node.
3922
3923 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3924
3925         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
3926         one operand.
3927
3928 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3929
3930         * toplev.h (warning_with_file_and_line): Don't declare.
3931         (error_with_file_and_line): Likewise.
3932         * diagnostic.c (error_with_file_and_line): Remove.
3933         (warning_with_file_and_line): Likewise.
3934
3935 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3936
3937         * c-parse.in (if_stmt_locus): New object.
3938         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
3939         (select_or_iter_stmt rule): Likewise.
3940         (if_stmt_file): Remove.
3941         (if_stmt_line): Likewise.
3942         * jump.c: include "diagnostic.h"
3943         (never_reached_warning): Don't use warning_with_file_and_line.
3944         * Makefile.in (jump.o): Add dependce on diagnostic.h
3945
3946 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
3947
3948         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
3949         Move code handling pieces not larger than a word to..
3950         * function.c (assign_parms): ..here, but use change_address instead
3951         of adjust_address and operand_subword, and expand_binop instead of
3952         expand_shift.  Adjust calls to move_block_from_reg.
3953         * expr.h (move_block_from_reg): Update declaration.
3954         (copy_blkmode_from_reg): Formatting.
3955         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
3956         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
3957         move_block_from_reg calls.
3958         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
3959         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
3960         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3961         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
3962         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
3963         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3964         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
3965         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3966         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
3967
3968 2003-05-08  DJ Delorie  <dj@redhat.com>
3969
3970         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
3971         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
3972         variable-sized types).
3973         (xstormy16_function_arg): New.  Pass them that way too.
3974         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
3975         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
3976
3977 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
3978
3979         * mklibgcc.in: Use mkinstalldirs when installing multilib
3980         directories.
3981
3982 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
3983
3984         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
3985         instead of CODE_FOR_jump
3986
3987 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
3988
3989         * objc/objc-act.c (error_with_ivar): Don't use
3990         error_with_file_and_line.
3991         (warn_with_method): Don't use warning_with_file_and_line.
3992
3993 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3994
3995         * stmt.c (emit_locus): New macro.
3996         (emit_filename): Remove.
3997         (emit_lineno): Likewise.
3998         (struct stmt_status): Replace members x_emit_filename and
3999         x_emit_lineno with x_emit_locus.
4000         (set_file_and_line_for_stmt): Adjust.
4001         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
4002         (warn_if_unused_value): Likewise.
4003         (check_seenlabel): Likewise.
4004
4005 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4006
4007         * c-decl.c (define_label): Tidy.  Don't use any of
4008         error_with_file_and_line or warning_with_file_and_file.
4009         (pending_xref_error): Likewise.
4010         (store_parm_decls): Likewise.
4011         (current_function_prototype_locus): New object.  Package from
4012         current_function_prototype_file and current_function_prototype_line.
4013         (start_function): Use it.
4014         (current_function_prototype_file): Remove.
4015         (current_function_prototype_line): Remove;
4016
4017 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4018
4019         * builtins.c (readonly_data_expr): New function.
4020         (expand_builtin_memmove): Optimize any rodata source, not just
4021         strings.
4022
4023 2003-05-07  David Mosberger <davidm@hpl.hp.com>
4024
4025         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
4026
4027 2003-05-07  Richard Henderson  <rth@redhat.com>
4028
4029         * config/i386/i386.c (ix86_split_long_move): Fix base register
4030         mode for XFmode splits for TARGET_64BIT.
4031
4032 2003-05-07  Richard Henderson  <rth@redhat.com>
4033
4034         * sched-ebb.c (schedule_ebb): Supply the correct starting
4035         block number to save_line_notes.
4036
4037 2003-05-07  Richard Henderson  <rth@redhat.com>
4038
4039         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
4040         (dump_file): Likewise.
4041
4042 2003-05-07  David Mosberger <davidm@hpl.hp.com>
4043
4044         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
4045         forget to preserve gp.
4046         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
4047
4048         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
4049         .prologue directive.
4050         Use .skip instead of data8 for .bss section to make Intel
4051         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
4052         explicit in the .mib bundles and remove the unnecessary stop
4053         bits.  Replace local labels with normal labels, to make ias
4054         happy.  Don't register __do_global_ctors_aux here, do it in
4055         crtend.asm instead.
4056
4057         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
4058         __do_global_ctors_aux in .init_array section instead of
4059         declaring it as a hidden global.  Replace local labels with
4060         ordinary labels to make ias happy.
4061
4062 2003-05-07  Richard Henderson  <rth@redhat.com>
4063
4064         PR c++/10570
4065         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
4066         * flags.h, toplev.c, doc/invoke.texi: Likewise.
4067
4068         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
4069         * unwind.inc (_Unwind_DeleteException): Check for null
4070         exception_cleanup.
4071
4072         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
4073         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
4074         * unwind.h: Declare them.
4075         * libgcc-std.ver (GCC_3.3): Export them.
4076
4077 2003-05-07  Richard Henderson  <rth@redhat.com>
4078
4079         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
4080         not _Unwind_Word.
4081
4082 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
4083
4084         * stmt.c (force_label_rtx): New function, based on logic
4085         formerly found in expand_expr.
4086         * expr.h: Prototype it.
4087         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
4088         appropriate.
4089         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
4090
4091         * print-tree.c (debug_tree): Free the table after we're done
4092         with it.  Use putc.
4093
4094 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
4095
4096         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
4097         Unreverse arguments for __ev_subw.
4098
4099         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
4100
4101 2003-05-07  Nick Clifton  <nickc@redhat.com>
4102
4103         * config/stormy16/stormy-abi: Update to include
4104         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
4105         R_XSTORMY16_12 relocs.
4106
4107 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
4108
4109         * function.c (assign_parms): Correct reversed reg_parm_stack_space
4110         test.  Add partial in-regs size to stack_args_size.
4111
4112 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4113
4114         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
4115         as a C only option.
4116
4117 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
4118
4119         * gcov-io.h (GCOV_LOCKED): New #define.
4120         (GCOV_LINKAGE): Make sure it is #defined.
4121         (gcov_write_string, gcov_write_tag, gcov_write_length,
4122         gcov_read_string, gcov_time): Poison in libgcov.
4123         (gcov_seek_end): Remove.
4124         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
4125         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
4126         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
4127         GCOV_TAG_SUMMARY_LENGTH): New #defines.
4128         (gcov_write_tag, gcov_write_length): Not in libgcov.
4129         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
4130         (gcov_write_tag, gcov_write_length): Not in libgcov.
4131         (gcov_write_tag_length): New.
4132         (gcov_write_summary): Use gcov_write_tag_length.
4133         * libgcov.c: Always #include gcov-io.h.
4134         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
4135         (GCOV_LINKAGE): Define to nothing for L_gcov.
4136         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
4137         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
4138         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
4139         (read_count_file): Likewise.
4140         * gcov-dump.c (dump_file): Likewise.
4141         * coverag.c (read_counts_file): Likewise.
4142
4143 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
4144
4145         PR other/10658
4146         * gcc.c (process_command): Update copyright date.
4147
4148 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
4149
4150         * doc/install.texi (mips-*-*):  Add note about libstdc++.
4151
4152 2003-05-06  DJ Delorie  <dj@redhat.com>
4153
4154         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
4155         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
4156         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
4157
4158 2003-05-06    <neil@cat.daikokuya.co.uk>
4159
4160         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
4161         and -Wstrict-prototypes if C++.
4162
4163 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
4164
4165         * config/rs6000/linuxspe.h: New file.
4166
4167         * config.gcc: Add powerpc-*-linux-gnuspe* target.
4168
4169 2003-05-06  Richard Henderson  <rth@redhat.com>
4170
4171         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
4172         previous frame didn't save sp.  Clear sp for next frame.
4173         (uw_install_context_1): Honor saved sp from frame.
4174
4175 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
4176
4177         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
4178         (mips_move_1word, mips_move_2words): Remove declaration.
4179         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
4180         (mips_restore_gp): Remove insn argument.
4181         * config/mips/mips.h (FP_REG_RTX_P): New macro.
4182         * config/mips/mips.c (volatile_buffer): Remove.
4183         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
4184         (mips_move_1word, mips_move_2words): Remove, replacing with...
4185         (mips_output_move): ...this new function.
4186         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
4187         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
4188         handling of floating-point constants.  Handle zero CONST_DOUBLE
4189         arguments.
4190         (mips_annotate_frame_insn): Replace with...
4191         (mips_set_frame_expr): ...this, which just takes one argument.
4192         (mips_frame_set): Change the register argument to an rtx.
4193         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
4194         check whether moves should be split.  Use mips_split_64bit_move
4195         to split them.  Use mips_subword to generate the high and low
4196         parts of a paired FPR.  Adjust calls to frame_set and
4197         mips_set_frame_expr.
4198         (mips_expand_prologue): Simplify due to above changes.
4199         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
4200         targets, replacing xisting register-only versions.
4201         (UNSPEC_STORE_DF_HIGH): New unspec.
4202         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
4203         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
4204         (*paradoxical_extendhidi2): Remove.
4205         (movdi_internal, movdi_internal2): Use mips_output_move.
4206         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
4207         (movsf_internal1, movsf_internal2): Likewise.
4208         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
4209         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
4210         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
4211         Add m <- G alternative.
4212         (load_df_low, load_df_high, store_df_low): New patterns.
4213         (movhi_internal): Use @ template instead of calling a function.
4214         Remove unnecessary 'z' alternatives.
4215         (movqi_internal): Likewise.
4216         (exception_receiver): Update call to mips_restore_gp.
4217
4218 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
4219
4220         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
4221         (mips_delegitimize_address): Declare.
4222         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
4223         (FIND_BASE_TERM): Define.
4224         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
4225         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
4226         Handle small-data addresses.
4227
4228 2003-05-05  Roger Sayle  <roger@eyesopen.com>
4229
4230         * real.c (real_powi): New function to calculate the value of
4231         a real raised to an integer power, i.e. pow(x,n) for int n.
4232         (real_sqrt): Convert to using the faster do_add, do_multiply
4233         and do_divide API for consistency with the rest of real.c.
4234         * real.h (real_powi): Prototype here.
4235         * builtins.c (fold_builtin):  Avoid local variable mode when
4236         evaluating sqrt at compile time.  Attempt to evaluate pow at
4237         compile-time, by checking for an integral exponent.
4238
4239 2003-05-05  Richard Henderson  <rth@redhat.com>
4240
4241         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
4242
4243 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
4244
4245         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
4246         other FreeBSD ports.
4247         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
4248         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
4249
4250 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
4251
4252         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
4253         expanded variables.
4254         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
4255
4256 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
4257
4258         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
4259         * varasm.c (struct varasm_status): Add deferred_constants field.
4260         (n_deferred_strings): Delete variable.
4261         (n_deferred_constants): New #define.
4262         (struct constant_descriptor_tree): Kill next and label fields.
4263         (const_hash_table, MAX_HASH_TABLE): Delete.
4264         (const_desc_htab): New static variable.
4265         (const_hash): Rename const_desc_hash, and make it fit the
4266         hashtab.h interface.
4267         (const_desc_eq): New.
4268         (const_hash_1, compare_constant): Const-ify arguments.
4269         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
4270         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
4271         (output_constant_def): Do the lookup/insert using the
4272         hashtab.h interface.  Don't muck with n_deferred_constants or
4273         DEFERRED_CONSTANT_P here.
4274         Always call maybe_output_constant_def_contents.
4275         (maybe_output_constant_def_contents): Take a pointer to the
4276         descriptor, not the EXP and RTL separately.  Return
4277         immediately if this constant is not deferred.  Defer output of
4278         everything, except writable string constants.  Update
4279         n_deferred_constants here.
4280         (output_constant_def_contents): Now takes just one argument,
4281         an rtx.  Clear DEFERRED_CONSTANT_P here.
4282         (mark_constant_pool): Update for rename of n_deferred_strings.
4283         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
4284
4285         (init_varasm_status): Clear p->deferred_constants.
4286         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
4287
4288 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4289
4290         * builtins.c (expand_builtin_stpcpy): Only expand when the length
4291         of the source string can be evaluated at compile-time.
4292
4293 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
4294
4295         * testsuite/gcc.c-torture/compile/simd-6.c: New.
4296
4297         * c-typeck.c (digest_init): Handle arrays of vector constants.
4298
4299 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
4300
4301         * builtins.c (expand_builtin_mempcpy): New function.
4302         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
4303         ignored into strcpy no matter what arguments it has.
4304         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
4305         expand_builtin_mempcpy.
4306
4307 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
4308
4309         * testsuite/gcc.dg/20030505.c: New.
4310
4311         * c-typeck.c (convert_for_assignment): Opaque pointers can
4312         interconvert.
4313
4314         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
4315         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
4316         (spe_init_builtins): Rename all pv2si_type_node to
4317         opaque_p_V2SI_type_node.
4318         Remove declaration of pv2si_type_node.
4319         (is_ev64_opaque_type): Accept opaque pointers.
4320
4321 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
4322
4323         * config/rs6000/rs6000.c (validate_condition_mode): Use
4324         flag_finite_math_only.
4325         (rs6000_reverse_condition): Never return UNKNOWN; use
4326         flag_finite_math_only.
4327         (rs6000_generate_compare): Use flag_finite_math_only.
4328         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
4329         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
4330         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
4331
4332         * toplev.c (check_global_declarations): Suppress not-used warning
4333         for volatile variables.
4334
4335 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
4336
4337         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
4338         usage of bitfield instructions for mode1 != BLKmode, only ignoring
4339         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
4340         (store_field): Likewise.
4341
4342 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
4343
4344         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
4345         evsubifw to builtins accepting 5-bit unsigned constants.
4346         (easy_vector_constant): Return if V1DImode.  Fix typo.
4347
4348 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
4349
4350         * config/rs6000/spe.h: Revert licensing change from last patch.
4351
4352 2003-05-05  DJ Delorie  <dj@redhat.com>
4353
4354         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
4355         before reload, but defer the split until after.
4356         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
4357         to match.
4358
4359 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
4360
4361         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
4362         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
4363
4364 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4365
4366         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
4367         is defined.
4368
4369 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4370
4371         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
4372         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
4373         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
4374
4375         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
4376         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
4377         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
4378         New.
4379
4380         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
4381         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
4382
4383         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
4384         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
4385         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
4386         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
4387         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
4388         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
4389         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
4390         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
4391         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
4392         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
4393         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
4394         BUILT_IN_STRDUP): Add "nonnull" attribute.
4395
4396 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4397
4398         * expr.c (store_field): Don't clobber TEMP in shift: it might be
4399         a variable.
4400         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
4401         whose purpose is to step up the alignment.
4402         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
4403
4404         * stor-layout.c (compute_record_mode): Relax restriction
4405         on fields crossing word boundaries forcing BLKmode.
4406
4407 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
4408
4409         * cppinit.c (cpp_create_reader, post_options): Warn about
4410         trigraphs unless explicity set or -trigraphs.
4411         * cpplex.c (warn_in_comment): New.
4412         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
4413         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
4414         * doc/cppopts.texi, doc/cpp.texi: Update.
4415
4416 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4417
4418         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
4419         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
4420         namespace clash.
4421         (GCOV_MERGE_FUNCTIONS): New.
4422         (gcov_merge_fn): Declare.
4423         (struct gcov_ctr_info): New field "merge".
4424         (__gcov_merge_add): Declare.
4425         * coverage.c (ctr_merge_functions): New.
4426         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
4427         of gcov_ctr_info type.
4428         * libgcov.c (__gcov_merge_add): New.
4429         (gcov_exit): Call a hook to merge values of counters.
4430
4431 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
4432
4433         * toplev.h (pedwarn_with_file_and_line): Don't declare.
4434         * diagnostic.c (pedwarn_with_file_and_line): Remove.
4435
4436 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4437
4438         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
4439
4440 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4441
4442         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
4443         expand_builtin_frame_address): Update prototypes.
4444         (expand_builtin_constant_p, expand_builtin_strlen,
4445         expand_builtin_strcpy, expand_builtin_memset,
4446         expand_builtin_bzero, expand_builtin_args_info,
4447         expand_builtin_frame_address): Pass in just the argument(s)
4448         needed, not the entire expression `exp'.
4449         (expand_builtin): Update all calls to these functions.
4450
4451 2003-05-03  Richard Henderson  <rth@redhat.com>
4452
4453         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
4454         <BUILT_IN_DWARF_SP_COLUMN>: New.
4455         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
4456         (BUILT_IN_DWARF_SP_COLUMN): New.
4457         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
4458         (expand_builtin_dwarf_sp_column): New.
4459         * except.h: Update to match.
4460         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
4461         (execute_cfa_program): Record location expression address
4462         before extracting length.
4463         (uw_update_context_1): Install old CFA into stack pointer column.
4464         (uw_init_context_1): Set cfa_reg to stack pointer column.
4465
4466 2003-05-03  Richard Henderson  <rth@redhat.com>
4467
4468         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
4469         return bool.
4470         (toc_relative_expr_p): Likewise.
4471         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
4472         (legitimate_constant_pool_address_p): Move from rs6000.h, change
4473         into a function, downcase all users.
4474         (legitimate_small_data_p): Likewise.
4475         (legitimate_offset_address_p): Likewise.
4476         (legitimate_indexed_address_p): Likewise.
4477         (legitimate_indirect_address_p): Likewise.
4478         (legitimate_lo_sum_address_p): Likewise.
4479         (rs6000_mode_dependent_address): Likewise.
4480         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
4481         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
4482         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
4483         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
4484         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
4485         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
4486         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
4487         * config/rs6000/rs6000-protos.h: Update.
4488
4489 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
4490
4491         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
4492         (REVERSE_CONDITION): Define.
4493
4494         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
4495         to branch_positive_comparison_operator.
4496         (ccr_bit): Check that sCOND conditions are actually a positive bit.
4497         (print_operand): Remove %D substitution.
4498         (rs6000_emit_sCOND): Generate complement operation to ensure that
4499         sCOND input is a positive bit.
4500         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
4501         same order as bCOND, and add the missing ones.  Remove the %D
4502         substitutions from the scc patterns.
4503
4504         * simplify-rtx.c (simplify_relational_operation): Add case for
4505         ! (fabs(x) < 0.0).
4506
4507 2003-05-03  Bruce Korb  <bkorb@gnu.org>
4508
4509         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
4510         in fixincl.x
4511         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
4512
4513 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
4514
4515         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
4516
4517 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
4518
4519         PR c/10604
4520         * c-common.c (warn_sign_compare): Initialize to -1.
4521         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
4522         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
4523         for C++ only.
4524         (c_common_post_options): Set warn_sign_compare from extra_warnings
4525         if it's still -1 at this point.
4526
4527         * toplev.c (maybe_warn_unused_parameter): New static variable.
4528         (set_Wextra): New static function.
4529         (W_options): Remove "extra".
4530         (decode_W_option): Call set_Wextra.
4531         (independent_decode_option): Likewise.
4532         (set_Wunused): Cooperate with set_Wextra in setting
4533         warn_unused_parameter.
4534         (rest_of_compilation): No need to check extra_warnings as
4535         well as warn_uninitialized.
4536
4537         * c-typeck.c (build_binary_op, build_conditional_expr):
4538         No need to check extra_warnings as well as warn_sign_compare.
4539         (internal_build_compound_expr): No need to check extra_warnings
4540         as well as warn_unused_value.
4541         * function.c (expand_function_end): No need to check extra_warnings
4542         as well as warn_unused_parameter.
4543         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
4544         as well as warn_unused_value.
4545
4546         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
4547
4548         * Makefile.in: Disable -Werror for gengtype-lex.o.
4549
4550 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
4551
4552         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
4553         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
4554         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
4555         * calls.c (emit_call_1): Likewise.
4556         (expand_call): For calls initializing constant memory, replace
4557         emission of standalone mem /u clobber with function usage entry.
4558         * expr.c (emit_block_move_via_libcall): Likewise.
4559         * cse.c (count_reg_usage, case EXPR_LIST): New case.
4560         * flow.c (propagate_one_insn): Pass entire operand of
4561         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
4562         * integrate.c (try_constants): For CALL_INSNs, substitute constants
4563         within the FUNCTION_USAGE also.
4564         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
4565         FUNCTION_USAGE lists.
4566         * reload1.c (replace_pseudos_in): Renamed.
4567         (reload): Use it for clobbers surviving until the end of the reload.
4568
4569 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4570
4571         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
4572         gen_lowpart on non-integer modes.
4573
4574         * stor-layout.c (place_field): When adjusting offset_align, use
4575         desired_align, not DECL_ALIGN.
4576
4577 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
4578
4579         * c-decl.c (pending_invalid_xref_file): Remove.
4580         (pending_invalid_xref_line): Remove.
4581         (pending_invalid_xref_location): New.
4582         (lookup_label): Use location_t and input_location directly.
4583         (lookup_tag): Likewise.
4584         (pending_xref_error): Likewise.
4585         (c_expand_body_1): Likewise.
4586         * c-common.c (x_expand_start_cond): Likewise.
4587         * c-semantics.c (genrtl_for_stmt): Likewise.
4588         (find_reachable_label): Likewise.
4589         * expr.c (expand_expr): Likewise.
4590         * integrate.c (output_inline_function): Likewise.
4591         * tree-inline.c (find_alloca_call): Likewise.
4592         (find_builtin_longjmp_call): Likewise.
4593         * gcc.c (input_filename): Make static.
4594
4595 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
4596
4597         * config/mips/mips.md: Fix comment typo.
4598
4599         * config/mips/mips.c (mips_integer_op): New structure.
4600         (MIPS_MAX_INTEGER_OPS): Define.
4601         (mips_const_insns): Use mips_build_integer to determine the number
4602         of instructions needed to load a CONST_INT.
4603         (move_operand): Reject compound CONST_INTs.
4604         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
4605         (mips_move_integer): New fn.
4606         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
4607         (mips_legitimize_move): Only legitimize constants when moving
4608         word or subword values.
4609
4610 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
4611
4612         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
4613
4614 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4615
4616         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
4617         modifying it.
4618
4619 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
4620             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4621
4622         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
4623         Hernandez, and Kazu Hirata.  Update Richard Henderson.
4624
4625 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
4626
4627         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
4628         to tentative declaration.
4629
4630         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
4631         (SYMBOL_FLAG_SMALL_V4): Delete.
4632         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
4633         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
4634         (rs6000_elf_in_small_data_p): Add extra section names.  Add
4635         comment about TREE_PUBLIC test.
4636
4637         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
4638         expand_stmt on result of expand_unreachable_stmt.
4639
4640 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4641
4642         * doc/contrib.texi (Contributors): Add Daniel Berlin.
4643
4644 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
4645
4646         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
4647         number of automata.
4648
4649         * config/rs6000/rs6000.c (symbol_ref_operand): Check
4650         SYMBOL_REF_FUNCTION_P on AIX.
4651         (current_file_function_operand): Same.
4652         * config/rs6000/rs6000.md (call,call_value): Force non-function
4653         symbol_ref into register on AIX.
4654
4655 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
4656
4657         * calls.c (struct arg_data): Move offset, slot_offset, size and
4658         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
4659         (initialize_argument_information): Adjust call to locate_and_pad_parm.
4660         Delete alignment_pad var.  Don't calculate slot_offset here.
4661         (emit_library_call_value_1): Delete alignment_pad, offset and size
4662         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
4663         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
4664         partial in-regs here.  Formatting fixes.
4665         * expr.h (struct locate_and_pad_arg_data): New struct.
4666         (locate_and_pad_parm): Adjust declaration.
4667         * function.c (assign_parms): Localize vars.  Use "locate" instead of
4668         other arg location vars.  Don't invoke FUNCTION_ARG or
4669         FUNCTION_INCOMING_ARG unless pretend_named is different from
4670         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
4671         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
4672         Use slot_offset for stack home of reg parms.  Correct test for
4673         parm passed in memory.  Formatting fixes.
4674         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
4675         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
4676         Correct initial_offset_ptr handling.  Localize vars.  Always pad
4677         locate->offset even when in_regs.
4678
4679 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
4680
4681         * Makefile.in (TREE_H): Replace location.h with input.h.
4682         (GTFILES) Remove location.h
4683         (gt-lists.h): Replace gt-location.h with gt-input.h
4684         * input.h (input_filename, input_line): Remove variables.
4685         (location_s, location_t): Move from location.h.
4686         (input_location): New.
4687         (input_filename, input_line): New #defines.
4688         * location.h: Remove.
4689         * tree.h: Replace location.h with input.h.
4690         (input_filename, input_line): Remove.
4691         * diagnostic.h: Replace location.h with input.h.
4692         * gcc.h (input_filename, input_filename_length): Remove declarations.
4693         * toplev.c (input_filename, input_line): Remove.
4694         (input_location): Define.
4695         (push_srcloc, pop_srcloc): Adjust.
4696         * diagnostic.c (diagnostic_report_current_module): Adjust.
4697
4698 2003-05-02  Nick Clifton  <nickc@redhat.com>
4699
4700         * configure.in: Add xstormy16 to list of targets that has a nop
4701         instruction and hence which can be tested to see if the
4702         assembler supports the --gdwarf2 switch.
4703         * configure: Regenerate.
4704
4705 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
4706
4707         PR target/8257
4708         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
4709         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
4710         Avoid undefined shifts by making the shift operand unsigned.
4711
4712 2003-05-01  DJ Delorie  <dj@redhat.com>
4713
4714         * reload.c (find_reloads): Also check that all of a multi-reg
4715         value is in the class.
4716
4717 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
4718
4719         * scan.h (lineno): Revert the rename here.
4720
4721 2003-05-01  Stan Shebs  <shebs@apple.com>
4722
4723         * config/darwin.c (darwin_encode_section_info): Call
4724         default_encode_section_info.
4725
4726 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
4727
4728         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
4729         (movsi_internal1): Use new mfjmpr attribute.
4730         (movhi_internal): Same.
4731         (movqi_internal): Same.
4732         (movcc_internal1): Same.
4733         (movdi_internal64): Same.
4734         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
4735         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
4736         * config/rs6000/40x.md: Add fpu_405.
4737         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
4738         into power4misc automata.  Remove extraneous parentheses.
4739         * config/rs6000/440.md: New file.
4740         * config/rs6000/rs6000.c (processor_target_table): Add 440,
4741         440fp.  Rename 405f to 405fp.
4742         (function_arg_padding): Correct formatting.
4743         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
4744
4745 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
4746
4747         * input.h (lineno): Rename to ...
4748         (input_line): ... here.
4749         * tree.h (lineno): Rename to ...
4750         (input_line): ... here.
4751         * scan.h (lineno): Rename to ...
4752         (input_line): ... here.
4753         * toplev.c (lineno): Rename to ...
4754         (input_line): ... here.
4755         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
4756         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
4757         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
4758         store_parm_decls, c_expand_body_1): Likewise.
4759         * c-errors.c (pedwarn_c99): Likewise.
4760         * c-format.c (status_warning): Likewise.
4761         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
4762         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
4763         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
4764         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
4765         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
4766         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
4767         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
4768         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
4769         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
4770         * coverage.c (create_coverage): Likewise.
4771         * diagnostic.c (pedwarn, sorry, error, fatal_error,
4772         internal_error, warning, diagnostic_report_current_module,
4773         inform): Likewise.
4774         * expr.c (expand_expr): Likewise.
4775         * integrate.c (expand_inline_function,
4776         output_inline_function): Likewise.
4777         * rtl-error.c (file_and_line_for_asm): Likewise.
4778         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
4779         walk_tree): Likewise.
4780         * tree.c (make_node): Likewise.
4781         * ada, cp, f, java, objc, treelang: Likewise.
4782         * objc/objc-act.c (objc_init): Rename lineno to input_line.
4783         (build_module_descriptor, build_selector_translation_table,
4784         build_protocol_template, build_method_prototype_list_template,
4785         build_category_template, build_selector_table,
4786         build_class_template, build_super_template, build_ivar_template,
4787         build_ivar_list_template, build_method_list_template,
4788         build_method_template, add_instance_variable): Likewise.
4789
4790         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
4791         name from input_filename.
4792
4793 2003-04-30  Eric Christopher  <echristo@redhat.com>
4794             Richard Sandiford <rsandifo@redhat.com>
4795
4796         * configure: Regenerate from patches below.
4797         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
4798         for all symbolic operands.
4799         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
4800         to function.
4801         * config/mips/linux.h: Fix typo.
4802         * Merge from mips-3_4-rewrite branch:
4803
4804         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
4805
4806                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
4807                 handling local labels when TARGET_ABICALLS.
4808
4809         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
4810
4811                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
4812                 integer argument.
4813                 (mips_expand_call): Likewise.
4814                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
4815                 (FIXED_REGISTERS): Clear $31 entry.
4816                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
4817                 (EPILOGUE_USES): Define.
4818                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
4819                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
4820                 (override_options): Add a 'j' register class.
4821                 (mips_expand_call): Handle sibcalls
4822                 (mips_expand_epilogue): Handle epilogues for sibcalls.
4823                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
4824                 (sibcall_epilogue): New pattern.
4825                 (call, call_value): Adjust calls to mips_expand_call.
4826                 (sibcall, sibcall_value): New expanders.
4827                 (sibcall_internal, sibcall_value_internal): New patterns.
4828                 (sibcall_value_multiple_internal): New pattern.
4829
4830         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
4831
4832                 * config/mips/mips.md (extended_mips16): New attribute.
4833                 (define_attr length): Default to 8 if extended_mips16 == yes.
4834                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
4835                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
4836                 (call_internal): Set extended_mips16 to yes for direct jumps.
4837                 Remove redundant mode attribute.
4838                 (call_value_internal, call_value_multiple_internal): Likewise.
4839                 (call_split): Remove redundant mode attribute.
4840                 (call_value_split, call_value_multiple_split): Likewise.
4841
4842                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
4843                 of unaligned offsets.
4844
4845                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
4846                 of SYMBOL_GENERAL.
4847
4848         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4849
4850                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
4851                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
4852                 for mips16 code.
4853
4854         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4855
4856                 * config/mips/mips.h (ADDRESS_COST): Define.
4857
4858         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
4859
4860                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
4861                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
4862                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
4863
4864         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
4865
4866                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
4867                 of a two-instruction sequence.  Add register->memory alternative.
4868                 (truncdihi2, truncdiqi2): Likewise.
4869                 Rework shift/truncate instructions so that they only handle right
4870                 shifts of 32 (or more, in the case of arithmetic shifts).
4871                 Add patterns for truncate/sign-extend.
4872
4873         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4874
4875                 * configure.in (mips*-*-*): Check for explicit relocation support.
4876                 * configure: Regenerate.
4877
4878         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4879
4880                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
4881                 and -mno-explicit-relocs.
4882                 (MASK_EXPLICIT_RELOCS): Define.
4883                 (TARGET_EXPLICIT_RELOCS): Use it.
4884                 (mips_split_addresses): Remove declaration.
4885                 * config/mips/mips.c (override_options): Update comment for
4886                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
4887
4888         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4889
4890                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
4891                 a CONST as identity.  Check the return value of gen_lowpart_common.
4892
4893         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4894
4895                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
4896                 references for TARGET_EXPLICIT_RELOCS.
4897                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
4898                 !TARGET_MIPS16.
4899
4900         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4901
4902                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
4903                 (addsi3): Remove redundant constraints.
4904                 (addsi3_internal): Use separate register & constant alternatives.
4905                 Use a 'Q' constraint and "addiu" insn for the latter.
4906                 (adddi3_internal_3, addsi3_internal_2): Likewise.
4907
4908         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4909
4910                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
4911                 (mips_expand_unaligned_store): Declare.
4912                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
4913                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
4914                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
4915                 (UNSPEC_ULD, UNSPEC_USD): Remove.
4916                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
4917                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
4918                 (extv, extzv): Use mips_expand_unaligned_load.
4919                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
4920                 predicate for operand 3.
4921                 (movsi_ulw, movsi_usw): Replace with...
4922                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
4923                 (movdi_uld, movdi_usd): Likewise replace with...
4924                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
4925
4926         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
4927
4928                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
4929                 * config/mips/mips.h (LEA_REGS): New register class.
4930                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
4931                 (GR_REG_CLASS_P): Include LEA_REGS.
4932                 (DANGEROUS_FOR_LA25_P): New macro.
4933                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
4934                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
4935                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
4936                 entries to LEA_REGS.
4937                 (mips_global_pic_constant_p): New function.
4938                 (override_options): Add 'e' register constraint.
4939                 (mips_secondary_reload_class): Return LEA_REGS when reloading
4940                 a dangerous constant into a class containing $25.
4941                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
4942                 (movsi_internal): Likewise.
4943
4944         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4945
4946                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
4947                 * config/mips/mips.md (call_split): New insn.
4948                 (call_value_split, call_value_multiple_split): New insns.
4949                 (call_internal): Turn into a define_insn_and_split.  Split the
4950                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
4951                 (call_value_internal, call_value_multiple_internal): Likewise.
4952
4953         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4954
4955                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
4956                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
4957                 (mips_encode_section_info): Don't take symbol visibility into
4958                 account if TARGET_ABICALLS.  Add more commentary.
4959                 * config/mips/mips.md: Add commentary above reloc constants.
4960
4961         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
4962
4963                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
4964                 from mips_legitimize_move.  Legitimize constant pool references.
4965                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
4966                 a REG_EQUAL note to the last instruction.
4967
4968         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
4969
4970                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
4971                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
4972                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
4973                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
4974                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
4975                 (UNSPEC_RELOC_GPREL16): Rename to...
4976                 (RELOC_GPREL16): ...this.
4977                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
4978                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
4979                 (macro_calls): New attribute.
4980                 (length): Use it to set the default length of calls.  Don't allow
4981                 calls to have delay slots if macro_calls is "yes".
4982                 (luisi, luidi): New patterns.
4983                 (lowsi, lowdi): Use '%R' to print the relocation.
4984                 (lowdi_extend): Remove.
4985                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
4986                 (call_internal): Merge alternatives.  Always use "jal".
4987                 (call_value_internal, call_value_multiple_internal): Likewise.
4988                 (reloc_gprel16): Remove.
4989                 * config/mips/mips.c (mips_got_alias_set): New variable.
4990                 (mips_classify_constant): Handle the new relocation constants.
4991                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
4992                 (mips_symbolic_address_p): Return false if generating explicit relocs.
4993                 Otherwise allow local PIC symbols to have an offset.
4994                 (mips_splittable_symbol_p): New function.
4995                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
4996                 (mips_const_insns): Always accept HIGH.
4997                 (call_insn_operand): Don't accept global symbols if using explicit
4998                 relocs.
4999                 (move_operand): Don't accept HIGH when generating PIC.
5000                 (mips_reloc, mips_lui_reloc): New functions.
5001                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
5002                 be a valid right-hand-side for a SET pattern.
5003                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
5004                 (mips_emit_high): New function.
5005                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
5006                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
5007                 address should be used.  Use mips_emit_high to generate the
5008                 high part of such an address.  Adjust the global symbol + offset
5009                 case to match the change to mips_force_temprorary.
5010                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
5011                 If generating explicit-reloc PIC, load the address of global
5012                 symbols from the GOT.  Use mips_emit_high to emit the high part
5013                 of an address.
5014                 (mips_simplify_dwarf_addr): New function.
5015                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
5016                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
5017                 (mips_expand_call): Load the addresses of global functions using
5018                 %call* relocs if generating explicit-reloc PIC.  Don't generate
5019                 an exception_receiver pattern.
5020                 (override_options): Initialize mips_got_alias_set.
5021                 (print_relocation): Remove in favour of...
5022                 (mips_reloc_string): ...this new function.
5023                 (print_operand): Handle '%R'.  Use mips_reloc_string.
5024                 (print_operand_address): Use print_operand to print the symbolic
5025                 part of a LO_SUM address.
5026                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
5027                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
5028                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
5029                 for local symbols.
5030
5031         2003-02-02  Eric Christopher  <echristo@redhat.com>
5032
5033                 * config/mips/mips.c (mips_sign_extend): Remove.
5034                 * config/mips/mips-protos.h: Ditto.
5035                 * config/mips/mips.md (movdi_internal2_extend): Remove.
5036                 (extendsidi2): Fix mode of convert_memory_address.
5037
5038         2003-01-24  Eric Christopher  <echristo@redhat.com>
5039
5040                 * config/mips/mips.md: Rewrite zero_extend* and extend*
5041                 patterns. Use explicit instructions and split after reload
5042                 for register extensions.
5043                 (ashlsi3_internal1_extend): New combiner pattern for
5044                 shift and extend combinations.
5045                 * config/mips/mips.h: Change Pmode back to ptr_mode
5046                 for performance enhancement.
5047                 * combine.c (expand_compound_operation): Make sure
5048                 that zero_extend operation is profitable.
5049
5050         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
5051
5052                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
5053                 addresses depend on ptr_mode rather than Pmode.
5054                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
5055                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
5056                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
5057                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
5058                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
5059                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
5060                 (tablejump_internal1): Remove condition.
5061                 (tablejump_internal2): Change condition to TARGET_64BIT.
5062                 (cpaddsi): Rename to...
5063                 (cpadd): ...this.
5064                 (cpadddi): Remove.
5065
5066         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
5067
5068                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
5069                 mips_address_cost, mips_check_split, double_memory_operand,
5070                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
5071                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
5072                 (mips_legitimate_address_p): Return bool.
5073                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
5074                 mips_legitimize_address, mips_legitimize_move,
5075                 mips_expand_call): Declare.
5076                 (mips_return_addr): Move outside #ifdef RTX_CODE.
5077
5078                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
5079                 (PIC_FN_ADDR_REG): New reg_class.
5080                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
5081                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
5082                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
5083                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
5084                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
5085                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
5086                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
5087                 (LEGITIMATE_PIC_OPERAND): Undefine.
5088                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
5089                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
5090                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
5091                 (FUNCTION_MODE): Change to SImode.
5092                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
5093                 most constants.  Treat const_artih_operands specially if they
5094                 occur in a PLUS or MINUS.
5095                 (CONSTANT_POOL_COST): New macro.
5096                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
5097                 Add LO_SUM handling.
5098                 (ADDRESS_COST): Undefine.
5099                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
5100                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
5101                 to call_insn_operand and remove CONST_INT.
5102
5103                 * config/mips/mips.c: Include integrate.h.
5104                 (SINGLE_WORD_MODE_P): New macro.
5105                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
5106                 (mips_constant_info, mips_address_info): New structs.
5107                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
5108                 (mips_classify_constant, mips_classify_symbol,
5109                 mips_valid_base_register_p, mips_symbolic_address_p,
5110                 mips_classify_address, mips_symbol_insns,
5111                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
5112                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
5113                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
5114                 mips_print_relocation): New functions.
5115                 (const_arith_operand): New operand predicate.
5116                 (arith_operand): Use it.
5117                 (mips_const_double_ok, mips16_simple_memory_operand,
5118                 simple_memory_operand, double_memory_operand, mips_check_split,
5119                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
5120                 mips16_gp_offset_p, mips16_output_gp_offset,
5121                 mips16_constant_after_function_p, mips16_constant): Remove.
5122                 (call_insn_operand): Be more fussy about symbolic constants.
5123                 Use register_operand.
5124                 (move_operand): Use mips_symbolic_address_p to check symbolic
5125                 operands and general_operand to check the rest.
5126                 (symbolic_operand): Use mips_classify_constant.
5127                 (mips_legitimate_address_p): Use mips_classify_address.
5128                 (mips_move_1word): Combine handling of symbolic addresses.
5129                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
5130                 (move_move_2words): Likewise.  Assume addresses are offsettable
5131                 if they need to refer to more than one word.  Add HIGH handling.
5132                 (mips_restore_gp): Use ptr_mode for the GP save slot.
5133                 (mips_expand_call): New function, combining the old mips.md
5134                 call and call_internal define_expands.  If the address isn't
5135                 a call_insn_operand, force it into a register.  For SVR4 PIC,
5136                 emit an exception_receiver instruction after the call.
5137                 (override_options): Only override flag_pic for TARGET_ABICALLS
5138                 if it is currently zero.  Allow mips_split_addresses when
5139                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
5140                 Add new register class letter, 'c'.
5141                 (print_operand): Use mips_classify_constant for constant operands.
5142                 (print_operand_address): Use mips_classify_address.
5143                 (mips_output_function_prologue): Don't use .cprestore.
5144                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
5145                 via the frame pointer if current_function_calls_eh_return.
5146                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
5147                 to mark whether a symbol is local or global.
5148                 (build_mips16_call_stub): Expect the address of the function rather
5149                 than a MEM reference to it.  Update call generation sequences.
5150                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
5151                 small-data adjustments.
5152
5153                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
5154                 length for loads and stores.
5155                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
5156                 (define_attr type): Add const and prefetch.
5157                 (define_attr length): Use mips_const_insns for const instructions.
5158                 Use mips_fetch_insns for load and store instructions.
5159                 (define_attr single_insn): New.
5160                 (define_attr can_delay): Use it.
5161                 (define_attr abicalls): Remove.
5162                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
5163                 (addsi3_internal_2): Add 'Q' constraint.
5164                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
5165                 (high): Remove.
5166                 (lowsi): Renamed from low.
5167                 (lowdi): New pattern.
5168                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
5169                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
5170                 (loadgp): Change operand 0 to an immediate_operand.
5171                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
5172                 beforehand.
5173                 (cpaddsi, cpadddi): New patterns.
5174                 (tablejump_internal3, tablejump_internal4): Remove define_expands
5175                 and associated define_splits.
5176                 (call, call_value): Use mips_expand_call.
5177                 (call_internal): New, replacing all existing call_internal* insns.
5178                 (call_value_internal): Likewise call_value_internal*.
5179                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
5180                 (untyped_call): Remove if (operands[0]) magic.
5181                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
5182                 (prefetch_di_address, prefetch_di): Likewise.
5183                 (leasi, leadi): Remove.
5184                 (reloc_gprel16): New.
5185
5186                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
5187                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
5188                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
5189
5190         2003-01-08  Eric Christopher  <echristo@redhat.com>
5191
5192                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
5193                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
5194                 configure check for libgloss.
5195                 * config/mips/elf64.h: Ditto.
5196                 * config/mips/mips.c: Remove ABI_MEABI.
5197                 * config/mips/mips.h: Ditto.
5198
5199         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
5200
5201                 Fix merge fallout.
5202                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
5203                 (muldi3_internal): Remove outdated comment.
5204                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
5205                 (*smsac_di, *umsac_di): Likewise.  Reformat.
5206                 (umulsi3_highpart): Minor formatting tweaks.
5207                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
5208                 redundant scratch operand.  Minor formatting tweak.
5209                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
5210                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
5211                 (smulsi3_highpart): As for the unsigned version.
5212                 (smulsi3_highpart_internal): Likewise.
5213                 (smulsi3_highpart_mulhi_internal): Likewise.
5214                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
5215                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
5216                 (*smul_acc_di): Remove duplicated pattern.
5217                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
5218                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
5219                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
5220
5221         2002-10-22  Eric Christopher  <echristo@redhat.com>
5222
5223                 * config/mips/mips-protos.h (mips_return_addr): New.
5224                 * config/mips/mips.c (mips_return_addr): New.
5225                 (movdi_operand): Remove.
5226                 (se_register_operand): Ditto.
5227                 (se_reg_or_0_operand): Ditto.
5228                 (se_uns_arith_operand): Ditto.
5229                 (se_arith_operand): Ditto.
5230                 (se_nonmemory_operand): Ditto.
5231                 (extend_operator): Ditto.
5232                 (highpart_shift_operator): Ditto.
5233                 (mips_initial_elimination_offset): Remove return address pointer
5234                 elimination.
5235                 (mips_reg_names): Remove $ra.
5236                 (mips_regno_to_class): Ditto.
5237                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
5238                 and TARGET_64BIT.
5239                 (POINTER_BOUNDARY): Remove.
5240                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
5241                 (PROMOTE_MODE): Promote to Pmode.
5242                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
5243                 (Pmode): Define to TARGET_64BIT.
5244                 (FUNCTION_MODE): Define as Pmode.
5245                 (mips_args): Remove deleted functions.
5246                 (SIZE_TYPE): Depend on POINTER_SIZE.
5247                 (PTRDIFF_TYPE): Ditto.
5248                 (FIXED_REGISTERS): Fix extra registers.
5249                 (CALL_USED_REGISTERS): Ditto.
5250                 (CALL_REALLY_USED_REGISTERS): Ditto.
5251                 (RAP_REG_NUM): Remove.
5252                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
5253                 (RETURN_ADDR_RTX): Define to mips_return_addr.
5254                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
5255                 (CAN_ELIMINATE): Ditto.
5256                 * config/mips/mips.md: For DImode patterns, take into account
5257                 deletions above. Split mulsidi patterns into sign_extend and
5258                 zero_extend.
5259
5260         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
5261                     Michael Meissner  <meissner@redhat.com>
5262
5263                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
5264                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
5265                 mop up unnecessarly moves through LO.
5266                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
5267                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
5268                 change mtlo/macc sequences into mul/add sequences when a three-
5269                 address mul is available.
5270                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
5271                 (*mul_sub_si): Fix contraint for operand 5.
5272                 (*muls): Use in 32-bit code as well.
5273                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
5274                 if the destination is LO.  Remove duplicate define_split.
5275                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
5276                 (*msac_di): Likewise.  Fix formatting.
5277                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
5278                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
5279                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
5280                 (*xmulsi3_neg_highpart_mulhi): Likewise.
5281                 (*mul_acc_64bit_di): Remove.
5282                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
5283
5284         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
5285
5286                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
5287                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
5288                 (MULTILIB_DIRNAMES): Remove long32.
5289                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
5290                 (MULTILIB_REDUNDANT_DIRS): Remove.
5291
5292         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
5293
5294                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
5295                 * gcc.c (driver_self_specs): New variable.
5296                 (do_self_spec): New function.
5297                 (main): Use it to process driver_self_specs.
5298
5299         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
5300
5301                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
5302                 Remove DImode define_split for !TARGET_64BIT.
5303                 (anddi3): Remove !TARGET_64BIT support from here as well.
5304                 Change operand 2's predicate to se_uns_arith_operand.
5305                 Add constant alternatives to define_insn.
5306                 (iordi3, xordi3, *nordi3): Likewise.
5307                 (anddi3_internal1, xordi3_immed): Remove.
5308
5309         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
5310
5311                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
5312                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
5313                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
5314                 * config/mips/mips.md: Apply same renaming here.
5315
5316         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
5317
5318                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
5319                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
5320                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
5321                 * config/mips/mips.md (define_attr cpu): Remove r4320.
5322                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
5323
5324         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
5325
5326                 * config/mips/mips.c (mips16_strings): New variable.
5327                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
5328                 symbol in mips16_strings.  Free the list.
5329                 (mips_encode_section_info): Keep track of local strings.
5330
5331         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
5332
5333                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
5334                 (sordered_df, sordered_sf): Remove.
5335                 * config/mips/mips.c (get_float_compare_codes): New fn.
5336                 (gen_int_relational, gen_conditional_move): Use it.
5337
5338         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
5339
5340                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
5341                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
5342                 * config/mips/mips.c (fcc_register_operand): New function.
5343                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
5344                 (override_options): Allow TFmode values in float registers
5345                 if ISA_HAS_8CC.
5346                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
5347                 to fcc_register_operand.  Remove misleading source constraint.
5348                 Use mips_emit_fcc_reload.
5349                 (reload_outcc): Duplicate reload_incc.
5350
5351
5352 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
5353
5354         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
5355
5356 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
5357
5358         * tree-inline.c (inlinable_function_p): Back out last change, it's
5359         unnecessary.
5360
5361 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
5362
5363         * ggc-page.c (TREE_EXP_SIZE): Define.
5364         (extra_order_size_table): New entry for expr trees with
5365         two operands.
5366
5367 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
5368
5369         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
5370         (c_expand_start_cond): Adjust.
5371         (c_expand_end_cond): Don't use warning_with_file_and_file.
5372         (shadow_warning): Likewise.
5373
5374 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
5375
5376         * tree.h (DECL_POINTER_DEPTH): Remove.
5377         (struct tree_decl): Remove pointer_depth.
5378
5379 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
5380
5381         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
5382         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
5383         (rs6000_xcoff_encode_section_info): Remove.
5384         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
5385         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
5386         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
5387         Use SYMBOL_REF_FLAGS.
5388         (rs6000_elf_encode_section_info): Call default_encode_section_info for
5389         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
5390         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
5391         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
5392         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
5393         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
5394
5395 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
5396
5397         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
5398
5399 2003-04-30  Andreas Schwab  <schwab@suse.de>
5400
5401         * doc/extend.texi (Other Builtins): Enclose multiple word data
5402         type in braces for @deftypefn.
5403
5404 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5405
5406         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
5407
5408         * doc/install.texi (--enable-threads): Document "gnat" option.
5409
5410 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
5411
5412         * diagnostic.h (output_formatted_scalar): Tweak.
5413         * diagnostic.c (output_long_decimal): Likewise.
5414         (output_unsigned_decimal): Likewise.
5415         (output_long_unsigned_decimal): Likewise.
5416         (output_octal): Likewise.
5417         (output_long_octal): Likewise.
5418         (output_hexadecimal): Likewise.
5419         (output_long_hexadecimal): Likewise.
5420         (output_pointer): New function.
5421         (output_format): Use it.  Recognize "%p" format specifier.
5422
5423 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5424
5425         * function.c (purge_addressof_1): Postpone insn in fewer cases.
5426
5427 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
5428
5429         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
5430         call abort() after running out of stack space.
5431
5432         * c-typeck.c (function_types_compatible_p): Ignore incompatible
5433         'volatile' qualifiers on a function's return type in GNU mode.
5434
5435 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
5436
5437         * expr.c (emit_group_load): Dump parallels of simd types to
5438         memory.
5439
5440 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
5441
5442         * genautomata.c (add_vect): Check undefined value for range type
5443         too.
5444
5445 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
5446
5447         * configure.in:  More general test for cmp --ignore-initial.
5448         * configure:  Regenerate.
5449
5450 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5451
5452         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
5453         (layout_decl, place_field): Likewise.
5454         Also make minor type and whitespace changes.
5455
5456         * tree.c (save_expr): Don't fold a COMPONENT_REF.
5457
5458 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
5459
5460         * calls.c (expand_call): When modes of target and valreg match, force
5461         sibcall failure when target is a MEM.
5462
5463 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
5464
5465         * tree-inline.c (inlinable_function_p): Don't support inlining
5466         functions using varargs.
5467
5468         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
5469
5470         * dwarf2out.c (output_call_frame_info): No need to output EH
5471         unwind information if all_throwers_are_sibcalls.
5472
5473         * c-semantics.c (expand_unreachable_stmt): Return a tree.
5474         (expand_stmt): Update for change to expand_unreachable_stmt.
5475         (expand_unreachable_if_stmt): Likewise.
5476
5477         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
5478
5479 2003-04-29  Jason Merrill  <jason@redhat.com>
5480
5481         PR middle-end/10336
5482         * jump.c (never_reached_warning): Really stop looking if we reach
5483         the beginning of the function.
5484
5485 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
5486
5487         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
5488         Remove redundant macros.
5489         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
5490         (LOCAL_LABEL_PREFIX): Define unconditionally.
5491         (NO_DOT_IN_LABEL): Clarify comment.
5492         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
5493         definition to "long int".
5494
5495 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
5496
5497         bootstrap/10452
5498         * gengtype-yacc.y: Improve portability.
5499
5500 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
5501
5502         * config.gcc: Install obsolete target list for GCC 3.3.
5503         * doc/install.texi: Mention in specific-target instructions
5504         that certain configurations are deprecated.
5505
5506 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
5507
5508         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
5509
5510 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5511
5512         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
5513         * gcc.c (display_help): Likewise.
5514         * toplev.c (f_options): Likewise.
5515         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
5516         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
5517         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
5518         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
5519         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
5520
5521 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
5522
5523         * varasm.c (default_assemble_visibility): Use assemble_name.
5524
5525 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
5526
5527         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
5528         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
5529         (SIZE_TYPE): New macro.
5530         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
5531         (SET_ASM_OP): New macro.
5532         (HANDLE_SYSV_PRAGMA): New macro.
5533         (ASM_WEAKEN_LABEL): New macro.
5534
5535 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
5536
5537         PR c++/10180
5538         * tree-inline.c (expand_call_inline): Call push_srcloc when
5539         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
5540
5541 2003-04-28  Mike Stump  <mrs@apple.com>
5542
5543         * gdbinit.in: Update to reflect new identifier structure.
5544
5545 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
5546
5547         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
5548         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
5549         struct tree_complex, struct tree_vector): Remove RTL field.
5550         (CONSTRUCTOR_ELTS): Use elt 0.
5551         * tree.def (CONSTRUCTOR): Delete first of its two operands.
5552         * varasm.c (output_constant_def): Remove early exit if
5553         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
5554         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
5555         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
5556         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
5557
5558 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
5559
5560         * c-decl.c (finish_decl): When prototype with asmspec is found
5561         for built-in, adjust built_in_decls as well as expr.c decls.
5562         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
5563         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
5564         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
5565
5566 2003-04-28  Richard Henderson  <rth@redhat.com>
5567
5568         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
5569         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
5570         integral constant mult operand.
5571         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
5572         (const_smulsi3_highpart_v8plus): Likewise.
5573         (const_smulsi3_highpart): Likewise.
5574         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
5575         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
5576         (const_umulsi3_highpart_v8plus): Likewise.
5577         (const_umulsi3_highpart): Likewise.
5578
5579 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
5580
5581         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
5582         Define as 1.
5583
5584 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
5585
5586         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
5587
5588 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
5589
5590         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
5591         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
5592         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
5593         functions.
5594         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
5595
5596 2003-04-28  Nick Clifton  <nickc@redhat.com>
5597
5598         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
5599
5600 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
5601
5602         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
5603         output_constant_def, use its result instead of TREE_CST_RTL (exp).
5604         Can assume it has the form (mem (symbol_ref ".LCxxx")).
5605         (expand_expr <COMPONENT_REF>): Can always just extract the
5606         relevant field of a CONSTRUCTOR.
5607         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
5608         ARRAY_RANGE_REF>): Make control flow explicit.
5609         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
5610         an INTEGER_CST.
5611
5612 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
5613
5614         * reload1.c (reg_set_luid): Fix a comment typo.
5615
5616 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
5617
5618         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
5619         struct deferred_string, const_str_htab): Kill.
5620         (n_deferred_strings): New static variable.
5621         (build_constant_desc): Set SYMBOL_REF_DECL of the new
5622         symbol_ref to point to the constant.
5623         (output_constant_def): When a deferred string is forced out,
5624         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
5625         (mark_constant): Likewise.
5626         (maybe_output_constant_def_contents): When deferring a string
5627         constant, just set STRING_POOL_ADDRESS_P and increment
5628         n_deferred_strings.
5629         (mark_constant_pool): Check n_deferred_strings, not the size
5630         of const_str_htab.
5631         (init_varasm_once): No need to create const_str_htab.
5632
5633         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
5634         SYMBOL_REF_DECL points to a constant.
5635
5636 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
5637
5638         * varasm.c (output_constant_def): Split out two new static
5639         functions, build_constant_desc and maybe_output_constant_def_contents.
5640         Restructure for comprehensibility.  Don't call
5641         output_addressed_constants.  Treat defstr being non-NULL for
5642         STRING_POOL_ADDRESS_P constants as an invariant.
5643         (struct deferred_string): Remove labelno field.
5644         (output_constant_def_contents): Kill labelno argument. Call
5645         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
5646         asm_out.internal_label.
5647         (mark_constant): Update call to output_constant_def_contents.
5648         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
5649         constants as an invariant.
5650
5651 2003-04-26  Richard Henderson  <rth@redhat.com>
5652
5653         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
5654         (ix86_expand_call, ix86_rtx_consts): Likewise.
5655
5656 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5657
5658         * doc/md.texi (cmpstr): Document additional restrictions.
5659
5660 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
5661
5662         * flags.h (time_report): Remove.
5663         * timevar.c (timevar_enable): New.
5664         (TIMEVAR_ENABLE): Remove, use timevar_enable.
5665         (timevar_init): Rename from init_timevar.
5666         * timevar.h (timevar_init): Rename from init_timevar.
5667         * toplev.c (time_report): Make static.
5668         (do_compile): Conditionally call init_timevar first.
5669         (preprocess_options): Move some code to do_compile.
5670
5671 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
5672
5673         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
5674
5675 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
5676
5677         * _cpp_lex_direct: Remove pointless code.
5678
5679 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
5680
5681         * doc/extend.texi (Function Attributes): Document "near" and "far"
5682         for 68HC11 and 68HC12.
5683
5684 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5685
5686         * expr.c (store_field): When making temporary for store, don't
5687         make it TYPE_QUAL_CONST.
5688
5689 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
5690
5691         * toplev.c (read_integral_parameter):  Use "argument" in error
5692         message to distinguish it from actual invalid options.
5693
5694 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
5695
5696         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
5697         addition of __PIC__ and __pic__ macros.
5698         * config/xtensa/xtensa.h: Clean up indentation.
5699
5700 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
5701
5702         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
5703         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
5704         (SUBTARGET_CPP_SPEC): Define.
5705         (LIB_SPEC): Delete.
5706         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
5707         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
5708         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
5709         Define.
5710         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5711         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
5712
5713 2003-04-25  H.J. Lu <hjl@gnu.org>
5714
5715         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
5716         for return mode.
5717         (ia64_expand_builtin): Set rmode to SImode for
5718         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
5719         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
5720         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
5721         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
5722
5723 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
5724
5725         * configure.in (make_compare_target):  Test for GNU cmp and set this
5726         variable appropriately.
5727         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
5728         compare4-lean): Rename actual targets to slowcompare*.  New compare*
5729         targets depend on names based on make_compare_target.
5730         * configure:  Regenerated.
5731
5732 2003-04-25  Richard Henderson  <rth@redhat.com>
5733
5734         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
5735         to clobber ar.pfs and ar.unat.
5736         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
5737         fix test for spilling ar.pfs to the stack.
5738
5739 2003-04-25  Richard Henderson  <rth@redhat.com>
5740
5741         PR opt/10315
5742         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
5743         checks during reload; use validize_mem instead of adjust_address.
5744
5745 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
5746
5747         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
5748         return values from recog_memoized().
5749
5750 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5751
5752         PR opt/8705
5753         * gcse.c (try_replace_reg): On a successful substitution of a constant
5754         into a single set, try to simplify the source of the set.
5755         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
5756         constant source.
5757
5758 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
5759
5760         * cpplex.c (cpp_token_len): Tighten up.
5761         (cpp_token_as_text): Need extra byte now.
5762         * cpplib.c (glue_header_name): Need extra 2 bytes.
5763         * cppmacro.c (cpp_macro_definition): Need extra byte.
5764
5765 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
5766
5767         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
5768         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
5769         where they might be not present. Use their _sp64 equivalent
5770         instead.
5771
5772 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
5773
5774         * i386.md (cvtsi2sdq): Fix typo in previous patch.
5775
5776 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
5777
5778         * configure.in: Check whether mbstowcs works.
5779         * configure, config.in: Regenerate.
5780         * intl.c: Use HAVE_WORKING_MBSTOWCS.
5781
5782 2003-04-24  H.J. Lu <hjl@gnu.org>
5783
5784         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
5785         for __sync_bool_compare_and_swap_di for int return type.
5786
5787         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
5788         Change return type to int.
5789         (__sync_bool_compare_and_swap): Likewise.
5790
5791 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
5792
5793         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
5794         looking for fallthru edge.
5795
5796         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
5797         Fix.
5798         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
5799         athlon-fvector): New.
5800         (athlon_*): Revisit to match new optimization guide.
5801         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
5802         * i386.md (cvt??2?? patterns): Fix modes.
5803         (fistp patterns): Set modes.
5804
5805         Accidentaly commited with my earlier reload patch:
5806         PR c/10308
5807         * reload.c (find_reloads_address_1): Reload plus at the place of
5808         index register.
5809
5810 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
5811
5812         New GCOV_TAG_FUNCTION layout
5813         * coverage.c (struct function_list): Replace name with ident.
5814         (struct counts_entry): Likewise.
5815         (fn_ident): New.
5816         (htab_counts_entry_hash, htab_counts_entry_eq,
5817         htab_counts_entry_del): Adjust.
5818         (reads_count_file, get_coverage_counts,
5819         coverage_begin_output, coverage_end_function): Adjust.
5820         (build_fn_info_type, build_fn_info_value): Likewise.
5821         * gcov-dump.c (tag_function): Adjust.
5822         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5823         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5824         * gcov.c (struct function_info): Add ident.
5825         (read_graph_file, read_count_file): Adjust.
5826         * libgcov.c (gcov_exit): Adjust.
5827
5828 2003-04-23  Richard Henderson  <rth@redhat.com>
5829
5830         PR opt/8300
5831         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
5832         after initialize_uninitialized_subregs; update reg info assuming
5833         new pseudos were created.
5834
5835 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
5836
5837         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
5838         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
5839         (lex_string): Take cpp_string with full spelling.
5840         (cb_ident): Update.
5841         (c_lex): Update diagnostics.
5842         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
5843         (create_literal): New.
5844         (lex_string): Unterminated literals have type CPP_OTHER.
5845         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
5846         for CPP_OTHER.
5847         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
5848         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
5849         * cpplib.c (parse_include, do_line, do_linemarker,
5850         destringize_and_run): Update for token storing full spelling.
5851         * cpplib.h: Update token spelling types.
5852         * cppmacro.c (stringify_arg, check_trad_stringification):
5853         Update for token storing full spelling.
5854
5855 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
5856
5857         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
5858
5859 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
5860
5861         * arm.h (TARGET_OPTIONS): Add value field.
5862
5863 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
5864
5865         * doc/extend.texi: Remove duplicate 2003 copyright date.
5866
5867 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
5868
5869         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
5870         (libgcov.a): Depends on LIBGCC_DEPS.
5871         * basic-block.h (profile_info): Moved here from coverage.h. Made
5872         a pointer.
5873         * coverage.c (struct function_list): Fixed array of counter types.
5874         (struct counts_entry): Keyed by counter type, contains summary.
5875         (profile_info): Moved to profile.c.
5876         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
5877         vars.
5878         (profiler_label): Remove.
5879         (ctr_labels): New.
5880         (set_purpose, label_for_tag, build_counter_section_fields,
5881         build_counter_section_value, build_counter_section_data_fields,
5882         build_counter_section_data_values, build_function_info_fields,
5883         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
5884         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
5885         build_ctr_info_value, build_gcov_info): New.
5886         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
5887         (reads_counts_file): Adjust.
5888         (get_coverage_counts): Takes counter number. Add summary
5889         parameter. Adjust.
5890         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
5891         create counter array labels.
5892         (coverage_end_function): Adjust.
5893         (create_coverage): Adjust.
5894         (find_counters_section): Remove.
5895         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
5896         (struct section_info, struct profile_info): Remove.
5897         (profile_info): Moved to basic-block.h.
5898         (coverage_counter_ref): Takes a counter number.
5899         (get_coverage_counts): Takes a counter number. Added summary
5900         parameter.
5901         (find_counters_section): Remove.
5902         * gcov-dump.c (tag_arc_counts): Rename to ...
5903         (tag_counters): ... here. Adjust.
5904         (tag_table): Move tag_counters to 3rd entry. Remove
5905         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
5906         (dump_file): Check for counter tag values here.
5907         (tag_summary): Adjust.
5908         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
5909         * gcov-io.h (GCOV_LOCKED): New.
5910         (GCOV_TAG_ARC_COUNTS): Rename to ...
5911         (GCOV_TAG_COUNTS_BASE): ... here.
5912         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
5913         Remove.
5914         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
5915         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
5916         GCOV_TAG_IS_COUNTER): New.
5917         (struct gcov_ctr_summary): New.
5918         (struct gcov_summary): Adjust.
5919         (struct gcov_counter_section): Remove.
5920         struct gcov_counter_section_data): Remove.
5921         (struct gcov_function_info): Rename to ...
5922         (struct gcov_fn_info): ... here. Adjust.
5923         (struct gcov_ctr_info): New.
5924         (struct gcov_info): Adjust.
5925         * gcov.c (read_count_file): Adjust.
5926         (output_lines): Adjust.
5927         * libgcov.c (gcov_exit): Adjust.
5928         (__gcov_flush): Adjust.
5929         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
5930         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
5931         probably_never_executed_bb_p, compute_frequency_function): Adjust
5932         profile_info use.
5933         * profile.c (struct counts_entry): Remove.
5934         (profile_info): Define here.
5935         (get_exec_counts): Adjust get_coverage_counts call.
5936         (compute_branch_probablilities): Remove find_counters_section
5937         call.
5938         (gen_edge_profiler): Adjust coverage_counter_ref call.
5939         * tracer.c (tail_duplicate): Adjust profile_info use.
5940
5941 2003-04-23  Roger Sayle  <roger@eyesopen.com>
5942
5943         PR optimization/10339
5944         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
5945         directly instead of unsafely transforming call into a memcmp.
5946         (expand_builtin_strncmp): Likewise.
5947
5948 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5949
5950         * alias.c (mark_constant_function):  Check for constancy and
5951         purity even of void functions.  Update both the function decl
5952         and the cgraph RTL info with the results.
5953
5954 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5955
5956         * real.c (do_add): Change to return a bool indicating that the
5957         result of the operation may be inexact due to loss of precision.
5958         (do_multiply): Likewise.
5959         (do_divide): Likewise.
5960
5961 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
5962             Loren James Rittle  <ljrittle@acm.org>
5963
5964         * dwarf2out.c (fde_table_allocated): Mark with GTY.
5965         (decl_die_table_allocated): Likewise.
5966         (abbrev_die_table_allocated): Likewise.
5967         (line_info_table_allocated): Likewise.
5968         (separate_line_info_table_allocated): Likewise.
5969         (pubname_table_allocated): Likewise.
5970         (arange_table_allocated): Likewise.
5971         (ranges_table_allocated): Likewise.
5972         (decl_die_table_in_use): Unconditionalize; mark with GTY.
5973         (abbrev_die_table_in_use): Likewise.
5974         (line_info_table_in_use): Likewise.
5975         (separate_line_info_table_in_use): Likewise.
5976         (pubname_table_in_use): Likewise.
5977         (arange_table_in_use): Likewise.
5978         (ranges_table_in_use): Likewise.
5979         (have_location_lists): Likewise.
5980         (emitcount): New GTY-marked static, moved...
5981         (maybe_emit_file): ...from here.
5982         (label_num): New GTY-marked static, moved...
5983         (gen_internal_sym): ...from here.
5984
5985 2003-04-22  Richard Henderson  <rth@redhat.com>
5986
5987         PR 8866
5988         * rtl.h (MEM_NOTRAP_P): New.
5989         (MEM_COPY_ATTRIBUTES): Copy it.
5990         * rtlanal.c (may_trap_p): Check it.
5991         * expr.c (do_tablejump): Set it.
5992         * doc/rtl.texi (Flags): Document it.
5993
5994         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
5995
5996 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
5997
5998         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
5999         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
6000
6001 2003-04-22  Vincent Celier <celier@gnat.com>
6002
6003         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
6004         --enable-threads=gnat.
6005         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
6006         * configure.in: Add gnat to the list of thread packages
6007         * configure: Rebuild.
6008         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
6009
6010 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
6011
6012         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
6013
6014 2003-04-22  Devang Patel  <dpatel@apple.com>
6015
6016         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
6017         parameter count.
6018         (_cpp_copy_replacement_text): Same.
6019
6020 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
6021
6022         * c-lex.c (c_lex): Handle CPP_OTHER differently.
6023         * cppexp.c (_cpp_parse_expr): Similarly.
6024         * cpplex.c (SPELL_CHAR): Remove.
6025         (_cpp_lex_direct): Stray chars are saved as byte strings.
6026         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
6027         handle SPELL_CHAR.
6028         (cpp_avoid_paste): Update handling of CPP_OTHER.
6029         * cpplib.h: Spell CPP_OTHER like a number.
6030         (struct cpp_token): Remove member c.
6031         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
6032
6033 2003-04-22  David Turner <novalis@gnu.org>
6034
6035         * gbl-ctors.h: Add special license exception.
6036         * libgcc2.h: Likewise.
6037         * tsystem.h: Likewise.
6038         * gcov-io.h: Likewise.
6039
6040 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
6041
6042         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
6043         macro defaulting to original BRANCH_COST heuristic.
6044         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
6045
6046         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
6047
6048 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
6049
6050         * config/rs6000/t-spe: Merge in t-fprules into file.
6051
6052         * config.gcc: Add t-spe to powerpc-eabispe.
6053
6054 2003-04-22  Kean Johnston  <jkj@sco.com>
6055
6056         * tlink.c (recompile_files): Add missing '=' to putenv calls
6057
6058 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
6059
6060         * ginclude/stddef.h: Provide C++ safe offsetof.
6061
6062 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
6063
6064         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
6065         for reg notes, if there are no substitutions, just use a SUBREG.
6066
6067 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
6068
6069         * Makefile.in (calls.o): Depend on except.h.
6070         * calls.c: Include except.h.
6071         (emit_call_1): Call note_eh_region_may_contain_throw if
6072         appropriate.
6073         * except.c (eh_region): Add may_contain_throw.
6074         (expand_eh_region_end_cleanup): Do not include handler code when
6075         it cannot be reached.
6076         (note_eh_region_may_contain_throw): New function.
6077         * except.h (note_eh_region_may_contain_throw): New function.
6078
6079 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
6080
6081         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
6082         changes.
6083
6084 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
6085
6086         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
6087         64-bit long doubles.
6088
6089 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
6090
6091         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
6092         a number of conversions required for type consistency and previously
6093         stripped off by STRIP_NOPS.
6094
6095         * calls.c (expand_call): Prevent sibcall optimization for calls to
6096         nested subprograms.
6097
6098         * expmed.c (extract_bit_field): Reverse operands of && condition to
6099         prevent a potential division by zero in the previously first branch.
6100         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
6101
6102 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
6103
6104         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
6105         (subrange_type_die): Likewise.
6106         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
6107         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
6108
6109 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
6110
6111         Break out coverage routines to new file.
6112         * Makefile.in (COVERAGE_H): New variable
6113         (C_OBJS): Add coverage.o
6114         (coverage.o): New target.
6115         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
6116         dependencies.
6117         (GTFILES): Adjust.
6118         (gt-coverage.h): New target.
6119         (gt-profile.h): Remove.
6120         * profile.h: Remove. Move to ...
6121         * coverage.h: ... here. New. #include gcov-io.h.
6122         * gcov-io.h: Move function definitions to ...
6123         * gcov-io.c: ... here. New.
6124         * profile.c: Move coverage routines to coverage.c.
6125         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
6126         end_branch_prob): Adjust.
6127         * coverage.c: New. Coverage routines from profile.c
6128         (coverage_counter_ref, coverage_init, coverage_finish,
6129         coverage_end_function, coverage_begin_output,
6130         coverage_counter_ref, get_coverage_counts): Define.
6131         * gcov-dump.c, gcov.c: #include gcov-io.c.
6132         * libgcov.c: Likewise. Adjust.
6133         * loop-init.c: Don't #include profile.h
6134         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
6135         * rtl.h: Add coverage prototypes.
6136         * toplev.c (compile_file): Init coverage, not branch_prob.
6137         Always call coverage_finish.
6138         (rest_of_compilation): Call coverage_end_function.
6139
6140 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
6141
6142         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
6143
6144 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
6145
6146         * c-ppoutput.c (cb_include): Don't take a cpp_token.
6147         * cppfiles.c: Don't undef strcmp.
6148         (find_include_file): Don't take a cpp_token.  Check for empty
6149         file names.
6150         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
6151         (cpp_push_include): Simplify.
6152         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
6153         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
6154         (parse_include): Similary.  Don't check for zero-length filenames.
6155         (do_include_common, do_pragma_dependency): Update accordingly.
6156         * cpplib.h (struct cpp_callbacks): Change prototype of include.
6157
6158 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6159
6160         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
6161         details of conflict handling.
6162
6163         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
6164         when conversion overflows.
6165
6166         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
6167
6168         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
6169         before clearing.
6170
6171 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
6172
6173         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
6174         have the same form as the old RTL.
6175
6176 2003-04-21  Andreas Jaeger  <aj@suse.de>
6177
6178         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
6179
6180 2003-04-20  Chris Lattner  <sabre@nondot.org>
6181             Zack Weinberg  <zack@codesourcery.com>
6182
6183         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
6184         genrtl_cleanup_stmt.  Correct comment at head of
6185         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
6186
6187         * stmt.c (struct nesting): Kill n_function_calls.
6188         (expand_start_bindings): Don't set
6189         thisblock->data.block.n_function_calls.
6190         (expand_end_bindings): Compare function_call_count against 0.
6191         (expand_cleanups): Kill DONT_DO argument; all callers passed
6192         NULL_TREE. All callers updated to match.
6193
6194 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
6195
6196         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
6197         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
6198         (output_constant_def): Remove code predicated on
6199         defer_addressed_constants_flag.
6200
6201         * output.h: Remove prototypes of deleted functions.
6202         * c-typeck.c (constructor_subconstants_deferred): Kill.
6203         (struct initializer_stack): Remove 'deferred' field.
6204         (start_init): Remove all references to the above.
6205         (finish_init): Likewise. Also remove never-executed call to
6206         output_deferred_addressed_constants.  Pull assignment to
6207         defstr out of if expression.
6208
6209 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
6210
6211         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
6212         NOTE_NEWLINE): Remove.
6213         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
6214         to handle new form of line note type.
6215
6216 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
6217
6218         * target.h (encode_section_info): Add new argument carrying
6219         the RTL to be modified by the hook.
6220
6221         * varasm.c (make_decl_rtl, output_constant_def): Update calls
6222         to encode_section_info.
6223         (default_encode_section_info): Take and use RTL argument,
6224         don't use TREE_CST_RTL or DECL_RTL.
6225         * output.h: Update prototype of default_encode_section_info.
6226         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
6227         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
6228         Update calls to encode_section_info.
6229
6230         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
6231         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
6232         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
6233         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
6234         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
6235         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
6236         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
6237         except for PE dllimport/dllexport.  Update calls to
6238         default_encode_section_info.
6239
6240         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
6241         Update prototypes.
6242
6243         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
6244
6245 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6246
6247         PR/8705
6248         * pa.md (movccfp): New expander.
6249         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
6250         Reverse fcmp conditions.
6251
6252 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6253
6254         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
6255         of operand 1 correctly.
6256
6257 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
6258
6259         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
6260         * gcov.c (output_lines): Don't be so fussy about going past EOF.
6261
6262 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
6263
6264         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
6265         (cppcharset.o): New target.
6266         * c-lex.c (is_extended_char): Move to cppcharset.c.
6267         (utf8_extend_token): Delete.
6268         * cppcharset.c: New file.
6269         * cpphash.h (_cpp_valid_ucn): New.
6270         * cpplex.c (lex_identifier): Update prototype.
6271         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
6272         escapes.
6273         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
6274         in cppcharset.c.
6275         (lex_number, lex_identifier, cpp_parse_escape): Update.
6276         (_cpp_lex_direct): Update to handle UCNs.
6277         (cpp_avoid_paste): Don't paste to form a UCN.
6278
6279 2003-04-19  Roger Sayle  <roger@eyesopen.com>
6280
6281         * builtins.c (expand_builtin):  Don't expand a pure or const
6282         built-in function if the result will be ignored and none of
6283         its arguments are volatile.
6284
6285 2003-04-19  Kean Johnston  <jkj@sco.com>
6286
6287         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
6288         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
6289         target fragment now: t-sco5; dont compile crti.o.
6290         * config/i386/sco5.h: major overhaul to remove all COFF remnants
6291         and to use elfos.h for most definitions.
6292         (BSS_SECTION_ASM_OP): set correct segment attributes.
6293         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
6294         (DWARF2_UNWIND_INFO): Always set to 1.
6295         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
6296         (MD_STARTFILE_PREFIX_1): Define.
6297         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
6298         (DEFAULT_LINKER): Define if not specified to configure.
6299         (CTORS_SECTION_ASM_OP): Remove COFF crud.
6300         (DTORS_SECTION_ASM_OP): Remove COFF crud.
6301         (WINT_TYPE): Define.
6302         (SDB_DEBUGGING_INFO): Remove.
6303         (EXTRA_SECTIONS): Likewise.
6304         (EXTRA_SECTION_FUNCTIONS): Likewise.
6305         (CTOR_LIST_BEGIN): Likewise.
6306         (CTOR_LIST_END): Likewise.
6307         (INIT_SECTION_FUNCTION): Likewise.
6308         (FINI_SECTION_FUNCTION): Likewise.
6309         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
6310         (LOCAL_LABEL_PREFIX): Likewise.
6311         (NON_SAVING_SETJMP): Likewise.
6312         (RETURN_POPS_ARGS): Likewise.
6313         (ASM_OUTPUT_SKIP): Likewise.
6314         (TARGET_ASM_NAMED_SECTION): Likewise.
6315         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
6316         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
6317         (ASM_OUTPUT_IDENT): Likewise.
6318         (ASM_OUTPUT_CASE_LABEL): Likewise.
6319         (ASM_OUTPUT_ASCII): Likewise.
6320         (ASM_OUTPUT_LIMITED_STRING): Likewise.
6321         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
6322         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
6323         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
6324         (ASM_FINISH_DECLARE_OBJECT): Likewise.
6325         (ASM_DECLARE_OBJECT_NAME): Likewise.
6326         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6327         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6328         (ASM_DECLARE_RESULT): Likewise.
6329         (ASM_WEAKEN_LABEL): Likewise.
6330         (SUPPORTS_WEAK): Likewise.
6331         (APPLY_RESULT_SIZE): Likewise.
6332         (LPREFIX): Likewise.
6333         (ALIGN_ASM_OP): Likewise.
6334         (ASCII_DATA_ASM_OP): Likewise.
6335         (IDENT_ASM_OP): Likewise.
6336         (ASM_SHORT): Likewise.
6337         (ASM_LONG): Likewise.
6338         (TYPE_ASM_OP): Likewise.
6339         (SIZE_ASM_OP): Likewise.
6340         (STRING_ASM_OP): Likewise.
6341         (SKIP_ASM_OP): Likewise.
6342         (EH_FRAME_SECTION_ASM_OP): Likewise.
6343         (READONLY_DATA_SECTION_ASM_OP): Likewise.
6344         (INIT_SECTION_ASM_OP): Likewise.
6345         (FINI_SECTION_ASM_OP): Likewise.
6346         (TEXT_SECTION_ASM_OP): Likewise.
6347         (DATA_SECTION_ASM_OP): Likewise.
6348         (TYPE_OPERANT_FORMAT): Likewise.
6349         (ASM_SPEC): Remove COFF code.
6350         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
6351         cause -pg to emit an error; use pcrt1elf.o with -pp
6352         (ENDFILE_SPEC): Likewise.
6353         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
6354         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
6355         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
6356         add -z alt_resolve to support weak symbols the way GCC wants them.
6357         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
6358         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
6359         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
6360         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
6361         (CRTSTUFF_T_CFLAGS_S): Define.
6362         (MULTILIB_OPTIONS): Likewise.
6363         (MULTILIB_DIRNAMES): Likewise.
6364         (MULTILIB_MATCHES): Likewise.
6365         (MULTILIB_EXTRA_OPTS): Likewise.
6366         (LIBGCC): Likewise.
6367         (INSTALL_LIBGCC): Likewise.
6368         (crti.o): Remove.
6369         * config/i386/t-sco5gas: Remove.
6370         * doc/install.texi: Updated for new OpenServer instructions.
6371         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
6372
6373 2003-04-19  Kean Johnston  <jkj@sco.com>
6374
6375         * fixinc/check.tpl: Allow user to over-ride diff program.
6376         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
6377         (sco_math): Added test for SCO math header files.
6378         (sco_regset): Added check for conflicts with ieeefp.h.
6379         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
6380         * fixinc/fixincl.x: Regenerated
6381         * fixinc/tests/base/math.h: Added sco_math tests.
6382         * fixinc/tests/base/string.h: New file.
6383         * fixinc/tests/base/sys/regset.h: New file.
6384
6385 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
6386
6387         * cpphash.h (struct cpp_buffer): Remove backup_to.
6388         * cpplex.c (BACKUP, get_effective_char): Die.
6389         (_cpp_skip_block_comment): Assume '*' is location on entry.
6390         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
6391         (IF_NEXT_IS): Update.
6392         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
6393
6394 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
6395
6396         * README.Portability: Move to a new section and obsolete K+R
6397         portability issues.
6398
6399 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
6400
6401         * rtlanal.c (subreg_offset_representable_p):  Fix call of
6402         subreg_lowpart.
6403
6404 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
6405
6406         * cpphash.h (struct cpp_reader): New member warned_dollar.
6407         * cpplex.c (continues_identifier_p): New function.
6408         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
6409         lex_number and lex_string, and simplify.
6410         (parse_slow, unescaped_terminator_p): Die.
6411         (_cpp_lex_direct): Update.
6412
6413 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6414
6415         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
6416
6417 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
6418
6419         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
6420         fork behaviour.
6421
6422 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
6423
6424         * cppexp.c (eval_token): Permit true and false even if pedantic.
6425
6426 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
6427
6428         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
6429
6430 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
6431
6432         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
6433         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
6434         (struct include_file): Remove fefcnt, mapped members.
6435         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
6436         (read_include_file): Don't use mmap, terminate buffers in '\r'.
6437         (purge_cache): Don't use munmap.
6438         * cpphash.h (CPP_BUF_COLUMN): Update.
6439         (lexer_state): Remove lexing_comment.
6440         (struct _cpp_line_note): New.
6441         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
6442         next_line and need_line.  Remove col_adjust and saved_flags.
6443         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
6444         _cpp_skip_block_comment, scan_out_logical_line): New.
6445         (_cpp_init_mbchar): Remove.
6446         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
6447         (cpp_read_main_file): Set line to 1 earlier.
6448         (post_options): -traditional-cpp doesn't want trigraphs.
6449         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
6450         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
6451         _cpp_get_fresh_line): New.
6452         (handle_newline, skip_escaped_newlines, trigraph_p,
6453         continue_after_nul, _cpp_init_mbchar): Remove.
6454         (get_effective_char): Update.
6455         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
6456         (skip_line_comment): Simplify.
6457         (skip_whitespace, parse_identifier, parse_slow, parse_number,
6458         parse_string): Update.
6459         (cpp_lex_direct): Use clean lines and process line notes.  Update.
6460         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
6461         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
6462         directly.
6463         (_cpp_handle_directive): Don't set saved_flags.
6464         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
6465         cpp_undef, handle_assertion, cpp_push_buffer): Update.
6466         (_cpp_pop_buffer): Free notes.
6467         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
6468         * cpppch.c (cpp_read_state): \n terminate buffer.
6469         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
6470         (copy_comment): Use _cpp_skip_block_comment.
6471         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
6472         Simplify.
6473         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
6474         save_replacement_text): Update.
6475         (scan_out_logical_line): Update to use clean lines and process
6476         line notes.
6477         * fix-header.c (read_scan_file): Update.
6478
6479 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
6480
6481         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
6482         null begin parameter (as well as pointer to null).
6483         (__deregister_frame_info_bases): Likewise.
6484
6485 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6486
6487         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
6488         hard or virtual register and copy into pseudo if replacement fails.
6489
6490         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
6491
6492         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
6493
6494 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
6495
6496         * calls.c (expand_call): Move special case for constructor calls
6497         to right place. Ensures constructor calls used to initialize
6498         arguments get a clean outgoing argument block for themselves.
6499         Move check for stack deallocation completeness until after last
6500         deallocation.  Add stack_pointer_delta to set of state
6501         variables saved and restored along with current stack_level.
6502
6503         * integrate.c (expand_inline_function): Ensure non-const actuals
6504         don't end up const in the caller's flow after conversion to possibly
6505         const formal type.
6506
6507 2003-04-18  Vincent Celier  <celier@gnat.com>
6508
6509         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
6510         and *_DIV_EXPR as TRUNC_*_EXPR.
6511
6512 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
6513
6514         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
6515         for orphaned jump tables.
6516
6517 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
6518
6519         * reload1.c: Revert my previous patch on 2002-04-17.
6520
6521 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6522
6523         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
6524         Add Segher Boessenkool.
6525
6526 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
6527
6528         PR c/9177
6529         * c-decl.c (c_expand_body): Don't garbage collect the function
6530         body if we are going to dump it later.
6531
6532 2003-04-18  Richard Henderson  <rth@redhat.com>
6533
6534         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
6535         (alpha_end_function): Don't set them.
6536         (decl_in_text_section): Remove.
6537         (alpha_encode_section_info): Remove.
6538         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
6539         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
6540         sections, rather than decl_in_text_section results.
6541
6542 2003-04-18  Roger Sayle  <roger@eyesopen.com>
6543
6544         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
6545         and SIGN_EXTRACT.
6546
6547 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6548
6549         PR optimization/7675
6550         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
6551         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
6552         nested functions if they refer to declarations from parent functions.
6553         * stmt.c (expand_decl): Don't put automatic variables in registers
6554         if the DECL_NONLOCAL flag is set.
6555
6556 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
6557
6558         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
6559         consider those to be movable where the source matches
6560         want_to_gcse_p.
6561         (update_ld_motion_stores): In comment, refer to
6562         compute_ld_motion_mems for validity of replacement.
6563
6564 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
6565
6566         * gcov-dump.c (tag_summary): Remove max_sum
6567         * gcov-io.h (gcov_summary, gcov_write_summary,
6568         gcov_read_summary): Kill max_sum.
6569         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
6570         message more verbose.
6571
6572         * emit-rtl.c (subreg_hard_regno):  Check that register is
6573         representable.
6574
6575         * reload.c (reload_inner_reg_of_subreg):  When register is not
6576         representable, reload the whole thing.
6577         (find_reloads): Likewsie.
6578         * rtlanal.c (subreg_representable_p):  New function.
6579
6580         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
6581         allow negative probabilities for edges from the call to exit.
6582         (branch_prob): Do not add fake edges for functions that may return
6583         twice.
6584
6585 2003-04-17  DJ Delorie  <dj@redhat.com>
6586
6587         * toplev.c (target_options): Add value field.
6588         (set_target_switch): Handle target options with values.
6589         * doc/tm.texi: Document how fixed vs variable target
6590         options work.
6591         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
6592         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
6593         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6594         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
6595         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
6596         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
6597         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
6598         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
6599         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
6600         Add value initializer to target options.
6601
6602 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
6603
6604         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
6605
6606 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
6607
6608         * reload1.c (move2add_last_cc0): New.
6609         (reload_cse_move2add): Detect implicit sets.
6610         (move2add_note_store): Notice a store into cc0.
6611
6612 2003-04-17  Roger Sayle  <roger@eyesopen.com>
6613
6614         PR c/10375
6615         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
6616         function attributes.
6617
6618 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
6619
6620         * doc/sourcebuild.texi (Test Suites): Document support for testing
6621         binary compatibility (moved from testsuite/README.compat).
6622
6623 2003-04-17  Richard Henderson  <rth@redhat.com>
6624
6625         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
6626
6627 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
6628
6629         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
6630         the one provided by the FSF.
6631
6632 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6633
6634         * doc/install.texi (Binaries): Update URL and list of platforms
6635         provided by ftp.thewrittenword.com.
6636
6637 2003-04-17  Richard Henderson  <rth@redhat.com>
6638
6639         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
6640         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
6641         * config/xtensa/xtensa.md (call, call_value): Likewise.
6642
6643 2003-04-17  Richard Henderson  <rth@redhat.com>
6644
6645         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
6646         (print_operand_address): Likewise.
6647         (ep_memory_operand): Likewise.
6648         (special_symbolref_operand): Likewise.
6649         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
6650         (v850_encode_section_info): Call default_encode_section_info.
6651         (v850_strip_name_encoding): Remove.
6652         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
6653         (ASM_OUTPUT_LABELREF): Remove.
6654         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
6655         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
6656         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
6657         (ENCODED_NAME_P): Remove.
6658         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
6659         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
6660         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
6661
6662 2003-04-17  Richard Henderson  <rth@redhat.com>
6663
6664         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
6665         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
6666         SYMBOL_REF_FUNCTION_P.
6667
6668 2003-04-17  Richard Henderson  <rth@redhat.com>
6669
6670         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
6671         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
6672         (text_segment_operand): Likewise.
6673
6674 2003-04-17  Richard Henderson  <rth@redhat.com>
6675
6676         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
6677         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6678         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
6679         (sh_encode_section_info): Remove.
6680         (sh_strip_name_encoding): Remove.
6681         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
6682         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
6683         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
6684         (ASM_OUTPUT_LABELREF): Remove.
6685         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
6686         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
6687
6688 2003-04-17  Richard Henderson  <rth@redhat.com>
6689
6690         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
6691         (tls_model_chars): Remove.
6692         (larl_operand): Use SYMBOL_REF_FLAGS.
6693         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6694         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
6695         (s390_output_mi_thunk): Likewise.
6696         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
6697         (s390_function_profiler): Likewise.
6698         (s390_encode_section_info): Use default_encode_section_info
6699         and SYMBOL_FLAG_ALIGN1.
6700         (s390_strip_name_encoding): Remove.
6701         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
6702         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
6703         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
6704
6705 2003-04-17  Richard Henderson  <rth@redhat.com>
6706
6707         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
6708         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
6709         (print_operand_address): Likewise.
6710
6711         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
6712         * config/ns32k/ns32k.c (expand_block_move): Don't check
6713         flag_unroll_loops.
6714
6715 2003-04-17  Richard Henderson  <rth@redhat.com>
6716
6717         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
6718         SYMBOL_REF_FLAG.
6719
6720 2003-04-17  Richard Henderson  <rth@redhat.com>
6721
6722         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
6723
6724         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
6725         (SYMBOL_REF_MODEL): New.
6726         (LIT_NAME_P): Move from m32r.h.
6727         (m32r_select_section): Remove.
6728         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
6729         (m32r_strip_name_encoding): Remove.
6730         (m32r_in_small_data_p): New.
6731         (small_data_operand): Use SYMBOL_REF_SMALL_P.
6732         (addr24_operand): Use SYMBOL_REF_MODEL.
6733         (call26_operand): Likewise.
6734         (addr32_operand): Tidy.
6735         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
6736         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
6737         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
6738         (READONLY_DATA_SECTION_ASM_OP): Remove.
6739         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
6740         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
6741         (TARGET_ASM_SELECT_SECTION): Remove.
6742         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
6743         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
6744         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
6745         (ASM_OUTPUT_LABELREF): Remove.
6746
6747 2003-04-17  Richard Henderson  <rth@redhat.com>
6748
6749         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
6750         (encode_section_info): Remove.
6751         * config/ip2k/ip2k-protos.h: Update.
6752
6753 2003-04-17  Richard Henderson  <rth@redhat.com>
6754
6755         * varasm.c (default_encode_section_info): Don't set
6756         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
6757         * config/i370/i370.c (i370_encode_section_info): Remove.
6758         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
6759         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
6760         * config/i370/i370.md (movsi): Likewise.
6761
6762         * config/i370/t-i370: Add missing backslash.
6763
6764 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
6765
6766         * doc/invoke.texi (inline-limit): Fix pasto.
6767
6768 2003-04-17  Richard Henderson  <rth@redhat.com>
6769
6770         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
6771         (small_call_insn_operand): Use it.
6772         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
6773         (h8300_eightbit_constant_address_p): Use it.
6774         (SYMBOL_FLAG_TINY_DATA): New.
6775         (h8300_tiny_constant_address_p): Use it.
6776         (h8300_encode_label, h8300_strip_name_encoding): Remove.
6777         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
6778         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
6779         (ASM_OUTPUT_LABELREF): Remove.
6780
6781 2003-04-16  Richard Henderson  <rth@redhat.com>
6782
6783         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
6784         all users with SYMBOL_REF_SMALL_P.
6785         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
6786         (frv_encode_section_info): Remove.
6787         (frv_strip_name_encoding): Remove.
6788         (frv_in_small_data_p): Merge tests from encode_section_info.
6789         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
6790         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
6791         (SDATA_NAME_P): Remove.
6792         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
6793         (ASM_OUTPUT_LABELREF): Remove.
6794         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
6795
6796         * config/frv/frv.c (frv_asm_out_constructor): New.
6797         (frv_asm_out_destructor): New.
6798         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
6799         (DTORS_SECTION_ASM_OP): New.
6800         (ASM_OUTPUT_CONSTRUCTOR): Remove.
6801         (ASM_OUTPUT_DESTRUCTOR): Remove.
6802
6803 2003-04-16  Richard Henderson  <rth@redhat.com>
6804
6805         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
6806         SYMBOL_REF_LOCAL_P; abort if not pic.
6807         (cris_encode_section_info): Remove.
6808
6809 2003-04-16  Richard Henderson  <rth@redhat.com>
6810
6811         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
6812         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
6813
6814         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
6815         flag_inline_trees.
6816
6817 2003-04-16  Richard Henderson  <rth@redhat.com>
6818
6819         * config/avr/avr.c (avr_encode_section_info): Remove.
6820         (avr_insert_attributes): New.
6821         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
6822         (avr_assemble_integer): Likewise.
6823
6824 2003-04-16  Richard Henderson  <rth@redhat.com>
6825
6826         * arc.c (arc_encode_section_info): Remove.
6827         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
6828         (arc_print_operand, arc_print_operand_address): Likewise.
6829         * arc.h (EXTRA_CONSTRAINT): Likewise.
6830
6831 2003-04-16  Roger Sayle  <roger@eyesopen.com>
6832
6833         * c-semantics.c (find_reachable_label): New function to find a
6834         potentially reachable label in an expression.
6835         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
6836         assumes the start of the IF_STMT is unreachable (dead) code.
6837         (expand_unreachable_stmt): Similar to expand_stmt but assumes
6838         the start of the statement list is unreachable (dead) code.
6839         (genrtl_if_stmt):  If the controlling expression of the IF
6840         is constant, use expand_unreachable_stmt for the THEN or ELSE
6841         clause as appropriate.
6842         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
6843         the body of a SWITCH statement.
6844         (expand_stmt): The code immediately following a "return",
6845         "break", "continue" or "goto" is unreachable.
6846         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
6847
6848 2003-04-16  Richard Henderson  <rth@redhat.com>
6849
6850         * rtl.h (MEM_ALIAS_SET): Update documentation.
6851         * doc/rtl.texi (Special Accessors): New node.
6852         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
6853
6854 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
6855
6856         * reload1.c (reload_cse_noop_set_p): Return false if mode of
6857         SET_DEST is not the same as that returned by...
6858         * cselib.h (cselib_reg_set_mode): ... new function.
6859         * cselib.c (cselib_reg_set_mode): Define it.
6860         (REG_VALUES): Document semantics of first element as set mode.
6861         (cselib_subst_to_values): Skip first element if ELT is NULL.
6862         (cselib_lookup): Likewise.  Insert past the first element.
6863         (cselib_invalidate_regno): NULLify first element.
6864         (cselib_record_set): Set first element.
6865
6866 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
6867
6868         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
6869         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
6870         * tree.h: Add prototypes for the two new functions.
6871         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
6872         updates introduced in the previous revision by call to saved_expr_p.
6873         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
6874
6875         * expr.c (store_field): Force usage of bitfield instructions when
6876         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
6877         (expand_expr, case BIT_FIELD_REF): likewise.
6878
6879 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
6880
6881         PR middle-end/8866
6882         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
6883         jumptables.
6884
6885 2003-04-16  Richard Henderson  <rth@redhat.com>
6886
6887         * config/ia64/ia64.c (sdata_symbolic_operand): Use
6888         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
6889         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6890         (function_operand): Use SYMBOL_REF_FUNCTION_P.
6891         (ia64_expand_load_address): Likewise.
6892         (ia64_assemble_integer): Likewise.
6893         (ia64_encode_section_info): Remove.
6894         (ia64_strip_name_encoding): Remove.
6895         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
6896         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
6897
6898 2003-04-16  Richard Henderson  <rth@redhat.com>
6899
6900         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
6901         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
6902         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
6903         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
6904         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
6905         (global_symbolic_operand): Similarly.
6906         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
6907         (tls_symbolic_operand_type): Likewise.
6908         (alpha_encode_section_info): Use default_encode_section_info.
6909         (alpha_strip_name_encoding): Remove.
6910         (get_tls_get_addr): Split out from ...
6911         (alpha_legitimize_address): ... here.
6912         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
6913         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
6914         (alpha_initialize_trampoline): Use init_one_libfunc.
6915         (alpha_setup_incoming_varargs): Mark unused parameters.
6916         (alpha_initial_elimination_offset): Likewise.
6917         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
6918         (unicosmk_unique_section): Use default_strip_name_encoding.
6919         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
6920
6921 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
6922
6923         * config.gcc: Add t-spe for eabispe.
6924
6925         * config/rs6000/t-spe: New.
6926
6927 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
6928
6929         Re-apply this patch:
6930
6931         2002-05-16  Dale Johannesen  <dalej@apple.com>
6932           * combine.c (cant_combine_insn_p):  Reenable combinations
6933           involving hard regs unless CLASS_LIKELY_SPILLED_P.
6934
6935 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6936
6937         PR/10271
6938         * pa-protos.h (function_arg): Remove last argument.
6939         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
6940         * pa.h (struct hppa_args): Add member incoming.
6941         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
6942         member incoming.
6943         (FUNCTION_ARG): Revise call to function_arg.
6944         (FUNCTION_INCOMING_ARG): Delete.
6945
6946 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6947
6948         * configure.in: Unify the code which creates symlinks to a
6949         just-built as, ld, objdump, and nm with the code that detects
6950         their presence for purposes of feature tests.
6951         * configure: Regenerate.
6952
6953 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6954
6955         * varasm.c (output_constant_def): Do not consult
6956         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
6957         (after_function_constants, output_after_function_constants): Delete.
6958         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
6959         * config/mips/mips-protos.h, config/mips/mips.c
6960         (mips16_constant_after_function_p): Delete.
6961         * config/mips/mips.h: Delete #if-0-ed definition of
6962         CONSTANT_AFTER_FUNCTION_P.
6963         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
6964         mention of CONSTANT_AFTER_FUNCTION_P in comment.
6965
6966 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
6967
6968         * tree.c (next_decl_uid): Mark with GTY.
6969         (next_type_uid): Likewise.
6970
6971 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
6972
6973         PR target/9594:
6974         * sh.c (barrier_align): Also recognize stuff_delay_slot as
6975         an indicator that a barrier was created by branch splitting.
6976
6977 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
6978
6979         * c-decl.c (implicitly_declare): Copy declarations that are going
6980         to be placed in a local scope.
6981
6982 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
6983
6984         * invoke.texi (Spec Files): Wrap if-exists-else example.
6985         (MCore): Remove duplicate @itemx entries and @opindex entries.
6986
6987 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
6988
6989         * unwind.inc (_Unwind_Backtrace): New function.
6990         * unwind.h (_Unwind_Backtrace): Declare it.
6991         * libgcc-std.ver (_Unwind_Backtrace): Export it.
6992
6993 2003-04-14  Jason Merrill  <jason@redhat.com>
6994
6995         PR middle-end/10336, c++/10401
6996         * jump.c (never_reached_warning): Also stop looking if we reach the
6997         beginning of the function.
6998
6999 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7000
7001         PR target/10338
7002         PR bootstrap/10198
7003         PR bootstrap/10140
7004         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
7005
7006 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
7007
7008         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
7009
7010 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7011
7012         * optabs.c (expand_binop): In multi-word add cases, ensure
7013         XTARGET is copied to TARGET if they are different.
7014
7015 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
7016
7017         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
7018         to region, possible after integration of function with unreachable
7019         regions that were optimized away.
7020
7021 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
7022
7023         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
7024         instead of TOC_REGISTER in epilogue in
7025         current_function_calls_eh_return functions.
7026
7027 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
7028
7029         * doc/extend.texi (Empty Structures): Correct description of G++'s
7030         handling of these structures.
7031
7032         * c-decl.c (grokdeclarator): Reject extern redeclarations of
7033         static variables.
7034
7035 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
7036
7037         * config/rs6000/rs6000.md (define_constants): Define constants for
7038         all UNSPEC usage, including new values for TLS support.
7039         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
7040         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
7041         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
7042         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
7043         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
7044         eh_set_lr_di): Use them.
7045         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
7046         rs6000_emit_epilogue) Use them.
7047
7048         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
7049
7050 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
7051
7052         * Makefile.in (c-opts.o): Use custom action.
7053
7054 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
7055
7056         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
7057
7058 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7059
7060         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
7061         handle "superflat arrays" in Ada.
7062
7063         * integrate.c (expand_inline_function): Don't inline if would
7064         lose /u on a BLKmode TARGET.
7065
7066 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
7067
7068         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
7069         extracted from dbxout_type.
7070         (dbxout_range_type): print large bounds in octal format.
7071         (dbxout_type): Replace extracted code by call to
7072         print_int_cst_bounds_in_octal_p.
7073
7074         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
7075         of DW_LANG_Ada83 for Ada units.
7076
7077 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
7078
7079         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
7080         temporary used to round CONST_INT sizes.
7081
7082         * tree.c (int_fits_type_p): Extract generic checks from the case
7083         of constant type bounds. Refine the checks against constant type
7084         bounds to allow for possible decisions against each of these bounds
7085         without requiring both bounds to be constant.
7086         (tree_int_cst_msb): Put back.
7087         * tree.h (tree_int_cst_msb): Likewise.
7088
7089         * global.c (global_conflicts): Prevent allocation of call clobbered
7090         hard regs to pseudos live across abnormal edges, as later passes are
7091         not ready to handle them.
7092
7093         * fold-const.c (fold): Reorder tests for conditional expressions.
7094
7095         * expr.c (highest_pow2_factor): Return unsigned.
7096         * expr.h (offset_address): Likewise.
7097         * emit-rtl.c (offset_address): POW2 argument now unsigned.
7098
7099 2003-04-14  Roger Sayle  <roger@eyesopen.com>
7100
7101         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
7102         string literals at compile-time.
7103
7104 2003-04-14  Roger Sayle  <roger@eyesopen.com>
7105
7106         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
7107         comparison operation and c1/c2 are floating point constants into
7108         x swap(cmp) (c1 - c2).
7109
7110 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
7111
7112         * genautomata.c (output_translate_vect): Fix a typo in loop
7113         condition.
7114
7115 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
7116
7117         PR target/10377
7118         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
7119         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
7120         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
7121         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
7122         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
7123         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
7124         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
7125         ("*extopqihi_swap_side", "*extopqisi_swap_side")
7126         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
7127         When next to constraint R, replace constraint i with n.
7128
7129 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
7130
7131         PR opt/10024
7132         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
7133
7134 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7135
7136         * doc/contrib.texi (Contributors): Correct my entry.
7137
7138 2003-04-13  Roger Sayle  <roger@eyesopen.com>
7139
7140         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
7141         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
7142         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
7143         implies DECL_BUILT_IN to simplify logic.
7144         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
7145
7146 2003-04-13  Roger Sayle  <roger@eyesopen.com>
7147
7148         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
7149         (BT_FN_PTR_SIZE_SIZE): Likewise.
7150         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
7151         New built-in functions for malloc, calloc and strdup respectively.
7152         * calls.c (special_function_p): No need to handle malloc-like
7153         functions any longer.  ECF_MALLOC is set via built-in attributes.
7154
7155         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
7156
7157         * doc/extend.texi: Document these new built-in functions.
7158
7159 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7160
7161         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
7162         (expand_builtin_stpcpy): New.
7163         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
7164         * builtins.def: Add mempcpy & stpcpy support.
7165         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
7166
7167 2003-04-13  Nick Clifton  <nickc@redhat.com>
7168
7169         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
7170         "GCC".
7171         * config/rs6000/40x.md, config/rs6000/603.md,
7172         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
7173         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
7174         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
7175         config/rs6000/aix43.h, config/rs6000/aix51.h,
7176         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
7177         config/rs6000/altivec.h, config/rs6000/altivec.md,
7178         config/rs6000/beos.h, config/rs6000/darwin.h,
7179         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
7180         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
7181         config/rs6000/freebsd.h, config/rs6000/gnu.h,
7182         config/rs6000/host-darwin.c, config/rs6000/linux.h,
7183         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
7184         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
7185         config/rs6000/netbsd.h, config/rs6000/power4.md,
7186         config/rs6000/rios1.md, config/rs6000/rios2.md,
7187         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
7188         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
7189         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
7190         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
7191         config/rs6000/spe.md, config/rs6000/sysv4.h,
7192         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
7193         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
7194
7195 2003-04-13  Nick Clifton  <nickc@redhat.com>
7196
7197         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
7198         support for -mcall-aix switch.
7199         * config/rs6000/eabiaix.h: Delete.
7200         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
7201         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
7202         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
7203         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
7204         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
7205         debug_stack_info, output_function_profiler,
7206         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
7207         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
7208         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
7209         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
7210         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
7211         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
7212         multilibs.
7213         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
7214         (MULTILIB_EXCEPTIONS): Delete.
7215         (MULTILIB_MATCHES): Remove mcall-aix matches.
7216
7217         * doc/fragments.texi: Replace -mcall-aix example with an ARM
7218         one.
7219         * doc/install.texi: Delete powerpc-*-eabiaix target.
7220         * doc/invoke.texi: Remove documentation of mcall-aix switch.
7221         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
7222         * config.gcc: Delete powerpc-*-eabiaix target.
7223
7224 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
7225
7226         * doc/invoke.texi: Fix typos.
7227         * doc/tm.texi: Likewise.
7228
7229 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
7230
7231         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
7232
7233 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
7234
7235         * tree.c (build_constructor): New function.
7236         * tree.h: Prototype it.
7237
7238         * c-typeck.c (build_c_cast, pop_init_level)
7239         * profile.c (build_function_info_value, build_gcov_info_value)
7240         (create_profiler):
7241         Use build_constructor.
7242
7243         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
7244
7245         * objc/objc-act.c (build_constructor):
7246         Rename objc_build_constructor. Use build_constructor.
7247         (build_objc_string_object, objc_add_static_instance)
7248         (init_def_list, init_objc_symtab, init_module_descriptor)
7249         (generate_static_references, build_selector_translation_table)
7250         (build_descriptor_table_initializer, generate_descriptor_table)
7251         (build_protocol_initializer, build_ivar_list_initializer)
7252         (generate_ivars_list, build_dispatch_table_initializer)
7253         (generate_dispatch_table, generate_protocol_list)
7254         (build_category_initializer, build_shared_structure_initializer):
7255         Update to match.
7256
7257 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
7258
7259         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
7260
7261 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7262
7263         * config/m68hc11/m68hc11-protos.h
7264         (m68hc11_eq_compare_operator): Declare
7265         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
7266         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
7267         (d_register_operand): Check the operand mode.
7268         (hard_addr_reg_operand): Likewise.
7269
7270 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7271
7272         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
7273         pattern for dbcc/ibcc generation for 68HC12.
7274         ("doloop_end"): New pattern.
7275         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
7276         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
7277         ("m68hc12_dbcc_dec_qi"): New pattern.
7278         ("m68hc12_dbcc_inc_qi"): New pattern.
7279         (split): Add split for the above when we can't use dbcc/ibcc due to
7280         reloading.
7281         (peephole2): Add peephole2 to generate the above when possible.
7282
7283 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7284
7285         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
7286         mode of operand 0.
7287         (peephole2 optimize const load): Likewise for operand 2.
7288         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
7289         clobbers CC_REGNUM.
7290         ("*rotrhi3_with_carry"): Likewise.
7291         (ashift:DI 1 split): Update pattern to create the above rotate.
7292         (lshiftrt:DI 1 split): Likewise.
7293
7294 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7295
7296         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
7297         ("tstqi_z_used" split): Use it.
7298         ("cmphi_z_used"): Likewise.
7299         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
7300         ("cmpqi_z_used"): Likewise.
7301
7302 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
7303
7304         PR c++/7910
7305         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
7306
7307 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
7308
7309         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
7310         * configure, config.in: Regenerate.
7311         * intl.c (gcc_gettext_width): New function.
7312         * intl.h: Prototype it.
7313
7314 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7315
7316         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
7317         recognize -mnorelax.
7318         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
7319         (REG_CLASS_NAMES): Add its name.
7320         (REG_CLASS_CONTENTS): Define its content.
7321
7322 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
7323
7324         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
7325         parameters so that offsets are valid for far definition.
7326         (__mulsi3): Likewise and use ret to return.
7327         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
7328
7329 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
7330
7331         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
7332
7333 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
7334
7335         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
7336         containing a libgcc.a, move lib* to the corresponding stage dir.
7337
7338         * Makefile.in (stage1-start, stage2-start, stage3-start,
7339         stage4-start): Move $(SPECS) to specs in stage dir.
7340         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
7341         back as $(SPECS).
7342
7343         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
7344         object files from the non-libgcc/ multilib directories as well.
7345
7346 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
7347
7348         * profile.c (read_counts_file): Initialise 'checksum'.
7349
7350         * emit-rtl.c (gen_rtx): Really correct typo.
7351
7352         PR c++/9393
7353         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
7354         * configure.in: Check for gettimeofday.
7355         * tree.c (flag_random_seed): Define.
7356         (default_flag_random_seed): New.
7357         (append_random_chars): Use flag_random_seed rather than trying
7358         to acquire randomness here.
7359         * tree.h (default_flag_random_seed): Declare.
7360         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
7361         descriptions.
7362         (decode_f_option): Handle -frandom-seed.
7363         (print_switch_values): Call default_flag_random_seed.
7364         * flags.h (flag_random_seed): Declare.
7365         * configure: Regenerate.
7366         * config.in: Regenerate.
7367         * config/alpha/t-crtfm: Use -frandom-seed.
7368
7369         * doc/extend.texi (Empty Structures): New.
7370
7371         * c-pch.c: Include flags.h.  Add comments to routines.
7372         (struct c_pch_validity): New.
7373         (get_ident): Update PCH file version number.
7374         (pch_init): Output current debugging type.
7375         (c_common_valid_pch): Check debugging type.
7376         * Makefile.in (c-pch.o): Update dependencies.
7377         * flags.h (debug_type_names): Declare.
7378         * toplev.c (debug_type_names): Move out of decode_g_option.
7379
7380 2003-04-11  Eric Christopher  <echristo@redhat.com>
7381
7382         * emit-rtl.c (gen_rtx): Fix typos.
7383
7384 2003-04-11  Richard Henderson  <rth@redhat.com>
7385
7386         * emit-rtl.c (gen_rtx): Zero '0' fields.
7387
7388 2003-04-11  Richard Henderson  <rth@redhat.com>
7389
7390         PR c++/10202
7391         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
7392         not COMPLETE_TYPE_P for re-invoking layout_decl.
7393
7394 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
7395
7396         * doc/bugreport.texi: Fix paragraph breaking between sections
7397         in preparation for TeXinfo's paragraph indentation fixes.
7398         * doc/extend.texi: Ditto.
7399         * doc/invoke.texi: Ditto.
7400         * doc/objc.texi: Ditto.
7401         * doc/gcov.texi: Wrap 'gcov' in @command{}.
7402         * doc/invoke.texi (Darwin Options): Add a preamble.
7403
7404 2003-04-11  Richard Henderson  <rth@redhat.com>
7405
7406         * config/i386/i386.c (tls_model_chars): Remove.
7407         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
7408         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
7409         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
7410         (tls_symbolic_operand_1): Likewise.
7411         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
7412         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
7413         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
7414         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
7415         bits "copied from i386.h" with default_encode_section_info.
7416
7417 2003-04-11  Richard Henderson  <rth@redhat.com>
7418
7419         * rtl.def (SYMBOL_REF): Add two 0 fields.
7420         * gengtype.c (adjust_field_rtx_def): Handle them.
7421         * print-rtl.c (print_rtx): Print them.
7422         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
7423         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
7424         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
7425         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
7426         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
7427         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
7428         (SYMBOL_FLAG_MACH_DEP): New.
7429         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
7430         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
7431         (assemble_static_space): Set SYMBOL_REF_FLAGS.
7432         (assemble_trampoline_template): Likewise.
7433         (output_constant_def, force_const_mem): Likewise.
7434         (default_encode_section_info): New.
7435         * output.h: Declare it.
7436         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
7437
7438 2003-04-11  Richard Henderson  <rth@redhat.com>
7439
7440         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
7441         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
7442         * optabs.c (init_optabs): Initialize them.
7443         (init_libfuncs): Use init_one_libfunc.
7444         * calls.c (expand_call): Use gcov_flush_libfunc.
7445         * expr.c (store_constructor): Use setbits_libfunc.
7446         * function.c (expand_main_function): Use init_one_libfunc.
7447         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
7448
7449 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
7450
7451         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
7452         documentation; add DECL_FRIEND_CONTEXT.
7453
7454 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7455
7456         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
7457         notes on linker selection and configuration for 64-bit HP-UX port.
7458         * doc/invoke.texi (hppa): Remove hppa text from description for
7459         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
7460         and -threads options.
7461
7462         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
7463         libc.a on libdld.sl when -static is specified and -nolibdld is not
7464         specified.
7465         * pa64-hpux.h (LIB_SPEC): Likewise.
7466         * pa-hpux11.h (LIB_SPEC): Likewise.
7467         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
7468         is not specified.
7469
7470 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
7471
7472         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
7473         not IDENTIFIER_LOCAL_VALUE.
7474
7475 2003-04-11  Richard Henderson  <rth@redhat.com>
7476
7477         PR c/10201
7478         * expr.c (expand_expr): Move DECL_RTL frobbing ...
7479         * stor-layout.c (layout_decl): ... here.
7480
7481 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
7482
7483         * doc/invoke.texi: Eliminate extra white-space caused by
7484         @gccoptlist{ on its own line.
7485         * doc/invoke.texi: Ensured there are two spaces between each option.
7486         * doc/invoke.texi: Re-wrapped option lines that were too wide.
7487         Added @gol to options that didn't have them.
7488
7489 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
7490
7491         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
7492         gcov-iov.h.
7493
7494         Simplify interface to gcov reading and writing.
7495         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
7496         gcov_alloc, gcov_modified, gcov_errored): Move into ...
7497         (struct gcov_var gcov_var): ... this static structure.
7498         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
7499         Return void.
7500         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
7501         read object.
7502         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
7503         (gcov_reserve_length): Remove.
7504         (gcov_write_tag): New.
7505         (gcov_write_length): Adjust.
7506         (gcov_read_summary, gcov_write_summary): Adjust.
7507         (gcov_eof, gcov_ok): Rename to ...
7508         (gcov_is_eof, gcov_is_error): ... here. Return error code.
7509         (gcov_save_position, gcov_resync): Rename to ...
7510         (gcov_position, gcov_seek): ... here.
7511         (gcov_skip, gcov_skip_string): Remove.
7512         (gcov_error): Remove.
7513         (gcov_open, gcov_close): Adjust.
7514         * gcov.c (find_source): Take const char *, copy it on allocation.
7515         (read_graph_file): Adjust.
7516         (read_count_file): Adjust.
7517         * libgcov.c (gcov_exit): Adjust.
7518         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
7519         tag_arc_counts, tag_summary): Return void. Adjust.
7520         (struct tag_format): Adjust proc member.
7521         (dump_file): Adjust gcov calls.
7522
7523 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
7524
7525         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
7526         mkfixinc.sh.
7527         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
7528         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
7529         build != host sysrooted builds.
7530         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
7531         TARGET_SYSTEM_ROOT even on sysrooted natives.
7532         * configure: Rebuilt.
7533
7534 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
7535
7536         * c-decl.c (struct binding_level): Add shadowed_tags and
7537         function_body; remove this_block, tag_transparent, and
7538         subblocks_tag_transparent; update comments.
7539         (clear_binding_level, lookup_tag_reverse): Kill.
7540         (make_binding_level): Use ggc_alloc_cleared or memset.
7541         (lookup_tag): Remove struct binding_level* parameter.  All
7542         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
7543         current_binding_level->tags if asked for thislevel_only or if
7544         we might have to diagnose "struct foo; union foo;"
7545         (pushlevel): Ignore argument.  Do not push another binding
7546         level on the transition from the parameters to the top level
7547         of the function body; just tweak the flags and proceed.
7548         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
7549         a function body, separate the parameter list from the
7550         top-level local variables.
7551         (set_block): Do nothing.
7552         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
7553         shadowed_tags if necessary.
7554         (warn_if_shadowing): Nuke the special case for local shadowing
7555         parameter.
7556         (pushdecl): Do not create a shadow entry if we are replacing
7557         an older decl in the same binding level.
7558         (pushdecl_function_level): Tweak for new way of indicating
7559         function scope.
7560         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
7561         (start_function): Don't set subblocks_tag_transparent.
7562         (finish_function): Fix up the binding_level stack for totally
7563         empty functions.  Otherwise, don't call poplevel.
7564
7565         * c-common.c (shadow_warning): MANDATORY argument is no longer
7566         necessary.  Always use plain warning.
7567         * c-common.h: Update to match.
7568
7569         * cfglayout.c (scope_to_insns_initialize): Clear block when we
7570         hit the FUNCTION_DECL.
7571         * function.c: Do not create cyclic tree structure.
7572
7573 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
7574
7575         * c-tree.h (struct lang_identifier): Replace global_value,
7576         local_value members with symbol_value, tag_value.  Kill
7577         implicit_decl and limbo_value.
7578         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
7579         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
7580         C_MISSING_PROTOTYPE_WARNED): Kill.
7581         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
7582         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
7583         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
7584         (implicit_decl_warning, lookup_name_current_level,
7585         record_function_scope_shadow): Don't prototype.
7586         (pushdecl_function_level): Prototype.
7587
7588         * c-decl.c (truly_local_externals): New variable.
7589         (struct binding_level): Adjust commentary.
7590         (get_function_binding_level, clear_limbo_values,
7591         record_function_scope_shadow): Kill.
7592         (lookup_name_current_level, implicit_decl_warning): Are now static.
7593         (any_external_decl, record_external_decl): New static functions.
7594         (clone_underlying type): Split out of pushdecl.
7595         (c_print_identifier): Update to match changes to struct
7596         lang_identifier.
7597         (poplevel): Delete #if 0 block.  Make externals invisible
7598         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
7599         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
7600         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
7601         (duplicate-decls): For real parm decl after a forward decl,
7602         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
7603         foo(...) { } with only a warning.  Say whether a previous
7604         declaration was implicit.
7605         (warn_if_shadowing): Now handles all shadowing, not just
7606         local-over-local.  Clarify comments.
7607         (pushdecl): Rewritten.  There is no longer a distinction
7608         between global and local symbol values; they're all
7609         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
7610         DECL_EXTERNAL decls, and use any_external_decl to check
7611         against previous externals.  Kill #if 0 blocks.  Don't
7612         tolerate error_mark_node being NULL.
7613         (pushdecl_top_level): Handle only those cases which
7614         Objective C (the only user) needs.
7615         (pushdecl_function_level): New function.
7616         (implicitly_declare): Create ordinary decls with
7617         C_DECL_IMPLICIT set.  Recycle old decls, however they got
7618         created.
7619         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
7620         for C_DECL_INVISIBLE symbols.
7621         (lookup_name_current_level): Likewise.  Use chain_member.
7622         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
7623         Use pushdecl_function_level.
7624         (builtin_function): Use C_DECL_INVISIBLE.
7625         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
7626         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
7627         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
7628         (identifier_global_value): Same.  Must scan
7629         global_binding_level in extremis.
7630
7631         * c-typeck.c (undeclared_variable): New static function, split
7632         from build_external_ref.
7633         (build_external_ref): Use DECL_CONTEXT, not
7634         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
7635         an instance variable.  Restructure for clarity.
7636         * objc/objc-act.c: Use identifier_global_value, not
7637         IDENTIFIER_GLOBAL_VALUE.
7638
7639 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
7640
7641         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
7642         not Working Paper.
7643         * doc/invoke.texi (C++ Dialect Options): Same.
7644
7645 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
7646
7647         * tree.c (tree_operand_check_failed): New function.
7648         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
7649         TREE_RTL_OPERAND_CHECK): New checking macros.
7650         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
7651         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
7652         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
7653         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
7654         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
7655         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
7656         checking macros.
7657
7658 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
7659
7660         PR inline-asm/8803
7661         * function.c (instantate_virtual_regs):  Verify that all ASM statements
7662         match after the virutal regs instantiation.
7663
7664 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
7665
7666         * ia64-protos.h (addp4_optimize_ok): New.
7667         * ia64.c (addp4_optimize_ok): New.
7668         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
7669         (*ptr_extend_plus_2): Ditto.
7670
7671 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
7672
7673         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
7674         not with convert_memory_address.
7675         (store_constructor): Ditto, and same for copy_size_rtx.
7676         (expand_expr): Ditto.
7677
7678 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
7679
7680         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
7681
7682 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
7683
7684         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
7685         even if it is configured to be write-through.
7686
7687 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
7688
7689         * config/s390/s390.c (larl_operand): Do not allow symbols
7690         marked with '@'.
7691         (s390_encode_section_info): Mark symbols with forced 1-byte
7692         alignment with '@'.
7693         (s390_strip_name_encoding): Strip '@'.
7694         (legitimize_pic_address): Handle symbols that are not valid
7695         LARL operands in 64-bit mode.
7696
7697 2003-04-10  Andrew Haley  <aph@redhat.com>
7698
7699         * tree-inline.c (inlinable_function_p): Disable inlining for
7700         synchronized methods.
7701
7702 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
7703
7704         * c-common.h (lang_statement_code_p): Remove declaration.
7705         (statement_code_p): Ditto.
7706         (c_common_stmt_codes): Define; list of c-common statement codes.
7707         (statement_code_p): New extern declaration.
7708         (STATEMENT_CODE_P): Define.
7709         (INIT_STATEMENT_CODES): Define.
7710         * c-common.c (statement_code_p): Kill the function, declare
7711         as an array of bools instead.
7712         (lang_statement_code_p): Remove.
7713         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
7714         (c_safe_from_p): Ditto.
7715         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
7716         to initialize the statement_code_p array.
7717         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
7718         statement_code_p.
7719         (copy_tree_r): Ditto.
7720         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
7721         statement tree codes.
7722         * cp/lex.c (cxx_init): Add missing print line break.  Use
7723         INIT_STATEMENT_CODES to initialize the statement_code_p array.
7724         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
7725         instead of statement_code_p.
7726         * cp/pt.c (tsubst_expr): Ditto.
7727         * cp/tree.c (verify_stmt_tree_r): Ditto.
7728         (cp_statement_code_p): Remove.
7729         (init_tree): Don't set lang_statement_code_p, it's gone.
7730
7731 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
7732             Zack Weinberg  <zack@codesourcery.com>
7733
7734         * regrename.c (struct du_chain): Use a bitfield for reg_class.
7735         * cse.c (struct qty_table_elem, struct table_elt, struct set):
7736         Use bitfields for fields holding enum rtx_code or
7737         enum machine_mode values.  Add comments explaining size choices.
7738
7739 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
7740
7741         * config/fp-bit.c (unpack_d): Handle pair of doubles with
7742         different signs correctly.
7743
7744 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
7745
7746         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
7747         (reg_pending_barrier): Make it of the enumeration type.
7748         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
7749         TRUE_BARRIER.
7750         (sched_analyze): Ditto.
7751         (sched_analyze_insn): Ditto.  Use anti-dependencies for
7752         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
7753         (init_deps_global): Initialize the barrier as NO_BARRIER.
7754
7755 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
7756
7757         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
7758         Check that asm insn starts on a new cycle.  Add nops after asm
7759         insn to end bundle.
7760         (bundling): Move insn type evaluation from the loop.  Call
7761         issue_nops_and_insn with the new parameter.  Ignore changing
7762         position for nops after asm insn.
7763
7764 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
7765
7766         * optabs.c: Comment that gen_add2_insn and others may actually
7767         return emitted insns, if the gen functions turn out to return
7768         emitted insns.
7769         * reload1.c (reload_cse_move2add): Cope with emitted insns from
7770         gen_add2_insn.
7771
7772 2003-04-09  Richard Henderson  <rth@redhat.com>
7773
7774         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
7775         but not tls_symbolic_operand.
7776         (ia64_expand_load_address): Remove scratch operand.
7777         (ia64_expand_tls_address): Split out from ia64_expand_move.
7778         (ia64_expand_move): Split symbolics only after reload.
7779         (ia64_emit_cond_move): New.
7780         * config/ia64/ia64-protos.h: Update.
7781         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
7782         (symbolic splitter): Accept SImode operands too.
7783         (cmove splitter): Use ia64_emit_cond_move.
7784
7785 2003-04-09  Nick Clifton  <nickc@redhat.com>
7786
7787         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
7788         newer.
7789         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
7790         instead of -mno-fpu.
7791         * config/arm/semi.h (ASM_SPEC): Likewise.
7792         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
7793         but only if -msoft-float is specified pass.  Otherwise pass
7794         -mfpu=softvfp.
7795
7796 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7797
7798         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
7799         free_EXPR_LIST_node.
7800
7801 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7802
7803         * fold-const.c (fold):  Use "fold" following build in more places.
7804         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
7805         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
7806
7807 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7808
7809         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
7810         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
7811         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
7812         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
7813         Delete function scope "fcode" variable to avoid shadowing.
7814
7815 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
7816
7817         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
7818         Take into account DWARF_INITIAL_LENGTH_SIZE.
7819
7820 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
7821
7822         * reorg.c (fill_slots_from_thread): When considering changing the
7823         insn following a reg-to-reg copy insn to use the source reg of the
7824         copy, bail out if there's overlap between the registers.
7825
7826 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7827
7828         * function.c (postponed_insns): New.
7829         (purge_addressof_1): Postpone processing of insns if addressofs
7830         are not put into stack.
7831         (purge_addressof): Process postponed insns.
7832
7833 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7834
7835         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
7836         this is FP_MODE_DOUBLE .
7837         * sh.c (ra.h): #include.
7838         (push_regs): Add second parameter.  Changed all callers.
7839         If necessary, set fpscr before saving floating point registers.
7840         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
7841         do saves / restores with SZ == 1.
7842         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
7843         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
7844         registers are being restored, restore FPSCR only after restoring them.
7845
7846 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
7847
7848         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
7849         regardless of architecture.
7850         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
7851
7852 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7853
7854         * sh.c (push_regs, calc_live_regs): Return int.  Take single
7855         HARD_REG_SET * parameter.  Changed all callers.
7856
7857 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
7858
7859         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
7860         GOTOFF operand.
7861         (legitimize_pic_address): Move plus outside the unspec.
7862         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
7863         for validity.
7864
7865 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
7866
7867         * gcov-io.h (gcov_save_position): Remove __inline__ from
7868         declaration.
7869
7870 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
7871
7872         * doc/install.texi: Use @command and @samp for single- and
7873         multi-word commands respectively.
7874         * doc/makefile.texi: Likewise.
7875         * doc/sourcebuild.texi: Likewise.
7876
7877 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
7878             Richard Henderson  <rth@redhat.com>
7879
7880         PR c/9516
7881         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
7882         favour of looping and tail recursion for TREE_LIST and binops.
7883
7884 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7885
7886         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
7887         for insns without luid.
7888
7889 2003-04-07  Glen Nakamura  <glen@imodulo.com>
7890
7891         PR opt/8634
7892         * explow.c (maybe_set_unchanging): Don't flag non-static const
7893         aggregate type initializers with RTX_UNCHANGING_P.
7894
7895 2003-04-07  Richard Henderson  <rth@redhat.com>
7896
7897         PR opt/8634
7898         * function.c (purge_addressof_1): Don't try arithmetics for
7899         unchanging memories.
7900
7901 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
7902
7903         * doc/sourcebuild.texi (Test Suites): Document testing support for
7904         gcov and profile-directed optimizations; describe gcc.misc-tests.
7905
7906 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
7907
7908         PR target/10077
7909         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
7910
7911 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7912
7913         * doc/rtl.texi (Comparison operations): Update to
7914         record the allowed comparison modes.
7915
7916 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7917
7918         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
7919         V2SI_type_node to opaque_V2SI_type_node.  Rename all
7920         V2SF_type_node to opaque_V2SF_type_node.
7921         (rs6000_init_builtins): Define opaque_V2SI_type_node and
7922         opaque_V2SF_type_node.
7923         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
7924         opaque_V2SF_type_node are opaque types.
7925
7926 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
7927
7928         * gcse.c (replace_store_insn): Use single_set.
7929
7930 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
7931
7932         Change gcov file interface to single file at a time.
7933         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
7934         Convert to C89 prototypes.
7935         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
7936         gcov_error, gcov_modified): New static variables.
7937         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
7938         functions.
7939         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
7940         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
7941         (gcov_read_summary, gcov_write_summary): Adjust.
7942         (gcov_save_position, gcov_reserve_length, gcov_write_length):
7943         Adjust.
7944         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
7945         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
7946         (da_file_position, da_file_seek, da_file_write, da_file_read):
7947         Remove.
7948         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
7949         * gcov.c (gcov_type): Don't typedef here.
7950         (IN_GCOV): #define
7951         (read_graph_file, read_count_file): Adjust.
7952         * gcov-dump.c (gcov_type): Don't typedef here.
7953         (IN_GCOV): #define.
7954         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
7955         Remove FILE parameter, adjust.
7956         (struct tag_format): Adjust proc member.
7957         (dump_file): Adjust.
7958         * libgcov.c (IN_LIBGCOV): #define.
7959         (gcov_exit): Adjust.
7960         * loop-init.c: Don't #include gcov-io.h
7961         * profile.c (struct counts_entry): New structure to hold counter
7962         values.
7963         (struct section_reference, struct da_index_entry): Remove.
7964         (bbg_file, da_file): Remove.
7965         (htab_counts_index_hash, htab_counts_index_eq,
7966         htab_counts_index_del): Replace with ...
7967         (htab_counts_entry_hash, htab_counts_entry_eq,
7968         htab_counts_entry_del): ... these.
7969         (cleanup_counts_index, index_counts_file): Remove.
7970         (read_counts_file): New function.
7971         (get_exec_counts): Adjust.
7972         (compute_branch_probabilities): Don't free the exec counts here.
7973         (branch_prob): Adjust.
7974         (init_branch_prob): Adjust.
7975         (end_branch_prob): Adjust.
7976
7977 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7978
7979         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7980         -mfloat-gprs.
7981
7982         * config/rs6000/rs6000.c: Delete rs6000_fprs.
7983         Declare rs6000_float_gprs.
7984         Declare rs6000_float_gprs_string.
7985         (rs6000_parse_float_gprs_option): New.
7986         (rs6000_override_options): Genericize rs6000_parse_* calls to use
7987         rs6000_parse_yes_no_option.
7988         Change check for cpu=8540, to use TARGET_E500.
7989         (rs6000_parse_isel_option): Delete.
7990         (rs6000_parse_spe_option): Delete.
7991         (rs6000_parse_vrsave_option): Delete.
7992
7993         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
7994         Define rs6000_float_gprs_string.
7995         (TARGET_OPTIONS): Add rs6000_float_gprs option.
7996
7997         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
7998
7999         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
8000
8001 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
8002
8003         PR opt/10024
8004         * cfglayout.c (cfg_layout_redirect_edge):
8005         Redirect any branch edges unified with the fallthru one.
8006         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
8007         case fallthru edges when called via cfglayout.c
8008
8009 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
8010
8011         * c-typeck.c (output_init_element): Check for type == error_mark_node.
8012
8013 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
8014
8015         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
8016         split.
8017         (a splitter): Do zero-extension via HImode.
8018
8019 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
8020
8021         * doc/invoke.texi: Eliminate extra white-space caused by
8022         @gccoptlist{ on its own line.
8023         * doc/invoke.texi: Ensured there are two spaces between each option.
8024         * doc/invoke.texi: Re-wrapped option lines that were too wide.
8025         Added @gol to options that didn't have them.
8026
8027 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
8028
8029         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
8030
8031 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
8032
8033         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
8034         at the sizes of the relevant structures, rather than relying
8035         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
8036         sizes of any such we don't know about.  Use
8037         lang_hooks.identifier_size for IDENTIFIER_NODE.
8038
8039         (initializer_zerop): Use CONSTRUCTOR_ELTS.
8040         * tree.def: Update commentary.  Make fourth element of
8041         the definition for all 'c' and 'x' nodes zero.
8042
8043         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
8044         * langhooks-def.h: Update to match.
8045         * langhooks.c: New default, lhd_tree_size.
8046
8047         * c-common.def (SRCLOC): Kill.
8048         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
8049         Remove entirely - was already #if-ed out.
8050
8051
8052 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
8053
8054         * mklibgcc.in: Use a here document to avoid running afoul of
8055         shells that generate control-A from "echo \1".
8056
8057 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
8058
8059         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
8060         option.
8061
8062         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8063         rs6000_spe.
8064
8065         * config/rs6000/eabi.h (TARGET_E500): Define.
8066
8067         * config/rs6000/rs6000.h (TARGET_E500): Define.
8068         (TARGET_OPTIONS): Add spe= option.
8069         Declare rs6000_spe and rs6000_spe_string extern.
8070
8071         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
8072         Change TARGET_SPE to TARGET_E500.
8073         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
8074         !TARGET_FPRS.
8075         (print_operand): Same.
8076         (rs6000_generate_compare): Same.
8077         (output_cbranch): Same.
8078         (rs6000_spe): Declare.
8079         (rs6000_spe_string): Declare.
8080         (rs6000_override_options): Call rs6000_parse_spe_option.
8081         (rs6000_parse_spe_option): New.
8082
8083 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
8084
8085         * hashtable.c (gcc_obstack_init): Delete this function
8086         and everything related to it.
8087         * hashtable.h: Remove prototype.
8088         * bitmap.c (bitmap_element_allocate): Cleanup redundant
8089         defines.  Cleanup some unnecessary whitespace.
8090         * defaults.h (obstack_chunk_alloc): Redefine with
8091         appropriate casts for libiberty obstacks.
8092         (obstack_chunk_free): Ditto.
8093         (OBSTACK_CHUNK_SIZE): Define, default to 0.
8094         (gcc_obstack_init): Define as a call to _obstack_begin.
8095         * tree.c (print_obstack_statistics): Delete this unused
8096         function.
8097         * tree.h (obstack): Don't forward-declare.
8098         (print_obstack_statistics): Delete prototype.
8099         (print_obstack_name): Ditto.
8100         (gcc_obstack_init): Ditto.
8101         * rtl.h (gcc_obstack_init): Ditto.
8102         * java/jv-scan.c (gcc_obstack_init): Delete this
8103         function, its prototype and related defines.
8104         * java/jvgenmain.c (gcc_obstack_init): Delete this
8105         function, and related defines.
8106         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
8107         (obstack_chunk_free): Ditto
8108
8109 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
8110
8111         * dbxout.c (dbxout_handle_pch): Move prototype out from
8112         #if defined DBX_DEBUGGING_INFO.
8113
8114 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
8115
8116         * gcov.c (struct arc_info): Replace local_span with cycle.
8117         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
8118         (solve_flow_graph): Set is_call_return.
8119         (add_line_counts): Adjust. In block mode, blocks attach to last line.
8120         (accumulate_line_counts): Find graph cycles, not spanning tree.
8121         (output_branch_count): Adjust.
8122         (output_lines): Adjust.
8123         * doc/gcov.texi: Update.
8124
8125 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
8126
8127         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
8128         the second alternative to "#".
8129
8130 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
8131
8132         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
8133         (single_zero_operand): Likewise.
8134
8135 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
8136
8137         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
8138         * df.c: Include alloc-pool.h, not obstack.h.
8139         (df_ref_obstack): Remove.
8140         (df_ref_pool, df_link_pool): Add pools.
8141         (df_alloc): Init the new pools.
8142         (df_free): And free them.
8143         (df_link_create): Use the pools.
8144         (df_ref_create): Ditto.
8145
8146 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
8147
8148         * simplify-rtx.c: Fix formatting.
8149
8150 2003-04-05  Andrew Pinski  <apinski@apple.com>
8151
8152         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
8153         reg with reg1 == reg2 and offset1 = -8.
8154
8155 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
8156
8157         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
8158         multiply costs.  Correct Power4 divide costs.
8159         * config/rs6000/power4.md: Restore multiply and FP latency.
8160
8161 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8162
8163         * alias.c (find_base_term): Export.
8164         * rtl.h (find_base_term): Declare.
8165         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
8166         instead of flag_exceptions.  Move test for parameter passing ...
8167         (store_killed_in_insn): ... here.
8168
8169 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8170
8171         PR bootstrap/10267
8172         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
8173         for configuring.
8174
8175 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
8176
8177         * dbxout.c (scope_labelno): Add GTY.
8178         (have_used_extensions): Add GTY.
8179         (source_label_number): Add GTY.
8180         (lastfile): Add GTY.
8181         (lastfile_is_base): New.
8182         (base_input_file): New.
8183         (dbxout_handle_pch): New.
8184         (dbx_debug_hooks): Add handle_pch.
8185         (xcoff_debug_hooks): Likewise.
8186         (dbxout_function_end): Remove scope_labelno.
8187         (dbxout_init): Set base_input_file.
8188         (dbxout_handle_pch): New.
8189         (dbxout_source_file): Honour lastfile_is_base.
8190         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
8191         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
8192         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
8193         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
8194         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
8195         * debug.h (struct gcc_debug_hooks): Add handle_pch.
8196         * c-pch.c (pch_init): Don't call start_source_file, but do call
8197         handle_pch.
8198         (c_common_write_pch): Call handle_pch.
8199         (c_common_read_pch): Don't call start_source_file,
8200         or end_source_file.
8201
8202 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
8203
8204         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
8205         use of default attributes to agree MEM_ALIGN macro.
8206
8207 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
8208
8209         * dbxout.c (dbxout_type): When printing type index of range type
8210         whose bounds are printed in octal format, print type of parent type if
8211         it exists so enumerated type descriptions are not transformed
8212         into unsigned types.
8213
8214 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
8215
8216         * config/h8300/h8300-protos.h: Add a prototype for
8217         compute_a_shift_cc.
8218         * config/h8300/h8300.c (shift_one): Update the CC status.
8219         (shift_two): Likewise.
8220         (output_a_shift_cc): Set cc_inline and cc_special.
8221         (compute_a_shift_cc): New.
8222         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
8223
8224 2003-04-04  Richard Henderson  <rth@redhat.com>
8225
8226         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
8227
8228 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
8229
8230         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
8231         * fixinc/fixincl.x: Rebuilt.
8232         * fixinc/tests/base/stdio.h: Regenerated.
8233
8234 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
8235
8236         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
8237
8238 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
8239
8240         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
8241         (NORMAL_MODE).
8242         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
8243
8244 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8245
8246         * doc/contrib.texi (Contributors): Add entries for Wolfgang
8247         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
8248         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
8249         Danny Smith, and Ulrich Weigand.
8250         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
8251         entry.
8252
8253 2003-04-04  Nick Clifton  <nickc@redhat.com>
8254
8255         * config/sparc/sol2-bi.h: Revert previous delta.
8256         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
8257
8258 2003-04-04  Nick Clifton  <nickc@redhat.com>
8259
8260         * config/v850/v850.c (expand_prologue): Only use register save
8261         helper functions if long calls are not being used.
8262         Add a clobber of r11 id using long calls.
8263         (pattern_is_ok_for_prologue): Account for the extra clobber.
8264         (construct_save_jarl): Likewise.
8265         * config/v850/v850.md (prolog pattern): Do not use this pattern
8266         for v850e's.
8267
8268 2003-04-04  Andreas Schwab  <schwab@suse.de>
8269
8270         * stor-layout.c (layout_decl): Avoid syntax error in last change
8271         when PCC_BITFIELD_TYPE_MATTERS is defined but not
8272         EMPTY_FIELD_BOUNDARY.
8273
8274 2003-04-03  Jason Merrill  <jason@redhat.com>
8275
8276         PR c/10175
8277         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
8278         Look backwards for a line note.
8279
8280 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
8281
8282         * fix-header.c (read_scan_file): Defer switch processing.
8283
8284 2003-04-03  Matt Austern  <austern@apple.com>
8285
8286         * cpppch.c (reset_ht): Remove.
8287         (cpp_read_state): Remove loop to reset hashtable identifiers.
8288         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
8289         after pch file is written.
8290         * ggc.h (gt_pch_fixup_stringpool): Declare.
8291         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
8292         hashnode's value to another hashtable, then clear the original.
8293         (saved_ident_hash): Define.
8294         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
8295         store definitions in ident_hash, and clear ident_hash.
8296         (gt_pch_fixup_stringpool): Define.  Restore definitions from
8297         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
8298
8299 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
8300
8301         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
8302
8303 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8304
8305         PR optimization/10157
8306         * gcse.c (can_copy_p): Rename it to can_copy.
8307         (can_copy_init_p): Remove.
8308         (compute_can_copy): Use can_copy instead of can_copy_p.
8309         (can_copy_p): New exported function. Call compute_can_copy.
8310         (hash_scan_set): Use it.
8311         (gcse_main): Don't call compute_can_copy.
8312         (bypass_jumps): Don't call compute_can_copy.
8313         * rtl.h (can_copy_p): Declare.
8314         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
8315         copy if the mode doesn't support copy operations.
8316
8317 2003-04-03  Jason Merrill  <jason@redhat.com>
8318
8319         * Makefile.in (unstrap): Also remove stage_last.
8320
8321         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
8322         (dwarf2out_source_line): Don't do anything if line==0.
8323
8324         * stor-layout.c (do_type_align): New fn, split out from...
8325         (layout_decl): ...here.  Do all alignment calculations for
8326         FIELD_DECLs here.
8327         (update_alignment_for_field): Not here.
8328         (start_record_layout, debug_rli): Remove unpadded_align.
8329         * tree.h (struct record_layout_info_s): Remove unpadded_align.
8330         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
8331         or DECL_MODE on the CONST_DECLs.
8332         (finish_struct): Don't mess with DECL_ALIGN.
8333
8334 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
8335
8336         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
8337
8338 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
8339
8340         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
8341         function is an interrupt handler.
8342
8343         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
8344         restoring target registers with EH_RETURN_STACKADJ_RTX; use
8345         multiple registers in round-robin fashion.
8346
8347 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8348
8349         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
8350         * system.h (CHAR_BITFIELD): New.
8351
8352 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
8353
8354         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
8355         and LE.
8356         (another peephole2): Likewise.
8357
8358 2003-04-03  Nick Clifton  <nickc@redhat.com>
8359
8360         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
8361         (DEF_ARCH64_SPEC): Likewise.
8362
8363 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
8364
8365         * i386.c (constant_address_p): Use legitimate_constant_p.
8366         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
8367
8368 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
8369
8370         * config/h8300/h8300-protos.h: Add a prototype for
8371         gtle_operator.
8372         * config/h8300/h8300.c (gtle_operator): New.
8373         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
8374         gtle_operator.
8375         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
8376         and LE.
8377
8378 2003-04-02  Richard Henderson  <rth@redhat.com>
8379
8380         * libgcc-std.ver (_Unwind_GetCFA): New.
8381         * unwind-dw2.c (_Unwind_GetCFA): New.
8382         * unwind-libunwind.c (_Unwind_GetCFA): New.
8383         * unwind-sjlj.c (_Unwind_GetCFA): New.
8384         * unwind.h: Declare it.
8385
8386 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
8387
8388         PR inline-asm/8088
8389         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
8390         when MMX/SSE is not available.
8391
8392 2003-04-02  Mike Stump  <mrs@apple.com>
8393
8394         * doc/install.texi (Specific): Update pointers to apple.com.
8395
8396 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
8397
8398         * i386.c (override_options):  Disable red zone by default on i386.
8399         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
8400         Do not test TARGET_64BIT together with TARGET_RED_ZONE
8401
8402 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
8403
8404         * config/h8300/h8300.md (a peephole2): Tighten the condition.
8405
8406 2003-04-02  Richard Henderson  <rth@redhat.com>
8407
8408         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
8409
8410 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
8411
8412         * config/h8300/h8300.md (a peephole2): New.
8413
8414 2003-04-02  Richard Henderson  <rth@redhat.com>
8415
8416         * except.c (sjlj_find_directly_reachable_regions): Recognize when
8417         must-not-throw region has been deleted.
8418
8419 2003-04-02  Richard Henderson  <rth@redhat.com>
8420
8421         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
8422         optimization when flag_exceptions not enabled.
8423
8424 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
8425
8426         * config/rs6000/rs6000.c
8427         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
8428         macros.
8429         (rs6000_issue_rate): Add case for 8540.
8430         (rs6000_use_sched_lookahead): New function.
8431
8432         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
8433         units into MU ones.
8434         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
8435         reservation before retirement.
8436         (ppc8540_multiply, ppc8540_load, ppc8540_store,
8437         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
8438         Remove additional cycle in the reservation before retirement.
8439         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
8440         reservation of ppc8540_issue.
8441
8442 2003-04-02  Andreas Schwab  <schwab@suse.de>
8443
8444         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
8445
8446 2003-04-01  Richard Henderson  <rth@redhat.com>
8447
8448         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
8449         notes for nothrow calls if flag_forced_unwind_exceptions.
8450         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
8451         (sjlj_find_directly_reachable_regions): Likewise.
8452         (reachable_handlers): Likewise.
8453         (can_throw_external): Likewise.
8454         (collect_one_action_chain): Record cleanups after catch-all and
8455         must-not-throw if flag_forced_unwind_exceptions.
8456         * flags.h (flag_forced_unwind_exceptions): Declare.
8457         * toplev.c (flag_forced_unwind_exceptions): New.
8458         (lang_independent_options): Add it.
8459         * doc/invoke.text: Add it.
8460
8461 2003-04-01  David Mosberger <davidm@hpl.hp.com>
8462
8463         * config/ia64/crti.asm: Clean up trailing whitespace.
8464         Remove trailing hashes (#) from identifiers.
8465
8466         * config/ia64/crtn.asm: Ditto.
8467
8468         * config/ia64/crtend.asm: Remove trailing hashes (#) from
8469         identifiers.
8470         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
8471         directives.  Drop explicit bundling---it just makes the code
8472         harder to read.  Don't save/restore gp needlessly.
8473
8474         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
8475         identifiers (they're only needed if the identifier would clash
8476         with a register name otherwise).
8477         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
8478         directives.  Drop explicit bundling---it just makes the code
8479         harder to read.
8480         (__do_jv_register_classes): Ditto.
8481         (.fini_array): Remove "progbits" (newer
8482         assemblers don't like wrong section-types).
8483         (.init_array): Ditto.
8484
8485 2003-04-01  Roger Sayle  <roger@eyesopen.com>
8486
8487         PR fortran/9974
8488         * gcse.c (reg_killed_on_edge): New function to test whether the
8489         given reg is overwritten by any instruction queued on an edge.
8490         (bypass_block): Ignore substitutions killed on incoming edges.
8491         Don't bypass outgoing edges that have queued instructions.
8492
8493 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
8494
8495         * real.h (EXP_BITS): Make room for...
8496         (struct real_value): ... added canonical bit.
8497         (struct real_format): Added pnan.
8498         (mips_single_format, mips_double_format, mips_extended_format,
8499         mips_quad_format): New.
8500         * real.c: Copy p to pnan in all formats.
8501         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
8502         (real_nan): Use pnan to compute significand's shift.
8503         (real_identical): Disregard significand in canonical
8504         NaNs.
8505         (real_hash): Likewise.  Take signalling into account.
8506         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
8507         Disregard significand bits in canonical NaNs.  Set all bits of
8508         canonical NaN if !qnan_msb_set.
8509         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
8510         qnan_msb_set to tell the base double format.
8511         (ibm_extended_format): Use 53 as pnan.
8512         (mips_single_format, mips_double_format, mips_extended_format,
8513         mips_quad_format): Copied from the corresponding ieee/ibm
8514         formats, with qnan_msb_set false.
8515         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
8516         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
8517         * config/mips/mips.c (override_options): Use mips_single_format
8518         and mips_double_format.  Default TFmode to mips_quad_format.
8519         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
8520         * config/mips/t-irix6: Likewise.
8521         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
8522         * config/fp-bit.c (pack_d, unpack_d): Obey it.
8523
8524 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
8525
8526         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
8527         (live_image_destructor): Reset image to initial state.
8528         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
8529
8530 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8531
8532         * config/sparc/sparc.c (input_operand): Accept bare
8533         CONSTANT_P_RTX operands.
8534
8535 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8536
8537         * gcse.c (struct ls_expr): Added pattern_regs field.
8538         (ldst_entry): Initialize it.
8539         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
8540         (store_ops_ok): Use regs precomputed by them.
8541         (find_loads, store_killed_in_insn, load_kills_store): Change return
8542         type to bool.
8543         (store_killed_before, store_killed_after): Take position of register
8544         set in account.
8545         (reg_set_info): Store position of the setter.
8546         (gcse_main): Enable store motion.
8547         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
8548         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
8549         sharing.
8550         (simple_mem): Enable store motion of non-symbol mems.
8551         (regvec): Type changed.
8552         (LAST_AVAIL_CHECK_FAILURE): New.
8553         (compute_store_table_current_insn): New.
8554         (build_store_vectors): Computation of availability and anticipatability
8555         moved ...
8556         (compute_store_table, find_moveable_store): ... here.
8557         (delete_store): Remove senseless comment.
8558         (store_motion): Reorganize.
8559
8560 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
8561
8562         * config/mips/mips.c (override_options): Provide mappings for
8563         HI_REGNUM and LO_REGNUM.
8564         * config/mips/mips.h (MD_DBX_FIRST): Define.
8565
8566 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8567
8568         * combine.c (merge_outer_ops): Fix typo.
8569
8570         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
8571
8572 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
8573
8574         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
8575         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
8576         imul_compare.  Add lmul_compare.
8577         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
8578         in second pair of dispatch slots.  Model stores more accurately.
8579         Tweak multiply model.  Add bypasses for CR instructions dependent
8580         on complicated compares.
8581         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
8582         (muldi3): Add lmul_compare patterns.
8583         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
8584         and FPSTORE_UX to split instructions and add COMPARE,
8585         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
8586         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
8587         (rs6000_rtx_costs): Separate POWER4 multiply case.
8588
8589 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
8590
8591         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
8592         Do nothing if __builtin_return_address was not used.
8593
8594 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
8595
8596         * i386.md (test patterns):  Allow memory operand in operand1.
8597
8598 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
8599
8600         * testsuite/gcc.c-torture/execute/simd-3.c: New.
8601
8602         * expr.c (expand_expr): Handle VECTOR_CST.
8603         (const_vector_from_tree): New.
8604
8605         * varasm.c (output_constant): Handle VECTOR_CST.
8606
8607         * c-typeck.c (digest_init): Build a vector constant from a
8608         VECTOR_TYPE.
8609
8610         * config/rs6000/rs6000.c: Remove prototype for
8611         easy_vector_constant.
8612         (easy_vector_constant): Add mode parameter.  Rewrite to handle
8613         more easy constants.
8614         (rs6000_emit_move): Pass mode to easy_vector_constant.
8615         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
8616         (emit_easy_vector_insn): New.
8617         (easy_vector_same): New.
8618         (EASY_VECTOR_15): New macro.
8619         (EASY_VECTOR_15_ADD_SELF): New macro.
8620         (bdesc_2arg): Rename to xorv2si3.
8621         (easy_vector_constant_add_self): New.
8622         (input_operand): Allow vector constants.
8623
8624         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
8625         easy_vector_constant, easy_vector_constant_add_self.
8626         (EXTRA_CONSTRAINT): Add 'W'.
8627
8628         * config/rs6000/rs6000-protos.h: Add prototype for
8629         easy_vector_constant, emit_easy_vector_insn.
8630
8631         * config/rs6000/altivec.md (xorv8hi3): New.
8632         (xorv16qi3): New.
8633         Remove all _const0 patterns.
8634         (movv4si_internal): Rewrite to use code.  Add vector constant to
8635         vector alternative.  Add splitter.
8636         (movv8hi_internal): Same.
8637         (movv16qi_internal): Same.
8638         (movv4sf_internal): Same.
8639         Change the unspecs for vspltis* to use constants.
8640
8641         * config/rs6000/spe.md ("xorv4hi3"): New.
8642         ("spe_evxor"): Rename to xorv2si3.
8643         ("xorv1di3"): New.
8644         Remove all _const0 patterns.
8645         (movv2si_internal): Rewrite to use code.  Add vector constant to
8646         alternatives.  Add splitter.
8647         (movv4hi_internal): Add vector constant to alternatives.
8648         (movv1di_internal): Same.
8649         (movv2sf_internal): Same.
8650
8651 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
8652
8653         PR c/9936
8654         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
8655         variably-sized arrays in parameters.
8656         (set_save_expr_context): New function.
8657         (c_expand_body): Use it, via walk_tree.
8658
8659 2003-03-31  Eric Christopher  <echristo@redhat.com>
8660
8661         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
8662         (combinable_i3pat): Remove call to expand_field_assignment and
8663         #if 0'd code.
8664
8665 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
8666
8667         PR c++/10278
8668         * c-common.c (finish_label_address_expr): Handle the
8669         error_mark_node.
8670
8671 2003-03-31  Richard Henderson  <rth@redhat.com>
8672
8673         * real.c (real_identical): Reorg so as to not compare
8674         signalling for normals.
8675
8676 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
8677
8678         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
8679
8680 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
8681
8682         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
8683         notes as they are boggus.
8684         (m68hc11_gen_movqi): Likewise.
8685
8686 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
8687
8688         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
8689         save the soft registers after the frame pointer so that gdb can unwind
8690         the frame more easily.
8691         (expand_epilogue): Likewise in opposite order; allow to use X register
8692         as scratch if the return value is by reference.
8693
8694 2003-03-31  Jason Merrill  <jason@redhat.com>
8695
8696         PR java/10145
8697         * stor-layout.c (update_alignment_for_field): Respect
8698         DECL_USER_ALIGN for zero-length bitfields, too.
8699         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
8700         fields.
8701
8702 2003-03-31  Matt Austern  <austern@apple.com>
8703
8704         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
8705         (count_defs): Keep track of number of defs as well as total size.
8706         (write_defs): Put every definition in cpp_savedstate's defs array.
8707         (comp_hashnode): Define.  Comparison function for qsort.
8708         (cpp_write_pch_deps): Sort definitions before writing them.
8709         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
8710         (collect_ht_nodes): Define.
8711         (cpp_valid_state): When verifying that undefined identifiers in
8712         the pch file are still undefined, read a sorted list of undefined
8713         identifiers, collect all defined identifiers into a sorted list,
8714         and walk through both lists to make sure there's no match.
8715
8716 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8717
8718         * config/h8300/h8300.md (a peephole2): New.
8719
8720 2003-03-31  Michael Matz  <matz@suse.de>
8721
8722         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
8723
8724 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
8725
8726         PR target/10177
8727         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
8728         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
8729         all call-clobbered registers as used.
8730
8731 2003-03-31  Michael Matz  <matz@suse.de>
8732
8733         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
8734         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
8735
8736 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
8737
8738         * gcov.c: Add -a & -u options.
8739         (struct arc_info): Add local_span, is_call_non_return,
8740         is_nonlocal_return, is_unconditional flags, remove is_call flag.
8741         (struct block_info): Add flags, is_call_site, is_nonlocal_return
8742         members. Make encodings a union with span member.
8743         (struct function_info): Add blocks_executed, line, src, line_next
8744         members.
8745         (struct coverage_info): Make branches a union with blocks member.
8746         (struct source_info): Add functions member.
8747         (object_summary, program_count): New global variables.
8748         (flag_all_blocks, flag_unconditional): New flags.
8749         (find_source, output_branch_count): New functions.
8750         (print_usage): Adjust.
8751         (options): Adjust.
8752         (process_args): Adjust.
8753         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
8754         <GCOV_TAG_BLOCKS>: Read flags.
8755         <GCOV_TAG_LINES>: Adjust.
8756         (read_count_file): Process SUMMARY tags.
8757         (solve_flow_graph): Set is_unconditional and clear is_call_site
8758         appropriately.
8759         (add_branch_counts): Adjust. Don't count unconditional branches.
8760         (add_line_counts): Deal with all-blocks mode, accumulate block
8761         coverage.
8762         (accumulate_line_counts): Adjust, generate local spanning tree for
8763         all-blocks mode.
8764         (output_lines): Adjust.
8765         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
8766         * doc/gcov.texi: Document.
8767
8768 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/h8300/h8300.md: Organize peephole2's that transform
8771         (compare (reg:HI) (const_int)).
8772
8773 2003-03-31  Roger Sayle  <roger@eyesopen.com>
8774
8775         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
8776         (init_emit_once): Initialize dconstm2 and dconsthalf here.
8777         * real.h (dconstm2, dconsthalf): Add prototypes here.
8778         * real.c (real_sqrt): Use dconsthalf rather than local copy.
8779         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
8780         exp(x/2.0) remember to fold the division if possible.
8781         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
8782         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
8783         1.0/(x*x) and pow(x,0.5) as sqrt(x).
8784
8785 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8786
8787         * config/h8300/h8300.md (a new peephole2): New.
8788
8789 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
8790
8791         * gcse.c (simple_mem): Return false for floating-point accesses
8792         if flag_float_store is true.
8793
8794 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8795
8796         * gcse.c (gcse_constant_p): New function to identify constants
8797         suitable for constant propagation, including COMPARE with two
8798         integer constant arguments.
8799         (hash_scan_set): Use gcse_constant_p.
8800         (find_avail_set): Likewise.
8801         (cprop_insn): Likewise.
8802         (do_local_cprop): Likewise.
8803         (find_implicit_sets): Likewise.
8804         (find_bypass_set): Likewise.
8805
8806 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
8807
8808         * except.h: Remove definition of varray_type.
8809
8810 2003-03-30  Richard Henderson  <rth@redhat.com>
8811
8812         PR opt/10011, opt/10252:
8813         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
8814         before post-gcse cse pass.
8815
8816 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8817
8818         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
8819
8820 2003-03-30  DJ Delorie  <dj@redhat.com>
8821
8822         * profile.c (instrument_edges): Make sure any newly created
8823         jump insns have correct jump label info.
8824
8825 2003-03-30  Richard Henderson  <rth@redhat.com>
8826
8827         * cfgbuild.c (make_edges): Use tablejump_p.
8828         * cfgcleanup.c (label_is_jump_target_p): Likewise.
8829         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
8830         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
8831         (try_redirect_by_replacing_jump): Likewise.
8832         (redirect_edge_and_branch): Likewise.
8833         * cse.c (fold_rtx): Likewise.
8834         * jump.c (delete_related_insns): Likewise.
8835         * rtlanal.c (get_jump_table_offset): Likewise.
8836         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
8837
8838 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8839
8840         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
8841         (STRICT2_WARN): Likewise.
8842
8843 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8844
8845         PR other/6955
8846         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
8847         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
8848
8849 2003-03-30  Richard Henderson  <rth@redhat.com>
8850
8851         PR c/10083
8852         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
8853         don't zero_extend const inputs.
8854
8855 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8856
8857         * reload1.c (reload_cse_move2add): Fix a comment typo.
8858
8859 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8860
8861         * config/h8300/h8300.md (a peephole2): Remove useless code.
8862
8863 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8864
8865         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
8866         (*iorsi3_and_lshiftrt): Likewise.
8867         (*iorsi3_zero_extract): Likewise.
8868
8869 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8870
8871         * config/h8300/h8300.md (*insv_si_8_8): New.
8872         (*insv_si_8_8_lshiftrt_8): Likewise.
8873         (a peephole2): Likewise.
8874
8875 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8876
8877         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
8878         Uniformly use bugfix instead of bug fix.
8879
8880 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8881
8882         PR doc/895
8883         * ONEWS: Remove those items that already appear in the EGCS
8884         release notes on our web pages.
8885
8886 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8887
8888         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
8889         TARGET_HARD_FLOAT.  Reformat.
8890         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
8891
8892 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
8893
8894         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
8895         work on Solaris 2.5.1.
8896
8897 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
8898
8899         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
8900         section of h8300.md
8901         (*addsi3_and_nor_r_1): Likewise.
8902
8903 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
8904
8905         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
8906         set up before any trapping memory access if flag_non_call_exceptions.
8907
8908 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8909
8910         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
8911
8912         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
8913
8914 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
8915
8916         * configure.in: Clarify comments.
8917         * configure: Regenerate.
8918
8919 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
8920
8921         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
8922         label even if pool empty when generating PIC.
8923         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
8924
8925 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
8926             Dhananjay Deshpande  <dhananjayd@kpit.com>
8927
8928         PR target/10205
8929         * config/h8300/h8300.c (h8300_initial_elimination_offset):
8930         Correct the offset computation when TARGET_NORMAL.
8931
8932 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8933
8934         PR target/10067
8935         * config/sparc/sparc.md (jump pattern): Correct order
8936         when issuing the annuling marker.
8937
8938 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8939
8940         PR c/8281
8941         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
8942         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
8943
8944 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8945
8946         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
8947         globalize_label.
8948         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8949         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8950         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8951         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8952         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8953         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8954         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
8955
8956 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8957
8958         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
8959         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
8960         notes after hoisting.
8961         (load_mems): Adjust replace_loop_mems call.
8962
8963 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8964             Richard Henderson  <rth@redhat.com>
8965
8966         PR target/10114 and PR target/10084
8967         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
8968
8969 2003-03-27  Richard Henderson  <rth@redhat.com>
8970
8971         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
8972
8973 2003-03-27  Roger Sayle  <roger@eyesopen.com>
8974
8975         * fold-const.c (fold_inf_compare):  New function to simplify FP
8976         comparisons against +Infinity or -Infinity.
8977         (fold):  Optimize floating point comparisons against Infs and NaNs.
8978
8979 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
8980
8981         * libgcov.c: Provide only dummy functions if libc is not available.
8982
8983 2003-03-27  Richard Henderson  <rth@redhat.com>
8984
8985         * real.h (struct real_value): Add signalling.
8986         (EXP_BITS): Decrement.
8987         * real.c (get_canonical_qnan): Don't set MSB-1.
8988         (get_canonical_snan): Likewise.  Set signalling.
8989         (real_identical): Compare signalling.
8990         (round_for_format): Remove force-one-bit on code.
8991         (real_nan): Likewise.  Set signalling.
8992         (encode_ieee_single): Add force-one-bit code; honor signalling.
8993         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
8994         (decode_ieee_single): Set signalling.
8995         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
8996
8997 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
8998
8999         PR ada/9953
9000         * ada/Makefile.in (gnatlib configuration for HPUX): Split
9001         the general section for HPUX into specific sections for
9002         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
9003         11 case.
9004
9005 2003-03-27  Glen Nakamura  <glen@imodulo.com>
9006
9007         PR opt/10087
9008         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
9009         while incrementing giv.
9010         (record_biv): Check for duplicate biv locations and
9011         set (struct induction *) v->same if found.
9012
9013 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
9014
9015         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
9016         v0.9 API change: replace read of UNW_REG_HANDLER with
9017         unw_get_proc_info().
9018         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
9019         with unw_get_proc_info().
9020         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
9021         unw_get_proc_info().
9022
9023 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
9024
9025         * config/rs6000/8540.md: Use presence_set instead of absence_set.
9026
9027 2003-03-26  Richard Henderson  <rth@redhat.com>
9028
9029         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
9030
9031 2003-03-26  Roger Sayle  <roger@eyesopen.com>
9032
9033         PR bootstrap/10051, PR bootstrap/10169.
9034         * mips-tfile.c (init_file): Don't provide a static initializer.
9035         (initialize_init_file): Initialize the contents of init_file.
9036         (add_file): Call initialize_init_file if not already initialized.
9037
9038 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
9039
9040         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
9041         registers used for global asm variables.
9042         (s390_frame_info, s390_arg_frame_offset): Likewise.
9043         (s390_emit_prologue, s390_emit_epilogue): Likewise.
9044
9045 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
9046
9047         * config/rs6000/8540.md: New file.
9048
9049         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
9050         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
9051         reservations for imul.
9052
9053         * config/rs6000/rs6000.md: Include 8540.md.  Change
9054         delayed_compare onto mult_compare for insns generating
9055         multiplication.
9056         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
9057         New type attribute values.
9058
9059         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
9060         fpsimple instead of fp.
9061         (*divsf3_gpr): Use type vecfdiv instead of fp.
9062         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
9063         instead of vecfloat.
9064         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
9065         (spe_brinc): Use type brinc instead of veccomplex.
9066         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
9067         veccomplex.
9068         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
9069         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
9070         *movv2sf_internal): Define type attribute values for all
9071         alternatives.
9072         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
9073         of fpcompare.
9074         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
9075         instead of fpcompare.
9076
9077 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
9078
9079         * config/rs6000/power4.md: Allow delay between dispatch and
9080         function units for simple instructions.  Correct store units.
9081         Allow branch to occupy as many dispatch slots as necessary.
9082
9083 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
9084
9085         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
9086         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
9087         zero extend old to it.
9088         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
9089         operand.
9090
9091 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9092
9093         PR target/7784
9094         * reload.c (find_reloads_address): Handle
9095         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
9096         all base registers.
9097
9098 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
9099
9100         PR other/10203
9101         * version.c: Reference the GCC web site in the URL.
9102
9103 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
9104
9105         * c-incpath.c (add_standard_paths): Add both "translated" and
9106         non-translated header paths.
9107
9108 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
9109
9110         * doc/install.texi (*-*-freebsd*): Update with known status.
9111
9112 2003-03-21  Jason Merrill  <jason@redhat.com>
9113
9114         PR optimization/10171
9115         * unroll.c (unroll_loop): Don't delete the jump at the end unless
9116         we also delete a jump at the beginning.
9117
9118 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
9119
9120         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
9121         contributor.
9122
9123 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
9124
9125         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
9126         constants are not expensive.
9127
9128 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
9129
9130         PR opt/10056
9131         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
9132         jump jumping to the next instruction.
9133         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
9134
9135 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9136
9137         * doc/passes.texi (Passes): Properly document that we do not
9138         perform jump2 any longer; remove command-line option -dJ.
9139
9140 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9141
9142         PR optimization/8746
9143         * config/i386/i386.md (and promoting splitters): Disable HImode to
9144         SImode promoting when the sign bit matters and is not preserved, or
9145         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
9146         for size.
9147
9148 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
9149
9150         * config/h8300/h8300.md (a peephole2): Extend to support loads
9151         in QImode and HImode.
9152
9153 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
9154
9155         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
9156         _return_far
9157         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
9158         (MULTILIB_EXCEPTIONS): Likewise.
9159         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
9160         by calling some board support routine.
9161         ("call_value"): Likewise.
9162         ("*return_void"): Likewise for return.
9163         ("*return_16bit"): Likewise.
9164         ("*return_32bit"): Likewise.
9165         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
9166         for 68HC11 too.
9167         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
9168         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
9169         -mlong-calls for 68HC11.
9170         * config/m68hc11/larith.asm (declare_near): New macro.
9171         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
9172         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
9173         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
9174         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
9175         (__mulhi32): Likewise.
9176         (ret): Update macro for 68HC11.
9177         (__far_trampoline): Implement for 68HC11.
9178         (__call_a16, __call_a32, __return_void, __return_16): New support
9179         routines for 68HC11 memory bank switching calling support.
9180         (__return_32): Likewise.
9181
9182 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
9183
9184         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
9185
9186 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
9187
9188         * doc/install.texi (Testing): Mention test result links from build
9189         status pages.
9190
9191 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
9192
9193         * function.c (put_var_into_stack): Change bool parameter to int.
9194         (gen_mem_addressof): Likewise.
9195         * rtl.h (gen_mem_addressof): Likewise.
9196         * tree.h (put_var_into_stack): Likewise.
9197         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
9198         gen_mem_addressof or put_var_into_stack.
9199         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
9200         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
9201
9202 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
9203
9204         * config/h8300/h8300.md (a peephole2): New.
9205
9206 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
9207
9208         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
9209
9210 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9211
9212         * doc/contrib.texi (Contributors): Update Janis Johnson.
9213
9214 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9215
9216         PR target/10072
9217         * combine.c (simplify_if_then_else): Check that the mode
9218         has MODE_INT class before applying the (OP Z (mult COND C2))
9219         transformation.
9220
9221 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9222
9223         PR optimization/9414
9224         * config/sparc/sparc.md (widening peepholes): Use
9225         widen_memory_access instead of change_address.
9226
9227 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
9228
9229         PR c++/7086
9230         * c-typeck.c (c_mark_addressable): Adjust calls to
9231         put_var_into_stack.
9232         * expr.c (expand_expr): Likewise.
9233         * function.c (put_var_into_stack): Add rescan parameter.  Do not
9234         call fixup_var_refs when rescan is false.
9235         (gen_mem_addressof): Likewise.
9236         (assign_parms): Adjust calls to put_var_into_stack.
9237         (setjmp_protect): Likewise.
9238         (setjmp_protect_args): Likewise.
9239         * rtl.h (gen_mem_addressof): Change prototype.
9240         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
9241         * tree.h (put_var_into_stack): Change prototype.
9242
9243 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
9244
9245         PR middle-end/9967
9246         * builtins.c (expand_builtin_fputs): When optimizing for size,
9247         don't transform fputs into fwrite.
9248
9249 2003-03-23  Glen Nakamura <glen@imodulo.com>
9250
9251         PR c/8224
9252         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
9253         when signedness changes for division or modulus.
9254
9255 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
9256
9257         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
9258         globalize_label.
9259
9260 2003-03-23  Roger Sayle  <roger@eyesopen.com>
9261
9262         PR c/10178
9263         * stmt.c (expand_end_case_type): Check for overflow in range when
9264         determining whether to use a bit-test implementation.
9265
9266 2003-03-23  Richard Henderson  <rth@redhat.com>
9267
9268         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
9269         before flow2.
9270         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
9271
9272 2003-03-23  Richard Henderson  <rth@redhat.com>
9273
9274         PR opt/10116
9275         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
9276         from then_bb or else_bb after flow2.
9277
9278 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
9279
9280         * configure.in: Check whether it is necessary to link against
9281         libm to use ldexp.
9282         * configure: Regenerate.
9283         * Makefile.in: Add LDEXP_LIB substitution variable.
9284
9285 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9286
9287         * config/h8300/h8300.md: Fix comment typos.
9288
9289 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9290
9291         * pa.c (output_cbranch): Fix typo in comment.
9292
9293 2003-03-22  Richard Henderson <rth@redhat.com>
9294
9295         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
9296         after reload.
9297
9298 2003-03-22  DJ Delorie  <dj at redhat dot com>,
9299         Bruce Korb  <bkorb at gnu dot org>
9300
9301         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
9302         buggy Solaris 2.6 mutex/cond initializers.
9303         (solaris_mutex_init): Rename to solaris_mutex_init_2.
9304         * fixinc/fixincl.x: Regenerate.
9305         * fixinc/tests/base/pthread.h: Update.
9306         * fixinc/fixincl.c(initialize): be explicit about the default case
9307         and indicate verbose level when being very, very verbose.
9308         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
9309
9310 2003-03-22  Andreas Jaeger  <aj@suse.de>
9311
9312         * config/i386/i386.c (ix86_init_machine_status): Return value.
9313
9314 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9315
9316         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
9317         conditional branch to the following instruction.  Use next_real_insn
9318         instead of next_active_insn.
9319         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
9320         instead of next_active_insn.
9321
9322 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
9323
9324         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
9325         instead of 'm' constraint in forced-split alternatives.
9326         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
9327         VALIDATE_ADDRESS parameter to operand_subword.
9328
9329 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
9330
9331         * config/h8300/h8300.c (notice_update_cc): Correctly handle
9332         the case where the set destination is STRICT_LOW_PART.
9333
9334 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
9335
9336         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
9337         c30 instead of a c40 processor.
9338
9339 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
9340
9341         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
9342
9343 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
9344
9345         * c-common.c: Include intl.h.
9346         (shadow_warning): Rewrite to allow better diagnostic translations.
9347         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
9348         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
9349         use it throughout.
9350         * Makefile.in (c-common.o): Add intl.h.
9351
9352 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
9353
9354         * config.gcc: Remove 'float_format'.
9355
9356         * fixproto: Define NULL and size_t in generated stdlib.h and
9357         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
9358         Rearrange file generation loop for readability.  Generate time.h,
9359         string.h if missing.
9360         * tsystem.h: Include <string.h>, <time.h> unconditionally.
9361         * config.gcc: Blow away POSIX defines.
9362
9363 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
9364
9365         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
9366
9367 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
9368
9369         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
9370         writing .interrupt command.
9371         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
9372         if it's a far or near function.
9373         ("call_value"): Likewise.
9374         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
9375         near attributes.
9376         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
9377         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
9378         (m68hc11_initial_elimination_offset): Set current_function_far
9379         according to attributes.
9380         (expand_prologue): Likewise.
9381         (trap_handler_symbol): New global to keep track of trap handlers.
9382         (m68hc11_encode_section_info): Mark symbol as far if needed; set
9383         trap symbol.
9384         (m68hc11_is_far_symbol): New function.
9385         (m68hc11_is_trap_symbol): New function.
9386         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
9387         (m68hc11_is_trap_symbol): Declare.
9388
9389 2003-03-21  Jan Hubicka  <jh@suse.cz>
9390
9391         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
9392         only when amount of saved regs changed.
9393         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
9394         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
9395
9396 2003-03-21  Jan Hubicka  <jh@suse.cz>
9397
9398         PR inline-asm/7916
9399         * function.c (instantiate_virtual_regs_lossage): New function.
9400         (instantiate_virtual_regs_1): Use it.
9401         (instantiate_virtual_regs): Do not continue in substition when insn has
9402         been deleted.
9403
9404 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9405
9406         * combine.c (make_field_assignment): Fix a warning.
9407
9408 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9409
9410         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
9411
9412 2003-03-21  Dale Johannesen  <dalej@apple.com>
9413
9414         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
9415         priority for R2 on Darwin.
9416         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
9417
9418 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9419
9420         * combine.c (make_field_assignment): Remove unnecessary AND
9421         when storing into zero_extract.
9422
9423 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
9424
9425         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
9426         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
9427         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
9428         in comment.
9429
9430 2003-03-21  DJ Delorie  <dj@redhat.com>
9431
9432         * optabs.c (init_integral_libfuncs): Make sure we init at least up
9433         to "long long" size words.
9434
9435 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
9436
9437         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
9438         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
9439         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
9440
9441 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9442
9443         PR doc-bug/9813
9444         * doc/extend.texi: Move misplaced paragraph about underscores in
9445         variables in macros.
9446
9447 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9448             Richard Henderson  <rth@redhat.com>
9449
9450         PR optimization/8366
9451         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
9452         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
9453         PIC+SYMBOLIC_CONST in other modes than Pmode.
9454         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
9455         the form PIC+SYMBOLIC_CONST as mode dependent.
9456
9457 2003-03-21  DJ Delorie  <dj@redhat.com>
9458
9459         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
9460         sure we always emit at least one insn.
9461
9462 2003-03-21  Christopher Faylor  <cgf@redhat.com>
9463
9464         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
9465         stub t-cygming. Use common target header cygming.h. Add extra
9466         c_target_obj and cxx_target_obj file. Default cygwin to posix
9467         threading. Enforce i386 as float format.
9468         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
9469         Remove cygwin.h as target header. Use common target header
9470         cygming.h  Enforce i386 as float format. Correct typo.
9471         * config/i386/cygming.h: New file, containing definitions
9472         common to mingw32 and cygwin.
9473         * config/i386/cygwin.h: Remove definitions common to cygwin and
9474         mingw.  Simplify special spec logic.  Define "wrappers" around
9475         certain include path defines to accommodate -mno-cygwin.
9476         Remove some #if 0'ed code.
9477         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
9478         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
9479         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
9480         * config/i386/mingw32.h: Remove definitions common to cygwin and
9481         mingw.
9482         (EXTRA_OS_CPP_BUILTINS): Adjust.
9483         (TARGET_VERSION): Define.
9484         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
9485         mingw32.h definitions.
9486         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
9487         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
9488         Add compilation rules for cygwin1.o cygwin2.o.
9489         * config/i386/cygwin1.c: New file.
9490         * config/i386/cygwin2.c: New file.
9491         * config/i386/t-cygming: New makefile stub.
9492
9493 2003-03-20  Richard Henderson  <rth@redhat.com>
9494
9495         * fold-const.c (extract_muldiv_1): Revert changing order of
9496         operands in case MULT_EXPR of 2003-02-16 patch.
9497
9498 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
9499         Merge changes from new-regalloc-branch
9500
9501         From Michael Matz  <matz@suse.de>
9502         * df.c (df_ref_record_1): Move init of loc to safe point.
9503         Only recurse on interesting things in parallels.
9504         Handle CLASS_CANNOT_CHANGE_MODE smarter.
9505         (df_uses_record): Ditto.
9506
9507         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
9508         it's already okay to use memory operands in (IE doesn't require
9509         adding another insn or anything).
9510
9511 2003-03-20  Richard Henderson  <rth@redhat.com>
9512
9513         PR middle-end/6348
9514         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
9515         different from word_mode.
9516
9517 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9518
9519         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
9520         source operand to those that can be extracted with bld.
9521
9522 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
9523
9524         PR 10066
9525         * arm.md (UNSPEC_PIC_BASE): New constant.
9526         (pic_add_dot_plus_four): Wrap with unspec.
9527         (pic_add_dot_plus_eight): Likewise.
9528
9529 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9530
9531         * config/h8300/h8300.md (*insv_si_1_n): New.
9532         (*insv_si_1_n_lshiftrt): Likewise.
9533
9534 2003-03-20  Roger Sayle  <roger@eyesopen.com>
9535
9536         * fold-const.c (fold_mathfn_compare): New function to simplify
9537         comparisons against built-in math functions.  Fold comparisons
9538         of sqrt against constants.
9539         (fold): Call fold_mathfn_compare when appropriate.
9540
9541 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
9542
9543         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
9544         information.
9545
9546 2003-03-20  Per Bothner  <pbothner@apple.com>
9547
9548         Various cleanups to help compile server.
9549
9550         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
9551         and pass that to _cpp_init_hashtable.
9552         (cpp_read_main_file):  Drop hash_table* argument; don't call
9553         _cpp_init_hashtable.
9554         * cpplib.h:  Update declarations to match.
9555         * c-opts.c (c_common_init_options):  Pass ident_hash to
9556         cpp_create_reader.
9557         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
9558         * fix-header.c (read_scan_file):  Likewise pass NULL table to
9559         cpp_create_reader rather than cpp_read_main_file.
9560
9561         * cppfiles.c (cpp_rename_file):  Generalized and renamed
9562         to cpp_change_file.
9563         * cpplib.h:  Update declaration to match.
9564         * c-opts.c (push_command_line_line, finish_options):  Change
9565         cpp_rename_file calls to cpp_change_file.
9566
9567         * line-map.c (add_line_map):  Allow leaving the outermost file.
9568         Allowing entering an outermost-file after the initial time.
9569
9570         * toplev.c (pop_srcloc):  Allow popping from initial file.
9571
9572 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
9573
9574         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
9575
9576 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9577
9578         * config/h8300/h8300.md (a peephole2): New.
9579
9580 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9581
9582         * config/h8300/h8300.md (*addsi3_and_r_1): New.
9583         (*addsi3_and_not_r_1): Likewise.
9584
9585 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
9586
9587         * Makefile.in (STRICT2_WARN): Add @WERROR@.
9588         (GCC_WARN_CFLAGS): Remove $(WERROR).
9589         (fixinc.sh-warn): New.
9590         * ada/Make-lang.in (ada-warn): Add $(WERROR).
9591         * cp/Make-lang.in (cp-warn): Add $(WERROR).
9592         * f/Make-lang.in (f-warn): Add $(WERROR).
9593         * java/Make-lang.in (java-warn): Add $(WERROR).
9594         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
9595
9596 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
9597
9598         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
9599         langhooks-def.h (lhd_tree_dump_dump_tree),
9600         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
9601         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
9602         true and false in return statements.
9603
9604 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
9605
9606         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
9607         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
9608         DWARF_INITIAL_LENGTH_SIZE.
9609         (output_compilation_unit_header, output_pubnames, output_aranges)
9610         (output_line_info): Output 0xffffffff escape value for 64-bit
9611         DWARF extension.
9612         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
9613
9614 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
9615
9616         * config/s390/s390.c (s390_preferred_reload_class): Do not
9617         force constants to the pool unless necessary.
9618         (s390_decompose_address): Prefer to use pointer as base,
9619         not index register.
9620         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
9621         Q alternative.
9622         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
9623         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
9624         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
9625         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
9626         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
9627
9628 2003-03-19  Jan Hubicka  <jh@suse.cz>
9629
9630         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
9631         * i386.c (use_fast_prologue_epilogue): Remove.
9632         (ix86_frame): New field save_regs-using_mov;
9633         (ix86_compute_frame_layout):  Decide on fast prologues;
9634         allocate saved registers in red zone.
9635         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
9636
9637 2003-03-19  Nick Clifton  <nickc@redhat.com>
9638
9639         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
9640
9641 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9642
9643         PR 10062
9644         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
9645         * pa-protos.h (output_lbranch): New prototype.
9646         * pa.c (compute_frame_size): Change size of the frame marker on the
9647         64-bit ports to 48 bytes.
9648         (pa_output_function_prologue): Document why SAVE_SP is set.
9649         (hppa_expand_prologue): Save previous stack pointer into frame marker
9650         on targets which use the hpux unwind library.
9651         (output_cbranch): Use output_lbranch.
9652         (output_lbranch): New function to output long unconditional branches.
9653         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
9654         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
9655         64-bit ports.
9656         * pa.md (jump): Use output_lbranch.
9657         (allocate_stack): New expander for dynamic stack allocation.
9658
9659 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
9660
9661         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
9662         when debugging on XCOFF targets.  Delete "abi" temp.
9663
9664         PR target/10073
9665         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
9666
9667 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
9668
9669         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
9670         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
9671         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9672
9673         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
9674         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
9675         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9676
9677 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
9678
9679         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
9680         the result of machopic_function_base_name.
9681         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
9682         string rather than a static array.
9683
9684         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
9685
9686         * gengtype.c: Include rtl.h.
9687         (enum rtx_code): Don't define.
9688         (rtx_format): Make declaration match rtl.h.
9689         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
9690         users.
9691         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
9692         * Makefile.in (gengtype.o): Update dependencies.
9693
9694 2003-03-18  Andreas Schwab  <schwab@suse.de>
9695
9696         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
9697         martin@blom.org.
9698
9699 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
9700
9701         * function.c (next_block_index): Mark with GTY.
9702
9703         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
9704
9705 2003-03-18  Richard Henderson  <rth@redhat.com>
9706
9707         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
9708         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
9709         until after reload.
9710
9711 2003-03-18  Richard Henderson  <rth@redhat.com>
9712
9713         * builtins.c (expand_builtin_unop): New target_mode operand;
9714         use it to convert the result to the correct mode.
9715         (expand_builtin): Update all callers.
9716
9717 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
9718
9719         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
9720
9721 2003-03-18  Jan Hubicka  <jh@suse.cz>
9722
9723         * i386.md:  Fix previous commit that mistakely applied the patch
9724         twice.
9725
9726         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
9727         canonicalized.
9728         (memrefs_conflict_p): Likewise.
9729         (addr_side_effect_eval): Canonicalize the constructed address.
9730
9731 2003-03-18  Jan Hubicka  <jh@suse.cz>
9732
9733         * i386.md (cvtts?2si peep2): New.
9734
9735 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9736
9737         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
9738
9739 2003-03-18  Andreas Schwab  <schwab@suse.de>
9740
9741         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
9742         for format.
9743
9744 2003-03-17  Jason Merrill  <jason@redhat.com>
9745
9746         PR c++/10091
9747         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
9748         an unaligned member of TREE_ADDRESSABLE type.
9749
9750 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
9751
9752         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
9753         (TARGET_PROFILE_KERNEL): Define.
9754         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
9755         (PROFILE_BEFORE_PROLOGUE): Don't define.
9756         (PROFILE_KERNEL): Remove hacks.
9757         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
9758         (rs6000_stack_info): No need to save lr if just for profiling when
9759         TARGET_PROFILE_KERNEL.
9760         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
9761         (output_function_profiler): Localize label generation.  Emit code
9762         for kernel profiling.
9763
9764 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9765
9766         * config/h8300/h8300-protos.h: Add a prototype for
9767         byte_accesses_mergeable_p.
9768         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
9769         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
9770         (a splitter): Likewise.
9771         (*iorsi3_ashift_16_ashift_24): Likewise.
9772         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
9773
9774 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9775
9776         * dwarf2asm.h: Delete obsolete comment.
9777         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
9778         dw2_asm_output_pcrel, dw2_asm_output_addr,
9779         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
9780         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
9781         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
9782         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
9783
9784 2003-03-17  Zack Weinberg <zack@codesourcery.com>
9785
9786         * c-tree.h (struct lang_identifier): Remove error_locus field.
9787         (IDENTIFIER_ERROR_LOCUS): Kill.
9788         (record_function_scope_shadow): New prototype.
9789         * c-typeck.c (build_external_ref): Don't complain if
9790         decl is error_mark_node.  When not at file scope, bind the
9791         decl's local value to error_mark_node to suppress further
9792         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
9793
9794         * c-decl.c (get_function_binding_level): New static function.
9795         (record_function_scope_shadow): New exported function.
9796         (c_make_fname_decl): Use get_function_binding_level.
9797
9798 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
9799
9800         * stmt.c (tail_recursion_args): Call promote_mode to set
9801         unsignedp flag correctly before calling convert_move.
9802
9803 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9804
9805         * loop-unroll.c (decide_peel_completely,
9806         decide_unroll_constant_iterations, decide_unroll_stupid,
9807         decide_unroll_runtime_iterations, decide_peel_simple): Set
9808         loop->has_desc.
9809
9810 2003-03-17  Jan Hubicka  <jh@suse.cz>
9811
9812         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
9813
9814 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
9815
9816         * function.c (assign_parms): For a struct value address passed as
9817         first argument, delay the function's result RTL setup code until
9818         after the emission of parameter conversions.
9819
9820 2003-03-17  Dave Love  <fx@gnu.org>
9821             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9822
9823         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
9824         __arch64__ to match Compaq cc.
9825
9826 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9827
9828         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
9829         (c_common_init): Set EBCDIC in cpp options.
9830         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
9831         not conditional compilation.
9832         * cpplib.h (struct cpp_options): New entry EBCDIC.
9833
9834 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9835
9836         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
9837
9838 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9839
9840         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
9841         argument to 0 for redirect_jump.
9842
9843 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
9844
9845         PR c++/8805
9846         * except.c (eh_region_u_cleanup): Add prev_try.
9847         (expand_eh_region_end_cleanup): Set it.
9848         (reachable_handlers): Use it to skip over cleanup blocks.
9849
9850 2003-03-17  Andreas Jaeger  <aj@suse.de>
9851
9852         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
9853
9854 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
9855
9856         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
9857         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
9858         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
9859         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
9860
9861 2003-03-16  Richard Henderson  <rth@redhat.com>
9862
9863         * simplify-rtx (simplify_binary_operation): Don't abort for
9864         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
9865
9866 2003-03-16  Richard Henderson  <rth@redhat.com>
9867
9868         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
9869         optimize_size as well.
9870
9871 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
9872
9873         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
9874         for D register to specify the low part of it, aka B.
9875         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
9876         the register if we are loading 1 or -1 to it; avoid using temp
9877         register when moving X/Y to Y/X.
9878         (m68hc11_gen_movqi): Likewise.
9879         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
9880
9881 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
9882
9883         PR optimization/9016
9884         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
9885         into the constant pool.
9886
9887 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9888
9889         PR target/9164
9890         * tree.c (get_narrower): For extensions with unchanged bit number,
9891         return the unsignedness of the outer mode.
9892
9893 2003-03-16  Roger Sayle  <roger@eyesopen.com>
9894
9895         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
9896         to avoid "may be used uninitialized" warning on ia64-hpux.
9897         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
9898
9899 2003-03-16  Andreas Jaeger  <aj@suse.de>
9900
9901         * configure.in: Improve check for memcheck.h.
9902         * configure: Regenerated.
9903
9904 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
9905
9906         * doc/cppopts.texi: Remove documentation of -A-.
9907
9908 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
9909
9910         * doc/libgcc.texi: Remove @tie.
9911
9912 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
9913
9914         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
9915         (rtx_pair): Added new element update_label_nuses, renamed to
9916         replace_label_data.
9917         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
9918         replace_label_data instead of rtx_pair.
9919         * loop.c (load_mems): Likewise.
9920         * rtlanal.c (replace_label): Replace label in pool constants and in
9921         INSN_LIST (in REG_LABEL note).
9922         (subrtx_p): Renamed to rtx_referenced_p.
9923         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
9924         LABEL_REF with CODE_LABEL, traverse constants from pool.
9925
9926 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
9927             Zack Weinberg  <zack@codesourcery.com>
9928
9929         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
9930         * doc/libgcc.texi: New file.
9931         * doc/interface.texi: Delete paragraph about libgcc interface.
9932         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
9933
9934 2003-03-15  Jason Merrill  <jason@redhat.com>
9935
9936         PR debug/9039
9937         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
9938
9939         PR debug/6387
9940         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
9941         function DIEs at toplevel.
9942         (decls_for_scope): At -g1, don't descend into subblocks.
9943
9944 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
9945
9946         * varasm.c (struct rtx_const): Change type of un.addr member
9947         to struct holding an additional 'symbol' member.
9948         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
9949         with equal string addresses as equal.
9950         (simplify_subtraction): Adapt to struct rtx_const change.
9951
9952 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9953
9954         * fix-header.c (read_scan_file): Read main file before handling -D.
9955
9956 2003-03-15  Roger Sayle  <roger@eyesopen.com>
9957
9958         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
9959         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
9960         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
9961         (find_sub_basic_blocks): Likewise.
9962         * cgraphunit.c (cgraph_expand_functions): Likewise.
9963         * dwarf2out.c (prune_unused_types): Likewise.
9964         * expr.c (store_field): Likewise.
9965         * genextract.c (print_path): Likewise.
9966         * haifa-sched.c (schedule_insn): Likewise.
9967         * lcm.c (compute_antinout_edge): Likewise.
9968         * loop-unroll.c (decide_peel_once_rolling): Likewise.
9969         * ra-colorize.c (ra_colorize_free_all): Likewise.
9970         * ra-debug.c (dump_igraph): Likewise.
9971         (debug_hard_reg_set): Likewise.
9972         * reg-stack.c (reg_to_stack): Likewise.
9973         * rtlanal.c (refers_to_regno_p): Likewise.
9974         * tracer.c (layout_superblocks): Likewise.
9975
9976 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9977
9978         * fix-header.c (read_scan_file): Fix thinko.
9979
9980 2003-03-15  Glen Nakamura  <glen@imodulo.com>
9981
9982         * reload1.c (choose_reload_regs): Use && instead of ||
9983         with REG_CANNOT_CHANGE_MODE_P condition.
9984
9985 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9986
9987         * Makefile.in: Update.
9988         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
9989         * c-lex.c (init_c_lex): Register builtins hook is dead.
9990         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
9991         (c_common_decode_option): Don't call cpp_handle_option.
9992         Handle -A, -D and -U.
9993         (handle_deferred_opts): Simplify.
9994         (finish_options): Define builtins and command line macros.
9995         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
9996         * cppinit.c: Don't include intl.h.
9997         (init_builtins): Rename cpp_init_builtins.  No hook to call.
9998         (init_library): Don't need to sort options.
9999         (cpp_create_reader): Don't set pending.
10000         (cpp_destroy): Don't free pending.
10001         (struct pending_option, cl_directive_handler, struct cpp_pending,
10002         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
10003         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
10004         cl_options, cpp_handle_option): Remove.
10005         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
10006         cpp_finish_options): Remove.
10007         (cpp_init_builtins): New.
10008         * fix-header.c (read_scan_file): Update to handle -D.  Fix
10009         handling of -I.  Replace call to cpp_finish_options.
10010
10011 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10012
10013         PR optimization/9387
10014         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
10015         for conditional returns.
10016
10017 2003-03-14  Jason Merrill  <jason@redhat.com>
10018
10019         PR optimization/6871
10020         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
10021
10022 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
10023
10024         * c-opts.c (finish_options): New.
10025         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
10026         (missing_arg): Handle OPT_include and OPT_imacros.
10027         (c_common_init, c_common_parse_file): Use finish_options.
10028         (handle_deferred_opts): Update.
10029         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
10030         (cpp_finish_options): Don't handle -imacros here.
10031         (no_fil): Remove.
10032         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
10033
10034 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
10035
10036         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
10037         rs6000_maybe_dead if !fromprolog.
10038
10039 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
10040
10041         * Makefile.in: Update.
10042         * c-common.h (fe_file_change, pp_file_change): New.
10043         * c-lex.c (init_c_lex): Don't set cb_file_change.
10044         (c_common_parse_file): Move to c-opts.c.
10045         (cb_file_change): Rename fe_file_change.
10046         * c-opts.c: Include debug.h.
10047         (warn_unused_macros, include_cursor): New.
10048         (push_command_line_include, cb_file_change): New.
10049         (COMMAND_LINE_OPTIONS): Handle -include.
10050         (c_common_decode_option): Use local warn_unused_macros.
10051         Handle OPT_include.
10052         (c_common_post_options): Set file change callback.
10053         (handle_deferred_opts): Skip -include.  Don't free the array.
10054         (c_common_init): Call cpp_finish_options here, and push an
10055         initial -include file.
10056         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
10057         (preprocess_file): Don't call cpp_finish_options.
10058         (init_pp_output): Don't set the file change callback.
10059         (pp_file_change): Return if no line commands or no output.
10060         * cpphash.h (next_include_file, first_unused_line): Remove.
10061         * cppinit.c (include_head, include_tail): Remove.
10062         (cpp_destroy): Don't free -include chain.
10063         (cpp_finish_options): Don't handle -include, or worry about
10064         -Wunused-macros.
10065         (_cpp_maybe_push_include_file): Remove.
10066         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
10067         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
10068         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
10069         Used flag is set based upon the state of the warn_unused_macros
10070         flag, and so use of first_unused_line is unnecessary.
10071
10072 2003-03-13  Jan Hubicka  <jh@suse.cz>
10073
10074         * cselib.c (clear_table): Do not take argument; always clear just
10075         used slots.
10076         (cselib_process_insn):  Update call of clear_table
10077         (cselib_init): Do not call clear_table.
10078         (cselib_finish): Clear table.
10079
10080         * cse.c (count_reg_usage): Do not check side_effects_p.
10081         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
10082         like noop.
10083         (find_reg_equal_equiv_note): Do not use find_reg_note.
10084
10085 2003-03-14  Richard Henderson  <rth@redhat.com>
10086
10087         PR target/9700
10088         * config/alpha/alpha.c (alpha_va_start): Account for
10089         current_function_pretend_args_size in the AP offset.
10090
10091         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
10092         (INITIAL_ELIMINATION_OFFSET): Move out of line.
10093         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
10094         (alpha_initial_elimination_offset) New.
10095         * config/alpha/alpha-protos.h: Update.
10096
10097 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
10098
10099         * stmt.c (expand_start_case): Call emit_queue ().
10100
10101 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
10102             Alexandre Oliva  <aoliva@redhat.com>
10103
10104         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
10105         words in new abis.
10106
10107 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10108
10109         PR optimization/8396
10110         * tree-inline.c (initialize_inlined_parameters): Make sure the value
10111         of read-only constant arguments is passed with the right type.
10112
10113 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
10114
10115         * doc/extend.texi (Function Names): Make the example compilable.
10116
10117 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
10118
10119         * config/rs6000/rs6000.c (processor_target_table): Really allow
10120         GP optional instructions on Power4.
10121
10122 2003-03-13  Roger Sayle  <roger@eyesopen.com>
10123
10124         * calls.c (flags_from_decl_or_type): Factor and remove redundant
10125         conditional tests.
10126
10127 2003-03-13  Mike Stump  <mrs@apple.com>
10128
10129         * ggc-page.c (struct page_entry): Remove varray.h header.
10130         Add index_by_depth field.
10131         Remove save_in_use_p field.
10132         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
10133         by_depth_max, by_depth, and save_in_use fields.
10134         (INITIAL_PTE_COUNT): Add.
10135         (save_in_use_p_i): Add.
10136         (save_in_use_p): Add.
10137         (adjust_depth): Add.
10138         (move_ptes_to_front): Add.
10139         (push_depth): Add.
10140         (push_by_depth): Add.
10141         (prefetch): Add.
10142         (free_page): Add support for and use faster data structures.
10143         (ggc_alloc): Likewise.
10144         (init_ggc): Likewise.
10145         (ggc_recalculate_in_use_p): Likewise.
10146         (ggc_pop_context): Likewise.
10147         (clear_marks): Likewise.
10148         (ggc_pch_read): Likewise.
10149         * Makefile.in (ggc-page.o): Remove varray.h.
10150
10151 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
10152
10153         * ChangeLog: Rotated last year's entries to...
10154         * ChangeLog.8: New.
10155
10156         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
10157         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
10158         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
10159         config/ia64/ia64-protos.h, config/ia64/ia64.c,
10160         config/ia64/ia64.h, config/ia64/ia64.md,
10161         config/ia64/itanium1.md, config/ia64/itanium2.md,
10162         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
10163         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
10164
10165 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
10166
10167         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
10168         Differentiate endianness.
10169         (s6000_override_options): Use cpu type instead of TARGET_SPE.
10170
10171 2003-03-13  Nick Clifton  <nickc@redhat.com>
10172
10173         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
10174         LDM instructions with writeback enabled.
10175         (output_return_instruction): Likewise.
10176
10177         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
10178         (CALL_USED_REGISTERS): Remove definition.
10179         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
10180
10181 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
10182
10183         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
10184         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
10185         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
10186         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
10187         (rs6000_legitimize_address): Formatting.
10188         (rs6000_emit_move): Likewise.
10189         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
10190         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
10191         (rs6000_elf_select_section): Comment reason for shlib being
10192         set for ABI_AIX.
10193         (rs6000_elf_unique_section): Likewise.
10194         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
10195         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
10196         as well as flag_pic.
10197         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
10198         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
10199         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
10200
10201 2003-03-13  Richard Henderson  <rth@redhat.com>
10202
10203         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
10204
10205         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
10206         (ia64_gp_save_reg): Remove.
10207         (struct ia64_frame_info): Move to the beginning of the file;
10208         add reg_save_gp.
10209         (ia64_expand_call): Rearrange for new call patterns.
10210         (ia64_reload_gp): New.
10211         (ia64_split_call): New.
10212         (ia64_compute_frame_size): Allocate reg_save_gp.
10213         (ia64_expand_prologue): Save reg_save_gp.
10214         (ia64_expand_epilogue): Don't restore gp.
10215         (ia64_hard_regno_rename_ok): Remove R4 hack.
10216         (ia64_function_ok_for_sibcall): New.
10217         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
10218         call try_split on sibcall pattern.
10219         * config/ia64/ia64-protos.h: Update.
10220         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
10221         Rename from nopic versions.  Confiscate 2nd argument to call as
10222         a marker.
10223         (call_pic, call_value_pic, sibcall_pic): Remove.
10224         (call_gp, call_value_gp, sibcall_gp): New.
10225         (builtin_setjmp_setup): Remove.
10226         (builtin_setjmp_receiver): Call ia64_reload_gp.
10227
10228 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
10229
10230         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10231         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
10232         "GNU CC" with "GCC".
10233
10234         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
10235         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10236         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
10237         GCC, not GNU CC.
10238
10239         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
10240         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
10241
10242         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
10243         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
10244         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
10245         "GNU CC" with "GCC".
10246
10247         * config/v850/lib1funcs.asm, config/v850/rtems.h,
10248         config/v850/v850-c.c, config/v850/v850-protos.h,
10249         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
10250         GCC, not GNU CC.
10251
10252         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
10253         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
10254         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
10255         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
10256         GNU CC.
10257
10258 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
10259
10260         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
10261
10262 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
10263
10264         * fixinc/fixinc.interix: Remove dead code (most of it).
10265         * fixinc/fixinc.dgux: Remove.
10266
10267         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
10268         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
10269
10270 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10271
10272         * pa.c (pa_init_builtins): Fix warning.
10273
10274 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
10275
10276         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
10277         (ASM_OUTPUT_XDATA_SHORT): Remove.
10278         (ASM_OUTPUT_XDATA_INT): Remove.
10279         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
10280         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
10281         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
10282         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
10283
10284 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
10285
10286         PR c++/7050
10287         * expr.c (store_expr): Don't attempt to store void-typed trees,
10288         just evaluate them for side effects.
10289
10290 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
10291
10292         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
10293         * cppinit.c (push_include): Move with changes to cppfiles.c.
10294         (cpp_read_main_file): Mark named operators here...
10295         (cpp_finish_options): ...not here.  Update.
10296         (_cpp_maybe_push_include_file): Update.
10297         * cpplib.h (cpp_push_include, cpp_rename_file): New.
10298
10299 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
10300
10301         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
10302         _gcc_COMPUTE_GAS_VERSION.
10303         * configure.in: Use them.
10304         * configure: Regenerate.
10305
10306 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
10307
10308         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
10309         to detect carry.
10310         (subdi3): Reorder emitted instructions.
10311
10312 2003-03-12  Andreas Jaeger  <aj@suse.de>
10313
10314         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
10315         NETBSD_OS_CPP_BUILTINS_LP64.
10316
10317 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
10318
10319         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
10320         Rearrange.  Reorganize.
10321         * configure.in: Rearrange.
10322         * configure: Regenerate.
10323
10324 2003-03-12  Andreas Jaeger  <aj@suse.de>
10325
10326         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
10327         LP64 targets.
10328
10329         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
10330         _LP64.
10331
10332         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
10333         _LP64 macros here.
10334         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
10335
10336         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
10337         NETBSD_OS_CPP_BUILTINS_LP64.
10338         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
10339         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
10340
10341         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
10342
10343 2003-03-12  Jan Hubicka  <jh@suse.cz>
10344
10345         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
10346
10347 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
10348
10349         Fix PR target/9797 and PR c/9853.
10350         * stmt.c (expand_decl_init): Call push_temp_slots () and
10351         pop_temp_slots ().
10352
10353 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
10354
10355         * sh.c: Include basic-block.h.
10356         (sh_output_mi_thunk, emit_load_ptr): New functions.
10357         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
10358
10359 2003-03-12  Nick Clifton  <nickc@redhat.com>
10360
10361         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
10362         (CALL_USED_REGISTERS): Likewise.
10363         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
10364         describing how this value is calculated.
10365
10366 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
10367
10368         * configure.in (rlim_t): Define to long if no valid definition
10369         found in sys/resource.h.
10370         * config.in, configure: Regenerate.
10371
10372 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
10373
10374         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
10375         TARGET_OS_CPP_BUILTINS.
10376         * config/mcore/mcore-pe.h: Similarly.
10377         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
10378         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
10379
10380 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10381
10382         PR c/9928
10383         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
10384         only if it is a VAR_DECL.
10385
10386 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10387
10388         PR optimization/9888
10389         * config/i386/i386.md (jcc_1): Fix range.
10390         (jcc_2): Likewise.
10391         (jump): LIkewise.
10392         (doloop_end_internal): Likewise.
10393
10394 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
10395
10396         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
10397         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
10398         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
10399         DLL_IMPORT_EXPORT_PREFIX and "i."
10400         (i386_pe_dllexport_name_p): Here.
10401         (i386_pe_dllimport_name_p): Here.
10402         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
10403         not 9 chars when getting identifier name.
10404         (i386_pe_mark_dllimport): Here.
10405         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
10406         not 9 chars when getting identifier name. Correct comment.
10407         (i386_pe_strip_name_encoding): Here. Add comments for different
10408         cases.
10409         (gen_fastcall_suffix): Break down xmalloc() argument to
10410         components.
10411         (gen_stdcall_suffix): Likewise.
10412         Update copyright year.
10413
10414 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10415
10416         PR optimization/9888
10417         * config/i386/i386.md (movsi_1): Remove special alternatives
10418         for %eax register.
10419         (movsi_1_nointernunit): Likewise.
10420         (movhi_1): Likewise.
10421         * config/i386/i386.c (memory_address_length): Do not use
10422         short displacement when there is no base.
10423         (ix86_attr_length_address_default): Handle LEA instructions.
10424
10425 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
10426
10427         * c-cppbuiltin.c (builtin_define_std): Make non-static.
10428
10429 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
10430
10431         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
10432         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
10433         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
10434         * config/freebsd.h (CPP_PREDEFINES): Remove.
10435         (TARGET_OS_CPP_BUILTINS): New.
10436         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
10437         instead of TARGET_OS_CPP_BUILTINS.
10438         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
10439
10440 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
10441
10442         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
10443
10444 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
10445
10446         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
10447         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
10448
10449         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
10450
10451 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
10452
10453         * toplev.c (independent_decode_option): Return success for --help,
10454         --target-help and --version.
10455
10456 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
10457
10458         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
10459         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
10460         specified.
10461         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
10462         DRIVER_SELF_SPECS.
10463         (LINK_SPEC): Let endian options affect the linker emulation name.
10464
10465 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
10466
10467         * sh.md (reload_inqi): Fix mode for source in second set.
10468
10469 2003-03-11  Jan Hubicka  <jh@suse.cz>
10470
10471         * cselib.c (cselib_invalidate_mem_1): Move too ...
10472         (cselib_invalidate_mem): ... here; use new list
10473         (dummy_val, first_containing_mem): New static variables.
10474         (clear_table): Initialize first_containing_mem.
10475         (discard_useless_values):  Compact the containing_mem list.
10476         (add_mem_for_addr): Add to the list.
10477         * cselib.h (cselib_val): Add next_containing_mem.
10478
10479 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
10480
10481         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
10482         instructions for e500.
10483
10484 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
10485
10486         * Makefile.in: Update.
10487         * c-cppbuiltin.c: Include tm_p.h.
10488
10489 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
10490
10491         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
10492
10493         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
10494         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
10495         (_Unwind_SetGR): Same.
10496         (_Unwind_GetGRPtr): New.
10497         (_Unwind_SetGRPtr): New.
10498         (uw_update_context_1): Use accesor functions instead of accessing
10499         context->reg[] directly.
10500         (uw_install_context_1): Same.
10501         (execute_cfa_program): Same.
10502         (__frame_state_for): Same.
10503
10504         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
10505         the synthetic register offset.
10506
10507         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
10508
10509 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
10510
10511         * config/cris/cris.md: Remove lingering EGCS reference.
10512         ("*extopqihi_side_biap"): For HI operation, match
10513         cris_additive_operand_extend_operator, not
10514         cris_operand_extend_operator.  Adjust condition.
10515         ("*extopqihi_side", "*extopqihi"): Ditto.
10516         ("*extopqisi_side_biap"): Correct operand numbers in condition.
10517         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
10518         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
10519         ("*extophisi_swap"): Ditto.
10520         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
10521         PLUS, not cris_operand_extend_operator.  Adjust condition and
10522         output template.
10523         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
10524         * config/cris/cris.h (PREDICATE_CODES): Add
10525         cris_additive_operand_extend_operator.
10526         * config/cris/cris.c (cris_additive_operand_extend_operator):
10527         New predicate.
10528
10529 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
10530
10531         * df.c (read_modify_subreg_p): Change from static to global.
10532         * df.h (read_modify_subreg_p): Add prototype.
10533         * sched-deps.c (sched_analyze_1): Generate true dependency for
10534         strict_low_part, certain subregs and zero/sign_extract.
10535
10536 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
10537
10538         * Makefile.in: Update.
10539         * c-common.c: Don't include real.h or except.h.
10540         (REGISTER_PREFIX): Remove.
10541         (builtin_define_std, builtin_define_with_value,
10542         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
10543         builtin_define_type_max, builtin_define_type_precision,
10544         builtin_define_float_constants): Move to c-cppbuiltin.c.
10545         (c_stddef_cpp_builtins): New.
10546         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
10547         * c-cppbuiltin.c: New, extracted from c-common.c.
10548         (define__GNUC__): New.
10549         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
10550         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
10551         (cpp_unique_options): Don't support no-gcc.
10552         (do_spec_1): Remove support of version specs.
10553         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
10554         * doc/passes.texi: Update.
10555         * doc/tm.texi: Update.
10556
10557 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
10558
10559         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
10560
10561 2003-03-10  Andrew Pinski  <apinski@apple.com>
10562
10563         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
10564         is on should not get here.
10565         (machopic_indirect_data_reference): If dynamic-no-pic is on just
10566         generate high/low parts of the address.
10567         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
10568         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
10569         symbol and labels with a new reg.  Dynamic-no-pic does not have a
10570         pic_offset_table_rtx.
10571         (machopic_select_section): Change references of flag_pic to
10572         MACHOPIC_INDIRECT.
10573         (machopic_asm_out_destructor): Likewise.
10574         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
10575         reference of flag_pic to MACHOPIC_INDIRECT.
10576         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
10577         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
10578         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
10579         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
10580         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
10581         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
10582         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
10583         (TARGET_DYNAMIC_NO_PIC): Define.
10584         (SUBTARGET_SWITCHES): Define, have sub-target switches for
10585         dynamic-no-pic.
10586         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
10587         rs6000_override_options to here. Dynamic-no-pic overrides
10588         pic.
10589         (CC1_SPEC): Change from not static then pic to not static and not
10590         dynamic-no-pic then pic.
10591         * config/rs6000/rs6000.c (rs6000_override_options): Move the
10592         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
10593         (rs6000_legitimize_reload_address): Add case for loading floating in
10594         dynamic-no-pic.
10595         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
10596         of flag_pic to MACHOPIC_INDIRECT.
10597         (secondary_reload_class): Conditional change the reference of
10598         flag_pic to MACHOPIC_INDIRECT.
10599         (rs6000_output_mi_thunk): Change reference of flag_pic to
10600         MACHOPIC_INDIRECT.
10601         (output_profile_hook): Likewise.
10602         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
10603         * config/rs6000/rs6000.md (movdf_low): Add the case for
10604         MACHO_DYNAMIC_NO_PIC_P.
10605         (call): Change references for flag_pic in TARGET_MACHO to
10606         MACHOPIC_INDIRECT.
10607         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
10608         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
10609         * doc/invoke.texi (-mdynamic-no-pic): Document.
10610
10611 2003-03-10  Devang Patel  <dpatel@apple.com>
10612
10613         PR c++/9394
10614         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
10615         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
10616         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
10617         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
10618         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
10619         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
10620
10621 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
10622
10623         PR optimization/7189
10624         * toplev.c (rest_of_compilation):  Move
10625         check_function_return_warnings up to just after
10626         delete_unreachable_blocks.
10627
10628 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
10629
10630         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
10631         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
10632         Declare.
10633         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
10634         for reg rename optimization to avoid using Z and Y registers.
10635
10636 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
10637
10638         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
10639         when adding to X and Y since leax/leay are fast.
10640         ("*addhi3"): Accept 'I' constraint when adding to address register.
10641         ("rotlhi3"): Operand 1 must be a register_operand.
10642         (peephole2): New peephole to optimize some adds.
10643         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
10644         to represent -2 .. 2 small integer range.
10645
10646 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
10647
10648         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
10649         each 16-bit rotation.
10650
10651 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
10652
10653         * c-opts.c (add_prefixed_path): Don't use concat.  When
10654         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
10655         cpp_GCC_INCLUDE_DIR_len characters.
10656
10657 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
10658
10659         * testsuite/gcc.dg/altivec-9.c: New file.
10660
10661         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
10662         (rs6000_emit_prologue): Use rs6000_frame_related instead.
10663
10664 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
10665
10666         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
10667         vectors.
10668         (__ev_convert_u64): Remove macro.  Define as inline.
10669         (__ev_convert_s64): Same.
10670
10671 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
10672
10673         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
10674         (rs6000_stack_t): Add spe_64bit_regs_used.
10675
10676         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
10677         spe_64bit_regs_used, and use it to determine the size of the
10678         frame.
10679         (spe_func_has_64bit_regs_p): New.
10680         (spe_synthesize_frame_save): New.
10681         (rs6000_frame_related): Handle SPE synthetic registers.
10682         (rs6000_emit_prologue): Only save in 64-bits if the function used
10683         any registers in 64-bit mode.
10684         (rs6000_emit_epilogue): Same, but for restore.
10685
10686 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
10687
10688         * arm.h (enum floating_point_type): Delete.  Replace with...
10689         (enum fputype): ... new.
10690         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
10691         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
10692         * arm.md (attr fpu): Reworked for new underlying enum values.
10693         * arm.c (arm_fpu_arch): Now enum fputype.
10694         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
10695         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
10696         Update uses of arm_fpu_arch and arm_fpu_tune.
10697
10698 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
10699
10700         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
10701         (try_crossjump_to_edge): Replace refereces to one jump table by
10702         references to identical jump table.
10703         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
10704         (replace_label): Moved to rtlanal.c.
10705         (struct rtx_pair): Moved to rtl.h.
10706         * rtl.h (struct rtx_pair): Moved from loop.c.
10707         (replace_label): New extern function.
10708         (subrtx_p): New extern function.
10709         (tablejump_p): New extern function.
10710         * rtlanal.c (replace_label): Moved from loop.c.
10711         (subrtx_p_1): New static function.
10712         (subrtx_p): New function.
10713         (tablejump_p): New function.
10714
10715 2003-03-10  Jan Hubicka  <jh@suse.cz>
10716
10717         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
10718
10719         * cfgcleanup.c (merge_blocks): Return where to iterate next.
10720         (try_optimize_cfg): Use return value of merge_blocks
10721
10722 2003-03-10  Michael Matz  <matz@suse.de>
10723
10724         * cfg.c (unchecked_make_edge): New.
10725         (cached_make_edge): Use it.
10726         * basic-block.h (unchecked_make_edge): Declare.
10727         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
10728
10729 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
10730
10731         * fpa.md: New file.  Move all patterns relating to FPA co-processor
10732         to here...
10733         * arm.md: ... from here.
10734         (cirrus.md, fpa.md): Include at end of description.
10735         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
10736         (pic_load_addr_based): Remove register constraint from expander.
10737         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
10738         (sordered, sungt, sunle, sunge, sunlt): Likewise.
10739         (eh_epilogue, tablejump): Likewise.
10740
10741 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10742
10743         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
10744         on operands if it has a PLACEHOLDER_EXPR.
10745
10746 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
10747             Mostafa Hagog
10748
10749         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
10750         condition.
10751
10752 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
10753
10754         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
10755         * config/ip2k/ip2k.h: Similarly.
10756         * config/m32r/m32r.h: Similarly.
10757         * config/m68hc11/m68hc11.h: Similarly.
10758         * config/mn10200/mn10200.h: Similarly.
10759         * config/mn10300/mn10300.h: Similarly.
10760         * config/pdp11/pdp11.h: Similarly.
10761         * config/v850/v850.h: Similarly.
10762         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
10763         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
10764         * config/mips/iris3.h: Remove #if 0 block.
10765
10766 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10767             Joern Rennecke <joern.rennecke@superh.com>
10768
10769         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
10770         pending argument upon return from handle_braces here.
10771         (do_spec_2): Instead handle it upon return from do_spec_1 here.
10772
10773 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10774             Joern Rennecke <joern.rennecke@superh.com>
10775
10776         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
10777         pending argument upon return from handle_braces here.
10778         (do_spec_2): Instead handle it upon return from do_spec_1 here.
10779
10780 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10781
10782         * varasm.c (make_decl_one_only): Use declare_weak().
10783
10784 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10785
10786         PR middle-end/9986
10787         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
10788         after the common builtins.
10789         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
10790         * pa.c (TARGET_INIT_BUILTINS): Define.
10791         (pa_init_builtins): New function.
10792
10793         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
10794         space has been allocated for the outgoing arguments, set the arg
10795         pointer for a call emitted after virtuals have been instantiated
10796         using the stack pointer offset, otherwise abort.
10797
10798 2003-03-09  DJ Delorie  <dj@redhat.com>
10799
10800         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
10801
10802 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
10803
10804         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
10805         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
10806         conversion to integer.
10807         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
10808
10809 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10810
10811         * builtins.def: Fix typo and improve grammar.
10812         * loop-unroll.c (decide_peel_completely): Tidy log message.
10813
10814 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10815
10816         * config/h8300/h8300.md (*tstsi_upper_bit): New.
10817         (*iorsi3_e2f): Likewise.
10818
10819 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10820
10821         * config/h8300/h8300.c (h8300_and_costs): Return the number of
10822         assembly instructions needed.
10823         (h8300_shift_costs): Likewise.
10824
10825 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
10826
10827         * config/cris/aout.h (ENDFILE_SPEC): Undef.
10828
10829         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
10830         moves from here ...
10831         * expr.c (emit_move_insn_1): ... to here.
10832
10833         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
10834         (TARGET_OS_CPP_BUILTINS): New macro.
10835         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
10836         (TARGET_OS_CPP_BUILTINS): New macro.
10837         (CPP_PREDEFINES): Don't define.  Move old definitions and...
10838         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
10839         (TARGET_CPU_CPP_BUILTINS): New macro.
10840         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
10841         definitions and the optional __PIC__, __pic__ and
10842         __NO_UNDERSCORES__ definitions to...
10843         (TARGET_OS_CPP_BUILTINS): New macro.
10844
10845         * flags.h (flag_leading_underscore): Declare.
10846
10847         * c-opts.c (c_common_post_options): On fopen failure, return
10848         false, not NULL.
10849
10850 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10851
10852         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
10853         config.h.
10854         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
10855         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
10856
10857 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10858
10859         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
10860         CPP_PREDEFINES.
10861         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
10862         CPP_PREDEFINES.
10863
10864 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10865
10866         * c-common.h (c_common_init, c_common_post_options): Update.
10867         * c-objc-common.c (c_objc_common_init): Update for new prototype.
10868         * c-opts.c (saved_lineno): New.
10869         (c_common_post_options, c_common_init): Update prototypes,
10870         move call to cpp_read_main_file from latter to former.
10871         * c-tree.h (c_ojbc_common_init): Update.
10872         * langhooks-def.h (lhd_post_options): New.
10873         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
10874         * langhooks.c (lhd_post_options): New.
10875         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
10876         * toplev.c (no_backend): New.
10877         (process_options): Call post_options hook and set main_input_filename
10878         and input_filename here.
10879         (lang_dependent_init, do_compile): post_options hook moved to
10880         process_options.
10881         * objc/objc-act.c (objc_init): Update prototype.
10882         * objc/objc-act.h (objc_init): Update prototype.
10883
10884 2003-03-08  Roger Sayle  <roger@eyesopen.com>
10885
10886         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
10887         a complex or vector type, using a load in the original mode.
10888
10889 2003-03-08  Jan Hubicka  <jh@suse.cz>
10890
10891         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
10892         * gt-cgraph.h: New GC file.
10893         * cgraph.c (known_fns): New static variable.
10894         (cgraph_node): Add the decl into varray.
10895
10896 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10897
10898         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
10899
10900 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
10901
10902         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
10903         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
10904         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
10905         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
10906         All callers changed.
10907         * arm.md, arm.h, arm-protos.h: Updated.
10908
10909         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
10910         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
10911         * arm.c (arm_regno_class, f_register_operand): Updated.
10912
10913 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10914
10915         * config/cris/cris.h: Remove EGCS references.
10916         (CPP_SPEC): Remove "-$".
10917         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
10918
10919 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10920
10921         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
10922         preference to CPP_PREDEFINES.
10923
10924 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10925
10926         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
10927
10928 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10929
10930         * config/h8300/h8300.md (*extzv_16_8): New.
10931
10932 2003-03-08  Jan Hubicka  <jh@suse.cz>
10933
10934         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
10935         * cgraph.h: (cgraph_local_info): Add can_inline_once
10936         (cgraph_global_info): Add inline_once.
10937         (cgraph_node): Add previous.
10938         (cgraph_remove_node): New.
10939         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
10940         function.
10941         (cgraph_optimize): Call it.
10942         (cgraph_finalize_function):  Set inlinable flags.
10943         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
10944         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
10945         (cgraph_expand_function): Likewise.
10946         * cgraph.c
10947         (cgraph_node): Put nodes into doubly linked chain.
10948         (cgraph_remove_node): New function.
10949         * flags.h (flag_inline_functions_called_once): Declare.
10950         * tree-inline.c: Include cgraph.h
10951         (inlinable_functions_p): Add extra argument to bypass limits.
10952         (expand_call_inline):  Obey cgraph flag.
10953         * tree-inline.h (tree_inlinable_function_p): Update prototype.
10954
10955 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10956
10957         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
10958         irreducible loops.
10959
10960         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
10961         loops info correctly.
10962
10963 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10964
10965         PR middle-end/7796
10966         * unroll.c (calculate_giv_inc): Handle constants being
10967         loaded with LSHIFTRT.
10968
10969 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
10970
10971         * config/rs6000/rs6000.c (processor_target_table): Do not disable
10972         GP optional instructions on Power3, Power4, 620, and 630.
10973
10974 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10975
10976         * calls.c: Fix comment formatting.
10977         * cfgloopanal.c: Likewise.
10978         * cfgloopmanip.c: Likewise.
10979         * combine.c: Likewise.
10980         * dwarf2out.c: Likewise.
10981         * ggc-common.c: Likewise.
10982         * langhooks.c: Likewise.
10983         * loop-unroll.c: Likewise.
10984         * loop.c: Likewise.
10985         * ra-build.c: Likewise.
10986         * sbitmap.c: Likewise.
10987         * toplev.c: Likewise.
10988
10989 2003-03-07  James E Wilson  <wilson@tuliptree.org>
10990
10991         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
10992
10993 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
10994
10995         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
10996         support -no-integrated-cpp.
10997
10998         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
10999         than langhooks.name.
11000
11001 2003-03-07  Michael Matz  <matz@suse.de>
11002
11003         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
11004         (DF_FOR_REGALLOC): New.
11005         * df.c (df_ref_record): Set DF_REF_STRIPPED.
11006         (read_modify_subreg_p): Simplify.
11007         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
11008         Use DF_FOR_REGALLOC.
11009         * ra.h (struct web): New member subreg_stripped.
11010         (invalid_mode_change_regs): Declare.
11011         * ra.c (invalid_mode_change_regs): New.
11012         (init_ra): Initialize it.
11013         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
11014         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
11015         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
11016         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
11017         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
11018
11019 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
11020
11021         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
11022         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
11023         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
11024         machine description file from ...
11025         * cirrus.md: ... here.
11026
11027 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11028
11029         * config/h8300/h8300.md (a peephole2): Don't use
11030         reg_overlap_mentioned_p.
11031
11032 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
11033
11034         * c-pch.c: Include langhooks.h.
11035         (IDENT_LENGTH): New.
11036         (get_ident): New.
11037         (pch_ident): Delete.
11038         (pch_init): Use get_ident, IDENT_LENGTH.
11039         (c_common_valid_pch): Likewise.  Also, use actual language
11040         in warning message.
11041         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
11042
11043         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
11044         c-parse.in.
11045         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
11046         gt-objc-objc-act.h.
11047         (gt-objc-objc-act.h): New rule.
11048         * objc/lang-specs.h: Support PCH.
11049         * objc/objc-act.c: Include gt-objc-objc-act.h.
11050         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
11051         (build_selector_reference_decl): Move idx out, mark for PCH.
11052         (build_class_reference_decl): Likewise.
11053         (build_objc_string_decl): Move *_idx out, mark for PCH.
11054         (build_tmp_function_decl): Move xxx out, mark for PCH.
11055
11056 2003-03-06  Dale Johannesen  <dalej@apple.com>
11057
11058         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
11059         global functions for inlining on Darwin.
11060
11061 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
11062
11063         * haifa-sched.c (schedule_block): Don't call reorder when sorting
11064         is prohibited.
11065
11066 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
11067
11068         * Makefile.in (c-ppoutput.o): Update.
11069         * c-common.h (init_pp_output): New.
11070         (preprocess_file): Update.
11071         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
11072         Register builtins.
11073         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
11074         Make call to cpp_read_main_file common to whether preprocessing
11075         or not.  Don't register builtins.
11076         * c-ppoutput.c: Include c-pragma.h.
11077         (setup_callbacks): Rename init_pp_output.
11078         (preprocess_file): No longer setup callbacks or call
11079         cpp_read_main_file.
11080         * cpphash.h (_cpp_init_mbchar): New.
11081         * cppinit.c (init_library): Call _cpp_init_mbchar.
11082         * cpplex.c (_cpp_init_mbchar): New.
11083
11084 2003-03-06  Roger Sayle  <roger@eyesopen.com>
11085
11086         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
11087         MEM, try loading the MEM into a register and taking the low-part
11088         of that, to help CSE see the use of the MEM in its true mode.
11089
11090 2003-03-05  Tom Tromey  <tromey@redhat.com>
11091
11092         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
11093         Define.
11094
11095 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
11096
11097         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
11098         operand 2.
11099         ("*ineqbranchsi"): Likewise.
11100
11101 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
11102
11103         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
11104         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
11105         register store followed by a stack increment.
11106
11107 2003-03-05  Chris Moller  <cmoller@redhat.com>
11108
11109         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
11110         to inhibit saving CARRY_REGS.
11111
11112         * config/stormy16/stormy16.c (xs_hi_general_operand):
11113         added predicate to detect and error-out on out-of-range
11114         const_ints for movhi.
11115         * config/stormy16/stormy16.md (movhi): use
11116         xs_hi_general_operand.
11117
11118         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
11119         added a check for local vbl size overflow.
11120         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
11121         added predicate to detect and error-out on out-of-range
11122         const_ints for addhi and subhi.
11123         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
11124         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
11125
11126         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11127         add a term to accept PRE_MODIFY addresses.
11128         * config/stormy16/stormy16.c (xstormy16_expand_move):
11129         add code to expand PRE_MODIFY addresses to an add followed
11130         by a move.
11131
11132 2003-03-06  Jason Merrill  <jason@redhat.com>
11133
11134         * tree-inline.c (inlinable_function_p): Revert earlier change
11135         pending investigation.
11136
11137 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11138
11139         * config/h8300/h8300.md (a new peephole2): New.
11140
11141 2003-03-06  Jan Hubicka  <jh@suse.cz>
11142
11143         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
11144
11145 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11146
11147         * dwarf2out.c (size_of_die): Compute size of external reference to
11148         die correctly.
11149
11150 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
11151
11152         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
11153         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
11154         expanders.
11155
11156 2003-03-05  Roger Sayle  <roger@eyesopen.com>
11157
11158         * expr.h (lang_expand_expr): Delete obsolete prototype.
11159
11160 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11161
11162         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
11163
11164 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11165
11166         * config/h8300/h8300.md (a peephole2): Generalize to
11167         accept a memory operand.
11168
11169 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
11170
11171         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
11172         * config/alpha/alpha.c (print_operand, case '+'): New.
11173         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
11174         (call_value_osf_1_noreturn): Likewise.
11175
11176 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11177
11178         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
11179         (expand_end_bindings): Likewise.
11180
11181 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11182
11183         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
11184         (epilogue): Don't generate return_external_pic when emitting PA 2.0
11185         code.
11186
11187 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
11188
11189         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
11190
11191         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
11192
11193         * hooks.c (hook_rtx_rtx_null): New.
11194
11195         * hooks.h (hook_rtx_rtx_null): Protoize.
11196
11197         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
11198         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
11199
11200         * target.h (struct gcc_target): Add dwarf_register_span.
11201
11202         * dwarf2out.c (multiple_reg_loc_descriptor): New.
11203         (one_reg_loc_descriptor): New.
11204         (reg_loc_descriptor): Add support for values that span more than
11205         one register.
11206
11207 2003-03-05  Jan Hubicka  <jh@suse.cz>
11208
11209         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
11210         * alias.c:  Include cgraph.h
11211         (mark_constant_function): Use cgraph_rtl_info.
11212         * calls.c:  Include cgraph.h
11213         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
11214         calls.
11215         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
11216         * cgraph.c (cgraph_rtl_info): New function.
11217         * cgraph.h (cgraph_rtl_info): Declare
11218         (cgraph_rtl_info): Likewise.
11219         * function.h (struct function): Add recursive_call_emit.
11220         * toplev.c: Include cgraph.h.
11221         (rest_of_compilation): Set preferred_incoming_stack_boundary.
11222
11223 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11224
11225         * config/h8300/h8300.c (output_simode_bld): Clear the
11226         destination first if possible.
11227         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
11228         alternative.
11229         (extzv_1_r_inv_h8300hs): Likewise.
11230
11231 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11232
11233         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
11234         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
11235         * cfgloop.c (flow_loop_free): Made global.
11236         (establish_preds): New static function.
11237         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
11238         (get_loop_exit_edges): New.
11239         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
11240         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
11241         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
11242         loops.
11243         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
11244         removability of an edge.
11245         (fix_irreducible_loops): New static function.
11246         (find_path, remove_path): Add ability to remove enclosing loops.
11247         (unloop): New.
11248         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
11249         flags.
11250         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
11251         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
11252         not neccessary.
11253         (decide_peel_completely, peel_loops_completely): Allow complete peeling
11254         of non-duplicable once rolling loops.
11255         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
11256
11257 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
11258
11259         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
11260         for align_jumps is 4.
11261
11262         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
11263         use GENERAL_REGS.
11264
11265 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
11266
11267         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
11268         according to va_arg type.
11269         (EXPAND_BUILTIN_VA_ARG): Remove.
11270         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
11271         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
11272
11273 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
11274
11275         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
11276         else clauses.
11277
11278 2003-03-05  Michael Matz  <matz@suse.de>
11279
11280         * i386/i386.c (ix86_save_reg): Also test
11281         current_function_uses_const_pool.
11282
11283 2003-03-05  Michael Matz  <matz@suse.de>
11284
11285         * unwind.h: Add the GPL exception.
11286         * Makefile.in (USER_H): Add unwind.h.
11287
11288 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
11289
11290         PR c/9799
11291         * c-typeck.c (push_init_level): Add sanity check.
11292
11293 2003-03-05  Jan Hubicka  <jh@suse.cz>
11294
11295         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
11296         RTL inlining is done.
11297
11298         * cgraphunit.c (cgraph_mark_local_functions): New local function.
11299         (cgraph_optimize): Mark local functions.
11300         * i386-protos.h (init_cumulative_args): Update prototype.
11301         * i386.c (init_cumulative_args): Use register passing convention for
11302         local functions.
11303
11304         * cgraph.c (cgraph_global_info_ready): New global variable
11305         (cgraph_local_info, cgraph_global_info): New functions.
11306         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
11307         structures.
11308         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
11309         Declare.
11310         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
11311         (cgraph_mark_functions_to_output): Use inline_many.
11312         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
11313         (cgraph_expand_functions): Expand inline functions last.
11314         (cgraph_optimize): Do not emit uneeded functions.
11315
11316 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
11317
11318         * expr.c (convert_modes): Check for legal hard register.
11319
11320 2003-03-04  Tom Tromey  <tromey@redhat.com>
11321
11322         * doc/sourcebuild.texi (Front End Directory): Document tags.
11323         * configure: Rebuilt.
11324         * configure.in (target_list): Added tags.
11325         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
11326         TAGS files by reference.
11327         * objc/Make-lang.in (objc.tags): New target.
11328
11329 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11330
11331         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
11332         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
11333         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
11334         gcov_read_string, gcov_write_length): Modified to enable reading/
11335         writing of whole .da file just once.
11336         (da_file_open, da_file_close, da_file_eof, da_file_error,
11337         da_file_position, da_file_seek, da_file_write, da_file_read): New
11338         functions.
11339         (actual_da_file, actual_da_file_position, actual_da_file_length,
11340         actual_da_file_buffer, actual_da_file_buffer_size): New static
11341         functions.
11342         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
11343         just once.
11344
11345
11346 2003-03-04  Andreas Schwab  <schwab@suse.de>
11347
11348         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
11349         offset without frame pointer.
11350
11351 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
11352
11353         * expr.c (expand_expr): Call promote_mode to set unsignedp.
11354
11355 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
11356
11357         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
11358         * configure: Regenerated.
11359         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
11360
11361 2003-03-04  Andreas Jaeger  <aj@suse.de>
11362
11363         * configure.in: Check for <memcheck.h>.
11364         * configure: Regenerated.
11365
11366         * config.in: Define HAVE_MEMCHECK_H.
11367
11368         * ggc-common.c: Use <memcheck.h> if available instead of
11369         <valgrind.h>.
11370         * ggc-page.c: Likewise.
11371         * cppfiles.c: Likewise.
11372
11373 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11374
11375         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
11376
11377 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11378
11379         PR c/9262
11380         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
11381         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
11382
11383 2003-03-04  Jan Hubicka  <jh@suse.cz>
11384
11385         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
11386         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
11387         for -O3.
11388
11389 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
11390
11391         * configure.in: Delete three unused variables.  Move a variable
11392         definition closer to its use.  Simplify use_collect2 logic.  Start to
11393         organize.  Simplify tests for in-tree gas and ld.
11394         * configure: Regenerate.
11395
11396 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
11397
11398         * Makefile.in: Update.
11399         * c-common.c (flag_no_line_commands, flag_no_output,
11400         flag_dump_macros, flag_dump_includes): New.
11401         * c-common.h (flag_no_line_commands, flag_no_output,
11402         flag_dump_macros, flag_dump_includes, preprocess_file): New.
11403         (init_c_lex): Update prototype.
11404         * c-lex.c (init_c_lex): Update prototype; move some code to
11405         c_common_init.
11406         * c-opts.c (preprocess_file): Subsume into c_common_init.
11407         (c_common_decode_option): Update flags.
11408         (c_common_init): Move code from preprocess_file and init_c_lex.
11409         (sanitize_cpp_opts): Update.
11410         * c-ppoutput.c: New, cppmain.c almost verbatim.
11411         * cpphash.h (struct printer): Remove.
11412         (struct cpp_reader): Remove print.
11413         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
11414         cpp_preprocess_file): Remove.
11415         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
11416         and dump_includes.
11417         * cppmain.c: Remove.
11418         * doc/passes.texi: Update.
11419
11420 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11421
11422         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
11423         (assign_stack_local_1): Perform overall stack alignment only when
11424         STACK_ALIGNMENT_NEEDED is non-zero.
11425         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
11426
11427         * pa.c (compute_frame_size): Rename fsize to size.  Account for
11428         alignment to a word boundary before general register save block.  Only
11429         account for double-word alignment before floating point register save
11430         block if one or more are saved.  Don't allocate space for %r3 when
11431         frame pointer is needed.
11432         (hppa_expand_prologue): Include alignment to word boundary in local
11433         frame size.
11434         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
11435         (STACK_ALIGNMENT_NEEDED): Define.
11436
11437 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
11438
11439         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
11440         global register variables.
11441
11442 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
11443
11444         * reload.c (reload_adjust_reg_for_mode): New function.
11445         (subst_reloads): Call it.
11446         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
11447         * reload.h (reload_adjust_reg_for_mode): Declare.
11448         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
11449         Call it.
11450
11451 2003-03-03  James E Wilson  <wilson@tuliptree.org>
11452
11453         * optabs.c (add_equal_note): Delete SUBREG_REG use.
11454         Fixes PR c/7872.
11455
11456 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11457
11458         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
11459         (*ixorsi3_lshiftrt_16): New.
11460         (*iorsi3_ashift_16): Remove.
11461
11462 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11463
11464         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
11465         pattern.
11466
11467 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
11468
11469         * doc/install.texi (Specific): Update entry for powerpc-darwin.
11470
11471 2003-03-03  Richard Henderson  <rth@redhat.com>
11472
11473         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
11474
11475 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
11476
11477         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
11478         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
11479         (rs6000_variable_issue): Do not return negative value.
11480         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
11481         scheduling pass.
11482
11483 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11484
11485         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
11486         prune_unused_types calls.
11487
11488 2003-03-03  Jason Merrill  <jason@redhat.com>
11489
11490         * tree-inline.c (find_builtin_longjmp_call): Save and restore
11491         lineno and input_filename.
11492         (find_alloca_call): Likewise.
11493         (inlinable_function_p): Run the langhook earlier.
11494
11495         * calls.c (compute_argument_addresses): Give the new MEMs a
11496         minimum alignment of PARM_BOUNDARY.
11497
11498 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
11499
11500         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
11501         subtarget_asm_isa_spec.
11502         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
11503         (ASM_SPEC): Define as SH_ASM_SPEC.
11504         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
11505         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
11506         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
11507         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
11508
11509         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
11510         and align_jumps if not set.
11511         Force align_jumps to be at least 2.
11512         When relaxing, force align_functions to be at least the maximum of
11513         align_loops, align_jumps and 4.
11514         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
11515         (sh_loop_align): Honour align_loops_log.
11516
11517         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
11518         to check for indirect_jump_scratch.
11519         (indirect_jump_scratch): Add second set.
11520         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
11521         when looking for indirect_jump_scratch.
11522         Extract scratch register taking new structure of indirect_jump_scratch
11523         into account.
11524         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
11525
11526 2003-03-03  Jan Hubicka  <jh@suse.cz>
11527
11528         * calls.c (rtx_for_function_call): Take the address as an argument
11529         (expand_call): Do not modify the expression.
11530
11531         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
11532         optimizing.
11533
11534 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11535
11536         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
11537         TARGET_H8300H and TARGET_H8300S.
11538
11539 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11540
11541         * config/h8300/h8300.md (a peephole2): New.
11542
11543 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11544
11545         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
11546         operands[0] and operands[1] are different.
11547
11548 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11549
11550         * reload1.c (reload_cse_move2add): Remove variable success.
11551
11552 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11553
11554         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
11555         warnings.
11556
11557 2003-03-02  Richard Henderson  <rth@redhat.com>
11558
11559         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
11560         * config.in, configure: Rebuild.
11561         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
11562         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
11563         paired ldtoffx and ldxmov annotations.
11564         (load_symptr_internal1): Remove.
11565         (load_symptr_high, load_symptr_low): New.
11566
11567 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
11568
11569         * c-incpath.c (add_path): Fix sysp assignment.
11570
11571 2003-03-02  Kurt Garloff  <garloff@suse.de>
11572
11573         * params.def: Introduce parameter max-inline-insns-rtl for
11574         a separate limit for the RTL inliner.
11575         * params.h: Likewise.
11576         * integrate.c (function_cannot_inline_p): Use it.
11577         * toplev.c (decode_f_option): Set multiple parameters
11578         controlling inlining with -finline-limit.
11579         * params.def: Fix orthographic and typographic errors.
11580         * doc/invoke.texi: Document parameters controlling inlining
11581         and the way -finline-limit sets multiple of them.
11582
11583         * tree.h (struct tree_decl): Introduce inlined_function_flag,
11584         recording whether the function became eligible for inlining
11585         by a compiler flag rather than the declaration.
11586         Provide DID_INLINE_FUNC macro to access it.
11587         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
11588         * cp/decl.c (grokfndecl): Likewise.
11589         * toplev.c (rest_of_compilation): Likewise.
11590         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
11591         * print-tree.c (print_node): Report it.
11592         * params.def: Introduce new max-inline-insns-auto limit.
11593         * params.h: Likewise.
11594         * tree-inline.c (inlinable_function_p): Apply it to functions
11595         with DID_INLINE_FUNC set.
11596         * toplev.c (decode_f_option): Initialize it from -finline-limit
11597         value.
11598         * doc/invoke.texi: Document new parameter.
11599
11600 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
11601
11602         * fix-header.c (read_scan_file): Don't reference simplify_path.
11603
11604 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11605
11606         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
11607         min/max instructions by default as may result in reload errors.
11608
11609 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11610
11611         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
11612         avoid reload problems; define split for it.
11613
11614 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11615
11616         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
11617         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
11618         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
11619         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
11620         rotatert and rotate.
11621         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
11622         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
11623         ("*rotrhi3_addr"): New split for shift insns on address register.
11624         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
11625         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
11626         (___rotrhi3): Likewise.
11627         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
11628
11629 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
11630
11631         * toplev.c (aux_base_name): Moved from toplev.h.
11632         (filename): Constify.
11633         (lang_dependent_init): Don't duplicate name.
11634         (process_options): Set aux_base_name here, not...
11635         (do_compile): ...here.  Change protoype.
11636         (toplev_main): Move some code from do_compile.
11637         * toplev.h: Remove aux_base_name.
11638
11639 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11640
11641         * config/h8300/h8300-protos.h: Add a prototype for
11642         iorxor_operator.
11643         * config/h8300/h8300.c (print_operand): Handle 'c'.
11644         (iorxor_operator): New.
11645         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
11646         * config/h8300/h8300.md (*iorhi3_zext): Remove.
11647         (*iorsi3_zexthi): Likewise.
11648         (*iorsi3_zextsi): Likewise.
11649         (*xorhi3_zextqi): Likewise.
11650         (*xorsi3_zexthi): Likewise.
11651         (*xorsi3_zextsi): Likewise.
11652         (*ixorhi3_zext): New.
11653         (*ixorsi3_zext_qi): Likewise.
11654         (*ixorsi3_zext_hi): Likewise.
11655
11656 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
11657
11658         * c-incpath.c (remove_component_p, simplify_path): Move back to
11659         cppfiles.c.
11660         (remove_duplicates): Use cpp_simplify_path.
11661         * c-incpath.h (simplify_path): Remove.
11662         * c-lex.c: Don't include c-incpath.h.
11663         (init_c_lex): Remove simplify_path.
11664         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
11665         (find_or_create_entry, validate_pch): Revert.
11666
11667 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
11668
11669         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
11670           an external cpp during compilation.
11671         (option_map): Likewise.
11672         * objc/lang-specs.h (default_compilers): Similarly.
11673         * doc/invoke.texi: Document -no-integrated-cpp flag.
11674
11675 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11676
11677         * config/h8300/h8300.md (zero_extendqisi2): Change to an
11678         expander.
11679         (*zero_extendqisi2_h8300): New.
11680         (*zero_extendqisi2_h8300hs): New.
11681         (two splitters): New.
11682
11683 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11684
11685         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
11686
11687 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11688
11689         * config/h8300/h8300.md (a peephole2): Remove dead code.
11690
11691 2003-03-01  Roger Sayle  <roger@eyesopen.com>
11692
11693         PR c++/9367
11694         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
11695         (BT_FN_INT_CONST_STRING_VALIST_ARG,
11696         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
11697         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
11698         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
11699         BT_FN_INT_STRING_CONST_STRING_VAR,
11700         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
11701         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
11702         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
11703         ATTR_NONNULL_3): Also include the nothrow attribute.
11704         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
11705         vsnprintf, vscanf, vsscanf): Don't define attributes here.
11706         * builtins.def (putchar, puts): Make full C89 built-ins.
11707         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
11708         vsscanf, vsnprintf, vsprintf): New built-ins.
11709         * c-common.c (c_common_nodes_and_builtins): Handle new macro
11710         DEF_FUNCTION_TYPE_VAR_3.
11711
11712         * doc/extend.texi: Document these new built-in functions.
11713
11714 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11715
11716         * config/h8300/h8300.md (a peephole2): New.
11717
11718 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
11719
11720         * predict.c (estimate_bb_frequencies): Correctly set
11721         real_values_initialized after initialization.
11722
11723 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
11724
11725         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
11726         cppinit.o, cppdefault.o, fix-header): Update.
11727         * c-incpath.c: New file.
11728         * c-incpath.h: New file.
11729         * c-lex.c: Include c-incpath.h.
11730         (init_c_lex): Register path simplifier.
11731         * c-opts.c: Include cppdefault.h and c-incpath.h.
11732         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
11733         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
11734         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
11735         (missing_arg, c_common_decode_option): Handle them.
11736         (c_common_post_options): Register include chains.
11737         (print_help): Update.
11738         * cppdefault.h (struct default include): Update.
11739         Move some macros to ...
11740         * cppdefault.c: ... here.
11741         (cpp_include_defaults): Add extra field add_sysroot.
11742         * cppfiles.c (include_file, search_from, find_or_create_entry,
11743         cpp_included, find_include_file, remap_filename): Update for
11744         renaming of search_path to cpp_path, and of the chain headers.
11745         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
11746         * cpphash.h (struct search_path): Move to cpplib.h.
11747         (struct cpp_buffer, struct cpp_reader): Update.
11748         (_cpp_simplify_pathname): Remove.
11749         * cppinit.c: Don't include prefix.h and cppdefault.h.
11750         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
11751         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
11752         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
11753         no_pth, cpp_handle_options): Remove.
11754         (struct pending_option): Remove chain members.
11755         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
11756         cpp_handle_option): Update.
11757         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
11758         (struct cpp_options): Remove quote_include, bracket_include,
11759         include_prefix, include_prefix_len, verbose, ignore_srcdir,
11760         no_standard_includes, no_standard_cplusplus_includes.
11761         (struct cpp_callbacks): Add simplify_path.
11762         (cpp_handle_options): Remove.
11763         * fix-header.c: Include c-incpath.h.
11764         (read_scan_file): Update to use c-incpath functionality.
11765         * doc/passes.texi: Update.
11766
11767 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11768
11769         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
11770         satisfies EXTRA_CONSTRAINT 'U'.
11771
11772 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11773
11774         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
11775         register.
11776         (*tst_extzv_memqi_1_n): Change to a splitter.
11777         (a peephole2): Update.
11778
11779 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
11780
11781         * predict.c (estimate_bb_frequencies): Initialize the sreal
11782         constants once per compilation.
11783
11784 2003-02-28  Richard Henderson  <rth@redhat.com>
11785
11786         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
11787
11788 2003-02-28  scott snyder  <snyder@fnal.gov>
11789
11790         * flags.h: Add flag_eliminate_unused_debug_types.
11791         * toplev.c: Add flag_eliminate_unused_debug_types.
11792         (f_options): Add -feliminate-unused-debug-types.
11793         * dwarf2out.c (struct file_table): Add emitted member.
11794         (splice_child_die): Fix the parent pointer for the child being
11795         spliced.
11796         (lookup_filename): Maintain file_table.emitted array.  Don't
11797         output .file directive here.
11798         (maybe_emit_file): (new)
11799         (init_file_table): Set up file_table.emitted.
11800         (dwarf2out_source_line): Use maybe_emit_file.
11801         (dwarf2out_start_source_file): Use maybe_emit_file.
11802         (dwarf2out_init): Use maybe_emit_file.
11803         (prune_unused_types_walk_attribs): (new)
11804         (prune_unused_types_mark): (new)
11805         (prune_unused_types_walk): (new)
11806         (prune_unused_types_prune): (new)
11807         (prune_unused_types): (new)
11808         (dwarf2out_finish): Call prune_unused_types if
11809         flag_eliminate_unused_debug_types is set.
11810         * doc/invoke.texi (Option Summary): Add
11811         -feliminate-unused-debug-types.
11812         (Debugging Options): Likewise.
11813
11814 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
11815
11816         * doc/invoke.texi: Change .pch to .gch.
11817         * cppfiles.c (open_file_pch): Likewise.
11818         * gcc.c (default_compilers): Likewise.
11819
11820 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
11821
11822         * floatlib.c: Remove.
11823
11824 2003-02-28  Jason Merrill  <jason@redhat.com>
11825
11826         * stor-layout.c (variable_size): Leave a "minus 1" outside the
11827         SAVE_EXPR.
11828
11829 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
11830
11831         * config/rs6000/power4.md: Add compare bypass.
11832
11833 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
11834
11835         * config/netbsd.h: Update copyright years.
11836         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
11837         -pthread is specified on the command line.
11838
11839 2003-02-28  Dale Johannesen <dalej@apple.com>
11840
11841         * loop.c (struct movable): Add insert_temp, shrink savemode.
11842         (scan_loop): Accept invariants that require copying; mark as
11843         insert_temp.
11844         (combine_movables): Don't combine insert_temp movables.
11845         (move_movables): Insert copies for insert_temp movables.
11846         Don't record the info based on regno for insert_temp's.
11847
11848 2003-02-28  Joel Sherrill <joel@OARcorp.com>
11849
11850         PR 9638/other
11851         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
11852         this constant defaults to 1.
11853
11854 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
11855
11856         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
11857
11858 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
11859
11860         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
11861         ARMv5e processor, not just for XScale.  Instructions are predicable.
11862         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
11863
11864 2003-02-28  Nick Clifton  <nickc@redhat.com>
11865
11866         * config/arm/arm.c (note_invalid_constants): Change parameter type
11867         from bool to int.
11868
11869 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11870
11871         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
11872         test of bit 7.
11873         (*tst_extzv_memqi_1_n): Likewise.
11874         (a peephole2): New.
11875
11876 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
11877
11878         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
11879         #ifndef __mips16.
11880
11881 2003-02-28  Jan Hubicka  <jh@suse.cz>
11882
11883         * combine.c (gen_lowpart_for_combine): Update handling of
11884         subregs_of_mode
11885         * flow.c (life_analysis, mark_used_regs): Likewise.
11886         * regclass.c (subregs_of_mode): Turn into single bitmap.
11887         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
11888         dealing with subregs_of_mode
11889         * regs.h (subregs_of_mode): Update prototype.
11890
11891 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
11892
11893         * emit-rtl.c (set_reg_attrs_for_parm): New function.
11894         * rtl.h (set_reg_attrs_for_parm): New exported function.
11895         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
11896         set_reg_attrs_from_mem.
11897
11898 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11899             Zack Weinberg <zack@codesourcery.com>
11900
11901         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
11902
11903 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11904
11905         * reload1.c (sext_for_mode): Remove.
11906         (reload_cse_move2add): Use trunc_int_for_mode instead of
11907         sext_for_mode.
11908         (move2add_note_store): Likewise.
11909         Reset register information if we see a set in non-integer
11910         mode.
11911
11912 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
11913
11914         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
11915         option.
11916         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
11917         * config/rs6000/aix51.h: Same.
11918         * config/rs6000/aix52.h: Same.
11919         * config/rs6000/power4.md: Additional VMX bypasses.
11920
11921 2003-02-27   Geert Bosch <bosch@gnat.com>
11922
11923         * toplev.c (print_version): Add indentation for GGC heuristics and
11924         output after printing version information.
11925
11926 2003-02-27  James E Wilson  <wilson@tuliptree.org>
11927
11928         * combine.c (simplify_comparison): Require integral mode when
11929         permuting SUBREG with AND.
11930
11931 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
11932
11933         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
11934
11935 2003-02-27  Nick Clifton  <nickc@redhat.com>
11936
11937         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
11938         deleted when cirrus instructions were added.
11939
11940 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
11941
11942         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
11943         POSIX thread support by default.
11944
11945 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11946
11947         * config/i386/cygwin.h: Don't include any other files directly.
11948         * config/i386/mingw32.h: Don't include cygwin.h directly.
11949         * config.gcc (cygwin, mingw32, uwin): Instead make these files
11950         explicit in the tm_files variable.
11951
11952 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
11953
11954         * config/rs6000/rs6000.md: Add TI constant splitter.
11955
11956 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
11957
11958         * builtins.c (purge_builtin_constant_p): Handle subreg of
11959         constant_p_rtx too.
11960
11961         * function.c (assign_stack_local_1): Truncate constant added to
11962         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
11963
11964 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
11965
11966         * config.gcc: Add power4 to PowerPC with_cpu list.
11967
11968 2003-02-26  Jan Hubicka  <jh@suse.cz>
11969
11970         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
11971
11972 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11973
11974         * gcov-dump.c (print_prefix): Fix signedness warning.
11975         * gcov-io.h (struct counter_section, struct counter_section_data): New.
11976         (struct function_info): n_arc_counts field removed, n_counter_sections,
11977         counter_sections fields added.
11978         (struct gcov_info): arc_counts, n_arc_counts fields removed,
11979         n_counter_sections, counter_sections fields added.
11980         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
11981         profile sections.
11982         * profile.h (MAX_COUNTER_SECTIONS): New.
11983         (struct section_info): New.
11984         (struct profile_info): count_instrumented_edges,
11985         count_edges_instrumented_now fields removed, n_sections, section_info
11986         fields added.
11987         (find_counters_section): Declare.
11988         * profile.c (struct function_list): count_edges field removed,
11989         n_counter_sections, counter_sections fields added.
11990         (set_purpose, label_for_tag, build_counter_section_fields,
11991         build_counter_section_value, build_counter_section_data_fields,
11992         build_counter_section_data_value, build_function_info_fields,
11993         build_function_info_value, build_gcov_info_fields,
11994         build_gcov_info_value): New static functions.
11995         (find_counters_section): New function.
11996         (instrument_edges, get_exec_counts, compute_branch_probabilities,
11997         branch_prob, create_profiler): Modified to support multiple profile
11998         sections.
11999
12000 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12001
12002         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
12003         is 8 * STACK_BOUNDARY.
12004         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
12005
12006 2003-02-26  Michael Matz  <matz@suse.de>
12007
12008         * ra-colorize.c (merge_moves): Fix list handling.
12009
12010 2003-02-26  Nick Clifton  <nickc@redhat.com>
12011
12012         * config/arm/arm.c (is_load_address): Rename to...
12013         (arm_memory_load_p) ... this and make it check for SUBREGs and
12014         constant loads that will be converted into loads from the
12015         minipool.
12016         (is_cirrus_insn): Rename to ...
12017         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
12018         of CIRRUS_NO with CIRRUS_NOT.
12019         (cirrus_reorg): Use renamed functions.
12020         (note_invalid_constants): Change from a void function to bool.
12021         Add an extra parameter, saying whether the fixups should be
12022         pushed.  Return true if fixups are needed.
12023         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
12024         of CIRRUS_NO with CIRRUS_NOT.
12025         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
12026         other floating point co-processors can also affect this.
12027         * config/arm/arm.md ("type" attribute): Add mav_farith and
12028         mav_dmult.  Replace references to "cirrus_type" attribute with
12029         "type".
12030         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
12031         ("cirrus_type" attribute): Delete - use "type" instead.
12032         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
12033         'normal'.
12034
12035 2003-02-25  Jan Hubicka  <jh@suse.cz>
12036
12037         * objc-act.c: Include cgraph.h
12038         (mark_referenced_methods): New function.
12039         (objc_init): Call it.
12040         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
12041
12042         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
12043         mode.
12044
12045         * optabs.c (expand_fix): Do not widen the input operand.
12046
12047         * expr.c (emit_group_store):  Fix crash when converting single
12048         register into complex register.
12049
12050         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
12051         * alias.c: Include timevar.h
12052         (init_alias_analysis):  Set timevar
12053         * jump.c: Include timevar.h
12054         (rebuild_jump_labels):  Set timevar
12055         * regcalss.c: Include timevar.h
12056         (reg_scan):  Set timevar
12057         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
12058
12059 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12060
12061         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
12062
12063         * Makefile.in (loop-unroll.o): New.
12064         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
12065         (unroll_and_peel_loops): Declare.
12066         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
12067         flag_old_unroll_loops.
12068         * loop.c (loop_invariant_p): Ditto.
12069         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
12070         flag_old_unroll_all_loops.
12071         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
12072         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
12073         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
12074         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
12075         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
12076         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
12077         PARAM_MAX_ONCE_PEELED_INSNS): New.
12078         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
12079         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
12080         instead of old one.
12081         (flag_peel_loops): New.
12082         (lang_independent_options): The new flags added.
12083         (rest_of_compilation): Call new unroller.
12084         (process_options): Setup flags for coexistence of old and new unroller.
12085         * doc/invoke.texi: Document new options.
12086         * doc/passes.texi: Document new unroller pass.
12087
12088 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
12089
12090         * fixinc/fixincl.x: Regenerate
12091
12092 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
12093
12094         * function.c (assign_parms): Set reg_attrs for parameters passed in
12095         registers.
12096
12097 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
12098
12099         PR target/9681
12100         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
12101
12102 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
12103
12104         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
12105         pseudo-op.
12106
12107 2003-02-25  Roger Sayle  <roger@eyesopen.com>
12108
12109         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
12110         * cse.c (invalidate_skipped_set):  Likewise.
12111         * integrate.c (subst_constants):  Likewise.
12112         * jump.c (reversed_comparison_code_parts):  Likewise.
12113         * loop.c (canonicalize_condition):  Likewise.
12114         * simplify-rtx.c (simplify_relational_operation):  Likewise.
12115
12116 2003-02-25  Roger Sayle  <roger@eyesopen.com>
12117
12118         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
12119         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
12120         the appropriate macro to define built-in function.
12121         (fmod,fmodf,fmodl): New built-in functions.
12122
12123         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
12124
12125 2003-02-25  Richard Henderson  <rth@redhat.com>
12126
12127         * config/i386/i386.c (function_arg): Pass variable sized
12128         structures correctly on the stack.
12129
12130 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
12131
12132         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
12133         does not reduce the cost of SET.
12134
12135 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12136
12137         PR target/9732
12138         * config/rs6000/rs6000.c (first_reg_to_save): Handle
12139         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
12140         (rs6000_emit_prologue): Likewise.
12141         (rs6000_emit_epilogue): Likewise.
12142         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
12143         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
12144
12145 2003-02-25  Richard Henderson  <rth@redhat.com>
12146
12147         * real.c (real_to_integer2): Force overflow result only for
12148         unsigned overflow.
12149
12150 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
12151
12152         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
12153
12154 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
12155             Richard Henderson  <rth@redhat.com>
12156
12157         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
12158         there is no similar load.
12159
12160 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
12161             Richard Henderson  <rth@redhat.com>
12162
12163         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
12164         sched-rgn.c.
12165         (add_forward_dependence): New function prototype.
12166
12167         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
12168         sched-init.h.
12169         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
12170         them to haifa-sched.c.
12171
12172         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
12173         haifa_classify_insn): Move them from sched-rgn.c.
12174
12175         * sched-deps.c (add_dependence): Return flag of creating a new
12176         entry.
12177         (add_forward_dependence): New function.
12178         (compute_forward_dependences): Use the function.
12179
12180         * sched-ebb.c (earliest_block_with_similiar_load): New function.
12181         (add_deps_for_risky_insns): New function.
12182         (schedule_ebb): Call the function.
12183
12184 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
12185
12186         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
12187         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
12188
12189         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
12190         opaque types fail.
12191
12192         * c-typeck.c (comptypes): Change call to vector_types_compatible
12193         to vector_opaque_p.
12194         (convert_for_assignment): Call vector_opaque_p instead of
12195         vector_types_compatible.
12196         (really_start_incremental_init): Disallow initialization of opaque
12197         types.
12198
12199         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
12200         Define TARGET_VECTOR_OPAQUE_P.
12201         (TARGET_INITIALIZER): Same.
12202
12203         * target.h (struct gcc_target): Remove vector_types_compatible.
12204         Add vector_opaque_p.
12205
12206         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
12207         Remove.
12208         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
12209         a vector type.  Change return type to bool.
12210         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
12211         (TARGET_VECTOR_OPAQUE_P): Define.
12212
12213         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
12214         target hook.
12215         Include target.h.
12216         (cp_parser_init_declarator): Fix typo in function comments.
12217
12218 2003-02-25  Jan Hubicka  <jh@suse.cz>
12219
12220         * Makefile.in (lcm.o):  Add dependency on function.h
12221         * lcm.c (function.h): Include.
12222         * i386.c (machine_function, ix86_stack_locals,
12223         * ix86_save_varrargs_registers) : Move to
12224         ...
12225         * i386.h (machine_function, ix86_stack_locals,
12226         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
12227         (ix86_optimize_mode_switching): New.
12228         * i386.md (fix patterns): Set ix86_optimize_mode_switching
12229
12230 2003-02-25  Nick Clifton  <nickc@redhat.com>
12231
12232         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
12233         of fourth arg is 'fndecl' not 'indirect'.  Update comment
12234         describing the function's parameters.
12235
12236 2003-02-24  Jan Hubicka  <jh@suse.cz>
12237
12238         * combine.c (simplify_shift_const):  Fix previous patch.
12239
12240 2003-02-24  Jeff Law  <law@redhat.com>
12241
12242         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
12243         alternative.
12244         (testsi_1, testhi_1, testqi_1): Likewise.
12245
12246 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12247
12248         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
12249         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
12250         * doc/extend.texi (Tru64 Pragmas): Reflect this.
12251
12252         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
12253         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
12254         * fixinc/fixincl.x: Regenerate.
12255         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
12256         testcase.
12257         Fixes PR c/5059, c/6126, other/9671.
12258
12259 2003-02-24  Roger Sayle  <roger@eyesopen.com>
12260
12261         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
12262         from handle_braces in "%{...}".
12263
12264 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
12265
12266         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
12267         (prepare_move_operands): Handle TLS operands.
12268         (tls_symbolic_operand): New.
12269         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
12270         (legitimize_pic_address): Do nothing for the TLS symbol.
12271         (sh_encode_section_info): Handle TLS case.
12272         (sh_strip_name_encoding): Drop TLS encoding.
12273         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
12274         * config/sh/sh.h (SH_TLS_ENCODING): Define.
12275         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
12276         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
12277         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
12278         * config/sh/sh.md: Define TLS UNSPEC constants.
12279         (type): Add tls_load.
12280         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
12281         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
12282         ("tls_initial_exec"): New insn.
12283         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
12284         ("load_gbr"): New insn.
12285
12286         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
12287         * configure: Regenerate.
12288
12289 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
12290
12291         PR 9297, PR 9722
12292         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
12293         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
12294         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
12295         (enum block_op_methods): Reorder for better store_expr optimization.
12296         * expr.c (store_expr): Test bit 1 of "want_value" for call param
12297         stores, test bit 0 for original want_value meaning.  Pass
12298         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
12299         recursive calls, and calls to expand_param.
12300         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
12301         expected, set target to 0 rather than to subtarget.  Formatting.
12302
12303 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12304
12305         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
12306
12307 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12308
12309         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
12310         new default behavior.
12311         * ggc-common.c: Include sys/resource.h.
12312         (ggc_rlimit_bound): New function.
12313         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
12314         defaults to account for rlimits.
12315
12316 2003-02-22  Richard Henderson  <rth@redhat.com>
12317
12318         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
12319
12320 2003-02-22  Kelley Cook <kelley@dwhoops.info>
12321
12322         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
12323         (ix86_tune_string): Rename from ix86_cpu_string.
12324
12325 2003-02-22  Kelley Cook <kelleycook@comcast.net>
12326
12327         * config/i386/i386.c: Replace "mcpu" with "mtune".
12328         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
12329         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
12330         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
12331         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
12332
12333 2003-02-23  Andreas Schwab  <schwab@suse.de>
12334
12335         * config.gcc: Delete references to m68k/t-linux and
12336         m68k/t-linux-aout.
12337         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
12338
12339 2003-02-22  Jan Hubicka  <jh@suse.cz>
12340
12341         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
12342         of track scheduling patch.
12343
12344 2003-02-22  Jan Hubicka  <jh@suse.cz>
12345
12346         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
12347         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
12348
12349 2003-02-22  Jan Hubicka  <jh@suse.cz>
12350
12351         * c-decl.c (c_expand_body_1): Fix.
12352
12353 2003-02-22  Jan Hubicka  <jh@suse.cz>
12354
12355         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
12356
12357         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
12358         when not optimizing.
12359         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
12360         when not expensive.
12361         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
12362         optimizing;  Delete trivially dead insns early; fix optimize check.
12363
12364         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
12365         dependency on cgraph.h
12366         * c-decl.c: Include cgraph.h
12367         (finish_function): Update call of tree_inlinable_function_p.
12368         * c-objc-common.c: Include cgraph.h
12369         * cgraph.h: New file.
12370         * cgraphunit.c: New file.
12371         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
12372         (cgraph_nodes, cgraph_n_nodes): Globalize.
12373         (cgraph_finalize_function, cgraph_finalize_compilation_unit
12374         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
12375         Move into cgraphunit.c
12376         * tree-inline.c: Include cgraph.h
12377         * tree-inline.c: Include cgraph.h
12378
12379 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
12380
12381         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
12382         for copying a register.
12383
12384 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
12385
12386         PR other/3782
12387         * toplev.c (process_options): If flag_detailed_statistics is set,
12388         then set time_report as well.
12389
12390         PR c/8828
12391         * jump.c (never_reached_warning): Don't fall through BARRRIER
12392         insns.  Update comments to reflect what the function really does.
12393
12394 2003-02-21  Roger Sayle  <roger@eyesopen.com>
12395
12396         * fold-const.c (omit_one_operand): No longer static.
12397         * tree.h (omit_one_operand): Prototype here.
12398         (div_and_round_double): Keep fold-const.c prototypes together.
12399         * builtins.c (builtin_mathfn_code): Handle binary built-in
12400         funtions, such as "pow" and "atan2".
12401         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
12402         Simplify optimizations using "type" the builtin's return type.
12403
12404 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
12405
12406         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
12407         Fix functionalization typo.
12408
12409         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
12410         in an asm.
12411
12412 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12413
12414         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
12415         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
12416         documentation.
12417         * ggc-common.c: Include params.h
12418         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
12419         init_ggc_heuristics): New functions.
12420         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
12421         init_ggc_heuristics): Prototype.
12422         * toplev.c (print_version):  Output GGC heuristics.
12423         (parse_options_and_default_flags): Call init_ggc_heuristics.
12424
12425 2003-02-22  Jan Hubicka  <jh@suse.cz>
12426
12427         * i386.c (def_builtin):  Special case 64bit builtins.
12428         (MASK_SSE164, MASK_SSE264): New constants.
12429         (builtin_description): Add 64bit builtins.
12430         (ix86_init_mmx_sse_builtins): Likewise.
12431         * i386.h (enum ix86_builtins): Likewise.
12432         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
12433         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
12434         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
12435         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
12436         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
12437         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
12438         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
12439
12440 2003-02-22  Jan Hubicka  <jh@suse.cz>
12441
12442         * i386.c (builtin_description): Add __builtin_ia32_paddq and
12443         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
12444          and __builtin_ia32_psubq128.
12445         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
12446         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
12447         (mmx_adddi3, mmx_subdi3): New.
12448         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
12449         * xmmintrin.h (_mm_movepi64_pi64): New.
12450         (_mm_add_epi64, _mm_sub_epi64): fix.
12451         (_mm_mul_pu16): Rename to...
12452         (_mm_mul_su32): ... this one.
12453
12454         * builtins.c (expand_builtin_expect):  Do not predict
12455         flag_guess_branch_prob is not set.
12456         * c-semantics.c (expand_stmt): Likewise.
12457         * predict.c (predict_insn): Likewise.
12458         * stmt.c (expand_continue_loop): Likewise.
12459         * toplev.c (rest_of_compilation): Do not call
12460         note_prediction_to_br_prob and note_prediction_to_br_prob
12461         when not optimizing.
12462
12463 2003-02-21  Jan Hubicka  <jh@suse.cz>
12464
12465         * cfgrtl.c (commit_edge_insertions):  Call
12466         find_many_sub_basic_block only when some code has been emitted.
12467         (commit_edge_insertions_watch_calls): Bring into sync with
12468         commit_edge_insertions
12469
12470 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
12471
12472         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
12473
12474         * sh.md (binary_sf_op): Use extra constant operand instead of
12475         negating constant operand 4.
12476         * sh.c (sh_expand_binop_v2sf): Supply it.
12477
12478 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
12479
12480         * cpphash.h (struct lexer_state): Add directive_wants_padding.
12481         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
12482         for directives of type INCL.
12483         (glue_header_name, parse_include): Use get_token_no_padding.
12484         * cppmacro.c (replace_args): If directive_wants_padding,
12485         provide padding tokens.
12486
12487 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12488
12489         * config/h8300/h8300.md (a peephole2): New.
12490
12491 2003-02-21  Jan Hubicka  <jh@suse.cz>
12492
12493         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
12494         (commit_edge_insertions): Call find_many_sub_basic_blocks
12495
12496         * reg-stack.c (convert_regs): Cleax aux for blocks.
12497
12498 2003-02-21  Jan Hubicka  <jh@suse.cz>
12499
12500         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
12501
12502 2003-02-21  Glen Nakamura  <glen@imodulo.com>
12503
12504         PR optimization/8613
12505         * builtins.c (expand_builtin): Emit postincrements before expanding
12506         builtin functions.
12507
12508 2003-02-21  Ben Elliston  <bje@redhat.com>
12509
12510         PR other/5634
12511         * doc/install.texi (Configuration): Explain using $HOME instead of
12512         the ~ metacharacter when referring to home directories.
12513
12514 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
12515
12516         * configure.in (TARGET_SYSTEM_ROOT): Set default to
12517         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
12518         '${exec_prefix}' (in addition to the expansion thereof) as
12519         relocatable.
12520         * configure: Rebuilt.
12521
12522 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12523
12524         * config/h8300/h8300.md (addhi3_incdec): Change the name to
12525         *addhi3_incdec.
12526         (addsi3_incdec): Change the name to *addsi3_incdec.
12527
12528 2003-02-20  Roger Sayle  <roger@eyesopen.com>
12529
12530         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
12531
12532 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
12533
12534         PR fortran/9038
12535         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
12536         options to be ignored.
12537         (c_common_decode_option): Ignore them when preprocessing.
12538
12539 2003-02-20  Jan Hubicka  <jh@suse.cz>
12540
12541         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
12542         global variables.
12543         (lang_independent_options):  Add -fsched2-use-superblocks
12544         -fsced2-use-traces.
12545         (rest_of_compilation): Deal with it.
12546         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
12547         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
12548         Declare.
12549         * rtl.h (reg_to_stack):  Update prototype.
12550         * reg-stack.c (reg_to_stack): Return when something has changed;
12551         update liveness when executing after superblock scheduling.
12552
12553         * combine.c (simplify_shift_const):  Simplify few special cases
12554         into constants.
12555
12556 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
12557
12558         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
12559         (add.,subf.,neg.): Change attribute to fast_compare.
12560         All DFA descriptions updated.
12561
12562 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
12563
12564         Change base class access representation.
12565         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
12566         TREE_VIA_PRIVATE): Remove.
12567         (BINFO_BASEACCESSES): New binfo elt.
12568         (BINFO_BASEACCESS): New accessor.
12569         (BINFO_ELTS): Increase.
12570         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
12571         (access_public_node, access_protected_node,
12572         access_private_node): New global nodes.
12573         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
12574         * dbxout.c (dbxout_type): Adjust.
12575         * dwarf2out.c (gen_inheritance_die): Add access parameter.
12576         (gen_member_die): Adjust.
12577         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
12578         (output_type): Adjust.
12579         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
12580
12581         Change base class access representation. Share virtual base
12582         binfos.
12583         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
12584         call.
12585         * cp/class.c (build_base_path): Likewise.
12586         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
12587         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
12588         (make_new_vtable): Adjust.
12589         (force_canonical_binfo_r): Delete.
12590         (force_canonical_binfo): Delete.
12591         (mark_primary_virtual_base): Delete.
12592         (dfs_unshared_virtual_bases): Delete.
12593         (mark_primary_bases): Adjust.
12594         (maybe_warn_about_overly_private_class): Adjust.
12595         (dfs_base_derived_from): Delete.
12596         (base_derived_from): Follow the inheritance chain.
12597         (struct find_final_overrider_data): Add vpath member.
12598         (dfs_find_final_overrider): Adjust.
12599         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
12600         (find_final_overrider): Adjust.
12601         (update_vtable_entry_for_fn): Adjust.
12602         (modify_all_vtables): Adjust.
12603         (walk_subobject_offsets): Adjust.
12604         (layout_nonempty_base_or_field): Adjust.
12605         (layout_empty_base): Remove last parameter. Adjust.
12606         (build_base_field): Adjust.
12607         (build_base_fields): Adjust.
12608         (propagate_binfo_offsets): Remove last parameter. Adjust.
12609         (dfs_set_offset_for_unshared_vbases): Delete.
12610         (layout_virtual_bases): Adjust.
12611         (finish_struct_1): Adjust.
12612         (init_class_processing): Don't init access nodes.
12613         (dfs_get_primary_binfo): Delete.
12614         (get_primary_binfo): Adjust.
12615         (dump_class_hierarchy_r): Remove most derived arg, add IGO
12616         parameter. Adjust.
12617         (dump_class_hierarchy): Adjust.
12618         (finish_vtbls): Adjust.
12619         (get_original_base): Delete.
12620         (build_vtt_inits): Adjust.
12621         (dfs_build_secondary_vptr_vtt_inits): Adjust.
12622         (dfs_ctor_vtable_bases_queue_p): Adjust.
12623         (build_ctor_vtbl_group): Adjust.
12624         (dfs_accumulate_vtbl_inits): Adjust.
12625         (build_vtbl_initializer): Adjust.
12626         (build_vbase_offset_vtbl_entries): Adjust.
12627         (add_vcall_offset_vtbl_entries_1): Adjust.
12628         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
12629         (access_*_node): Remove.
12630         (CANONICAL_BINFO): Delete.
12631         (BINFO_UNSHARED_MARKED): Remove.
12632         (BINFO_MARKED): Set LANG_FLAG_0 directly.
12633         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
12634         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
12635         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
12636         Delete.
12637         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
12638         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
12639         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
12640         Delete.
12641         (BINFO_DEPENDENT_BASE_P): New.
12642         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
12643         index.
12644         (markedp, unmarkedp): Adjust.
12645         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
12646         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
12647         find_vbase_instance, binfo_for_vbase): Delete.
12648         (copied_binfo, original_binfo): Declare.
12649         (finish_base_specifier): Add virtual_p arg.
12650         (unshare_base_binfos): Delete.
12651         (copy_base_binfos): Declare.
12652         (reverse_path): Delete.
12653         * cp/decl.c (xref_basetypes): Access and virtuality passed
12654         differently. Don't copy direct base binfos here. Call
12655         copy_base_binfos.
12656         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
12657         (initialize_vtbl_ptrs): Adjust.
12658         (expand_member_init): Adjust.
12659         * cp/parser.c (cp_parser_base_specifier): Adjust.
12660         * cp/pt.c (instantiate_class_template): Adjust.
12661         (get_template_base_recursive): Adjust.
12662         * cp/rtti.c (get_pseudo_ti_init): Adjust.
12663         (get_pseudo_ti_desc): Adjust.
12664         * cp/tree.c (unshare_base_binfos): Rename to ...
12665         (copy_base_binfos): ... here, reimplement.
12666         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
12667         (reverse_path): Remove.
12668         * cp/typeck.c (get_delta_difference): Adjust error messages.
12669         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
12670         * cp/search.c (lookup_base_r): Adjust.
12671         (dynamic_cast_base_recurse): Adjust.
12672         (canonical_binfo): Remove.
12673         (dfs_canonical_queue): Remove.
12674         (dfs_assert_unmarked_p): Remove.
12675         (assert_canonical_unmarked): Remove.
12676         (shared_marked_p, shared_unmarked_p): Remove.
12677         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
12678         (dfs_access_in_type): Adjust.
12679         (access_in_type): Adjust.
12680         (dfs_accessible_queue_p): Adjust.
12681         (dfs_accessible_p): Adjust.
12682         (is_subobject_of_p_1, is_subobject_of_p): Remove.
12683         (struct lookup_field_info): Remove from_dep_base_p field.
12684         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
12685         (lookup_field_r): Remove dependent base code.
12686         (lookup_member): Likewise.
12687         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
12688         (dfs_unmarked_real_bases_queue_p): Remove.
12689         (dfs_marked_real_bases_queue_p): Remove.
12690         (dfs_skip_vbases): Remove.
12691         (dfs_get_pure_virtuals): Adjust.
12692         (markedp, unmarkedp): Adjust.
12693         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
12694         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
12695         (dfs_unmark): Adjust.
12696         (dfs_get_vbase_types):Remove.
12697         (dfs_build_inheritance_graph_order): Remove.
12698         (get_vbase_types): Remove
12699         (dfs_find_vbase_instance): Remove.
12700         (find_vbase_instance): Remove.
12701         (dfs_debug_unmarkedp): Adjust.
12702         (dependent_base_p): Remove.
12703         (dfs_push_type_decls): Adjust.
12704         (dfs_push_decls): Adjust.
12705         (dfs_no_overlap_yet): Adjust.
12706         (copied_binfo): New function.
12707         (original_binfo): New function.
12708         (binfo_for_vbase): Remove.
12709
12710         Change base class access representation.
12711         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
12712         (add_interface_do): Likewise.
12713
12714 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
12715
12716         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12717         * config/rs6000/power4.md (power4-store,power4-vecstore): New
12718         insn reservations.
12719         (power4-fpstore): Compact.
12720
12721 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * config/h8300/h8300.md (*iorsi3_w): New.
12724
12725 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
12726
12727         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
12728         * rtl.c (reg_note_name): Likewise.
12729         * rtl.h (enum reg_note): Likewise.
12730         * doc/invoke.texi: Likewise.
12731         * doc/rtl.texi: Likewise.
12732
12733 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
12734
12735         * bb-reorder.c (find_traces_1_round): Fix comment typo.
12736
12737 2003-02-19  Roger Sayle  <roger@eyesopen.com>
12738
12739         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
12740         addition in the presence of signaling NaNs.
12741
12742 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
12743
12744         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
12745
12746 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12747
12748         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
12749         ORing with 0xffff??00 with the highest bit of the ?? part set.
12750         (compute_logical_op_length): Update.
12751         (compute_logical_op_cc): Likewise.
12752
12753 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
12754
12755         * bb-reorder.c (find_traces_1_round): Fixed condition for small
12756         destination block with multiple predecessors.
12757         (connect_traces): Check whether the block is a start of trace.
12758
12759 2003-02-19  Jan Hubicka  <jh@suse.cz>
12760
12761         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
12762         * function.c (assign_params): Likewise.
12763         * arm-protos.h (arm_init_cumulative_args): Update prototype.
12764         * arm.c (arm_init_cumulative_args): Update function.
12765         * arm.h (INIT_CUMULATIVE_ARGS): Update.
12766         * avr-protos.h (init_cumulative_args): Update prototype.
12767         * avr.c (init_cumulative_args): Update function.
12768         * avr.h (INIT_CUMULATIVE_ARGS): Update.
12769         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
12770         * d30v.c (d30v_init_cumulative_args): Update function.
12771         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
12772         * frv-protos.h (frv_init_cumulative_args): Update prototype.
12773         * frv.c (frv_init_cumulative_args): Update function.
12774         * frv.h (INIT_CUMULATIVE_ARGS): Update.
12775         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
12776         * pa.h (INIT_CUMULATIVE_ARGS): Update.
12777         * sparc-protos.h (init_cumulative_args): Update prototype.
12778         * sparc.c (init_cumulative_args): Update function.
12779         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
12780         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
12781
12782 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
12785         (*ashiftsi_sextqi_7): Likewise.
12786
12787 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12788
12789         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
12790         ISO C99 and C++.
12791
12792         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
12793         for C++ on IRIX 6.5.1[89].
12794         * fixinc/tests/base/internal/sgimacros.h: New file.
12795
12796         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
12797         * fixinc/tests/base/internal/wchar_core.h: New file.
12798
12799         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
12800         socklen_t definition.
12801         * fixinc/fixincl.x: Regenerate.
12802         * fixinc/tests/base/sys/socket.h: New file.
12803         Fixes PR libgcj/9652.
12804
12805 2003-02-19  Jan Hubicka  <jh@suse.cz>
12806
12807         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
12808
12809 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
12810
12811         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
12812         align_jumps_max_skip and align_loops_max_skip.
12813
12814 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
12815
12816         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
12817         test size if named section.
12818
12819 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
12820
12821         * expr.c (expand_expr): Use gen_int_mode for the argument
12822         to gen_rtx_MULT.
12823
12824 2003-02-19  Jan Hubicka  <jh@suse.cz>
12825
12826         * i386.md (cosxf2):  Fix conditional.
12827
12828 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12829
12830         * config/h8300/h8300.md (extendqisi2): Change to an expander.
12831         (*extendqisi2_h8300): New.
12832         (*extendqisi2_h8300hs): Likewise.
12833
12834 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12835
12836         * config/h8300/h8300-protos.h: Update the prototype for
12837         split_adds_subs.  Remove the prototypes for
12838         const_int_le_2_operand and const_int_le_6_operand.
12839         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
12840         (const_int_le_2_operand): Remove.
12841         (const_int_le_6_operand): Likewise.
12842         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
12843         for const_int_le_2_operand and const_int_le_6_operand.
12844         * config/h8300/h8300.md: Update all uses of split_adds_subs.
12845         (a peephole2): New.
12846
12847 2003-02-18  Jan Hubicka  <jh@suse.cz>
12848
12849         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
12850         (cgraph_expand_function): Rewrite.
12851
12852 2003-02-18  Matt Austern <austern@apple.com>
12853
12854         * toplev.c, langhooks.c, langhooks-def.h: Move
12855         write_global_declarations from toplev.c to langhooks.c.
12856
12857 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12858
12859         * config/h8300/h8300.c (general_operand_src): Always check
12860         MODE.
12861         (general_operand_dst): Likewise.
12862
12863 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12864
12865         * convert.c (convert_to_real): Also optimize (float)log(x) into
12866         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
12867
12868 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
12869
12870         * config/sh/sh.c (unspec_caller_rtx_p): New.
12871         (sh_cannot_copy_insn_p): New.
12872         (TARGET_CANNOT_COPY_INSN_P): New.
12873
12874 2003-02-18  Richard Henderson  <rth@redhat.com>
12875
12876         * c-common.c (handle_used_attribute): Accept static data too.
12877
12878 2003-02-18  Nick Clifton  <nickc@redhat.com>
12879             Aldy Hernandez  <aldyh@redhat.com>
12880
12881         * testsuite/gcc.dg/20030218-1.c: New.
12882
12883         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
12884
12885         * target-def.h (TARGET_INITIALIZER): Add
12886         TARGET_VECTOR_TYPES_COMPATIBLE.
12887         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
12888
12889         * target.h (struct gcc_target): Add field vector_types_compatible.
12890
12891         * c-typeck.c (comptypes): Take into account
12892         TARGET_VECTOR_TYPES_COMPATIBLE.
12893         (convert_for_assignment): Same.
12894
12895         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
12896         (rs6000_spe_vector_types_compatible): New.
12897         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
12898
12899 2003-02-19  Andreas Schwab  <schwab@suse.de>
12900
12901         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
12902         * toplev.c: Include langhooks-def.h.
12903
12904 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
12905
12906         * config/mips/mips.h (enum processor_type): Sort entries
12907         alphabetically.
12908         * config/mips/mips.md (define_attr cpu): Sync with processor_type
12909         enum values, including adding entries that were missing.
12910
12911 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
12912
12913         * sh.c (calc_live_regs): Also check GET_CODE when checking if
12914         initial value for PR_REG is still the PR_REG register.
12915
12916 2003-02-18  Jim Wilson  <wilson@redhat.com>
12917
12918         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
12919         instruction in output template.
12920         (bsp_value): Change output template from string to C code, add %,
12921         before actual instruction.
12922         (flushrs): Mark as not predicable.
12923
12924 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
12925
12926         * inclhack.def (netbsd_bogus_semicolon): New fix.
12927         * fixincl.x: Rebuilt.
12928         * tests/base/ctype.h: Update.
12929
12930 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12931
12932         * fold-const.c (negate_expr_p): New function to determine whether
12933         an expression can be negated cheaply.
12934         (fold) [MINUS_EXPR]: Use it to determine whether to transform
12935         -A - B into -B - A for floating point types.
12936
12937 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12938
12939         * sbitmap.c (sbitmap_resize): New function.
12940         * sbitmap.h (sbitmap_resize): Prototype here.
12941         * recog.c (split_all_insns): Use sbitmap_resize.
12942
12943 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12944
12945         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
12946         insn length.
12947         (extendqisi2): Likewise.
12948         (*extendhisi2_h8300): Likewise.
12949
12950 2003-02-18  Matt Austern <austern@apple.com>
12951
12952         * langhooks.h, langhooks-def.h: introduce new langhook,
12953         final_write_globals, with write_global_declarations as default.
12954         * toplev.c: Move invocation of wrapup_global_declarations from
12955         compile_file to new function, write_global_declarations.  Change
12956         compile_file to use final_write_globals hook.  Change
12957         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
12958         conditional.
12959
12960 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12961
12962         * pa.md: Correct and enhance comment.
12963
12964 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
12965
12966         * gcc.c (validate_switches): Don't scan past closing '}'.
12967
12968 2003-02-18  Ben Elliston  <bje@redhat.com>
12969
12970         PR c++/1607
12971         * doc/extend.texi (Function Attributes): Document the effect of
12972         the C++ "this" parameter on the counting of arguments for the
12973         "format" and "format_arg" attributes.
12974
12975 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
12976
12977         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
12978         (__ev_stdw): Same.
12979         (__ev_stdh): Same.
12980
12981 2003-02-17  Jan Hubicka  <jh@suse.cz>
12982
12983         * recog.c (split_all_insns):  Fix memory overflow.
12984
12985 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12986
12987         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
12988         (cmphi): Likewise.
12989         (*cmphi_h8300): Likewise.
12990         (*cmphi_h8300hs): Likewise.
12991         (cmpsi): Likewise.
12992         (7 peephole2): Likewise.
12993
12994 2003-02-16  Jan Hubicka  <jh@suse.cz>
12995
12996         * c-typeck.c (build_c_cast):  Fold constant variables into
12997         initial values.
12998
12999 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13000
13001         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
13002         (Binaries): Ditto for Sinix/Reliant Unix.
13003
13004 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
13005
13006         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
13007         not overlap the final result register.
13008
13009 2003-02-16 Arend Bayer <arend.bayer@web.de>
13010            Richard Henderson  <rth@redhat.com>
13011
13012         PR c/8068
13013         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
13014         rearrange mult arguments for less recursion.
13015         (extract_muldiv): New.  Prevent runaway recursion.
13016
13017 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
13018
13019         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
13020         MASK_ALIGN_DOUBLE.
13021
13022 2003-02-15  Roger Sayle  <roger@eyesopen.com>
13023
13024         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
13025         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
13026         (ext_80387_constants_table): Global table of 80387 special constants
13027         guarded by ext_80387_constants_init flag when not initialized.
13028         (init_ext_80387_constants): New function to initialize this table.
13029         (standard_80387_constant_p): Extend to recognize extra 80387
13030         constants, in XFmode, on processors where this is a win.
13031         (standard_80387_constant_opcode): New function to return the
13032         opcode associated with standard_80387_constant_p.
13033         (standard_80387_constant_rtx): New function to return the XFmode
13034         CONST_DOUBLE associated with standard_80387_constant_p.
13035         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
13036
13037         * config/i386/i386-protos.h (standard_80387_constant_opcode):
13038         Prototype here.
13039         (standard_80387_constant_rtx): Likewise.
13040
13041         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
13042         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
13043         *movtf_integer): Simplify using new standard_80387_constant_opcode.
13044
13045 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
13046
13047         * doc/invoke.texi (Optimize Options): Correct @option syntax.
13048
13049 2003-02-15  Richard Henderson  <rth@redhat.com>
13050
13051         * Makefile.in (cfglayout.o): Depend on TARGET_H.
13052         * cfglayout.c: Include target.h.
13053         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
13054         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
13055         * target.h (struct gcc_target): Add cannot_copy_insn_p.
13056
13057         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
13058         (TARGET_CANNOT_COPY_INSN_P): New.
13059         (override_options): Revert 2003-02-08 hack.
13060
13061 2003-02-15  Richard Henderson  <rth@redhat.com>
13062
13063         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
13064         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
13065
13066 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
13067
13068         * config/rs6000/rs6000.h (processor_type): Add PPC440.
13069         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
13070         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
13071         TARGET_SCHED_VARIABLE_ISSUE): Define.
13072         (rs6000_use_dfa_pipeline_interface): New function.
13073         (rs6000_multipass_dfa_lookahead): New Function.
13074         (rs6000_variable_issue): New function.
13075         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
13076         (rs6000_issue_rate): Add PPC440.
13077         * config/rs6000/rs6000.md (unspec list): Correct typo.
13078         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
13079         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
13080         cmp, delayed_cr, mfcr, mtcr.
13081         (automata_option): Set "ndfa".
13082         (extendMMNN2): Update attributes.
13083         (movcc_internal1): Discourage move to non-cr0.  Update
13084         attributes.
13085         (movMM_update): Update attributes.
13086         (cmpMM_internal): Update attributes.
13087         (sCC CR materialization): Update attributes.
13088         (branch patterns): Do not discourage non-cr0.
13089         (cr logical patterns): Prefer destructive register allocation.
13090         Update attributes.
13091         (movesi_from_cr): Update attribute.
13092         (mtcrf_operation): Update attribute.
13093         (mtcrfsi): Update attribute.
13094         * config/rs6000/40x.md: New file.
13095         * config/rs6000/603.md: New file.
13096         * config/rs6000/6xx.md: New file.
13097         * config/rs6000/7450.md: New file.
13098         * config/rs6000/7xx.md: New file.
13099         * config/rs6000/mpc.md: New file.
13100         * config/rs6000/power4.md: New file.
13101         * config/rs6000/rios1.md: New file.
13102         * config/rs6000/rios2.md: New file.
13103         * config/rs6000/rs64.md: New file.
13104         [Some DFA descriptions based on work by Michael Hayes]
13105
13106 2003-02-15  Richard Henderson  <rth@redhat.com>
13107
13108         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
13109         successors with multiple predecessors.
13110         (connect_traces): Try harder to copy traces of length 1.
13111
13112         * function.h (struct function): Add computed_goto_common_label,
13113         computed_goto_common_reg.
13114         * function.c (free_after_compilation): Zap them.
13115         * stmt.c (expand_computed_goto): Use them to produce one
13116         indirect branch per function.
13117
13118 2003-02-15  Richard Henderson  <rth@redhat.com>
13119
13120         * cfgcleanup.c: Include params.h.
13121         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
13122         too many outgoing edges from a block.
13123         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
13124         * params.def (max-crossjump-edges): New.
13125         * doc/invoke.texi: Document it.
13126
13127 2003-02-15  Richard Henderson  <rth@redhat.com>
13128
13129         * recog.c (split_all_insns): Include new blocks in life update;
13130         do a global life update.
13131
13132 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
13133
13134         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
13135         Update copyright.
13136         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
13137         -mno-cygwin case.
13138
13139 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13140
13141         PR optimization/7702
13142         * reload1.c (reload_cse_simplify_set): Honor
13143         CANNOT_CHANGE_MODE_CLASS.
13144
13145 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
13146
13147         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
13148         function.
13149         * config/mn10300/mn10300-protos.h: Declare it.
13150         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
13151         attribute cc of instructions that may use clr.
13152
13153 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
13154
13155         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
13156         (x - (x & y)) is found.
13157
13158 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13159
13160         * configure.in: Fix typo.
13161         * configure: Regenerate.
13162
13163 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
13164
13165         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
13166
13167 2003-02-13  Adam Nemet  <anemet@lnxw.com>
13168
13169         PR opt/2391
13170         * combine.c: Fix spelling in comment.
13171         (cached_nonzero_bits): New function.
13172         (cached_num_sign_bit_copies): New function.
13173         (nonzero_bits_with_known): New macro.
13174         (num_sign_bit_copies_with_known): New macro.
13175         (nonzero_bits1): Rename from nonzero_bits.  Add three new
13176         arguments.  Change calls from nonzero_bits to
13177         nonzero_bits_with_known.
13178         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
13179         three new arguments.  Change calls from num_sign_bit_copies to
13180         num_sign_bit_copies_with_known.
13181         (nonzero_bits): New macro.
13182         (num_sign_bit_copies): New macro.
13183         (update_table_tick): Don't traverse identical subexpression more
13184         than once.
13185         (get_last_value_validate): Likewise.
13186
13187 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
13188
13189         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
13190         * function.h (struct emit_status): Length of regno_pointer_align
13191         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
13192         not regno_pointer_align_length (i.e. length actually used, not
13193         length as allocated)
13194
13195         * config/i386/i386.c (struct stack_local_entry): New.
13196         (struct machine_function): Replace huge array with alist.
13197         (assign_386_stack_local): Change to match.
13198
13199 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
13200
13201         * inclhack.def (hpux_long_double): Tighten select and add bypass
13202         regexp.
13203         * fixincl.x: Rebuilt.
13204
13205 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
13206
13207         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
13208         edge and block ends with a jump insn it must be simple jump.
13209
13210 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
13211
13212         * Makefile.in (PREPROCESSOR_DEFINES): Add
13213         @TARGET_SYSTEM_ROOT_DEFINE@.
13214         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
13215         is specified or if building a cross compiler.
13216         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
13217         if the sysroot is under $exec_prefix.
13218         * configure: Regenerated.
13219         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
13220         defined.
13221         (struct default_include): Add add_sysroot field.
13222         (cpp_SYSROOT): Declare.
13223         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
13224         field.
13225         (cpp_SYSROOT): New variable.
13226         * cppinit.c (cpp_create_reader): Initialize
13227         CPP_OPTION (pfile, sysroot).
13228         (init_standard_includes): Handle add_sysroot.  Do not
13229         add unrelocated copies of relocated directories.
13230         (COMMAND_LINE_OPTIONS): Add -isysroot.
13231         (cpp_handle_option): Handle -isysroot.
13232         * cpplib.h (struct cpp_options): Add sysroot member.
13233         * gcc.c (The Specs Language): Update description of %I.
13234         (target_system_root_changed): New variable.
13235         (process_command): Conditionalize make_relative_prefix call
13236         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
13237         target_system_root_changed.
13238         (do_spec_1): Add -isysroot to %I.
13239         * doc/invoke.texi (Spec Files): Update description of %I.
13240         * doc/install.texi (--with-sysroot): Update comment about
13241         relocation.
13242
13243 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
13244
13245         * config/h8300/h8300.md (a peephole2): New.
13246
13247 2003-02-13  Robert Lipe <robertlipe@usa.net>
13248             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13249
13250         * doc/install.texi (Specific): Update three SCO-related URLs.
13251
13252 2003-02-13  Andreas Schwab  <schwab@suse.de>
13253
13254         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
13255         Parenthesize properly.
13256         (NPREDECESORS): Parenthesize properly.
13257
13258 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13259
13260         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
13261
13262 2003-02-12  Roger Sayle  <roger@eyesopen.com>
13263
13264         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
13265         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
13266
13267         * reg-stack.c (subst_stack_regs_pat): Add support for binary
13268         UNSPEC instructions (e.g. "fpatan").
13269
13270 2003-02-12  Mike Stump  <mrs@apple.com>
13271
13272         * varray.c (element_size): Remove.
13273         (uses_ggc): Remove.
13274         (element): Add.
13275         (varray_init): Use new interface.
13276         (varray_grow): Use new interface.
13277         (varray_clear): Use new interface.
13278
13279 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
13280
13281         * config/rs6000/spe.h: Add casts to the arguments of the following
13282         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
13283         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
13284         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
13285         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
13286         __ev_get_u16, __ev_get_s16.
13287
13288 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
13289
13290         * config/h8300/h8300.md (a peephole2): New.
13291
13292 2003-02-12  Jan Hubicka  <jh@suse.cz>
13293
13294         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
13295         (OBJS): Add callgraph.o
13296         (callgraph.o): New.
13297         * c-decl.c (expand_body_1): Break out from ...
13298         (expand_body): This one;  change calling convention
13299         (finish_function): Move some of expand_body logic here.
13300         (c_expand_deferred_function): Update call of expand_body
13301         (c_expand_stmt): Use c_expand_body_1.
13302         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
13303         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
13304         * c-tree.h (c_expand_body): Declare.
13305         * callgraph.c: New file.
13306         * flags.h (flag_unit_at_a_time): Declare.
13307         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
13308         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
13309         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
13310         * langhooks.h (struct lang_hooks_for_callgraph): New.
13311         (struct lang_hooks): Add callgraph field.
13312         * toplev.c (flag_unit_at_a_time): New.
13313         (lang_independent_options): Add flag_unit_at_a_time.
13314         (process_options): Disable unit-at-a-time mode for frontends not
13315         supporting callgraph.
13316         * tree-inline.c (typedef struct inline_data): Add "decl"
13317         (expand_call_inline): Update callgraph.
13318         (optimize_inline_calls): Set id.decl.
13319         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
13320         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
13321         cgraph_calls_p): Declare.
13322         * invoke.texi (-funit-at-a-time): Document
13323
13324 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
13325
13326         * config/rs6000/spe.h: Fix misc formatting.
13327         (__ev_create_ufix32_fs): Cast ev argument.
13328         (__ev_create_sfix32_fs): Same.
13329         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
13330         (__ev_get_ufix32_fs_internal): Same.
13331
13332 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
13333
13334         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
13335         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
13336
13337 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
13338
13339         * cpplib.c (do_include_common): Move warnings for
13340         #include_next and #import out to callers.  Use early-return
13341         instead of nested ifs.  Don't do check_eol here.
13342         (parse_include): Do check_eol here with the rest of the
13343         parsing stuff.
13344         (do_include_next, do_import): Now handle warnings.
13345
13346 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13347
13348         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
13349
13350 2003-02-12  Jan Hubicka  <jh@suse.cz>
13351
13352         * predict.c (estimate_probability):  Fix roundoff error.
13353
13354 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
13355
13356         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
13357         (two peephole2): New.
13358
13359 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
13360
13361         * config/h8300/h8300.md (several peephole2): Replace
13362         find_regno_note with peep2_reg_dead_p.
13363
13364 2003-02-11  Richard Henderson  <rth@redhat.com>
13365
13366         * gcse.c (lookup_set): Remove unused argument PAT.  Update
13367         both callers.
13368
13369 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
13370
13371         * diagnostic.c (real_abort): New.
13372         (diagnostic_report_diagnostic): Call real_abort on error.
13373         * diagnostic.h (diagnostic_abort_on_error): New.
13374         (struct diagnostic_context): Add abort_on_error field.
13375         * toplev.c (setup_core_dumping): New.
13376         (decode_d_option): Handle 'H' case.
13377         * doc/invoke.texi (Debugging Options): Document -dH.
13378
13379 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
13380
13381         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
13382         which refers to obsolete directories.
13383
13384 2003-02-11  Richard Henderson  <rth@redhat.com>
13385
13386         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
13387
13388 2002-10-21  Jan Hubicka  <jh@suse.cz>
13389
13390         * i386.c (contains_128bit_aligned_vector_p): New function.
13391         (ix86_function_arg_boundary): Properly align vector modes.
13392
13393 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
13394
13395         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
13396         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
13397         as a SET pattern.
13398
13399 2003-02-11  Roger Sayle  <roger@eyesopen.com>
13400
13401         * builtins.c:  Fix failure caused by commiting wrong patch.
13402
13403 2003-02-11  Dale Johannesen  <dalej@apple.com>
13404         * ra-build.c (compare_and_free_webs):  Relax checking.
13405         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
13406         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
13407
13408 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13409
13410         PR optimization/9651
13411         * rtlanal.c (may_trap_p): Handle FIX.
13412
13413 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
13414
13415         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
13416         * doc/invoke.texi: Extra alias.
13417
13418 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
13419
13420         * config/rs6000/host-darwin.c: Fix comment.
13421
13422 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
13423
13424         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
13425         predicate for mod result.
13426
13427 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13428
13429         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
13430         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
13431         * fixincl.x: Rebuilt.
13432         * tests/base/stdlib.h: Update.
13433         * tests/base/ctype.h: New file.
13434
13435 2003-02-11  Jan Hubicka  <jh@suse.cz>
13436
13437         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
13438
13439 2003-02-11  Richard Henderson  <rth@redhat.com>
13440
13441         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
13442         appropriated as globals.
13443         (ix86_expand_clrstr): Similarly.
13444         * config/i386/i386.md (cmpstrsi): Similarly.
13445
13446 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
13447
13448         * config/h8300/h8300.md (a peephole2): Add a case of 255.
13449
13450 2003-02-11  Roger Sayle  <roger@eyesopen.com>
13451
13452         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
13453         (pow_optab, atan2_optab): Define corresponding macros.
13454         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
13455         * genopinit.c (optabs): Implement pow_optab and atan2_optab
13456         using pow?f3 and atan2?f3 patterns.
13457         * builtins.c (expand_errno_check): New function to update errno
13458         if necessary, split out from expand_builtin_mathfn.
13459         (expand_builtin_mathfn): Use expand_errno_check.
13460         (expand_builtin_mathfn_2): New function to handle expanding binary
13461         math functions, reusing the code in expand_errno_check.
13462         (expand_builtin): Handle the pow and atan2 math built-ins,
13463         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
13464         expand_builtin_mathfn_2.
13465
13466         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
13467
13468 2003-02-11  Jan Hubicka  <jh@suse.cz>
13469
13470         * combine.c (combine_simplify_rtx): Fix folding of
13471         nested float_truncates.
13472
13473 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
13474
13475         * config/h8300/h8300.md (a peephole2): Fix a typo.
13476
13477 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
13478
13479         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
13480         register number.
13481
13482 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
13483
13484         * config/h8300/h8300-protos.h: Add a prototype for
13485         gtuleu_operator.
13486         * config/h8300/h8300.c (gtuleu_operator): New.
13487         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
13488         * config/h8300/h8300.md (a peephole2): New.
13489
13490 2003-02-11  Jan Hubicka  <jh@suse.cz>
13491
13492         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
13493
13494 2003-02-11  Jan Hubicka  <jh@suse.cz>
13495
13496         * predict.c (choose_function_section): Choose sections correctly.
13497
13498 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13499
13500         * reload1.c (first_label_num): New.
13501         (reload): Index offsets_known_at and offsets_at using difference of
13502         label number and first label number.  Don't use offset pointers.
13503         (set_label_offsets, set_initial_label_offsets): Likewise.
13504
13505 2003-02-10  Roger Sayle  <roger@eyesopen.com>
13506
13507         * mips-tfile.c (init_file): Add missing initializers in the
13508         "#ifdef __alpha" case.
13509         (file_offset, max_file_offset): Declare as unsigned long.
13510         (write_varray): Cast to "unsigned long" in comparisons against
13511         either file_offset or max_file_offset.
13512         (write_object): Likewise.
13513         (read_seek): Likewise.
13514         (copy_object): Likewise. Declare "ifd" as int to match its use
13515         in add_ext_symbol, and avoid signed/unsigned conditional warning.
13516
13517 2003-02-10  Nick Clifton  <nickc@redhat.com>
13518             Aldy Hernandez  <aldyh@redhat.com>
13519
13520         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
13521         override options which have been specified on the command line.
13522
13523 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13524
13525         * config/h8300/h8300.md (abssf2): New.
13526         (*abssf2_h8300): Likewise.
13527         (*abssf2_h8300hs): Likewise.
13528
13529 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
13530
13531         * tree.c (build_tree_list):  Fix parameter names in comment.
13532
13533 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
13534
13535         * config/rs6000/ppc64-fp.c: New file.
13536         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
13537
13538 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
13539
13540         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
13541         * bb-reorder.c (make_reorder_chain): Deleted.
13542         (make_reorder_chain_1): Deleted.
13543         (find_traces): New function.
13544         (rotate_loop): New function.
13545         (mark_bb_visited): New function.
13546         (find_traces_1_round): New function.
13547         (copy_bb): New function.
13548         (bb_to_key): New function.
13549         (better_edge_p): New function.
13550         (connect_traces): New function.
13551         (copy_bb_p): New function.
13552         (get_uncond_jump_length): New function.
13553         (reorder_basic_blocks): Use new functions (Software Trace Cache).
13554         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
13555         boundaries.
13556
13557 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
13558
13559         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
13560
13561 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
13562
13563         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
13564         (DECL_LIVE_RANGE_RTL): Remove.
13565
13566 2003-02-10  Nick Clifton  <nickc@redhat.com>
13567
13568         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
13569         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
13570         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
13571         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
13572         config/arm/freebsd.h, config/arm/linux-elf.h,
13573         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13574         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
13575         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
13576         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
13577         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
13578         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
13579         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
13580         and reformat as appropriate.
13581
13582 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13583
13584         * config/h8300/clzsi2.c: Remove.
13585         * config/h8300/ctzsi2.c: Likewise.
13586         * config/h8300/paritysi2.c: Likewise.
13587         * config/h8300/popcountsi2.c: Likewise.
13588         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
13589         ctzsi2, paritysi2, and popcountsi2.
13590
13591 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
13592             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
13593
13594         PR c/7741
13595         * c-decl.c (duplicate_decls): Discard the initializer of the
13596         new decl when the types are conflicting.
13597
13598 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
13599
13600         * Makefile.in (sreal.o): Added.
13601         (predict.o): Depends on sreal.h instead of real.h.
13602         * sreal.c: New file.
13603         * sreal.h: New file.
13604         * predict.c: Use sreal.c instead of real.c.
13605
13606 2003-02-10  Nick Clifton  <nickc@redhat.com>
13607
13608         * Contributed support for the Cirrus EP9312 "Maverick"
13609         floating point co-processor.  Written by Aldy Hernandez
13610         <aldyh@redhat.com>.
13611         (config/arm/arm.c): Add Cirrus support.
13612         (config/arm/arm.h): Likewise.
13613         (config/arm/aout.h): Likewise.
13614         (config/arm/arm.md): Likewise.
13615         (config/arm/arm-protos.h): Likewise.
13616         (config.gcc): Likewise.
13617         (doc/invoke.texi): Describe new -mcpu value and new
13618         -mcirrus-fix-invalid-insns switch,
13619         (cirrus.md): New file.
13620
13621 2003-02-10  Jan Hubicka  <jh@suse.cz>
13622
13623         * combine.c (combine_simplify_rtx): Simplify using
13624         (float_truncate (float x)) is (float x)
13625         (float_extend (float_extend x)) is (float_extend x).
13626
13627 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
13628
13629         * calls.c (try_to_integrate): Tidy stack_usage_map access.
13630         (emit_library_call_value_1): Likewise.  Formatting.
13631         (store_one_arg): Likewise.
13632
13633 2003-02-09  Nick Clifton  <nickc@redhat.com>
13634             Aldy Hernandez  <aldyh@redhat.com>
13635
13636         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
13637         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
13638         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
13639         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
13640         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
13641         docs.  Add range test for immediate value.
13642
13643 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
13644
13645         Rename spe_evxor to xorv2si3.
13646         (xorv4hi3): New.
13647         (xorv1di3): New.
13648
13649 2003-02-10  Glen Nakamura  <glen@imodulo.com>
13650
13651         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
13652         tag.
13653
13654 2003-02-10  Jan Hubicka  <jh@suse.cz>
13655
13656         * i386.c (vector_move_operand): New predicate.
13657         (ix86_expand_vector_move): Be happy about 0.
13658         * i386.h (PREDICATE_CODES): Add sse-move_operand.
13659         * i386.md (mov*_internal): Add 'C' alternative.
13660
13661 2003-02-09  Jan Hubicka  <jh@suse.cz>
13662
13663         * i386.md (floathi*): Deal with SSE.
13664
13665 2003-02-09  Jan Hubicka  <jh@suse.cz>
13666
13667         * simplify-rtx.c (simplify_unary_operation,
13668         simplify_binary_operation):  Deal with vector modes
13669         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
13670
13671 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
13672
13673         * toplev.c (rest_of_compilation): Recompute register usage after
13674         split_all_insns.
13675
13676 2003-02-09  Richard Henderson  <rth@redhat.com>
13677
13678         * libgcc-std.ver (__clztf2): New.
13679         (__ctztf2, __popcounttf2, __paritytf2): New.
13680         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
13681         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
13682         adjust code to match the different type sizes.
13683         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
13684         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
13685
13686         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
13687         TImode; select word_mode and twice that.
13688         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
13689         select the modes from float, double, and long double.
13690         (init_optabs): Remove duplicate initializations.
13691
13692 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
13693
13694         * doc/install.texi: Squeeze and streamline section on
13695         testing and regression checking.
13696
13697 2003-02-09  Jan Hubicka  <jh@suse.cz>
13698
13699         * i386.md (ahi?v*3): Set third operand type to TImode.
13700         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
13701
13702         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
13703         integer mode.
13704
13705         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
13706         Change code so they are arithmetic expressions now.
13707         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
13708         simplify_ternary_operation): Deal with VEC_* expressions.
13709
13710         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
13711
13712 2003-02-08  Jan Hubicka  <jh@suse.cz>
13713
13714         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
13715         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
13716         possibly got duplicated.
13717
13718 2003-02-08  Richard Henderson  <rth@redhat.com>
13719
13720         * config/alpha/alpha.c (override_options): Turn off explicit
13721         relocs until post-peep2 code duplication resolved.
13722
13723 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13724
13725         * optabs.c (expand_unop): Widen clz properly when clz is done
13726         via libcall.
13727
13728 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13729
13730         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
13731         * config/h8300/crti.asm: Likewise.
13732         * config/h8300/crtn.asm: Likewise.
13733         * config/h8300/ctzsi2.c: Likewise.
13734         * config/h8300/fixunssfsi.c: Likewise.
13735         * config/h8300/h8300-protos.h: Likewise.
13736         * config/h8300/h8300.c: Likewise.
13737         * config/h8300/h8300.h: Likewise.
13738         * config/h8300/h8300.md: Likewise.
13739         * config/h8300/paritysi2.c: Likewise.
13740         * config/h8300/popcountsi2.c: Likewise.
13741         * config/h8300/rtems.h: Likewise.
13742
13743 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13744
13745         * doc/invoke.texi: Documentation for my previous commit.
13746         * doc/passes.texi: Ditto.
13747
13748 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13749
13750         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
13751         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
13752         Declare.
13753         (DLTHE_FLAG_UPDATE_FREQ): New.
13754         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
13755         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
13756         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
13757         fix_bb_placement, fix_bb_placements, place_new_loop,
13758         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
13759         New static functions.
13760         (fix_loop_placement, can_duplicate_loop_p,
13761         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
13762         New functions.
13763
13764         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
13765         unswitch_loops): Declare.
13766         * loop-init.c: New file.
13767         * loop-unswitch.c: New file.
13768         * Makefile.in (loop-init.o, loop-unswitch.o): New.
13769         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
13770         * toplev.c (DFI_loop2): New dump.
13771         (flag_unswitch_loops): New.
13772         (lang_independent_options): Add it.
13773         (rest_of_compilation): Call new loop optimizer.
13774         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
13775
13776 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13777
13778         * config/h8300/clzsi2.c: New.
13779         * config/h8300/ctzsi2.c: Likewise.
13780         * config/h8300/paritysi2.c: Likewise.
13781         * config/h8300/popcountsi2.c: Likewise.
13782         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
13783
13784 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
13785
13786         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
13787         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
13788         (ctzsi2): New pattern.
13789         (ffssi2): Use clz instead of unspec.
13790         (clzdi2): Rename from cntlzd2.
13791         (ctzdi2): New pattern.
13792         (ffsdi2): Use clz instead of unspec.
13793
13794 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
13795
13796         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
13797         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
13798         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
13799         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
13800
13801 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
13802
13803         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
13804
13805 2003-02-07  Richard Henderson  <rth@redhat.com>
13806
13807         PR 9226
13808         * gcse.c (local_cprop_find_used_regs): New.
13809         (local_cprop_pass): Use it.
13810
13811 2003-02-07  Fred Fish  <fnf@intrinsity.com>
13812
13813         * mips-tfile.c (parse_def): Parenthesize assignments to fix
13814         precedence bugs.
13815
13816 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
13817
13818         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
13819
13820 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13821
13822         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
13823         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
13824         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
13825         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
13826         builtin functions (and their __builtin_* variants).
13827         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
13828         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
13829         when not optimizing.
13830
13831         * doc/extend.texi: Document new pow and atan2 builtins, and
13832         their float and long double variants.  Realphabetize builtins.
13833
13834 2003-02-07  Jan Hubicka  <jh@suse.cz>
13835
13836         * i386.md (sse2_nandv2di3): Fix.
13837
13838 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
13839
13840         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
13841         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
13842         definition.
13843         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
13844         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
13845
13846 2003-02-07  Jan Hubicka  <jh@suse.cz>
13847
13848         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
13849
13850 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
13851
13852         * cfg.c (dump_flow_info): Add back accidently deleted line.
13853
13854 2003-02-07  Andrey Petrov <petrov@netbsd.org>
13855
13856         * optabs.c (expand_float): Search wider integer modes first.
13857
13858 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
13859
13860         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
13861         based on preprocessor flag.
13862
13863 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13864             Richard Henderson  <rth@redhat.com>
13865
13866         * gcse.c (implicit_sets): New.
13867         (compute_hash_table_work): Include them in hash table.
13868         (find_implicit_sets, fis_get_condition): New.
13869         (one_cprop_pass): Allocate and free implicit_sets; call
13870         find_implicit_sets before building hash table.
13871
13872 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
13873
13874         * config/t-netbsd (USER_H): Revert previous change.
13875
13876 2003-02-07  Gabor Greif  <ggreif@lucent.com>
13877
13878         * doc/c-tree.texi (Namespaces): Fix typo.
13879
13880 2003-02-07  Jan Hubicka  <jh@suse.cz>
13881
13882         * regrename.c (do_replace, find_oldest_value_reg,
13883         copyprop_hardreg_forward_1): Update register attributes.
13884
13885 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
13886
13887         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
13888         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
13889         variables starting with underscore.
13890         (struct unit_usage): New structure.
13891         (unit_usages, cycle_alt_unit_usages): New global variables.
13892         (check_unit_distribution_in_reserv): Remove it.
13893         (store_alt_unit_usage): New function.
13894         (check_regexp_units_distribution): Rewrite it.
13895
13896 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13897
13898         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
13899         target_cpu_default.
13900         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
13901         if not MASK_NO_SPACE_REGS.
13902         (output_call): Adjust return pointer, don't load new space register
13903         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
13904         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
13905         TARGET_NO_SPACE_REGS is true.
13906         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
13907         conditions.
13908         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
13909         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
13910         true.  Use bve when TARGET_64BIT is true.
13911
13912 2003-02-06  Richard Henderson  <rth@redhat.com>
13913
13914         * combine.c (nonzero_bits): Fix double break.
13915
13916 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
13917             Richard Henderson <rth@redhat.com>
13918
13919         PR c/9530
13920         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
13921         from functions that return a float to functions that don't.
13922
13923 2003-02-06  Jan Hubicka  <jh@suse.cz>
13924
13925         * i386.c (x86_inter_unit_moves): New variable.
13926         (ix86_secondary_memory_needed): Fix 64bit case, honor
13927         TARGET_INTER_UNIT_MOVES
13928         * i386.h (x86_inter_unit_moves): Declare.
13929         (TARGET_INTER_UNIT_MOVES): New macro.
13930         * i386.md (movsi_1): Cleanup constraints; disable
13931         when not doing inter-unit moves.
13932         (movsi_1_nointernunit): New.
13933         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
13934         (movdi_1_rex64_nointerunit): New.
13935         (mivsf_1): disable when not doing inter-unit moves.
13936         (movsf_1_nointerunit): New.
13937
13938         * basic-block.h (inside_basic_block_p):  Declare.
13939         * cfgbuild.c (inside_basic_block_p): Make global.
13940         * haifa-sched.c (unlink_other_notes): Deal with NOT_INSN_BASIC_BLOCK.
13941         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
13942         update CFG.
13943         (fix_basic_block_boundaries, add_missing_bbs): New.
13944         (rank): Use profile.
13945         (scheudle_ebbs): Rely on CFG; update coments.
13946
13947 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
13948
13949         * Makefile.in (host_hook_obj): New.
13950         (OBJS): Add $(host_hook_obj).
13951         (host_default.o): New rule.
13952         * config.gcc (host_hook_obj): New, default to host-default.o.
13953         (powerpc-*-darwin*): Use host-darwin.o.
13954         (out_host_hook_obj): New.
13955         * configure: Regenerate.
13956         * configure.in: Print information about out_host_hook_obj, substitute
13957         into output files.
13958         * host-default.c: New file.
13959         * hosthooks.h: New file.
13960         * toplev.c (general_init): Call host_hooks.extra_signals.
13961         * config/rs6000/host-darwin.c: New file.
13962         * config/rs6000/x-darwin: New file.
13963         * doc/hostconfig.texi: Add documentation for new host hook.
13964         Rearrange existing documentation.
13965
13966 2003-02-05  Roger Sayle  <roger@eyesopen.com>
13967
13968         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
13969         with *targetm.delegitimize_address.
13970         (rtl_for_decl_location): Likewise.
13971         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
13972         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
13973
13974         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13975         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
13976         prototype.
13977         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
13978         i386_simplify_dwarf_addr.  Made static.  Prototyped.
13979         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
13980         i386_simplify_dwarf_addr to ix86_delegitimize_address.
13981         (ix86_find_base_term): Likewise.
13982         (maybe_get_pool_constant): Likewise.
13983
13984         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13985         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
13986         prototype.
13987         * config/s390/s390.c (s390_delegitimize_address): Renamed from
13988         s390_simplify_dwarf_addr.  Made static.  Prototyped.
13989         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
13990
13991 2003-02-05  Richard Henderson  <rth@redhat.com>
13992
13993         PR c/8602
13994         * integrate.c (output_inline_function): Reset input_filename
13995         and lineno from the decl before rest_of_compilation.
13996
13997 2003-02-05  Richard Henderson  <rth@redhat.com>
13998
13999         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
14000         (CTZ_DEFINED_VALUE_AT_ZERO): New.
14001         * doc/rtl.texi, doc/tm.texi: Document them.
14002
14003         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
14004         of the value at zero properly.
14005         * fold-const.c (tree_expr_nonnegative_p): Likewise.
14006         * simplify-rtx.c (simplify_unary_operation): Likewise.
14007
14008         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
14009         (CTZ_DEFINED_VALUE_AT_ZERO): New.
14010
14011         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
14012         (TARGET_EXPAND_BUILTIN): Remove.
14013         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
14014         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
14015         (enum arm_builtins): Remove.
14016         * config/arm/arm.md (UNSPEC_CLZ): Remove.
14017         (clzsi2): Rename from clz; use clz instead of unspec.
14018         (ctzsi2): New.
14019         * config/arm/arm-protos.h: Update.
14020
14021 2003-02-05  Jan Hubicka  <jh@suse.cz>
14022
14023         * i386-protos.h (x86_emit_floatuns):  Declare.
14024         * i386.c (x86_emit_floatuns): New global function.
14025         * i386.md (floatunssisf2, floatunsdisf2,
14026         floatunsdidf2):  New patterns.
14027
14028 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14029
14030         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
14031
14032 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
14033
14034         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
14035           config/ia64/linux.h
14036
14037 2003-02-05  Roger Sayle  <roger@eyesopen.com>
14038
14039         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
14040
14041 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
14042
14043         PR optimization/8555
14044         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
14045         instead of aborting.
14046
14047 2003-02-04  Richard Henderson  <rth@redhat.com>
14048
14049         * config/i386/i386.md (UNSPEC_BSF): Remove.
14050         (ffssi2): Split into cmove and no_cmove insns and splitters;
14051         lose pentium float trick for now.
14052         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
14053         (ctzsi2, clzsi2, bsr): New.
14054
14055 2003-02-04  Richard Henderson  <rth@redhat.com>
14056
14057         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
14058         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
14059         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
14060         (ffsdi2): Use popcount instead of unspec.
14061         (popcountdi2): Rename from *popcnt.
14062         (ctzdi2, clzdi2, getf_exp_tf): New.
14063
14064 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14065
14066         * genconfig.c (main): Generate CC0_P.
14067         * rtl.h (CC0_P): Remove.
14068
14069 2003-02-04  Richard Henderson  <rth@redhat.com>
14070
14071         * libgcc2.h, libgcc2.c (__ffsSI2): New.
14072         (__ffsDI2): Rename from __ffsdi2.
14073         * mklibgcc.in (lib2funcs): Add _ffssi2.
14074
14075 2003-02-04  Richard Henderson  <rth@redhat.com>
14076
14077         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
14078         rounds with a "bit table" lookup.
14079
14080 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14081
14082         * reload.c (find_reloads): Do not use the mode specified in the insn
14083         pattern as reload mode for address operands.  Do not generate optional
14084         reloads for operands where a mandatory reload was already pushed.
14085
14086 2003-02-04  Richard Henderson  <rth@redhat.com>
14087
14088         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
14089         builtins instead of inline assembly.
14090
14091 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
14092
14093         PR c/9376
14094         * libgcc2.c (__subvdi3): Fix typo.
14095
14096 2003-02-04  Jan Hubicka  <jh@suse.cz>
14097
14098         * i386.md (movti_rex64):  Fix constraint.
14099
14100 2003-02-04  Jan Hubicka  <jh@suse.cz>
14101
14102         * i386.md (vector push splitters):  Fix typo in resolving conflict.
14103
14104 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
14105
14106         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
14107
14108 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
14109
14110         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
14111         for recent libstdc++.  Remove formatting cruft.
14112
14113 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
14114
14115         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
14116         attribute even if input file name is absolute, but one of the
14117         includes is relative.
14118
14119 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
14120
14121         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
14122         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
14123         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
14124
14125 2003-02-03  Richard Henderson  <rth@redhat.com>
14126
14127         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
14128         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
14129         return type to "int".  Shuffle declarations and undef int trap.
14130         * libgcc2.h: Remove their declarations.
14131         * optabs.c (expand_unop): Force outmode to int for bitops.
14132
14133 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
14134
14135         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
14136         coprocessor registers before floating-point registers.
14137         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
14138         to account for a previously removed register.
14139         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
14140         Delete unused macros.
14141
14142 2003-02-03  Jan Hubicka  <jh@suse.cz>
14143
14144         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
14145         (mov*_internal): Fix predicates; require one of operands to not be
14146         memory.
14147         (SSE?MMX move expanders):  Fix predicates; force one of operands to
14148         register.
14149         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
14150         (movups/movupd/movdqu patterns): Force one of operands to not be
14151         memory.
14152
14153 2003-02-03  Roger Sayle  <roger@eyesopen.com>
14154
14155         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
14156         takes a single rtx and returns it unmodified.
14157         * hooks.h (hook_rtx_rtx_identity): Prototype here.
14158         * target.h (struct gcc_target): Add "delegitimize_address"
14159         field to target structure.
14160         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
14161         for delegitimize_address target using hook_rtx_rtx_identity.
14162         (TARGET_INITIALIZER): Initialize delegitimize_address field
14163         using TARGET_DELEGITIMIZE_ADDRESS macro.
14164         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
14165         extensions of constant pool references.  Use delegitimize_address
14166         to undo the obfuscation of "-fpic".
14167         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
14168
14169         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
14170         i386_simplify_dwarf_addr.
14171         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
14172         (maybe_get_pool_constant): Likewise.
14173
14174 2003-02-03  Jan Hubicka  <jh@suse.cz>
14175
14176         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
14177
14178 2003-02-03  Jan Hubicka  <jh@suse.cz>
14179
14180         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
14181
14182 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14183
14184         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
14185         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
14186
14187 2003-02-02  Andreas Schwab  <schwab@suse.de>
14188
14189         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
14190
14191 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
14192
14193         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
14194         (epilogue_insns): Likewise.
14195
14196 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14197
14198         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
14199
14200 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14201
14202         * pa-protos.h (attr_length_millicode_call): Remove second argument.
14203         (attr_length_indirect_call, attr_length_indirect_call,
14204         attr_length_save_restore_dltp): New prototypes.
14205         * pa.c (attr_length_millicode_call): Remove second argument.  Check
14206         INSN_ADDRESSES_SET_P in distance calculation.
14207         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
14208         INSN_ADDRESSES.
14209         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
14210         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
14211         Call attr_length_call directly.
14212         (attr_length_indirect_call, output_indirect_call,
14213         attr_length_save_restore_dltp): New functions.
14214         * pa.md (attr_length_millicode_call): Drop second argument from all
14215         patterns.
14216         (return_internal_pic): Delete.
14217         (return_external_pic): Remove use of PIC register and pic operand and
14218         flag checks.
14219         (epilogue): Use return_internal for both normal and pic code.
14220         (call, call_value): Emit new 32-bit pic patterns for symref and
14221         indirect calls.  Remove uses for arg pointer and pic register.
14222         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
14223         call_reg_pic_post_reload, call_val_symref_pic,
14224         call_val_symref_pic_post_reload, call_val_reg_pic,
14225         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
14226         Implement define_split and define_peephole2 patterns for pre reload
14227         patterns.
14228         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
14229         call_value_internal_reg_64bit): Shorten names.
14230         (all call patterns): Explicitly indicate registers used and clobbered.
14231         Use attr_length_indirect_call and attr_length_save_restore_dltp for
14232         attribute length calculation.  Move code generation for indirect calls
14233         to output_indirect_call.
14234         (sibcall, sibcall_value): Don't restore PIC register.
14235         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
14236         register retore.
14237
14238 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14239
14240         * doc/install.texi (Testing): Simplify and compress instructions
14241         concerning Dejagnu.
14242
14243 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14244
14245         * collect2.c (pexecute_pid): Rename to pid.
14246         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
14247         pid.
14248
14249 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
14250
14251         * doc/extend.texi (Function Attributes): Remove documentation
14252         for PowerPC Windows NT function attributes..
14253
14254 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
14255
14256         * dwarf2out.c (gen_type_die): Check for typedefs before calling
14257         for TYPE_MAIN_VARIANT.
14258
14259 2003-02-01  Richard Henderson  <rth@redhat.com>
14260
14261         * libgcc2.c: Include auto-host.h.
14262         (ATTRIBUTE_HIDDEN): New.
14263         (__clz_tab): Don't declare here for clz and ctz.
14264         (__clzsi2, __clzdi2): Use count_leading_zeros.
14265         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
14266         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
14267         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
14268         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
14269
14270 2003-02-01  Richard Henderson  <rth@redhat.com>
14271
14272         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
14273         to the conditional.
14274         (ashlsi3_1_zext splitter): Likewise.
14275
14276 2003-02-01  Richard Henderson  <rth@redhat.com>
14277
14278         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
14279         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
14280         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
14281         return type to Wtype.
14282
14283         * libgcc-std.ver (GCC_3.4): Fix inheritance.
14284
14285         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
14286         expander input constraint.
14287
14288 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
14289
14290         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
14291         OTI_parity.
14292         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
14293         * optabs.c (widen_clz, expand_parity): New.
14294         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
14295         for libcalls to clz, ctz, popcount, and parity.
14296         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
14297         parity_optab, and set up libfunc handlers.
14298         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
14299         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
14300         __popcount_tab): New.
14301         * libgcc2.h: Declare them.
14302         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
14303         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
14304         and parity_optab.
14305         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
14306         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
14307         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
14308         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
14309         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
14310         BUILT_IN_PARITYLL): New.
14311         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
14312         and add optab argument.
14313         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
14314         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
14315         * expr.c (expand_expr): Handle them.
14316         * fold-const.c (tree_expr_nonnegative_p): Likewise.
14317         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
14318         * reload1.c (eliminate_regs): Handle them.
14319         (elimination_effects): Likewise.
14320         * function.c (instantiate_virtual_regs_1): Likewise
14321         * genattrtab.c (check_attr_value): Likewise.
14322         * simplify-rtx.c (simplify_unary_operation): Likewise.
14323         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
14324         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
14325         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
14326         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
14327         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
14328         __builtin_arm_clz.
14329         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
14330         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
14331         * doc/extend.texi (Other Builtins): Add new builtins.
14332         * doc/md.texi (Standard Names): Add new patterns.
14333
14334 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
14335
14336         * reload.c: Revert 2003-01-31 change.
14337
14338 2003-02-01  Jan Hubicka  <jh@suse.cz>
14339
14340         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
14341
14342 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
14343
14344         * flags.h (flag_volatile): Remove declaration.
14345         (flag_volatile_global, flag_volatile_static): Likewise.
14346         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
14347         * toplev.c (flag_volatile): Remove definition.
14348         (flag_volatile_global, flag_volatile_static): Likewise.
14349         (f_options): Remove corresponding entries here.
14350         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
14351         or flag_volatile_static.
14352         * doc/invoke.texi: Remove documentation of -fvolatile,
14353         -fvolatile-global and -fvolatile-static.
14354
14355 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14356
14357         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
14358         updating of total_code_bytes from prologue to epilogue.
14359
14360 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14361
14362         * reload.c (find_reloads): Do not use the mode specified in the insn
14363         pattern as reload mode for address operands.  Do not generate optional
14364         reloads for operands where a mandatory reload was already pushed.
14365         Generate optional reloads only in the final pass though find_reloads.
14366         (have_replacement_p): New function.
14367
14368 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14369
14370         * doc/install.texi (Testing): Remove a reference to our obsolete
14371         /testresults web pages and strip redundant information concerning
14372         test results.
14373         (Binaries): Refer to Microsoft Windows instead of listing all
14374         possible variants.
14375
14376 2003-02-01  Jan Hubicka  <jh@suse.cz>
14377
14378         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
14379         RTL chain.
14380
14381         * combine.c (simplify_set): Reverse order of ragumetns to
14382         REG_CANNOT_CHANGE_MODE_P
14383         * df.c (df_def_record_1): Likewise.
14384         * recog.c (register_operand): Likewise.
14385         * simplify-rtx.c (simplify_subreg): Likewise.
14386         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
14387         CANNOT_CHANGE_MODE_CLASS.
14388         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
14389         Likewise.
14390         * reload.c (push_reload): Likewise.
14391         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14392         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14393         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14394         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
14395         * mips.c (mips_cannot_change_mode_class): Update.
14396         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14397         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14398         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14399         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
14400         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
14401         * sh.c (sh_cannot_change_mode_class): Update.
14402         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
14403         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
14404
14405 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
14406
14407         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
14408         change to LINK_COMMAND_SPEC in gcc.c.
14409
14410 2003-01-31  Jan Hubicka  <jh@suse.cz>
14411
14412         PR c/9506
14413         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
14414
14415 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14416
14417         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
14418         duplicated code.
14419
14420 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
14421
14422         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
14423         (BINFO_ELTS): New #define.
14424         * stor-layout.c (finalize_record_size): Don't set them.
14425         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
14426         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
14427         (BINFO_LANG_ELTS): New #define.
14428         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
14429         * java/class.c (make_class): Use BINFO_ELTS.
14430         (set_super_info): Likewse.
14431         (add_interface_do): Likewise.
14432         * objc/objc-act.c (start_class): Use BINFO_ELTS.
14433
14434 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
14435
14436         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
14437         (times): Don't ever declare if not HAVE_TIMES.
14438         (clock): Don't ever declare if not HAVE_CLOCK.
14439
14440 2003-01-30  Richard Henderson  <rth@redhat.com>
14441
14442         * flow.c (update_life_info): Zap life info after cleanup_cfg.
14443         (regno_uninitialized): Use correct live at function entry set.
14444         (regno_clobbered_at_setjmp): Likewise.
14445
14446         * expr.c (store_expr): Promote all MEM intermediates to regs.
14447
14448 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14449
14450         * config/arm/arm.c: Fix comment typos.
14451         * config/arm/arm.h: Likewise.
14452         * config/arm/netbsd-elf.h: Likewise.
14453         * config/arm/netbsd.h: Likewise.
14454
14455 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
14456
14457         * gengtype.c (struct walk_type_data): Add needs_cast_p.
14458         (walk_type): Set needs_cast_p in walk_type_data.
14459         (write_types_process_field): Supply casts when required to suppress
14460         warnings.
14461         (write_root): Cast gt_pch_n_S to suppress warning.
14462         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
14463         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
14464         when they might exist.
14465         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
14466         insn-conditions.o, and rs6000.o.
14467
14468 2003-01-30  Richard Henderson  <rth@redhat.com>
14469
14470         * ggc-page.c (G.context_depth_allocations): New.
14471         (G.context_depth_collections): New.
14472         (alloc_page): Set G.context_depth_allocations.
14473         (ggc_collect): Set G.context_depth_collections.
14474         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
14475         (ggc_pop_context): Early exit for no allocations or collections.
14476
14477 2003-01-30  Richard Henderson  <rth@redhat.com>
14478
14479         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
14480
14481 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
14482
14483         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
14484         size, the link register is always saved if any other register is
14485         saved.
14486
14487 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14488
14489         * config/h8300/h8300-protos.h: Update the prototype for
14490         compute_plussi_cc.
14491         (cpp_reader): Declare before it is used.
14492         * config/h8300/h8300.c (compute_plussi_cc): Change the return
14493         type to int.
14494         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
14495         see an unknown H8 variant.
14496
14497 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
14498
14499         PR target/9316
14500         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
14501         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
14502         * config/rs6000/t-rtems: New file. multilib variants to match OS.
14503         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
14504         rs6000/t-ppcgas so we get the desired multilibs.
14505
14506 2003-01-30  Nick Clifton  <nickc@redhat.com>
14507
14508         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
14509         when popping saved IP register off the stack.
14510
14511 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14512
14513         * config/rs6000/aix43.h: Fix comment typos.
14514         * config/rs6000/aix51.h: Likewise.
14515         * config/rs6000/aix52.h: Likewise.
14516         * config/rs6000/altivec.h: Likewise.
14517         * config/rs6000/rs6000.c: Likewise.
14518         * config/rs6000/rs6000.h: Likewise.
14519         * config/rs6000/rs6000.md: Likewise.
14520         * config/rs6000/spe.md: Likewise.
14521
14522 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
14523
14524         * c-common.c (builtin_define_float_constants): Define
14525         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
14526
14527 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14528
14529         * config/sh/lib1funcs.asm: Fix comment typos.
14530         * config/sh/linux.h: Likewise.
14531         * config/sh/sh.c: Likewise.
14532         * config/sh/sh.md: Likewise.
14533
14534 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
14535
14536         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
14537
14538 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
14539
14540         * config/fp-bit.h (__make_dp): Declare if TMODES.
14541
14542 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14543
14544         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
14545         general_operand_src and general_operand_dst.
14546
14547 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
14548
14549         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
14550         Return true for variable sized types.
14551         (rs6000_va_arg): Handle variable sized types passed by reference
14552         on non-SVR4 ABI.
14553
14554 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
14555
14556         * arm.c (arm_legtimize_address): New function.
14557         * arm-protos.h (arm_legtimize_address): Add prototype.
14558         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
14559         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
14560         do ... while (0)
14561
14562 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
14563
14564         PR bootstrap/9296
14565         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
14566         depended on it being defined until now.
14567
14568 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
14569
14570         PR target/9295
14571         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
14572         RTEMS code knows which C++ initialization style the toolset
14573         configuration is using.
14574
14575 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
14576
14577         PR bootstrap/9293
14578         * config/m68k/t-crtstuff: Replace spaces with tabs, add
14579          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
14580
14581 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
14582
14583         PR bootstrap/9292
14584         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
14585         RTEMS threads.
14586         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
14587
14588 2003-01-29  Nick Clifton  <nickc@redhat.com>
14589
14590         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
14591         not $(srcdir).
14592
14593 2003-01-29  Andrew Haley  <aph@redhat.com>
14594
14595         * tree-inline.c (walk_tree): Add CHAR_TYPE.
14596
14597 2003-01-29  Jan Hubicka  <jh@suse.cz>
14598
14599         * i386.md (subdi3_carry_rex64): Fix typo.
14600
14601 2003-01-28  Stan Shebs  <shebs@apple.com>
14602
14603         * coretypes.h (cpp_reader): Forward declare struct.
14604         * c-pragma.h (cpp_reader): Remove forward declaration.
14605         * hashtable.h (cpp_reader): Likewise.
14606         * scan.h (cpp_reader): Likewise.
14607         * tree.h (cpp_reader): Likewise.
14608         * config/darwin-protos.h (cpp_reader): Likewise.
14609         * config/arm/arm-protos.h (cpp_reader): Likewise.
14610         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
14611         struct cpp_reader in prototypes.
14612
14613 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
14614
14615         * doc/install.texi: Add documentation for installation into
14616         tooldirs and with DESTDIR.
14617
14618 2003-01-28  Richard Henderson  <rth@redhat.com>
14619
14620         * config.gcc (ia64*-*-aix*): Remove.
14621         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
14622         * config/ia64/unwind-aix.c: Remove file.
14623
14624 2003-01-28  Andreas Schwab  <schwab@suse.de>
14625
14626         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
14627         register.
14628         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
14629         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
14630         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
14631         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
14632         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
14633         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
14634         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
14635
14636 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
14637
14638         * combine.c (nonzero_bits): Fix check for negative divide operands.
14639
14640 2003-01-28  Richard Henderson  <rth@redhat.com>
14641
14642         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
14643         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
14644
14645 2003-01-28  Richard Henderson  <rth@redhat.com>
14646
14647         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
14648
14649         * config/cris/cris.c (cris_address_cost): Make static.
14650         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
14651         * config/cris/cris.h (ADDRESS_COST): Remove.
14652         * config/cris/cris-protos.h: Update.
14653
14654 2003-01-23  Mike Stump  <mrs@apple.com>
14655
14656         * regclass.c (init_reg_autoinc): New function.
14657         (regclass): Move initialization of forbidden_inc_dec_class from
14658         here...
14659         (init_regs): to here.  Avoids reinitialization for each function,
14660         saving compilation time.
14661
14662 2003-01-28  Jason Merrill  <jason@redhat.com>
14663
14664         * cpplib.h (struct cpp_options): Add warn_deprecated field.
14665         * cppinit.c (cpp_create_reader): Turn it on by default.
14666         * c-opts.c (c_common_decode_option): Set it.
14667         * cpplib.c (do_pragma_once): Only complain about #pragma once
14668         if warn_deprecated is set.
14669
14670 2003-01-28  Dale Johannesen  <dalej@apple.com>
14671
14672         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
14673         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
14674         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
14675
14676 2003-01-28  Richard Henderson  <rth@redhat.com>
14677
14678         * target.h (targetm.address_cost): New.
14679         * target-def.h (TARGET_ADDRESS_COST): New.
14680         (TARGET_RTX_COSTS): Uncomment.  Oops.
14681         * cse.c (address_cost): Use new target hook.
14682         (default_address_cost): New.
14683         * output.h (default_address_cost): Declare.
14684         * hooks.c (hook_int_rtx_0): New.
14685         * hooks.h (hook_int_rtx_0): Declare.
14686         * loop.c (combine_givs_p): Remove if 0 code.
14687         * system.h (ADDRESS_COST): Poison.
14688
14689         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
14690         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
14691         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
14692         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
14693         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
14694         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
14695         config/xtensa/xtensa.c, config/xtensa/xtensa.h
14696         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
14697         (ADDRESS_COST): Remove.
14698
14699         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
14700         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
14701         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
14702         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14703         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
14704         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
14705         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
14706         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
14707         config/mips/mips.c, config/mips/mips.h,
14708         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
14709         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
14710         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
14711         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
14712         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
14713         config/vax/vax.c, config/vax/vax.h
14714         (foo_address_cost): Make static.
14715         (TARGET_ADDRESS_COST): New.
14716         (ADDRESS_COST): Remove.
14717
14718         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
14719         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
14720         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
14721         config/stormy16/stormy16.h
14722         (ADDRESS_COST): Move code ...
14723         (foo_address_cost): ... here.
14724         (TARGET_ADDRESS_COST): New.
14725
14726         * config/m32r/m32r.c (m32r_address_cost): Remove.
14727         * config/m32r/m32r-protos.h: Update.
14728
14729         * config/mmix/mmix.c (mmix_address_cost): Remove.
14730         * config/mmix/mmix-protos.h: Update.
14731
14732         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
14733         mn10300_address_cost; move unsig allocation ...
14734         (mn10300_address_cost): ... here.
14735         (TARGET_ADDRESS_COST): New.
14736         * config/mn10300/mn10300-protos.h: Update.
14737         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
14738
14739         * doc/tm.texi: Update.
14740
14741 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
14742
14743         * haifa-sched.c (schedule_insn): Return necessary cycle advance
14744         after issuing the insn.
14745         (rank_for_schedule): Make a insn with /S the highest priority
14746         insn.
14747         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
14748         (choose_ready): Check SCHED_GROUP_P.
14749         (schedule_block): Advance cycle after issuing insn if it is
14750         necessary.  Don't reorder insns if there is an insn with /S.
14751         (set_priorities): Ignore schedule groups.
14752
14753         * sched-deps.c (remove_dependence, group_leader): Remove the
14754         functions.
14755         (add_dependence): Ignore schedule groups.
14756         (set_sched_group_p): Don't make copy of dependencies from previous
14757         insn of the schedule group.  Add anti-dependency to the previous
14758         insn of the schedule group.
14759         (compute_forward_dependences): Ignore schedule groups.
14760
14761         * sched-ebb.c (init_ready_list): Ignore schedule groups.
14762
14763         * sched-rgn.c (init_ready_list): Ditto.
14764         (can_schedule_ready_p): Ditto.
14765
14766 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
14767
14768         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
14769         register to another one.
14770
14771 2003-01-28  Richard Henderson  <rth@redhat.com>
14772
14773         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
14774
14775 2003-01-28  Roger Sayle  <roger@eyesopen.com>
14776
14777         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
14778
14779 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
14780
14781         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
14782         class contains a floating-point register, return the size of the
14783         mode in half words.
14784
14785 2003-01-28  Jan Hubicka  <jh@suse.cz>
14786
14787         * i386.c (ix86_carry_flag_operator):  New predicate.
14788         (fcmov_operator): Fix whitespace.
14789         (ix86_expand_carry_flag_compare):  Deal with floating point.
14790         (ix86_expand_int_movcc): Deal with fp; update insn expansion
14791         (ix86_expand_int_addcc): Likewise.
14792         (ix86_expand_strlensi_unroll_1): likewsie.
14793         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
14794         * i386.md (add?i_carry_rex64): Use new predicate.
14795         (sub?i3_carry_rex64): Likewise.
14796         (x86_mov?icc_0_m1*): Likewise.
14797
14798 2003-01-28  Andreas Schwab  <schwab@suse.de>
14799
14800         * cfgloopmanip.c (create_preheader): Initialize src to avoid
14801         warning.
14802
14803         * expmed.c (emit_store_flag): Fix cast to avoid sign
14804         comparison warning.
14805
14806         * combine.c (force_to_mode): Add cast to fix warning when
14807         STORE_FLAG_VALUE is negative.
14808
14809 2003-01-27  Richard Henderson  <rth@redhat.com>
14810
14811         * Makefile.in (cse.o): Depend on TARGET_H.
14812         * cse.c (rtx_cost): Use targetm.rtx_costs.
14813         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
14814         * doc/tm.texi: Update.
14815
14816         * target.h (targetm.rtx_costs): New.
14817         * target-def.h (TARGET_RTX_COSTS): New.
14818         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
14819         * hooks.h: Update.
14820
14821         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
14822         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
14823         * config/alpha/alpha.h (PROCESSOR_MAX): New.
14824         (CONST_COSTS, RTX_COSTS): Remove.
14825
14826         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
14827         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
14828         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
14829         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
14830         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
14831         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
14832         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
14833         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
14834         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
14835         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
14836         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
14837         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
14838         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
14839         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
14840         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
14841         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
14842         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
14843         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
14844         config/v850/v850.c, config/v850/v850.h,
14845         config/xtensa/xtensa.c, config/xtensa/xtensa.h
14846         (CONST_COSTS, RTX_COSTS): Move code ...
14847         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
14848
14849         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
14850         (arm_rtx_costs, TARGET_RTX_COSTS): New.
14851         * config/arm/arm-protos.h: Update.
14852         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
14853
14854         * config/avr/avr.h (CONST_COSTS): Move code ...
14855         * config/avr/avr.c (avr_rtx_costs): ... here.
14856         (default_rtx_costs): Make static.
14857         * config/avr/avr-protos.h: Update.
14858
14859         * config/h8300/h8300.c (const_costs): Make static.
14860         (h8300_and_costs, h8300_shift_costs): Likewise.
14861         * config/h8300/h8300-protos.h: Update.
14862
14863         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
14864         (CONST_COSTS): Move code ...
14865         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
14866         default_rtx_costs; update for signature change.
14867         * config/ip2k/ip2k-protos.h: Update.
14868
14869         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
14870         (CONST_COSTS): Move code ...
14871         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
14872         (TARGET_RTX_COSTS): New.
14873         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
14874         * config/m68hc11/m68hc11-protos.h: Update.
14875
14876         * config/m68k/m68k.c (const_int_cost): Make static.
14877         * config/m68k/m68k-protos.h: Update.
14878
14879         * config/mcore/mcore.c (mcore_const_costs): Make static.
14880         (mcore_and_cost, mcore_ior_cost): Likewise.
14881         * config/mcore/mcore-protos.h: Update.
14882
14883         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
14884         (mmix_rtx_cost_recalculated): Remove.
14885         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
14886         * config/mmix/mmix-protos.h: Update.
14887
14888         * config/sh/sh.c (shiftcosts): Make static.
14889         (addsubcosts, andcosts, multcosts): Likewise.
14890         * config/sh/sh-protos.h: Update.
14891
14892         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
14893         (sparc_rtx_costs): Make static; update for change in signature.
14894         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
14895         * config/sparc/sparc-protos.h: Update.
14896
14897         * config/v850/v850.c (const_costs): Make static.
14898         * config/v850/v850-protos.h: Update.
14899
14900         * config/vax/vax.h (RTX_COSTS): Remove.
14901         (CONST_COSTS): Move code ...
14902         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
14903         from vax_rtx_cost.
14904         (vax_rtx_costs, TARGET_RTX_COSTS): New.
14905
14906 2003-01-27  Richard Henderson  <rth@redhat.com>
14907
14908         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
14909         * config/vax/vax-protos.h: Update.  Really.
14910
14911 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
14912
14913         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
14914         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
14915         zero if no hardware floating point.
14916         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
14917         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
14918         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
14919         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
14920         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
14921         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
14922         even FP registers on N32 and N64.
14923         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
14924         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
14925         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
14926         even-register-like alignment to 128-bit arguments.
14927         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
14928         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
14929         on N32 or N64.
14930         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
14931         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
14932         (TPBIT): Set to tp-bit.c.
14933         (tp-bit.c): Create out of fp-bit.c.
14934
14935 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14936
14937         * c-parse.in: Remove '%expect 32' directive in objc mode.
14938
14939 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
14940
14941         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
14942         (LIBGCOV): New variable.
14943         (libgcc.mk): Add LIBGCOV.
14944         (LIBGCC_DEPS): Add libgcov.c.
14945         (libgcov.a): New target.
14946         (clean): Remove libgcov.a.
14947         (install-libgcc): Do libgcov too.
14948         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
14949         with libgcov.a.
14950         * libgcc2.c (L_gcov): Move into ...
14951         * libgcov.c: ... here. New file.
14952         * mklibgcc.in: Add libgcov rules.
14953         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
14954
14955         * doc/invoke.texi (profile-arcs, test-coverage): Update and
14956         clarify.
14957
14958         * profile.c (index_counts_file): Remove duplicate check for open file.
14959
14960 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
14961
14962         * gcc/doc/invoke.texi (Optimization Options): Group together
14963         optional and experimental flags.  Move trapv and bounds-check
14964         out of this section.  Group floating point flags together.
14965         (Code Gen Options): Move trapv and bounds-check to here.
14966
14967 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
14968
14969         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
14970
14971 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
14972
14973         PR optimization/9090
14974         * function.c (purge_addressof_1): After pushing an addressed register
14975         onto the stack, simplify the result.
14976
14977 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14978
14979         * doc/extend.texi: Fix typo.
14980
14981 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14982
14983         * doc/cppopts.texi: Fix typo.
14984         * doc/objc.texi: Likewise.
14985         * doc/passes.texi: Likewise.
14986
14987 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
14988
14989         * real.c (ibm_extended_format): Add 53 to minimum exponent.
14990         (encode_ibm_extended): Adjust.
14991
14992 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
14993
14994         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
14995         timevar_id enumerations.
14996
14997 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14998
14999         * combine.c: Fix formatting.
15000
15001 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15002
15003         * doc/gccint.texi: Update the copyright.
15004
15005 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15006
15007         * doc/cpp.texi: Fix typos.
15008         * doc/extend.texi: Likewise.
15009         * doc/gty.texi: Likewise.
15010         * doc/install.texi: Likewise.
15011         * doc/passes.texi: Likewise.
15012         * doc/rtl.texi: Likewise.
15013         * doc/tm.texi: Likewise.
15014
15015 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15016
15017         * config/ia64/fde-glibc.c: Fix comment typos.
15018         * config/ia64/hpux.h: Likewise.
15019         * config/ia64/ia64.c: Likewise.
15020         * config/ia64/ia64.h: Likewise.
15021         * config/ia64/unwind-ia64.c: Likewise.
15022
15023 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15024
15025         * config/i386/i386-modes.def: Fix comment typos.
15026         * config/i386/i386.c: Likewise.
15027         * config/i386/i386.md: Likewise.
15028
15029 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
15030
15031         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
15032         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
15033         ASM_FINISH_DECLARE_OBJECT before defining it.
15034         * toplev.c (rest_of_decl_compilation):  Don't define
15035         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
15036         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
15037         parameters for DWARF2 targets because they _are_ used.
15038
15039 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
15040
15041         * fp-bit.h: Define macros for TFmode floating-point constants
15042         in IBM-extended TFmode types.
15043         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
15044         widths.
15045         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
15046         TFmode type.
15047
15048         * config/fp-bit.h: Define macros for TFmode floating-point
15049         constants in IEEE quad TFmode type.  Declare functions according
15050         to L_ macros.
15051         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
15052         (TFtype, TItype, UTItype): Define if TMODES is defined.
15053         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
15054         (F_T_BITOFF, D_T_BITOFF): Define.
15055         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
15056         guaranteed to be wide enough.
15057         * config/fp-bit.c: Check for L_ macros for tf functions.
15058         (__thenan_tf): New.
15059         (nan): Adjust.
15060         (pack_d, unpack_d): Support IEEE 854 quad type.
15061         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
15062         from FRAC_NBITS, FRAC_BITS and NGARDS.
15063         (usi_to_float): Cast constants to be shifted to fractype
15064         instead of assuming long long is wide enough.
15065         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
15066
15067 2003-01-26  Andreas Jaeger  <aj@suse.de>
15068
15069         * df.c: Remove prototype of unused function df_regno_rtl_debug.
15070
15071 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
15072
15073         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
15074         (DBBIT_FUNCS): Added _df_to_tf.
15075         (TPBIT_FUNCS): New.
15076         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
15077         (LIBGCC_DEPS): Added TPBIT.
15078         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
15079
15080         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
15081         been able to move the result to target.
15082
15083         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
15084         for the appropriate mode.
15085
15086         * calls.c (emit_library_call_value_1): Handle return values
15087         in a PARALLEL.
15088
15089         * rtl.c (get_mode_alignment): Moved to...
15090         * stor-layout.c: ... here.
15091
15092         * print-rtl.c (print_rtx): Don't print MEM details in
15093         GENERATOR_FILEs.
15094
15095 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
15096
15097         * df.h: Update comments, tidy formatting.
15098         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
15099         REVERSE, UNION, INTERSECTION.  All uses updated.
15100         (OLD_DF_INTERFACE): Remove.
15101         (struct insn_info): Remove commented out insn field.
15102         * df.c: Update comments, tidy formatting.
15103         (df_def_table_realloc): Remove.
15104
15105
15106 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
15107
15108         * calls.c (save_fixed_argument_area): Tidy.
15109         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
15110         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
15111         call chain loop at 1 if !try_tail_call.  Formatting.
15112         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
15113         Use save_fixed_argument_area and restore_fixed_argument_area.
15114
15115 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15116
15117         * df.c (df_uses_record): Handle CC0.
15118
15119 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
15120
15121         * reload.c (maybe_memory_address_p): New function.
15122         (find_reloads_address): Use it instead of memory_address_p.
15123
15124 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15125
15126         * final.c (shorten_branches): Align the address of code label
15127         when computing initial lengths and addresses.
15128
15129 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15130
15131         * config/m68hc11/m68hc11.md: Fix a comment typo.
15132
15133 2003-01-25  Andreas Jaeger  <aj@suse.de>
15134
15135         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
15136         TARGET_MACHO.
15137
15138 2003-01-25  Roger Sayle  <roger@eyesopen.com>
15139
15140         * gcse.c (bypass_last_basic_block): New global variable.
15141         (bypass_block):  Use redirect_edge_and_branch_force to redirect
15142         fall-through edges.  Use bypass_last_basic_block to determine
15143         which blocks have valid PRE information.
15144         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
15145
15146 2003-01-25  Jan Hubicka  <jh@suse.cz>
15147
15148         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
15149
15150 2003-01-25  Jan Hubicka  <jh@suse.cz>
15151                               Eric Botcazou <ebotcazou@libertysurf.fr>
15152         PR opt/8492
15153         * gcse.c (one_cprop_pass): Delete unreachable blocks.
15154
15155 2003-01-25  Richard Henderson  <rth@redhat.com>
15156
15157         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
15158         from ia64_aix_select_rtx_section.
15159         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
15160         instead of saving and restoring flag_pic.
15161         (ia64_rwreloc_unique_section): Similarly.
15162         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
15163         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
15164         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
15165         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
15166
15167 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15168
15169         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
15170         comment.
15171
15172 2003-01-25  Richard Henderson  <rth@redhat.com>
15173
15174         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
15175
15176 2003-01-25  Kelley Cook <kelleycook@comcast.net>
15177
15178         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
15179
15180 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
15181
15182         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
15183         type for bitmaps.  Use unsigned long.
15184         (nBITMAP_WORD_BITS): New macro.
15185         (BITMAP_WORD_BITS): New macro.
15186         (rest of file): Use it.
15187         * bitmap.c: Use it.
15188
15189 2003-01-25  Richard Henderson  <rth@redhat.com>
15190
15191         2002-02-19  Robert Lipe  <robertlipe@usa.net>
15192         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
15193
15194 2003-01-25  Roger Sayle  <roger@eyesopen.com>
15195
15196         * builtins.c (purge_builtin_constant_p): Scan insn stream
15197         sequentially rather than by basic block.
15198         * function.c (purge_addressof): Simplify test with INSN_P.
15199
15200 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15201
15202         * combine.c (simplify_comparison, case AND): Remove a redundant test.
15203
15204 2003-01-25  Roger Sayle  <roger@eyesopen.com>
15205
15206         * function.h (struct function): New field calls_constant_p.
15207         (current_function_calls_constant_p): New macro for above.
15208         * function.c (prepare_function_start): Initialize calls_eh_return
15209         and calls_constant_p.
15210         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
15211         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
15212         when the current_function_calls_constant_p.
15213         * integrate.c (expand_inline_function): Set calls_constant_p if
15214         the function being inlined has calls_constant_p set.
15215
15216 2003-01-25  Roger Sayle  <roger@eyesopen.com>
15217
15218         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
15219         optimizing, even if flag_gcse is true.
15220         * toplev.c (rest_of_compilation): purge_builtin_constant_p
15221         only needs to be called when "optimize > 0 && flag_gcse".
15222
15223 2003-01-25  Roger Sayle  <roger@eyesopen.com>
15224
15225         * stmt.c (emit_case_bit_tests): New routine to implement suitable
15226         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
15227         (case_bit_test_cmp): New comparison function for "qsort" to order
15228         case_bit_tests by decreasing number of destination nodes.
15229         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
15230         (expand_end_case_type): Use emit_case_bit_tests to implement
15231         suitable switch statments.
15232         (CASE_USE_BIT_TESTS): New target macro to disable the above.
15233         * Makefile.in (stmt.o): Add dependency on optab.h.
15234         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
15235
15236 2003-01-23  Andreas Schwab  <schwab@suse.de>
15237
15238         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
15239         __do_global_ctors_aux hidden global and don't put it in
15240         .init_array.
15241         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
15242         instead so that it comes first.
15243
15244 2003-01-25  Jan Hubicka  <jh@suse.cz>
15245
15246         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
15247         subreg is read/modify.
15248
15249 2003-01-25  Jan Hubicka  <jh@suse.cz>
15250
15251         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
15252         do libcall for large blocks.
15253         * i386.md (comi patterns): Set type to ssecomi.
15254         (sse2_unpck?pd): Fix mode of vec_select.
15255
15256         * cse.c: Include except.h
15257         (cse_set_around_loop):  Do not create new basic blocks.
15258         * Makefile.in (cse.o): Add dependnecy on except.h
15259
15260 2003-01-25  Jan Hubicka  <jh@suse.cz>
15261
15262         * builtins.c (fold_trunc_transparent_mathfn): New function.
15263         (fold_builtin): Use it.
15264         * convert.c (convert_to_real): Re-enable code to convert
15265         math functions; add support for floor familly functions.
15266
15267 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15268
15269         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
15270         dependencies on coretypes.h and $(TM_H).
15271
15272 2003-01-25  Jan Hubicka  <jh@suse.cz>
15273
15274         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
15275
15276 2003-01-24  Stuart Hastings  <stuart@apple.com>
15277
15278         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
15279
15280 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15281
15282         * config/c4x/c4x.md (UNSPEC_BU): New constants.
15283         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
15284         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
15285         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
15286         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
15287         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
15288         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
15289         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
15290
15291 2003-01-24  Jan Hubicka  <jh@suse.cz>
15292
15293         * emit-rtl.c (reg_attrs_htab): New static variable.
15294         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
15295         functions.
15296         (reg_rtx): Do not maintain regno_decl.
15297         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
15298         set_mem_attrs_from_reg): New global function.
15299         (init_emit): Do not initialize regno_decl.
15300         (init_emit_once): initialize reg_attrs_htab.
15301         * final.c (alter_subreg): Do not replace REG by SUBREG.
15302         (gen_mem_expr_from_op): Improve output.
15303         (output_asm_operands): Likewise.
15304         * function.c (assign_params): Do not set REGNO_DECL.
15305         * function.h (struct function): Kill regno_decl.
15306         (REGNO_DECL): Kill.
15307         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
15308         * print_rtl.c (print_rtx): Output REG information.
15309         * regclass.c (reg_scan_mark_refs): Update attrs.
15310         * reload1.c (alter_reg): Likewise.
15311         * simplify_rtx.c (simplify_subreg): Likewise.
15312         * stmt.c (expand_decl): Likewise.
15313         * rtl.def (REG): Add new field.
15314         * rtl.h (struct reg_attrs): New.
15315         (rtunion_def): At rtreg.
15316         (X0MEMATTR): Add checking.
15317         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
15318         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
15319         Declare.
15320         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
15321
15322 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
15323
15324         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
15325         (xtensa_emit_call, print_operand): Fix printf format strings
15326         to avoid compile warnings.
15327         (xtensa_function_prologue, xtensa_function_epilogue): Change type
15328         of "size" argument to HOST_WIDE_INT to fix compile warnings.
15329         * config/xtensa/xtensa-protos.h
15330         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
15331
15332 2003-01-24  Jan Hubicka  <jh@suse.cz>
15333
15334         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
15335         (implicit_built_in_decls): New global array.
15336         (mathfn_built_in): New global function.
15337         (fold_trunc_transparent_mathfn): New static function
15338         (expand_builtin_strstr, expand_bultin_strchr,
15339         expand_builtin_strpbrk, expand_builtin_strcpy,
15340         expand_builtin_strncpy, expand_bultin_strcmp,
15341         expand_bultin_strncat, expand_builtin_fputs): Use
15342         implicint_built_in_decls.
15343         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
15344         * builtins.def: Fix comments.
15345         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
15346         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
15347         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
15348         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
15349         (DEF_C99_C90RES_BULTIN): New.
15350         (*f, *l builtins): Update.
15351         * c-common.c (DEF_BUILTIN): Initialize implicit array.
15352         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
15353         * convert.c (strip_float_extensions): New global function.
15354         * tree.h (DEF_BUILTIN): Accept 10 arguments.
15355         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
15356         Declare.
15357         * java/builtins.c (define_builtin): Handle implicit.
15358         (DEF_BUILTIN): Update.
15359         * tm.texi (TARGET_C99_FUNCTIONS): Document.
15360         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
15361         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
15362         when using glibc2.
15363
15364 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
15365
15366         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
15367         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
15368         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
15369         * config/xtensa/crti.asm: New file.
15370         * config/xtensa/crtn.asm: New file.
15371         * config/xtensa/t-elf: New file.
15372         * config/xtensa/t-linux: New file.
15373         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
15374         Move various CFLAGS settings to new t-elf file.
15375
15376 2003-01-24  Richard Henderson  <rth@redhat.com>
15377
15378         PR optimization/4382
15379         * tree-inline.c (find_builtin_longjmp_call_1): New.
15380         (find_builtin_longjmp_call): New.
15381         (inlinable_function_p): Use it.
15382
15383 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15384
15385         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
15386         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
15387         * config/i386/i386.c (function_arg_pass_by_reference): New.
15388         (ix86_va_arg): Support arguments passed by reference.
15389
15390 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15391
15392         * cfgloopanal.c: New file.
15393         * cfgloopmanip.c: New file.
15394         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
15395         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
15396         cfglayout.o): Add dependency on cfgloop.h.
15397         (cfgloop.o): Add flags.h dependency.
15398         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
15399         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
15400         (struct loop, struct loops, flow_loops_find, flow_loops_update,
15401         flow_loops_free, flow_loops_dump, flow_loop_dump,
15402         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
15403         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
15404         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
15405         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
15406         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
15407         find_common_loop, verify_loop_structure): Declarations moved to ...
15408         * cfgloop.h: New file.
15409         * bb-reorder.c (reorder_basic_blocks): Modified.
15410         * cfglayout.c: Include cfgloop.h.
15411         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
15412         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
15413         (break_superblocks): New static function.
15414         (cfg_layout_finalize): Use it.
15415         (cfg_layout_split_block): New function.
15416         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
15417         fields.
15418         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
15419         changed.
15420         (cfg_layout_split_block): Declare.
15421         * cfgloop.c: Include cfgloop.h and flags.h.
15422         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
15423         get_loop_body): Avoid signed versus unsigned comparison warnings.
15424         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
15425         loop_latch_edge): Modified.
15426         (verify_loop_structure): Modified to use flags stored in loop structure;
15427         check irreducible loops.
15428         (cancel_loop, cancel_loop_tree): New functions.
15429         (estimate_probability): Use loop analysis code for predictions.
15430         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
15431         warnings.
15432         * doloop.c: Include cfgloop.h.
15433         * loop.c: Include cfgloop.h.
15434         * predict.c: Include cfgloop.h.
15435         * toplev.c: Include cfgloop.h.
15436         * unroll.c: Include cfgloop.h.
15437         * tracer.c (tracer): Modified.
15438
15439 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15440
15441         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
15442
15443 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
15444
15445         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
15446         * configure: Regenerate.
15447
15448         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
15449         (tls_symbolic_reference_mentioned_p): Add prototype.
15450         (s390_tls_get_offset): Add prototype.
15451         (emit_pic_move): Remove prototype, replace by ...
15452         (emit_symbolic_move): .. this new prototype.
15453
15454         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
15455         (tls_model_chars): New global variable.
15456         (s390_encode_section_info): Encode TLS model.
15457         Use targetm.binds_local_p to check for local symbols.
15458         (s390_strip_name_encoding): New function.
15459         (TARGET_STRIP_NAME_ENCODING): Define.
15460
15461         (get_thread_pointer): New function.
15462         (legitimize_tls_address): New function.
15463         (legitimize_address): Call it.
15464         (emit_pic_move): Remove, replace by ...
15465         (emit_symbolic_move): ... this new function.
15466
15467         (larl_operand): Handle TLS operands.
15468         (legitimate_constant_p): Likewise.
15469         (s390_decompose_address): Likewise.
15470         (s390_cannot_force_const_mem): New function.
15471         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
15472
15473         (s390_output_symbolic_const): Handle TLS unspecs.
15474         (print_operand): New code 'J'.
15475         (machine_function): Add struct member 'some_ld_name'.
15476         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
15477
15478         (enum s390_builtin): New type.
15479         (code_for_builtin_64, code_for_builtin_31): New global variables.
15480         (s390_init_builtins, s390_expand_builtin): New functions.
15481         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
15482
15483         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
15484         (ASM_OUTPUT_LABELREF): Define.
15485         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
15486
15487         * config/s390/s390.md: Define TLS UNSPEC constants.
15488         ("movdi", "movsi"): Handle TLS operands.
15489         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
15490         ("*tls_load_64", "*tls_load_31"): New insns.
15491         ("call_value_tls", "call_value_tls_exp"): New expanders.
15492         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
15493         "bas_tls_64", "bas_tls_31"): New insns.
15494
15495 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
15496
15497         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
15498         spe ABI is configured, if requested.
15499
15500 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15501
15502         * doc/passes.texi: Fix typo.
15503
15504 2003-01-24  Andreas Schwab  <schwab@suse.de>
15505
15506         * stor-layout.c (excess_unit_span): Only define if used.
15507
15508 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
15509
15510         * gcc/doc/invoke.texi (Optimization Options): List -O levels
15511         for each optimization flag.
15512
15513 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15514
15515         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
15516
15517 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15518
15519         * doc/bugreport.texi: Use @command instead of @code for commands.
15520         * doc/collect2.texi: Likewise.
15521         * doc/headerdirs.texi: Likewise.
15522         * doc/invoke.texi: Likewise.
15523         * doc/standards.texi: Likewise.
15524         * doc/tm.texi: Likewise.
15525         * doc/trouble.texi: Likewise.
15526
15527 2003-01-24  Nick Clifton  <nickc@redhat.com>
15528
15529         * config/arm/arm.c (use_return_insn): Do not use a single return
15530         instruction for interrupt handelrs which have to create a stack
15531         frame.
15532         (arm_expand_prologue): Do not pre-bias the return address of
15533         interrupt handlers which create a stack frame.
15534
15535 2003-01-24  Nick Clifton  <nickc@redhat.com>
15536
15537         * Add sh2e support:
15538
15539         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
15540
15541                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
15542                 med_cbranches.  Fix logic in short_cbranches.
15543
15544         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
15545
15546                 * config/sh/sh.md (delay for cbranch): Don't annul delay
15547                 slots on SH2e.
15548                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
15549                 cbranch with unfilled delay slot on SH2e.
15550                 (output_branch): Fill with a nop the delay slot of a
15551                 branch that required a delay slot but didn't get one.
15552
15553         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
15554
15555                 * doc/invoke.texi (SH options): Document -m2e.
15556                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
15557                 * config/sh/lib1funcs.asm: Likewise.
15558                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
15559                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
15560                 not __sh1__.
15561                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
15562                 SH2E up.
15563                 (SH3E_BIT): Renamed to...
15564                 (SH_E_BIT): ... this.  Replace all uses.
15565                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
15566                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
15567                 (TARGET_SWITCHES): Added 2e.
15568                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
15569                 (processor_type): Added PROCESSOR_SH2E.
15570                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
15571                 TARGET_SH2E, except in sqrtsf2_i.
15572                 (attribute cpu): Added sh2e.
15573                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
15574                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
15575                 * config.gcc: Add sh2e target support.
15576
15577 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
15578
15579         Rename -W to -Wextra.
15580         * c-decl.c:  Update comments.
15581         * c-typeck.c:  Likewise.
15582         * flags.h:  Likewise.
15583         * function.c:  Likewise.
15584         * stmt.c:  Likewise.
15585         * toplev.c:  Update comments.
15586         (W_options):  Add 'extra'.
15587         (display_help):  Remove '-W'.
15588         (decode_W_option):  Special warn_uninitialized treatment in the case
15589         of -Wextra.
15590         * doc/invoke.texi:  Update with new entries.
15591
15592 2003-01-23  Richard Henderson  <rth@redhat.com>
15593
15594         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
15595         in no-else-block case.  Add commentary.
15596
15597 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15598
15599         * configure.in: Revert last change.
15600
15601 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15602
15603         * configure.in: Don't include ansidecl.h in tconfig.h.
15604         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED): Define if IN_LIBGCC2.
15605         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
15606         ATTRIBUTE_UNUSED.
15607
15608         * configure: Regenerate.
15609
15610 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15611
15612         PR java/6748
15613         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
15614         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
15615         kernels.
15616
15617 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15618
15619         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
15620
15621 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
15622
15623         * genattrtab.c (write_attr_get): Mark 'insn' paramter
15624         as ATTRIBUTE_UNUSED.
15625
15626 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
15627
15628         * arm.c (thumb_base_register_rtx_p): New function.
15629         (thumb_index_register_rtx_p): New function.
15630         (thumb_legitimate_address_p): New function.
15631         (thumb_legitimate_offset_p): New function.
15632         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
15633         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
15634         definitions.
15635         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
15636         (THUMB_LEGITIMATE_OFFSET): Delte.
15637         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
15638         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
15639         (thumb_legitimate_offset_p): Likewise.
15640
15641 2003-01-23  Andreas Schwab  <schwab@suse.de>
15642
15643         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
15644
15645 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15646
15647         * fixinc/Makefile.in (FL_LIST): Revert last change.
15648
15649 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15650
15651         PR other/7341
15652         * invoke.texi (ftest-coverage): Fix broken cross-reference.
15653         Change @code to @command for gcov command.
15654
15655         * gcc.texi: Adjust title of gcov section.
15656         Adjust copyright.
15657         * gcov.texi: Likewise.
15658
15659 2003-01-22  Roger Sayle  <roger@eyesopen.com>
15660
15661         PR optimization/8423
15662         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
15663         its argument is constant, or 0 if !flag_gcse.
15664         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
15665         if it's argument is constant.
15666         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
15667         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
15668         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
15669         * builtins.c (purge_builtin_constant_p): New function to force
15670         instantiation of any remaining CONSTANT_P_RTX nodes.
15671         * rtl.h (purge_builtin_constant_p): Prototype here.
15672         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
15673         pass after GCSE and before loop.
15674         (flag_gcse): No longer static.
15675         * flags.h (flag_gcse): Prototype here.
15676
15677 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15678
15679         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
15680         introduced by last change.
15681
15682 2003-01-22  Andreas Schwab  <schwab@suse.de>
15683
15684         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
15685
15686 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15687
15688         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
15689         request a scratch reg on H8S when the shift count is 8.
15690
15691 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15692
15693         * config/s390/s390-protos.h (preferred_la_operand_p):
15694         Remove second parameter.
15695         * config/s390/s390.c (preferred_la_operand_p): Likewise.
15696         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
15697         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
15698         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
15699         Add peepholes to transform ADD to LOAD ADDRESS.
15700
15701 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
15702
15703         * arm.c (arm_address_register_rtx_p): New function.
15704         (arm_legitimate_address_p): New function.
15705         (arm_legitimate_index_p): New function.
15706         (legitimize_pic_address): Use arm_legitimate_index_p.
15707         * arm-protos.h (arm_legtimate_address_p): Add prototype.
15708         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
15709         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
15710
15711 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
15712
15713         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
15714         * config/s390/2064.md (define_bypass): Correct 'Load' and
15715         'Load-address' bypass values.
15716
15717 2003-01-22  Andreas Schwab  <schwab@suse.de>
15718
15719         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
15720
15721 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15722
15723         * genautomata.c (output_internal_insn_latency_func,
15724         output_print_reservation_func): Short circuit when there is no
15725         automaton to generate code for.
15726
15727 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15728
15729         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
15730         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
15731
15732 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
15733
15734         * config/rs6000/rs6000.md: Remove warning.
15735         (builtin_setjmp_receiver): Likewise.
15736         * config/darwin.c (update_stubs): Slightly improve terrible hack
15737         with identifiers.  Add comment pointing out problems with it.
15738         (update_non_lazy_ptrs): Likewise.
15739
15740 2003-01-21  Richard Henderson  <rth@redhat.com>
15741
15742         * dwarf2out.c (lookup_filename): Fix printf format warning.
15743         * system.h (fread_unlocked, fwrite_unlocked): Undef.
15744
15745         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
15746         (fixincl.o-warn, gnu-regex.o-warn): New.
15747         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
15748         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
15749         * fixinc/fixincl.c (process): Fix printf format warning.
15750
15751 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15752
15753         * dwarf2out (output_file_names): Don't crash if called
15754         with empty file_table.
15755
15756 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15757
15758         * genautomata.c (output_internal_insn_latency_func): Add
15759         missing break statement to generated code.
15760
15761 2003-01-21  Roger Sayle  <roger@eyesopen.com>
15762
15763         * stmt.c (same_case_target_p): New function to determine whether
15764         two case labels branch to the same target.  Split out from...
15765         (group_case_nodes): ... here.  Use same_case_target_p instead.
15766         (strip_default_case_nodes): Remove explicit case nodes
15767         that branch to the default destination.
15768         (expand_end_case_type): Call strip_default_case_nodes after
15769         group_case_nodes, to simplify the case-list before we count it.
15770         Only generate table_label RTX when actually needed.  Try to share
15771         thiscase->exit_label and thiscase->data.case_stmt.default_label
15772         when a switch has no explicit default case.  Simplify test for
15773         constant index.
15774
15775 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15776
15777         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
15778         \t.
15779         (*negsf2_h8300hs): Likewise.
15780         (*addsi3_lshiftrt_16_zexthi): Likewise.
15781         (*iorhi3_lshiftrt_8): Likewise.
15782
15783 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15784
15785         * dwarf2out.c (fde_table_in_use): Mark GTY.
15786         (dwarf2out_cfi_label_num): New variable, marked GTY.
15787         (dwarf2out_cfi_label): Use it instead of static label_num.
15788         * emit-rtl.c (label_num): Mark GTY.
15789
15790 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15791
15792         * config/h8300/h8300.c (output_plussi): Support H8/300.
15793         (compute_plussi_length): Likewise.
15794         (compute_plussi_cc): Likewise.
15795         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
15796         output assembly instructions.
15797
15798 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15799
15800         * calls.c (fix_unsafe_tree): Prototype.
15801
15802         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
15803         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
15804         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
15805         c-parse.o-warn): Add -Wno-error.
15806         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
15807
15808         * configure.in (--enable-werror): Add new flag.
15809         * doc/install.texi (--enable-werror): Document.
15810         * configure: Regenerate.
15811
15812         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
15813
15814 2003-01-21  Andreas Schwab  <schwab@suse.de>
15815
15816         * genautomata.c (output_internal_insn_latency_func): Fix missing
15817         close paren in output.
15818
15819 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15820
15821         * genautomata.c: Space savings in generated code:
15822         (output_dfa_insn_code_func): Split out the table-enlargement
15823         path to an out-of-line static function, dfa_insn_code_enlarge.
15824         (output_internal_insn_latency_func): Use a lookup table for the
15825         default latencies.
15826         (output_print_reservation_func): Use a lookup table for the
15827         strings.
15828
15829 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
15830
15831         PR opt/7507
15832         * calls.c (fix_unsafe_tree): Split out from ...
15833         (expand_call): ... here.  Use it on the function address too.
15834
15835 2003-01-20  Richard Henderson  <rth@redhat.com>
15836
15837         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
15838
15839 2003-01-20  Richard Henderson  <rth@redhat.com>
15840
15841         PR opt/7154
15842         * stmt.c (expand_asm_operands): Validize memory operands.
15843
15844 2003-01-20  Richard Henderson  <rth@redhat.com>
15845
15846         PR opt/8848
15847         * ifcvt.c (noce_process_if_block): Correct arguments to
15848         modified_between_p for no-else-block case.
15849
15850 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15851
15852         * config/h8300/h8300.c (const_costs): Remove a warning.
15853         (output_plussi): Likewise.
15854         (compute_plussi_length): Likewise.
15855         (compute_plussi_cc): Likewise.
15856
15857 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15858
15859         * config/h8300/h8300.md (addsi_h8300): Remove the last
15860         alternative.
15861
15862 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15863
15864         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
15865
15866 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15867
15868         * system.h (__NO_STRING_INLINES): Define.
15869
15870 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15871
15872         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
15873         is not a scalar int mode.
15874
15875 2003-01-20  Roger Sayle  <roger@eyesopen.com>
15876
15877         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
15878         insn's notes following a substitution inside a libcall.
15879
15880 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
15881
15882         * configure.in: Check for system-provided 'uchar' type.
15883         * configure, config.in: Regenerate.
15884         * cpphash.h: Only typedef 'uchar' if the system doesn't.
15885
15886 2003-01-20  Richard Henderson  <rth@redhat.com>
15887
15888         * expr.h (MUST_PASS_IN_STACK): Move implementation...
15889         * calls.c (default_must_pass_in_stack): ... here.
15890
15891 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
15892
15893         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
15894
15895         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
15896
15897         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
15898         Wrap up definition of `insn_alts'.
15899
15900         * genattrtab.c (main): Wrap up `insn_alts'.
15901
15902 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15903
15904         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
15905         prototyping.
15906         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
15907
15908         * config.in, configure: Regenerate.
15909
15910 2003-01-20  Nick Clifton  <nickc@redhat.com>
15911
15912         * config/arm/arm.md (sibcall_epilogue): Add an
15913         UNSPEC_PROLOGUE_USE to prevent the link register from being
15914         considered dead.
15915
15916 2003-01-20  Jan Hubicka  <jh@suse.cz>
15917
15918         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
15919
15920 2003-01-20  Andreas Schwab  <schwab@suse.de>
15921
15922         * system.h: Don't declare strsignal if the decl test hasn't been
15923         run yet.
15924
15925 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15926
15927         * config/h8300/h8300.c (notice_update_cc): Don't assume that
15928         recog_data.operands[0] is always associated with cc0.
15929
15930 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
15931
15932         * collect2.c (ldgetname): Expand declaration to prototype.
15933         * read-rtl.c (atoll): Add prototype.
15934         * system.h (strsignal): Also declare if no declaration found.
15935
15936 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
15937
15938         * config.gcc (mips64*-*-linux*): Added.
15939         * config/mips/linux64.h, config/mips/t-linux64: New file.
15940         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
15941         * config/mips/mips.c (override_options): Use it.
15942         * config/mips/mips.h (TARGET_SWITCHES): Added...
15943         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
15944         * Makefile.in (SPECS): New.
15945         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
15946         * gcc.c (process_command): Move self-spec processing past spec
15947         file loading.
15948         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
15949         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
15950         CRTSTUFF_T_CFLAGS.
15951         (SPECS): Document.
15952         * doc/invoke.texi (-mabi-fake-default): Document.
15953
15954 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
15955
15956         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
15957         z_reg, z_reg_qi): Declare static and GTY().
15958         (da_reg): Remove.
15959         (create_regs_rtx): Don't create da_reg.
15960         ("gt-m68hc11.h"): Include for GTY roots.
15961         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
15962         and GTY() here.
15963         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
15964         (m68hc11_soft_tmp_reg): Likewise.
15965         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
15966
15967 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15968
15969         * basic-block.h: Fix comment formatting.
15970         * calls.c: Likewise.
15971         * combine.c: Likewise.
15972         * convert.c: Likewise.
15973         * gcov.c: Likewise.
15974         * haifa-sched.c: Likewise.
15975         * libgcc2.c: Likewise.
15976         * loop.c: Likewise.
15977         * profile.c: Likewise.
15978         * system.h: Likewise.
15979
15980 2003-01-18  Roger Sayle  <roger@eyesopen.com>
15981
15982         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
15983
15984 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15985
15986         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
15987
15988 2003-01-17  Dale Johannesen  <dalej@apple.com>
15989
15990         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
15991           (*floatunssidf2_internal):  Ditto.
15992
15993 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15994
15995         * alias.c: Fix comment typos.
15996         * basic-block.h: Likewise.
15997         * c-common.c: Likewise.
15998         * c-common.h: Likewise.
15999         * c-decl.c: Likewise.
16000         * c-opts.c: Likewise.
16001         * c-pragma.c: Likewise.
16002         * c-pretty-print.h: Likewise.
16003         * cfg.c: Likewise.
16004         * cfganal.c: Likewise.
16005         * cfgbuild.c: Likewise.
16006         * cfgcleanup.c: Likewise.
16007         * cfglayout.c: Likewise.
16008         * cfgrtl.c: Likewise.
16009         * convert.c: Likewise.
16010         * cpphash.h: Likewise.
16011         * cpplex.c: Likewise.
16012         * cpplib.h: Likewise.
16013         * df.h: Likewise.
16014         * diagnostic.c: Likewise.
16015         * diagnostic.h: Likewise.
16016         * dwarf2.h: Likewise.
16017
16018 2003-01-17  Stan Shebs  <shebs@apple.com>
16019
16020         * config/darwin-protos.h: Forward-declare struct cpp_reader.
16021
16022 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
16023
16024         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
16025         mistake in last checkin.
16026
16027 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
16028
16029         * et-forest.c: Fix comment typos.
16030         * et-forest.h: Likewise.
16031         * except.c: Likewise.
16032         * expr.c: Likewise.
16033         * flags.h: Likewise.
16034         * flow.c: Likewise.
16035         * gcc.c: Likewise.
16036         * gcse.c: Likewise.
16037         * genattrtab.c: Likewise.
16038         * genautomata.c: Likewise.
16039         * gengtype.c: Likewise.
16040         * genrecog.c: Likewise.
16041         * global.c: Likewise.
16042         * gthr-rtems.h: Likewise.
16043
16044 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16045
16046         * i386.c (x86_function_profiler): Fix format specifier.
16047
16048 2003-01-17  Richard Henderson  <rth@redhat.com>
16049
16050         * gengtype.c (walk_type): Allow paramN_is.
16051
16052 2003-01-17  Nick Clifton  <nickc@redhat.com>
16053
16054         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
16055
16056 2003-01-16  Richard Henderson  <rth@redhat.com>
16057
16058         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
16059
16060 2003-01-16  Richard Henderson  <rth@redhat.com>
16061
16062         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
16063         (alpha_next_sequence_number): Likewise.
16064         (alpha_this_literal_sequence_number): Likewise.
16065         (alpha_this_gpdisp_sequence_number): Likewise.
16066         (struct alpha_funcs, alpha_funcs_num): Likewise.
16067         (struct alpha_links): Fix branch merge error.
16068         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
16069
16070 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
16071
16072         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
16073         R. Ghazi.
16074
16075 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16076
16077         * ifcvt.c: Fix comment typos.
16078         * lcm.c: Likewise.
16079         * libgcc2.c: Likewise.
16080         * local-alloc.c: Likewise.
16081         * loop.c: Likewise.
16082         * predict.c: Likewise.
16083         * ra-build.c: Likewise.
16084         * ra.c: Likewise.
16085         * ra-colorize.c: Likewise.
16086         * ra.h: Likewise.
16087         * ra-rewrite.c: Likewise.
16088         * regmove.c: Likewise.
16089         * reload.h: Likewise.
16090         * rtlanal.c: Likewise.
16091         * toplev.c: Likewise.
16092         * tree.h: Likewise.
16093         * unwind-dw2-fde-glibc.c: Likewise.
16094         * vmsdbgout.c: Likewise.
16095
16096 2003-01-16  Richard Henderson  <rth@redhat.com>
16097
16098         * dwarf2out.c (struct file_table): Remove.
16099         (FILE_TABLE_INCREMENT): Remove.
16100         (file_table): Make a varray; mark for GC.  Update all users.
16101         (file_table_last_lookup_index): Extract from struct file_table.
16102         (output_file_names): Fix unsigned compare warnings.
16103         (add_name_attribute): Remove inline marker.
16104         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
16105         (lookup_filename): Don't manage size of file_table.
16106         (init_file_table): Allocate file_table with GC.
16107         (dwarf2out_init): Don't record main_input_filename here.
16108         (dwarf2out_finish): Do it here instead.
16109
16110 2003-01-16  Bruce Korb  <bkorb@gnu.org>
16111
16112         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
16113
16114 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
16115
16116         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
16117         instead of rotldi3_mextr.
16118
16119 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
16120
16121         * haifa-sched.c (move_insn): Restore moving all schedule group.
16122         (set_priorities): Restore taking SCHED_GROUP_P into account.
16123
16124         * sched-deps.c (add_dependence): Restore processing the last group
16125         insn.
16126         (remove_dependence, group_leader): Restore the functions.
16127         (set_sched_group_p): Restore adding dependencies from previous insn
16128         in the group.
16129         (compute_forward_dependences): Restore usage of group_leader.
16130
16131         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
16132         account.
16133
16134         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
16135         account.
16136         (can_schedule_ready_p): Ditto.
16137         (add_branch_dependences): Restore skipping over the group insns.
16138
16139 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
16140
16141         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
16142         68HC12 pre/post inc/dec side effects.
16143
16144 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
16145
16146         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
16147
16148 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
16149
16150         * sh.md (mshflo_w_x): Fix description of operation.
16151
16152 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
16153
16154         * config/rs6000/rs6000.h: Mention Altivec registers in
16155         commentary.  Fix typo.
16156
16157 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
16158
16159         * config/rs6000/rs6000.md (movti_string): Remove clobber.
16160         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
16161         generate PARALLEL with clobber for TARGET_POWER.
16162
16163 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16164
16165         * ra-colorize.c (colorize_one_web): Initialize variable.
16166         * regmove.c (fixup_match_1): Likewise.
16167         * reload1.c (reload_as_needed): Likewise.
16168         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
16169
16170 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16171
16172         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
16173
16174 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16175
16176         * dbxout.c (lastfile, cwd): Fix `unused' warning.
16177         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
16178         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
16179         is_main_source, file_table, decl_die_table_in_use,
16180         abbrev_die_table_in_use, line_info_table_in_use,
16181         separate_line_info_table_in_use, pubname_table_in_use,
16182         arange_table_in_use, ranges_table_in_use,
16183         current_function_has_inlines): Likewise.
16184         * flow.c (life_analysis): Likewise.
16185         * genemit.c (gen_insn): Likewise.
16186         * protoize.c (cplus_suffix): Likewise.
16187
16188         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
16189         * arm.h (ROUND_UP_WORD): Likewise.
16190
16191         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
16192         warning.
16193         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
16194         init_emit_once): Likewise.
16195         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
16196         Likewise.
16197         * function.c (assign_stack_temp_for_type): Likewise.
16198         * loop.c (loop_invariant_p): Likewise.
16199         * recog.c (push_operand): Likewise.
16200         * regclass.c (init_reg_sets_1): Likewise.
16201         * reload.c (update_auto_inc_notes): Likewise.
16202         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
16203         * stmt.c (expand_asm_operands): Likewise.
16204         * stor-layout.c (start_record_layout): Likewise.
16205
16206 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
16207
16208         * config/c4x/c4x.md (epilogue): Correct last patch.
16209
16210 2003-01-15  Richard Henderson  <rth@redhat.com>
16211
16212         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
16213         also check that GP is being used.
16214         (alpha_find_lo_sum_using_gp): New.
16215         (alpha_does_function_need_gp): Use get_attr_usegp.
16216         * config/alpha/alpha-protos.h: Update.
16217         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
16218         as needed.
16219
16220 2003-01-15  Roger Sayle  <roger@eyesopen.com>
16221
16222         * gcse.c (one_cprop_pass): Change function arguments to take both
16223         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
16224         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
16225         (bypass_jumps): New function to perform separate jump bypassing pass.
16226         * rtl.h (bypass_jumps): Add function prototype.
16227         * timevar.def (TV_BYPASS): New timing variable.
16228         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
16229         (dump_file): New entry for the bypass RTL dump file.
16230         (rest_of_compilation): Insert new jump bypassing optimization
16231         pass after loop.
16232         * doc/passes.texi: Document new pass.
16233
16234 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16235
16236         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
16237         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
16238         * pa.h (TARGET_SOM_SDEF): Define.
16239         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
16240
16241 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
16242
16243         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
16244         allocate 4-bytes of locals on 68HC11.
16245         (expand_epilogue): Likewise.
16246         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
16247
16248 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
16249
16250         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
16251         and -mshort-double to the assembler to specify the ABI.
16252         (LINK_SPEC): Likewise.
16253         (CPP_SPEC): Pass HCS12 specific define.
16254         (MASK_M68S12): New define.
16255         (TARGET_M68S12): Likewise.
16256         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
16257         (TARGET_VERSION): Update.
16258         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
16259         (LINK_SPEC): Update.
16260         (ASM_SPEC): Update.
16261         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
16262         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
16263
16264 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
16265
16266         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
16267         the return code.
16268
16269 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
16270
16271         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
16272         flag before setting it.
16273
16274 2003-01-15  Roger Sayle  <roger@eyesopen.com>
16275
16276         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
16277         when loop condition is known true, i.e.  "while (1) { ... }".
16278         (genrtl_for_stmt): Similarly for "for" statements.
16279
16280 2003-01-15  Roger Sayle  <roger@eyesopen.com>
16281
16282         * real.c (real_sqrt): Return a bool result indicating whether
16283         a floating point exception or trap should be raised.
16284         * real.h (real_sqrt): Update function prototype.
16285         * builtins.c (fold_builtin): Only fold non-trapping square
16286         roots unless we're ignoring errno and trapping math.
16287
16288 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
16289
16290         * expr.h (emit_conditional_add): Add PARAMS to declaration.
16291         * gengtype-lex.l (malloc, realloc): Move defines after include of
16292         system.h.  Remove duplicate include of system.h.
16293
16294 2003-01-15  Roger Sayle  <roger@eyesopen.com>
16295
16296         PR middle-end/9009
16297         * optabs.c (expand_unop):  When manipulating the FP sign bit
16298         using integer operations, account for targets with different
16299         integer and FP word orders.
16300         (expand_abs): Likewise.
16301
16302 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
16303
16304         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
16305         file extension in section name.
16306
16307 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
16308
16309         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
16310         constant offset.
16311
16312 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
16313
16314         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
16315         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
16316         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
16317         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
16318
16319 2003-01-15  Jan Hubicka  <jh@suse.cz>
16320
16321         PR f/9258
16322         * global.c (struct allocno): Add no_stack_reg.
16323         (global_conflicts): Set no_stack_reg.
16324         (find_reg): Use it.
16325
16326         * convert.c (convert_to_real): Fold - and abs only when profitable.
16327         * fold-const.c (fold): Fold truncates in - and abs.
16328
16329 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
16330
16331         Segher Boessenkool  <segher@koffie.nl>
16332
16333         * predict.c (real_inv_br_prob_base): New variable.
16334         (propagate_freq): Use multiply by reciprocal instead of
16335         division.  Don't divide by 1.0 at all.
16336         (estimate_bb_frequencies): Similar.
16337
16338 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
16339
16340         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
16341         * configure: Rebuilt.
16342
16343 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
16344
16345         * config/s390/s390.c (s390_safe_attr_type): New function.
16346         (s390_use_dfa_pipeline_interface): New function, return true for z900.
16347         (s390_issue_rate): New function.
16348         (s390_agen_dep_p): New function.
16349         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
16350         (s390_adjust_cost): Return 'cost' if new DFA is used.
16351         (s390_adjust_priority): Delete function.
16352         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
16353         * config/s390/s390.md (atype attribute): Attribute 'atype' default
16354         determined by 'op_type'.
16355         (type attribute): Added more type attributes.
16356         * config/s390/2064.md: New DFA description for z900 pipeline.
16357
16358 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
16359
16360         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
16361         forced to memory.  Fixes PR bootstrap/9036.
16362
16363         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
16364         to set $gp before the call.
16365
16366 2003-01-14  Richard Henderson  <rth@redhat.com>
16367
16368         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
16369         for force_const_mem.
16370
16371 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16372
16373         * genattr.c (main): Rearrange output to avoid prototype warning.
16374         * genautomata.c (transform_3): Fix ambiguous-else warning.
16375         * local-alloc.c (requires_inout): Add parentheses around
16376         assignment used as truth-value.
16377         * timevar.c: Move system includes above local includes.  Include
16378         toplev.h
16379         * Makefile.in (timevar.o): Depend on toplev.h.
16380
16381 2003-01-14  Denis Chertykov  <denisc@overta.ru>
16382
16383         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
16384         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
16385
16386         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
16387         attributes.
16388         (TARGET_ATTRIBUTE_TABLE): New macro.
16389         (valid_machine_type_attribute): Remove.
16390         (valid_machine_decl_attribute): Remove.
16391         (ip2k_handle_progmem_attribute): New function.
16392         (ip2k_handle_fndecl_attribute): New function.
16393
16394 2003-01-10  Andrew Haley  <aph@redhat.com>
16395
16396         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
16397         registers to be in correct order.  Add rip.
16398
16399 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16400
16401         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
16402         (*iorsi3_and_lshiftrt_9_sb): Likewise.
16403
16404 2003-01-14  Jan Hubicka  <jh@suse.cz>
16405
16406         * convert.c (strip_float_extensions):  Look for narrowest type handling
16407         FP constants.
16408
16409         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
16410         float1 CMP float2.
16411         * convert.c (strip_float_extensions): Make global.
16412         * tree.h (strip_float_extensions): Declare.
16413
16414 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16415
16416         * timevar.def: define TV_NAME_LOOKUP.
16417         * timevar.c (timevar_pop): Be verbose when aborting.
16418
16419 2003-01-13  Andreas Schwab  <schwab@suse.de>
16420
16421         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
16422         $(parsedir), just move the temporary file at the end.
16423         ($(parsedir)/gengtype-yacc.c): Likewise.
16424
16425 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
16426
16427         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
16428         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
16429         splitting.
16430         * configure: Rebuilt.
16431
16432 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16433
16434         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
16435         internal_mcount): Don't use PARAMS.
16436         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
16437         ISO C style.
16438         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
16439
16440 2003-01-13  Andreas Schwab  <schwab@suse.de>
16441
16442         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
16443         directive.
16444
16445 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16446
16447         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
16448         (*iorsi3_and_lshiftrt_n_sb): Likewise.
16449
16450 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
16451
16452         PR c++/9264
16453         * c-lex.c (c_lex): Set the token value to error_mark_node for
16454         invalid numeric constants.
16455
16456 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16457
16458         * c-pch.c (asm_file_startpos): Change to `long'.
16459         (pch_init): Use ftell, not ftello.
16460         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
16461         Use `long' instead of `off_t'.
16462         (c_common_read_pch): Likewise.
16463         * ggc-common.c (gt_pch_save): Use long/ftell instead of
16464         off_t/ftello.
16465
16466 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
16467
16468         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
16469
16470 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
16471
16472         * arm-protos.h (struct cpp_reader): Add declaration.
16473
16474 2003-01-11  Jan Hubicka  <jh@suse.cz>
16475
16476         PR target/9068
16477         * i386.c (output_fp_compare): Fix typo.
16478
16479 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
16480
16481         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
16482
16483 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
16484
16485         * Makefile.in (parsedir): New variable.
16486         (docobjdir): New variable.
16487         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
16488         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
16489         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
16490         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
16491         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
16492         Use docobjdir.
16493         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
16494         objc.maintainer-clean): Use parsedir.
16495
16496         * varasm.c (struct constant_descriptor_rtx): Remove unused
16497         `label' field.
16498
16499         * toplev.c (documented_lang_options): Document -Winvalid-pch.
16500
16501 2003-01-10  Richard Henderson  <rth@redhat.com>
16502
16503         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
16504         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
16505
16506 2003-01-10  Richard Henderson  <rth@redhat.com>
16507
16508         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
16509         not INTEGRAL_MODE_P when widening extensions.
16510
16511 2003-01-10  Richard Henderson  <rth@redhat.com>
16512
16513         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
16514
16515 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
16516
16517         * ggc-page.c (ggc_collect): Avoid overflow computing
16518         min_expand.
16519
16520         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
16521         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
16522         Remove calls.
16523         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
16524
16525 2003-01-10  Jan Hubicka  <jh@suse.cz>
16526
16527         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
16528         with weird operands.
16529
16530 2003-01-10  Dale Johannesen <dalej@apple.com>
16531
16532         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
16533         parameters.  Call check_sibcall_argument_overlap if indicated.
16534         (check_sibcall_argument_overlap):  Add mark_stored_args_map
16535         parameter.  Don't mark parameter area as clobbered if not set.
16536         (expand_call):  Adjust calls to above.
16537
16538 2003-01-10 Kelley Cook <kelleycook@comcast.net>
16539
16540         * configure.in (linker read-only and read-write section mixing):
16541         Squelch some assembler warnings.
16542         * configure: Likewise.
16543
16544 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
16545
16546         * doc/invoke.texi: Document -mtune, delete -mcpu
16547         option for S/390 and zSeries.
16548         * config/s390/s390.c (s390_tune_string) New variable.
16549         (s390_cpu_string) Delete variable.
16550         (override_options): Use s390_tune_string instead of
16551         s390_cpu_string.
16552         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
16553
16554 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16555
16556         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
16557
16558 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
16559
16560         * jump.c (next_nonnote_insn_in_loop): New function.
16561         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
16562         next_nonnote_insn.
16563         (duplicate_loop_exit_test). Likewise.
16564
16565 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
16566
16567         Merge from pch-branch:
16568
16569         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
16570
16571         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
16572         load.
16573
16574         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
16575
16576         * cpplib.c (count_registered_pragmas): New function.
16577         (save_registered_pragmas): New function.
16578         (_cpp_save_pragma_names): New function.
16579         (restore_registered_pragmas): New function.
16580         (_cpp_restore_pragma_names): New function.
16581         * cpphash.h (_cpp_save_pragma_names): Prototype.
16582         (_cpp_restore_pragma_names): Likewise.
16583         * cpppch.c (struct save_macro_item): Split from save_macro_data.
16584         (struct save_macro_data): New field 'saved_pragmas'.
16585         (save_macros): Update for changes to struct save_macro_data.
16586         (cpp_prepare_state): Call _cpp_save_pragma_names, update
16587         for changes to struct save_macro_data.
16588         (cpp_read_state): Call _cpp_restore_pragma_names, update
16589         for changes to struct save_macro_data.
16590
16591         * cpppch.c (cpp_read_state): Restore the hashtable references
16592         in the cpp_reader.
16593
16594         * tree.h (built_in_decls): Mark for PCH.
16595
16596         * dbxout.c (lastfile): Don't mark for PCH.
16597
16598         * ggc.h: Document PCH calls into memory managers.
16599
16600         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
16601
16602         * doc/invoke.texi (Precompiled Headers): Document the
16603         directory form of PCH.
16604         * cppfiles.c (validate_pch): New function.
16605         (open_file_pch): Search suitably-named directories for PCH files.
16606
16607         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
16608
16609         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
16610         reorder options.
16611         (Type Information): Mention that the information is also
16612         used to implement PCH.
16613         * doc/passes.texi (Passes): Improve documentation of
16614         language-specific files.
16615
16616         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
16617
16618         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
16619         (struct walk_type_data): Add reorder_fn field.
16620         (walk_type): Process 'reorder' option.
16621         (write_types_process_field): Reorder parameters to gt_pch_note_object,
16622         call reorder_note_routine.
16623         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
16624         (ggc_wtd): Update for change to struct write_types_data.
16625         (pch_wtd): Likewise.
16626         * ggc.h (gt_pch_note_object): Reorder parameters.
16627         (gt_handle_reorder): New definition.
16628         (gt_pch_note_reorder): New prototype.
16629         * ggc-common.c (struct ptr_data): Add reorder_fn.
16630         (gt_pch_note_object): Reorder parameters.
16631         (gt_pch_note_reorder): New.
16632         (gt_pch_save): Call reorder_fn.
16633         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
16634
16635         * dbxout.c (cwd): Don't mark for PCH.
16636
16637         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
16638
16639         * gengtype.c (finish_root_table): Fix some warnings.
16640         (write_root): Handle TYPE_STRING.
16641         * ggc.h (gt_ggc_m_S): Add prototype.
16642         * stringpool.c (gt_ggc_m_S): New function.
16643
16644         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
16645
16646         * dwarf2out.c (dw2_string_counter): New.
16647         (AT_string_form): Use it.
16648         (same_dw_val_p): Update for removal of hashtable.h hash tables.
16649
16650         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
16651
16652         * dbxout.c: Include gt-dbxout.h.
16653         (lastfile): Mark for PCH/GGC.
16654         (cwd): Likewise.
16655         (struct typeinfo): Likewise.
16656         (typevec): Likewise.
16657         (typevec_len): Likewise.
16658         (next_type_number): Likewise.
16659         (struct dbx_file): Likewise.
16660         (current_file): Likewise.
16661         (next_file_number): Likewise.
16662         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
16663         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
16664         (dbxout_end_source_file): Don't free struct dbx_file.
16665         (dbxout_type): Use GGC to allocate typevec.
16666         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
16667         (GTFILES): Add dbxout.c.
16668         (gt-dbxout.h): New rule.
16669
16670         * Makefile.in (c-pch.o): Add debug.h as dependency.
16671         * c-pch.c: Include debug.h.
16672         (pch_init): Call start_source_file to keep nesting right.
16673         (c_common_read_pch): Add orig_name parameter.  Call
16674         start_source_file debug hook.  Call end_source_file debug hook.
16675         * c-common.h (c_common_read_pch): Update prototype.
16676         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
16677         callback.
16678         * cppfiles.c (struct include_file): Add new field `header_name'.
16679         (find_or_create_entry): Default it to `name'.
16680         (open_file_pch): Set it to the original header file searched for.
16681         (stack_include_file): Don't stack an empty buffer, just handle
16682         PCH files immediately.  Pass header_name field to read_pch callback.
16683
16684         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
16685
16686         * function.c (funcdef_no): Mark to be saved in a PCH.
16687
16688         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
16689
16690         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
16691
16692         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
16693
16694         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
16695
16696         * optabs.h (code_to_optab): Add GTY marker.
16697
16698         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
16699
16700         * Makefile.in (GTFILES): Add cpplib.h.
16701         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
16702         * c-decl.c (build_compound_literal): Don't use var_labelno.
16703         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
16704         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
16705         * varasm.c (const_labelno): Use gengtype to mark.
16706         (var_labelno): Likewise.
16707         (in_section): Likewise.
16708         (in_named_name): Likewise.
16709         (struct in_named_entry): Likewise.
16710         (in_named_htab): Likewise.
16711         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
16712         (init_varasm_once): Use GGC to allocate in_named_htab.
16713         * config/darwin.c (current_pic_label_num): Mark for PCH.
16714
16715         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
16716
16717         * ggc-simple.c (init_ggc_pch): New stub procedure.
16718         (ggc_pch_count_object): Likewise.
16719         (ggc_pch_total_size): Likewise.
16720         (ggc_pch_this_base): Likewise.
16721         (ggc_pch_alloc_object): Likewise.
16722         (ggc_pch_prepare_write): Likewise.
16723         (ggc_pch_write_object): Likewise
16724         (ggc_pch_finish): Likewise.
16725         (ggc_pch_read): Likewise.
16726
16727         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
16728
16729         * c-pch.c (c_common_write_pch): Write the macro definitions after
16730         the GCed data.
16731         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
16732         definitions after the GCed data.
16733         * cpplib.c (save_macros): New.
16734         (reset_ht): New.
16735         (cpp_write_pch_deps): Split out of cpp_write_pch.
16736         (cpp_write_pch_state): Split out of cpp_write_pch.
16737         (cpp_write_pch): Delete.
16738         (struct save_macro_data): Delete.
16739         (cpp_prepare_state): New.
16740         (cpp_read_state): Erase and restore initial macro definitions.
16741         * cpplib.h (struct save_macro_data): Forward-declare.
16742         (cpp_write_pch_deps): Prototype.
16743         (cpp_write_pch_state): Prototype.
16744         (cpp_write_pch): Delete prototype.
16745         (cpp_prepare_state): Prototype.
16746         (cpp_read_state): Add fourth argument.
16747
16748         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
16749
16750         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
16751         (write_array): Remove warning.
16752
16753         * gengtype.c (contains_scalar_p): New.
16754         (finish_root_table): Add the table to all languages, even if it's
16755         empty.
16756         (write_roots): Output gt_pch_scalar_rtab.
16757         * ggc-common.c (gt_pch_save): Write out scalars.
16758         (gt_pch_restore): Read scalars back.
16759
16760         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
16761         (struct page_entry): Delete pch_page field.
16762         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
16763         (clear_marks): Likewise.
16764         (sweep_pages): Likewise.
16765         (poison_pages): Likewise.
16766         (ggc_print_statistics): Likewise.
16767         (ggc_pch_read): Don't free objects read from a PCH.
16768         Properly set up in_use_p and page_tails.
16769
16770         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
16771
16772         * gengtype.c (struct write_types_data): New.
16773         (struct walk_type_data): Make `cookie' const; add extra
16774         prev_val item; add `orig_s' field.
16775         (walk_type): Update prev_val[3].
16776         (write_types_process_field): New.
16777         (write_func_for_structure): Take write_types_data structure.
16778         (write_types): New.
16779         (ggc_wtd): New.
16780         (pch_wtd): New.
16781         (write_types_local_process_field): New.
16782         (gc_mark_process_field): Delete.
16783         (write_local_func_for_structure): New.
16784         (gc_mark_func_name): Delete.
16785         (write_gc_types): Delete.
16786         (write_local): New.
16787         (finish_root_table): Don't include 'ggc_' in PFX.
16788         (write_root): Rename from write_root.  Fill pchw field of structures.
16789         (write_array): New.
16790         (write_roots): Rename from write_gc_roots.  Split out to write_array.
16791         Update to changes to other routines.  Write gt_pch_cache_rtab table.
16792         (main): Write PCH walking routines.
16793         * ggc-common.c: Include toplev.h, sys/mman.h.
16794         (ggc_mark_roots): For cache hashtables, also mark the hash table
16795         and the array of entries.
16796         (saving_htab): New.
16797         (struct ptr_data): New.
16798         (POINTER_HASH): New.
16799         (gt_pch_note_object): New.
16800         (saving_htab_hash): New.
16801         (saving_htab_eq): New.
16802         (struct traversal_state): New.
16803         (call_count): New.
16804         (call_alloc): New.
16805         (compare_ptr_data): New.
16806         (relocate_ptrs): New.
16807         (write_pch_globals): New.
16808         (struct mmap_info): New.
16809         (gt_pch_save): New.
16810         (gt_pch_restore): New.
16811         * ggc-page.c (ROUND_UP_VALUE): New.
16812         (ROUND_UP): New.
16813         (struct page_entry): Add field `pch_page'.
16814         (init_ggc): Use ROUND_UP.
16815         (struct ggc_pch_data): Declare.
16816         (init_ggc_pch): New.
16817         (ggc_pch_count_object): New.
16818         (ggc_pch_total_size): New.
16819         (ggc_pch_this_base): New.
16820         (ggc_pch_alloc_object): New.
16821         (ggc_pch_prepare_write): New.
16822         (ggc_pch_write_object): New.
16823         (ggc_pch_finish): New.
16824         (ggc_pch_read): New.
16825         * ggc.h (gt_pointer_operator): New.
16826         (gt_note_pointers): New.
16827         (gt_pch_note_object): New prototype.
16828         (gt_pointer_walker): New.
16829         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
16830         (LAST_GGC_ROOT_TAB): Update.
16831         (gt_pch_cache_rtab): Declare.
16832         (gt_pch_scalar_rtab): Declare.
16833         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
16834         (LAST_GGC_CACHE_TAB): Update.
16835         (gt_pch_save_stringpool): Declare.
16836         (gt_pch_restore_stringpool): Declare.
16837         (gt_pch_p_S): Declare.
16838         (gt_pch_n_S): Declare.
16839         (struct ggc_pch_data): Forward-declare.
16840         (init_ggc_pch): Declare.
16841         (ggc_pch_count_object): Declare.
16842         (ggc_pch_total_size): Declare.
16843         (ggc_pch_this_base): Declare.
16844         (ggc_pch_alloc_object): Declare.
16845         (ggc_pch_prepare_write): Declare.
16846         (ggc_pch_write_object): Declare.
16847         (ggc_pch_finish): Declare.
16848         (ggc_pch_read): Declare.
16849         (gt_pch_save): Declare.
16850         (gt_pch_restore): Declare.
16851         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
16852         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
16853         const_double_htab, mem_attrs_htab using GGC.
16854         * c-pch.c: Include ggc.h.
16855         (pch_init): Allow reading PCH file back.
16856         (c_common_write_pch): Call gt_pch_save.
16857         (c_common_read_pch): Call gt_pch_restore.
16858         * c-parse.in (init_reswords): Delete now-untrue comment.
16859         Allocate ridpointers using GGC.
16860         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
16861         calling expand_deferred_fns.
16862         * c-common.h (ridpointers): Mark for GTY machinery.
16863         * Makefile.in (stringpool.o): Update dependencies.
16864         (c-pch.o): Update dependencies.
16865         (ggc-common.o): Update dependencies.
16866         * stringpool.c: Include gt-stringpool.h.
16867         (gt_pch_p_S): New.
16868         (gt_pch_n_S): New.
16869         (struct string_pool_data): New.
16870         (spd): New.
16871         (gt_pch_save_stringpool): New.
16872         (gt_pch_restore_stringpool): New.
16873         * tree.c (init_ttree): Make type_hash_table allocated using GC.
16874
16875         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
16876
16877         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
16878         (output_mangled_typename): Don't pass size_t to printf.
16879
16880         * tree.h (union tree_type_symtab): Add tag to `address' field.
16881         (union tree_decl_u2): Add tag to 'i' field.
16882         * varasm.c (union rtx_const_un): Add tags to all fields.
16883         * gengtype.c (struct walk_type_data): New.
16884         (output_escaped_param): Take struct walk_type_data parameter.
16885         (write_gc_structure_fields): Delete.
16886         (walk_type): New.
16887         (write_gc_marker_routine_for_structure): Delete.
16888         (write_func_for_structure): New.
16889         (gc_mark_process_field): New.
16890         (gc_mark_func_name): New.
16891         (gc_counter): Delete.
16892         (write_gc_types): Use write_func_for_structure.
16893         (write_gc_roots): Use walk_type.
16894
16895         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
16896
16897         * ggc-common.c (ggc_mark_roots): Delete 'x'.
16898         (ggc_splay_dont_free): Fix warning about unused 'x'.
16899         (ggc_print_common_statistics): Remove warnings.
16900
16901         2002-10-01  Mike Stump  <mrs@apple.com>
16902
16903         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
16904         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
16905
16906         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
16907             Catherine Moore  <clm@redhat.com>
16908
16909         * Makefile (c-pch.o): Update dependencies.
16910         (LIBCPP_OBJS): Add cpppch.o.
16911         (cpppch.o): New.
16912         * c-common.c (c_common_init): Don't call pch_init here.
16913         * c-common.h (c_common_read_pch): Update prototype.
16914         * c-lex.c (c_common_parse_file): Call pch_init here.
16915         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
16916         (c_common_decode_option): Handle them.
16917         * c-pch.c: Include c-pragma.h.
16918         (save_asm_offset): Delete.
16919         (pch_init): Move contents of save_asm_offset into here, call
16920         cpp_save_state.
16921         (c_common_write_pch): Call cpp_write_pch.
16922         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
16923         cpp_valid_state.
16924         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
16925         * cppfiles.c (stack_include_file): Update for change to
16926         parameters of cb.read_pch.
16927         * cpphash.h (struct cpp_reader): Add `savedstate' field.
16928         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
16929         `restore_pch_deps' fields.
16930         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
16931         (cpp_save_state): Prototype.
16932         (cpp_write_pch): Prototype.
16933         (cpp_valid_state): Prototype.
16934         (cpp_read_state): Prototype.
16935         * cpppch.c: New file.
16936         * flags.h (version_flag): Remove prototype.
16937         * mkdeps.c (deps_save): New.
16938         (deps_restore): New.
16939         * mkdeps.h (deps_save): Prototype.
16940         (deps_restore): Prototype.
16941         * toplev.c (late_init_hook): Delete.
16942         (version_flag): Make static again.
16943         (compile_file): Don't call late_init_hook.
16944         * toplev.h (late_init_hook): Delete.
16945         * doc/cppopts.texi: Document -fpch-deps.
16946         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
16947
16948         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
16949
16950         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
16951         callers.
16952         (c_common_valid_pch): Rename from c_valid_pch, change callers.
16953         (c_common_read_pch): Rename from c_read_pch, change callers.
16954
16955         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
16956         a space between it and its argument.
16957
16958         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
16959
16960         * c-pch.c: New file.
16961         * toplev.h (late_init_hook): Declare.
16962         * toplev.c (late_init_hook): Define.
16963         (version_flag): Make globally visible.
16964         (compile_file): Call late_init_hook.
16965         (init_asm_output): Make output file seekable.
16966         * gcc.c (default_compilers): Update c-header rule.
16967         * flags.h (version_flag): Declare.
16968         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
16969         fields.
16970         * cppfiles.c (struct include_file): Add 'pch' field.
16971         (INCLUDE_PCH_P): New.
16972         (open_file_pch): New.
16973         (stack_include_file): Handle PCH files specially.
16974         (find_include_file): Call open_file_pch instead of open_file.
16975         (_cpp_read_file): Explain why open_file is used instead of
16976         open_file_pch.
16977         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
16978         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
16979         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
16980         in cpplib callbacks.
16981         * c-common.c (pch_file): Correct comment.
16982         (allow_pch): Define.
16983         (c_common_init): Call pch_init.
16984         * c-common.h (allow_pch): Declare.
16985         (pch_init): Declare.
16986         (c_valid_pch): Declare.
16987         (c_read_pch): Declare.
16988         (c_write_pch): Declare.
16989         * Makefile.in (c-pch.o): New.
16990         (C_AND_OBJC_OBJS): Add c-pch.o.
16991         * doc/invoke.texi (Precompiled Headers): Add index entries,
16992         complete truncated paragraph.
16993
16994         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
16995
16996         * c-common.c: (pch_file): Define.
16997         * c-common.h (pch_file): Declare.
16998         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
16999         (missing_arg): Require --output-pch= to have an argument.
17000         (c_common_decode_option): Handle --output-pch=.
17001         * gcc.c: Document new %V.
17002         (default_compilers): Handle compiling C header files.
17003         (do_spec_1): Implement %V.
17004         (main): Handle "gcc foo.h" without trying to run linker.
17005         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
17006         (Overall Options): Document what the driver does with header files,
17007         document new -x option possibilities.
17008         (Invoking G++): More documentation for PCH.
17009         (Precompiled Headers): New.
17010
17011         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
17012
17013         * ggc.h: Don't include varray.h.  Rearrange functions to be more
17014         organized.
17015         (ggc_add_root): Delete.
17016         (ggc_mark_rtx): Delete.
17017         (ggc_mark_tree): Delete.
17018         (struct ggc_statistics): Remove contents.
17019         * ggc-common.c: Remove unneeded includes.
17020         (struct ggc_root): Delete.
17021         (roots): Delete.
17022         (ggc_add_root): Delete.
17023         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
17024         (ggc_print_common_statistics): Remove most of the contents.
17025         * Makefile.in (GGC_H): No longer uses varray.h.
17026         (ggc-common.o): Update dependencies.
17027         (c-parse.o): Add varray.h to dependencies.
17028         (c-common.o): Add varray.h.
17029         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
17030         (mark_ident_hash): Rename to ggc_mark_stringpool.
17031         (init_stringpool): Don't use ggc_add_root.
17032         * c-parse.in: Include varray.h.
17033         * c-common.c: Include varray.h.
17034         * objc/Make-lang.in (objc-act.o): Add varray.h.
17035         * objc/objc-act.c: Include varray.h.
17036
17037         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
17038
17039         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
17040         (dw_cfi_oprnd1_desc): Likewise.
17041
17042         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
17043
17044         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
17045         move out of ifdef.
17046         (alpha_links): Use gengtype to mark; move out of ifdef.
17047         (mark_alpha_links_node): Delete.
17048         (mark_alpha_links): Delete.
17049         (alpha_need_linkage): Use GGC to allocate splay tree, struct
17050         alpha_links, strings.  Don't use ggc_add_root.
17051         * ggc-common.c (ggc_splay_alloc): New.
17052         (ggc_splay_dont_free): New.
17053         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
17054         (ggc_mark_tree): Likewise.
17055         (splay_tree_new_ggc): New.
17056         (ggc_splay_alloc): Declare.
17057         (ggc_splay_dont_free): Declare.
17058         * dwarf2asm.c: Include gt-dwarf2asm.h.
17059         (mark_indirect_pool_entry): Delete.
17060         (mark_indirect_pool): Delete.
17061         (indirect_pool): Use gengtype to mark.
17062         (dw2_force_const_mem): Don't use ggc_add_root.
17063         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
17064         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
17065         (gt-dwarf2asm.h): Depend on s-gtype.
17066
17067         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
17068
17069         * tree.h (union tree_type_symtab): Mark `die' field.
17070         * Makefile.in (dwarf2out.o): Update dependencies.
17071         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
17072         hash tables.
17073         (dw_cfi_oprnd1_desc): New function.
17074         (dw_cfi_oprnd2_desc): New function.
17075         (indirect_string_alloc): Delete.
17076         (debug_str_do_hash): New function.
17077         (debug_str_eq): New function.
17078         (mark_limbo_die_list): Delete.
17079         (dwarf2out_init): Don't call ggc_add_root.
17080
17081 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
17082
17083         The following changes are merged from itanium-sched-branch:
17084
17085         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
17086
17087         * doc/md.texi: Clarify assignment of units to automata description.
17088
17089         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
17090
17091         * genautomata.c (unit_decl): Remove members
17092         `the_same_automaton_unit' and
17093         `the_same_automaton_message_reported_p'.
17094         (process_unit_to_form_the_same_automaton_unit_lists,
17095         form_the_same_automaton_unit_lists_from_regexp,
17096         form_the_same_automaton_unit_lists, the_same_automaton_lists):
17097         Remove them.
17098         (annotation_message_reported_p): New global variable.
17099         (check_unit_distribution_in_reserv,
17100         check_regexp_units_distribution): New functions.
17101         (check_unit_distributions_to_automata): Rewrite it.
17102
17103         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
17104
17105         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
17106         Use continue instead of break if cycle is too big.
17107
17108         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
17109
17110         * genautomata.c (check_unit_distributions_to_automata): Output at
17111         most one message for a unit.
17112         (process_unit_to_form_the_same_automaton_unit_lists): Check
17113         automaton of units instead of units themself.
17114
17115         * doc/md.texi: Describe the constraint about assigning unit to
17116         automata.
17117
17118         2002-12-20  Jan Hubicka  <jH@suse.cz>
17119                     Vladimir Makarov  <vmakarov@redhat.com>
17120
17121         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
17122         and `in_set_p'.
17123         (gen_cpu_unit): Initialize the new members.
17124         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
17125         up `min_occ_cycle_num'.
17126         (evaluate_max_reserv_cycles): Change the function call.
17127         (CLEAR_BIT): New macro.
17128         (states_union, state_shift): Use the mask.
17129         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
17130         (form_reservs_matter): New function.
17131         (make_automaton): Call the function and use the mask.
17132         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
17133         account.
17134
17135         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
17136
17137         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
17138
17139         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
17140
17141         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
17142         for Itanium.
17143
17144         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
17145
17146         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
17147         default cpu.
17148
17149         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
17150                 2002-10-31  Dale Johannesen <dalej@apple.com>
17151
17152         * haifa-sched.c (find_set_reg_weight): New function.
17153         (find_insn_reg_weight): Use the new function.
17154         (schedule_block): Do sorting ready queue always
17155         after insn issue.
17156
17157         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
17158
17159         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
17160
17161         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
17162
17163         * haifa-sched.c (choice_entry): New structure.
17164         (choice_stack, cycle_issued_insns): New variables.
17165         (max_issue): Rewrite it.
17166         (choose_ready): Set up ready_try for unknown insns too.
17167         (schedule_block): Allocate and free choice_stack.  Set up
17168         and modify cycle_issued_insns.
17169
17170         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
17171         with and without filling the bundle.
17172         (bundling): Combine calls of issue_nops_and_insn.
17173
17174         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
17175
17176         * config/ia64/itanium1.md: New file.
17177
17178         * config/ia64/itanium2.md: New file.
17179
17180         * config/ia64/ia64.md: Move DFA descriptions into the new files.
17181         Remove the old pipeline description.
17182
17183         * config/ia64/ia64.c (ia64_override_options): Add aliases of
17184         itanium processor names.
17185
17186         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
17187
17188         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
17189         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
17190
17191         * config/ia64/ia64.md: Add descriptions for Itanium2.
17192
17193         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
17194
17195         * config/ia64/ia64.h (processor_type): New enumeration.
17196         (ia64_tune, ia64_tune_string): New external declarations.
17197         (TARGET_OPTIONS): Add option `tune='.
17198
17199         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
17200         variables.
17201         (ia64_override_options): Set up `ia64_tune'.
17202         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
17203         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
17204         (bundling): Add nops for MM-insns only for Itanium.
17205         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
17206         Itanium.
17207
17208         * config/ia64/ia64.md (cpu): New attribute.
17209         (DFA description): Enable it only for Itanium.
17210
17211         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
17212                     Richard Henderson  <rth@redhat.com>
17213
17214         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
17215         MASK_EARLY_STOP_BITS.
17216         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
17217         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
17218         `early-stop-bits'.
17219
17220         * config/ia64/ia64.c (ia64_dfa_new_cycle,
17221         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
17222         instead of TARGET_TUNE_STOP_BITS.
17223
17224         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
17225         `-mearly-stop-bits'.
17226
17227         * config/ia64/ia64.c (automata_option "v"): Comment it.
17228
17229         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
17230
17231         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
17232         New macros.
17233         (TARGET_SWITCHES): Add entries for the new option.
17234
17235         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
17236         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
17237         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
17238         global variables.
17239         (ia64_sched_reorder2): Set up `clocks'.
17240         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
17241         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
17242         queue when TARGET_TUNE_STOP_BITS.
17243         (bundling): Insert additional nops for MM-insns.
17244         (final_emit_insn_group_barriers): Add insertion of stop bits
17245         according `stops_p'.
17246         (ia64_reorg): Initiate the new varibales.
17247
17248         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
17249
17250         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
17251
17252         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
17253         insns at the end of block insn scheduling.
17254
17255         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
17256
17257         * sched-deps.c (remove_dependence, group_leader): Remove it.
17258         (add_dependence): Add dependence to group leader to.
17259         (set_sched_group_p): Add dependence to the first insn of the
17260         schedule group too.
17261         (sched_analyze_insn): Make dependence to jump as anti-dependence.
17262         Change true dependence by anti-dependence when
17263         `reg_pending_barrier'.
17264
17265         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
17266         add_branch_dependences): Ignore schedule groups.
17267
17268         * sched-ebb.c (init_ready_list): Ditto.
17269
17270         * (move_insn, set_priorities): Ditto.
17271
17272         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
17273         flag is clear after reload.
17274         (adjust_cost): Change cost only for output dependencies.
17275
17276         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
17277
17278         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
17279
17280         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
17281
17282         * target.h (gcc_target): Add member
17283         `dependencies_evaluation_hook'.
17284
17285         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
17286         macro.
17287         (TARGET_SCHED): Add initiatialization of the new member.
17288
17289         * sched-ebb.c: Include `target.h'.
17290         (schedule_ebb): Call `dependencies_evaluation_hook'.
17291
17292         * sched-rgn.c (schedule_region): Call
17293         `dependencies_evaluation_hook'.
17294
17295         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
17296         New macro.
17297         (ia64_dependencies_evaluation_hook): New function.
17298
17299         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
17300         Describe the new hook.
17301
17302         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
17303
17304         * target.h (gcc_target): Add members
17305         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
17306
17307         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
17308         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
17309         macros.
17310         (TARGET_SCHED): Add initiatialization of the new members.
17311
17312         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
17313         insn scheduling too.
17314         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
17315         initialize `ready_try'.
17316         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
17317         `dfa_new_cycle' says not to do it.
17318
17319         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
17320         bundling.
17321
17322         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
17323
17324         * config/ia64/ia64.c: Include `hashtab.h'.
17325         (ia64_first_cycle_multipass_dfa_lookahead_guard,
17326         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
17327         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
17328         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
17329         bundle_state_eq_p, insert_bundle_state,
17330         initiate_bundle_state_table, finish_bundle_state_table,
17331         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
17332         get_template, get_next_important_insn, bundling): New functions.
17333         (ia64_internal_sched_reorder): Remove it.
17334         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
17335         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
17336         (ia64_safe_itanium_requires_unit0): Remove it.
17337         (group_barrier_needed_p): Place group barrier right before a real
17338         insn.
17339         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
17340         Remove them.
17341         (bundle_name): New variable.
17342         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
17343         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
17344         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
17345         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
17346         temp_dfa_state, prev_cycle_state): New global variables.
17347         (insn_matches_slot, maybe_rotate, finish_last_head,
17348         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
17349         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
17350         find_best_packet, itanium_reorder, dump_current_packet,
17351         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
17352         (sched_data, sched_ready, sched_types): Remove them.
17353         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
17354         `init_insn_group_barriers'.
17355         (ia64_sched_reorder, ia64_sched_reorder2): Call
17356         ia64_dfa_sched_reorder.
17357         (ia64_variable_issue): Rewrite it.
17358         (bundle_state): New structure.
17359         (index_to_bundle_states, bundle_states_num,
17360         allocated_bundle_states_chain, free_bundle_state_chain): New
17361         global variables.
17362         (ia64_sched_finish): Add stop bits and call `bundling' after the
17363         2nd insn scheduling.
17364         (ia64_use_dfa_pipeline_interface): Return zero always.
17365         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
17366         insn scheduling.
17367         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
17368         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
17369         (ia64_reorg): Add bundling insns.
17370
17371         * doc/tm.texi
17372         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
17373         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
17374
17375         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
17376
17377         * config/ia64/ia64.md: Add Itanium1 DFA description.
17378         (itanium_class): Add `nop' and `pre_cycle'.  Add
17379         define_function_unit for `nop'.
17380         (nop): Change attribute `itanium_class'.
17381         (pre_cycle): New define_insn.
17382
17383         * config/ia64/ia64-protos.h (bundling_p): New external variable.
17384         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
17385         ia64_produce_address_p): New function prototypes.
17386
17387         * config/ia64/ia64.c (bundling_p): New global variable.
17388         (ia64_use_dfa_pipeline_interface,
17389         ia64_first_cycle_multipass_dfa_lookahead,
17390         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
17391         functions.
17392         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
17393         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
17394         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
17395         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
17396         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
17397         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
17398         (dfa_pre_cycle_insn): New variable.
17399
17400         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
17401
17402         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
17403         constructions.
17404
17405         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
17406         New function prototypes.
17407
17408         * genattrtab.c (main): Process the new constructions.
17409
17410         * genautomata.c (gen_presence_absence_set,
17411         process_presence_absence_names, process_presence_absence_patterns,
17412         add_presence_absence, check_absence_pattern_sets): Add parameter
17413         `final_p'.
17414         (unit_decl): Add new members `final_presence_list' and
17415         `final_absence_list'.
17416         (unit_pattern_rel_decl): Add new member `final_p'.
17417         (gen_final_presence_set, gen_final_absence_set): New functions.
17418         (process_decls): Use member `final_p'.
17419         (temp_reserv): New global variable.
17420         (reserv_sets_are_intersected): Add processing `final_presence_set'
17421         and `final_absence_set'.
17422         (initiate_states): Allocate `temp_reserv'.
17423         (unit_final_presence_set_table, unit_final_absence_set_table): New
17424         gloabal variables.
17425         (initiate_presence_absence_pattern_sets): Initiate them.
17426         (NDFA_to_DFA): Fix typo.
17427         (output_description): Output `final_presence_set' and
17428         `final_absence_set'.
17429
17430         * doc/md.texi (final_presence_set, final_absence_set): Describe
17431         them.
17432
17433         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
17434
17435         * genautomata.c (transform_3): Process a missing case (nothing on
17436         unit place).
17437
17438         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
17439
17440         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
17441         comments about queried units and the minimization.
17442
17443         * doc/md.texi: Ditto.
17444
17445         * genautomata.c (create_composed_state): Return nonzero if the new
17446         state has been created.
17447         (first_cycle_unit_presence): New function.
17448         (state_is_differed): Add new parameter.  Use the new function.
17449         Take queried units into account.
17450         (partition_equiv_class): Pass additional parameter to
17451         `state_is_differed'.
17452         (merge_states): Process composed states too.
17453         (build_automaton, create_automata, output_min_issue_delay_table,
17454         output_tables, output_statistics): Output more information.
17455         (output_reserved_units_table): Use function
17456         `first_cycle_unit_presence'.
17457         (output_tables): Output table of queried units even if the
17458         minimization is switched on.
17459         (write_automata): Output code for querying units even if the
17460         minimization is switched on.
17461
17462         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
17463
17464         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
17465         syntax of the constructions.
17466
17467         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
17468         extended syntax of the constructions.
17469
17470         * genautomata.c (unit_rel_decl): Rename it to
17471         `unit_pattern_rel_decl'.
17472         (pattern_set_el, pattern_reserv): New structures.
17473         (pattern_set_el_t, pattern_reserv_t): New types.
17474         (gen_presence_absence_set): New function.
17475         (process_presence_absence): Remove it.
17476         (process_presence_absence_names,
17477         process_presence_absence_patterns): New functions.
17478         (get_presence_absence_set): Remove it.
17479         (initiate_presence_absence_sets): Rename it on
17480         `initiate_presence_absence_pattern_sets'.  Use new function
17481         `form_reserv_sets_list'.
17482         (form_reserv_sets_list, check_presence_pattern_sets,
17483         check_absence_pattern_sets, output_pattern_set_el_list): New
17484         functions.
17485         (unit_decl): Change types of members `presence_list' and
17486         `absence_list'.
17487         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
17488         (decl): Change types of members `excl', `presence', and `absence'.
17489         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
17490         at the end of the vector.
17491         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
17492         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
17493         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
17494         (gen_presence_set, gen_absence_set): Use new function
17495         `gen_presence_absence_set'.
17496         (add_presence_absence): Process `pattern_list' instead of
17497         `source_list'.
17498         (process_decls): USe new functions
17499         `process_presence_absence_names' and
17500         `process_presence_absence_patterns'.
17501         (reserv_sets_are_intersected): Use new function
17502         `check_presence_pattern_sets'.
17503         (presence_set, absence_set): Remove them.
17504         (unit_presence_set_table, unit_absence_set_table): New global
17505         variables.
17506         (output_description): Use new function
17507         `output_pattern_set_el_list'.
17508         (generate): Use `initiate_presence_absence_pattern_sets'.
17509
17510         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17511
17512         * genattr.c (main): Add output of prototype of new interface
17513         function `dfa_clean_insn_cache'.
17514
17515         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
17516         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
17517         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
17518         the generated code.
17519         (write_automata): Call the new function.
17520
17521 2003-01-09  Jan Hubicka  <jh@suse.cz>
17522
17523         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
17524         correctly.
17525
17526 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
17527
17528         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
17529
17530 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
17531
17532         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
17533         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
17534         (CONSTRAINT_LEN): Provide default definition.
17535         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
17536         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
17537         (EXTRA_CONSTRAINT_STR): Likewise.
17538         (REG_CLASS_FROM_CONSTRAINT): Define.
17539         * genoutput.c (check_constraint_len, constraint_len): New functions.
17540         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
17541         constraint / modifier.
17542         (gen_insn): Call check_constraint_len.
17543         * local-alloc.c (block_alloc): Update to use new macros / pass
17544         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
17545         * ra-build.c (handle_asm_insn): Likewise.
17546         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17547         (constrain_operands, peep2_find_free_register): Likewise.
17548         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
17549         * regmove.c (find_matches): Likewise.
17550         * reload.c (push_secondary_reload, find_reloads): Likewise.
17551         (alternative_allows_memconst): Likewise.
17552         * reload1.c (maybe_fix_stack_asms): Likewise.
17553         (reload_cse_simplify_operands): Likewise.
17554         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17555         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
17556         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
17557         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
17558         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
17559         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
17560
17561         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
17562
17563 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17564
17565         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
17566         length.
17567         (*extzv_1_r_h8300hs): Likewise.
17568         (*extzv_1_r_inv_h8300): Likewise.
17569         (*extzv_1_r_inv_h8300hs): Likewise.
17570
17571 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17572
17573         * config/h8300/h8300.h (PREDICATE_CODES): New.
17574
17575 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17576
17577         * config/h8300/h8300.md (*addsi3_upper): New.
17578         (*iorsi3_shift): Likewise.
17579         (two splitters): Likewise.
17580         (*addsi3_shift): Likewise.
17581         (two splitters): Likewise.
17582
17583 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
17584
17585         * Makefile.in (optabs.o): Add dependency on basic-block.h.
17586         * basic-block.h (control_flow_insn_p): Fuction was exported.
17587         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
17588         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
17589         notes only when the region is contained in a single basic block.
17590
17591 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17592
17593         PR inline-asm/8832
17594         * tree.h (expand_asm): New prototype.
17595         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
17596         to do so.
17597         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
17598         down to expand_asm.
17599         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
17600         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
17601         (volatile_refs_p) [ASM_INPUT]: Likewise.
17602         (side_effects_p) [ASM_INPUT]: Likewise.
17603
17604 2003-01-09  Jan Hubicka  <jh@suse.cz>
17605
17606         * i386.md (*mul*): FIx constraints; remove confused comment; fix
17607         athlon_decode attributes
17608         (imul/k8 optimization peep2s): New.
17609
17610         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
17611         * i386.md (type attribute): Add ssecomi.
17612         (unit, memory, prefix attributes): Handle ssecomi.
17613         (cvt?2? patterns): Fix athlon_decode attribute
17614         (comi patterns): Set attribute to ssecomi.
17615
17616         PR target/8343
17617         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
17618
17619 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
17620
17621         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
17622         that match register_operands.
17623         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
17624         register_operand the default case.
17625
17626 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17627
17628         PR c/8032
17629         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
17630         an empty element, do not advance the pointer to unfilled
17631         fields if there are pending initializers.
17632
17633 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
17634
17635         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
17636         (install-gcc-tooldir, install-cpp, installdirs,
17637         install-common, install-driver, install-info, install-man,
17638         install-headers, install-include-dir, install-headers-tar,
17639         install-headers-cpio, install-headers-cp, install-mkheaders,
17640         install-collect2, uninstall): Prepend $(DESTDIR) to
17641         destination paths in all (un)installation commands.
17642         (install-driver): Rewrite $(LN) commands to support DESTDIR
17643         with "ln" as well as with "ln -s".
17644         (installdirs): Simply use mkinstalldirs.
17645         (install-libgcc, install-multilib): Also pass DESTDIR.
17646         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
17647         installation destination variable ldir.
17648         * config/alpha/t-osf4, config/arm/t-netbsd,
17649         config/ia64/t-hpux, config/mips/t-iris5-6,
17650         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
17651         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
17652         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
17653         in the definition of SHLIB_INSTALL.
17654         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
17655         $(libsubdir) in the installation commands.
17656
17657 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
17658
17659         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
17660         non-optimizing compile.
17661         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
17662         compile.
17663
17664 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
17665
17666         * config/i386/i386.c (ix86_attribute_table): Add new attributes
17667         ms_struct and gcc_struct.
17668         (ix86_handle_struct_attribute): New function.
17669         (ix86_ms_bitfield_layout_p): Update to take new attributes
17670         into account.
17671         * doc/extend.texi: Document new attributes.
17672         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
17673
17674 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
17675
17676         PR optimization/8750
17677         * config/i386/i386.c (ix86_expand_prologue): Don't allow
17678         scheduling pass to move insns across __alloca call.
17679
17680 2003-01-08  Dale Johannesen  <dalej@apple.com>
17681
17682         * config/rs6000/rs6000.md:  Replace *store_multiple_string
17683         with *stmsi[3-8].
17684
17685 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
17686
17687         PR target/9210
17688         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
17689         Set SYMBOL_REF_FLAG on local data sym_ref.
17690
17691 2003-01-08  Dale Johannesen  <dalej@apple.com>
17692
17693         * function.c (assign_parms):  Don't set pretend_args_size if
17694           REG_PARM_STACK_SPACE.
17695           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
17696           pretend_args_size.
17697
17698 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
17699
17700         * gcc.hlp: Delete.
17701
17702 2003-01-09  Jan Hubicka  <jh@suse.cz>
17703
17704         * i386.c  (ix86_expand_int_addcc): Fix thinko.
17705
17706 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
17707
17708         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
17709         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
17710         as hook_bool_tree_hwi_hwi_tree_true.
17711         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
17712         (rs6000_emit_epilogue): Same.
17713         (rs6000_output_mi_thunk): Re-implement as RTL.
17714         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
17715         xcoffout_declare_function if any debugging enabled.
17716
17717 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
17718
17719         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
17720         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
17721         * config/mips/mips.h (enum processor_type): Rename
17722         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
17723         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
17724         Add PROCESSOR_M4K.
17725         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
17726         (ISA_MIPS32R2): New define.
17727         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
17728         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
17729         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
17730         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
17731         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
17732         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
17733         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
17734         compiling MIPS16 code.
17735         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
17736         comment.
17737         (ISA_HAS_SEB_SEH): New define.
17738         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
17739         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
17740         processor_type value renaming.  Add support for MIPS32R2.
17741         Clean up comments, and move "sb1" entry with other MIPS64 CPU
17742         entries.
17743         (override_options): Reimplement -mipsN option handling so that
17744         it will work correctly for -mips32r2.  Avoid branch-likely
17745         instructions on MIPS32R2.
17746         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
17747         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
17748         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
17749         (extendhisi2_hw, extendqisi2_hw): New.
17750         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
17751         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
17752         MIPS32R2, and MIPS64.
17753         (LINK_SPEC): Pass -mips32r2 to linker.
17754         * config/mips/t-isa3264: Built -mips32r2 multilibs.
17755         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
17756         for mips32r2 in the -march description.  Alphabetically sort
17757         CPU names in the -march description.  Add long-missed -mips32
17758         and -mips64 to MIPS option summary.
17759
17760         * config.gcc: Update copyright years to include 2003.
17761         * config/mips/mips.c: Likewise.
17762         * config/mips/mips.h: Likewise.
17763         * config/mips/mips.md: Likewise.
17764         * config/mips/netbsd.h: Likewise.
17765         * doc/invoke.texi: Likewise.
17766
17767 2003-01-08  Andreas Schwab  <schwab@suse.de>
17768
17769         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
17770         variable.
17771         * configure: Regenerated.
17772
17773 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17774
17775         * config/h8300/h8300.c (output_logical_op): Replace byte/word
17776         extraction of det with b0, b1, w0, w2, etc.
17777         (compute_logical_op_length): Likewise.
17778         (compute_logical_op_cc): Likewise.
17779
17780 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17781
17782         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
17783         HIGH on all variants.
17784
17785 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
17786
17787         * Makefile.in (PARTITION_H): New.
17788         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
17789         * basic-block.h: Include hard-reg-set.h.
17790
17791 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
17792
17793         * arm.h (ENABLE_XF_PATTERNS): Delete.
17794         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
17795         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
17796         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
17797         (cmpxf_trap): Delete.
17798         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
17799
17800 2003-01-08  Jan Hubicka  <jh@suse.cz>
17801
17802         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
17803         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
17804         (add??cc): New expanders.
17805         * i386.c (expand_int_addcc): New function.
17806         * i386-protos.h (expand_int_addcc): Declare.
17807
17808         * alias.c (memory_modified_1): New static function.
17809         (memory_modified): New static varaible.
17810         (memory_modified_in_insn_p): New global function.
17811         * rtl.h (memory_modified_in_insn_p): Declare.
17812         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
17813         references.
17814
17815         * expr.h (emit_conditional_add): Declare.
17816
17817 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
17818
17819         PR other/8947
17820         * doc/invoke.texi (-malign-double): Explain that the option breaks
17821         binary compatibility.
17822
17823 2003-01-08  Andreas Schwab  <schwab@suse.de>
17824
17825         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
17826         should come from the generic *-*-linux* entry.
17827
17828 2003-01-07  Jan Hubicka  <jh@suse.cz>
17829
17830         * cselib.c (cselib_current_insn_in_libcall): New static variable.
17831         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
17832         we are inside libcall.
17833         * cselib.h (elt_loc_list): Add in_libcall.
17834         * gcse.c (do_local_cprop): Do not copy propagate using insns
17835         in libcalls.
17836
17837 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
17838
17839         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
17840         not normally affect to issue rate.
17841
17842 2003-01-07  Jan Hubicka  <jh@suse.cz>
17843
17844         * genopinit.c (optabs): Add addc_optab.
17845         * ifcvt.c (noce_try_store_flag): Rename to ...
17846         (noce_try_addcc): ... this one; handle generic conditional increment.
17847         (noce_process_if_block): Update noce_try_addcc call.
17848         * optabs.c (emit_conditional_add): New.
17849         (init_obtabs): Initialize addc_optab.
17850         * optabs.h (optab_index): Add OTI_addcc.
17851         (addcc_optab): New macro.
17852         * md.texi: Document addMcc
17853
17854         PR target/8322
17855         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
17856         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17857         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17858
17859         * reload1.c (delete_output_reload): Avoid repeated attempts
17860         to delete insn.
17861
17862 2003-01-07  Andreas Schwab  <schwab@suse.de>
17863
17864         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
17865         Move --enable-initfini-array check ...
17866         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
17867         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
17868         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
17869         * configure: Rebuild.
17870
17871 2003-01-07  Richard Henderson  <rth@redhat.com>
17872
17873         * alias.c (find_base_value): Only use new_reg_base_value shortcut
17874         if the register is set once.
17875
17876 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
17877
17878         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
17879         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
17880         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
17881
17882 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
17883             Sunil Davasam  <sunil.k.davasam@intel.com>
17884
17885         PR libstdc++/9076
17886         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
17887         DW_CFA_same_value, read next and ignore.
17888
17889 2003-01-07  Richard Henderson  <rth@redhat.com>
17890
17891         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
17892
17893 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17894
17895         * cfg.c: Include alloc-pool.h
17896         (edge_pool): New pool.
17897         (bb_pool): New pool.
17898         (first_deleted_edge): Remove.
17899         (first_deleted_block): Remove.
17900         (init_flow): Alloc/free the pools.
17901         (free_edge): Use pools.
17902         (alloc_block): Ditto.
17903         (expunge_block): Ditto.
17904         (cached_make_edge): Ditto.
17905
17906         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
17907
17908 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17909
17910         * et-forest.c: Include alloc-pool.h.
17911         (struct et_forest): Add node_pool and occur_pool.
17912         (et_forest_create): Create the new pools.
17913         (et_forest_delete): Delete them.
17914         (et_forest_add_node): Allocate and free using pools.
17915         (et_forest_add_edge): Ditto.
17916         (et_forest_remove_node): Ditto.
17917         (et_forest_remove_edge): Ditto.
17918
17919         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
17920
17921 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
17922
17923         * config/h8300/h8300.c (output_logical_op): Simplify and
17924         optimize the handling of SImode.
17925         * config/h8300/h8300.c (compute_logical_op_length): Update
17926         accordingly.
17927         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
17928
17929 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
17930
17931         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
17932         big-endian correction to indirect arguments too.
17933
17934 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17935
17936         Segher Boessenkool  <segher@koffie.nl>
17937
17938         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
17939         (alt_reg_names): Ditto, fix formatting.
17940         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
17941
17942 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17943
17944         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
17945         (output_logical_op): Constify intval and det.
17946         (compute_logical_length): Likewise.
17947         (compute_logical_cc): Likewise.
17948         (output_a_shift): Constify mask.
17949         (h8300_encode_label): Constify len.
17950
17951 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17952
17953         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
17954         (h8300_expand_epilogue): Likewise.
17955
17956 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17957
17958         Segher Boessenkool  <segher@koffie.nl>
17959
17960         * config/rs6000/altivec.md: Remove spaces from assembler
17961         instruction argument lists.
17962
17963 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17964
17965         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
17966         c4x_assembler_function_p.
17967         (c4x_null_epilogue_p): Complement return value, all uses updated.
17968         (c4x_insert_attributes): Add naked.
17969         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
17970         * doc/extend.texi: Update C4x function attributes.
17971
17972 2003-01-06  Richard Henderson  <rth@redhat.com>
17973
17974         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
17975         properly when changing "local-ness".
17976         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
17977
17978 2003-01-06  Dale Johannesen  <dalej@apple.com>
17979
17980         * config/darwin-protos.h:  Add prototypes for new section functions.
17981
17982 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
17983
17984         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
17985         to EABI.
17986
17987 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
17988
17989         * hwint.h: If the current compiler has no 64-bit type at all,
17990         make HOST_WIDEST_INT 32 bits.
17991
17992 2003-01-06  Eric Christopher  <echristo@redhat.com>
17993
17994         * config/mips/mips.md (movdf_internal2): Fix constraints.
17995
17996 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17997
17998         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
17999
18000 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
18001
18002         * config/mips/mips.md (leadi): Use dla rather than la.
18003
18004 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
18005
18006         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
18007         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
18008
18009 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18010
18011         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
18012         redefinition.
18013
18014 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18015
18016         * config/h8300/h8300.md (*extzv_8_23): New.
18017
18018 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18019
18020         * pa64-hpux.h (JCR_SECTION_NAME): Define.
18021         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
18022         USE_EH_FRAME_REGISTRY when defining.
18023
18024 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18025
18026         * config/h8300/h8300.c (output_a_shift): Do not output a
18027         variable shift.
18028         * config/h8300/h8300.md (two splitters): New.
18029
18030 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
18031
18032         * config/mips/mips.md: Disable the movstrsi define_split.
18033
18034 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18035
18036         * alloc-pool.c: Don't include "libiberty.h".
18037         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
18038         * convert.c (convert_to_real): Hide unused variable.
18039
18040 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18041
18042         * Makefile.in (gtyp-gen.h): Const-ify.
18043         * gcov-dump.c (tag_table): Likewise.
18044
18045 2003-01-04  Bruce Korb  <bkorb@gnu.org>
18046
18047         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
18048         of *both* the file name and the fix name.
18049
18050 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
18051
18052         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
18053         collect2.
18054         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
18055         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
18056         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
18057         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
18058         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
18059         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
18060         elfos.h.
18061         (EH_FRAME_IN_DATA_SECTION): Delete define.
18062         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
18063         (STARTFILE_SPEC): Use crtbegin.o.
18064         (ENDFILE_SPEC): Use crtend.o.
18065         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
18066         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
18067         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
18068         DTOR_LIST_BEGIN): Define.
18069         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
18070         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
18071         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
18072
18073 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
18074
18075         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
18076         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
18077         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
18078         Cleanup handling of replacement text.
18079         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
18080
18081 2003-01-04  Bruce Korb  <bkorb@gnu.org>
18082
18083         * fixinc/tests/base/math.h: removed obsolete results
18084         * fixinc/tests/base/stdlib.h: ditto
18085         * fixinc/tests/base/sys/param.h: ditto
18086         * fixinc/tests/base/sys/stat.h: ditto
18087         * fixinc/tests/base/time.h: ditto
18088         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
18089         * fixinc/tests/base/sys/byteorder.h: ditto
18090         * fixinc/inclhack.def: Remove superfluous backslashes
18091
18092 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
18093
18094         * config/h8300/h8300-protos.h: Add prototypes for
18095         the new functions defined below.
18096         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
18097         define.
18098         (dosize): Emit RTL instead of assembly code.
18099         (push): Likewise.
18100         (pop): Likewise.
18101         (h8300_output_function_prologue): Remove.
18102         (h8300_expand_prologue): New.
18103         (h8300_expand_epilogue): New.
18104         (h8300_output_function_epilogue): Do only the reset of
18105         pragma_saveall.
18106         * config/h8300/h8300.md (push_h8300): New.
18107         (push_h8300hs): Likewise.
18108         (pop_h8300): Likewise.
18109         (pop_h8300hs): Likewise.
18110         (*stm_h8300s_2): Change the name to stm_h8300s_2.
18111         (*stm_h8300s_3): Change the name to stm_h8300s_3.
18112         (*stm_h8300s_4): Change the name to stm_h8300s_4.
18113         (*ldm_h8300s_2): New.
18114         (*ldm_h8300s_3): Likewise.
18115         (*ldm_h8300s_4): Likewise.
18116         (return): Likewise.
18117         (*return_1): Likewise.
18118         (prologue): Likewise.
18119         (epilogue): Likewise.
18120         (monitor_prologue): Likewise.
18121
18122 2003-01-03  Dale Johannesen  <dalej@apple.com>
18123
18124         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
18125           machopic_picsymbol_stub1.
18126           (EXTRA_SECTION_FUNCTIONS):  Ditto.
18127         * rs6000/rs6000.c:  Update copyright.
18128           (machopic_output_stub):  Use them.  Remove an insn from stub code.
18129
18130 2003-01-02  Jason Merrill  <jason@redhat.com>
18131
18132         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
18133
18134         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
18135         static/external decls.
18136
18137         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
18138         outermost scope.
18139         * c-decl.c (c_make_fname_decl): Push the decls there, too.
18140
18141 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18142
18143         * config/h8300/h8300-protos.h: Add a prototype for
18144         h8300_current_function_interrupt_function_p.
18145         * config/h8300/h8300.c (interrupt_handler): Remove.
18146         (os_task): Likewise.
18147         (monitor): Likewise.
18148         (pragma_interrupt): New.
18149         (WORD_REG_USED): Use
18150         h8300_current_function_interrupt_function_p.
18151         (dosize): Likewise.
18152         (h8300_output_function_prologue): Likewise.
18153         Do not set interrupt_handler, os_task, monitor.
18154         (h8300_output_function_prologue): Use
18155         h8300_current_function_interrupt_function_p.
18156         Do not set interrupt_handler, os_task, monitor.
18157         (h8300_current_function_interrupt_function_p): New.
18158         (h8300_pr_interrupt): Set pragma_interrupt.
18159         (h8300_insert_attributes): Reset pragma_interrupt.
18160
18161 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18162
18163         * doc/install.texi (Configuration): Fix markup for reference to
18164         gcc/config.gcc.
18165
18166 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18167
18168         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
18169         (*iorhi3_two_qi): Likewise.
18170         (*iorsi3_zexthi): Likewise.
18171         (*xorhi3_zextqi): Likewise.
18172         (*xorsi3_zexthi): Likewise.
18173         (*xorsi3_zextqi): Likewise.
18174
18175 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18176
18177         * config/h8300/h8300.c (stack_pointer_operand): New.
18178         (const_int_gt_2_operand): Likewise.
18179         (const_int_ge_8_operand): Likewise.
18180         * config/h8300/h8300.md (a splitter): Likewise.
18181         (a peephole2): Likewise.
18182         * config/h8300/h8300-protos.h: Add prototypes for the new
18183         functions above.
18184
18185 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
18186
18187         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
18188         objc/objc-act.h: Fix copyright years.
18189
18190 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
18191
18192         * doc/passes.texi: Fix documentation for -fssa-ccp
18193
18194 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
18195
18196         * gccbug.in: Update for new categories.
18197
18198 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
18199
18200         * config/h8300/h8300.md: Reorder some patterns.
18201
18202 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
18203
18204         * config/h8300/h8300.c (output_logical_op): Fix a warning.
18205
18206 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
18207
18208         * config/darwin-protos.h, config/c4x/c4x-protos.h,
18209         config/cris/cris-protos.h, config/i370/i370-protos.h,
18210         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
18211         config/v850/v850-protos.h: Use struct, and don't conditionally
18212         compile on GCC_C_PRAGMA_H.
18213
18214 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
18215
18216         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
18217         * config/h8300/h8300-protos.h: Likewise.
18218         * config/sh/sh-protos.h: Likewise.
18219
18220 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
18221
18222         * config/arm/arm-protos.h: Use struct cpp_reader instead of
18223         cpp_reader.
18224         * config/h8300/h8300-protos.h: Likewise.
18225         * config/sh/sh-protos.h: Likewise.
18226
18227 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
18228
18229         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
18230         arm_pr_long_calls_off): Use struct.
18231         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
18232         : Similarly.
18233         Don't include cpplib.h.
18234         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
18235         sh_pr_nosave_low_regs): Similarly.
18236
18237 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
18238
18239         * config/h8300/h8300.c: Include cpplib.h.
18240
18241 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
18242
18243         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
18244           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
18245           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
18246           "GCC" in the copyright header.
18247
18248 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
18249
18250         * c-pragma.c (c_register_pragma): New.
18251         (init_pragma): Use it.
18252         * c-pragma.h (cpp_register_pragma): Don't declare.
18253         (c_register_pragma): New.
18254         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
18255         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
18256         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
18257         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
18258         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
18259         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
18260         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
18261         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
18262         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
18263         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
18264         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
18265         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
18266
18267 See ChangeLog.8 for earlier changes.