OSDN Git Service

ac969be79840a71cbd0418053cba9c1b2c7aae2d
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-09  David Edelsohn  <edelsohn@gnu.org>
2             Ayal Zaks  <gcchaifa@us.ibm.com>
3
4         * config/rs6000/rs6000.md (define_attr "type"): Add insert_word.
5         (insvsi*): Add insert_word attribute.
6         * config/rs6000/rs6000.c (rs6000_variable_issue): Add TYPE_INSERT_WORD.
7         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
8         power4.md,rios1.md,rios2.md,rs64.md}: Add insert_word.
9
10 2003-06-09  Kazu Hirata  <kazu@cs.umass.edu>
11
12         * fold-const.c (fold): Fix a comment typo.
13
14 2003-06-09  Nathan Sidwell  <nathan@codesourcery.com>
15
16         * tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is
17         removed.
18
19 2003-06-09  J"orn Rennecke <joern.rennecke@superh.com>
20
21         * sh.c (gen_block_redirect): Use locators.
22
23 2003-06-09  Richard Earnshaw  <rearnsha@arm.com>
24
25         * arm.h (THUMB_PRINT_OPERAND_ADDRESS): Use %wd in format and remove
26         cast to int.
27
28 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
29
30         * configure.in: Assume gas 2.14 and above can handle MIPS relocation
31         operators.
32         * configure: Regenerated.
33
34 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
35             Alexandre Oliva  <aoliva@redhat.com>
36
37         * config/mips/mips.h (GLOBAL_POINTER_REGNUM): New macro.
38         (PIC_OFFSET_TABLE_REGNUM): Look at pic_offset_table_rtx after reload.
39         (STARTING_FRAME_OFFSET): Don't allocate a cprestore slot for
40         n32/64 PIC.
41         (MUST_SAVE_REGISTERS): Delete.
42         * config/mips/mips.c (mips_frame_info): Remove extra_size field.
43         (machine_function): Add global_pointer field.
44         (mips_classify_constant): Check for (const $gp) using pointer equality
45         with pic_offset_table_rtx.
46         (mips_classify_constant): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
47         (mips_restore_gp): Use current_function_outgoing_args_size.
48         (print_operand): Use PIC_OFFSET_TABLE_REGNUM instead of
49         GP_REG_FIRST + 28.  Handle relocation strings that have
50         more than one '('.
51         (mips_reloc_string): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
52         (mips_global_pointer): New function.
53         (mips_save_reg_p): New function, mostly split out from...
54         (compute_frame_size): ...here.  Remove handling of extra_size.
55         Reclaim args_size if no variables depend on it.  Don't treat gp
56         as a special case: handle it in the main GPR loop.
57         (mips_initial_elimination_offset): Fix comment.
58         (save_restore_insns): Save every register in the GPR mask,
59         removing distinction between mask and real_mask.
60         (mips_output_function_prologue): Update .frame psuedo-op after
61         the removal of extra_size.  Move the SVR4 PIC stack allocation
62         and cprestore instructions to mips_expand_prologue.
63         (mips_gp_insn): New function.
64         (mips_expand_prologue): Set REGNO (pic_offset_table_rtx) to
65         the chosen global pointer.  Handle SVR4 PIC stack allocation
66         in the same way as other ABIs.  Adjust varargs code accordingly.
67         Emit a cprestore insn after allocating the stack.  Use mips_gp_insn
68         to emit the loadgp sequence.  Follow it with a loadgp_blockage
69         if not using explicit relocs.
70         (mips_output_function_epilogue): Reinstate the default gp register.
71         (mips16_gp_pseudo_reg): Use pic_offset_table_rtx.
72         (mips16_optimize_gp): Likewise.
73         * config/mips/mips.md (UNSPEC_LOADGP): Remove.
74         (UNSPEC_SETJMP, UNSPEC_LONGJMP): Remove.
75         (UNSPEC_CPRESTORE, RELOC_LOADGP_HI, RELOC_LOADGP_LO): New.
76         (loadgp): Remove.
77         (loadgp_blockage, cprestore): New instructions.
78         (builtin_setjmp_setup): Implement using emit_move_insn.  Use
79         pic_offset_table_rtx.
80         (builtin_setjmp_setup_32, builtin_setjmp_setup_64): Remove.
81         (builtin_longjmp): Use gen_raw_REG to force use of $28.
82
83 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
84
85         * config/mips/mips-protos.h (mips_output_division): Declare.
86         * config/mips/mips.h (MASK_CHECK_RANGE_DIV): Remove.
87         (MASK_BRANCHLIKELY): Use MASK_CHECK_RANGE_DIV's old number.
88         (TARGET_NO_CHECK_ZERO_DIV, TARGET_CHECK_RANGE_DIV): Remove.
89         (TARGET_CHECK_ZERO_DIV): New macro.
90         (TARGET_SWITCHES): Remove -mcheck-range-div & -mno-check-range-div.
91         * config/mips/mips.c (mips_output_division): New function.
92         * config/mips/mips.md (length): Take TARGET_CHECK_ZERO_DIV into
93         account when calculating the default length of a division.
94         (divmodsi4, divmoddi4, udivmodsi4, udivmoddi4): Turn into define_insns.
95         Enable regardless of optimization level.  Use mips_output_division.
96         (divmodsi4_internal, divmoddi4_internal, udivmodsi4_internal,
97         udivmoddi4_internal, div_trap, div_trap_normal, div_trap_mips16,
98         divsi3, divsi3_internal, divdi3, divdi3_internal, modsi3,
99         modsi3_internal, moddi3, moddi3_internal, udivsi3, udivsi3_internal,
100         udivdi3, udivdi3_internal, umodsi3, umodsi3_internal, umoddi3,
101         umoddi3_internal): Remove.
102
103 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
104
105         * config/mips/mips.c (mips_reg_names): Change hilo entry to "".
106         (mips_sw_reg_names): Likewise.
107         (mips_regno_to_class): Change hilo entry to NO_REGS.
108         (hilo_operand): Use MD_REG_P.
109         (extend_operator): New predicate.
110         (override_options): Remove 'a' constraint.
111         (mips_secondary_reload_class): Remove hilo handling.  Also remove
112         handling of (plus sp reg) reloads for mips16.
113         (mips_register_move_cost): Remove hilo handling.
114         * config/mips/mips.h (FIXED_REGISTERS): Make hilo entry fixed.
115         (MD_REG_LAST): Remove hilo from range.
116         (HILO_REGNUM): Delete.
117         (reg_class): Remove HILO_REG and HILO_AND_GR_REGS.
118         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
119         (PREDICATE_CODES): Add entry for extend_operator.
120         (DEBUG_REGISTER_NAMES): Change hilo entry to "".
121         * config/mips/mips.md: Remove hilo clobbers wherever they occur.
122         Remove constraints from multiplication define_expands.  Remove
123         clobbers from "decorative" define_expand patterns.
124         (UNSPEC_HILO_DELAY): Delete.
125         (*mul_acc_si, *mul_sub_si): Add early-clobber to operand 6.
126         (mulsidi3, umulsidi3): Change pattern to match the TARGET_64BIT case.
127         Adjust C code to just emit insns for !TARGET_64BIT.
128         (mulsidi3_internal): Rename to mulsidi3_32bit.
129         (mulsidi3_64bit): Use a "d" constraint for the destination.
130         Use extend_operator so that the pattern can handle umulsidi3 as well.
131         Split the instruction after reload.
132         (*mulsidi3_64bit_parts): New pattern, generated by mulsidi3_64bit.
133         (umulsidi3_internal): Rename to umulsidi3_32bit.
134         (umulsidi3_64bit): Remove.
135         (*smsac_di, *umsac_di): Line-wrap fixes.
136         (udivsi3_internal): Don't allow operand 2 to be constant.
137         (udivdi3_internal, umodsi3_internal, umoddi3_internal): Likewise.
138         (movdi_internal2, movsi_internal): Remove hilo alternatives.
139         (reload_in[sd]i, reload_out[sd]i, hilo_delay): Remove.
140
141 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
142
143         PR target/10913
144         * config/mips/mips.h (TARGET_FILE_SWITCHING, NO_DBX_FUNCTION_END,
145         PUT_SDB_SCL, PUT_SDB_INT_VAL, PUT_SDB_VAL, PUT_SDB_ENDEF,
146         PUT_SDB_TYPE, PUT_SDB_SIZE, PUT_SDB_DIM, PUT_SDB_START_DIM,
147         PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM, PUT_SDB_TAG, PUT_SDB_SRC_FILE,
148         SDB_GENERATE_FAKE, TEXT_SECTION): Delete.
149         (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF, PUT_SDB_BLOCK_START,
150         PUT_SDB_BLOCK_END, PUT_SDB_FUNCTION_END): Replace use of
151         asm_out_text_file with asm_out_file.
152         * config/mips/iris5gas.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Likewise.
153         * config/mips/elf.h (TEXT_SECTION): Undefine.
154         * config/mips/elf64.h (TEXT_SECION): Undefine.
155         * config/mips/openbsd.h (TEXT_SECION): Undefine.
156         * config/mips/mips.c (asm_out_text_file, asm_out_data_file): Delete.
157         (override_options): Disable small-data optimizations unless using
158         gas or explicit relocations.
159         (mips_asm_file_start, mips_asm_file_end, mips_output_function_epilogue,
160         iris6_asm_named_section, iris6_asm_file_start): Remove code for
161         handling TARGET_FILE_SWITCHING.
162         (copy_file_data): Move into TARGET_IRIX6 block.
163
164 2003-06-08  Richard Henderson  <rth@redhat.com>
165
166         * expr.h (EXPAND_MEMORY): New.
167         * expr.c (expand_expr): Check it.
168         * stmt.c (expand_asm_operands): Provide it when the constraint
169         requires a memory.  Warn for memory input constraints without
170         a memory operand.
171
172 2003-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
173
174         * varasm.c: Don't include c-tree.h.
175
176 2003-06-08  Andreas Jaeger  <aj@suse.de>
177
178         * predict.h: Convert to ISO C90 prototypes.
179         * predict.c: Likewise.
180         * tree-dump.h: Likewise.
181         * tree-dump.c: Likewise.
182         * diagnostic.h: Likewise.
183         * diagnostic.c: Likewise.
184         * combine.c: Likewise.
185
186         * rtl.h: Convert prototypes of combine.c to ISO C90.
187
188 Sun Jun  8 21:27:41 CEST 2003  Jan Hubicka  <jh@suse.cz>
189
190         * cfglayout.c (insn_scope): New static function
191         (block_locators_*, line_locators*, file_locators*): New static varrays.
192         (scope_to_insns_initialize): Use them.
193         (insn_line, insn_file): New functions.
194         (scope_to_insns_finalize): Use insn_scope.
195         (prologue_locator, epilogue_locator): New global variables.
196         * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
197         make_call_insn_raw, emit_copy_of_insn_after): Use locators.
198         (emit_insn_after_scope, emit_insn_before_scope
199         emit_jump_insn_after_scope, emit_jump_insn_before_scope
200         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
201         (emit_insn_after_setloc, emit_insn_before_setloc
202         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
203         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
204         use locators.
205         * final.c (notice_source_line): Use locators.
206         (final_start_function): Set initial source file and line.
207         (final_scan_insn): Use locators.
208         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
209         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
210         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
211         noce_process_if_block, find_cond_trap): Likewise.
212         * integrate.c (copy_insn_list): Likewise.
213         * jump.c (duplicate_loop_exit_test): LIkewise.
214         * print-rtl.c (print_rtx): Print locators.
215         * recog.c (peephole2_optimize): Likewise.
216         * rtl.h (INSN_SCOPE): Remove.
217         (emit_insn_after_scope, emit_insn_before_scope
218         emit_jump_insn_after_scope, emit_jump_insn_before_scope
219         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
220         (emit_insn_after_setloc, emit_insn_before_setloc
221         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
222         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
223         (insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
224         * unroll.c (copy_loop_body): Use locators.
225         * function.c (set_insn_locators): New function.
226         (thread_prologue_and_epilogue_insns): Set the locators accordingly.
227
228 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
229
230         * config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.
231         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf
232         _fixsfdi _fixunssfdi.
233         (LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2,
234         popcounthi2.
235         (TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI.
236         * config/h8300/clzhi2.c: New.
237         * config/h8300/ctzhi2.c: Likewise.
238         * config/h8300/parityhi2.c: Likewise.
239         * config/h8300/popcounthi2.c: Likewise.
240
241 Sun Jun  8 15:52:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
242
243         * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates.
244         * i386.c (k8_avoid_jump_misspredicts): Fix debug output.
245
246         * cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here.
247         (dump_bb): New based on old dump_bb in cfgrtl.c
248         (debug_bb, debug_bb_n): Move the functions from cfgrtl.c here.
249         * cfghooks.h (cfgh_verify_flow_info): Return status.
250         * cfglayout.c (cfg_layout_finalize): Verify CFG correctness.
251         * cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c
252         (dump_bb): Remove generic parts.
253         (rtl_verify_flow_info_1): Break out from rtl_verify_flow_info.
254         (rtl_verify_flow_info): Only check things dependeing on linearized RTL.
255
256 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
257
258         * Makefile.in: Rename options.c and options.h to c-options.c and
259         c-options.h.
260         (OBJS): Remove options.o.
261         * c-opts.c: Don'tInclude c-options.h instead of options.h.
262         * opts.c: Don't include options.h.
263         (find_opt): Can't use enum opt_code or N_OPTS.
264         * opts.h (struct cl_option, cl_options, cl_options_count): Move from...
265         * opts.sh: ... here.
266
267 2003-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
268             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
269
270         PR pch/9830
271         * ggc-common.c (HAVE_MMAP_FILE): Include sys/types.h
272         if HAVE_MINCORE is defined.
273         (MAP_FAILED): Define if not defined.
274         (gt_pch_save): Test against MAP_FAILED.
275         (gt_pch_restore): If HAVE_MINCORE, use MAP_FIXED to force
276         the mapping address to the preferred base after checking it
277         is possible to do so. Test against MAP_FAILED.
278         * configure.in: Test for the presence of mincore in libc.
279         * config.in: Regenerate.
280         * configure: Regenerate.
281
282 2003-06-07  Richard Henderson  <rth@redhat.com>
283
284         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Fix
285         conditional compilation guard.
286
287 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
288
289         * optabs.c (expand_abs): Set result_unsignedp to 1 if
290         flag_trav is zero.
291
292 2003-06-07  Richard Henderson  <rth@redhat.com>
293
294         * c-cppbuiltin.c (c_cpp_builtins): Define __EXCEPTIONS for C also.
295
296 2003-06-07  Richard Henderson  <rth@redhat.com>
297
298         * basic-block.h (EDGE_SIBCALL): New.
299         (EDGE_ALL_FLAGS): Update.
300         * cfg.c (dump_edge_info): Add sibcall name.
301         * cfgbuild.c (make_edges): Use EDGE_SIBCALL.
302         * cfgrtl.c (purge_dead_edges): Handle sibcalls.
303
304 2003-06-07  Andreas Jaeger  <aj@suse.de>
305
306         * mklibgcc.in (lib2funcs): Remove _exit.
307         * libgcc2.c: Remove L_exit.
308         * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT.
309
310         * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY.
311
312         * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY.
313
314         * ggc.h: Convert to ISO C90 prototypes.
315         * ggc-none.c: Likewise.
316         * ggc-common.c: Likewise.
317         * ggc-page.c: Likewise.
318         * ggc-simple.c: Likewise.
319
320         * crtstuff.c: Remove undefined usage of INIT_SECTION_PREAMBLE.
321
322         * system.h: Poison INIT_SECTION_PREAMBLE.
323
324 2003-06-07  Zack Weinberg  <zack@codesourcery.com>
325
326         * config.gcc (with_cpu handling): Translate sparc64 in
327         $machine to --with-cpu=v9.
328         * config/alpha/alpha.c
329         (TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition.
330         (alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK.
331
332         * target.h: New hook asm_out.file_end.
333         * target.h: Update to match.  New hook macro TARGET_ASM_FILE_END.
334         * toplev.c (compile_file: Use targetm.asm_out.file_end.
335         * system.h: Poison ASM_FILE_END.
336         * varasm.c (file_end_indicate_exec_stack): New.
337         * output.h: Prototype it.
338         * doc/tm.texi: Document TARGET_ASM_FILE_END and
339         file_end_indicate_exec_stack.  Delete references to attasm.h.
340
341         * config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end.
342         (ASM_FILE_END): Delete; move code...
343         * config/darwin.c (darwin_file_end): Here; new function.
344         * config/darwin-protos.h: Prototype it.
345         * config/alpha/alpha.c (unicosmk_asm_file_end): Make static,
346         rename unicosmk_file_end.
347         * config/arm/aof.h (ASM_FILE_END): Delete; move code...
348         * config/arm/arm.c (aof_file_end): ... here; new static function.
349         Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER.
350         Make aof_dump_imports and aof_dump_pic_table static.
351         * config/avr/avr.c (asm_file_end): Rename avr_file_end, make static.
352         Set TARGET_ASM_FILE_END to avr_file_end.
353         * config/c4x/c4x.c (c4x_file_end): Make static.  Take no arguments.
354         Set TARGET_ASM_FILE_END to c4x_file_end.
355         * config/h8300/h8300.c (asm_file_end): Rename h8300_file_end,
356         make static. Take no arguments.  Set TARGET_ASM_FILE_END to
357         h8300_file_end.
358         * config/i370/i370.h (ASM_FILE_END): Delete; move code...
359         * config/i370/i370.c (i370_file_end): ... here; new static function.
360         Set TARGET_ASM_FILE_END to i370_file_end.
361          * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end.
362          Take no arguments.  Call file_end_indicate_exec_stack if
363          NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END.
364         * config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
365         Define NEED_INDICATE_EXEC_STACK to 0.
366         * config/i386/linux.h, config/i386/linux64.h: Redefine
367         NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END.
368         * config/i386/winnt.c (i386_pe_asm_file_end): Rename to
369         i386_pe_file_end.  Take no arguments.  Use ix86_file_end.
370         * config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to
371         ia64_hpux_file_end, make static.  Take no arguments.
372         * config/ip2k/ip2k.c (asm_file_start, asm_file_end,
373         commands_in_prologues, commands_in_epilogues): Delete.
374         (function_epilogue): Update to match.
375         * config/mips/mips.c (mips_asm_file_end): Rename mips_file_end,
376         make static.  Take no arguments.
377         (iris6_asm_file_end): Rename iris6_file_end, make static, use
378         mips_file_end, take no arguments.
379         Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as
380         appropriate.
381         * config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end,
382         make static, take no arguments. Set TARGET_ASM_FILE_END to
383         mmix_file_end.
384         * config/pa/pa.c (output_deferred_plabels): Make static, take
385         no arguments.  Set TARGET_ASM_FILE_END to output_deferred_plabels.
386         * config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it.
387         (ASM_FILE_END): Delete; move code...
388         * config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here;
389         new static function.
390
391         * config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h
392         * config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h:
393         Don't set ASM_FILE_END.
394         * config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h
395         * config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h
396         * config/sparc/linux64.h: Set TARGET_ASM_FILE_END to
397         file_end_indicate_exec_stack; don't set ASM_FILE_END.
398         * config/alpha/unicosmk.h, config/i386/cygming.h
399         * config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
400         * config/arm/arm-protos.h, config/alpha/alpha-protos.h
401         * config/avr/avr-protos.h, config/c4x/c4x-protos.h
402         * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
403         * config/ip2k/ip2k-protos.h, config/mips/mips-protos.h
404         * config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update.
405
406 Sat Jun  7 18:32:13 CEST 2003  Jan Hubicka  <jh@suse.cz>
407
408         * i386.h (OPTION_DEFAULT_SPECS): Avoid -mcpu default when -march is
409         specified.
410
411 Sat Jun  7 15:20:01 CEST 2003  Jan Hubicka  <jh@suse.cz>
412
413         * Makefile.in (stageprofile_build): Kill redundant target.
414         * i386.c (mdep_reorg): Don't pad jumps for Athlon.
415
416 2003-06-07  Andreas Jaeger  <aj@suse.de>
417
418         * doc/tm.texi (Costs): Remove DONT_REDUCE_ADDR documentation.
419
420         * config/avr/avr.h: Remove comment regarding DONT_REDUCE_ADDR.
421         * config/dsp16xx/dsp16xx.h: Likewise.
422         * config/i386/i386.h: Likewise.
423         * config/ip2k/ip2k.h: Likewise.
424
425 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
426
427         * Makefile.in (OJBS, c-opts.o): Update.
428         (c-options.c, c-options.h): Rename options.h and options.c.
429         (options.h): Rename options_.h.
430         (opts.o): New.
431         * c-common.h (c_common_handle_option): Replace c_common_decode_option.
432         (c_common_init_options): Update prototype.
433         * c-lang.c (c_init_options): Update prototype.
434         (LANG_HOOKS_HANDLE_OPTION): Override.
435         (LANG_HOOKS_DECODE_OPTION): Drop.
436         * c-opts.c: Include opts.h and options.h instead of c-options.h
437         and c-options.c.
438         (lang_flags): Move to file scope.
439         (find_opt, c_common_decode_option): Remove.
440         (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE,
441         CL_REJECT_NEGATIVE): Move to opts.h.
442         (missing_arg): Update prototype.
443         (c_common_init_options): Update for new prototype.
444         (c_common_handle_options): Filenames are passed as N_OPTS.
445         * hooks.c (hook_int_void_0): New.
446         * hooks.h (hook_int_void_0): New.
447         * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default.
448         (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now.
449         (LANG_HOOKS_INITIALIZER): Update.
450         * langhooks.h (init_options): Update.
451         (handle_option): New.
452         * opts.c, opts.h: New files.
453         * opts.sh: Update c file to include opts.h and options.h.
454         * toplev.c: Include opts.h; change options.h to options_.h.
455         (parse_options_and_default_flags): Get lang_mask, use
456         handle_option for language-specific handling.
457         * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
458         (LANG_HOOKS_HANDLE_OPTION): Override.
459         (objc_init_options): Update.
460
461 2003-06-07  Magnus Kreth <magnus.kreth@gmx.de>
462             Thibaud Gaillard <thibaud.gaillard@nto.atmel.com>
463
464         PR other/7031
465         * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of
466         gcov.
467
468 2003-06-07  Kelley Cook  <kelleycook@wideopenwest.com>
469
470         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
471         section names.
472         * configure: Regenerate.
473
474 2003-06-07  Alan Modra  <amodra@bigpond.net.au>
475
476         * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
477
478 2003-06-06  James E Wilson  <wilson@tuliptree.org>
479
480         PR inline-asm/10890
481         * reload1.c (merge_assigned_reloads): Abort only if two reloads have
482         different in fields.
483
484 2003-06-06  Nathanael Nerode  <neroden@gcc.gnu.org>
485
486         * configure.in: Make $(target_subdir) correspond with top level usage.
487         * Makefile.in: Likewise.
488         * configure: Regenerate.
489
490 2003-06-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
491
492         * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
493         ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
494         unsigned HOST_WIDE_INT.
495         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
496         Likewise.
497         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
498         Likewise.
499
500 2003-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
501
502         * doc/install.texi (Prerequisites): New section documenting
503         tools and packages necessary prior to building and/or
504         modifying GCC.
505         * doc/install.texi2html: Also generate prerequisites.html.
506
507 2003-06-06  Richard Earnshaw  <rearnsha@arm.com>
508
509         PR target/11052
510         * ifcvt.c (noce_process_if_block): Fail if the destination has
511         side-effects.
512
513 2003-06-06  Jason Merrill  <jason@redhat.com>
514
515         * stmt.c (resolve_asm_operand_names): Rename from
516         resolve_operand_names.  No longer static.  Avoid needless copying.
517         Don't build array of constraints.
518         (expand_asm_operands): Build it here.
519         * tree.h: Declare resolve_asm_operand_names.
520
521         * stmt.c (expand_decl): Put artificial vars into registers even
522         when not optimizing, and don't mark the regs as user vars.
523
524 2003-06-06  J"orn Rennecke <joern.rennecke@superh.com>
525
526         * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
527         of the generated register.
528
529 2003-06-06  Daniel Jacobowitz  <drow@mvista.com>
530
531         * config.gcc: Add a missing sparc64 case.
532
533 2003-06-06  Jakub Jelinek  <jakub@redhat.com>
534
535         * mklibgcc.in: Propagate .note.GNU-stack section if needed into
536         the .hidden assembly stubs.
537
538 2003-06-06  H.J. Lu <hongjiu.lu@intel.com>
539
540         * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
541         and x86_64-*-*.
542
543         * config/i386/mmintrin.h: Update version and add alternate
544         intrinsic names.
545         * config/i386/xmmintrin.h: Likewise.
546
547         * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
548         intrinsics to ...
549         * config/i386/emmintrin.h: Here. New file.
550
551 2003-06-06  Roger Sayle  <roger@eyesopen.com>
552
553         * fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
554         fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
555         when the ABS_EXPR (fabs or abs) is not required.
556         (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
557         always nonnegative from fold to here.  Additionally, cabs and fabs
558         are always non-negative, and pow and atan are non-negative if
559         their first argument is non-negative.
560
561         * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
562         Evaluate cabs of a constant at compile-time.  Convert cabs of a
563         non-complex argument into fabs.  Convert cabs(z) into
564         sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
565         -funsafe-math-optimizations or -ffast-math.
566         (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
567         Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
568
569 Thu Jun  5 20:51:09 CEST 2003  Jan Hubicka  <jh@suse.cz>
570
571         * sourcebuild.texi (Front End Directory): Document new hooks.
572
573 Fri Jun  6 11:02:35 CEST 2003  Jan Hubicka  <jh@suse.cz>
574
575         * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
576         * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
577         stack frames.
578         (pro_epilogue_adjust_stack_rex64_2): New pattern
579
580 Fri Jun  6 11:03:14 CEST 2003  Jan Hubicka  <jh@suse.cz>
581                                Pop Sebastian
582                                Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
583
584         * cfghooks.h, cfghooks.c: New files.
585         * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
586         (OBJS): Add cfghooks.o.
587         (cfghooks.o): New rule.
588         * basic-block.h (split_edge): Rename to rtl_split_edge.
589         (verify_flow_info): Rename to rtl_verify_flow_info.
590         (cfghooks.h): Included here.
591         * cfgrtl.c (split_edge): Renamed rtl_split_edge.
592         (verify_flow_info): Renamed rtl_verify_flow_info.
593         * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
594
595         * basic-block.h (split_block, split_edge, flow_delete_block,
596         redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
597         (flow_delete_block_noexpunge):  Return void.
598         * cfg.c (verify_flow_info): New function.
599         * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
600         try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
601         Use delete_block.
602         * cfglayout.c (function_footer): Rename to...
603         (cfg_layout_function_footer): ... this variable
604         (unlink_insn_chain): Make global.
605         (fixup_reorder_chain, record_effective_endpoints): Update.
606         (cleanup_unconditional_jumps): Use delete_block.
607         (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
608         (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
609         (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
610         * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
611         (cfg_layout_function_footer): Declare.
612         * cfgloopmanip (split_loop_bb): Do not update RBI.
613         (remove_bbs): Use delete_block.
614         (loop_reidrect_edge, loop_delete_branch_edge): Use
615         redirect_edge_and_branch.
616         (create_preheader): Use split_block and redirect_edge_and_branch_force.
617         (split_edge_with): Likewise.
618         * cfgrtl.c: Include cfglayout.h
619         (split_edge): Rename to ...
620         (rtl_split_edge) ... this one; make local.
621         (redirect_edge_and_branch): Rename to ...
622         (rtl_redirect_edge_and_branch) ... this one; make local.
623         (redirect_edge_and_branch_force): Rename to ...
624         (rtl_redirect_edge_and_branch_force) ... this one; make local.
625         (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
626         (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
627         cfglayout.c; update to directly call RTL counterparts.
628         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
629         * ifcvt.c (find_cond_trap): Use delete_block.
630         (find_if_case_1): Use delete_block.
631         (find_if_case_2): Use delete_block.
632         * rtl.h (unlink_insn_chain): Declare.
633         * toplev.c (rtl_reigster_cfg_hooks): New.
634
635 2003-06-05  Richard Henderson  <rth@redhat.com>
636
637         * recog.c (peephole2_optimize): Revert last change.
638
639 2003-06-05  Richard Henderson  <rth@redhat.com>
640
641         * recog.c (peephole2_optimize): Don't split block unless
642         can_throw_internal.
643
644 2003-06-06  Kazu Hirata  <kazu@cs.umass.edu>
645
646         * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
647         * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
648
649 2003-06-05  Kelley Cook  <kelleycook@wideopenwest.com>
650
651         PR optimization/4490
652         * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
653         * doc/invoke.texi (m96bit-long-double, m128bit-long-double):  Reword
654         documentation to accurately reflect what these options do.
655
656 2003-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
657
658         * config/sh/linux.h (STARTFILE_SPEC): Handle -pie.  Simplify.
659         (ENDFILE_SPEC): Redefine to handle -pie.
660
661 2003-06-05  Phil Edwards <phil@jaj.com>
662
663         * Makefile.in (qmtest-g++): Use target_alias, not target.
664
665 2003-06-05  Per Bothner  <pbothner@apple.com>
666
667         * toplev.c (push_srcloc):  Simplify behavior to save current location
668         and set current location to parameters.
669         (pop_srcloc):  Simplify semantics.
670         (lang_dependent_init):  Remove now-useless initial push_srcloc.
671
672 2003-05-06  Richard Henderson  <rth@redhat.com>
673
674         * dwarf2out.c (loc_descriptor_from_tree): Return 0 for
675         language-specific tree codes.
676
677 2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
678
679         PR middle-end/9986
680         * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
681         BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
682
683 Thu Jun  5 18:32:46 CEST 2003  Jan Hubicka  <jh@suse.cz>
684
685         * install.tex: Document profiledbootstrap.
686
687         * configure.in:  Add support for lang.stageprofile and
688         lang.stagefeedback
689         * Makefile.in (clean, distclean): Kill new stages
690         (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
691         (STAGE2_FLAGS_TO_PASS): ... this one.
692         (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
693         (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
694         (stageprofile_build, stageprofile_copy, stagefeedback_build,
695         stagefeedback_copy): New.
696         (restageprofile, restagefeedback, stageprofile-start,
697         stageprofile, stagefeedback-start): Likewise.
698
699 2003-06-05  David Miller  <davem@redhat.com>
700             Richard Henderson  <rth@redhat.com>
701
702         * optabs.c (HAVE_conditional_trap): Provide default.
703         (gen_conditional_trap): Likewise.
704         (init_optabs): Merge init_traps.
705         (gen_cond_trap): Use prepare_operand.  Restructure and avoid ifdef.
706
707 Thu Jun  5 14:59:44 CEST 2003  Jan Hubicka  <jh@suse.cz>
708
709         * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
710         is REG for nonzero_bits (REG) == 8.
711
712 Thu Jun  5 13:23:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
713
714         * i386.md (align): Fix warning; clarify what to do when no p2align
715         is available.
716
717 2003-06-05  Nick Clifton  <nickc@redhat.com>
718
719         * config.gcc (m32r-elf): Revert previous delta.
720         * config/m32r/t-m32r (crtinit.o): Fix rule to work with
721         multilibs.  Remove m32rx specific version.
722         (crtfini.o): Likewise.
723         (EXTRA_MULTILIB_PARTS): Define.
724
725 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
726
727         * doc/md.texi (Machine Constraints): Correct the meaning of
728         constraints related to floating-point registers on SPARC.
729
730 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
731             Paolo Bonzini  <bonzini@gnu.org>
732
733         PR target/10663
734         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
735         assembler and linker output to /dev/null.
736         Use a 'sed' construct instead of 'grep -A1'.
737         * configure: Regenerate.
738
739 2003-06-04  Richard Henderson  <rth@redhat.com>
740
741         * config/i386/i386.c (struct ix86_address): Add seg.
742         (no_seg_address_operand): New.
743         (ix86_decompose_address): Restructure PLUS loop.  Accept one
744         UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS.  Adjust ESP swap test
745         to test for a regnum, not stack_pointer_rtx.
746         (ix86_address_cost): Reduce cost if non-default segment.
747         (legitimate_address_p): Remove UNSPEC_TP check.
748         (get_thread_pointer): Add to_reg argument.  Don't represent
749         the thread pointer as a memory load.
750         (legitimize_tls_address): Split out of ...
751         (legitimize_address): ... here.
752         (print_operand_address): Handle parts.seg.
753         (ix86_expand_move): Use legitimize_tls_address.
754         (ix86_rtx_costs): Handle UNSPEC_TP.
755         * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
756         (TARGET_TLS_DIRECT_SEG_REFS): New.
757         (TARGET_SWITCHES): Add tls-direct-seg-refs.
758         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
759         (PREDICATE_CODES): Add no_seg_address_operand.
760         * config/i386/i386.md (lea_1): Use it.
761         (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
762         (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
763         * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
764         * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
765         * doc/invoke.texi: Add -mtls-direct-seg-refs.
766
767 2003-06-04  Mark Mitchell  <mark@codesourcery.com>
768
769         * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
770         (QMTEST_GPP_TESTS): Use "g++" by default.
771         (stamp-qmtest): Tweak database creation.
772         (QMTEST_DIR/context): Update context file format.
773         (qmtest-g++): Tweak command-line.
774
775 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
776
777         * Makefile.in (varasm.o): Don't set -Wno-error.
778         * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
779
780 2003-06-04  Zack Weinberg  <zack@codesourcery.com>
781
782         PR bootstrap/3163
783         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
784         (gcc_AC_FUNC_MMAP_BLACKLIST): New.
785         * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
786         and AC_CHECK_FUNCS lists, respectively.  Use
787         gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
788         AC_FUNC_MMAP_FILE.
789         * configure, config.in: Regenerate.
790
791 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
792
793         * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
794         * arm.c (arm_output_function_prologue): Fix format specifiers.
795         * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
796         * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
797         HOST_WIDE_INT_PRINT_DEC.
798         * vax.c (vax_output_function_prologue): Fix format specifiers.
799
800 2003-06-04  Richard Henderson  <rth@redhat.com>
801
802         * cse.c (find_best_addr): Consider binary operators even if second
803         argument is not CONST_INT.
804
805 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
806
807         * doc/invoke.texi (max-cse-path-length): Document.
808
809 2003-06-04  Richard Henderson  <rth@redhat.com>
810
811         * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
812
813 2003-06-04  Andrew Pinski <pinskia@physics.uc.edu>
814
815         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
816         Remove semi-colon at the end of the expression.
817
818 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
819
820         * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
821         * i370.h (mvs_function_name_length): Likewise.
822         * i960.h (CONSTANT_ALIGNMENT): Likewise.
823         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
824         * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
825         * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
826         * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
827         variable.
828
829 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
830
831         * config.gcc: Reorganize --with-cpu logic.  Set
832         configure_default_options according to the default CPU, --with-cpu,
833         --with-arch, --with-tune, --with-schedule, --with-abi, and
834         --with-float.  Check for legal values of various options.
835         * configure.in: Define configure_default_options in configargs.h.
836         * configure: Regenerated.
837         * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
838         (TARGET_DEFAULT_FLOAT_P): New macros.
839         * gcc.c (do_option_spec): New function.
840         (struct default_spec, option_default_specs): New.
841         (main): Call do_option_spec.
842         * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
843         config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
844         config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
845
846         * doc/install.texi: Update --with-cpu documentation.  Mention
847         --with-arch, --with-schedule, --with-tune, --with-abi, and
848         --with-float.
849         * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
850
851 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
852
853         * config.gcc: Only process --with-cpu logic in the third pass.
854
855 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
856
857         * config.gcc: Reorganize --with-cpu section.  Remove an
858         obsolete comment about the default CPU for x86-64.  Fix
859         a typo for the ep9312.  Update the list of supported PowerPC
860         CPUs.  Support a limited set of new --with-cpu options
861         for i386.
862
863 2003-06-04  Aldy Hernandez  <aldyh@redhat.com>
864
865         * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
866         complex numbers <= 32 bits into two registers.
867
868 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
869
870         * alpha.c (print_operand_address): Fix format specifier warnings.
871         * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
872         * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
873         * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
874         * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
875         * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
876         ASM_OUTPUT_SKIP): Likewise.
877         * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
878         * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
879         * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
880         Likewise.
881         * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
882         * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
883         * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
884         * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
885         * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
886         * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
887         * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
888         * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
889         * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
890         * svr3.h (ASM_OUTPUT_COMMON): Likewise.
891
892 2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
893
894         * c-decl.c (c_init_decl_processing): Clear input_file_name
895         while building common nodes.
896         * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
897         Don't add working directory for strings like <built-in> .
898
899 2003-06-04  David Edelsohn  <edelsohn@gnu.org>
900
901         * doc/install.texi (*-ibm-aix*): Native as and ld required
902         to bootstrap on AIX 5L.
903
904 2003-06-04  Richard Henderson  <rth@redhat.com>
905
906         * c-common.c (handle_cleanup_attribute): New.
907         (c_common_attributes): Add it.
908         * c-decl.c (finish_decl): Honor the cleanup attribute.
909         * doc/extend.texi (Variable Attributes): Document it.
910
911         * unwind-c.c: New file.
912         * Makefile.in (LIB2ADDEH): Add it.
913         * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
914         config/ia64/t-ia64: Likewise.
915
916 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
917
918         * function.c (trampolines_created): New variable.
919         (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
920         * function.h (trampolines_created): Add.
921         * config/s390/linux.h (ASM_FILE_END): Define.
922         * config/alpha/linux-elf.h (ASM_FILE_END): Define.
923         * config/m68k/linux.h (ASM_FILE_END): Define.
924         * config/rs6000/linux.h (ASM_FILE_END): Define.
925         * config/rs6000/linux64.h (ASM_FILE_END): Define.
926         * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
927         * config/sparc/linux.h (ASM_FILE_END): Define.
928         * config/sparc/linux64.h (ASM_FILE_END): Define.
929         * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
930         * config/i386/linux.h (SUBTARGET_FILE_END): Define.
931         * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
932
933 Wed Jun  4 18:39:33 CEST 2003  Jan Hubicka  <jh@suse.cz>
934
935         * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
936         (ix86_reorg): Use it.
937         * i386.md (align): New insn pattern.
938
939 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
940
941         * toplev.c (rest_of_type_compilation): Fix typo.
942
943 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
944             Alan Modra  <amodra@bigpond.net.au>
945
946         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
947         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
948         * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
949         * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
950         * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
951         * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
952         (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
953         * config/rs6000/rs6000.c (output_profile_hook): Likewise.
954
955         * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
956         Pass it to $gcc_cv_as.
957         * configure: Rebuilt.
958
959         * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
960         (print_operand): Allow TARGET_AIX to be non-constant.
961         (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
962         Define unconditionally.
963         (rs6000_elf_declare_function_name): New function.
964         * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
965         non-constant.
966         * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
967         to 1.
968         (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
969         [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
970         is defined.
971         (TARGET_AIX): Define to 1 if TARGET_64BIT.
972         (PROCESSOR_DEFAULT): Remove.
973         (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
974         INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
975         [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
976         (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
977         -m32 and -m64.
978         (MULTILIB_DEFAULTS): Define.
979         (SUBSUBTARGET_EXTRA_SPECS): Define.
980         (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
981         (TARGET_TOC): Define only if !RS6000_BI_ARCH.
982         (TARGET_NO_TOC): Remove.
983         [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
984         TARGET_PROTOTYPE): Define to 0.
985         (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
986         (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
987         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
988         if !TARGET_64BIT.
989         (USER_LABEL_PREFIX): Remove.
990         (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
991         (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
992         if TARGET_64BIT.
993         (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
994         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
995         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
996         (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
997         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
998         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
999         TARGET_64BIT.
1000         (RS6000_CALL_GLUE): Likewise.
1001         (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
1002         RESTORE_FP_SUFFIX): Likewise.
1003         (ASM_DECLARE_FUNCTION_NAME): Remove.
1004         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
1005         DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
1006         name if TARGET_64BIT.
1007         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
1008         !TARGET_64BIT.
1009         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
1010         (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
1011         (DRAFT_V4_STRUCT_RET): Define.
1012         (SIGNAL_FRAMESIZE): New enum value.
1013         (MD_FALLBACK_FRAME_STATE_FOR): Define.
1014         * config/rs6000/default64.h: New file.
1015         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
1016         options.
1017         (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
1018         to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
1019         if !TARGET_64BIT.
1020         [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
1021         (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
1022         function.
1023         (TARGET_OS_SYSV_CPP_BUILTINS): Define.
1024         (TARGET_OS_CPP_BUILTINS): Use it.
1025         (CPP_SYSV_SPEC): Remove.
1026         (CPP_SPEC): Remove cpp_sysv.
1027         (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
1028         Add SUBSUBTARGET_EXTRA_SPECS.
1029         (SUBSUBTARGET_EXTRA_SPECS): Define.
1030         * config/rs6000/biarch64.h: New file.
1031         * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
1032         New prototype.
1033         * config/rs6000/x-linux64: New file.
1034         * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
1035         multilibs.
1036         * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
1037         * config/rs6000/eabi-cn.asm: Likewise.
1038         * config/rs6000/tramp.asm: Likewise.
1039         * config/rs6000/sol-ci.asm: Likewise.
1040         * config/rs6000/sol-cn.asm: Likewise.
1041         * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
1042         (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
1043         * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
1044         _CALL_AIXDESC section.
1045         * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
1046         defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
1047         or default32.
1048
1049 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
1050
1051         * config.gcc: Revert accidentally committed ARM changes.
1052
1053 2003-06-04  Roger Sayle  <roger@eyesopen.com>
1054
1055         * builtins.c (dconstpi, dconste): New mathematical constants.
1056         (init_builtin_dconsts): New function to initialize dconstpi
1057         and dconste.
1058         (fold_builtin): Optimize exp(1.0) = e.  Evaluate exp(x) at
1059         compile time with -ffast-math when x is an integer constant.
1060         Optimize tan(0.0) = 0.0.  Optimize atan(0.0) = 0.0,
1061         atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
1062
1063 2003-06-04  Roger Sayle  <roger@eyesopen.com>
1064
1065         * calls.c (expand_call): Avoid calling pure or const functions
1066         when the result is ignored (or void) and none of the arguments
1067         are volatile.  Move warning diagnostic earlier in function.
1068
1069 2003-06-04  Andreas Jaeger  <aj@suse.de>
1070
1071         * system.h: Do not poison TDESC_SECTION_ASM_OP,
1072         RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
1073
1074 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1075
1076         * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
1077         optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
1078         handle %ll, optimize regular character case.
1079
1080 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1081
1082         * Makefile.in (cse.o): Add params.h dependency.
1083         * cse.c: Include params.h.
1084         (PATHLENGTH): Removed.
1085         (struct cse_basic_block_data): Make path array dynamic.
1086         (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
1087         of PATHLENGTH.
1088         (cse_main, cse_basic_block): Allocate path array.
1089         * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
1090
1091 Wed Jun  4 09:49:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
1092
1093         * i386.c (ix86_reorg): Replace the jump instead of adding nop.
1094         * i386.md (UNSPEC_REP): New constant.
1095         (return_internal_long): New pattern.
1096
1097 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1098
1099         PR optimization/11018
1100         * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
1101         consistently to decide whether the scratch register is really
1102         required.
1103
1104 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1105
1106         PR optimization/10876
1107         * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
1108         new 'O' constraint for constant 4096.
1109         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1110         * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
1111         Do not transform into MINUS insn for constant 4096.
1112         (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
1113         for constant 4096 as third operand.
1114         (addsi3 expander): Remove.
1115         (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
1116         new alternative for constant 4096 as third operand.
1117         (subdi3 expander): Do not transform into PLUS insn for constant 4096.
1118         (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
1119         operand.
1120         (subsi3 expander): Remove.
1121         (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
1122         constant 4096 as third operand.
1123         * doc/md.texi (Machine Constraints): Document new 'O' constraint for
1124         the SPARC port.
1125
1126 2003-06-03  Chris Demetriou  <cgd@broadcom.com>
1127
1128         * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
1129
1130 2003-06-04  Andreas Jaeger  <aj@suse.de>
1131
1132         * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
1133
1134         * config/i386/i386.c (ix86_expand_prologue): Do not use
1135         SUBTARGET_PROLOGUE.
1136
1137         * system.h: Poision SUBTARGET_PROLOGUE.
1138
1139         * config/arm/arm-protos.h: Remove unused rdate_section prototype.
1140
1141         * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
1142         dependend code.
1143
1144         * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
1145
1146         * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
1147         INSN_CACHE_LINE_WIDTH.
1148
1149         * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
1150         (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
1151         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
1152
1153         * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
1154         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
1155
1156         * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
1157         (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
1158         (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
1159         (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
1160         (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
1161         (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
1162
1163         * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
1164         DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
1165         DBX_WORKING_DIRECTORY.
1166
1167         * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
1168         DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
1169
1170         * config/frv/frv-protos.h: Remove unused const_section
1171         declaration.
1172         * config/vax/vax-protos.h: Likewise.
1173
1174         * output.h: Remove CONST_SECTION_ASM_OP usage.
1175
1176         * system.h: Poison CONST_SECTION_ASM_OP.
1177
1178         * crtstuff.c (__do_global_dtors_aux): Remove usage of
1179         CRT_GET_RFIB_TEXT.
1180         (frame_dummy): Likewise.
1181         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1182         * system.h: Poison CRT_GET_RFIB_TEXT.
1183
1184         * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
1185
1186         * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
1187         (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
1188         (recognized_function): Likewise.
1189         (read_scan_file): Likewise.
1190
1191 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1192
1193         * optabs.c (expand_binop): Optimize complex multiplication for
1194         the case of squaring a complex argument.
1195
1196 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1197
1198         * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
1199         non-volatile operands of binary operations.
1200         (prepare_cmp_insn): Likewise.
1201
1202 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1203
1204         * varasm.c (force_const_mem): Handle alignment of constants not
1205         representable as a type in the front-end language.
1206
1207 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
1208
1209         * flow.c (initialize_uninitialized_subregs): Use
1210         emit_move_insn instead of emitting a hardcoded move.
1211
1212 2003-06-03  Richard Henderson  <rth@redhat.com>
1213
1214         * optabs.c (expand_abs_nojump): Split out from ...
1215         (expand_abs): ... here.
1216         * optabs.h (expand_abs_nojump): Declare.
1217         * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
1218         * Makefile.in (ifcvt.o): Depend on optabs.h.
1219
1220 2003-06-03  Alan Modra  <amodra@bigpond.net.au>
1221
1222         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
1223
1224 2003-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1225
1226         * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
1227         (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
1228         to yes.
1229         * configure.in: Allow default_use_cxa_atexit to determine the
1230         value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
1231         disabled.
1232         * configure: Regenerate.
1233
1234 2003-06-03  Douglas B Rupp  <rupp@gnat.com>
1235
1236         * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
1237         * doc/gcc.texi: Remove vms.texi section.
1238         * doc/vms.texi: Remove obsolete file.
1239
1240 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
1241
1242         * configure.in (inhibit_libc): Don't define when configuring
1243         with --with-newlib --with-headers.
1244         * configure: Regenerate.
1245
1246         * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
1247
1248 2003-06-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1249
1250         * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
1251         IRIX 6 without GNU ld.
1252         * configure: Regenerate.
1253
1254 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1255
1256         * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
1257         of a complex number rather than invoke mov_optab directly.
1258
1259 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
1260
1261         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
1262         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
1263
1264 2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
1265
1266         * config/i386/x86-64.h: Remove two target-independent comments;
1267          replace "GNU CC" with "GCC".
1268
1269 2003-06-03  Anthony Green  <green@redhat.com>
1270
1271         * config/frv/t-frv (EXTRA_HEADERS): Remove media.h
1272
1273 2003-06-03  Roger Sayle  <roger@eyesopen.com>
1274
1275         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
1276         New builtins representing ISO C99's cabs, cabsf and cabsl.
1277         * builtins.c (expand_builtin_fabs): New function.
1278         (expand_builtin_cabs): New function.
1279         (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L}
1280         using expand_builtin_fabs and expand_builtin_cabs respectively.
1281
1282         * doc/extend.texi: Document new cabs, cabsf and cabsl builtins.
1283
1284 2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
1285
1286         * function.c (assign_parms): Split complex arguments.
1287
1288         * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
1289
1290         * expr.h (SPLIT_COMPLEX_ARGS): Define.
1291         (split_complex_types): Protoize.
1292         (split_complex_values): Protoize.
1293
1294         * calls.c (expand_call): Split complex arguments on architectures
1295         that require it.
1296         (split_complex_values): New.
1297         (split_complex_types): New.
1298
1299         * config/rs6000/rs6000.c (rs6000_libcall_value): New.
1300         (rs6000_function_value): Handle complex values on AIX.
1301         (rs6000_complex_function_value): New.
1302
1303         * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
1304
1305         * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
1306         (SPLIT_COMPLEX_ARGS): New.
1307
1308 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
1309
1310         * configure.in (HAVE_LD_PIE): Check for ld -pie.
1311         * config.in: Rebuilt.
1312         * configure: Rebuilt.
1313         * toplev.c (flag_pie, flag_shlib): New variables.
1314         (f_options): Add -fpie and -fPIE.
1315         (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
1316         Set flag_shlib if flag_pic and not -fpie/-fPIE.
1317         * flags.h (flag_pic, flag_shlib): Add.
1318         * varasm.c (default_binds_local_p): Use flag_shlib instead of
1319         flag_pic.
1320         * gcc.c (LINK_PIE_SPEC): Define.
1321         (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
1322         (option_map): Add --pie -> -pie mapping.
1323         * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
1324         and -fPIE the same way as -fPIC.
1325         * config/openbsd.h (ASM_SPEC): Likewise.
1326         * config/frv/frv.h (ASM_SPEC): Likewise.
1327         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
1328         * config/arm/semi.h (ASM_SPEC): Likewise.
1329         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
1330         * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
1331         * config/i386/beos-elf.h (CC1_SPEC): Likewise.
1332         * config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
1333         * config/m68k/linux.h (CPP_SPEC): Likewise.
1334         * config/m68k/netbsd.h (ASM_SPEC): Likewise.
1335         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
1336         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
1337         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
1338         * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
1339         * config/pa/pa-linux.h (CPP_SPEC): Likewise.
1340         * config/netbsd-aout.h (ASM_SPEC): Likewise.
1341         * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
1342         * config/rs6000/vxworks.h (CPP_SPEC): Likewise.
1343         * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
1344         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
1345         * config/sparc/sparc.h (ASM_SPEC): Likewise.
1346         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
1347         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1348         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
1349         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
1350         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
1351         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
1352         Simplify.
1353         * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1354         * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1355         * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1356         * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1357         * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1358         * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1359         * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
1360         * doc/invoke.texi: Document -pie, -fpie and -fPIE options.
1361
1362 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
1363
1364         * builtins.c (expand_builtin_memcpy): Remove endp argument and endp
1365         != 0 handling.  Pass 0 to store_by_pieces.
1366         (expand_builtin_mempcpy): Add endp argument.  Don't call
1367         expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
1368         directly.  If ignoring result, only do expand_call.
1369         (expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
1370         otherwise.
1371         (expand_builtin_strncpy, expand_builtin_memset): Adjust
1372         store_by_pices callers.
1373         (expand_builtin): Adjust expand_builtin_memcpy and
1374         expand_builtin_mempcpy callers.
1375         * expr.c (can_move_by_pieces): New function.
1376         (move_by_pieces): Add endp argument, return to resp. memory at end
1377         or one byte earlier depending on endp.
1378         (store_by_pieces): Likewise.
1379         (emit_block_move): Adjust call to move_by_pieces.
1380         (emit_push_insn): Adjust move_by_pieces caller.
1381         * expr.h (can_move_by_pieces): New prototype.
1382         (store_by_pieces): Adjust prototypes.
1383         * rtl.h (move_by_pieces): Adjust prototype.
1384         * config/mips/mips.c (expand_block_move): Adjust move_by_pieces
1385         caller.
1386
1387 2003-06-03  Ben Elliston  <bje@wasabisystems.com>
1388
1389         * doc/md.texi (Processor pipeline description): Improve wording.
1390
1391 2003-06-03  Neil Booth  <neil@daikokuya.co.uk>
1392
1393         * c-opts.c (c_common_handle_option): New, pulled out of
1394         c_common_decode_option.  Substitute uses of argv.
1395         (c_common_decode_option): Broken into two.
1396
1397 2003-06-02  Roger Sayle  <roger@eyesopen.com>
1398             Zack Weinberg  <zack@codesourcery.com>
1399
1400         * emit-rtl.c (gen_complex_constant_part):  Remove unnecessary
1401         test of TREE_CONSTANT_POOL_ADDRESS_P.
1402
1403 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1404
1405         * mips.c: Don't include output.h twice.
1406         * stormy16.c: Likewise.
1407         * xtensa.c: Likewise.
1408         * output.h: Protect against multiple inclusion.
1409
1410 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
1411
1412         * sh.h (OLD_ARG_MODE): New macro.
1413         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
1414         (FUNCTION_ARG_1): Break out of:
1415         (FUNCTION_ARG).  Use OLD_ARG_MODE.
1416
1417 2003-06-02  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1418
1419         * gcc/config.gcc Add support multilib parts for m32rx processor.
1420
1421 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1422
1423         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
1424         (mostlyclean): Delete c-options.c and c-options.h.
1425
1426 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
1427
1428         * c-opts.c (CL_REJECT_NEGATIVE): New.
1429         (c_common_decode_option): Update to use it.
1430         * c.opt: Update documentation; use RejectNegative.
1431         * opts.sh: Handle RejectNegative.
1432
1433 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
1434
1435         * ggc-page.c (init_ggc): Give better diagnostics on failure to
1436         open /dev/zero.
1437         * toplev.c (crash_signal): Reset handling for received signal
1438         to SIG_DFL.
1439
1440 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
1441
1442         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
1443         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
1444         (arm_use_dfa_pipeline_interface): Implement.
1445         * config/arm/arm.md (arm): New automaton.
1446         (write_buf): Remove function units; new cpu unit.
1447         (write_blockage): Remove function units; new cpu unit.
1448         (core): Remove function units; new cpu unit.
1449         (r_mem_f_wbuf): New instruction reservation.
1450         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
1451         (store1_ldsched, store2, store3, store4): Likewise.
1452         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
1453         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
1454         (multi_cycle, single_cycle): Likewise.
1455         * config/arm/fpa.md (armfp): New automaton.
1456         (fpa): Remove function units; new cpu unit.
1457         (fpa_mem): Remove function unit; new cpu unit.
1458         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
1459         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
1460
1461 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1462
1463         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
1464         * c-format.c (enum format_type): Add asm_fprintf_format_type.
1465         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
1466         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
1467         (format_types_orig): Renamed from format_types.  Add new data.
1468         (format_types): Declare as pointer.
1469         (handle_format_attribute): Move later in file so we have all
1470         necessary declarations.  Add section to capture HOST_WIDE_INT.
1471         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
1472         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
1473
1474 2003-06-01  Andreas Jaeger  <aj@suse.de>
1475
1476         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
1477         ROUND_TYPE_SIZE_UNIT.
1478
1479         * stor-layout.c (finalize_record_size): Remove usages of
1480         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1481         (finalize_type_size): Likewise.
1482         (layout_type): Likewise.
1483
1484         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1485
1486         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
1487
1488         * config/d30v/d30v.h: Remove text copied from the manual.
1489
1490 2003-06-01  Roger Sayle  <roger@eyesopen.com>
1491             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1492             Geoffrey Keating  <geoffk@apple.com>
1493
1494         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
1495         constants as condition code values.
1496
1497 2003-06-01  DJ Delorie  <dj@redhat.com>
1498
1499         * cppmacro.c (warn_of_redefinition): Handle cases where the two
1500         definitions have different numbers of tokens.
1501
1502 2003-06-01  Andreas Jaeger  <aj@suse.de>
1503
1504         * gen-protos.c (main): Readd unused attribute for argc.
1505
1506 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1507
1508         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
1509         * c.opt: End in blank line.
1510         * opts.sh: Take AWK from environment if available; use C locale.
1511
1512 2003-06-01  Andreas Schwab  <schwab@suse.de>
1513
1514         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
1515
1516 2003-06-01  Andreas Jaeger  <aj@suse.de>
1517
1518         * gen-protos.c (main): Revert patch to check for argument.
1519
1520 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1521
1522         PR target/11044
1523         * config/i386/i386.md (length attribute): Set length to 4
1524         for instructions of type "fcmp".
1525
1526 2003-06-01  Andreas Jaeger  <aj@suse.de>
1527
1528         * toplev.c: Use ISO C90 prototypes.
1529
1530         * toplev.h: Use ISO C90 prototypes.
1531
1532         * genrecog.c: Use ISO C90 prototypes.
1533         (nodes_identical): Correct declaration to match prototype.
1534         (maybe_both_true): Likewise.
1535         (merge_trees): Likewise.
1536
1537         * genpeep.c (gen_peephole): Remove #if 0 code.
1538         Use ISO C90 prototypes.
1539
1540         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
1541         Remove #if 0'ed function simplify_by_alternatives.
1542         (optimize_attrs): Remove #if 0'ed code.
1543         Remove ^L.
1544         Use ISO C90 prototypes.
1545         (make_canonical): Remove #if 0'ed code.
1546         (convert_const_symbol_ref): Remove #if 0'ed function.
1547
1548         * gen-protos.c (main): Check for argument.
1549
1550         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
1551
1552         * params.h: Use ISO C90 prototypes.
1553         * params.c: Likewise.
1554         * intl.c: Likewise.
1555         * intl.h: Likewise.
1556         * lists.c: Likewise.
1557         * errors.c: Likewise.
1558         * errors.h: Likewise.
1559         * gencodes.c: Likewise.
1560         * genpreds.c: Likewise.
1561         * genattr.c: Likewise.
1562         * gen-protos.c: Likewise.
1563         * genflags.c: Likewise
1564         * genconditions.c: Likewise.
1565         * genautomata.c: Likewise.
1566         * gencheck.c: Likewise.
1567         * genconfig.c: Likewise.
1568         * genconstants.c: Likewise.
1569         * genemit.c: Likewise.
1570         * genextract.c: Likewise.
1571         * gengenrtl.c: Likewise.
1572         * gengtype.c: Likewise.
1573         * gengtype.h: Likewise.
1574         * genopinit.c: Likewise.
1575         * genoutput.c: Likewise.
1576         * gensupport.c: Likewise.
1577         * gensupport.h: Likewise.
1578
1579         * sdbout.h: Use ISO C90 prototypes.
1580
1581         * sdbout.c (CONTIN): Removed empty macro.
1582         (sdbout_one_type): Remove CONTIN usages.
1583         Remove ^Ls.
1584         (tag_of_ru_type): Remove #if 0'ed function.
1585         (sdbout_symbol): Remove #if 0'ed code.
1586         (sdbout_one_type): Remove a #if 1.
1587         (sdbout_one_type): Remove #if 0'ed code.
1588         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
1589         Remove PARAMS, use ISO C90 prototypes for all functions.
1590
1591 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
1592
1593         * rtl.def (CONST_DOUBLE): Update comment.
1594
1595 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1596
1597         * opts.sh: Remove path from sort.
1598
1599 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
1600
1601         PR/9680
1602         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
1603         TARGET_SPE for SPE_VECTOR_MODE.
1604
1605 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
1606
1607         * toplev.c (botch): Remove.
1608         (do_abort): Remove.
1609         (set_Wunused): Comment.
1610         (set_Wextra): Comment.
1611         Remove ^L's.
1612         (rest_of_compilation): Factor out common code into functions.
1613         (rest_of_handle_inlining): New.
1614         (rest_of_handle_ssa): New.
1615         (rest_of_handle_cse): New.
1616         (rest_of_handle_gcse): New.
1617         (rest_of_handle_loop_optimize): New.
1618         (rest_of_handle_jump_bypass): New.
1619         (rest_of_handle_sibling_calls): New.
1620         (rest_of_handle_null_pointer): New.
1621         (rest_of_handle_addresof): New.
1622         (rest_of_handle_flow): New.
1623         (rest_of_handle_branch_prob): New.
1624         (rest_of_handle_if_conversion): New.
1625         (rest_of_handle_tracer): New.
1626         (rest_of_handle_loop2): New.
1627         (rest_of_handle_cse2): New.
1628         (rest_of_handle_life): New.
1629         (rest_of_handle_combine): New.
1630         (rest_of_handle_if_after_combine): New.
1631         (rest_of_handle_regmove): New.
1632         (rest_of_handle_sched): New.
1633         (rest_of_handle_old_regalloc): New.
1634         (rest_of_handle_new_regalloc): New.
1635         (rest_of_handle_regrename): New.
1636         (rest_of_handle_reorder_blocks): New.
1637         (rest_of_handle_sched2): New.
1638         (rest_of_handle_new_regalloc): New.
1639         (rest_of_handle_old_regalloc): New.
1640         (rest_of_handle_regrename): New.
1641         (rest_of_handle_reorder_blocks): New.
1642         (rest_of_handle_stack_regs): New.
1643         (rest_of_handle_machine_reorg): New.
1644         (rest_of_handle_delay_slots): New.
1645         (rest_of_handle_final): New.
1646
1647         * toplev.h (botch): Remove prototype.
1648         (do_abort): Same.
1649
1650 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
1651
1652         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
1653         * c-opts.c: Include c-options.h and c-options.c.
1654         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
1655         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
1656         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
1657         OPT, opt_comp): Remove.
1658         (missing_arg, c_common_init_options, c_common_decode_option,
1659         write_langs): Update for macro redefinitions and enumeration
1660         name changes.
1661         * c.opt, opts.sh: New files.
1662         * doc/passes.texi: Update.
1663
1664 2003-05-31  Andreas Jaeger  <aj@suse.de>
1665
1666         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
1667         usage.
1668
1669         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
1670
1671         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
1672
1673         * system.h: Poison ALLOCATE_TRAMPOLINE.
1674
1675         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
1676         * system.h: Poison HANDLE_PRAGMA.
1677
1678 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1679
1680         * doc/invoke.texi: Update dump file names.
1681
1682 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1683
1684         * c-format.c (format_length_info, format_char_info,
1685         format_flag_spec, format_flag_pair, format_kind_info):
1686         De-const-ify structure members.
1687
1688 2003-05-31  Roger Sayle  <roger@eyesopen.com>
1689
1690         * flags.h (flag_wrapv): New flag controlling overflow semantics.
1691         * toplev.c (flag_wrapv): Declare the variable with default false.
1692         (lang_independent_options): New option "-fwrapv" to set the above.
1693
1694         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
1695         as x, when signed arithmetic overflow wraps around.
1696         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
1697         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
1698         overflow when flag_wrapv is true.
1699
1700         * doc/invoke.texi: Document new -fwrapv command line option.
1701         * doc/c-tree.texi: Mention that the overflow semantics of
1702         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
1703         upon both flag_wrapv and flag_trapv.
1704
1705 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1706
1707         * doc/install.texi (mips-sgi-irix5): Add missing
1708         HTML <hr> marker.
1709
1710 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1711
1712         * doc/md.texi (Machine Constraints): Document
1713         missing SPARC constraints.
1714
1715 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1716
1717         * doc/md.texi (Automaton pipeline description): Use
1718         "type" instead of "cpu" as the attribute in the examples.
1719
1720 2003-05-30  Stan Shebs  <shebs@apple.com>
1721
1722         * system.h: Poison OBJC_PROLOGUE.
1723
1724 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1725
1726         * emit-rtl.c (gen_complex_constant_part): New function for getting
1727         the constant real or imaginary part of a complex constant.
1728         (gen_realpart): Use it.
1729         (gen_imagpart): Likewise.
1730
1731 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1732
1733         * doc/invoke.texi: Fix typos.
1734         * doc/rtl.texi: Likewise.
1735
1736 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1737
1738         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
1739         mode.
1740         * config/h8300/crtn.asm: Likewise.
1741         * config/h8300/lib1funcs.asm: Likewise.
1742         * config/h8300/h8300.c (asm_file_start): Likewise.
1743         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
1744         h8300snelf emulations for normal mode.
1745         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
1746         emulations for normal mode.
1747
1748 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1749
1750         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
1751         true if TARGET_NORMAL_MODE.
1752
1753 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1754
1755         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
1756         making a substitution.
1757         (dead_libcall_p): If directly replacing a libcall with a
1758         constant value produces an invalid instruction, also try forcing
1759         the constant into the constant pool.
1760         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
1761         obvious that the source is a constant.
1762         (compress_float_constant): Use set_unique_reg_note to place
1763         REG_EQUAL notes on instructions.
1764
1765 2003-05-30  Eric Christopher  <echristo@redhat.com>
1766
1767         * config/mips/mips.c (extern_list): Add GTY marker.
1768         (extern_head): Separate out definition. Add marker.
1769         (mips_output_external): Use ggc_alloc for extern_list
1770         allocation.
1771         (mips_output_external_libcall): Ditto.
1772
1773 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
1774
1775         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
1776         later.
1777
1778 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1779
1780         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
1781         warnings.
1782         (PRINT_OPERAND): Likewise.
1783
1784 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1785
1786         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
1787         -mdebug/-no-mdebug switches ...
1788         (MDEBUG_ASM_SPEC): ... here.
1789         Use only with gas.
1790         (EXTRA_SPECS): Initialize mdebug_asm_spec.
1791
1792 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
1793
1794         * gthr-gnat.c: Remove #undef UNUSED.
1795         (__gnat_default_lock, __gnat_default_unlock): Prototype.
1796         (__gnat_task_lock, __gnat_task_unlock): Make declarations
1797         prototypes.
1798         (__gnat_install_locks): Convert declaration to ISO C90, make
1799         parameter declarations prototypes, and remove blank line.
1800         * gthr-gnat.h (__gnat_install_locks): Make parameter
1801         declarations prototypes.
1802
1803 2003-05-29  Jason Merrill  <jason@redhat.com>
1804
1805         * Makefile.in (unstrap): Remove stage_last after make unstage1.
1806
1807 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1808
1809         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
1810
1811 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1812             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
1813
1814         PR bootstrap/10169
1815         * mips-tfile.c (main): Use getopt_long instead of getopt.
1816         Add new command line option --version to display version.
1817         Treat --verbose like -v to report a single line version.
1818         (options): New global variable for getopt_long.
1819         * mips-tdump.c (main): Use getopt_long instead of getopt.
1820         New command line options -v, --version and -verbose to display
1821         the program version number (to match mips-tfile's behavior).
1822         (options): New global variable for getopt_long.
1823
1824         * gcov.c (options): Zero-terminate getopt_long array.
1825         * gcov-dump.c (options): Likewise.
1826
1827         * Makefile.in (mips-tdump.o): Add dependency on version.h.
1828
1829 2003-05-29  Stan Shebs  <shebs@apple.com>
1830
1831         Remove OBJC_PROLOGUE everywhere.
1832         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
1833         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
1834         * config/d30v/d30v.h: Similarly.
1835         * config/ip2k/ip2k.h: Similarly.
1836         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
1837
1838 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1839
1840         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
1841         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
1842         (expand_unreachable_stmt): Expand unreachable while statements
1843         using genrtl_do_stmt_1.
1844
1845 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
1846
1847         * config/mips/mips-protos.h (mips_output_load_label): Declare.
1848         * config/mips/mips.c (mips_output_load_label): New function.
1849         (mips_output_conditional_branch): Use it.
1850         * config/mips/mips.md (jump): And here.
1851
1852 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
1853
1854         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
1855         (xtensa_split_operand_pair): New proto.
1856         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
1857         (smalloffset_double_mem_p): Delete.
1858         (gen_float_relational, printx, print_operand, xtensa_va_arg):
1859         Fix whitespace.
1860         (xtensa_split_operand_pair): New.
1861         (xtensa_dbx_register_number): Fix formatting.
1862         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
1863         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
1864         instead of splitting them into single-word moves.  Remove unnecessary
1865         checks for reload_in_progress and reload_completed.
1866         (movdi_internal, movdf_internal): Change to post-reload split patterns.
1867         Add constraints to allow constant operands.
1868         (movsf_internal): Allow CONST_INT operands.
1869
1870 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
1871
1872         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
1873         fragment i386/x-mingw32.
1874         * config/i386/x-mingw32: New file. Make local_includedir
1875         relative to EXEC_PREFIX.
1876
1877 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
1878
1879         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
1880         (MD_STARTFILE_PREFIX): Define.
1881
1882 2003-05-27  Denis Chertykov  <denisc@overta.ru>
1883
1884         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
1885         VOIDmode.
1886         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
1887         call of cselib_invalidate_regno.
1888
1889 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
1890
1891         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
1892         -lthread to -lpthread.
1893
1894 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1895             Bruce Korb  <bkorb@gnu.org>
1896             Arno Klaassen  <arno@heho.snv.jussieu.fr>
1897
1898         * fixinc/inclhack.def: Add missing declaration of getpagesize()
1899         to unistd.h on Solaris 2.5.1.
1900         Fix prototype of recv() and send() in sys/socket.h on
1901         Solaris 2.5.1 and 2.6.
1902         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
1903         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
1904         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
1905         * fixinc/fixincl.x: Regenerate.
1906
1907 2003-05-27  Jason Merrill  <jason@redhat.com>
1908
1909         * tree.c (expr_first, expr_length): New fns.
1910         * tree.h: Declare them.
1911
1912         * tree.c (iterative_hash_expr): Hash commutative expressions
1913         consistently.
1914
1915 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1916
1917         * tree.h (contains_placeholder_p): Now returns bool.
1918         (CONTAINS_PLACEHOLDER_P): New macro.
1919         (type_contains_placeholder_p): New function.
1920         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
1921         (contains_placeholder_p): Now returns bool.
1922         Rework to use CONTAINS_PLACEHOLDER_P macro.
1923         (type_contains_placeholder_p): New function.
1924         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
1925         type_contains_placeholder_p.
1926         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
1927         Use CONTAINS_PLACEHOLDER_P macro.
1928         * builtins.c (fold_builtin): Likewise.
1929         * calls.c (initialize_argument_information): Likewise.
1930         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1931         * explow.c (expr_size): Likewise.
1932         * expr.c (store_constructor, get_inner_reference): Likewise.
1933         * function.c (assign_parms): Likewise.
1934         * stor-layout.c (variable_size): Likewise.
1935
1936 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
1937
1938         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
1939         attribute.
1940
1941 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1942
1943         * doc/contrib.texi (Contributors): Update Kean Johnston.
1944
1945 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
1946
1947         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
1948
1949 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1950
1951         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
1952         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
1953         Replace "GNU CC" with "GCC".
1954
1955 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
1956
1957         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
1958         intermediate computation.
1959
1960 2003-05-23  Eric Christopher  <echristo@redhat.com>
1961
1962         * config/mips/mips.md (clzsi, clzdi): New patterns.
1963
1964 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
1965
1966         * gcc.c (default_compilers): Use -o to specify preprocessor's output
1967         file.  Make -no-integrated-cpp work when building PCH files.
1968         * objc/lang-specs.h: Likewise.
1969
1970 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
1971
1972         * fixinc/Makefile.in: Correct description.
1973         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
1974         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
1975         fixinc/genfixes: Replace "GNU CC" with "GCC".
1976
1977 2003-05-23  Roger Sayle  <roger@eyesopen.com>
1978
1979         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
1980         builtin functions (and their __builtin_* variants).
1981         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
1982         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
1983         optimizing.
1984
1985         * doc/extend.texi: Document new tan and atan builtins, and
1986         their float and long double variants.
1987
1988 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1989
1990         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
1991         __sparcv9 in the TARGET_ARCH64 case.
1992
1993 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
1994
1995         * i386.c (ix86_reorg): Calls are also jumps.
1996
1997 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
1998
1999         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
2000         note containing an EXPR_LIST, process all the arguments.
2001
2002 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
2003                                Andreas Jaeger  <aj@suse.de>
2004
2005         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
2006         do not use assertion.
2007
2008 2003-05-23  Mike Stump  <mrs@apple.com>
2009
2010         * tlink.c (scan_linker_output): Add support for darwin linker, as it
2011         emits unresolved symbols one per line, consuming the entire line.
2012
2013 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
2014             Zack Weinberg <zack@codesourcery.com>
2015
2016         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
2017         * config/m68k/m68k.c (m68k_output_function_prologue):
2018         Remove code under #if NEED_PROBE.
2019         * config/m68k/m68k.h: Don't define NEED_PROBE.
2020         * config/m68k/m68k.md: Remove "probe" insn.
2021         * doc/md.texi: Remove documentation of "probe" pattern.
2022
2023 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
2024
2025         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
2026
2027 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2028
2029         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
2030         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
2031
2032 2003-05-22  Roger Sayle  <roger@eyesopen.com>
2033
2034         * real.c (real_maxval): New function to return the largest finite
2035         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
2036         * real.h (real_maxval): Prototype here.
2037         * fold-const.c (fold_inf_compare): Transform comparisons against
2038         +-Infinity into comparisons against DBL_MAX (or equivalent).
2039
2040 2003-05-22  Mike Stump  <mrs@apple.com>
2041
2042         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
2043         default.
2044
2045 2003-05-22  DJ Delorie  <dj@redhat.com>
2046
2047         * calls.c (expand_call): If the arg block is going to grow
2048         downward, we need argblock to point to the top of the block,
2049         not the bottom.
2050
2051 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2052
2053         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
2054
2055         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
2056         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
2057
2058 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2059
2060         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
2061         * m68k.c: Likewise.
2062         * m68k.h: Likewise.
2063
2064 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
2065
2066         PR other/2873
2067         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
2068         expressions to prevent triggering on recent curses.h,
2069         linux/nls.h, or X11/Xlib.h.
2070         (stdio_va_list): Add _G_va_list to bypass pattern.
2071         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
2072         * fixinc/fixincl.x: Regenerate.
2073
2074 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
2075
2076         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
2077         switches when --target-help option is specified.
2078
2079 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2080
2081         PR bootstrap/10805
2082         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
2083         failure with Sun assembler 5.0 Alpha 03/27/98.
2084
2085 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
2086
2087         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
2088         to match system compiler convention.
2089
2090 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
2091
2092         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for non-zero
2093         value, not just if defined.
2094         Update copyright year.
2095
2096 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2097
2098         PR target/6428
2099         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
2100         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
2101         option is used without `-static'.
2102         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
2103         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
2104
2105 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
2106
2107         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
2108         TARGET_SERIALIZE_VOLATILE): Delete.
2109         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
2110         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
2111         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
2112         "-mno-serialize-volatile".
2113         * config/xtensa/xtensa.c (print_operand): Remove checks of
2114         TARGET_SERIALIZE_VOLATILE.
2115         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2116         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
2117         "-mserialize-volatile" and "-mno-serialize-volatile" options.
2118
2119 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2120
2121         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
2122         (nested_function): Likewise.
2123         (notype_nested_function): Likewise.
2124
2125 2003-05-21  Nick Clifton  <nickc@redhat.com>
2126
2127         * config/stormy16/stormy-abi: Update overflow type for
2128         R_XSTORMY16_16 reloc.
2129
2130 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2131
2132         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
2133         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
2134         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
2135         * print-tree.c (print_node): Remove ambient-boundedness.
2136         * tree.h (tree_common): Remove bounded_flag.
2137         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
2138         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2139         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2140         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2141         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
2142         Remove.
2143         (TYPE_QUALS): Remove BOUNDED.
2144         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
2145         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2146         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2147         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
2148         VA_LIST_POINTER_DEPTH): Remove.
2149         (struct tree_type): Remove pointer_depth.
2150
2151 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2152
2153         * c-pretty-print.c (pp_c_integer_literal): Use
2154         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
2155
2156 2003-05-20  Roger Sayle  <roger@eyesopen.com>
2157             Kazu Hirata  <kazu@cs.umass.edu>
2158             Joern Rennecke  <joern.rennecke@superh.com>
2159
2160         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
2161         setcc and jump, if they exist.  If substituted instruction
2162         fails to validate, store current effort in a REG_EQUAL note.
2163         (cprop_insn): Don't attempt further substitutions if the
2164         current instruction has been deleted.
2165         (local_cprop_pass): Likewise.
2166
2167         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
2168         one is attached to the jump instruction.
2169         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
2170
2171 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
2172
2173         PR c++/9738
2174         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
2175         even if not first.
2176
2177 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2178
2179         * genautomata.c (output_description, output_automaton_units,
2180         output_state_arcs): Add missing specifiers.
2181
2182 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
2183
2184         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
2185         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
2186         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
2187         (nsau): Rename to do_nsau.  Provide alternate version for use when
2188         the NSAU instruction is available.
2189         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
2190         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
2191         * config/xtensa/xtensa-config.h: Update comments to match binutils.
2192         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
2193         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
2194         (TARGET_ABS, TARGET_ADDX): Define.
2195         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
2196         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
2197         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
2198         *subx8): Set predicate condition to TARGET_ADDX.
2199         (abssi2): Set predicate condition to TARGET_ABS.
2200         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
2201         "-maddx", and "-mno-addx" options.
2202         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
2203
2204 2003-05-20  Kevin Ryde <user42@zip.com.au>
2205             Wolfgang Bangerth <bangerth@dealii.org>
2206
2207         PR/10355
2208         * doc/extend.texi: Put a warning into the documentation
2209         of attribute regparm.
2210
2211 2003-05-20  Jason Merrill  <jason@redhat.com>
2212
2213         * tree.c (expr_last): New fn.
2214         * tree.h: Declare it.
2215         * objc/objc-act (expr_last): Rename to objc_expr_last.
2216
2217 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2218
2219         * sh.c (sh_register_move_cost): Add clase for moving between
2220         FP registers and MAC registers.
2221
2222 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
2223
2224         * pa/milli64.S ($$mulI): Fix typo.
2225
2226 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
2227
2228         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
2229         (nonlocal_set_p): Remove initial blank line.
2230         * dwarf2out.c (simple_type_size_in_bits): Likewise.
2231         * et-forest.c (et_forest_create): Likewise.
2232         * explow.c (stabilize): Likewise.
2233         * fix-header.c (write_lbrac): Likewise.
2234         * graph.c (start_fct, node_data): Likewise.
2235         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
2236         * rtlanal.c (global_reg_mentioned_p): Likewise.
2237         * tree.c (bit_position): Likewise.
2238
2239 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
2240
2241         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
2242         -lthread to -lpthread.
2243
2244 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
2245
2246         * c-opts.c (c_common_decode_option): Don't accept dollars
2247         as identifier characters in assembly.
2248         * doc/cpp.texi: Document this.
2249
2250 2003-05-19  Seth Arnold  <sarnold@wirex.com>
2251             Aldy Hernandez  <aldyh@redhat.com>
2252
2253         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
2254         vrsave_size twice.
2255
2256 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
2257
2258         * doc/tm.texi (function_arg): Fix typo.
2259
2260 2003-05-19  Matt Austern  <austern@apple.com>
2261
2262         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
2263         * c-common.h (warn_invalid_offsetof): Declare.
2264         * c-common.c (warn_invalid_offsetof): Define.
2265         * doc/invoke.texi: Document -Winvalid-offsetof.
2266         * testsuite/g++.dg/other/offsetof3.C: New.
2267         * testsuite/g++.dg/other/offsetof4.C: New.
2268
2269 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
2270             David Edelsohn  <edelsohn@gnu.org>
2271
2272         * config/rs6000/rs6000.c (rs6000_alignment_string,
2273         rs6000_alignment_flags): New variables.
2274         (rs6000_parse_alignment_option): New function.
2275         (rs6000_override_options): Call it.
2276         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
2277         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
2278         macros.
2279         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
2280         natural alignment if TARGET_NATURAL_ALIGNMENT
2281         (ROUND_TYPE_ALIGN): Always use default record alignment if
2282         TAGET_NATURAL_ALIGNMENT.
2283         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
2284         (ROUND_TYPE_ALIGN): Same.
2285         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
2286         (ROUND_TYPE_ALIGN): Same.
2287         * doc/invoke.texi (Option Summary, PowerPC Options): Document
2288         new options.
2289
2290 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
2291
2292         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
2293         of a function using ASMSPEC, prepend a star.
2294
2295 2003-05-19  Jason Merrill  <jason@redhat.com>
2296
2297         * tree-inline.c (copy_body_r): Avoid generating &* during inline
2298         substitution.
2299
2300 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
2301
2302         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
2303         not mark assignments to the hard frame pointer as being stack
2304         frame related.
2305         (xstormy16_expand_epilogue): Mark adjustments to the stack
2306         pointer as being stack frame related.
2307
2308 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2309
2310         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
2311         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
2312         (PREDICATE_CODES): Add hilo_operand.
2313         * config/mips/mips.c (hilo_operand): New predicate.
2314         (mips_adjust_insn_length): Account for the number nops that might
2315         be needed to avoid hardware hazards.
2316         * config/mips/mips.md (dslot): Remove attribute.
2317         (hazard): New attribute.
2318         (can_delay): Use it.  Check for calls, branches & jumps.
2319         (muldi3): Use the standard dmult pattern for mips16 code.
2320         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
2321
2322 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2323
2324         * config/mips/mips-protos.h (final_prescan_insn,
2325         mips_count_memory_refs, mips_fill_delay_slot): Remove.
2326         * config/mips/mips.h (delay_type, dslots_load_total,
2327         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
2328         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
2329         mips_load_reg3, mips_load_reg4): Remove.
2330         (MASK_STATS): Remove.
2331         (MASK_EXPLICIT_RELOCS): Reuse its value.
2332         (TARGET_STATS): Remove.
2333         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
2334         Warn that -mstats is now ignored.
2335         (FINAL_PRESCAN_INSN): Undefine.
2336         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
2337         (ASM_OUTPUT_REG_POP): Likewise.
2338         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
2339         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
2340         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
2341         mips_fill_delay_slot, mips_count_memory_refs,
2342         final_prescan_insn): Remove.
2343         (output_block_move): Remove calls to mips_count_memory_refs.
2344         (print_operand): Remove printing of #nop for TARGET_STATS.
2345         (mips_output_function_epilogue): Remove TARGET_STATS code.
2346         Reorganize setting of fnnmae.
2347         * config/mips/mips.md: Remove handling of dslot statistics
2348         throughout file.  Change all fcmp patterns into normal asm
2349         templates, removing calls to mips_fill_delay_slot.
2350         * doc/invoke.texi: Remove documentation of -mstats.
2351
2352 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2353
2354         * config/mips/mips.c (mips_class_max_nregs): Return the number of
2355         words in the mode.
2356
2357 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
2358
2359         * config/mips/mips.c (override_options): Disable explicit
2360         relocs for old ABIs unless using gas.
2361
2362 2003-05-18  Eric Christopher  <echristo@redhat.com>
2363
2364         * config/mips/mips.h: Remove definition of g_switch_value.
2365
2366 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
2367
2368         * flags.h (g_switch_value): Change to an unsigned
2369         HOST_WIDE_INT.
2370         * toplev.c (g_switch_value): Likewise.
2371
2372         * config/alpha/alpha.c (small_symbolic_operand): Remove
2373         g_switch_value cast.
2374         (alpha_in_small_data_p): Cast size to an unsigned
2375         HOST_WIDE_INT.
2376
2377         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
2378         unsigned HOST_WIDE_INT.
2379         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
2380         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
2381
2382         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
2383         unsigned HOST_WIDE_INT.
2384         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2385         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
2386         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
2387
2388         * config/rs6000/rs6000.c (rs6000_file_start): Use
2389         HOST_WIDE_INT_PRINT_UNSIGNED.
2390         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
2391         (rs6000_elf_in_small_data_p): Cast size to unsigned
2392         HOST_WIDE_INT.
2393         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
2394         Remove.
2395         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
2396         g_switch_set.
2397         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
2398         g_switch_value cast.
2399
2400 2003-05-18  Roger Sayle  <roger@eyesopen.com>
2401             Zack Weinberg  <zack@codesourcery.com>
2402
2403         PR middle-end/10472
2404         * builtins.c (expand_builtin_memcpy):  Call force_operand on
2405         expressions and use simplify_gen_binary to create the addition.
2406
2407 2003-05-18  Andreas Schwab  <schwab@suse.de>
2408
2409         * config/m68k/m68k.md: Use define_constants for unspec numbers.
2410
2411 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
2412
2413         * config/sparc/sparc.h: Define sparc for now.
2414 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
2415
2416         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
2417
2418         * config/stormy16/stormy16.h: Remove about 3000 lines of
2419         target-independent comments.  Update copyright notice.
2420
2421         * doc/collect2.texi: GNU CC -> GCC.
2422         * doc/headerdirs.texi: GNU CC -> GCC.
2423
2424 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
2425
2426         * hashtable.h (struct ht_identifier): Add data member "hash_value".
2427         * hashtable.c (ht_lookup): Use it when searching, remember.
2428         (ht_expand): Do not recompute.
2429         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
2430
2431 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
2432
2433         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
2434
2435 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
2436
2437         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
2438         Default here.
2439         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
2440         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
2441         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
2442         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
2443         config/arm/linux-elf.h, config/arm/rtems-elf.h,
2444         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
2445         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
2446         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
2447         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
2448         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
2449         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
2450         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
2451         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
2452         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
2453         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
2454         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
2455         Don't define __ELF__.
2456         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
2457         Define __ELF__.
2458         * doc/cpp.texi: Document __ELF__.
2459         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
2460
2461 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2462
2463         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
2464         always use stdarg.
2465         * c-errors.c (pedwarn_c99): Likewise.
2466         * c-format.c (status_warning): Likewise.
2467         * c-semantics.c (build_stmt): Likewise.
2468         * calls.c (emit_library_call, emit_library_call_value): Likewise.
2469         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
2470         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
2471         * diagnostic.c (build_message_string, output_printf,
2472         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
2473         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
2474         error_with_decl, fnotice): Likewise.
2475         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
2476         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
2477         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
2478         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
2479         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2480         dw2_asm_output_encoded_addr_rtx): Likewise.
2481         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
2482         * errors.c (warning, error, fatal, internal_error): Likewise.
2483         * final.c (output_operand_lossage, asm_fprintf): Likewise.
2484         * fix-header.c (fatal): Likewise.
2485         * gcc.c (fatal, error, notice): Likewise.
2486         * gcov.c (fnotice): Likewise.
2487         * genattrtab.c (attr_rtx, attr_printf): Likewise.
2488         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
2489         * gensupport.c (message_with_line): Likewise.
2490         * mips-tfile.c (fatal, error): Likewise.
2491         * protoize.c (notice): Likewise.
2492         * ra-debug.c (ra_debug_msg): Likewise.
2493         * read-rtl.c (fatal_with_file_and_line): Likewise.
2494         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
2495         * tree.c (build, build_nt, build_function_type_list): Likewise.
2496
2497 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2498
2499         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
2500         * gcc.c (cpp_predefines): Remove.
2501         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
2502         (static_specs): Remove predefines.
2503         * system.h: Poison CPP_PREDEFINES.
2504         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
2505         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
2506
2507 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2508
2509         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
2510         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
2511         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
2512         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
2513
2514 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2515
2516         PR c/9209
2517         * c-common.c, c-common.h (dollars_in_ident): Remove.
2518         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
2519         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
2520         * cpphash.h (warned_dollar): Rename warn_dollars.
2521         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
2522         Permit dollars regardless of -std=.
2523         (post_options): Set warn_dollars.
2524         * cpplex.c (forms_identifier_p): Use warn_dollars.
2525         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
2526         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
2527         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
2528         Update documentation.
2529
2530 2003-05-17  Andreas Schwab  <schwab@suse.de>
2531
2532         * config/m68k/m68k.c (m68k_output_function_prologue): Use
2533         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
2534         formatting a HOST_WIDE_INT.
2535         (m68k_output_function_epilogue): Likewise.
2536
2537 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
2538
2539         * doc/install.texi: Remove information about desupported targets.
2540
2541 2003-05-17  Andreas Schwab  <schwab@suse.de>
2542
2543         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
2544         * config/m68k/linux.h: Likewise.
2545         * config/m68k/m68k-none.h: Likewise.
2546         * config/m68k/netbsd-elf.h: Likewise.
2547         * config/m68k/sgs.h: Likewise.
2548         * config/m68k/m68k.h: Likewise.
2549         * config/m68k/m68k.md: Likewise.
2550         * config/m68k/m68k.c: Likewise.
2551         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
2552         constraints.
2553         * doc/invoke.texi (Option Summary): Remove -mfpa.
2554         (M680x0 Options): Likewise.
2555
2556 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
2557
2558         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
2559
2560 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2561
2562         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
2563         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
2564         config/sparc/rtemself.h, config/sparc/sol2-64.h,
2565         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
2566         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
2567
2568 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2569
2570         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
2571         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
2572
2573 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2574
2575         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
2576         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
2577         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
2578         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
2579         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
2580         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
2581         sparc/sysv4.h,
2582         * sparc/sysv4-only.h: New.
2583
2584 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
2585
2586         * function.c (assign_parms): Check for zero size args.
2587
2588 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2589
2590         * cfgloopanal.c (test_for_iteration): Use string concatentation on
2591         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2592         function calls into one.
2593         * dbxout.c (dbxout_symbol): Likewise.
2594         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
2595         * dwarf2asm.c (dw2_asm_output_data_uleb128,
2596         dw2_asm_output_data_sleb128): Likewise.
2597         * genrecog.c (debug_decision_2): Likewise.
2598         * loop.c (emit_prefetch_instructions): Likewise.
2599         * print-rtl.c (print_rtx): Likewise.
2600         * print-tree.c (print_node_brief, print_node): Likewise.
2601         * ra-debug.c (dump_igraph, dump_graph_cost,
2602         dump_static_insn_cost): Likewise.
2603         * ra-rewrite.c (dump_cost): Likewise.
2604         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2605         * sreal.c (dump_sreal): Likewise.
2606         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
2607         * varasm.c (assemble_vtable_entry): Likewise.
2608
2609         * avr.c (avr_output_function_prologue,
2610         avr_output_function_epilogue, print_operand): Fix format specifier
2611         warnings.
2612         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
2613         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
2614
2615 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
2616
2617         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
2618         and ! TARGET_STRING cases.
2619
2620         * doc/cppopts.texi (-undef): Fix texinfo warning.
2621
2622         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
2623         * cppfiles.c (validate_pch): When -H is used, print some information
2624         about PCH files found.
2625
2626 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2627
2628         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
2629         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
2630         * config/mips/t-sr71k: Likewise.
2631
2632 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2633
2634         * arc.c (arc_output_function_prologue,
2635         arc_output_function_epilogue): Fix format specifier warnings.
2636         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
2637
2638         * v850.c (print_operand): Fix format specifier warnings.
2639
2640         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
2641         specifier warnings.
2642
2643         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
2644         format specifier warnings.
2645
2646         * ip2k.c (function_prologue, function_epilogue, print_operand):
2647         Fix format specifier warnings.
2648         * ip2k.md: Likewise.
2649
2650         * i960.c (i960_output_function_prologue, i960_print_operand,
2651         i960_print_operand_addr): Fix format specifier warnings.
2652
2653         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
2654         (i370_output_function_prologue): Fix format specifier warnings.
2655         * i370.h (PRINT_OPERAND): Likewise.
2656
2657         * fr30.c (fr30_print_operand): Fix format specifier warnings.
2658
2659         * dsp16xx.c (print_operand_address): Fix format specifier warning.
2660         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
2661
2662         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
2663         specifier warnings.
2664
2665         * alpha.c (print_operand_address, alpha_start_function,
2666         unicosmk_output_ssib): Use string concatentation on
2667         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2668         function calls into one.
2669         * arm.c (arm_print_operand): Likewise.
2670         * cris.c (cris_asm_output_mi_thunk): Likewise.
2671         * frv.c (frv_asm_output_mi_thunk): Likewise.
2672         * ia64.c (ia64_print_operand, process_set): Likewise.
2673         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
2674         Likewise.
2675         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
2676         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2677         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
2678         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
2679         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
2680         * s390.c (s390_assemble_integer): Likewise.
2681         * sparc.c (sparc_flat_function_prologue,
2682         sparc_flat_function_epilogue): Likewise.
2683         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
2684         * vax.c (vax_output_mi_thunk): Likewise.
2685
2686         * frv.c (frv_print_operand_memory_reference): Fix format specifier
2687         warning.
2688         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
2689
2690         * m68k.c (m68k_output_function_epilogue): Fix format specifier
2691         warnings.
2692
2693         * stormy16-protos.h (xs_hi_general_operand,
2694         xs_hi_nonmemory_operand): Prototype.
2695         * stormy16.c (xstormy16_output_shift): Fix format specifier
2696         warnings.
2697
2698         * cris.c: Fix format specifier warnings.
2699
2700 2003-05-16  Nick Clifton  <nickc@redhat.com>
2701
2702         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
2703
2704 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
2705
2706         * doc/bugreport.texi: Remove most of the of the preface of the
2707         bugs section.
2708
2709 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2710
2711         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
2712         .save XX, r0.
2713
2714 2003-05-15  Roger Sayle  <roger@eyesopen.com>
2715
2716         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
2717
2718 2003-05-15  Eric Christopher  <echristo@redhat.com>
2719
2720         * cfgcleanup.c (merge_blocks): Fix return value.
2721
2722 2003-05-15 Eric Christopher <echristo@redhat.com>
2723
2724         * combine.c (expand_compound_operation): Make sure
2725         that zero_extend operation is profitable.
2726
2727 2003-05-15  Richard Henderson  <rth@redhat.com>
2728
2729         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
2730         code protected by USE_GNULIBC_1.
2731
2732 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
2733
2734         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
2735         remove hppa*-*-mpeix* which could not be built, and prune
2736         files from tmake_file= or tm_file= lists that don't exist.
2737
2738         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
2739         * config/alpha/t-interix, config/arm/conix-elf.h
2740         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
2741         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
2742         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
2743         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
2744         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
2745         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
2746         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
2747         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
2748         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
2749         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
2750         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
2751         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
2752         * config/m68k/tower-as.h, config/m68k/tower.h
2753         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
2754         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
2755         * config/m88k/m88k-protos.h, config/m88k/m88k.c
2756         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
2757         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
2758         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
2759         * config/mips/rtems64.h, config/mips/sni-gas.h
2760         * config/mips/sni-svr4.h, config/mips/t-ecoff
2761         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
2762         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
2763         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
2764         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
2765         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
2766         * config/romp/romp-protos.h, config/romp/romp.c
2767         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
2768         * config/rs6000/aix3newas.h, config/rs6000/mach.h
2769         * config/sparc/bsd.h, config/sparc/hal.h
2770         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
2771         * config/sparc/lynx.h, config/sparc/netbsd.h
2772         * config/sparc/sp86x-aout.h, config/sparc/splet.h
2773         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
2774         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
2775         * config/sparc/t-halos, config/sparc/t-sparcbare
2776         * config/sparc/t-splet, config/sparc/t-sunos41
2777         * config/v850/rtems.h: Delete file.
2778
2779 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
2780
2781         * config/rs6000/rs6000-protos.h (function_value): Protoize.
2782
2783         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
2784
2785         * config/rs6000/rs6000.c (rs6000_function_value): New.
2786
2787 2003-05-15  Philip Blundell  <philb@gnu.org>
2788
2789         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
2790         All uses updated.
2791         (arm_tune_xscale): New variable.
2792         (arm_override_options): Set it.
2793         (arm_adjust_cost): Use it in place of arm_arch_xscale.
2794         (arm_gen_load_multiple): Likewise.
2795         (arm_gen_store_multiple): Likewise.
2796         * config/arm/arm.md (is_xscale): Likewise.
2797         * config/arm/arm.h (arm_tune_xscale): Declare.
2798
2799 2003-05-15  Philip Blundell  <philb@gnu.org>
2800
2801         PR target/10730
2802         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
2803         involving invalid constants.
2804
2805 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2806
2807         * pa.c (hppa_expand_prologue): Remove blockage.
2808
2809 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
2810
2811         * doc/bugreport.texi: Remove most of the bug reporting
2812         instructions and merge them into bugs.html.
2813
2814 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
2815
2816         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2817         g_switch_value to unsigned HOST_WIDE_INT.
2818
2819 2003-05-14  Eric Christopher  <echristo@redhat.com>
2820
2821         * combine.c: Fix header comments.
2822         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
2823         to all calls and prototype.
2824
2825 2003-05-14  Roger Sayle  <roger@eyesopen.com>
2826
2827         PR optimization/10764
2828         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
2829         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
2830         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
2831         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
2832         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
2833         the corresponding *fyl2x_?fxf3 instructions.
2834
2835 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
2836
2837         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
2838         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
2839         XCHAL_HAVE_L32R): New.
2840         * config/xtensa/xtensa-protos.h (non_const_move_operand,
2841         xtensa_load_constant, xtensa_function_prologue,
2842         xtensa_function_epilogue): Delete prototypes.
2843         (xtensa_expand_prologue): New.
2844         * config/xtensa/xtensa.c (frame_size_const,
2845         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
2846         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
2847         xtensa_function_prologue): Delete.
2848         (add_operand, xtensa_mem_offset): Formatting.
2849         (move_operand): If the const16 option is available, allow any SFmode
2850         and SImode constants.
2851         (xtensa_emit_move_sequence): Inline the former contents of
2852         xtensa_load_constant with modifications to handle the const16 option.
2853         (override_options): Add xtensa_char_to_class['W'] and set it to
2854         the general register class only if the const16 option is enabled.
2855         Fix formatting.  Disallow PIC when using the const16 option.
2856         (print_operand): Reorganize to switch on "letter" instead of the
2857         RTL code.  Add output_operand_lossage calls for invalid cases.
2858         Add support for 't' and 'b' letters.
2859         (xtensa_expand_prologue): New function to replace
2860         xtensa_function_prologue and xtensa_reorg.
2861         (xtensa_function_epilogue): Declare this as static.  Delete code
2862         to print the retw.n or retw instruction.
2863         (xtensa_return_addr): Use A0_REG instead of 0.
2864         (xtensa_rtx_costs): Add costs for using the const16 option.
2865         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
2866         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
2867         (TARGET_SWITCHES): Add "const16" and "no-const16".
2868         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
2869         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
2870         using the const16 option.
2871         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
2872         (TRAMPOLINE_SIZE): Change from 49 to 59.
2873         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
2874         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
2875         when using the const16 option.
2876         (PREDICATE_CODES): Delete non_const_move_operand.
2877         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
2878         UNSPECV_ENTRY.
2879         (movdi, movdf): If the source is a constant, always expand to a
2880         sequence of movsi insns.
2881         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
2882         (movsi_internal, movsf_internal): Add alternative using const16 insns.
2883         (movsf): Add const16 support.
2884         (entry, prologue, epilogue): New.
2885         (set_frame_ptr): Add missing mode for unspec_volatile operation.
2886         Likewise for subsequent split pattern.
2887         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
2888         "-mconst16" and "-mno-const16" options.
2889
2890 2003-05-14  Richard Henderson  <rth@redhat.com>
2891
2892         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
2893         to be DImode register.  Merge load_symptr.
2894         * config/ia64/ia64.md (load_symptr): Remove.
2895
2896 2003-05-14  Richard Henderson  <rth@redhat.com>
2897
2898         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
2899         DEFERRED_CONSTANT_P.
2900         * integrate.c (copy_rtx_and_substitute): Update use.
2901         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
2902         to the copy generated.
2903         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
2904         of the constant to see if we should emit.
2905         (mark_constant): Similarly.
2906         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
2907
2908 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
2909
2910         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
2911         move record condition.
2912         (movdi_internal2): Same.
2913
2914 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
2915
2916         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
2917         (GCOV_TAG_*) Force type to gcov_unsigned_t.
2918         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
2919         (struct gcov_var): Remove modified. Add start, length, offset,
2920         overread. Have buffer array for libgcov.
2921         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
2922         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
2923         * gcov-io.c (gcov_open): Set mode, do not read anything.
2924         (gcov_close): Write final block.
2925          (gcov_write_block, gcov_allocate): New.
2926         (gcov_write_bytes): Make static. Write or allocate buffer.
2927         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
2928         null.
2929         (gcov_write_string): Adjust.
2930         (gcov_write_tag)
2931         (gcov_write_length): Adjust. Flush the block.
2932         (gcov_write_tag_length): Buffer can never be null.
2933         (gcov_read_bytes): Make static. Read in block.
2934         (gcov_sync): Moved here. Adjust.
2935         (gcov_seek): Moved here. Adjust.
2936         * coverage.c (read_counts_file): Adjust.
2937         * gcov-dump.c (print_prefix): Add position parameter.
2938         (flag_dump_positions): New flag.
2939         (options, main, print_usage): Add it.
2940         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
2941         tag_summary): Adjust.
2942         * gcov.c (read_graph_file, read_count_file): Adjust.
2943         * libgcov.c (gcov_exit): Adjust.
2944
2945         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
2946         (libgcov.a): Depend on libgcc.a.
2947         (gcov.o, gcov-dump.o): Add gcov-io.c.
2948         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
2949
2950         * loop.c (check_dbra_loop): Factor common test.
2951
2952 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
2953
2954         * doc/md.texi (Automaton pipeline description): Grammar fixes.
2955
2956 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
2957
2958         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
2959         (TARGET_INITIALIZER): Include it.
2960         * target.h (struct gcc_target): Add machine_dependent_reorg field.
2961         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
2962         * system.h: Poison MACHINE_DEPENDENT_REORG.
2963
2964         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
2965         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
2966         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2967         (alpha_handle_trap_shadows): Remove "first insn" parameter.
2968         (alpha_align_insns): Likewise.
2969         (alpha_reorg): Likewise.  Make static.  Update calls to above
2970         functions.
2971
2972         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
2973         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
2974         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2975         (arm_reorg): Remove parameter.  Make static.
2976
2977         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
2978         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
2979         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2980         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
2981         Remove parameter.
2982
2983         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
2984         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
2985         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2986         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
2987         Remove parameter.
2988
2989         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
2990         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
2991         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
2992
2993         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
2994         * config/frv/frv.c: Remove orphaned comment.
2995
2996         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
2997         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
2998         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2999         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
3000         Remove parameter.
3001
3002         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
3003         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
3004         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3005         (emit_insn_group_barriers): Remove "first insn" parameter.
3006         (emit_all_insn_group_barriers): Likewise.
3007         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
3008         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
3009
3010         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
3011         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
3012         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3013         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
3014         Remove parameter.
3015
3016         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
3017         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
3018         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3019         (m68hc11_reorg): Make static.  Remove parameter.
3020
3021         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
3022         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
3023         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3024         (conditionalize_optimization): Remove parameter.
3025         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
3026         Make static.  Update call to conditionalize_optimization.
3027
3028         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
3029         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
3030         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3031         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
3032         Make static.
3033
3034         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
3035         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
3036         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3037         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
3038         Remove parameter.
3039
3040         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
3041         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
3042         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3043         (pa_combine_instructions): Remove "first insn" parameter.
3044         (remove_useless_addtr_insns): Likewise.
3045         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
3046
3047         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
3048         commented-out definition.
3049
3050         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
3051         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
3052         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3053         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
3054         Remove parameter.
3055
3056         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
3057         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
3058         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3059         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
3060         Remove parameter.
3061         (sh_output_mi_thunk): Call sh_reorg directly.
3062         * config/sh/sh.md: Update comment.
3063
3064         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
3065         commented-out definition.
3066
3067         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
3068         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
3069         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3070         (v850_reorg): Make static.  Remove parameter.
3071
3072         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
3073         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
3074         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3075         (xtensa_reorg): Make static.  Remove parameter.
3076
3077         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
3078         (TARGET_MACHINE_DEPENDENT_REORG): Document.
3079
3080 2003-05-13  Richard Henderson  <rth@redhat.com>
3081
3082         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
3083         the old decl had instantiated DECL_RTL.
3084
3085 2003-05-13  Mike Stump  <mrs@apple.com>
3086
3087         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
3088
3089 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
3090
3091         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
3092         HOST_WIDE_INT argument.
3093
3094 2003-05-13  Jason Merrill  <jason@redhat.com>
3095
3096         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
3097
3098         * tree.c (iterative_hash_expr): New fn.
3099
3100         * c-semantics.c (emit_local_var): Don't mess with temp slots if
3101         there's no initializer.
3102
3103 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
3104
3105         * final.c (final_scan_insn): Apply the effects of frame-related
3106         delay slot insns before emitting a delayed branch.
3107
3108 2003-05-13  Nick Clifton  <nickc@redhat.com>
3109
3110         * config/mcore/mcore.md (jump): Use emit_jump_insn.
3111
3112 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3113
3114         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
3115         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
3116
3117 2003-05-12  DJ Delorie  <dj@redhat.com>
3118
3119         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
3120         (emit_push_insn): Don't use push when the source alignment is less
3121         than the stack's push rounding.
3122
3123 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
3124
3125         * diagnostic.c (output_format): Add support for %m.
3126         (output_printf, output_verbatim, diagnostic_set_info,
3127         verbatim): Set err_no field of the text_info structure being
3128         initialized.
3129         (fatal_io_error): Delete function.
3130         * diagnostic.h (text_info): Add err_no field.
3131         * toplev.h (fatal_io_error): Delete prototype.
3132
3133         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
3134         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
3135         * objc/objc-act.c: Replace all calls to fatal_io_error with
3136         calls to fatal_error; add ": %m" to the end of all the affected
3137         error messages.
3138
3139 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
3140
3141         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
3142         * rtl.h: Prototype it.
3143         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
3144         when appropriate.
3145
3146 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3147
3148         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
3149         ("*iorsi3_oi"): Likewise.
3150
3151 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
3152
3153         * arm.md (compare_scc): Use shorter sequence for EQ case.
3154         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
3155         (and_scc_scc): Ensure split only applies when there is a dominance
3156         of the comparisons.
3157         (and_scc_scc_nodom): New insn-and-split pattern.
3158
3159 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
3160
3161         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
3162         to _Unwind_SetGRPtr().
3163
3164 2003-05-13  Michael Eager <eager@mvista.com>
3165
3166         * Makefile.in: Initialize program_transform_cross_name from
3167         @program_transform_name@ instead of target_alias.
3168
3169 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
3170             Alan Modra  <amodra@bigpond.net.au>
3171             Jakub Jelinek  <jakub@redhat.com>
3172
3173         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
3174         * configure: Rebuild.
3175         * config/rs6000/rs6000-protos.h: Update.
3176         * config/rs6000/rs6000.c (rs6000_tls_size): New.
3177         (rs6000_tls_size_string): New.
3178         (rs6000_parse_tls_size_option): New.
3179         (rs6000_legitimize_tls_address): New.
3180         (rs6000_tls_get_addr): New.
3181         (rs6000_got_sym): New.
3182         (rs6000_tls_symbol_ref): New.
3183         (rs6000_tls_symbol_ref_1): New.
3184         (rs6000_get_some_local_dynamic_name): New.
3185         (rs6000_get_some_local_dynamic_name_1): New.
3186         (TARGET_HAVE_TLS): New.
3187         (TARGET_CANNOT_FORCE_CONST_MEM): New.
3188         (rs6000_override_options): Handle -mtls-size option.
3189         (constant_pool_expr_1): Handle TLS symbols.
3190         (rs6000_legitimize_address): Handle TLS symbols.
3191         (rs6000_tls_referenced_p): New.
3192         (rs6000_legitimate_address): Handle TLS symbols.
3193         (rs6000_emit_move): Handle TLS symbols.
3194         (print_operand): Handle TLS symbols.
3195         (uses_TOC): Handle TLS symbols.
3196         (rs6000_emit_prologue): Use symbol for unspec constant.
3197         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
3198         (some_ld_name): New.
3199         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
3200         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
3201         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
3202         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
3203         Support TLS.
3204         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
3205         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
3206         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
3207         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
3208         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
3209         tls_tls_64): New.
3210         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
3211
3212 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
3213
3214         * Makefile.in (stage2_build, stage3_build, stage4_build):
3215         Set BUILD_CC to the same as CC.
3216
3217 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
3218
3219         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
3220
3221 2003-05-12  Andreas Schwab  <schwab@suse.de>
3222
3223         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
3224         as unused.
3225         (bundling): Initialize 'pos'.
3226         (ia64_expand_builtin): Initialize 'rmode'.
3227
3228 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
3229
3230         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
3231         (ASM_OUTPUT_ALIGNED_COMMON): Same.
3232         (ASM_OUTPUT_LOCAL): Same.
3233
3234 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
3235
3236         * varasm.c (output_constant):  Fix underflow.
3237
3238 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
3239
3240         PR other/10745
3241         * configure.in: Correct detection of GNU ld version number.
3242         * configure: Regenerated.
3243
3244 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
3245
3246         * diagnostic.c (diagnostic_for_decl): Take a
3247         diagnostic_context argument.  Restructure to be consistent
3248         with diagnostic_report_diagnostic.
3249         (diagnostic_count_diagnostic): Now static.  Take a
3250         diagnostic_info argument, not just a diagnostic_t.  Some code
3251         moved here from internal_error.  Move a case label for
3252         clarity.
3253         (diagnostic_action_after_output): New function.  Code moved
3254         here from internal_error and fatal_error.
3255         (bug_report_request): New #define so that this text appears in
3256         only one place.
3257         (diagnostic_report_diagnostic): Update to match changes to
3258         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
3259         (diagnostic_set_info): Call gettext here.
3260
3261         (pedwarn): Update comment.  Don't call gettext here.
3262         (sorry): Use report_diagnostic.  Don't call gettext here.
3263         (fatal_error): Remove final fnotice and exit, but call
3264         real_abort to prevent warnings about noreturn function returning.
3265         (internal_error): Likewise.  Don't do ICE suppression here nor
3266         call context->internal_error.
3267         (warning_with_decl): Suppress for decls in system headers.
3268         Adjust call to diagnostic_for_decl.
3269         (pedwarn_with_decl): Likewise.
3270         (error_with_decl): Adjust call to diagnostic_for_decl.
3271         (error_recursion): Use bug_report_request.
3272
3273         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
3274         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
3275         diagnostic_count_diagnostic.
3276
3277 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3278
3279         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
3280
3281 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
3282
3283         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
3284         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
3285         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
3286
3287 2003-05-12  Roger Sayle  <roger@eyesopen.com>
3288
3289         * doc/rtl.texi: Document zero_extract as a valid destination
3290         of a set insn.
3291
3292 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
3293
3294         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
3295         '.'.  Change all local symbol definitions and references to use LSYM.
3296
3297 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
3298
3299         * expr.h (assemble_static_space): Update prototype.
3300         * output.h (assemble_zeros, output_constant): Likewise.
3301         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
3302         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
3303         it 64bit clean.
3304         * elf.h (ASM_OTUPUT_SKIP): Likewise.
3305         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
3306         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3307         Expect HOST_WIDE_INT operand.
3308         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3309         Expect HOST_WIDE_INT operand.
3310         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3311         Expect HOST_WIDE_INT operand.
3312         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
3313         HOST_WIDE_INT operand.
3314         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
3315         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
3316         * aout.h (ASM_OTUPUT_SKIP): Likewise.
3317         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
3318         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
3319         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
3320         * frv.h (ASM_OTUPUT_SKIP): Likewise.
3321         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
3322         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3323         Make it 64bit
3324         clean.
3325         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
3326         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3327         Make it 64bit clean.
3328         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
3329         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
3330         HOST_WIDE_INT operand
3331         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3332         Expect HOST_WIDE_INT operand
3333         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
3334         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
3335         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
3336         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3337         Likewise.
3338         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
3339         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3340         Likewise.
3341         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3342         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3343         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3344         ASM_OUTPUT_SKIP): Likewise.
3345         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
3346         Likewise.
3347         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3348         ASM_OUTPUT_SKIP): Likewise.
3349         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3350         ASM_OUTPUT_SKIP): Likewise.
3351         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
3352         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
3353         ASM_OUTPUT_SKIP): Likewise.
3354         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
3355         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
3356         ASM_OUTPUT_SKIP): Likewise.
3357         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
3358         Likewise.
3359         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
3360         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
3361         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
3362         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
3363         ASM_OUTPUT_SKIP): Make it 64bit clean.
3364         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
3365         Make it 64bit clean.
3366         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
3367         ASM_OUTPUT_SKIP): Make it 64bit clean.
3368         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
3369         64bit clean.
3370         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
3371         HOST_WIDE_INT argument
3372         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
3373         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
3374         HOST_WIDE_INT argument
3375         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
3376         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
3377         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
3378         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
3379         HOST_WIDE_INT argument
3380         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
3381         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
3382         * varasm.c (asm_output_bss, asm_output_aligned_bss,
3383         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
3384         HOST_WIDE_INT argument
3385
3386 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
3387
3388         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
3389         favor of walk_tree_without_duplicates.  Add comments.
3390
3391 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
3392
3393         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
3394         (struct alloc_pool_def): New element 'id'.
3395         * alloc-pool.c (fancy_abort): Extern function prototype.
3396         (abort): Macro which uses fancy_abort.
3397         (struct allocation_object_def): New structure.
3398         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
3399         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
3400         (last_id): New variable.
3401         (create_alloc_pool): Add the offset of u.data to size of element,
3402         increase and use last_id.
3403         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
3404         (pool_alloc): Likewise. Set ID for elements.
3405         (pool_free): Check whether the PTR was allocated from POOL.
3406
3407 2003-05-11  Richard Henderson  <rth@redhat.com>
3408
3409         PR c/10675
3410         * c-decl.c: Include hashtab.h.
3411         (detect_field_duplicates): New.
3412         (finish_struct): Use it.
3413         * Makefile.in (c-decl.o): Update.
3414         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
3415         (component_decl_list, component_decl_list2,
3416         components, components_notype): Build list in reverse order.
3417         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
3418
3419         * tree.c (chainon): Special case op2 null as well.
3420         Reorg for clarity.
3421
3422 2003-05-11  Roger Sayle  <roger@eyesopen.com>
3423
3424         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
3425         to implement log, logf and logl built-ins as inline x87 intrinsics.
3426         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
3427         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
3428         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
3429
3430         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
3431         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
3432
3433 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3434
3435         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
3436
3437         * sparc.c (print_operand): Fix uninitialized warning.
3438
3439 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3440
3441         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
3442         real insns.
3443         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
3444         condition.
3445
3446 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3447
3448         * doc/cpp.texi: Fix typos.
3449
3450 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3451
3452         * config/s390/s390.c (s390_function_arg_float): New function.
3453         (s390_function_arg_pass_by_reference): Use it.
3454         (s390_function_arg_advance): Likewise.
3455         (s390_function_arg): Likewise.
3456         (s390_va_arg): Likewise
3457
3458 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3459
3460         * coverage.h (coverage_counter_alloc): New function.
3461         * function.h (struct function): Remove arc_profile flag.
3462         * coverage.c (fn_ident): Remove.
3463         (fn_b_ctrs, no_coverage): New.
3464         (get_coverage_counts): Use current_function_funcdef_no.
3465         (coverage_counter_alloc): New.
3466         (coverage_counter_ref): Adjust.
3467         (coverage_begin_output): Check no_coverage. Use
3468         current_function_funcdef_no.
3469         (coverage_end_function): Likewise.
3470         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
3471         than clearing flag_inline_functions. Do not clear arc_profile
3472         flag.
3473         * function.c (prepare_function_start): Do not set arc_profile
3474         flag.
3475         * profile.c (instrument_edges): Return number of instrumented
3476         edges. Use a for loop.
3477         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
3478         local to here and simplify. Use profile_arc_flag not arc_profile
3479         flag.
3480         (find_spanning_tree): Reformat.
3481         * toplev.c (rest_of_compilation): Use profile_arc_flags and
3482         flag_test_coverage rather than arc_profile flag.
3483
3484 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
3485
3486         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
3487
3488 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3489
3490         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
3491
3492 2003-05-11  Bruno Haible  <bruno@clisp.org>
3493
3494         * cppfiles.c (find_or_create_entry): Preserve errno.
3495
3496 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3497
3498         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
3499         cpplib as it's a Standard Predefined Macro.
3500         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
3501         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
3502         __STDC_HOSTED__ appropriately.
3503         * cpplib.h (_cpp_init_builtins): Update.
3504         * fix-header.c (read_scan_file): Update.
3505         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
3506
3507 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3508
3509         PR C++/689
3510         PR C++/9257
3511         * c-opts.c (c_common_decode_option): Don't set
3512         warn_ctor_dtor_privacy wen -Wall.
3513         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
3514
3515 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
3516
3517         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
3518         patch.
3519
3520 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
3521
3522         * diagnostic.c: Reorder functions for clarity, putting all the
3523         functions in the "error" family next to each other, and
3524         likewise all the functions in the "error_with_decl" family.
3525         Some other routines were moved too.  Add comments.
3526         (vbuild_message_string): Fold into sole caller.
3527
3528
3529 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3530
3531         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
3532         (EH_RETURN_HANDLER_RTX): Likewise.
3533         (expand_builtin_eh_return): Do not copy stack adjustment
3534         if EH_RETURN_STACKADJ_RTX is not defined.
3535         (expand_eh_return): Likewise.  Also, do not pass stack
3536         adjustment as argument to the eh_return pattern.
3537         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
3538         because EH_RETURN_STACKADJ_RTX is not defined.
3539         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
3540         is not defined, treat stack pointer like a regular register.
3541         (uw_init_context_1): Set up fake initial stack pointer register.
3542         (uw_install_context_1): Do not compute stack adjustment if
3543         EH_RETURN_STACKADJ_RTX is not defined.
3544
3545         * config/i386/i386.md ("eh_return"): Remove first argument.
3546         * config/mips/mips.md ("eh_return"): Likewise.
3547         * config/rs6000/rs6000.md ("eh_return"): Likewise.
3548         * config/sh/sh.md ("eh_return"): Likewise.
3549
3550         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
3551
3552 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
3553
3554         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
3555
3556 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3557
3558         * defaults.h (GCOV_TYPE_SIZE): Remove.
3559         * gcov-io.h (gcov_type): Set to specific mode int on target.
3560         (gcov_unsigned_t, gcov_position_t): New.
3561         (GCOV_TYPE_NODE): New.
3562         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
3563         (GCOV_COUNTERS_SUMMABLE): New.
3564         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
3565         gcov_ctr_info, gcov_info): Adjust types.
3566         (gcov_var): Adjust types.
3567         (gcov_write_unsigned, gcov_write_tag,
3568         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3569         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3570         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
3571         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
3572         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3573         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3574         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
3575         __gcov_init, __gcov_merge_add): Adjust gcov types.
3576         * coverage.c (ctr_merge_functions): Constify.
3577         (ctr_names): New.
3578         (read_counts_file): Adjust gcov types. Only summarize & merge
3579         summable counters.
3580         (coverage_counter_ref): Use GCOV_TYPE_NODE.
3581         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
3582         build_ctr_info_value, build_gcov_info): Adjust types.
3583         * profile.c (branch_prob): Adjust gcov types.
3584         * gcov_dump (dump_file): Adjust gcov types.
3585
3586 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
3587
3588         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
3589         constants.
3590         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
3591         * arm.c (arm_select_dominance_cc_mode): Renamed from
3592         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
3593         Callers updated.
3594         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
3595
3596 2003-05-09  Roger Sayle  <roger@eyesopen.com>
3597
3598         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
3599         as unsigned to avoid signed/unsigned comparison warnings.
3600
3601 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3602
3603         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
3604         instruction if the Xtensa density option is enabled.
3605
3606 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
3607
3608        * mklibgcc.in: Remove extra quotes.
3609
3610 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
3611
3612         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
3613         of int_ftype_void.
3614
3615 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
3616
3617         * reload1.c (reload_cse_move2add): Don't turn an implicit
3618         truncation into a self-set in the narrow mode.
3619
3620 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
3621
3622         * arm.md (clzsi2): The CLZ instruction is predicable.
3623
3624 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3625
3626         * config/xtensa/xtensa.c: Formatting.
3627
3628 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3629
3630         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
3631         instead of TREE_OPERAND to access the operand of a
3632         CONSTRUCTOR node.
3633
3634 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3635
3636         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
3637         one operand.
3638
3639 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3640
3641         * toplev.h (warning_with_file_and_line): Don't declare.
3642         (error_with_file_and_line): Likewise.
3643         * diagnostic.c (error_with_file_and_line): Remove.
3644         (warning_with_file_and_line): Likewise.
3645
3646 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3647
3648         * c-parse.in (if_stmt_locus): New object.
3649         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
3650         (select_or_iter_stmt rule): Likewise.
3651         (if_stmt_file): Remove.
3652         (if_stmt_line): Likewise.
3653         * jump.c: include "diagnostic.h"
3654         (never_reached_warning): Don't use warning_with_file_and_line.
3655         * Makefile.in (jump.o): Add dependce on diagnostic.h
3656
3657 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
3658
3659         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
3660         Move code handling pieces not larger than a word to..
3661         * function.c (assign_parms): ..here, but use change_address instead
3662         of adjust_address and operand_subword, and expand_binop instead of
3663         expand_shift.  Adjust calls to move_block_from_reg.
3664         * expr.h (move_block_from_reg): Update declaration.
3665         (copy_blkmode_from_reg): Formatting.
3666         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
3667         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
3668         move_block_from_reg calls.
3669         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
3670         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
3671         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3672         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
3673         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
3674         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3675         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
3676         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3677         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
3678
3679 2003-05-08  DJ Delorie  <dj@redhat.com>
3680
3681         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
3682         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
3683         variable-sized types).
3684         (xstormy16_function_arg): New.  Pass them that way too.
3685         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
3686         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
3687
3688 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
3689
3690         * mklibgcc.in: Use mkinstalldirs when installing multilib
3691         directories.
3692
3693 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
3694
3695         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
3696         instead of CODE_FOR_jump
3697
3698 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
3699
3700         * objc/objc-act.c (error_with_ivar): Don't use
3701         error_with_file_and_line.
3702         (warn_with_method): Don't use warning_with_file_and_line.
3703
3704 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3705
3706         * stmt.c (emit_locus): New macro.
3707         (emit_filename): Remove.
3708         (emit_lineno): Likewise.
3709         (struct stmt_status): Replace members x_emit_filename and
3710         x_emit_lineno with x_emit_locus.
3711         (set_file_and_line_for_stmt): Adjust.
3712         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
3713         (warn_if_unused_value): Likewise.
3714         (check_seenlabel): Likewise.
3715
3716 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3717
3718         * c-decl.c (define_label): Tidy.  Don't use any of
3719         error_with_file_and_line or warning_with_file_and_file.
3720         (pending_xref_error): Likewise.
3721         (store_parm_decls): Likewise.
3722         (current_function_prototype_locus): New object.  Package from
3723         current_function_prototype_file and current_function_prototype_line.
3724         (start_function): Use it.
3725         (current_function_prototype_file): Remove.
3726         (current_function_prototype_line): Remove;
3727
3728 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3729
3730         * builtins.c (readonly_data_expr): New function.
3731         (expand_builtin_memmove): Optimize any rodata source, not just
3732         strings.
3733
3734 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3735
3736         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
3737
3738 2003-05-07  Richard Henderson  <rth@redhat.com>
3739
3740         * config/i386/i386.c (ix86_split_long_move): Fix base register
3741         mode for XFmode splits for TARGET_64BIT.
3742
3743 2003-05-07  Richard Henderson  <rth@redhat.com>
3744
3745         * sched-ebb.c (schedule_ebb): Supply the correct starting
3746         block number to save_line_notes.
3747
3748 2003-05-07  Richard Henderson  <rth@redhat.com>
3749
3750         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
3751         (dump_file): Likewise.
3752
3753 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3754
3755         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
3756         forget to preserve gp.
3757         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
3758
3759         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
3760         .prologue directive.
3761         Use .skip instead of data8 for .bss section to make Intel
3762         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
3763         explicit in the .mib bundles and remove the unnecessary stop
3764         bits.  Replace local labels with normal labels, to make ias
3765         happy.  Don't register __do_global_ctors_aux here, do it in
3766         crtend.asm instead.
3767
3768         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
3769         __do_global_ctors_aux in .init_array section instead of
3770         declaring it as a hidden global.  Replace local labels with
3771         ordinary labels to make ias happy.
3772
3773 2003-05-07  Richard Henderson  <rth@redhat.com>
3774
3775         PR c++/10570
3776         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
3777         * flags.h, toplev.c, doc/invoke.texi: Likewise.
3778
3779         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
3780         * unwind.inc (_Unwind_DeleteException): Check for null
3781         exception_cleanup.
3782
3783         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
3784         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
3785         * unwind.h: Declare them.
3786         * libgcc-std.ver (GCC_3.3): Export them.
3787
3788 2003-05-07  Richard Henderson  <rth@redhat.com>
3789
3790         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
3791         not _Unwind_Word.
3792
3793 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
3794
3795         * stmt.c (force_label_rtx): New function, based on logic
3796         formerly found in expand_expr.
3797         * expr.h: Prototype it.
3798         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
3799         appropriate.
3800         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
3801
3802         * print-tree.c (debug_tree): Free the table after we're done
3803         with it.  Use putc.
3804
3805 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
3806
3807         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
3808         Unreverse arguments for __ev_subw.
3809
3810         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
3811
3812 2003-05-07  Nick Clifton  <nickc@redhat.com>
3813
3814         * config/stormy16/stormy-abi: Update to include
3815         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
3816         R_XSTORMY16_12 relocs.
3817
3818 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
3819
3820         * function.c (assign_parms): Correct reversed reg_parm_stack_space
3821         test.  Add partial in-regs size to stack_args_size.
3822
3823 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3824
3825         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
3826         as a C only option.
3827
3828 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
3829
3830         * gcov-io.h (GCOV_LOCKED): New #define.
3831         (GCOV_LINKAGE): Make sure it is #defined.
3832         (gcov_write_string, gcov_write_tag, gcov_write_length,
3833         gcov_read_string, gcov_time): Poison in libgcov.
3834         (gcov_seek_end): Remove.
3835         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
3836         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
3837         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
3838         GCOV_TAG_SUMMARY_LENGTH): New #defines.
3839         (gcov_write_tag, gcov_write_length): Not in libgcov.
3840         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
3841         (gcov_write_tag, gcov_write_length): Not in libgcov.
3842         (gcov_write_tag_length): New.
3843         (gcov_write_summary): Use gcov_write_tag_length.
3844         * libgcov.c: Always #include gcov-io.h.
3845         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
3846         (GCOV_LINKAGE): Define to nothing for L_gcov.
3847         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
3848         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
3849         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
3850         (read_count_file): Likewise.
3851         * gcov-dump.c (dump_file): Likewise.
3852         * coverag.c (read_counts_file): Likewise.
3853
3854 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
3855
3856         PR other/10658
3857         * gcc.c (process_command): Update copyright date.
3858
3859 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
3860
3861         * doc/install.texi (mips-*-*):  Add note about libstdc++.
3862
3863 2003-05-06  DJ Delorie  <dj@redhat.com>
3864
3865         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
3866         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
3867         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
3868
3869 2003-05-06    <neil@cat.daikokuya.co.uk>
3870
3871         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
3872         and -Wstrict-prototypes if C++.
3873
3874 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
3875
3876         * config/rs6000/linuxspe.h: New file.
3877
3878         * config.gcc: Add powerpc-*-linux-gnuspe* target.
3879
3880 2003-05-06  Richard Henderson  <rth@redhat.com>
3881
3882         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
3883         previous frame didn't save sp.  Clear sp for next frame.
3884         (uw_install_context_1): Honor saved sp from frame.
3885
3886 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3887
3888         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
3889         (mips_move_1word, mips_move_2words): Remove declaration.
3890         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
3891         (mips_restore_gp): Remove insn argument.
3892         * config/mips/mips.h (FP_REG_RTX_P): New macro.
3893         * config/mips/mips.c (volatile_buffer): Remove.
3894         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
3895         (mips_move_1word, mips_move_2words): Remove, replacing with...
3896         (mips_output_move): ...this new function.
3897         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
3898         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
3899         handling of floating-point constants.  Handle zero CONST_DOUBLE
3900         arguments.
3901         (mips_annotate_frame_insn): Replace with...
3902         (mips_set_frame_expr): ...this, which just takes one argument.
3903         (mips_frame_set): Change the register argument to an rtx.
3904         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
3905         check whether moves should be split.  Use mips_split_64bit_move
3906         to split them.  Use mips_subword to generate the high and low
3907         parts of a paired FPR.  Adjust calls to frame_set and
3908         mips_set_frame_expr.
3909         (mips_expand_prologue): Simplify due to above changes.
3910         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
3911         targets, replacing xisting register-only versions.
3912         (UNSPEC_STORE_DF_HIGH): New unspec.
3913         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
3914         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
3915         (*paradoxical_extendhidi2): Remove.
3916         (movdi_internal, movdi_internal2): Use mips_output_move.
3917         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
3918         (movsf_internal1, movsf_internal2): Likewise.
3919         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
3920         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
3921         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
3922         Add m <- G alternative.
3923         (load_df_low, load_df_high, store_df_low): New patterns.
3924         (movhi_internal): Use @ template instead of calling a function.
3925         Remove unnecessary 'z' alternatives.
3926         (movqi_internal): Likewise.
3927         (exception_receiver): Update call to mips_restore_gp.
3928
3929 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3930
3931         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
3932         (mips_delegitimize_address): Declare.
3933         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
3934         (FIND_BASE_TERM): Define.
3935         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
3936         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
3937         Handle small-data addresses.
3938
3939 2003-05-05  Roger Sayle  <roger@eyesopen.com>
3940
3941         * real.c (real_powi): New function to calculate the value of
3942         a real raised to an integer power, i.e. pow(x,n) for int n.
3943         (real_sqrt): Convert to using the faster do_add, do_multiply
3944         and do_divide API for consistency with the rest of real.c.
3945         * real.h (real_powi): Prototype here.
3946         * builtins.c (fold_builtin):  Avoid local variable mode when
3947         evaluating sqrt at compile time.  Attempt to evaluate pow at
3948         compile-time, by checking for an integral exponent.
3949
3950 2003-05-05  Richard Henderson  <rth@redhat.com>
3951
3952         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
3953
3954 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
3955
3956         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
3957         other FreeBSD ports.
3958         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
3959         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
3960
3961 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
3962
3963         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
3964         expanded variables.
3965         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
3966
3967 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
3968
3969         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
3970         * varasm.c (struct varasm_status): Add deferred_constants field.
3971         (n_deferred_strings): Delete variable.
3972         (n_deferred_constants): New #define.
3973         (struct constant_descriptor_tree): Kill next and label fields.
3974         (const_hash_table, MAX_HASH_TABLE): Delete.
3975         (const_desc_htab): New static variable.
3976         (const_hash): Rename const_desc_hash, and make it fit the
3977         hashtab.h interface.
3978         (const_desc_eq): New.
3979         (const_hash_1, compare_constant): Const-ify arguments.
3980         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
3981         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
3982         (output_constant_def): Do the lookup/insert using the
3983         hashtab.h interface.  Don't muck with n_deferred_constants or
3984         DEFERRED_CONSTANT_P here.
3985         Always call maybe_output_constant_def_contents.
3986         (maybe_output_constant_def_contents): Take a pointer to the
3987         descriptor, not the EXP and RTL separately.  Return
3988         immediately if this constant is not deferred.  Defer output of
3989         everything, except writable string constants.  Update
3990         n_deferred_constants here.
3991         (output_constant_def_contents): Now takes just one argument,
3992         an rtx.  Clear DEFERRED_CONSTANT_P here.
3993         (mark_constant_pool): Update for rename of n_deferred_strings.
3994         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
3995
3996         (init_varasm_status): Clear p->deferred_constants.
3997         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
3998
3999 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4000
4001         * builtins.c (expand_builtin_stpcpy): Only expand when the length
4002         of the source string can be evaluated at compile-time.
4003
4004 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
4005