OSDN Git Service

* reload1.c (reload_cse_simplify): Fix typo in rtx code check.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
2
3         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
4
5 2002-05-20  H.J. Lu  (hjl@gnu.org)
6
7         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
8
9         * config/mips/mips.h (DFMODE_NAN): Defined.
10         (SFMODE_NAN): Likewise.
11
12 2002-05-20  Dale Johannesen  <dalej@apple.com>
13
14         * combine.c (cant_combine_insn_p):  Back out my
15         previous patch.
16
17 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
18
19         * params.c: Fix formatting.
20         * params.h: Likewise.
21         * predict.c: Likewise.
22         * prefix.c: Likewise.
23         * print-rtl.c: Likewise.
24         * print-tree.c: Likewise.
25         * profile.c: Likewise.
26
27 2002-05-20  H.J. Lu  (hjl@gnu.org)
28
29         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
30
31 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
32
33         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
34         switches straight on to the assembler, do not abbreviate them.
35         * config/arm/elf.h (ASM_SPEC): As above.
36         * config/arm/semi.h (ASM_SPEC): As above.
37         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
38         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
39         -mcpu=xscale on to the assembler by default.
40         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
41
42 2002-05-20  Richard Henderson  <rth@redhat.com>
43
44         * cse.c (canon_hash): Reorder do_not_record test.  Always
45         allow pic_offset_table_rtx.
46
47 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
48
49         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
50         (expand_binop): Ditto (3 times).
51
52 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
53
54         * Makefile.in (distclean): Remove QMTest stuff.
55         (QMTEST_PATH): New variable.
56         (QMTESTFLAGS): Likewise.
57         (QMTESTRUNFLAGS): Likewise.
58         (QMTEST): Likewise.
59         (QMTEST_GPP_TESTS): Likewise.
60         (QMTEST_DIR): Likewise.
61         (QMTEST_DIR/context): New target.
62         (qmtest-g++): Likeise.
63         (qmtest-gui): Likewise.
64         (QMTEST_DIR/gpp-expected.qmr): Likewise.
65
66 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
67
68         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
69         an altivec register if TARGET_ALTIVEC.
70
71         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
72         to ALTIVEC_VECTOR_MODE.
73         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
74         (rs6000_va_arg): Vectors may go in registers if they are not
75         altivec vectors.
76
77 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
78
79         * protoize.c: Fix formatting.
80
81 2002-05-19  Richard Henderson  <rth@redhat.com>
82
83         * gensupport.c (init_include_reader): Merge into ...
84         (process_include): ... here.  Simplify composite path creation.
85         Plug memory leaks.  Fix file/line number tracking.  Do not
86         process_define_cond_exec.  Return void.
87         (process_rtx): Don't check process_include return value.
88
89 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
90
91         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
92         fields.
93         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
94         traversing basic block chain.
95         (create_basic_block_structure, create_basic_block): Declaration changed.
96         (link_block, unlink_block): Declare.
97         * cfg.c (entry_exit_blocks): Initialize new fields.
98         (link_block, unlink_block): New.
99         (expunge_block_nocompact): Unlink basic block.
100         (dump_flow_info): Print prev_bb/next_bb fields.
101         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
102         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
103         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
104         * cfgrtl.c (create_basic_block_structure, create_basic_block,
105         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
106         (verify_flow_info): Check that list agrees with numbering.
107
108 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
109
110         * c-common.c (preprocessing_asm): New macro.
111         * c-lex.h (builtin_define, builtin_assert): Use pfile.
112 doc:
113         * tm.texi: Update.
114 config/alpha:
115         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
116         (CPP_SPEC): Simplify.
117         (TARGET_CPU_CPP_BUILTINS): Update.
118         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
119         (CPP_SPEC): Simplify.
120         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
121         (TARGET_OS_CPP_BUILTINS): Update.
122         * osf.h (CPP_XFLOAT_SPEC): Kill.
123         (TARGET_OS_CPP_BUILTINS): Update.
124         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
125         * osf5.h (CPP_XFLOAT_SPEC): Kill.
126         * vms.h (CPP_SUBTARGET_SPEC): Kill.
127         (TARGET_OS_CPP_BUILTINS): Update.
128
129 2002-05-19  Richard Henderson  <rth@redhat.com>
130
131         * varasm.c (default_binds_local_p): Fix typo.
132
133 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
134
135         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
136         CONST_INT operand to the correct mode after adding 1 to it.
137
138 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
139
140         * config.gcc (powerpc-wrs-windiss*): New target.
141
142 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
143
144         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
145         (ashrdi3): Use it.
146
147 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
148
149         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
150         alphasort.
151         * config.in: Regenerated.
152         * configure: Regenerated.
153
154 2002-05-19  Richard Henderson  <rth@redhat.com>
155
156         * target-def.h (TARGET_BINDS_LOCAL_P): New.
157         * target.h (struct gcc_target): Move boolean fields to the end.
158         Add binds_local_p.
159         * varasm.c (default_binds_local_p): New.
160         * output.h: Declare it.
161
162         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
163         * config/cris/cris.c (cris_encode_section_info): Likewise.
164         * config/i386/i386.c (i386_encode_section_info): Likewise.
165         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
166         * config/sh/sh.c (sh_encode_section_info): Likewise.
167
168         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
169         (TARGET_BINDS_LOCAL_P): New.
170
171 2002-05-19  Richard Henderson  <rth@redhat.com>
172
173         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
174         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
175         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
176
177         * toplev.c (display_help): Kill -a -ax help.
178
179         * config/1750a/1750a.h, config/alpha/alpha.h, 
180         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
181         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
182         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
183         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
184
185         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
186         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
187
188         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
189         (ix86_output_function_block_profiler): Kill.
190         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
191         (m68hc11_function_block_profiler): Kill.
192         * config/m68hc11/m68hc11-protos.h: Update.
193         * config/m88k/m88k.c (output_block_profiler): Kill.
194         (output_function_block_profiler): Kill.
195         * config/m88k/m88k-protos.h: Update.
196
197 2002-05-19  Richard Henderson  <rth@redhat.com>
198
199         * system.h (STRIP_NAME_ENCODING): Poison it.
200         * output.h (STRIP_NAME_ENCODING): Remove.
201         (default_strip_name_encoding): Declare.
202         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
203         * target.h (strip_name_encoding): New.
204         * varasm.c (default_strip_name_encoding): New.
205
206         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
207         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
208         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
209         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
210         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
211         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
212         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
213         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
214         config/v850/v850.h: Use the hook, not the macro.
215
216         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
217         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
218         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
219         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
220         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
221         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
222         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h, 
223         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
224         config/v850/v850.c, config/v850/v850.h:
225         Move STRIP_NAME_ENCODING to out-of-line function and add
226         TARGET_STRIP_NAME_ENCODING.
227
228         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
229         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
230         with TARGET_STRIP_NAME_ENCODING referencing existing function;
231         make function static.
232
233         * xcoffout.c: Include target.h
234         * Makefile.in (xcoffout.o): Update.
235
236         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
237         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
238         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
239         reloc argument unused.
240         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
241
242         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
243         STRIP_NAME_ENCODING docs.
244
245 2002-05-19  Andreas Jaeger  <aj@suse.de>
246
247         * gengenrtl.c: Add prototype for excluded_rtx.
248
249         * real.h: Add prototype for exact_real_truncate.
250
251 2002-05-18  Richard Henderson  <rth@redhat.com>
252
253         * system.h (ENCODE_SECTION_INFO): Poison it.
254         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
255         * target.h (encode_section_info): New.
256         * varasm.c (make_decl_rtl, output_constant_def): Use it.
257         * hooks.c (hook_tree_int_void): New.
258         * hooks.h: Declare it.
259
260         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
261         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
262         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
263         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
264         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
265         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
266         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
267         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
268         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
269         config/mcore/mcore-protos.h, config/mcore/mcore.c,
270         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
271         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
272         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
273         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
274         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
275         referencing existing function.  Make function static.
276
277         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
278         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
279         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
280         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
281         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
282         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
283         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
284         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
285         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
286         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
287         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
288         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
289         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
290         Move ENCODE_SECTION_INFO to out-of-line function and add
291         TARGET_ENCODE_SECTION_INFO.
292
293         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
294         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
295
296         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
297         from SUBTARGET_*
298         (switch_to_section): Replace in_rdata case with in_readonly_data.
299
300         * config/h8300/h8300.c (h8300_encode_label): Make static.
301         * config/h8300/h8300-protos.h: Update.
302
303         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
304         from rs6000_encode_section_info; make static.
305         (rs6000_xcoff_encode_section_info): New.
306
307         * config/v850/v850.c (v850_encode_data_area): Make static.
308         * config/v850/v850-protos.h: Update.
309
310         * config/vax/vax.c: Include flags.h.
311         (vms_select_section): Fix typo.
312
313         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
314         ENCODE_SECTION_INFO docs.
315
316 2002-05-18  Richard Henderson  <rth@redhat.com>
317
318         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
319         REGISTER_TARGET_PRAGMAS.
320         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
321
322         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
323
324 2002-05-18  Richard Henderson  <rth@redhat.com>
325
326         * system.h (SELECT_RTX_SECTION): Poison.
327         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
328         * target.h (select_rtx_section): New.
329         * varasm.c (output_constant_pool): Use it.
330         (default_select_rtx_section, default_elf_select_rtx_section): New.
331         * output.h: Declare them.
332
333         * config/darwin.h (SELECT_RTX_SECTION): Move ...
334         * config/darwin.c (machopic_select_rtx_section): ... here.
335         * config/darwin-protos.h: Update.
336
337         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
338         * config/nextstep.c (machopic_select_rtx_section): ... here.
339         (nextstep_select_section): Rename variable to avoid macro clash.
340         * config/nextstep-protos.h: Update.
341
342         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
343         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
344         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
345         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
346         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
347         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
348         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
349         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
350         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
351         (SELECT_RTX_SECTION): Remove.
352
353         * config/darwin.h, config/elfos.h, config/nextstep.h,
354         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
355         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
356         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
357         config/sparc/lynx.h, config/xtensa/xtensa.c
358         (TARGET_ASM_SELECT_RTX_SECTION): New.
359
360         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
361         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
362         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
363         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
364         (ia64_aix_select_rtx_section): New.
365         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
366         redefining.
367         * config/mips/mips.c (mips_select_rtx_section): Make static.
368         Support ELF SHF_MERGE features.
369         * config/mips/mips-protos.h: Update.
370         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
371         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
372         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
373         make static, fall back to default_elf_select_rtx_section.
374         * config/rs6000/rs6000-protos.h: Update.
375         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
376         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
377         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
378         * config/romp/romp.c (romp_select_rtx_section): New.
379         * config/s390/s390.c (s390_select_rtx_section): New.
380         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
381         declarations before target macro definition.
382         (xtensa_emit_call): Use static buffer.
383         (xtensa_select_rtx_section): New.
384         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
385         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
386         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
387
388         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
389         SELECT_RTX_SECTION docs.
390
391 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
392
393         * i386.md (movsi/movdi): Fix template.
394         (sse2 patterns): Set attributes consistently.
395
396         * i386.md (pushqi2, ashrqi_*): Fix constraint.
397
398 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
399
400         * optabs.c (complex_part_zero_p): New.
401         * (expand_cmplxdiv_straight): Use it.
402         * (expand_cmplxdiv_wide): Ditto.
403         * (expand_binop): Ditto.
404
405 2002-05-18  Richard Henderson  <rth@redhat.com>
406
407         * final.c (HAVE_READONLY_DATA_SECTION): New.
408         (shorten_branches): Use it instead of ifdefs.
409         * varasm.c (enum in_section): Add in_readonly_data.
410         (text_section, data_section): Tidy.
411         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
412
413         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
414         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
415         (READONLY_DATA_SECTION): Don't undef.
416
417         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
418         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
419         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
420
421         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
422         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
423         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
424         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
425
426         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
427         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
428         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
429         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
430         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
431         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
432         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
433         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
434         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
435
436         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
437         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
438         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
439         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
440         config/pa/pa64-hpux.h, config/sparc/litecoff.h
441         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
442
443         * config/elfos.h, config/netware.h, config/svr3.h,
444         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
445         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
446         config/h8300/h8300.h, config/i386/i386-interix.h,
447         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
448         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
449
450         * config/elfos.h, config/netware.h, config/svr3.h,
451         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
452         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
453         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
454         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
455
456         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
457         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
458         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
459         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
460         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
461         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
462         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
463         config/rs6000/sysv4.h, config/v850/v850.h
464         (EXTRA_SECTIONS): Remove in_const/in_rdata.
465         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
466
467         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
468         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
469         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
470         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
471         * config/alpha/alpha.c (alpha_start_function): Likewise.
472         (alpha_write_linkage): Likewise.
473         * config/m32r/m32r.c (m32r_select_section): Likewise.
474         * config/m88k/m88k.c (m88k_select_section): Likewise.
475         * config/mips/mips.c (mips_select_rtx_section): Likewise.
476         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
477         (rs6000_elf_select_section): Likewise.
478         * config/v850/v850.c (v850_select_section): Likewise.
479
480         * config/1750a/1750a.h, config/i860/sysv3.h
481         (READONLY_DATA_SECTION_ASM_OP): New.
482         READONLY_DATA_SECTION_ASM_OP.
483         * config/i386/interix.c, config/i386/winnt.c
484         (i386_pe_unique_section): Always use .rdata prefix.
485         * config/pa/som.h (readonly_data): Always switch to read-only section.
486         (READONLY_DATA_SECTION): Predicate on flag_pic.
487         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
488         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
489         (READONLY_DATA_SECTION): Update.
490
491 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
492
493         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
494         is used without -Wformat.
495         * c-common.h (warn_format_zero_length): Declare extern.
496         * c-decl.c (warn_options): Add "format-zero-length".
497         * c-format.c (warn_format_zero_length): Declare.
498         (set_Wformat): Set warn_format_zero_length for -Wformat.
499         (check_format_info): Only warn about zero-length formats if
500         warn_format_zero_length is true.  Include the format type
501         name in the warning message.
502         * doc/invoke.texi: Document -Wformat-zero-length.
503         * testsuite/gcc.dg/format/zero-length-1.c: New test.
504
505 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
506
507         * timevar.c: Fix formatting.
508         * tlink.c: Likewise.
509         * toplev.c: Likewise.
510         * tree-dump.c: Likewise.
511         * tree-inline.c: Likewise.
512
513 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
514
515         * cppinit.c (cpp_post_options): If preprocessed, turn off
516         traditional.  If traditional, turn off column numbers.
517         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
518         * cpptrad.c (handle_newline): Update line_base.
519         (skip_comment): Handle -Wcomment.
520
521 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
522
523         * cppinit.c (struct builtin): Remove unused fields.
524         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
525         (operator_array): New - was second half of builtin_array.
526         (init_builtins): Simplify loop over builtin_array/operator_array.
527
528 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
529
530         * defaults.h (UNIQUE_SECTION): Remove.
531         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
532
533 2002-05-17  Richard Henderson  <rth@redhat.com>
534
535         * expr.c (init_expr_once): Don't use start/end_sequence.
536         Use rtx_alloc instead of emit_insn.
537         * toplev.c (lang_dependent_init): Run init_expr_once here ...
538         (lang_independent_init): ... not here.
539
540 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
541
542         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
543
544 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
545
546         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
547         for fixed registers, possibly used for global register variables.
548         (initial_elimination_offset, avr_output_function_prologue,
549         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
550
551 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
552
553         * Makefile.in: Update for cpptrad.c.
554         * cpphash.h (struct cpp_buffer): New members for buffer
555         overlays.
556         (struct cpp_reader): New members for traditional output.
557         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
558         * cppinit.c (cpp_create_reader): Set trad_line.
559         (cpp_destroy): Free trad_out_base if used.
560         (cpp_read_main_file): Overlay an empty buffer if traditional.
561         (cpp_finish_options): Don't do builtins.
562         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
563         (cpp_handle_option): Handle it.
564         * cpplex.c (continue_after_nul): New.
565         (_cpp_lex_direct): Use handle_nul.
566         * cpplib.h (struct cpp_options): New traditional option.
567         * cpptrad.c: New file.
568
569 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
570
571         * c-common.c (c_common_init_options): Use C89 for Objective-C,
572         and set the options flag.
573         * cppinit.c (lang_flags): Remove objc.
574         (lang_defaults): Remove OBJC and OBJCXX.
575         (set_lang): Update.
576         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
577         (cpp_handle_option): Remove -+ and -lang-objc++.
578         For ObjC, just set a flag.
579         (print_help): Update.
580         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
581
582 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
583
584         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
585         bootstrap with -mips3.
586
587 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
588
589         * final.c: Fix formatting.
590         * fix-header.c: Likewise.
591         * flow.c: Likewise.
592         * fold-const.c: Likewise.
593         * function.c: Likewise.
594
595 2002-05-17  David S. Miller  <davem@redhat.com>
596
597         PR c/6689, PR optimization/6615
598         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
599         and make it a pointer to rtx.  Update comments.
600         (update_equiv_regs): When scanning for equivalences, record
601         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
602         it while making the equiv replacements.
603
604 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
605
606         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
607
608 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
609
610         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
611         when encoding visibility into SYMBOL_REF_FLAG.
612
613 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
614
615         * expr.c (force_operand): Fix reversed move.
616
617 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
618
619         * doc/install.texi (Testing): Mention two common DejaGnu warnings
620         that can be ignored.
621
622 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
623
624         * doc/install.texi (Final install): Recommend to install into a
625         "clean" target directory.
626
627 2002-05-17  Richard Henderson  <rth@redhat.com>
628
629         * config/ia64/ia64.md: Use braced strings instead of quoted strings
630         for code blocks.  Tidy whitespace.
631
632 2002-05-17  Richard Henderson  <rth@redhat.com>
633
634         * hooks.c (hook_tree_bool_false): New.
635         * hooks.h: Declare it.
636         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
637         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
638         * target.h (select_section, unique_section): New.
639         (in_small_data_p): New.
640         * varasm.c (resolve_unique_section): Use hooks instead of macros.
641         (variable_section, output_constant_def_contents): Likewise.
642         (default_select_section, default_unique_section): New.
643         (categorize_decl_for_section, default_elf_select_section): New.
644         * output.h: Declare them.
645
646         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
647         (TARGET_ASM_SELECT_SECTION): New.
648         (SELECT_SECTION): Move ...
649         * config/darwin.c (machopic_select_section): ... here.
650         * config/darwin-protos.h: Update.
651
652         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
653         (SELECT_SECTION): Move ...
654         * config/nextstep.c (nextstep_select_section): ... here.
655         * config/nextstep-protos.h: Update.
656
657         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
658         (TARGET_ASM_SELECT_SECTION): New.
659         * config/svr3.h (SELECT_SECTION): Remove.
660
661         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
662         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
663         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
664         (alpha_encode_section_info): Use it.
665         * config/alpha/alpha-protos.h: Update.
666         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
667         (SELECT_SECTION, UNIQUE_SECTION): Remove.
668         (TARGET_ASM_SELECT_SECTION): New.
669         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
670
671         * config/arm/pe.h (UNIQUE_SECTION): Remove.
672         (TARGET_ASM_UNIQUE_SECTION): New.
673
674         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
675         (avr_unique_section): Rename from unique_section; make static.
676         * config/avr/avr-protos.h: Update.
677         * config/avr/avr.h (UNIQUE_SECTION): Remove.
678
679         * config/c4x/c4x.h (SELECT_SECTION): Remove.
680
681         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
682         (TARGET_ASM_UNIQUE_SECTION): New.
683         * config/i386/i386-interix.h: Likewise.
684         * config/i386/win32.h: Likewise.
685         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
686         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
687         * config/i386/sco5.h (SELECT_SECTION): Remove.
688         (TARGET_ASM_SELECT_SECTION): New.
689         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
690
691         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
692         instead of SELECT_SECTION.
693         * config/m68k/dpx2.h: Likewise.
694         * config/rs6000/lynx.h: Likewise.
695
696         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
697         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
698         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
699         (ia64_in_small_data_p): New.
700         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
701         (ia64_aix_select_section, ia64_aix_unique_section): New.
702         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
703         (SELECT_SECTION, UNIQUE_SECTION): Remove.
704
705         * config/m32r/m32r.h (SELECT_SECTION): Remove.
706         (TARGET_ASM_SELECT_SECTION): New.
707         * config/m32r/m32r.c (m32r_select_section): Take align argument.
708         * config/m32r/m32r-protos.h: Update.
709
710         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
711         (SELECT_SECTION): Move ...
712         * config/m88k/m88k.c (m88k_select_section): ... here.
713
714         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
715         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
716         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
717         (mcore_unique_section): Make static.
718         * config/mcore/mcore-protos.h: Update.
719
720         * config/mips/elf.h (UNIQUE_SECTION): Remove.
721         (TARGET_ASM_UNIQUE_SECTION): New.
722         * config/mips/elf64.h: Likewise.
723         * config/mips/iris6gld.h: Likewise.
724         * config/mips/linux.h: Likewise.
725         * config/mips/mips-protos.h: Update.
726         * config/mips/mips.c (mips_select_section): Add align argument.
727         * config/mips/mips.h (SELECT_SECTION): Remove.
728         (TARGET_ASM_SELECT_SECTION): New.
729
730         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
731         * config/mmix/mmix.c (mmix_select_section): Remove.
732         (mmix_unique_section): Remove.
733         * config/mmix/mmix-protos.h: Update.
734
735         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
736         (SELECT_SECTION): Move ...
737         * config/pa/pa.c (pa_select_section): ... here.
738         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
739
740         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
741         from rs6000_select_section and make static.
742         (rs6000_elf_unique_section): Similarly.
743         (rs6000_xcoff_select_section): From xcoff.h.
744         (rs6000_xcoff_unique_section): Likewise.
745         * config/rs6000/rs6000-protos.h: Update.
746         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
747         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
748         * config/rs6000/xcoff.h: Likewise.
749
750         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
751         (SELECT_SECTION): Move ...
752         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
753
754         * config/v850/v850.h (SELECT_SECTION): Move ...
755         * config/v850/v850.c (v850_select_section): ... here.
756         (TARGET_ASM_SELECT_SECTION): New.
757
758         * config/vax/vms.h (SELECT_SECTION): Move ...
759         * config/vax/vax.c (vms_select_section): ... here.
760         (TARGET_ASM_SELECT_SECTION): New.
761
762         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
763         for the target hooks.
764
765 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
766
767         * config/arm/arm.c (emit_multi_reg_push): Do not set
768         RTX_FRAME_RELATED_P on the SEQUENCE.
769
770 2002-05-16  Richard Henderson  <rth@redhat.com>
771
772         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
773         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
774
775 2002-05-16  Richard Henderson  <rth@redhat.com>
776
777         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
778
779         * config/ia64/ia64.c (saveable_obstack): Do not declare.
780
781 2002-05-16  Richard Henderson  <rth@redhat.com>
782
783         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
784         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
785         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
786         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
787         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
788         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
789         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
790         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
791         Revert "Basic block renumbering removal", and two followup patches.
792
793 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
794
795         * lcm.c (optimize_mode_switching): Revert previous change.
796
797 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
798
799         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
800         with only extant block numbers.
801
802 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
803
804         * lcm.c (optimize_mode_switching): Fix typo.
805
806 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
807
808         * flow.c (calculate_global_regs_live): Queue blocks in program order.
809
810 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
811
812         * doc/install.texi (Configuration): Document PWDCMD.
813
814 2002-05-16  Dale Johannesen  <dalej@apple.com>
815
816         * combine.c (cant_combine_insn_p):  Reenable combinations
817         involving hard regs unless CLASS_LIKELY_SPILLED_P.
818
819 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
820
821         * c-common.c (cb_register_builtins): Handle more built-ins
822         here rather than in gcc.c specs.
823         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
824         (cpp_options): Pass -O flags even when only preprocessing.
825         * toplev.c (set_fast_math_flags): New prototype.
826         (fast_math_flags_set_p): New.
827         (set_no_fast_math_flags): Remove.
828         (decode_f_option): Update.
829         * toplev.h (set_fast_math_flags): Update.
830         (fast_math_flags_set_p): New.
831         (set_no_fast_math_flags): Remove.
832 config:
833         * c4x/c4x.c (c4x_override_options): Update.
834
835 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
836
837         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
838         Default-define here.
839         (builtin_define_with_value): Can now wrap the expansion in
840         quotation marks if such is wanted.
841         (cb_register_builtins): Update calls to builtin_define_with_value.
842         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
843         here.
844         (c_common_init): Set options->stdc_0_in_system_headers.
845         * c-lex.h: Update prototype of builtin_define_with_value.
846         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
847         and REGISTER_PREFIX.
848
849         * cppinit.c (VERS, ULP, C, X): Kill.
850         (builtin_array): Remove entries for __VERSION__,
851         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
852         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
853         a constant.
854         (init_builtins): Kill off a bunch of now-dead code.
855         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
856         -fno-leading-underscore.
857         (cpp_handle_option): Remove code to set user_label_prefix.
858         (cpp_post_options): Likewise.
859
860         * cpplib.h (struct cpp_options): Remove user_label_prefix.
861         (stdc_0_in_system_headers): New.
862         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
863         stdc_0_in_system_headers) too to decide the value of __STDC__.
864
865         * tradcpp.c (user_label_prefix): Kill.
866         (main): Remove code handling -f(no-)leading-underscore.
867         (initialize_builtins): Don't define __REGISTER_PREFIX__
868         or __USER_LABEL_PREFIX__.
869         (install_value): Wrap compound statement in dummy loop so the
870         macro works properly in an if statement.
871
872
873 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
874
875         * loop.h (struct loop_info): Add member has_prefetch.
876         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
877         (prescan_loop): Initialize has_prefetch.
878         (struct prefetch_info): Change prefetch_in_loop and
879         prefetch_before_loop from bit fields to ints.
880         (emit_prefetch_instructions): Several small fixes.
881         (check_dbra_loop): Don't reverse loop that uses prefetch.
882
883 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
884
885         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
886         * configure.in: Likewise.
887         * fixinc/check.tpl: Likewise.
888         * fixinc/fixinc.dgux: Likewise.
889         * fixinc/fixinc.svr4: Likewise.
890         * fixinc/fixinc.winnt: Likewise.
891         * fixinc/fixincl.sh: Likewise.
892         * fixproto: Likewise.
893         * configure: Regenerate.
894
895 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
896
897         Basic block renumbering removal:
898         * basic_block.h (struct basic_block_def): Renamed index to sindex,
899         added prev_bb and next_bb fields.
900         (n_basic_blocks): Renamed to num_basic_blocks.
901         (last_basic_block): New, index of last basic block.
902         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
903         traversing basic block chain.
904         (BLOCK_NUM): index -> sindex.
905         (create_basic_block_structure, create_basic_block): Declaration changed.
906         (debug_num2bb): Declare.
907         (expunge_block_nocompact): Declaration removed.
908         (link_block, unlink_block, compact_blocks): Declare.
909         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
910         * cfg.c (entry_exit_blocks): Initialize new fields.
911         (clear_edges, alloc_block, expunge_block, cached_make_edge,
912         redirect_edge_pred, dump_flow_info, dump_edge_info,
913         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
914         free_aux_for_edges): Modified.
915         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
916         (expunge_block_nocompact): Removed.
917         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
918         find_unreachable_blocks, create_edge_list, print_edge_list,
919         verify_edge_list, flow_edge_list_print, remove_fake_successors,
920         remove_fake_edges, flow_reverse_top_sort_order_compute,
921         flow_depth_first_order_compute, flow_preorder_transversal_compute,
922         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
923         flow_dfs_compute_reverse_execute): Modified.
924         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
925         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
926         Modified.
927         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
928         merge_blocks_move_predecessor_nojumps,
929         merge_blocks_move_successor_nojumps, merge_blocks,
930         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
931         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
932         * cfglayout.c (skip_insns_after_block, label_for_bb,
933         record_effective_endpoints, scope_to_insns_finalize,
934         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
935         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
936         cfg_layout_duplicate_bb): Modified.
937         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
938         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
939         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
940         flow_loops_find, flow_loop_outside_edge_p): Modified.
941         * cfgrtl.c (create_basic_block_structure, create_basic_block,
942         flow_delete_block, compute_bb_for_insn, split_block,
943         try_redirect_by_replacing_jump, redirect_edge_and_branch,
944         force_nonfallthru_and_redirect, tidy_fallthru_edge,
945         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
946         commit_edge_insertions, commit_edge_insertions_watch_calls,
947         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
948         purge_all_dead_edges): Modified.
949         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
950         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
951         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
952         Modified.
953         * conflict.c (conflict_graph_compute): Modified.
954         * df.c (FOR_ALL_BBS): Removed.
955         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
956         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
957         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
958         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
959         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
960         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
961         * final.c (compute_alignments, final_scan_insn): Modified.
962         * flow.c (verify_local_live_at_start, update_life_info,
963         update_life_info_in_dirty_blocks, free_basic_block_vars,
964         delete_noop_moves, calculate_global_regs_live,
965         initialize_uninitialized_subregs, allocate_bb_life_data,
966         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
967         mark_used_reg, count_or_remove_death_notes): Modified.
968         * function.c (thread_prologue_and_epilogue_insns): Modified.
969         * gcse.c (struct null_pointer_info): Change typo of current_block
970         to basic_block.
971         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
972         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
973         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
974         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
975         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
976         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
977         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
978         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
979         pre_delete, one_pre_gcse_pass, compute_transpout,
980         invalidate_nonnull_info, delete_null_pointer_checks_1,
981         free_code_hoist_mem, compute_code_hoist_vbeinout,
982         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
983         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
984         compute_store_table, build_store_vectors, insert_insn_start_bb,
985         insert_store, replace_store_insn, free_store_memory, store_motion):
986         Modified.
987         * global.c (global_alloc, global_conflicts, mark_elimination,
988         build_insn_chain): Modified.
989         * graph.c (print_rtl_graph_with_bb): Modified.
990         * haifa-sched.c (sched_init): Modified.
991         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
992         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
993         if_convert): Modified.
994         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
995         compute_insert_delete, pre_edge_lcm, compute_available,
996         compute_farthest, compute_nearerout, compute_rev_insert_delete,
997         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
998         Modified.
999         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
1000         * loop.c (loop_dump_aux): Modified.
1001         * predict.c (combine_predictions_for_insn, estimate_probability,
1002         last_basic_block_p, process_note_prediction, process_note_predictions,
1003         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
1004         expensive_function_p, estimate_bb_frequencies,
1005         compute_function_frequency): Modified.
1006         * print-rtl.c (print_rtx): Modified.
1007         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
1008         get_exec_counts, compute_branch_probabilities, compute_checksum,
1009         branch_prob, find_spanning_tree): Modified.
1010         * recog.c (split_all_insns, peephole2_optimize): Modified.
1011         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
1012         convert_regs_1, convert_regs_2, convert_regs): Modified.
1013         * regclass.c (scan_one_insn, regclass): Modified.
1014         * regmove.c (mark_flags_life_zones, regmove_optimize,
1015         combine_stack_adjustments): Modified.
1016         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
1017         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
1018         * reorg.c (dbr_schedule): Modified.
1019         * resource.c (find_basic_block, init_resource_info): Modified.
1020         * sbitmap.c (sbitmap_intersection_of_succs,
1021         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
1022         sbitmap_union_of_preds): Modified.
1023         * sched-deps.c (init_dependency_caches): Modified.
1024         * sched-ebb.c (schedule_ebbs): Modified.
1025         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
1026         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
1027         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
1028         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
1029         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
1030         ssa_const_prop): Modified.
1031         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
1032         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
1033         * ssa.c (remove_phi_alternative, find_evaluations,
1034         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
1035         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
1036         make_regs_equivalent_over_bad_edges,
1037         make_equivalent_phi_alternatives_equival,
1038         compute_conservative_reg_partition,
1039         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
1040         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
1041         Modified.
1042
1043 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
1044
1045         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1046
1047 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
1048
1049         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
1050         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1051         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
1052         calling CONSTANT_POOL_ADDRESS_P.
1053         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
1054         to decide whether to define __arm__ or __thumb.
1055         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
1056         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1057
1058 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1059
1060         * config/arc/arc.h (CPP_PREDEFINES): Remove.
1061         (CPP_SPEC): Update.
1062         (TARGET_CPU_CPP_BUILTINS): New.
1063
1064 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1065
1066         * cpphash.h (cpp_macro): Move here, and make expansion a union.
1067         * cppmacro.c (cpp_macro): Remove.
1068         (enter_macro_context, replace_args, warn_of_redefinition,
1069         _cpp_create_definition, cpp_macro_definition): Update.
1070
1071 2002-05-16  Jason Merrill  <jason@redhat.com>
1072
1073         * config/mips/mips.c (mips_output_external): Don't do sdata
1074         optimization for a variable with DECL_COMDAT set.
1075
1076 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1077
1078         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
1079         Cleanups for accepting modifiers on pointers.
1080         Fix predicate typos.
1081         Allow long pointers as well as int pointers.
1082
1083 2002-05-15  Richard Henderson  <rth@redhat.com>
1084
1085         * varasm.c (merge_weak): Remove special case for extern and common.
1086
1087 2002-05-15  Matt Hiller  <hiller@redhat.com>
1088
1089         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
1090         XFAILing.
1091         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
1092         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
1093         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
1094         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
1095         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
1096         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
1097
1098 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1099
1100         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1101
1102 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1103
1104         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1105         ("altivec_mfvscr"): Read from VSCR.
1106
1107         Add vscr sets for the following insns: altivec_vctuxs,
1108         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
1109         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
1110         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
1111         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
1112         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
1113         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
1114         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
1115         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
1116         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
1117         altivec_vsum2sws, altivec_vsumsws.
1118
1119         * config/rs6000/rs6000.h: Add VSCR fixed register.
1120         (CALL_REALLY_USED_REGISTERS): Add vscr.
1121         (CALL_USED_REGISTERS): Same.
1122         (FIXED_REGISTERS): Same.
1123         (REG_ALLOC_ORDER): Same.
1124         (reg_class): Add VSCR_REGS.
1125         (REG_CLASS_NAMES): Same.
1126         (REG_CLASS_CONTENTS): Same.
1127         (VSCR_REGNO): New.
1128         (REGISTER_NAMES): Add vscr.
1129         (DEBUG_REGISTER_NAMES): Same.
1130         (ADDITIONAL_REGISTER_NAMES): Same.
1131         (FIRST_PSEUDO_REGISTER): Increment.
1132         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
1133
1134 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
1135
1136         * fold-const.c (fold): Fix a typo.
1137
1138 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
1139
1140         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
1141         comparison against the highest or lowest integer value before
1142         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
1143         transformation and that of an unsigned comparison against 0
1144         right after.
1145
1146 2002-05-15  Richard Henderson  <rth@redhat.com>
1147
1148         * varasm.c (merge_weak): Error for any weakening after definition.
1149         Adjust weakening after use warning to catch more cases.
1150         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
1151         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
1152
1153 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1154
1155         * invoke.texi (-malign-double): Re-add lost warning.
1156
1157         * i386-protos.h (x86_output_mi_thunk): Declare.
1158         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
1159         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
1160
1161         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1162         when flag_asynchronous_unwind_tables is set.
1163
1164         * flags.h (flag_reorder_functions): Declare.
1165         * function.c (prepare_function_start): Initialize frequnecy.
1166         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
1167         * Makefile.in (predict.o): Add dependency on target.h and params.h
1168         * defaults.h (HOT_TEXT_SECTION_NAME,
1169         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
1170         * predict.c (choose_function_section): New function.
1171         (estimate_bb_frequencies): Use it.
1172         * toplev.c (flag_reorder_functions): New global variable.
1173         (lang_independent_options): New.
1174         (parse_options_and_default_flags): Set.
1175         * varasm.c (assemble_start_function): Bypass functdion alignment
1176         for never executed functions.
1177         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
1178         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
1179         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1180         Document.
1181
1182         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1183
1184         * predict.c: Inlude profile.h
1185         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
1186         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
1187         Use the information about maximal counter in the program.
1188
1189         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
1190
1191         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
1192         probably_never_executed_bb_p): New functions.
1193         * cfgcleanup.c (outgoing_edges_match): Use them.
1194         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
1195         (maybe_hot_bb_p, probably_cold_bb_p,
1196         probably_never_executed_bb_p): New functions.
1197
1198         * function.h (function): Add new field function_frequency.
1199         * predict.c (compute_function_frequency): New function.
1200         (estimate_probability): Call it.
1201
1202 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1203
1204         PR optimization/5172, optimization/5200
1205         * gcse.c (gcse_main): Disable store_motion.
1206
1207 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
1208
1209         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
1210         (c_common_nodes_and_builtins): Use it.
1211         (builtin_define_with_value): New function.
1212         (cb_register_builtins): Define __SIZE_TYPE__,
1213         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
1214         using builtin_define_with_value.  Use consistent notation when
1215         defining __GXX_WEAK__.
1216         (WCHAR_TYPE_SIZE): Don't redefine.
1217         (combine_strings): Don't use WCHAR_TYPE_SIZE.
1218
1219         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
1220         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
1221         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
1222         * tradcpp.c (initialize_builtins): Likewise.
1223         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
1224
1225         * c-lex.h (builtin_define_with_value): Prototype.
1226         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
1227         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
1228         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
1229
1230         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
1231         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
1232         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
1233         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
1234         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
1235         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
1236         config/sparc/sol2-bi.h, config/sparc/sparc.h:
1237         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
1238         to __SIZE_TYPE__ etc from all spec strings. When this makes
1239         extra specs empty, delete them.
1240
1241 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1242
1243         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
1244         for PA8000 or generating dwarf2 call frame information.
1245         (output_call): Remove DO_FRAME_NOTES check from return pointer
1246         optimization.
1247         (following_call): Return 0 when scheduling for PA8000 or generating
1248         dwarf2 call frame information.  Revise comment.
1249
1250 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1251
1252 config/alpha:
1253         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
1254         and __IEEE_FP_INEXACT as appropriate.
1255         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
1256         (CPP_SPEC): Remove ieee defines.
1257         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
1258
1259 2002-05-14  Richard Henderson  <rth@redhat.com>
1260
1261         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1262         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1263
1264 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1265
1266         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
1267         (CPP_SPEC): Update.
1268         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
1269         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
1270         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
1271         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
1272         (EXTRA_SPECS): Update.
1273         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1274         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
1275         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
1276         define TARGET_OS_CPP_BUILTINS if necessary.
1277
1278 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1279
1280         * gcc.c (cpp_options): Must pass -m* and -f* options
1281         to the front end even when only preprocessing.
1282         (cc1_options): Remove redundant -lang-c.
1283         * tradcpp.c (main): Ignore -m options.
1284 objc:
1285         * lang-specs.h: Similarly.
1286
1287 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1288
1289         * genautomata.c (transform_3): Add code for transformation
1290         `(A,B,...)+C -> A+C,B,...'.
1291
1292 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
1293
1294         * final.c (end_final): Do not output profile_arcs constructor, when
1295         no functions are instrumented.
1296
1297 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
1298
1299         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1300
1301 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1302
1303         * doc/install.texi: Remove special markup originally required for
1304         HTML generation with texi2html.
1305
1306 2002-05-14  Andreas Schwab  <schwab@suse.de>
1307
1308         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1309         SELECT_SECTION.
1310         (UNIQUE_SECTION): Define to get small data correctly.
1311
1312         * varasm.c (resolve_unique_section): Add third parameter
1313         flag_function_or_data_sections and use it instead of
1314         flag_function_sections.
1315         (assemble_start_function): Pass flag_function_sections.
1316         (asm_emit_uninitialised): Pass flag_data_sections.
1317         (assemble_variable): Likewise.
1318
1319 2002-05-14  Richard Henderson  <rth@redhat.com>
1320
1321         * config/i386/i386.md: Use define_constants for unspec numbers.
1322         * config/i386/i386.c: Likewise.
1323
1324 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1325
1326         * doc/contrib.texi: Update my entry.
1327
1328 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
1329
1330         * fixinc/inclhack.def (winidss_valist): Limit applicability.
1331         * fixinc/fixincl.x: Regenerated.
1332         * fixinc/tests/base/math.h: Update.
1333         * fixinc/tests/base/testing.h: Likewise.
1334
1335 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
1336
1337         * genattr.c (gen_attr): Don't emit a comma after the last
1338         enumerator.
1339
1340 2002-05-13  Richard Henderson  <rth@redhat.com>
1341
1342         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1343         by non-local gotos.
1344         * recog.c (peephole2_optimize): Likewise.
1345
1346 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
1347
1348         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1349         input to O_BINARY.
1350
1351 2002-05-13  Jeffrey A Law  (law@redhat.com)
1352
1353         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
1354         Update prototype and callers.
1355         (propagate_one_insn): Stack pointer adjustments kill MEMs on
1356         the mem_set_list which reference the stack pointer, as do
1357         calls to constant functions as they may clobber outgoing
1358         argument space.
1359
1360         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
1361
1362         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
1363         (ia32_multipass_dfa_lookahead): New function.
1364
1365 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1366
1367         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
1368         (translate_options): Remove 'V'.
1369         (process_command): Similarly.
1370 doc:
1371         * invoke.texi: Remove documentation of 'V'.
1372
1373 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1374
1375         * config/s390/linux.h: Revert 2002-04-22 changes.
1376
1377 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
1378
1379         * config/fr30/fr30.md: Only allow splits of immediate loads
1380         if the destination is a register.
1381
1382 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1383
1384         * Makefile.in (c-common.o, cppinit.o): Update.
1385         * c-common.c: Include except.h.
1386         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
1387         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
1388         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
1389         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
1390         CPP_PREDEFINES): Handle here.
1391 config:
1392         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
1393         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
1394         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
1395         TARGET_OS_CPP_BUILTINS.
1396         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
1397         (CPP_SPEC, EXTRA_SPECS): Update.
1398         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
1399         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
1400         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
1401         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
1402         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
1403 doc:
1404         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
1405         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
1406
1407 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1408
1409         * emit-rtl.c (global_rtl): Update comment.
1410         (const_double_htab, const_double_htab_hash,
1411         const_double_htab_hash, lookup_const_double): New.
1412         (const_int_htab_hash, const_int_htab_eq): Remove const
1413         qualifiers, which cause tons of warnings with RTL checking on.
1414         (gen_rtx_CONST_DOUBLE): Deleted.
1415         (const_double_from_real_value): New function - bears some
1416         resemblance to the former immed_real_const_1.
1417         (immed_double_const): Moved here from varasm.c and
1418         simplified.
1419         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
1420         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
1421         (gen_rtx): Use immed_double_const.
1422         (init_emit_once): Initialize the const_double_htab.  Use
1423         REAL_VALUE_FROM_INT where possible.  Can now use
1424         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
1425         * varasm.c (struct varasm_status): Remove x_const_double_chain.
1426         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
1427         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
1428         (init_varasm_status, mark_varasm_status): Don't touch
1429         x_const_double_chain.
1430
1431         * output.h: Delete prototype for clear_const_double_mem.
1432         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
1433         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
1434         const_double_from_real_value, not immed_real_const_1, and use
1435         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
1436         CONST_DOUBLE_ATOF.
1437         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
1438         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
1439         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
1440         (gen_rtx_REG): Second arg is unsigned.
1441
1442         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
1443         (excluded_rtx): New, return true for CONST_DOUBLE.
1444         (genmacro): Write nothing for excluded codes.
1445         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
1446         * expr.c (expand_expr): Likewise.
1447         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
1448         CONST_DOUBLE_CHAIN.
1449         * toplev.c (rest_of_compilation): Don't call
1450         clear_const_double_mem.
1451
1452         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
1453         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
1454         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
1455         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
1456         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
1457         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
1458         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
1459         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
1460
1461 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1462
1463         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
1464
1465 2002-05-12  Tom Tromey  <tromey@redhat.com>
1466
1467         * tree.h (copy_node): Don't mention TREE_PERMANENT.
1468
1469 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1470
1471         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
1472         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
1473         * gensupport.h: Prototype new routines.
1474         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
1475         use of printf.
1476         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
1477         (next_comma_elt): Use scan_comma_elt.
1478
1479         * config/i386/i386.md: Use new attribute notation to break up
1480         long lines in define_attr forms.
1481
1482 2002-05-12  Richard Henderson  <rth@redhat.com>
1483
1484         * expr.c (compress_float_constant): New.
1485         (emit_move_insn): Use it.
1486         (float_extend_from_mem): New.
1487         (init_expr_once): Initialize it.
1488         * real.c (exact_real_truncate): New.
1489
1490         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
1491         dropped into memory; penalize for size.
1492         (RTX_COSTS): FLOAT_EXTEND is free.
1493         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
1494         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
1495
1496 2002-05-12  Richard Henderson  <rth@redhat.com>
1497
1498         * profile.h (profile_info): Add missing extern to declaration.
1499         * profile.c (profile_info): Define it.
1500
1501 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1502
1503         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
1504         used for DImode and TImode.
1505
1506 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1507
1508         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
1509         fake a newline.
1510
1511 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
1512
1513         * config/rs6000/rs6000.c (rs6000_default_long_calls,
1514         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
1515         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
1516         (rs6000_override_options): Handle -m(no-)longcall.
1517         (init_cumulative_args, output_mi_thunk): Check for both
1518         longcall and shortcall attributes on the function.
1519         (rs6000_attribute_table): Add "shortcall".
1520         (rs6000_handle_longcall_attribute): Update comment.
1521         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
1522         altivec_expand_ternop_builtin): Add default clauses to switches
1523         to silence warnings.
1524
1525         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
1526         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
1527         (TARGET_OPTIONS): Add longcall and no-longcall.
1528
1529         * config/rs6000/rs6000.md (call_nonlocal_sysv,
1530         call_value_nonlocal_sysv): Split by alternatives.  One pair
1531         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
1532         the call cookie.  The other pair accepts only LR/CTR and has
1533         no restriction.
1534
1535         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
1536         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
1537         tmake_file.
1538         * config/rs6000/rs6000-c.c: New file.
1539         * config/rs6000/t-rs6000-c-rule: New file.
1540         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
1541         Prototype rs6000_pragma_longcall.
1542
1543         * doc/extend.texi: Document shortcall attribute.
1544         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
1545
1546 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1547
1548         * reorg.c (dbr_schedule): Remove unnecessary test.
1549
1550 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
1551
1552         * i386.md (testsi to testqi spliters): New.
1553
1554         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
1555
1556         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
1557
1558         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
1559
1560         * basic-block.h: New flag EDGE_CAN_FALLTHRU
1561         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
1562         that can be made fallthru.
1563
1564         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
1565
1566         * cfglayout.c (cleanup_unconditional_jumps): New static function.
1567         (cfg_layout_initialize): Use it.
1568
1569 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1570
1571         * config/avr/avr.c (avr_mcu_types): Update supported devices.
1572         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1573         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1574
1575 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1576
1577         * dbxout.c: Fix formatting.
1578         * dependence.c: Likewise.
1579         * df.c: Likewise.
1580         * diagnostic.c: Likewise.
1581         * doloop.c: Likewise.
1582         * dominance.c: Likewise.
1583         * doschk.c: Likewise.
1584         * dwarf2asm.c: Likewise.
1585         * dwarf2out.c: Likewise.
1586         * dwarfout.c: Likewise.
1587
1588 2002-05-10  Richard Henderson  <rth@redhat.com>
1589
1590         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
1591         Convert integers constants as needed.  Replace "nwords" field with
1592         "sizeof_bb".
1593         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
1594         * function.h: Fix typo in comment.
1595         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
1596
1597 2002-05-10  Roger Sayle  <roger@eyesopen.com>
1598
1599         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
1600         into the equivalent (signed char)c > 0.
1601
1602 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
1603
1604         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
1605         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
1606         (struct prefetch_info): Fix spelling of member bytes_accessed.
1607         (emit_prefetch_instructions): Make dump messages more regular;
1608         restructure code to add more dump messages; use new macros for
1609         heuristics. (There are no code generation changes in any of this).
1610
1611 2002-05-10  David S. Miller  <davem@redhat.com>
1612
1613         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
1614         (struct rtx_def): Update unchanging flag comment.
1615         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
1616         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
1617         to be handled to INSN too.
1618         (dbr_schedule): Likewise.
1619         * resource.c (next_insn_no_annul): Likewise.
1620
1621         * cse.c (rtx_cost): Remove multiplication by power of 2 special
1622         casing.
1623
1624 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1625
1626         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
1627         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
1628         (possibly) work around broken /bin/sh.
1629
1630 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1631
1632         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
1633         . as N64/N32 libgcc_s.so subdirs.
1634
1635 2002-05-10  David S. Miller  <davem@redhat.com>
1636
1637         * config/sparc/sparc.md: Use define_constants for unspec numbers.
1638
1639         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
1640         more accurately.
1641         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
1642         comment.
1643         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
1644         * doc/rtl.texi: Document these macros more accurately.
1645         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
1646         JUMP_INSNs and CALL_INSNs.
1647         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
1648         or INSN_FROM_TARGET_P if the code is appropriate.
1649
1650 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1651
1652         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
1653         before using SYMBOL_REF_FLAG (addr).
1654
1655         * config/avr/avr-protos.h (avr_io_address_p): Declare.
1656         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
1657         Make non-static.  Update all callers.
1658         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
1659         New insns to clear/set/test a single bit in I/O address space.
1660
1661 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1662
1663         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
1664
1665 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1666
1667         * Makefile.in: Update.
1668         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
1669         builtin_define_std): New.
1670         (c_common_init): Register CPP builtins callback.
1671         * c-common.h (flag_iso, flag_undef): New.
1672         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
1673         * c-lex.c: Don't include target.h.
1674         (cb_register_builtins): Move to c-common.c.
1675         (init_c_lex): Don't register hook here.
1676         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
1677         (cpp_define, cpp_assert): Remove.
1678         * gcc.c (cc1_options): Pass -undef to front end.
1679         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
1680         (TARGET_INITIALIZER): Update.
1681         * target.h (struct cpp_reader): Don't predeclare.
1682         (struct gcc_target): Remove cpp builtin hook.
1683         * tree.c (default_register_cpp_builtins): Remove.
1684 doc:
1685         * tm.texi: Update.
1686
1687 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1688
1689         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
1690
1691 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1692
1693         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
1694         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
1695
1696 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
1697
1698         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
1699         * config/sparc/libgcc-sparc-glibc.ver: New file.
1700         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
1701         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
1702
1703 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
1704
1705         PR target/6429
1706         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
1707         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
1708         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
1709         base multilibs.
1710         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
1711         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1712         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
1713         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
1714
1715 2002-05-09  Richard Henderson  <rth@redhat.com>
1716
1717         * config/ia64/ia64.md: Use define_constants for unspec numbers.
1718         * config/ia64/ia64.c: Likewise.
1719
1720 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
1721
1722         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
1723         (save_restore_insns): Likewise.
1724         (mips_expand_prologue, mips_expand_epilogue): Update callers.
1725         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
1726
1727 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
1728
1729         * athlon.md, k6.md, pentium.md, ppro.md): New files.
1730         * i386.md: Move scheduling information into new files.
1731
1732         * i386.md (type attribute): Add "rotate" for rotate insns.
1733         (rotate insns): Set type to "rotate".
1734         (various attributes and function units): Treat rotate like shift.
1735         (pent_pair attribute): Only rotates by one bit position are
1736         pairable.
1737         (sbb insns): Explicitly set pent_pair attribute on a couple
1738         that were missing it.
1739
1740 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
1741
1742         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
1743         make sure that buffer starts on odd word address.
1744         (sh_va_arg): Skip odd fp registers when reading a double precision
1745         value.
1746
1747 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1748
1749         * tree.h (preserve_data, object_permanent_p, type_precision):
1750         Remove.
1751
1752 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1753
1754         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
1755         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
1756 doc:
1757         * cpp.texi: Update for removal of obsolete features.
1758
1759 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
1760                           Jeffrey A Law  (law@redhat.com)
1761
1762         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
1763         the DFA interface for Pentium processors.
1764         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
1765         (attr_pent_pair, ix86_pent_find_pair): Remove.
1766         (ix86_sched_reorder_pentium): Remove.
1767         (ix86_sched_reorder): Remove reordering for Pentium.
1768         * i386.md (Pentium scheduling): Rewrite using DFA description.
1769
1770 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
1771
1772         * cfganal.c (can_fallthru): Fix fast path.
1773         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
1774         with edges to the next block.
1775
1776 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
1777                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
1778
1779         * final.c (end_final): Use C trees to output data structures for profiling.
1780
1781         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
1782         (profile.o): New dependency profile.h
1783         (final.o): New dependency profile.h
1784         * profile.h: New file. New global structure profile_info.
1785         * final.h (count_edges_instrumented_now): Declare.
1786         (current_function_cfg_checksum): Declare.
1787         (function_list): New structure.
1788         (functions_head, functions_tail): New static variables.
1789         (end_final): Emits more data, removed some -ax stuff.
1790         (final): Stores function names and chcksums.
1791         * gcov-io.h (__write_gcov_string): New function.
1792         (__read_gcov_string): New function.
1793         * gcov.c (read_profile): New function.
1794         (create_program_flow_graph): Uses read_profile instead of reading
1795         da_file.
1796         (read_files): Removed da_file checking, it's done by read_profile now.
1797         * libgcc2.c (bb_function_info): New structure.
1798         (bb): New field in structure, removed some -ax stuff.
1799         (__bb_exit_func): Changed structure of da_file.
1800         * profile.c (count_edges_instrumented_now): New global variable.
1801         (current_function_cfg_checksum): New global variable.
1802         (max_counter_in_program): New global variable.
1803         (get_exec_counts): New function.
1804         (compute_checksum): New function.
1805         (instrument_edges): Sets count_edges_instrumented_now.
1806         (compute_branch_probabilities): Uses get_exec_counts instead of
1807         reading da_file.
1808         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
1809         (init_branch_prob): Removed da_file checking, done in get_exec_counts
1810         now.
1811         (end_branch_prob): Removed da_file checking, done in get_exec_counts
1812         now.
1813         * gcov.texi: Updated information about gcov file format.
1814
1815 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1816
1817         * sbitmap.c: Fix formatting.
1818         * scan.c: Likewise.
1819         * scan-decls.c: Likewise.
1820         * sched-deps.c: Likewise.
1821         * sched-ebb.c: Likewise.
1822         * sched-rgn.c: Likewise.
1823         * sched-vis.c: Likewise.
1824         * sdbout.c: Likewise.
1825         * sibcall.c: Likewise.
1826         * simplify-rtx.c: Likewise.
1827         * ssa.c: Likewise.
1828         * ssa-ccp.c: Likewise.
1829         * ssa-dce.c: Likewise.
1830         * stmt.c: Likewise.
1831         * stor-layout.c: Likewise.
1832         * stringpool.c: Likewise.
1833
1834 2002-05-09  David S. Miller  <davem@redhat.com>
1835
1836         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
1837
1838 2002-05-07  David S. Miller  <davem@redhat.com>
1839
1840         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
1841         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
1842         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
1843         library implementation clobbers the output before the inputs
1844         are fully consumed, use stack temporary for the output.
1845
1846 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
1847
1848         * config/netbsd.h (CPP_SPEC): Remove.
1849         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
1850         * config/i386/netbsd.h (CPP_SPEC): Define.
1851         * config/ns32k/netbsd.h (CPP_SPEC): Define.
1852         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
1853         * config/sparc/netbsd.h (CPP_SPEC): Define.
1854         * config/vax/netbsd.h (CPP_SPEC): Define.
1855
1856 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1857
1858         * read-rtl.c: Fix formatting.
1859         * real.c: Likewise.
1860         * recog.c: Likewise.
1861         * regclass.c: Likewise.
1862         * regmove.c: Likewise.
1863         * reg-stack.c: Likewise.
1864         * reload1.c: Likewise.
1865         * reload.c: Likewise.
1866         * resource.c: Likewise.
1867         * rtlanal.c: Likewise.
1868         * rtl.c: Likewise.
1869         * rtl-error.c: Likewise.
1870
1871 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1872
1873         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
1874         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
1875
1876 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
1877
1878         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
1879         use __SSE2__ macro instead.
1880         * config/i386/xmmintrin.h: Likewise.
1881
1882 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
1883
1884         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
1885         and use it in all invocations of these macros.  Clean up comments.
1886         * rtl.c (rtl_check_failed_flag): Add an argument for the name
1887         of the flag access macro whose check failed.
1888         * doc/rtl.texi (Flags): Document additional flag uses.
1889
1890 2002-05-08  Robert Spier <rspier@pobox.com>
1891             Neil Booth  <neil@daikokuya.demon.co.uk>
1892
1893         PR preprocessor/6521
1894         * cppfiles.c (handle_missing_header): Don't do anything
1895         different for <> includes.
1896 doc:
1897         * cppopts.texi: Update documentation for -MG.
1898
1899 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1900
1901         * cpplex.c (cpp_interpret_charconst): Truncate as well as
1902         sign-extend.
1903 doc:
1904         * cpp.texi: Clarify multichar charconst valuation.
1905
1906 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
1907
1908         * doc/invoke.texi: Document -mwindiss option.
1909
1910 2002-05-08  Jason Merrill  <jason@redhat.com>
1911
1912         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
1913
1914         * dwarf2out.c (gen_type_die): Abort on broken recursion.
1915
1916         PR c++/6381
1917         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
1918         REAL_CST.
1919
1920 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
1921
1922         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
1923         little-endian multilibs to override arm/thumb multilibs.
1924         Do not build hardware floating point multilibs, nor apcs-26
1925         multilibs for the Thumb.
1926
1927 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
1928
1929         PR c/6569.
1930         * varasm.c (mark_weak): New function.
1931         (merge_weak): Use it.  Do not call declare_weak.
1932         (declare_weak): Use merge_weak.
1933
1934 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1935
1936         * cse.c (dead_libcall_p): Update counts.
1937         (delete_trivially_dead_insns): Update call of dead_libcall_p.
1938
1939 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
1940
1941         * cfglayout.c (function_tail_eff_head): Rename to ...
1942         (function_footer): ... this one.
1943         (unlink_insn_chain): New functions.
1944         (label_for_bb): Only call block_label and emit debug message.
1945         (record_effective_endpoints): Actually unlink the headers and footers.
1946         (fixup_reorder_cahin): Re-insert the unlinked sequences.
1947         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
1948         * cfglayout.h (struct reorder_block_def): New fields footer/header;
1949         remove eff_head/eff_end.
1950         * rtl.h (set_first_insn): Declare.
1951         * emit-rtl.c (set_first_insn): New function.
1952
1953         * cfglayout.c (fixup_reorder_chain): Dump duplicated
1954         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
1955         cfg_layout_duplicate_bb): New global function.
1956         (duplicate_insn_chain): New static function.
1957         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
1958         cfg_layout_duplicate_bb): Declare.
1959         (struct reorder_block_def): Add "original" field.
1960         * emit-rtl.c (emit_copy_of_insn_after): New function.
1961         * rtl.h (emit_copy_of_insn_after): Declare.
1962
1963         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
1964         (fixup_reorder_chain): properly handle edges to exit block.
1965
1966 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1967                                Jan Hubicka  <jh@suse.cz>
1968
1969         * basic-block.h (note_prediction_to_br_prob): declare.
1970         * c-semantics.c: Inlucde predit.h
1971         (expand_stmt): predict GOTO_STMT as not taken.
1972         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
1973         (cleanup_cfg): Do not free tail_recursion_list.
1974         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
1975         (flow_delete_block): Kill predictions past end of basic block.
1976         * output.h (delete_unreachable_blocks): Declare.
1977         * predict.c (predicted_by_p, process_note_predictions,
1978         process_note_prediction, last_block_p): New function.
1979         (estimate_probability): Bypass loop on PRED_CONTINUE;
1980         do not handle noreturn heuristics; kill PRED_RETURN; add
1981         PRED_EARLY_RETURN.
1982         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
1983         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
1984         * predict.h (IS_TAKEN): New constant.
1985         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
1986         * rtl.c (NOTE_INSN_PREDICTION): New.
1987         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
1988         New macro.
1989         (insn_note): add NOTE_INSN_PREDICTION.
1990         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
1991         CFG; free tail_recursion_label_list.
1992         * stmt.c: Include predict.h;
1993         (return_prediction): New.
1994         (expand_value_return): Use it.
1995         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
1996
1997 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
1998
1999         * config/mips/mips.md: Name the unspecs with define_constant.
2000         (*HILO_delay): Rename to 'hilo_delay' (no star).
2001         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
2002         (reload_outdi, reload_outsi): Likewise.
2003
2004 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * toplev.c: Fix formatting.
2007
2008 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
2009
2010         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
2011         * configure.in (ac_rtlflag_checking): New.
2012         * doc/install.texi (--enable-checking): Document RTL flag checking.
2013
2014 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2015
2016         * c-common.c (c_common_init): Set options->unsigned_wchar.
2017         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
2018         group target dependencies.
2019         (init_builtins, cpp_handle_option): Update.
2020         * cpplex.c (cpp_interpret_charconst): Update.
2021         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
2022         signed_char to unsigned_char, group target dependencies.
2023         * defaults.h (WCHAR_UNSIGNED): Remove.
2024         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
2025 config:
2026         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
2027         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
2028         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
2029         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
2030         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
2031 doc:
2032         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2033
2034 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2035
2036         * fixinc/inclhack.def (windiss_math1): New fix.
2037         (windiss_math2): Likewise.
2038         (windiss_valist): Likewise.
2039         * fixinc/fixincl.x: Regenerated.
2040
2041 2002-05-07  Andreas Jaeger  <aj@suse.de>
2042
2043         * genautomata.c (output_internal_min_issue_delay_func): Add
2044         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
2045         (output_internal_trans_func): Likewise.
2046
2047 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
2048
2049         * pa.c (hppa_profile_hook): Use force_reg to get the address
2050         of the profile hook into an appropriate pseudo register.
2051
2052 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2053
2054         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
2055         (LINK_START_SPEC): Handle it.
2056         (LINK_OS_SPEC): Likewise.
2057         (CPP_SPEC): Likewise.
2058         (STARTFILE_SPEC): Likewise.
2059         (LIB_SPEC): Likewise.
2060         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
2061         all platforms.
2062         (CRTSAVRES_DEFAULT_SPEC): New macro.
2063         (LIB_WINDISS_SPEC): New macro.
2064         (CPP_OS_WINDISS_SPEC): Likewise.
2065         (STARTFILE_WINDISS_SPEC): Likewise.
2066         (ENDFILE_WINDISS_SPEC): Likewise.
2067         (LINK_START_WINDISS_SPEC): Likewise.
2068         (LINK_OS_WINDISS_SPEC): Likewise.
2069         * config/rs6000/windiss.h: New file.
2070
2071 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
2072
2073         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2074
2075 2002-05-06  David S. Miller  <davem@redhat.com>
2076
2077         * config/sparc/sparc.md (shift insns): Do not mask off
2078         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2079         take care of it.
2080
2081 2002-05-06  Richard Henderson  <rth@redhat.com>
2082
2083         PR c++/6212
2084         * expr.c (highest_pow2_factor_for_type): New.
2085         (expand_assignment): Use it.
2086
2087 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
2088
2089         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2090         unspec_volatile.
2091         ("altivec_mfvscr"): Same.
2092
2093 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2094
2095         * rtl.h (struct rtx_def): Update comments.
2096         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
2097         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
2098         RTL_FLAG_CHECK macros with list of expected RTL codes.
2099         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
2100         (rtl_check_failed_flag): New.
2101         * reload1.c (reload): Use REG macro before changing rtx to MEM.
2102         (reload_cse_noop_set_p): Check rtx code before using access macro.
2103         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
2104         before using access macro.
2105
2106 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2107
2108         * doc/rtl.texi (Flags): Update to reflect current usage.
2109
2110 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2111
2112         PR opt/3995
2113         * fold-const.c (sign_bit_p): New function.
2114         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
2115         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
2116         Reapply fold when converting (A & C) == C into (A & C) != 0.
2117         (fold_binary_op_with_conditional_arg): Fix typo in comment.
2118
2119 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2120
2121         * c-common.c (warn_multichar): New.
2122         (c_common_init): Set CPP's warn_multichar.
2123         * c-common.h (warn_multichar): New.
2124         * c-decl.c (warn_multichar): Remove.
2125         * c-lex.c (lex_charconst): Update.
2126         * c-tree.h (warn_multichar): Remove.
2127         * cppexp.c (eval_token): Sign-extend charconst value.
2128         * cppinit.c (cpp_create_reader): Set warn_multichar.
2129         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
2130         each character.  Update prototype.  Sign-extend the result.
2131         * cpplib.h: Fix conditions.
2132         (struct cpp_options): Add new warning flag.
2133         (cpp_interpret_charconst): Update prototype.
2134 doc:
2135         * cpp.texi: Update documentation.
2136
2137 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
2138
2139         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2140         Fix typo in usage of allof instead of unit.
2141
2142 2002-05-06  Richard Henderson  <rth@redhat.com>
2143
2144         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2145         and any jump or call for IN.
2146
2147 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
2148
2149         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2150         -msse2.
2151         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2152
2153 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2154
2155         * fold-const.c (lshift-double): Cast the high word to an unsigned
2156         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
2157         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
2158         avoid compiler warning.  (fold): Remove redundant code from
2159         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
2160
2161 2002-05-06  Jeff Law  <law@redhat.com>
2162
2163         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
2164         * pa.c (pa_adjust_cost): Remove all true dependency cost
2165         adjustments.  Also remove support for non-DFA scheduling.
2166         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
2167         to adjust true dependency costs.  Update various comments.
2168         (7100lc, 7200, 7300 scheduling): Simplify by combining the
2169         FP ALU & MPY units into a single unit.
2170
2171 2002-05-06  Catherine Moore  <clm@redhat.com>
2172
2173         * config/v850/v850.c (compute_register_save_size): Make sure
2174         to count all of the registers that will be saved.
2175
2176 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2177
2178         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2179
2180 2002-05-06  David S. Miller  <davem@redhat.com>
2181
2182         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2183         allow result to overlap input operands in memory.
2184
2185 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2186
2187 doc:
2188         * cpp.texi: Update multichar charconst docs.
2189
2190 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2191
2192         * cpplex.c (cpp_interpret_charconst): Sign-extend each
2193         character.  Don't ignore excess characters.  Treat
2194         multicharacter character constants as signed.
2195         (cpp_parse_escape): Clarify diagnostic.
2196
2197 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2198
2199         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
2200         use add instead of shift.
2201         (ashldi3_sp64): Likewise.
2202         (ashlsi3_const1, ashldi3_const1): Remove.
2203         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
2204         * config/sparc/sparc.c (const1_operand): New.
2205
2206 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2207
2208         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2209
2210 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2211
2212         PR target/6561
2213         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2214
2215 2002-05-05  Richard Henderson  <rth@redhat.com>
2216
2217         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
2218         memory latency adjustments.
2219         (alpha_variable_issue): Remove.
2220         (alpha_use_dfa_pipeline_interface): New.
2221         (alpha_multipass_dfa_lookahead): New.
2222         * config/alpha/alpha.md: Remove define_function_unit scheduling;
2223         include new dfa scheduling.
2224         (attr type): Add none.
2225         (blockage): Use it.
2226         * config/alpha/ev4.md: New.
2227         * config/alpha/ev5.md: New.
2228         * config/alpha/ev6.md: New.
2229
2230 2002-05-05  David S. Miller  <davem@redhat.com>
2231
2232         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2233
2234 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2235
2236         * cse.c: Fix formatting.
2237         * emit-rtl.c: Likewise.
2238
2239 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2240
2241         * genautomata.c (initiate_states): Add additional guard to
2242         initialize `units_array'.
2243
2244 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2245
2246         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
2247         process_unit_to_form_the_same_automaton_unit_lists,
2248         form_the_same_automaton_unit_lists
2249         check_unit_distributions_to_automata): New prototypes and
2250         functions.
2251         (check_automata): Rename it into `check_automata_insn_issues'.
2252         (unit_decl): New fields `the_same_automaton_unit' and
2253         `the_same_automaton_message_reported_p'.
2254         (unit_decl_t): New typedef.
2255         (the_same_automaton_lists): New gloval variable.
2256         (unit_regexp, unit_set_el, units_array, units_cmp,
2257         output_get_cpu_unit_code_func): Use the typedef.
2258         (evaluate_max_reserv_cycles): Increment
2259         `description->max_insn_reserv_cycles'.
2260         (initiate_states): Don't increment `max_cycles_num'.
2261         (transform_insn_regexps): Move code around transformation of
2262         regexps from `generate'.
2263         (generate): Remove call of `transform_insn_regexps'.
2264         (expand_automata): Call `transform_insn_regexps' and
2265         `check_unit_distributions_to_automata'.  Check errors before
2266         `generate'.
2267
2268         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2269         automaton `ultrasparc3_1'.
2270
2271 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2272
2273         * c-common.c (c_common_init): Set up CPP arithmetic.
2274         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
2275         something reasonable for the host.
2276         (sanity_checks): Add checks.
2277         (cpp_read_main_file): Call sanity_checks() from here...
2278         (cpp_post_options): ... not here.
2279         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
2280         * cpplib.h (struct cpp_options): New member int_precision.
2281
2282 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2283
2284         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2285
2286 2002-05-04  David S. Miller  <davem@redhat.com>
2287
2288         * config/sparc/linux.h, config/sparc/linux64.h
2289         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2290
2291         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2292         more RTX codes.
2293         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2294
2295         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2296         of SETs.
2297
2298 2002-05-05  Tim Josling  <tej@melbpc.org.au>
2299
2300         * treelang; New directory for new sample language treelang.
2301
2302 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2303
2304         * Makefile.in (c-lex.o): Update.
2305         * c-lex.c: Include target.h.
2306         (cb_register_builtins): New.
2307         (init_c_lex): Set builtins callback.
2308         * c-lex.h (cpp_define, cpp_assert): New prototypes.
2309         * cppinit.c (init_builtins): Use callback, including for
2310         GXX_WEAK.
2311         * cpplib.h (struct cpp_callbacks): New member.
2312         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
2313         (TARGET_INITIALIZER): Update.
2314         * target.h (struct gcc_target): New hook.
2315         * tree.c (default_register_cpp_builtins): New.
2316         * tree.h (default_register_cpp_builtins): New.
2317 doc:
2318         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2319
2320 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2321
2322         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
2323         (cpp_post_options): Move sanity checks to...
2324         (sanity_checks): New.
2325         * cpplex.c (maybe_read_ucs): Fix prototype.
2326         (parse_string, cpp_parse_escape): Cast for %c format specifier.
2327         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
2328         if necessary.
2329
2330 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
2331
2332         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
2333         builtins.  Use V2DI patterns instead of TI for logical operations.
2334         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
2335         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
2336         (ix86_expand_builtins): Change the pattern used for movntdq.
2337         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
2338         sse2_nandv2di3): New patterns.
2339         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
2340         on operands.
2341         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
2342         (cvtdq2pd): Correct mode on operand 1.
2343         (sse2_umulsidi3): Describe without unspec.
2344         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
2345         machine modes.
2346         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
2347         (ashlv2di3): Likewise, from sse2_ashlv2di3.
2348         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
2349         ashlv4si3, ashlv2di3): Use SImode for shift count.
2350         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
2351         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
2352         New patterns.
2353         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
2354         New typedefs.
2355         (__m128i, __m128d): New macros.
2356         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
2357         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
2358         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
2359         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
2360         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
2361         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
2362         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
2363         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
2364         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
2365         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
2366         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
2367         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
2368         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
2369         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
2370         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
2371         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
2372         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
2373         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
2374         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
2375         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
2376         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
2377         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
2378         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
2379         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
2380         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
2381         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
2382         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
2383         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
2384         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
2385         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
2386         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
2387         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
2388         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
2389         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
2390         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
2391         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
2392         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
2393         functions.
2394         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
2395         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
2396
2397 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2398
2399         * dwarf2out.c: Fix formatting.
2400         * varasm.c: Likewise.
2401
2402 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
2403
2404         PR c/6543
2405         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
2406         clobber and use result as temporary value.
2407
2408 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
2409
2410         * expr.c (force_operand): Use expand_simple_* to handle more
2411         cases.
2412
2413 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2414
2415         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
2416         and sign-extension.
2417         (lex_charconst): Update for change in prototype of
2418         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
2419         appropriately.
2420         * cpphash.h (BITS_PER_CPPCHAR_T): New.
2421         * cppinit.c (cpp_create_reader): Initialize them for no
2422         change in semantics.
2423         (cpp_post_options): Add sanity checks.
2424         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
2425         and truncation issues.  Calculate in type cppchar_t.
2426         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
2427         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
2428         run-time dependent precision correctly.  Return whether the
2429         result is signed or not.
2430         * cpplib.c (dequote_string): Use cppchar_t; update.
2431         * cpplib.h (cppchar_signed_t): New.
2432         struct cpp_options): New precision members.
2433         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
2434         * cppexp.c (eval_token): Update.
2435
2436 2002-05-03  David S. Miller  <davem@redhat.com>
2437
2438         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
2439         * config/sparc/sparc.c (sparc_rtx_costs): New function
2440         implementing RTX_COSTS and CONST_COSTS.
2441         * config/sparc/sparc.h (CONST_COSTS): Delete.
2442         (RTX_COSTS_CASES): Define.
2443         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
2444         the work.
2445
2446         * config/sparc/sparc.md (DFA schedulers): Split out...
2447         * config/sparc/cypress.md, config/sparc/hypersparc.md,
2448         config/sparc/sparclet.md, config/sparc/supersparc.md,
2449         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
2450
2451         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
2452         checks on it, always defined for Sparc.
2453
2454         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
2455         Tweak, and add more detailed comments.
2456
2457 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
2458
2459         * Re-apply patch accidentally reverted with
2460         DFA scheduler merge: remove all rules and variables to slurp
2461         source files out of libiberty and rebuild them with HOST_CC.
2462         ($(HOST_PREFIX_1)varray.o): New rule.
2463         (genattrtab rule): Word wrap.
2464
2465 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2466
2467         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
2468         (CPP_SUBTARGET_SPEC): Define.
2469         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
2470         cpp_subtarget specs.
2471         (CPP_SPEC): Redefine to include %(cpp_subtarget).
2472
2473 2002-05-03  David S. Miller  <davem@redhat.com>
2474
2475         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
2476         * target.h (struct gcc_target): Delete cycle_display member.
2477
2478         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
2479         (rtx_needs_barrier): Delete reference to cycle_display unspec.
2480         (ia64_sched_reorder2): Mention need for cycle display handling
2481         once such notes exist.
2482
2483 2002-05-03  Richard Henderson  <rth@redhat.com>
2484
2485         * real.c (etoasc): Strip most trailing zeros for clarity.
2486         * sched-vis.c: Include real.h.
2487         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
2488         * Makefile.in (sched-vis.o): Add real.h.
2489
2490 2002-05-03  David S. Miller  <davem@redhat.com>
2491
2492         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
2493         no longer needed.
2494
2495 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
2496
2497         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
2498         when we get an out of range literal.
2499         (altivec_expand_ternop_builtin): Same.
2500         (altivec_expand_unop_builtin): Same.
2501         (altivec_expand_builtin): Same, for dss.
2502         (altivec_expand_builtin): Use trees instead of rtl when
2503         determining literal argument validity.
2504
2505 2002-05-03  David S. Miller  <davem@redhat.com>
2506
2507         Delete cycle display scheduling hook.
2508         * config/ia64/ia64.c (ia64_cycle_display,
2509         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
2510         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
2511         and use emit_insn_before instead of ia64_emit_insn_before.
2512         * config/ia64/ia64.md (unspec usage): Delete cycle display.
2513         (cycle_display): Delete insn pattern.
2514         * config/sparc/sparc.md (unspec usage): Delete cycle display.
2515         (cycle_display): Delete insn pattern.
2516         * config/sparc/sparc.c (sparc_cycle_display,
2517         TARGET_SCHED_CYCLE_DISPLAY): Delete.
2518         * doc/md.texi (cycle_display): Don't mention.
2519         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
2520
2521 2002-05-03  Richard Henderson  <rth@redhat.com>
2522
2523         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
2524         * recog.h: Declare them.
2525
2526         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
2527         * config/sparc/sparc.md: Use store_data_bypass_p instead.
2528         * config/sparc/sparc-protos.h: Update.
2529
2530 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2531
2532         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
2533         -D__arch64__.  Add -D_LP64.
2534         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
2535         from sparc.h.
2536         (CPP_ARCH64_SPEC): Likewise.
2537         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
2538         (NO_BUILTIN_SIZE_TYPE): Undef.
2539
2540 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
2541
2542         * genautomata.c (min_issue_delay_pass_states): Change return type
2543         in the prototype.
2544         (min_issue_delay_pass_states): Change the algorithm.
2545         (min_issue_delay): Set up min_insn_issue_delay for the state.
2546         (output_min_issue_delay_table): Interchange the nested loops and
2547         and initiate min_insn_issue_delay for states.
2548
2549 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
2550
2551         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
2552         jump is simplejump.
2553
2554 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
2555
2556         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
2557         sequence.
2558
2559 2002-05-03  Richard Henderson  <rth@redhat.com>
2560
2561         PR opt/6534
2562         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
2563         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
2564         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
2565         code before JUMP, not EARLIEST.
2566
2567 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2568
2569         * c-format.c (check_format_info_main): Don't check for presence of
2570         parameter for * width until after operand number has been read,
2571         and only check for it if format parameters are available.
2572         Fixes PR c/6547.
2573
2574 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2575
2576         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
2577         (LINK_SPEC): Undef before defining.
2578
2579 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2580
2581         PR preprocessor/6489
2582         * tradcpp.c (fixup_newlines): New.
2583         (main, finclude): Use it.
2584
2585 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
2586
2587         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
2588         * config/mips/mips.c (mips_unique_section): Strip encoding from
2589         decl name.
2590
2591 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2592
2593         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
2594         mode.
2595
2596 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2597
2598         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
2599         (Specific): Removed buildstats references.
2600         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
2601         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
2602         Accomodate Solaris versions beyond 8.
2603         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
2604         (Specific, *-*-solaris2.8): Removed, obsolete.
2605
2606 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2607
2608         PR target/6542
2609         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
2610         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
2611         fill leaf_reg_remap with identity.
2612         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
2613
2614 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2615
2616         * config/h8300/crti.asm: Remove trailing spaces.
2617         * config/h8300/h8300.c: Likewise.
2618         * config/h8300/lib1funcs.asm: Likewise.
2619
2620 2002-05-02  Jason Merrill  <jason@redhat.com>
2621
2622         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
2623         * c-decl.c (c_init_decl_processing): Use it.
2624         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
2625         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
2626         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
2627
2628 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2629
2630         * regrename.c: Fix formatting.
2631         * tree.c: Likewise.
2632
2633 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
2634
2635         * i386.md (attribute memory): Handle compares properly.
2636
2637 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
2638
2639         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
2640         to none.
2641
2642 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2643
2644         * function.c: Fix formatting.
2645
2646 2002-05-02  Jan Hubicka  <jh@suse.cz>
2647
2648         * haifa-sched.c (schedule_insn): Print table of instructions and
2649         reservations.
2650         (sched_block): Do not print ready list at verbosity level 1.
2651         * sched-vis.c (print_insn): Make global.
2652         * sched-ebb.c (ebb_print_insn): Rename from...
2653         (print_insn): ... this one.
2654         * sched-int.h (print_insn): Declare
2655
2656 2002-05-02  Richard Henderson  <rth@redhat.com>
2657
2658         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
2659         emitted by cycle_display.
2660
2661 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
2662
2663         * doc/install.texi (*-*-freebsd*): Update to latest status.
2664
2665 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
2666
2667         PR target/6540
2668         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
2669         * config/float-sparc.h: Assume 128-bit long double if
2670         __LONG_DOUBLE_128__ is defined.
2671
2672 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
2673
2674         * genattrtab.c (write_function_unit_info): Add a dummy element
2675         when num_units == 0.
2676
2677 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2678
2679         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
2680         TYPE_MODE (double_type_node) instead of DFmode.
2681
2682 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
2683
2684         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
2685         jumps post reload.
2686         * toplev.c (rest_of_compilation): Revert Richard's patch.
2687
2688 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2689
2690         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
2691
2692 2002-05-02  Catherine Moore  <clm@redhat.com>
2693
2694         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
2695
2696 2002-05-02  Kazu Hirata  <kazu@hxi.com>
2697
2698         * combine.c: Fix comment typos.
2699         * expr.c: Likewise.
2700         * genautomata.c: Likewise.
2701         * stmt.c: Likewise.
2702         * tree.h: Likewise.
2703
2704 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2705
2706         * doc/install.texi: State GNAT version requirements.
2707
2708 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
2709
2710         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
2711         of the frame pointer or arg pointer register which strict register
2712         checking is not enabled.
2713
2714 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
2715
2716         * gcc.dg/altivec-8.c: New.
2717
2718         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
2719         PRE_INC and PRE_DEC for altivec modes.
2720
2721 2002-05-01  Bruce Korb  <bkorb@gnu.org>
2722
2723         * fixinc/check.tpl(set-writable): make sure the function exists first
2724         * fixinc/inclhack.def(alpha_assert): fix test_text
2725         * fixinc/tests/base/assert.h: add in missing result
2726
2727 2002-05-01  Jeff Law  <law@redhat.com>
2728
2729         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
2730         'T' constraint.
2731
2732 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
2733
2734         * dbxout.c (dbxout_type): Emit size information for range types,
2735         as well, but only when using GDB extensions.
2736
2737 2002-05-01  Richard Henderson  <rth@redhat.com>
2738
2739         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
2740         target-independent gnu binutils date test.
2741
2742 2002-05-01  Richard Henderson  <rth@redhat.com>
2743
2744         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
2745         info before expunging the block.
2746
2747 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
2748
2749         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
2750         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
2751         -M -or -MM is in effect.
2752
2753 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
2754
2755         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
2756         A29k configurations.
2757         * doc/install.texi: Update to match.
2758
2759 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2760
2761         PR bootstrap/6514
2762         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
2763         for duplicates. Always loop over whole list.
2764
2765 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2766
2767         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
2768
2769 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2770
2771         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
2772         support routines.
2773
2774 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2775
2776         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
2777
2778 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
2779
2780         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
2781         (nabs_nopower): Same.
2782         (floatdisf2): New pattern.
2783         (absdi2): Convert to define_insn_and_split.
2784         (nabsdi2): Same.
2785         (trunctfsf2): Same.
2786         (floatditf2): Same.
2787         (floatsitf2): Same.
2788         (fix_trunctfdi2): Same.
2789         (fix_trunctfsi2): Same.
2790
2791 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2792
2793         * doc/install.texi: Update Texinfo version requirement
2794         documentation.
2795
2796 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
2797
2798         PR target/6512, PR target/5628
2799         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
2800         when memory is not aligned.
2801         (movdf_insn_v9only_vis): Likewise.
2802         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
2803         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
2804         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
2805
2806 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
2807
2808         * gcc.dg/altivec-7.c: New.
2809
2810         * config/rs6000/altivec.h: Cleanup.
2811
2812 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
2813
2814         * doc/invoke.texi (Option Summary): Add -mvrsave=.
2815         (RS/6000 and PowerPC Options): Document -mvrsave=.
2816
2817         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
2818         (rs6000_altivec_vrsave_string): Same.
2819         (rs6000_override_options): Call rs6000_parse_vrsave_option.
2820         (rs6000_parse_vrsave_option): New.
2821         (rs6000_stack_info): Only generate vrsave instructions when
2822         TARGET_ALTIVEC_VRSAVE.
2823
2824         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
2825         (rs6000_altivec_vrsave_string): Define extern.
2826         (rs6000_altivec_vrsave): Same.
2827         (TARGET_ALTIVEC_VRSAVE): New.
2828
2829 2002-04-30  Richard Henderson  <rth@redhat.com>
2830
2831         PR opt/6516
2832         * toplev.c (rest_of_compilation): Don't run cross-jump before
2833         bb-reorder.
2834
2835 2002-04-30  Tom Rix  <trix@redhat.com>
2836
2837         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
2838         check which_alternative.
2839
2840 2002-04-30  Kazu Hirata  <kazu@hxi.com>
2841
2842         * cpplex.c: Fix comment formatting.
2843         * function.c: Likewise.
2844         * integrate.c: Likewise.
2845         * regrename.c: Likewise.
2846         * sibcall.c: Likewise.
2847         * simplify-rtx.c: Likewise.
2848         * tree-inline.c: Likewise.
2849
2850 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2851
2852         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
2853         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
2854         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
2855         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
2856         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
2857         * pa/x-ada: New file.  Define ADA_CFLAGS.
2858
2859 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
2860
2861         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
2862         from MMIX_LAST_REGISTER_FILE_REGNUM.
2863         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
2864         (struct machine_function): New member highest_saved_stack_register
2865         previously static variable in mmix.c.
2866         (MACHINE_DEPENDENT_REORG): Define.
2867         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
2868         (MMIX_OUTPUT_REGNO): New.
2869         (mmix_target_asm_function_prologue): Move calculation of last used
2870         saved-stack-register into...
2871         (mmix_machine_dependent_reorg): New function.  Update to also handle
2872         !TARGET_ABI_GNU.
2873         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
2874         register names, simplify somewhat by new variable regno.
2875         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
2876         register.
2877         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
2878         emitting register names.
2879         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
2880         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
2881         Remove fixed FIXME.
2882         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
2883         Declare.
2884
2885         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
2886
2887 2002-04-30  Richard Henderson  <rth@redhat.com>
2888
2889         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
2890         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
2891         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
2892         emit_tfmode_cvt): New.
2893         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
2894         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
2895         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
2896         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
2897         * config/sparc/sparc-protos.h: Update.
2898
2899 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
2900
2901         * install.texi (Final install): Add to the list of info to include
2902         in a report of a successful bootstrap, and add link to 3.1 list.
2903
2904 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
2905
2906         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
2907         (mode): Add vector modes
2908         (i387): Kill attribute.
2909         (unit): New attribute.
2910         (length_immediate): Grok new types.
2911         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
2912         (modrm): Use "unit".
2913         (memory): Handle MMX/SSE properly.
2914         (scheduling descriptions): Kill uses of fop1.
2915         (sse, mmx, fp patterns): Set type and mode properly.
2916
2917 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
2918
2919         * pa.c (override_options): Default to PA8000 scheduling.
2920         * doc/invoke.texi (HP-PA options): Mention newly added 7300
2921         scheduling parameter.
2922
2923         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
2924         handling of double precision multiplies.
2925
2926         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
2927         fpdiv and fpsqrt instructions.
2928         (7200 & 7300 scheduling): Fix typo in handling of
2929         store-load and store-store penalties.
2930
2931 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2932
2933         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
2934         mips.  Add two missing commas.
2935
2936 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
2937
2938         * doc/contrib.texi (Contributors): Update Paolo Carlini's
2939         and Benjamin Kosnik's entries.
2940
2941 2002-04-29  David S. Miller  <davem@redhat.com>
2942
2943         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
2944         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
2945         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
2946         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
2947
2948 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2949
2950         * combine.c (find_split_point): Use gen_int_mode.
2951
2952 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
2953
2954         Merging code from dfa-branch:
2955
2956         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2957
2958         * genautomata.c (output_reserv_sets): Fix typo.
2959
2960         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
2961
2962         * genautomata.c (output_reserv_sets): Remove
2963         next_cycle_output_flag.
2964
2965         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
2966
2967         * sched-rgn.c (init_ready_list): Make the DFA code handle
2968         USE/CLOBBER insns in the same way as the traditional
2969         scheduler.
2970         (new_ready): Similarly..
2971
2972         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
2973
2974         * haifa-sched.c (schedule_block): Change the DFA state only after
2975         issuing insn.
2976
2977         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
2978
2979         * pa.c (hppa_use_dfa_pipeline_interface): New function.
2980         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2981         (override_options): Add PA7300 scheduling support.
2982         (pa_adjust_cost): Update various comments.  Properly
2983         handle anti and output dependencies when using the
2984         DFA scheduler.
2985         (pa_issue_rate): Add PA7300 scheduling support.
2986         (pa_can_combine_p): Call extract_insn before calling
2987         constrain_operands (taken from mainline tree).
2988         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
2989         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
2990         descriptions using DFA descriptions.  Add PA7300
2991         scheduling support.
2992
2993         2002-03-30  David S. Miller  <davem@redhat.com>
2994
2995         Add UltraSPARC-III DFA scheduling support.
2996         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
2997         Update FP conditional move on register insn patterns to use it, as
2998         appropriate.
2999         (define_attr cpu): Add ultrasparc3.
3000         (define_attr us3load_type): New, update integer load patterns to
3001         set it, as appropriate.
3002         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
3003         (rest): Add UltraSPARC3 scheduling description.
3004         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
3005         (PROCESSOR_ULTRASPARC3): New.
3006         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
3007         ({ASM,CPP}_CPU_SPEC): Likewise.
3008         (REGISTER_MOVE_COST): Likewise.
3009         (RTX_COSTS): Likewise.
3010         * config/sparc/sparc.c (sparc_override_options,
3011         sparc_initialize_trampoline, sparc64_initialize_trampoline,
3012         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3013         sparc_issue_rate): Likewise.
3014         * config/sparc/sol2.h: Likewise.
3015         * config/sparc/sol2-sld-64.h: Likewise.
3016         * config/sparc/linux64.h: Likewise.
3017
3018         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
3019
3020         * doc/md.texi: Add comments about usage the latency time for the
3021         different dependencies and about case when two or more conditions
3022         in different define_insn_reservations returns TRUE for an insn.
3023
3024         * doc/md.texi: Add reference for automaton based pipeline
3025         description.
3026
3027         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
3028
3029         * doc/passes.texi: Add missed information about genattrtab.
3030
3031         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
3032
3033         * genautomata.c (output_automata_list_transition_code): Check
3034         automata_list on NULL.
3035
3036         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
3037
3038         * genautomata.c (output_insn_code_cases,
3039         output_automata_list_min_issue_delay_code,
3040         output_automata_list_transition_code,
3041         output_automata_list_state_alts_code): Comment the functions.
3042
3043         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
3044
3045         * genautomata.c (automata_list_el_t): New typedef.
3046         (get_free_automata_list_el,free_automata_list_el,
3047         free_automata_list, automata_list_hash, automata_list_eq_p,
3048         initiate_automata_lists, automata_list_start, automata_list_add,
3049         automata_list_finish, finish_automata_lists,
3050         output_insn_code_cases, output_automata_list_min_issue_delay_code,
3051         output_automata_list_transition_code,
3052         output_automata_list_state_alts_code, add_automaton_state,
3053         form_important_insn_automata_lists): New functions and prototypes.
3054         (insn_reserv_decl): Add members important_automata_list and
3055         processed_p.
3056         (ainsn): Add members important_p.
3057         (automata_list_el): New structure.
3058         (first_free_automata_list_el, current_automata_list,
3059         automata_list_table): New global variables.
3060         (create_ainsns): Initiate member important_p.
3061         (output_internal_min_issue_delay_func): Generate the switch and
3062         call output_insn_code_cases.
3063         (output_internal_trans_func, output_internal_state_alts_func):
3064         Ditto.
3065         (generate): Call initiate_automata_lists.
3066         (automaton_states): New global variable.
3067         (expand_automata): Call form_important_insn_automata_lists.
3068         (write_automata): Call finish_automata_lists.
3069
3070         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
3071
3072         * genautomata.c (add_excls, add_presence_absence): Check that
3073         cpu units in the sets belong the same automaton.
3074
3075         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3076         about that cpu units in the sets belong the same automaton.
3077
3078         * doc/md.texi: Ditto.
3079
3080         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
3081                     Nitin Gupta  <niting@noida.hcltech.com>
3082
3083         * config/sh/sh.c (sh_use_dfa_interface): New function.
3084
3085         (sh_issue_rate): New Function.
3086         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3087         TARGET_SCHED_ISSUE_RATE: define.
3088
3089         * config/sh/sh.md: Add DFA based pipeline description for SH4.
3090
3091         (define_attr insn_class): New attribute used for DFA
3092          scheduling.
3093         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3094         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3095          cmpeqdi_t): Likewise.
3096
3097         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3098          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3099          ex_group.
3100         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3101
3102         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3103
3104         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3105         break.
3106
3107         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3108
3109         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3110         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3111         necessary.
3112         (output_dfa_start_func): Initiate new variable insn_codes_length,
3113         (write_automata): Output definition of the new variable.
3114
3115         2001-10-02  David S. Miller  <davem@redhat.com>
3116
3117         * haifa-sched.c (advance_one_cycle): New function.
3118         (schedule_block): Use it.
3119         (queue_to_ready): Use it, and also make sure to advance the DFA
3120         state on all stall cycles, not just those where insn_queue links
3121         are found.
3122
3123         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
3124
3125         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
3126         non-zero if the highest-priority instruction could be scheduled.
3127         (choose_ready): Remove last argument from max_issue call.
3128
3129         2001-09-28  David S. Miller  <davem@redhat.com>
3130
3131         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3132         ultrasparc and 3 for other multi-issue sparcs.
3133
3134         2001-09-27  David S. Miller  <davem@redhat.com>
3135
3136         * config/sparc/sparc.md (cycle_display): New pattern.
3137         * config/sparc/sparc.c (sparc_cycle_display): New.
3138         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
3139
3140         2001-09-25  David S. Miller  <davem@redhat.com>
3141
3142         Convert all of Sparc scheduling to DFA
3143         * config/sparc/sparc.md: Kill all define_function_unit
3144         directives and replace with DFA equivalent.
3145         * config/sparc/sparc.c (ultrasparc_adjust_cost,
3146         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
3147         ultra_fpmode_conflict_exists, ultra_find_type,
3148         ultra_build_types_avail, ultra_flush_pipeline,
3149         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
3150         ultrasparc_variable_issue, ultrasparc_sched_init,
3151         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
3152         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
3153         ultra_cur_hist, ultra_cycles_elapsed): Kill.
3154         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3155         ultrasparc_store_bypass_p): New.
3156         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
3157         Declare.
3158
3159         2001-09-24  David S. Miller  <davem@redhat.com>
3160
3161         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3162         ready->vec[foo] not ready[foo].
3163
3164         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3165
3166         * doc/md.texi: Correct examples for define_insn_reservations
3167         `mult' and `div'.
3168
3169         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3170
3171         * genautomata.c (create_automata): Print message about creation of
3172         each automaton.
3173         (generate): Remove printing meease about creation of
3174         automata.
3175
3176         2001-09-05  David S. Miller  <davem@redhat.com>
3177
3178         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3179         * config/sparc/linux64.h: Likewise.
3180
3181         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
3182
3183         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
3184         schedule_block, sched_init, sched_finish): Add missed calls of
3185         use_dfa_pipeline_interface.
3186
3187         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3188         Ditto.
3189
3190         * sched-vis.c (get_visual_tbl_length): Ditto.
3191
3192         2001-08-27  Richard Henderson  <rth@redhat.com>
3193
3194         * genattr.c (main): Emit state_t even when not doing scheduling.
3195
3196         2001-08-27  Richard Henderson  <rth@redhat.com>
3197
3198         * genautomata.c (expand_automata): Always create a description.
3199
3200         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3201
3202         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3203         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3204         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3205         RTL constructions.
3206
3207         * genattr.c (main): New variable num_insn_reservations.  Increase
3208         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3209         pipeline hazard recognizer interface.
3210
3211         * genattrtab.h: New file.
3212
3213         * genattrtab.c: Include genattrtab.h.
3214         (attr_printf, check_attr_test, make_internal_attr,
3215         make_numeric_value): Move protypes into genattrtab.h.  Define them
3216         as external.
3217         (num_dfa_decls): New global variable.
3218         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3219         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3220         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3221         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3222
3223         * genautomata.c: New file.
3224
3225         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3226
3227         * sched-int.h: (curr_state): Add the external definition for
3228         automaton pipeline interface.
3229         (haifa_insn_data): Add comments for members blockage and units.
3230
3231         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3232         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3233         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3234         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3235         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3236         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3237         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3238         macros.
3239         (TARGET_SCHED): Use the new macros.
3240
3241         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3242         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3243         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3244         dfa_bubble): New members in gcc_target.sched.
3245
3246         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3247         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3248         (insn_queue): Redefine it as pointer to array.
3249         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3250         INSN_QUEUE_SIZE.
3251         (max_insn_queue_index_macro_value): New variable.
3252         (curr_state, dfa_state_size, ready_try): New varaibles for
3253         automaton interface.
3254         (ready_element, ready_remove, max_issue): New function prototypes
3255         for automaton interface.
3256         (choose_ready): New function prototype.
3257         (insn_unit, blockage_range): Add comments.
3258         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3259         FUNCTION_UNITS_SIZE == 0.
3260         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3261         actual_hazard, potential_hazard): Add comments.
3262         (insn_cost): Use cost -1 as undefined value.  Remove
3263         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3264         pipeline interface.
3265         (ready_element, ready_remove): New functions for automaton
3266         interface.
3267         (schedule_insn): Add new code for automaton pipeline interface.
3268         (queue_to_ready): Add new code for automaton pipeline interface.
3269         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3270         (debug_ready_list): Print newline when the queue is empty.
3271         (max_issue): New function for automaton pipeline interface.
3272         (choose_ready): New function.
3273         (schedule_block): Add new code for automaton pipeline interface.
3274         Print ready list before scheduling each insn.
3275         (sched_init): Add new code for automaton pipeline interface.
3276         Initiate insn cost by -1.
3277         (sched_finish): Free the current automaton state and finalize
3278         automaton pipeline interface.
3279
3280         * sched-rgn.c: Include target.h.
3281         (init_ready_list, new_ready, debug_dependencies): Add new code for
3282         automaton pipeline interface.
3283
3284         * sched-vis.c: Include target.h.
3285         (get_visual_tbl_length): Add code for automaton interface.
3286         (target_units, print_block_visualization):  Add comments.
3287
3288         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3289         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3290         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3291         (getruntime.o, genautomata.o): New entries.
3292         (genattrtab.o): Add new dependency file genattrtab.h.
3293         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3294         (getruntime.o, hashtab.o): New entries for canadian cross.
3295
3296         * doc/md.texi: Description of automaton based model.
3297
3298         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3299         Add comments.
3300         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3301         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3302         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3303         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3304         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3305         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3306         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3307         hook descriptions.
3308         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3309         MAX_DFA_ISSUE_RATE): New macro descriptions.
3310
3311         * doc/contrib.texi: Add dfa based scheduler contribution.
3312
3313         * doc/gcc.texi: Add more information about genattrtab.
3314
3315 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3316
3317         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
3318         adjust_address_nv call.
3319
3320 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
3321
3322         * doc/install.texi (Testing): Provide additional information, and
3323         a stronger encouragement, for running the testsuites.
3324
3325 2002-04-29  DJ Delorie  <dj@redhat.com>
3326
3327         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
3328         given in upper case.
3329
3330 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3331
3332         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
3333         Solaris 2 <widec.h> if missing.
3334         * fixinc/fixincl.x: Regenerate.
3335         * fixinc/tests/base/widec.h: New file.
3336
3337 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
3338
3339         * toplev.c (f_options): Add "profile" switch so that
3340         -fno-profile can be used to disable -p.
3341
3342 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
3343
3344         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
3345         UV2DImode.
3346         * tree.c (build_common_tree_nodes_2): Likewise.
3347         * tree.h (enum tree_index): Likewise.
3348         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
3349
3350         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
3351         entries.
3352         (init_mmx_sse_builtins): Initialize SSE2 builtins.
3353         (ix86_expand_builtin): Add support for SSE2 builtins.
3354         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
3355         (VALID_SSE_REG_MODE): Use it.
3356         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
3357         (enum ix86_builtins): Add SSE2 builtins.
3358         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
3359         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
3360         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
3361         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
3362         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
3363         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
3364         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
3365         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
3366         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
3367         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
3368         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
3369         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
3370         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
3371         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
3372         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
3373         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
3374         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
3375         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
3376         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
3377         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
3378         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
3379         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
3380         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
3381         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
3382         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
3383         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
3384         lfence_insn): New patterns.
3385         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
3386         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
3387
3388 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
3389
3390         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
3391
3392 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3393
3394         * doc/contrib.texi (Contributors): Add Paolo Carlini and
3395         Janis Johnson.
3396         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
3397         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
3398         and CPU instead of cpu.
3399
3400 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3401
3402         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
3403         variables.
3404         (lang_independent_options): Add -fif-conversion, -fif-conversion2
3405         (rest_of_compilation): Do if conversion only when asked for.
3406         (parse_options_and_default_flags): Set new variables to 1 for -O1
3407         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
3408
3409 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3410
3411         * i386.c (dbx64_register_map): Fix typo.
3412
3413 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
3414
3415         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
3416         real_one_half, real_bb_freq_max): New static variables.
3417         (debug_profile_bbauxs): Kill.
3418         (process_note_predictions): Kill unused variable.
3419         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
3420         volatile double.
3421         (propagate_freq): Use REAL_ARITHMETICS.
3422         (estimate_bb_frequencies): Likevise; init new static variables.
3423         * Makefile.in (predict.o): Add dependency on real.h
3424
3425 2002-04-28  David S. Miller  <davem@redhat.com>
3426
3427         PR target/6500
3428         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
3429         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
3430         several {reads,writes} instead.
3431         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3432         Define.
3433
3434 2002-04-27  David S. Miller  <davem@redhat.com>
3435
3436         PR target/6494
3437         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
3438         of the stack bias.
3439
3440         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
3441         including signal.h and sys/ucontext.h, not needed.
3442
3443 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
3444
3445         * varasm.c (output_constant_def): Correct test for not calling
3446         ENCODE_SECTION_INFO for INTEGER_CST.
3447
3448 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3449
3450         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
3451         keep most cases as function eval_token.
3452         (eval_token): New function.
3453         (_cpp_parse_expr): Read token here for improved diagnostics.
3454         Don't use op_as_text.  Detect bad ':' here.
3455         (reduce): Don't detect bad ':' here.
3456         (op_as_text): Remove.
3457         * cpphash.h (_cpp_test_assertion): Change prototype.
3458         * cpplib.c (_cpp_test_assertion): Change prototype.
3459
3460 2002-04-28  Richard Henderson  <rth@redhat.com>
3461
3462         PR c/5154
3463         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
3464         (ggc_mark_rtx_children): New.
3465
3466 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3467
3468         PR target/6496
3469         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
3470         after call peepholes for UltraSPARC.
3471         (call + jump 64-bit peepholes): Remove.
3472
3473 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3474
3475         PR c/6497
3476         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
3477         result as temporary value.
3478
3479 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3480
3481         PR c++/6396
3482         * toplev.c (rest_of_compilation): Only run regrename and copy
3483         propagation if optimizing.
3484
3485 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3486
3487         PR optimization/6475
3488         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
3489         register of REGNO_DECL (i).
3490         * Makefile.in (reload1.o): Add $(TREE_H).
3491
3492 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3493
3494         * cppexp.c (lex): Update to use state.skip_eval.
3495         (struct op): Remove prio and flags members.
3496         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
3497         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
3498         (LEFT_ASSOC): New macro.
3499         (optab): New table of operator priorities and flags.
3500         (SHIFT): Update.
3501         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
3502         malloc-ed parser stack.
3503         (reduce): New; reduce the operator stack.
3504         (_cpp_expand_op_stack): Expand the operator stack as necessary.
3505         * cpphash.h (struct op): Predeclare.
3506         (struct cpp_reader): New members op_stack, op_limit.
3507         (struct lexer_state): New member skip_eval.
3508         (_cpp_parse_expr): Update.
3509         (_cpp_expand_op_stack): New.
3510         * cpplib.c (do_if): Update.
3511         * cppinit.c (cpp_create_reader): Create op stack.
3512         (cpp_destroy): And destroy it.
3513         * cpplib.h (CPP_LAST_CPP_OP): Correct.
3514         (TTYPE_TABLE): Correct.
3515
3516 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3517
3518         PR c/6343
3519         * c-decl.c (duplicate_decls): Call merge_weak.
3520         * c-pragma.c (apply_pragma_weak): Warn about misuse.
3521         * output.h (merge_weak): Prototype merge_weak.
3522         * varasm.c (merge_weak): New function.
3523         (declare_weak): Make sure we don't give an error on VAR_DECLs.
3524         Mark RTL with SYMBOL_REF_WEAK.
3525
3526 2002-04-27  Kurt Garloff <garloff@suse.de>
3527
3528         * tree-inline.c (inlinable_function_p): Improve heuristics
3529         by using a smoother function to cut down allowable inlinable size.
3530         * param.def: Add parameters max-inline-insns-single,
3531         max-inline-slope, min-inline-insns that determine the exact
3532         shape of the above function.
3533         * param.h: Likewise.
3534
3535 2002-04-26  Richard Henderson  <rth@redhat.com>
3536
3537         * c-parse.in (malloced_yyss, malloced_yyvs): New.
3538         (yyoverflow): Re-add.  Set them.
3539         (free_parser_stacks): New.
3540         * c-common.h: Declare it.
3541         * c-lex.c (c_common_parse_file): Call it.
3542
3543 2002-04-26  Richard Henderson  <rth@redhat.com>
3544
3545         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
3546         for fallthru search.
3547
3548 2002-04-26  Eric Christopher  <echristo@redhat.com>
3549
3550         PR optimization/3700
3551         * config/mips/mips.c (mips_issue_rate): Define.  New function.
3552         (TARGET_SCHED_ISSUE_RATE): Use.
3553
3554 2002-04-25  David S. Miller  <davem@redhat.com>
3555
3556         PR target/6422
3557         * reorg.c (optimize_skip): Do not allow exception causing
3558         instructions to be considered for delay slots.
3559         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
3560         (relax_delay_slots): Do not try to consider exception causing
3561         instructions as redundant.
3562
3563 2002-04-26  Richard Henderson  <rth@redhat.com>
3564
3565         PR c/5225
3566         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
3567
3568 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
3569
3570         PR bootstrap/6445
3571         * config/i386/i386.md (untyped_call): Return the value in a float
3572         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
3573         TARGET_80387.
3574
3575 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
3576
3577         * tree.c (tree_int_cst_lt): Compare constants whose types differ
3578         in unsigned-ness correctly.
3579
3580 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3581
3582         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
3583         portable runtime model.
3584
3585 2002-04-26  Richard Henderson  <rth@redhat.com>
3586
3587         * c-parse.in (yyoverflow): Revert.
3588
3589 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
3590             Richard Henderson  <rth@redhat.com>
3591
3592         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
3593         result as temporary value.
3594
3595 2002-04-26  Richard Henderson  <rth@redhat.com>
3596
3597         PR c/3581
3598         * c-common.c (fix_string_type): Split out of ...
3599         (combine_strings): ... here.  Take a varray, not a tree list.
3600         (c_expand_builtin_printf): Use fix_string_type.
3601         * c-common.h: Update decls.
3602         * c-parse.in (string): Remove.  Update all uses to use STRING
3603         instead, and not call combine_strings.
3604         (yylexstring): New.
3605         (_yylex): Use it.
3606         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
3607         (build_asm_stmt): Likewise.
3608         * objc/objc-act.c (my_build_string): Use fix_string_type.
3609         (build_objc_string_object): Build varray for combine_strings.
3610
3611 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
3612
3613         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
3614         x86-64.
3615
3616 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3617
3618         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
3619         (HAVE_NO_R_OPERAND): Remove.
3620         (HAVE_VALUE): Remove.
3621         (op_to_prio): Update.
3622         (UNARY): Don't alter flags.
3623         (_cpp_parse_expr): want_value used to indicate whether
3624         a number or unary operator is expected next.  Distinguish
3625         unary and binary +/-.
3626         (op_as_text): Update for unary operators.
3627
3628 2002-04-25  Richard Henderson  <rth@redhat.com>
3629
3630         PR c/2161
3631         * c-parse.in (yyoverflow): New.
3632
3633 2002-04-25  Richard Henderson  <rth@redhat.com>
3634
3635         PR c/2098
3636         * c-common.c (shorten_compare): Simplfy conditions leading to
3637         the generation of a warning.
3638
3639 2002-04-25  Richard Henderson  <rth@redhat.com>
3640
3641         PR c/2035
3642         * expmed.c (extract_bit_field): Fall through to generic code rather
3643         than aborting on subreg special case.
3644
3645 2002-04-25  David S. Miller  <davem@redhat.com>
3646
3647         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
3648         for DECL being NULL.
3649
3650 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
3651
3652         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
3653
3654 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
3655
3656         * c-decl.c (grokdeclarator): Remove outdated ??? note
3657         on invalid declaration of flexible array members.
3658
3659 2002-04-25  Richard Henderson  <rth@redhat.com>
3660
3661         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
3662
3663 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
3664
3665         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
3666         needed by the compiler, even if they are used as global regs.
3667
3668 2002-04-25  Matt Hiller  <hiller@redhat.com>
3669
3670         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
3671         functions.
3672         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
3673         of the corresponding functions.
3674         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
3675         New prototypes.
3676
3677 2002-04-25  Matt Hiller  <hiller@redhat.com>
3678
3679         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
3680
3681         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
3682         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
3683         registers, adjust comment accordingly.
3684         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
3685         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
3686         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
3687         for coprocessor registers.
3688         (ADDITIONAL_REGISTER_NAMES): Include
3689         ALL_COP_ADDITIONAL_REGISTER_NAMES.
3690
3691         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
3692         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
3693         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
3694         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
3695         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
3696
3697         (mips_char_to_class): Adjust comment to include coprocessor
3698         constraint letters.
3699
3700         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
3701         New functions.
3702         (mips_reg_names, mips_regno_to_class): Include coprocessor
3703         information.
3704         (mips_sw_reg_names): Ditto, make non-static.
3705         (mips_move_1word): Handle moves to and from coprocessor registers.
3706         (mips_move_2words): Handle moves to and from coprocessor
3707         registers.
3708         (mips_class_max_nregs, mips_register_move_cost): Handle
3709         coprocessor register classes.
3710         (override_options): Initialize mips_char_to_class and
3711         mips_hard_regno_mode_ok properly for coprocessor registers.
3712
3713         * config/mips/mips.md (movdi_internal, movdi_internal2,
3714         movsi_internal1, movsi_internal2): Add constraint-sets for
3715         coprocessor registers.
3716         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
3717         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
3718         isn't mips.
3719         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
3720         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
3721         isn't mips.
3722         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
3723         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
3724         isn't mips.
3725         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
3726         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
3727         isn't mips.
3728
3729         * doc/tm.texi: Document feature.
3730
3731 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3732
3733         * integrate.c (function_attribute_inlinable_p): Simplify.
3734         Check the table pointer is not NULL.
3735
3736 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
3737
3738         * doc/c-tree.texi: Fix typo in introduction.
3739
3740 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3741
3742         * c-common.h (c_common_parse_file): Update.
3743         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3744         * c-lex.c (YYDEBUG): Get from c-lex.h.
3745         (c_common_parse_file): Update.
3746         * c-lex.h (YYDEBUG, yydebug): New.
3747         * c-parse.in (YYDEBUG): Get from c-lex.h.
3748         (c_set_yydebug): Remove.
3749         * c-tree.h (c_set_yydebug): Remove.
3750         * langhooks-def.h (lhd_do_nothing_i): New.
3751         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
3752         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
3753         * langhooks.c  (lhd_do_nothing_i): New.
3754         (lhd_set_yydebug): Remove.
3755         * langhooks.h (struct lang_hooks): Update.
3756         * toplev.c (set_yydebug): New.
3757         (compile_file): Update call to parse_file hook.
3758         (decode_d_option): Update.
3759 objc:
3760         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3761
3762 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
3763
3764         * loop.c (load_mems): Don't change the interface of called functions.
3765
3766         * calls.c (expand_call): Take current_function_pretend_args_size
3767         into account when setting argblock for sibcalls.
3768
3769 2002-04-24  Matt Hiller  <hiller@redhat.com>
3770
3771         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
3772         * c-lex.c: Ditto.
3773
3774         * cpplex.c (skip_line_comment): Process comment one multibyte
3775         character at a time rather than one char at a time, if
3776         appropriate.
3777         (parse_string): Process string one multibyte character at a time
3778         rather than one char at a time, if appropriate.
3779         * c-lex.c (lex_string): Lex and copy multibyte strings
3780         appropriately.
3781         * cpplib.h (cppchar_t): Change to unsigned.
3782
3783 2002-04-24  Richard Henderson  <rth@redhat.com>
3784
3785         PR c/3467
3786         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
3787         for c99.
3788
3789 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
3790
3791         * sh.c (sh_va_arg): If argument was passed by reference,
3792         dereference the pointer.
3793
3794         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3795
3796         * sh.md (divsi3_i4_media): Use match_operand for input values
3797         rather than hard registers.
3798         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
3799         unnecessarily through hard registers.  Keep copies of pseudo
3800         registers outside of the libcall sequence.
3801
3802         * sh.md (casesi_shift_media): Add modes.
3803
3804         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
3805         values in memory.
3806
3807 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3808
3809         * attribs.c (c_common_attribute_table): Move table and handlers
3810         to c-common.c.
3811         (format_attribute_table, lang_attribute_table,
3812         lang_attribute_common): Remove.
3813         (init_attributes): Replace NULL pointers with pointers to the
3814         empty table.
3815         (handle_packed_attribute, handle_nocommon_attribute,
3816         handle_common_attribute, handle_noreturn_attribute,
3817         handle_noinline_attribute, handle_always_inline_attribute,
3818         handle_used_attribute, handle_unused_attribute,
3819         handle_const_attribute, handle_transparent_union_attribute,
3820         handle_constructor_attribute, handle_destructor_attribute,
3821         handle_mode_attribute, handle_section_attribute,
3822         handle_aligned_attribute, handle_weak_attribute,
3823         handle_alias_attribute, handle_visibility_attribute,
3824         handle_no_instrument_function_attribute, handle_malloc_attribute,
3825         handle_no_limit_stack_attribute, handle_pure_attribute,
3826         handle_deprecated_attribute, handle_vector_size_attribute,
3827         vector_size_helper): Move to c-common.c.
3828         * c-common.c (c_common_attribute_table,
3829         handle_packed_attribute, handle_nocommon_attribute,
3830         handle_common_attribute, handle_noreturn_attribute,
3831         handle_noinline_attribute, handle_always_inline_attribute,
3832         handle_used_attribute, handle_unused_attribute,
3833         handle_const_attribute, handle_transparent_union_attribute,
3834         handle_constructor_attribute, handle_destructor_attribute,
3835         handle_mode_attribute, handle_section_attribute,
3836         handle_aligned_attribute, handle_weak_attribute,
3837         handle_alias_attribute, handle_visibility_attribute,
3838         handle_no_instrument_function_attribute, handle_malloc_attribute,
3839         handle_no_limit_stack_attribute, handle_pure_attribute,
3840         handle_deprecated_attribute, handle_vector_size_attribute,
3841         vector_size_helper): Move from attribs.c.
3842         * c-common.h (c_common_attribute_table,
3843         c_common_format_attribute_table): New.
3844         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3845         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
3846         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3847         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
3848         (LANG_HOOKS_INITIALIZER): Update.
3849         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
3850         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
3851         * target.h: Update comment.
3852         * tree.c (default_target_attribute_table): Remove.
3853         * tree.h (default_target_attribute_table, format_attribute_table,
3854         lang_attribute_table, lang_attribute_common): Remove.
3855 objc:
3856         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3857         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
3858
3859 2002-04-24  Jason Merrill  <jason@redhat.com>
3860
3861         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
3862         * dwarf2out.c (dwarf_attr_name): Support it.
3863         (gen_array_type_die): Emit it.
3864         (lookup_type_die): No special handling for VECTOR_TYPE.
3865         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
3866
3867 2002-04-24  Richard Henderson  <rth@redhat.com>
3868
3869         * config/mips/mips.md (movdi_usd): Renumber.
3870
3871 2002-04-24  David S. Miller  <davem@redhat.com>
3872
3873         PR target/6420
3874         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
3875         32-bit Sparc and current_function_returns_struct is true.
3876
3877 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
3878
3879         * loop.c (canonicalize_condition): Use gen_int_mode.
3880
3881 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
3882
3883         * config/rs6000/altivec.h: Cleanup file.  Add non individual
3884         variants.
3885         (vec_vaddubm): New.
3886         (vec_vadduhm): New.
3887         (vec_vadduwm): New.
3888         (vec_vaddfp): New.
3889         (vec_vaddcuw): New.
3890         (vec_vaddubs): New.
3891         (vec_vaddsbs): New.
3892         (vec_vadduhs): New.
3893         (vec_vadduws): New.
3894         (vec_vaddsws): New.
3895         (vec_vand): New.
3896         (vec_vandc): New.
3897         (vec_vavgub): New.
3898         (vec_vavgsb): New.
3899         (vec_vavguh): New.
3900         (vec_vavgsh): New.
3901         (vec_vavguw): New.
3902         (vec_vavgsw): New.
3903         (vec_vrfip): New.
3904         (vec_vcmpbfp): New.
3905         (vec_vcmpequb): New.
3906         (vec_vcmpequh): New.
3907         (vec_vcmpequw): New.
3908         (vec_vcmpeqfp): New.
3909         (vec_vcmpgefp): New.
3910         (vec_vcmpgtub): New.
3911         (vec_vcmpgtsb): New.
3912         (vec_vcmpgtuh): New.
3913         (vec_vcmpgtsh): New.
3914         (vec_vcmpgtuw): New.
3915         (vec_vcmpgtsw): New.
3916         (vec_vcmpgtfp): New.
3917         (vec_vcmpgefp): New.
3918         (vec_vcfux): New.
3919         (vec_vcfsx): New.
3920         (vec_vctsxs): New.
3921         (vec_vctuxs): New.
3922         (vec_vexptefp): New.
3923         (vec_vrfim): New.
3924         (vec_lvx): New.
3925         (vec_lvebx): New.
3926         (vec_lvehx): New.
3927         (vec_lde): Add vector float variant.
3928         (vec_lvewx): New.
3929         (vec_lvxl): New.
3930         (vec_vlogefp): New.
3931         (vec_vmaddfp): New.
3932         (vec_vmhaddshs): New.
3933         (vec_vmaxub): New.
3934         (vec_vmaxsb): New.
3935         (vec_vmaxuh): New.
3936         (vec_vmaxsh): New.
3937         (vec_vmaxuw): New.
3938         (vec_vmaxsw): New.
3939         (vec_vmaxsw): New.
3940         (vec_vmaxfp): New.
3941         (vec_vmrghb): New.
3942         (vec_vmrghh): New.
3943         (vec_vmrghw): New.
3944         (vec_vmrglb): New.
3945         (vec_vmrglh): New.
3946         (vec_vmrglw): New.
3947         (vec_vminub): New.
3948         (vec_vminsb): New.
3949         (vec_vminuh): New.
3950         (vec_vminsh): New.
3951         (vec_vminuw): New.
3952         (vec_vminsw): New.
3953         (vec_vminfp): New.
3954         (vec_vmladduhm): New.
3955         (vec_vmhraddshs): New.
3956         (vec_msumubm): New.
3957         (vec_vmsummbm): New.
3958         (vec_vmsumuhm): New.
3959         (vec_vmsumshm): New.
3960         (vec_vmsumuhs): New.
3961         (vec_vmsumshs): New.
3962         (vec_vmuleub): New.
3963         (vec_vmulesb): New.
3964         (vec_vmuleuh): New.
3965         (vec_vmulesh): New.
3966         (vec_vmuloub): New.
3967         (vec_mulosb): New.
3968         (vec_vmulouh): New.
3969         (vec_vmulosh): New.
3970         (vec_vnmsubfp): New.
3971         (vec_vnor): New.
3972         (vec_vor): New.
3973         (vec_vpkuhum): New.
3974         (vec_vpkuwum): New.
3975         (vec_vpkpx): New.
3976         (vec_vpkuhus): New.
3977         (vec_vpkshss): New.
3978         (vec_vpkuwus): New.
3979         (vec_vpkswss): New.
3980         (vec_vpkshus): New.
3981         (vec_vpkswus): New.
3982         (vec_vperm): New.
3983         (vec_vrefp): New.
3984         (vec_vrlb): New.
3985         (vec_vrlh): New.
3986         (vec_vrlw): New.
3987         (vec_vrfin): New.
3988         (vec_vrsqrtefp): New.
3989         (vec_vsel): New.
3990         (vec_vslb): New.
3991         (vec_vslh): New.
3992         (vec_vslw): New.
3993         (vec_vsldoi): New.
3994         (vec_vsl): New.
3995         (vec_vslo): New.
3996         (vec_vspltb): New.
3997         (vec_vsplth): New.
3998         (vec_vspltw): New.
3999         (vec_vspltisb): New.
4000         (vec_vspltish): New.
4001         (vec_vspltisw): New.
4002         (vec_vsrb): New.
4003         (vec_vsrh): New.
4004         (vec_vsrw): New.
4005         (vec_vsrab): New.
4006         (vec_vsrah): New.
4007         (vec_vsraw): New.
4008         (vec_vsr): New.
4009         (vec_vsro): New.
4010         (vec_stvx): New.
4011         (vec_stvebx): New.
4012         (vec_stvehx): New.
4013         (vec_stvewx): New.
4014         (vec_stvxl): New.
4015         (vec_vsububm): New.
4016         (vec_vsubuhm): New.
4017         (vec_vsubuwm): New.
4018         (vec_vsubfp): New.
4019         (vec_vsubcuw): New.
4020         (vec_vsububs): New.
4021         (vec_vsubsbs): New.
4022         (vec_vsubuhs): New.
4023         (vec_vsubshs): New.
4024         (vec_vsubuws): New.
4025         (vec_vsubsws): New.
4026         (vec_vsum4ubs): New.
4027         (vec_vsum4sbs): New.
4028         (vec_vsum4shs): New.
4029         (vec_vsum2sws): New.
4030         (vec_vsumsws): New.
4031         (vec_vrfiz): New.
4032         (vec_vupkhsb): New.
4033         (vec_vupkhpx): New.
4034         (vec_vupkhsh): New.
4035         (vec_vupklsb): New.
4036         (vec_vupklpx): New.
4037         (vec_vupklsh): New.
4038         (vec_vxor): New.
4039
4040 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
4041
4042         PR c/5430
4043         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
4044         added literals from substracted literals.
4045         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
4046         (fold) [associate]: Preserve MINUS_EXPR if needed.
4047
4048 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
4049
4050         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
4051         are obsoleted.
4052
4053 2002-04-23  Tom Tromey  <tromey@redhat.com>
4054
4055         * gcc.c: Added --resource.  For PR java/6314.
4056
4057 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4058
4059         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
4060         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
4061         these libraries.
4062
4063 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4064
4065         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
4066
4067 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4068
4069         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
4070         workaround.
4071         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
4072         (ix86_expand_clrstr): Fix typo.
4073         * loop.c (gen_load_of_final_value): New.
4074         (loop_givs_rescan, strength_reduce, check_dbra_loop):
4075         Use it.
4076
4077 2002-04-23  Roger Sayle  <roger@eyesopen.com>
4078
4079         * builtins.c (builtin_memset_gen_str): New function.
4080         (expand_builtin_memset): Optimize the case of constant length, but
4081         unknown value.
4082
4083 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
4084
4085         * config/rs6000/altivec.h (vec_step): Remove extraneous
4086         parentheses.
4087         (vec_ctu): Cast return.
4088
4089 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
4090
4091         PR target/6413
4092         * function.h: (struct function): Add profile_label_no field.
4093         (current_function_profile_label_no): Define.
4094         * function.c: (profile_label_no): New static var.
4095         (expand_function_start): Increment it, and copy to
4096         current_function_profile_label_no.
4097         * output.h (profile_label_no): Delete.
4098         * final.c (profile_label_no): Delete.
4099         (profile_function): Use current_function_profile_label_no.
4100         (final_end_function): Don't increment profile_label_no here.
4101         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
4102         profile_label_no with current_function_profile_label_no.
4103         * config/pa/pa.c (current_function_number): Delete.
4104         (pa_output_function_prologue): Don't output profile label here.
4105         (hppa_profile_hook): Use label_no param rather than
4106         current_function_number.
4107         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
4108         * config/pa/pa.h: .. here.
4109         (FUNCTION_PROFILER): Output profile label here.
4110
4111 2002-04-22  Eric Christopher  <echristo@redhat.com>
4112
4113         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
4114         patch of 2002-04-09 due to binutils issues.
4115         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
4116
4117 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4118
4119         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
4120         constraint to 'o' for m=r and r=m alternatives.
4121         ("*movv8hi_internal1"): Same.
4122         ("*movv16qi_internal1"): Same.
4123         ("*movv4sf_internal1"): Same.
4124
4125 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
4126
4127         * rtl.h (RTX_FLAG): New macro.
4128         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
4129         * final.c (alter_subreg): Use macro to access rtx flag.
4130         * integrate.c (copy_rtx_and_substitute): Use new access macro.
4131         * print-rtl.c (print_rtx): Use new access macro.
4132
4133         * cse.c (insert): Check rtx code before accessing flag.
4134
4135         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
4136         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
4137         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
4138         convert_const_symbol_ref, make_canonical, make_alternative_compare,
4139         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
4140         simplify_test_exp, optimize_attrs, simplify_by_exploding,
4141         find_and_mark_used_attributes, unmark_used_attributes,
4142         add_values_to_cover, simplify_with_current_value,
4143         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
4144         copy_rtx_unchanging, main): Use new access macros.
4145
4146 2002-04-22  Tom Rix  <trix@redhat.com>
4147
4148         * expmed.c (init_expmed): Generate shifted constant once.
4149
4150 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
4151
4152         * c-lex.c (lex_charconst): Call convert to get constant in
4153         proper type; don't just smash the type field.
4154         Fixes PR c/6300.
4155
4156         * config.gcc: Add list of obsolete configurations.  Disallow
4157         building these without --enable-obsolete.
4158         * doc/install.texi: Document --enable-obsolete and obsoletion
4159         policy.  Mention obsoletion of individual targets in
4160         appropriate places.
4161
4162 2002-04-22  Richard Henderson  <rth@redhat.com>
4163
4164         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
4165
4166 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
4167
4168         PR f/6138.
4169         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
4170         (walk_fixup_memory_subreg): Likewise.
4171         (fixup_var_refs_insn): Adjust accordingly.
4172         (fixup_var_refs_1): Likewise.
4173
4174 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
4175
4176         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
4177         LIBPATH_ARCH64_SPEC): Define.
4178         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
4179         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
4180         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
4181         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
4182
4183 2002-04-22      Joel Sherrill <joel@OARcorp.com>
4184
4185         * gthr-rtems.h: Correct prototypes to remove warnings.
4186
4187 2002-04-22  Richard Henderson  <rth@redhat.com>
4188
4189         PR c/6344
4190         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
4191
4192         * gcse.c (free_insn_expr_list_list): New.
4193         (clear_modify_mem_tables): Use it.  Fix bit set usage.
4194         (canon_list_insert): Use EXPR_LISTs for expressions.
4195         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
4196
4197 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4198
4199         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
4200         file change and include code to _cpp_pop_buffer.
4201         * cpphash.h (struct pending_option): Predeclare.
4202         (struct cpp_reader): New member next_include_file.
4203         (_cpp_pop_file_buffer): Update.
4204         (_cpp_push_next_buffer): Update, rename.
4205         * cppinit.c (cpp_destroy): Free include chain and pending here.
4206         (cpp_finish_options): Simplify.
4207         (_cpp_push_next_buffer): Rename and clean up.
4208         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
4209         Clarify.
4210         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
4211
4212 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4213
4214         * config/rs6000/altivec.h (vec_xor): Add variant for both args
4215         being vector signed int.
4216         (vec_andc): Same.
4217         (vec_xor): Add variant for both args being vector signed char.
4218         Remove redundant variant.
4219         (vec_andc): Same.
4220
4221 2002-04-21  David S. Miller  <davem@redhat.com>
4222
4223         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
4224         compare mode in output RTL.
4225
4226 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
4227
4228         * config/rs6000/rs6000.c (rs6000_override_options): Correct
4229         style and formatting of previous patch.
4230
4231 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
4232
4233         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
4234         flag_pic for ABI_AIX.
4235
4236 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4237
4238         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
4239         * cppfiles.c (read_include_file): Similarly.
4240         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
4241         uxstrdup ustrchr, ufputs): Similarly.
4242         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
4243         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
4244         cpp_ideq, parse_identifier, parse_number): Similarly.
4245         * cpplib.c (struct directive, dequote_string, D, run_directive,
4246         cpp_push_buffer): Similarly.
4247         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
4248         _cpp_create_definition, check_trad_stringification,
4249         cpp_macro_definition): Similarly.
4250
4251 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4252
4253         * cppmacro.c (funlike_invocation_p): Don't step back
4254         over CPP_EOF.
4255
4256 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
4257
4258         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
4259         labelno.
4260
4261 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4262
4263         * doc/invoke.texi: Remove Chill references.
4264         * doc/gcc.texi: Update last modified date.
4265
4266 2002-04-20  Kazu Hirata  <kazu@hxi.com>
4267
4268         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
4269         push and pop.  Replace add.l with add.w.
4270
4271 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4272
4273         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
4274         multiply instructions for H8/300H case.
4275
4276 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4277
4278         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
4279         Bum three instructions from each routine.
4280
4281 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4282
4283         * Makefile.in: Update.
4284         * decl.c (push_c_function_context, pop_c_function_context,
4285         mark_c_function_context): Rename for consistency.
4286         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
4287         * c-tree.h (push_c_function_context, pop_c_function_context,
4288         mark_c_function_context): Rename for consistency.
4289         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4290         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4291         * function.c (init_lang_status, save_lang_status,
4292         restore_lang_status, mark_lang_status, free_lang_status):
4293         Move to langhooks.h.
4294         (push_function_context_to, pop_function_context_from,
4295         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
4296         Update.
4297         * function.h (init_lang_status, save_lang_status,
4298         restore_lang_status, mark_lang_status, free_lang_status):
4299         Move to langhooks.h.
4300         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
4301         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4302         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
4303         LANG_HOOKS_FUNCTION_INITIALIZER): New.
4304         (LANG_HOOKS_INITIALIZER): Update.
4305         (lhd_do_nothing_f): New.
4306         * langhooks.h (struct lang_hooks_for_functions): New.
4307         (struct lang_hooks): New hooks.
4308         * langhooks.c (lhd_do_nothing_f): New.
4309 objc:
4310         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4311         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4312
4313 2002-04-19  David S. Miller  <davem@redhat.com>
4314
4315         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4316         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
4317
4318 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4319
4320         PR optimization/3756
4321         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
4322         x = ((int) y < 0) ? cst1 : cst2.
4323
4324 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4325
4326         PR c/6358
4327         * function.c: Reapply patch for c/6358.
4328         (expand_function_end): Copy decl_rtl's mode, not
4329         current_function_return_rtx mode.
4330
4331 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
4332
4333         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
4334         targets.
4335
4336 2002-04-19  Tom Tromey  <tromey@redhat.com>
4337
4338         * doc/install.texi (Specific): Update status of Solaris 2.8.
4339         For PR libgcj/6158.
4340
4341 2002-04-19  Andreas Schwab  <schwab@suse.de>
4342
4343         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
4344         (PUT_REAL): Restore old definition.
4345
4346 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
4347             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4348
4349         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
4350         binutils 2.11.2 and higher generate smaller binaries than Sun's
4351         native tools.
4352
4353 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
4354
4355         PR c++/6352
4356         * toplev.c (rest_of_compilation): Do not defer functions for which
4357         TREE_SYMBOL_REFERENCED has already been set.
4358
4359 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
4360
4361         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
4362         alternative.
4363
4364 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4365
4366         * builtins.c: Include langhooks.h.
4367         (lang_type_promotes_to): Remove.
4368         (expand_builtin_va_arg): Use new hook.
4369         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
4370         (simple_type_promotes_to): Move to c-typeck.c.
4371         * c-common.h (simple_type_promotes_to): Remove.
4372         * c-decl.c (duplicate_decls, grokdeclarator): Update.
4373         * c-format.c: Include langhooks.h.
4374         (check_format_types): Update.
4375         * c-tree.h (c_type_promotes_to): New.
4376         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
4377         (type_lists_compatible_p): Update.
4378         * langhooks-def.h (lhd_type_promotes_to): New.
4379         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
4380         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
4381         * langhooks.c (lhd_type_promotes_to): New.
4382         * langhooks.h (struct lang_hooks_for_types): New hook.
4383         * tree.h (lang_type_promotes_to): Remove.
4384 objc:
4385         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
4386
4387 2002-04-18  Richard Henderson  <rth@redhat.com>
4388
4389         * function.c: Revert patch for c/6358.
4390
4391 2002-04-18  Richard Henderson  <rth@redhat.com>
4392
4393         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
4394         blocks.  Handle multiple references to the TRAP block.  Handle
4395         non-adjacent THEN and OTHER blocks.
4396
4397 2002-04-18  Richard Henderson  <rth@redhat.com>
4398
4399         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
4400         crash with no type for by-mode libcalls.
4401
4402         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
4403
4404 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
4405
4406         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
4407         __xtensa_nonlocal_goto): Use a syscall instructions to flush
4408         the register windows.
4409
4410 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
4411
4412         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
4413         appropriate.  Document need for extended precision even when
4414         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
4415         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
4416         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
4417         instead of relying on later syntax error when REAL_WIDTH > 5.
4418         * real.c: Define NE based only on whether or not we have a
4419         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
4420         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
4421         define GET_REAL and PUT_REAL as simple memcpy operations; no
4422         need to byteswap or round.
4423         Use #error instead of #ifdef-ing out the entire file, for
4424         prompt error detection.
4425
4426         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
4427
4428 2002-04-18  David S. Miller  <davem@redhat.com>
4429
4430         * config/sparc/sparc.h (BRANCH_COST): Define.
4431
4432         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
4433         does it.
4434
4435 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
4436
4437         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
4438         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
4439         propagate_block calls after relaxation loop using new variable
4440         stabilized_prop_flags.
4441
4442 2002-04-18  Richard Henderson  <rth@redhat.com>
4443
4444         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
4445         (ia64_va_arg): Expect variable sized types by reference.
4446         * config/ia64/ia64-protos.h: Update.
4447         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
4448         ia64_function_arg_pass_by_reference.
4449
4450 2002-04-18  Richard Henderson  <rth@redhat.com>
4451
4452         * ifcvt.c: Include except.h.
4453         (block_has_only_trap): Break out from find_cond_trap.
4454         (find_cond_trap): Use it.  Always delete the trap block.
4455         (merge_if_block): Allow then block null.  Be less simplistic about
4456         what insns can end a block.
4457         * Makefile.in (ifcvt.o): Depend on except.h.
4458
4459         * config/ia64/ia64.md (trap, conditional_trap): New.
4460
4461 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4462
4463         PR c/6358
4464         * function.c (assign_parms): Assign hard current_function_return_rtx
4465         register here...
4466         (expand_function_end): ...not here.
4467
4468 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4469
4470         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
4471         * c-tree.h (c_incomplete_type_error): New.
4472         * c-typeck.c (require_complete_type, build_component_ref): Update.
4473         (incomplete_type_error): Rename.
4474         * langhooks-def.h (lhd_incomplete_type_error): New.
4475         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
4476         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
4477         * langhooks.c (lhd_incomplete_type_error): New.
4478         * langhooks.h (struct lang_hooks_for_types): New hook.
4479         * tree.c (size_in_bytes): Use new hook.
4480         * tree.h (incomplete_type_error): Remove.
4481 objc:
4482         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
4483
4484 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
4485
4486         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
4487         TARGET_FLOAT_FORMAT blocks.
4488
4489 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4490
4491         * doc/install.texi (Downloading the source): Do not mention Chill
4492         any longer, but mention Ada.
4493         (Configuration): Do not mention Chill any longer.
4494
4495 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
4496
4497         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
4498
4499 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
4500
4501         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
4502         in last patch.
4503
4504 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4505
4506         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
4507         instead of unsigned_type.
4508
4509 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
4510
4511         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
4512         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
4513         later.
4514
4515 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
4516
4517         * attribs.c (vector_type_node_list): New static variable.
4518         (handle_vector_size_attribute): Use it to avoid generating a
4519         new type node each time we are called.
4520
4521         * combine.c (subst): Avoid trying to make a vector mode subreg of
4522         an integer constant.
4523         (gen_lowpart_for_combine): Likewise.
4524
4525 2002-04-18  Roger Sayle  <roger@eyesopen.com>
4526             Jakub Jelinek  <jakub@redhat.com>
4527
4528         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
4529         for integer constant c (if x has unsigned type or sign bit is not
4530         set in c).  This folds the zero/sign extension into the bit-wise and
4531         operation.
4532
4533 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4534
4535         PR middle-end/6205
4536         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
4537         otherwise xorps.
4538
4539 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
4540
4541         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
4542
4543 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
4544
4545         * gcc.c (read_specs): Detect and fail if an attempt is made to
4546         rename a spec string to an already existing string.
4547
4548 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
4549
4550         * config/s390/s390.c (legitimize_pic_address): Do not generate
4551         illegal address constant without CONST.
4552
4553 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4554
4555         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
4556         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
4557
4558 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
4559
4560         PR optimization/6305
4561         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
4562         to make sure previous reloads are taken into account.  Generate
4563         better code if one operand is an in-range immediate constant.
4564
4565 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
4566
4567         * doc/install.texi (Building): libgcj requires GNU make.
4568
4569 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
4570
4571         PR bootstrap/6315
4572         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
4573         even if hard quad and register is not floating.
4574         (movtf reg<-mem split): Disallow splitting if hard quad and
4575         register is floating.
4576         (movtf mem<-reg split): Likewise.
4577         * config/sparc/sparc.c (fp_register_operand): New predicate.
4578         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
4579
4580 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
4581
4582         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
4583         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
4584         (unprotoize.o): Ditto.  Build from protoize.c.  Define
4585         UNPROTOIZE on command line.
4586         * protoize.c: Include cppdefault.h.  Delete include_defaults.
4587         (in_system_include_dir): Use cpp_include_defaults (defined in
4588         cppdefault.o).
4589         * unprotoize.c: Delete file.
4590
4591 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
4592
4593         * config/rs6000/altivec.h (vec_ld): Add array variants.
4594         (vec_lde): Same.
4595         (vec_ldl): Same.
4596
4597 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
4598             Aldy Hernandez <aldyh@redhat.com>
4599
4600         * config/rs6000/altivec.h: Define __ALTIVEC__.
4601         (bool): New.
4602         (__pixel): New.
4603         (pixel): New.
4604         (vec_cfux): New.
4605         (vec_vmaddfp): New.
4606         (vec_vsldoi): New.
4607         Add parentheses to all macro arguments.
4608
4609 2002-04-16  Richard Henderson  <rth@redhat.com>
4610
4611         PR c++/6320
4612         * except.c (remove_eh_handler): Insert inner regions at beginning
4613         of sibling chain.  Refactor expressions.
4614
4615 2002-04-16  Richard Henderson  <rth@redhat.com>
4616
4617         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
4618         * config/sparc/sol2-gas-bi.h: New file.
4619         * config.gcc (sparc*-solaris): Add it as needed.
4620         * configure.in (AS_SPARC64_FLAG): Remove check.
4621         * config.in, configure: Regenerate.
4622
4623         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
4624
4625 2002-04-16  Richard Henderson  <rth@redhat.com>
4626
4627         * config/mips/mips.c (override_options): Don't override N32 for
4628         a 64-bit ISA.
4629
4630         PR 6202
4631         * config/mips/mips.md (can_delay): Split out of existing define_delays.
4632         (HILO_delay): Set can_delay false.
4633
4634 2002-04-16  Dale Johannesen <dalej@apple.com>
4635
4636         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
4637         instruction addresses.
4638         (rs6000_output_function_epilogue): Likewise.
4639
4640 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
4641
4642         * c-parse.in (poplevel, compstmt_start,
4643         compstmt_primary_start): Add ending ';', in accordance
4644         with POSIX.
4645
4646 2002-04-16  Richard Henderson  <rth@redhat.com>
4647
4648         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
4649         Adjust tm_file order to get TARGET_DEFAULT set properly.
4650         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
4651         * doc/install.texi (sparc-solaris): Update.
4652
4653 2002-04-16  Dale Johannesen <dalej@apple.com>
4654
4655         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
4656         comparison operands do not match each other or if modes of
4657         conditions do not match result.
4658
4659 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
4660
4661         PR target/6305
4662         * config/s390/s390.md (mulsidi3): Set both subregs of the
4663         multiword register.
4664
4665 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
4666
4667         * config/rs6000/altivec.h (vec_addc): Type check.
4668
4669 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
4670
4671         PR middle-end/6279
4672         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
4673
4674         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
4675
4676 2002-04-15  Richard Henderson  <rth@redhat.com>
4677
4678         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
4679         call_really_used_regs too.
4680
4681 2002-04-15  Richard Henderson  <rth@redhat.com>
4682
4683         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
4684
4685 2002-04-15  David S. Miller  <davem@redhat.com>
4686
4687         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
4688         as being CLOBBERed.
4689
4690 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
4691
4692         PR c/6290
4693         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
4694         CONST_VECTOR is { 0, ... 0 }.
4695
4696 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
4697
4698         * doc/install.texi (Installing GCC: Configuration): Clarify
4699         the only supported ways to configure gcc.
4700
4701 2002-04-15  Roland McGrath  <roland@frob.com>
4702
4703         * config.gcc (alpha*-*-gnu*): New target configuration.
4704         * config/alpha/gnu.h: New file for it.
4705         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
4706
4707 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
4708
4709         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
4710         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
4711         * tree.h (expand_start_stmt_expr): Update prototype.
4712         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
4713         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
4714         on the STMT_EXPR created for the inline function.
4715
4716 2002-04-15  Richard Henderson  <rth@redhat.com>
4717
4718         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
4719         config/i386/linux-aout.h, config/i386/linux-oldld.h,
4720         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
4721         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
4722         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
4723         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
4724         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
4725         Define __gnu_linux__, not gnu_linux.
4726         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
4727
4728 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
4729
4730         Remove Chill front end.
4731         * gcc.c (default_compilers): Remove Chill entries.
4732         * ch: Remove directory.
4733         * doc/frontends.texi: Remove information about Chill.
4734         * doc/sourcebuild.texi: Likewise.
4735         * doc/standards.texi: Likewise.
4736
4737 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
4738
4739         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
4740         (LONGLONG_STANDALONE): Define.
4741
4742 2002-04-15  David S. Miller  <davem@redhat.com>
4743
4744         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
4745         Call emit_library_call with LCT_NORMAL.
4746         (sparc_initialize_trampoline): Use LCT_foo instead of
4747         magic constant in emit_library_call invocations.
4748         (sparc64_initialize_trampoline): Likewise.
4749         (sparc_profile_hook): Likewise.
4750         * config/sparc/sparc.md: Likewise.
4751
4752         * config/sparc/sparc.c (sparc_extra_constraint_check):
4753         Fix type of argument 'c'.
4754         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
4755         Likewise.
4756
4757 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4758
4759         * diagnostic.h (output_buffer_state): Redefine.
4760         (output_format_decoder): New macro.
4761         (output_prefixing_rule): Likewise.
4762         (output_line_cutoff): Likewise.
4763         (diagnostic_format_decoder): Adjust.
4764         (diagnostic_prefixing_rule): Likewise.
4765         (diagnostic_line_cutoff): Likewise.
4766         (diagnostic_state): Likewise.
4767         (diagnostic_kind_count): Likewise.
4768         (diagnostic_buffer): Now a macro.
4769
4770         * diagnostic.c (diagnostic_buffer): Remove definition.
4771         (output_is_line_wrapping): Adjust.
4772         (set_real_maximum_length): Likewise.
4773         (output_set_maximum_length): Likewise.
4774         (init_output_buffer): Likewise.
4775         (lhd_print_error_function): Likewise.
4776         (output_do_verbatim): Likewise.
4777
4778 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4779
4780         * cpperror.c (print_location): Don't print include chain
4781         if line == 0.
4782         (cpp_begin_message): Update to use DL_ macros.
4783         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
4784         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4785         cpp_notice, cpp_notice_from_errno): Remove.
4786         (cpp_error, cpp_error_with_line): Update to take a diagnostic
4787         level.
4788         (cpp_errno): New.
4789         * cppexp.c (CPP_ICE): Remove.
4790         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
4791         lex, integer_overflow, _cpp_parse_expr): Update.
4792         * cppfiles.c (read_include_file, find_include_file,
4793         handle_missing_header, _cpp_read_file, remap_filename): Update.
4794         * cpphash.h (enum error_type): Remove.
4795         (_cpp_begin_message): Update.
4796         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
4797         cpp_handle_option, cpp_post_options): Update.
4798         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
4799         skip_whitespace, parse_identifier, parse_slow, parse_string,
4800         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
4801         cpp_interpret_charconst): Update.
4802         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
4803         lex_macro_node, do_undef, glue_header_name, parse_include,
4804         do_include_common, read_flag, do_line, do_linemarker, do_ident,
4805         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
4806         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
4807         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
4808         _cpp_pop_buffer, do_diagnostic): Update.
4809         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
4810         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
4811         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
4812         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4813         cpp_notice, cpp_notice_from_errno): Remove.
4814         (cpp_error, cpp_error_with_line): Update to take a diagnostic
4815         level.
4816         (cpp_errno): New.
4817         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
4818         collect_args, enter_macro_context, save_parameter, parse_params,
4819         _cpp_create_definition, check_trad_stringification,
4820         cpp_macro_definition): Update.
4821         * cppmain.c (cpp_preprocess_file): Update.
4822         * fix-header.c (read_scan_file): Update.
4823
4824 2002-04-14  Andreas Schwab  <schwab@suse.de>
4825
4826         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
4827
4828 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
4829
4830         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
4831
4832 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
4833
4834         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
4835         not gnu_hurd.
4836
4837 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
4838
4839         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
4840
4841 2002-04-13      Joel Sherrill <joel@OARcorp.com>
4842
4843         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
4844         sparc-elf and sparc-rtems targets.
4845
4846 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
4847
4848         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
4849         defined, and __gnu_hurd__ wherever __GNU__ is defined.
4850         * arm/linux-elf.h: Likewise.
4851         * cris/aout.h: Likewise.
4852         * cris/linux.h: Likewise.
4853         * i370/linux.h: Likewise.
4854         * i386/gnu.h: Likewise.
4855         * i386/linux-aout.h: Likewise.
4856         * i386/linux-oldld.h: Likewise.
4857         * i386/linux.h: Likewise.
4858         * i386/linux64.h: Likewise.
4859         * ia64/linux.h: Likewise.
4860         * m68k/linux-aout.h: Likewise.
4861         * m68k/linux.h: Likewise.
4862         * mips/linux.h: Likewise.
4863         * pa/pa-linux.h: Likewise.
4864         * pj/linux.h: Likewise.
4865         * rs6000/sysv4.h: Likewise.
4866         * s390/linux.h: Likewise.
4867         * sh/linux.h: Likewise.
4868         * sparc/linux-aout.h: Likewise.
4869         * sparc/linux.h: Likewise.
4870         * sparc/linux64.h: Likewise.
4871         * xtensa/linux.h: Likewise.
4872
4873 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
4874
4875         * stmt.c (check_unique_operand_names): Expect operand names to
4876         be strings rather than identifiers.  Use simple_cst_equal to
4877         compare them.
4878         (resolve_operand_name_1): Make same identifier to string change here.
4879         * c-parse.in (asm_operand): Convert a named operand into a string.
4880         * cp/parse.y (asm_operand): Likewise.
4881
4882 2002-04-13  Andreas Schwab  <schwab@suse.de>
4883
4884         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
4885
4886 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
4887
4888         Revert these changes:
4889
4890         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
4891
4892         PR c++/5571
4893         * stor-layout.c (layout_decl): Reset the RTL for the decl.
4894
4895 2002-04-12  Richard Henderson  <rth@redhat.com>
4896
4897         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
4898         (sparc*-*-solaris): Clean up header files.
4899         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
4900         and plan on generating 64-bit code.
4901         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
4902         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
4903         * config/sparc/sol2-sld-64.h: Rename ...
4904         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
4905         for AS_SPARC64_FLAG not defined.
4906         * config/sparc/sol2-gld-bi.h: New.
4907         * config/sparc/sol2-sld.h: Remove.
4908         * config/sparc/sol26-sld.h: New.
4909         * config/sparc/sol2.h: Tidy comments.
4910         * doc/install.texi: Document sparc-solaris configury changes.
4911
4912 2002-04-12  Richard Henderson  <rth@redhat.com>
4913
4914         * recog.c (offsettable_address_p): Match the logic in adjust_address.
4915
4916         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
4917         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
4918
4919 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4920
4921         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
4922
4923 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
4924
4925         * pa.c (pa_can_combine_p): Call extract_insn before calling
4926         constrain_operands.
4927
4928 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
4929
4930         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
4931         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
4932         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
4933         (CPP_PREDEFINES): Handle __declspec.
4934         * config/i386/t-interix (USER_H): Remove.
4935
4936 2002-04-12  DJ Delorie  <dj@redhat.com>
4937
4938         * integrate.c (compare_blocks): Make comparisons safe for when
4939         sizeof(int) < sizeof(char *).
4940         (find_block): Likewise.
4941
4942 2002-04-12  Jan Hubicka  <jh@suse.cz>
4943             David Edelsohn  <edelsohn@gnu.org>
4944
4945         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
4946         registers.
4947         (symbol_ref_operand): New.
4948         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
4949         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
4950
4951 2002-04-12  Andreas Schwab  <schwab@suse.de>
4952
4953         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
4954         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
4955         overrides the definition in config/svr4.h.
4956
4957 2002-04-12      Eric Norum <eric.norum@usask.ca>
4958
4959         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
4960         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
4961         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
4962         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
4963         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
4964         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
4965         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
4966         definitions to config/rtems.h and make the targets more similar.
4967
4968 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4969
4970         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
4971         POINTERS_EXTEND_UNSIGNED.
4972         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
4973         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
4974
4975         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
4976         not specified.
4977
4978 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
4979
4980         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
4981         depends on TARGET_SHMEDIA, not TARGET_SH5.
4982
4983 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
4984
4985         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
4986         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
4987
4988 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
4989
4990         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
4991         no r0 clobber.
4992
4993 2002-04-12  Andreas Schwab  <schwab@suse.de>
4994
4995         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
4996
4997 2002-04-12  Richard Henderson  <rth@redhat.com>
4998
4999         PR bootstrap/4191
5000         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
5001
5002         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
5003         modes spanning multiple hard regs.
5004
5005         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
5006
5007 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5008
5009         * pa.c (pa_output_function_prologue): Don't accumulate the total
5010         number of code bytes when using TARGET_64BIT, or gas, SOM and not
5011         the portable runtime.
5012         (output_deferred_plabels): Handle 64bit plabels.
5013         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
5014         generating pic code using the GAS assembler for object formats that
5015         are not SOM (ie., ELF32 and ELF64).
5016         (output_millicode_call): Check attribute type if attribute length is 28.
5017         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
5018         dbr_sequence_length once.
5019         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
5020         dbr_sequence_length once.
5021         * pa.h (TARGET_SOM): Define if not defined.
5022         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
5023         with GAS and not SOM.
5024         (jump, call_internal_reg, call_value_internal_reg): Likewise.
5025         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
5026
5027 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5028
5029         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
5030         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
5031         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
5032         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
5033         elfos.h and dbxelf.h values are fine now.
5034         * config/i386/freebsd.h, config/alpha/freebsd.h
5035         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
5036
5037 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5038
5039         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
5040         or set Acpu or Amachine.  Reformat.
5041         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5042         define.
5043         (LINK_SPEC): Do not need to undef.
5044         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
5045         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
5046         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5047         define.
5048         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
5049         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
5050         (LINK_SPEC): Do not need to undef.
5051         (DONT_USE_BUILTIN_SETJMP): Do not define.
5052         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
5053         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
5054         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
5055         Remove trailing spaces.
5056         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
5057         __ELF__, or set Acpu or Amachine.  Reformat.
5058         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5059         define.
5060
5061 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5062
5063         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
5064         all other *-*-freebsd* targets.
5065
5066 2002-04-11  Richard Henderson  <rth@redhat.com>
5067
5068         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
5069
5070 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5071
5072         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
5073         Include {cpu}/{cpu}.h thru tm_file.
5074         (alpha*-*-linux*ecoff): Remove target.
5075         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
5076         (LINK_SPEC): Remove, is not OS independent.
5077         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
5078         (LINK_SPEC): Do not need to #undef any longer.
5079         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
5080         any longer.
5081         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
5082         __ELF__.
5083         (LINK_SPEC): Moved here from alpha/elf.h.
5084         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
5085         SUB_CPP_PREDEFINES.
5086         * config/alpha/linux-ecoff.h: Remove.
5087         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
5088         (CPP_SPEC): Define _POSIX_SOURCE as needed.
5089         (CPP_SUBTARGET_SPEC): Do not define.
5090         (LINK_SPEC): Do not need to #undef any longer.
5091         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
5092         * config/alpha/vms.h: Likewise.
5093
5094 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
5095
5096         * doc/extend.texi: Remove old claim that typedefs cannot have
5097         an alignment attribute.
5098
5099 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5100
5101         PR optimization/6177
5102         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
5103         bitpos is 0 and bitsize CONCAT size.
5104
5105 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR c/6223
5108         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
5109
5110 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
5111
5112         * config/alpha/freebsd.h: Minor reformatting.
5113         (CPP_SPEC): Define ELF and add cpp_subtarget.
5114         (ASM_SPEC): No longer needed.
5115
5116 2002-04-11  Richard Henderson  <rth@redhat.com>
5117
5118         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
5119         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
5120         (dimode mem/zero splitter): New.
5121
5122 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
5123
5124         * config/cris/cris.c (cris_override_options): Tweak error message
5125         for PIC not implemented.
5126
5127         * config/cris/cris.h: Tweak comments related to parameter-passing.
5128
5129         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
5130
5131 2002-04-10  Richard Henderson  <rth@redhat.com>
5132
5133         * except.c (add_ehl_entry): Allow duplicates after landing pad
5134         creation.
5135
5136 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
5137
5138         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
5139
5140 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
5141
5142         * c-decl.c (c_init_decl_processing): Move generation of
5143         decls for g77_integer_type_node and friends from here ...
5144         * c-common.c (c_common_nodes_and_builtins): ... to here.
5145
5146 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
5147
5148         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
5149         is only used as frame pointer when frame_pointer_needed is true.
5150
5151 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
5152
5153         PR target/817
5154         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
5155         for the fact that the pool entry uses two words.
5156         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
5157         1k bytes.
5158         (movdf_soft_insn): Similarly.
5159         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
5160         for the fact that the pool entry uses three words.
5161
5162 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
5163
5164         * config/mips/mips.c (mips_va_arg): When using the struct version
5165         of the EABI va_list, allow arguments in the register save area to
5166         take up less room than a stack argument.
5167
5168 2002-04-10  Richard Henderson  <rth@redhat.com>
5169
5170         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
5171         if EXPAND_INITIALIZER.
5172
5173 2002-04-09  Richard Henderson  <rth@redhat.com>
5174
5175         * config/alpha/alpha.md (movdi_er_maybe_g): New.
5176         * config/alpha/alpha.c (alpha_expand_mov): Use it.
5177
5178 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
5179
5180         PR optimization/6233
5181         * rtlanal.c (pure_call_p): New function.
5182         * rtl.h (pure_call_p): Declare.
5183         * loop.c (prescan_loop): Use it to set has_nonconst_call.
5184         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
5185
5186 2002-04-09  Eric Christopher  <echristo@redhat.com>
5187
5188         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
5189         information to .comm directive.
5190
5191 2002-04-09  Richard Henderson  <rth@redhat.com>
5192
5193         PR c/5078
5194         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
5195
5196 2002-04-09  Richard Henderson  <rth@redhat.com>
5197
5198         * basic-block.h (flow_delete_block_noexpunge): Declare.
5199         (expunge_block_nocompact): Declare.
5200         * cfg.c (expunge_block_nocompact): Split out from ...
5201         (expunge_block): ... here.
5202         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
5203         (flow_delete_block_noexpunge): Split out from ...
5204         (flow_delete_block): ... here.
5205         * cfgcleanup.c (delete_unreachable_blocks): Compact while
5206         removing dead blocks.
5207         * except.c (exception_handler_labels): Remove.
5208         (exception_handler_label_map): New.
5209         (struct eh_region): Add aka member.
5210         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
5211         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
5212         (for_each_eh_label, for_each_eh_label_1): New.
5213         (init_eh): Register exception_handler_label_map.
5214         (free_eh_status): Use free_region.
5215         (find_exception_handler_labels): Use the map, not the list.
5216         (remove_exception_handler_label): Likewise.
5217         (maybe_remove_eh_handler): Likewise.
5218         (remove_eh_handler): Use the region aka bitmap.
5219         * except.h (exception_handler_labels): Remove.
5220         (for_each_eh_label): Declare.
5221         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
5222         * loop.c (invalidate_loops_containing_label): New.
5223         (find_and_verify_loops): Use it.  Use for_each_eh_label.
5224         * sched-rgn.c (is_cfg_nonregular): Use
5225         current_function_has_exception_handlers.
5226
5227 2002-04-09  Richard Henderson  <rth@redhat.com>
5228
5229         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
5230         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
5231         Do not return changed status.
5232         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
5233         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
5234         New functions that do return changed status.
5235         * sbitmap.h: Update decls.
5236         * gcse.c, lcm.c: Use _cg functions as needed.
5237
5238 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5239
5240         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
5241         (sh64-*-elf*, sh-*-rtemself*): Likewise.
5242         * config/sh/embed_bb.c: New file.
5243         * config/sh/embed-elf.h: New file.
5244         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
5245         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
5246         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5247         __PTRDIFF_TYPE__ .
5248         (SUBTARGET_CPP_PTR_SPEC): Don't define.
5249         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
5250         Add subtarget_asm_endian_spec.
5251         (ASM_SPEC): Use subtarget_asm_endian_spec.
5252         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
5253         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
5254         (WCHAR_UNSIGNED): Define.
5255         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
5256         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5257         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
5258         Fix value.
5259         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
5260         (sh_adjust_cost): Likewise.
5261         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5262         __PTRDIFF_TYPE__ .
5263         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
5264         (WCHAR_TYPE_SIZE): Likewise.
5265         (ASM_SPEC): Use subtarget_asm_endian_spec.
5266         (SH_ELF_WCHAR_TYPE): #undef/ #define.
5267         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
5268         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
5269         (MAX_WCHAR_TYPE_SIZE): Don't #define .
5270         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
5271         (USER_LABEL_PREFIX): Don't #undef /#define .
5272         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5273         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
5274         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
5275         (ASM_SPEC): Likewise.
5276         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
5277         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
5278         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
5279         (LIB2FUNCS_EXTRA): Define.
5280         * t-sh64 (LIB2FUNCS_EXTRA): Define.
5281         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
5282         (LIB1ASMFUNCS_CACHE): Define.
5283         (LIB2FUNCS_EXTRA): Redefine empty.
5284
5285 2002-04-08  Richard Henderson  <rth@redhat.com>
5286
5287         * reorg.c (get_branch_condition): Use reversed_comparison_code.
5288
5289 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5290
5291         * config/m68hc11/larith.asm (__map_data_section): Fix condition
5292         and optimize for size.
5293         (__do_global_ctors): Fix pointer comparison.
5294         (__do_global_dtors): Likewise.
5295
5296 2002-04-09  David S. Miller  <davem@redhat.com>
5297
5298         * config/sparc/sparc.c (sparc_extra_constraint_check): New
5299         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
5300         allow reloading pseudos.
5301         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
5302         * config/sparc/sparc-protos.h: Declare it.
5303
5304         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
5305         unsigned comparison warning.
5306         (output_restore_regs): Mark leaf_function as unused.
5307
5308 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5309
5310         * expr.c (is_aligning_offset): New function.
5311         (expand_expr, case COMPONENT_EXPR): Call it.
5312
5313 2002-04-08  David S. Miller  <davem@redhat.com>
5314
5315         PR target/6082
5316         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
5317
5318         Make init_priority work on Sparc when using GNU ld.
5319         * config/sparc/linux.h, config/sparc/linux64.h,
5320         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
5321         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
5322         * config/sparc/sol2-gld.h: New file to do the same.
5323         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
5324         sparc/sol2-gld.h to tm_file.
5325
5326         PR optimization/4328
5327         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
5328         * doc/md.texi: Document it.
5329         * config/sparc/sparc.md (movdi_insn_sp64_novis,
5330         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
5331         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
5332         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
5333         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
5334
5335 2002-04-08  Andreas Jaeger  <aj@suse.de>
5336
5337         * stmt.c (expand_asm_operands): Revert last patch from Richard
5338         Henderson.
5339
5340 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5341
5342         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
5343         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
5344
5345 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5346
5347         * doc/contrib.texi (Contributors): Add David O'Brien.
5348
5349 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
5350
5351         * configure.in (auto-build.h): Use target_alias and build_alias
5352         when running configure.
5353         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
5354         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
5355         * configure: Regenerate.
5356
5357 2002-04-07  David S. Miller  <davem@redhat.com>
5358
5359         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
5360
5361 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5362
5363         PR 5933
5364         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
5365         generating 32-bit pic code.
5366
5367 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
5368
5369         * cppinit.c (cpp_create_reader): Initialize
5370         discard_comments_in_macro_exp.
5371         (COMMAND_LINE_OPTIONS): Add "-CC" option.
5372         (cpp_handle_option): Handle "-CC" option.
5373         * cpplex.c (save_comment): If saving a C++ comment in
5374         a directive, convert it to a C comment.
5375         (_cpp_lex_direct): Pass second comment start character to
5376         save_comment to indicate comment type.
5377         * cpplib.c (_cpp_handle_directive): If processing
5378         a "#define" directive and discard_comments_in_macro_exp
5379         is false,  re-enable saving of comments.
5380         (lex_macro_node): If discard_comments_in_macro_exp is false,
5381         discard any comments before the macro identifier.
5382         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
5383         member.
5384         * cppmacro.c (cpp_get_token): If expanding a macro while
5385         processing a directive, discard any comments we might encounter.
5386         (parse_params): If discard_comments_in_macro_exp is false,
5387         ignore comments in the macro parameter list.
5388         * gcc.c (cpp_unique_options): Add "-CC" option.
5389         (option_map): Map "--comments-in-macros" to "-CC".
5390         * doc/cppopts.texi: Document "-CC" option.
5391         * f/lang-specs.h: Add "-CC" option.
5392         * testsuite/gcc.dg/cpp/maccom1.c: New test.
5393         * testsuite/gcc.dg/cpp/maccom2.c: New test.
5394         * testsuite/gcc.dg/cpp/maccom3.c: New test.
5395         * testsuite/gcc.dg/cpp/maccom4.c: New test.
5396         * testsuite/gcc.dg/cpp/maccom5.c: New test.
5397         * testsuite/gcc.dg/cpp/maccom6.c: New test.
5398
5399 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5400
5401         PR middle-end/6180
5402         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
5403
5404 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5405
5406         PR c++/5571
5407         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5408
5409         PR opt/5120
5410         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
5411         RTX_UNCHANGING_P for the functions arguments when a tail call
5412         is made.
5413
5414 2002-04-06  Jason Merrill  <jason@redhat.com>
5415
5416         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
5417         (parse_options_and_default_flags): Set them appropriately.
5418         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
5419
5420 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
5421
5422         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
5423         here.
5424
5425         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
5426         semicolon.
5427
5428         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
5429         types come in by-reference.  Fix typo in comment.
5430
5431 2002-04-05  David S. Miller  <davem@redhat.com>
5432
5433         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
5434         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
5435         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
5436         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
5437
5438 2002-04-05  David S. Miller  <davem@redhat.com>
5439
5440         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
5441         are not going to emit return instructions, emit at least a nop
5442         for the sake of sane backtraces.
5443
5444 2002-04-05  Richard Henderson  <rth@redhat.com>
5445
5446         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
5447
5448 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
5449
5450         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
5451
5452 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
5453
5454         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
5455         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
5456         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
5457
5458 2002-04-05  Andreas Schwab  <schwab@suse.de>
5459
5460         * c-convert.c: Include c-common.h.
5461         * Makefile.in (c-convert.o): Updated.
5462
5463 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
5464
5465         * mklibgcc.in: Use separate libgcc.map for each multilib.
5466         * Makefile.in (distclean): Don't remove libgcc.map here.
5467
5468 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
5469
5470         * Makefile.in (s-mlib): Handle --disable-multilib by separate
5471         genmultilib invocation.
5472
5473 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
5474
5475         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
5476         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
5477         to num_gprs for symmetry.
5478         * config/mips/mips.c: Adjust accordingly.
5479
5480 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5481
5482         * c-common.c (truthvalue_conversion): Rename, update.
5483         * c-common.h (c_common_truthvalue_conversion): New.
5484         * c-convert.c (convert): Update.
5485         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5486         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
5487         * c-typeck.c (build_binary_op, build_unary_op,
5488         build_conditional_expr): Update.
5489         * fold-const.c (constant_boolean_node, fold): Use langhook.
5490         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
5491         * langhooks.h (struct lang_hooks): New hook.
5492         * stmt.c (expand_decl_cleanup): Use langhook.
5493         * tree.h (truthvalue_conversion): Remove.
5494 objc:
5495         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5496
5497 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
5498
5499         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
5500         Add rules to make null object file.
5501
5502 2002-04-04  Jim Blandy  <jimb@redhat.com>
5503
5504         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
5505         macro formal parameter names.
5506
5507 2002-04-04  David S. Miller  <davem@redhat.com>
5508
5509         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
5510
5511 2002-04-04  Richard Henderson  <rth@redhat.com>
5512
5513         PR middle-end/5099
5514         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
5515         Support copies into and out of memory.  Don't accept allows_reg
5516         and allows_mem as gospel.
5517
5518 2002-04-04  Richard Henderson  <rth@redhat.com>
5519
5520         PR opt/6165
5521         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
5522         (write_dependence_p): Likewise.
5523
5524 2002-04-04  Richard Henderson  <rth@redhat.com>
5525
5526         * predict.c (estimate_bb_frequencies): Do frequency calculation
5527         with a volatile temporary.
5528
5529 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
5530
5531         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
5532
5533 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5534
5535         PR c++/6119
5536         * final.c (final_start_function): Don't bump profile_label_no here...
5537         (final_end_function): ...but here.
5538
5539 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5540
5541         * config/sparc/sparc.md (pic): New attribute.
5542         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
5543         into stack slots.
5544         (split after do_builtin_setjmp_setup): New.
5545
5546 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5547
5548         PR fortran/6106
5549         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
5550         change.
5551
5552 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5553
5554         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
5555         UNITS_PER_WORD for zero sized aggregates.
5556
5557 2002-04-03  David S. Miller  <davem@redhat.com>
5558
5559         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
5560         one-character spec for this, just use %(link_gcc_c_sequence).
5561
5562 2002-04-03  David S. Miller  <davem@redhat.com>
5563
5564         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
5565         handling.
5566
5567 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5568
5569         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
5570         (DWARF_FRAME_RETURN_COLUMN): Move.
5571         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5572         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
5573         * pa.c (except.h, predict.h): Include.
5574         (FRP): Delete.
5575         (store_reg_modify, set_reg_plus_d): Revise prototypes.
5576         (output_ascii): Add cast.
5577         (store_reg_modify): Revise to add frame notes.
5578         (set_reg_plus_d): Likewise.
5579         (compute_frame_size): Include space for eh data registers in frame if
5580         the current function calls eh_return.
5581         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
5582         function calls eh_return.  Save eh data registers if the current
5583         function calls eh_return.  Fix code to add frame notes.  Emit
5584         blockage to prevent insns with frame notes being scheduled in the
5585         delay slot of calls.
5586         (hppa_expand_epilogue): Restore eh data registers and do final stack
5587         adjustment if the current function calls eh_return.  Don't add frame
5588         notes.
5589         (output_call): Revise for change in length of call insn.  Don't do
5590         return pointer adjustment for an unconditional jump in the delay slot
5591         of a call when using frame notes.
5592         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
5593         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
5594         (ARG_POINTER_CFA_OFFSET): Define.
5595         * pa.md (return_external_pic): New pattern.
5596         (prologue): Correct formatting.  Use return_external_pic if current
5597         function calls eh_return.
5598         (call_internal_symref, call_value_internal_symref,
5599         sibcall_internal_symref, sibcall_value_internal_symref): Change default
5600         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
5601         respectively.
5602         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
5603
5604         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
5605         list of targets to check using "nop" insn.
5606         * configure: Rebuilt.
5607
5608 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
5609
5610         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
5611
5612 2002-04-03  David S. Miller  <davem@redhat.com>
5613
5614         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
5615         library sequence passed to the linker.
5616         (LINK_COMMAND_SPEC): Use it.
5617         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
5618         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
5619         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5620
5621 2002-04-03  Jason Merrill  <jason@redhat.com>
5622
5623         * except.c (struct eh_status): Remove protect_list.
5624         (begin_protect_partials, end_protect_partials): Remove.
5625         (add_partial_entry): Remove.
5626         * except.h: Remove prototypes.
5627
5628         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
5629         expand_decl_cleanup_eh.
5630
5631         PR c++/5636
5632         * tree.h (CLEANUP_EH_ONLY): New macro.
5633         * stmt.c (expand_decl_cleanup_eh): New fn.
5634         (expand_cleanups): Check CLEANUP_EH_ONLY.
5635         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
5636         Use expand_decl_cleanup_eh.
5637         (expand_stmt): Adjust.
5638         * c-common.h: Adjust prototype.
5639
5640 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
5641
5642         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
5643         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
5644         (cris_target_asm_function_epilogue): Ditto.
5645         (cris_initial_frame_pointer_offset): Ditto.
5646         (cris_simple_epilogue): Ditto.
5647         (cris_expand_builtin_va_arg): Variable-size types come in
5648         by-reference.
5649
5650 2002-04-03  David S. Miller  <davem@redhat.com>
5651
5652         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
5653         little-endian.
5654         (set_fast_math): Correct 'fsr' type.
5655
5656 2002-04-03  Richard Henderson  <rth@redhat.com>
5657
5658         PR opt/3569
5659         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
5660         * toplev.c (check_global_declarations): Use it.
5661         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
5662         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
5663         (LANG_HOOKS_DECLS): Add it.
5664         * langhooks.c (lhd_warn_unused_global_decl): New.
5665         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
5666         * c-objc-common.c (c_warn_unused_global_decl): New.
5667         * c-tree.h (c_warn_unused_global_decl): Declare.
5668         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
5669
5670 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5671
5672         * langhooks-def.h (lhd_set_decl_assembler_name,
5673         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
5674         (LANG_HOOKS_INITIALIZER): Update.
5675         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
5676         * langhooks.h (struct lang_hooks): New hook.
5677         * tree.c (set_decl_assembler_name): Move to langhooks.c.
5678         (lang_set_decl_assembler_name): Remove.
5679         (init_obstacks): Don't set hook.
5680         (decl_assembler_name): New function.
5681         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
5682         (decl_assembler_name): New.
5683         (lang_set_decl_assembler_name): Remove.
5684
5685 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
5686
5687         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
5688         works properly with .hidden symbols.
5689         * configure: Rebuilt.
5690         * config.in: Rebuilt.
5691         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5692         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
5693         properly with .hidden symbols.
5694
5695 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
5696
5697         PR middle-end/6102
5698         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
5699         USE argument.
5700
5701 2002-04-03  Richard Henderson  <rth@redhat.com>
5702
5703         PR opt/4120
5704         * sched-rgn.c (sets_likely_spilled): New.
5705         (sets_likely_spilled_1): New.
5706         (add_branch_dependences): Use it.
5707
5708 2002-04-02  Richard Henderson  <rth@redhat.com>
5709
5710         PR opt/4311
5711         * loop.h (LOOP_FIRST_PASS): New.
5712         * loop.c (strength_reduce): Mind it when deciding to unroll.
5713         * toplev.c (rest_of_compilation): Set it.
5714
5715 2002-04-02  David S. Miller  <davem@redhat.com>
5716
5717         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
5718         mems_ok_for_ldd_peep when the order of the loads being examined
5719         is reversed.
5720         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
5721         existing comment to increase comprehension of this situation.
5722
5723 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
5724
5725         * config/sh/sh.md: Don't use union real_extract.
5726
5727 2002-04-02  Richard Henderson  <rth@redhat.com>
5728
5729         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
5730
5731 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
5732
5733         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
5734         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
5735         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
5736         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
5737         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
5738         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
5739         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
5740         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
5741         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
5742         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
5743         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
5744         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
5745         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
5746         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
5747         Include as many configury headers via tm_file as possible.  This
5748         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
5749         * config/openbsd-oldgas.h: New file.
5750         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
5751         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
5752         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
5753         config/i386/i386-coff.h, config/i386/i386-interix.h,
5754         config/i386/iscdbx.h, config/i386/linux-aout.h,
5755         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
5756         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
5757         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
5758         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
5759         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
5760         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
5761         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
5762         config/i386/vxi386.h: Do not directly include configury headers.
5763         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
5764         Directly include configury headers that are no longer automatically
5765         included by the above headers.
5766         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
5767         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
5768         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
5769         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
5770         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
5771         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
5772         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
5773         (TARGET_VERSION): Define.
5774         * config/i386/beos-elf.h, config/i386/freebsd.h,
5775         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
5776         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
5777         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
5778         config/i386/sco5.h, config/i386/sysv4.h
5779         (TARGET_VERSION): Do not need to protect.
5780         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
5781         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
5782         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
5783         config/i386/i386-interix.h, config/i386/linux-aout.h,
5784         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
5785         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
5786         (YES_UNDERSCORES): Do not define - not needed.
5787         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
5788         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
5789         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
5790         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
5791         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
5792         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
5793         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
5794         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
5795
5796 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
5797             Richard Henderson  <rth@redhat.com>
5798
5799         PR c/5484
5800         * function.c (assign_temp): Accept either type or decl argument.
5801         Detect variables whose size is too large to fit into an integer.
5802         * stmt.c (expand_decl): Pass the decl, not the type.
5803
5804 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
5805
5806         * protoize.c: Match include directory usage with cppdefault.c.
5807
5808 2002-04-03  Jeffrey A Law  (law@redhat.com)
5809             Hans-Peter Nilsson  <hp@bitrange.com>
5810
5811         * combine.c (simplify_comparison): Avoid narrowing a comparison
5812         with a paradoxical subreg when doing so would drop signficant bits.
5813
5814 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
5815
5816         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
5817         if POINTERS_EXTEND_UNSIGNED is defined.
5818
5819 2002-04-02  Richard Henderson  <rth@redhat.com>
5820
5821         PR opt/3967
5822         * local-alloc.c (contains_replace_regs): LO_SUM may contain
5823         replace regs.
5824
5825 2002-04-02  Richard Henderson  <rth@redhat.com>
5826
5827         * doc/standards.texi: Document required freestanding libc entry points.
5828
5829 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
5830
5831         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
5832         associated splitter.  Remove MQ constraint.
5833         (ctrdi_internal4): Correct CCmode clobber.
5834
5835 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5836
5837         * milli64.S ($$dyncall): New function.
5838         * t-linux (LIB1ASMFUNCS): Revise module list.
5839         (LIB1ASMSRC): Use pa/milli64.S.
5840
5841 2002-04-02  Richard Henderson  <rth@redhat.com>
5842
5843         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
5844         rename solaris_sys_varargs_h.
5845
5846 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5847
5848         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
5849         the same mode as its component.
5850
5851 2002-04-02  Richard Henderson  <rth@redhat.com>
5852
5853         PR opt/190
5854         * final.c (this_is_asm_operands): Export.
5855         * output.h (this_is_asm_operands): Declare.
5856         * config/i386/i386.c (print_operand): Error odd asm operands.
5857
5858 2002-04-02  Richard Henderson  <rth@redhat.com>
5859
5860         PR opt/420
5861         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
5862
5863 2002-04-01  Richard Henderson  <rth@redhat.com>
5864
5865         PR target/1538
5866         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
5867         * fixinc/fixincl.x: Rebuild.
5868
5869 2002-04-01  Richard Henderson  <rth@redhat.com>
5870
5871         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
5872         (atomic_alloc, atomic_free): New.
5873         (SIZE, MASK_FOR, PTR_IN): New.
5874         (emergency_reg_state, emergency_reg_state_free): New.
5875         (emergency_labeled_state, emergency_labeled_state_free): New.
5876         (reg_state_alloced, labeled_state_alloced): New.
5877         (alloc_reg_state, free_reg_state): New.
5878         (alloc_label_state, free_label_state, free_label_states): New.
5879         (push, pop, dup_state_stack, free_state_stack): Use them.
5880         (desc_label_state): Likewise.
5881         (uw_frame_state_for): Free label states and state stack.
5882         (uw_update_reg_address): Eliminate warnings.
5883
5884 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
5885
5886         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
5887         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
5888
5889 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5890
5891         * c-decl.c (grokdeclarator): Update.
5892         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5893         * c-tree.h (c_mark_addressable): New.
5894         * c-typeck.c (default_function_array_conversion, build_unary_op,
5895         build_array_ref, convert_for_assignment): Update.
5896         (mark_addressable): Rename.
5897         * calls.c (try_to_integrate, expand_call): Use langhook.
5898         * expr.c (expand_expr): Use langhook.
5899         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
5900         * langhooks.h (struct lang_hooks): New hook.
5901         * stmt.c (expand_asm_operands): Use langhook.
5902         * tree.h (mark_addressable): Remove.
5903 objc:
5904         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5905
5906 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
5907
5908         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
5909         in previous change.
5910
5911 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
5912
5913         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
5914         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
5915
5916 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5917
5918         * c-common.c (unsigned_conversion_warning, convert_and_check,
5919         unsigned_type, signed_type, shorten_compare,
5920         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
5921         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
5922         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
5923         New.
5924         * c-decl.c (grokdeclarator): Update.
5925         * c-format.c (check_format_types): Update.
5926         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5927         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5928         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
5929         * convert.c (convert_to_integer): Use new hooks.
5930         * expmed.c (make_tree): Use new hooks.
5931         * expr.c (store_expr): Use new hooks.
5932         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
5933         all_ones_mask_p, unextend, fold): Use new hooks.
5934         * langhooks.h (struct lang_hooks_for_types): New hooks.
5935         * tree.h (signed_or_unsigned_type, signed_type,
5936         unsigned_type): Remove.
5937 objc:
5938         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5939         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5940
5941 2002-03-31  Richard Henderson  <rth@redhat.com>
5942
5943         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
5944         (desc_frgr_mem): Fix reference to f16-f31.
5945
5946 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5947
5948         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
5949         RTVEC_ELT): Const-ify.
5950         * varray.h (VARRAY_CHECK): Const-ify.
5951         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
5952         ggc_mark_rtvec, ggc_mark): Const-ify.
5953
5954 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5955
5956         * diagnostic.c: Include langhooks-def.h.
5957         * Makefile.in (diagnostic.o): Update.
5958
5959 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5960
5961         * c-common.c (c_unsafe_for_reeval): Rename.
5962         * c-common.h (c_unsafe_for_reeval): Rename.
5963         * c-decl.c (finish_incomplete_decl): Rename.
5964         (c_init_decl_processing): Don't set langhook.
5965         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
5966         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5967         * c-objc-common.c (c_objc_common_init): Don't set langhook.
5968         * c-tree.h (finish_incomplete_decl): Rename.
5969         * langhooks-def.h (lhd_unsafe_for_reeval): New.
5970         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
5971         (LANG_HOOKS_INITIALIZER): Update.
5972         * langhooks.c (lhd_unsafe_For_reeval): New.
5973         * langhooks.h (struct langhooks): New hooks.
5974         * toplev.c (incomplete_decl_finalize_hook): Remove.
5975         (wrapup_global_declarations): Update.
5976         * tree.c (lang_unsafe_for_reeval): Remove.
5977         (unsafe_for_reeval): Update.
5978         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
5979         Remove.
5980 objc:
5981         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
5982         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5983
5984 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5985
5986         * diagnostic.c (print_error_function): Remove.
5987         (default_print_error_function): Rename.
5988         (report_error_function): Update.
5989         * diagnostic.h (print_error_function): Remove.
5990         (default_print_error_function): Remove.
5991         * langhooks-def.h (struct diagnostic_context): Predeclare.
5992         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
5993         (LANG_HOOKS_INITIALIZER): Update.
5994         * langhooks.h (struct diagnostic context): Predeclare.
5995         (struct lang_hooks): New hook.
5996
5997 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5998
5999         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
6000         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
6001         !flag_pic.
6002         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
6003         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
6004         of PIC_OFFSET_TABLE_REGNUM thruout.
6005         * config/rs6000/rs6000.md: Likewise.
6006         * config/rs6000/darwin.h: Likewise.
6007
6008 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6009
6010         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
6011         unsigned HOST_WIDE_INT, not unsigned int.
6012
6013 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6014
6015         PR middle-end/6096, middle-end/6098, middle-end/6099
6016         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
6017         CODE_LABELs.
6018         (fill_slots_from_thread): Likewise.
6019
6020 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6021
6022         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
6023         floating fields in float regs.
6024         (function_arg_record_value_2): Likewise.
6025
6026 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6027
6028         * config/mmix/mmix.md (define_constants): Remove misleading
6029         FIXME.  Add MMIX_fp_rO_OFFSET.
6030         ("nonlocal_goto_receiver"): Don't have stack-frame address of
6031         saved rO as part of the pattern.  Remove FIXME.
6032         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
6033         here, at output-time.
6034
6035 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6036
6037         PR middle-end/6100
6038         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
6039         REG_BR_PRED.
6040         (output_v9branch): Likewise.
6041
6042 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6043
6044         * gcc.c: Revert previous patch for now.
6045         * config/i386/djgpp.h: Likewise.
6046
6047 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6048
6049         * config/mmix/crti.asm (_init): Register _fini with atexit.
6050         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
6051
6052 2002-03-31  Richard Henderson  <rth@redhat.com>
6053
6054         PR target/3997
6055         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
6056         (ASM_OUTPUT_DEF_FROM_DECLS): New.
6057
6058 2002-03-31  Richard Henderson  <rth@redhat.com>
6059
6060         * libgcc2.c (__bb_exit_func): Make static.
6061
6062         * config/alpha/alpha.md (trap): New.
6063
6064 2002-03-31  Richard Henderson  <rth@redhat.com>
6065
6066         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
6067         promoted argument types; build trap.
6068         (expand_builtin_trap): New.
6069         (expand_builtin): Use it.
6070         * stmt.c (expand_nl_goto_receivers): Likewise.
6071         * expr.h (expand_builtin_trap): Declare.
6072         * libfuncs.h (LTI_abort, abort_libfunc): New.
6073         * optabs.c (init_optabs): Init abort_libfunc.
6074
6075 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6076
6077         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
6078         (LINK_COMMAND_SPEC): ... from here.
6079         (init_gcc_specs): Duplicate it here too, omitting
6080         shared_name in the second copy.
6081         (init_spec): Test for duplicate
6082         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
6083
6084 2002-03-30  David S. Miller  <davem@redhat.com>
6085
6086         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6087         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
6088
6089 2002-03-30  Roger Sayle <roger@eyesopen.com>
6090             Richard Henderson  <rth@redhat.com>
6091
6092         * regmove.c (combine_stack_adjustments_for_block): Avoid
6093         emitting a stack adjustment of zero bytes.  Let delete_insn
6094         update bb->head.
6095
6096 2002-03-30  Richard Henderson  <rth@redhat.com>
6097
6098         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
6099         (sparc_emitting_epilogue): New.
6100         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
6101         * config/sparc/sparc-protos.h: Update.
6102         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
6103         (TARGET_SWITCHES): Update.
6104         * config/sparc/sparc.md (return): Remove.
6105         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
6106         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
6107         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
6108         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6109         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
6110         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
6111         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
6112         Remove MASK_EPILOGUE.
6113         * doc/invoke.texi: Update.
6114
6115 2002-03-30  Daniel Berlin  <dan@dberlin.org>
6116
6117         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
6118         CPP will start the file for us.
6119
6120 2002-03-30  Richard Henderson  <rth@redhat.com>
6121
6122         PR target/5446
6123         * config/ia64/ia64.c (group_barrier_needed_p): Special case
6124         prologue_allocate_stack.
6125         (ia64_single_set): Use insn codes for recognition of special
6126         cases, not rtl matching.
6127         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
6128
6129 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
6130
6131         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
6132
6133 2002-03-30  Richard Henderson  <rth@redhat.com>
6134
6135         PR target/6032
6136         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
6137         or -fomit-frame-pointer with profiling.
6138         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6139         (FUNCTION_PROFILER): Do nothing.
6140         (PROFILE_HOOK): New.
6141         * config/sparc/sparc.c (sparc_override_options): Don't check
6142         code models for profiling.
6143         (sparc_function_profiler): Remove.
6144         (sparc_profile_hook): New.
6145         * config/sparc/sparc-protos.h: Update.
6146
6147 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
6148
6149         PR optimization/6086
6150         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
6151         of SUBREG of volatile MEM or because the MEM was mode dependent,
6152         return CLOBBER instead of unmodified SUBREG.
6153
6154 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
6155
6156         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
6157         when not optimizing.
6158
6159         * toplev.c (rest_of_compilation): Cann mark_constant_function
6160         only when optimizing.
6161
6162         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
6163         are NULL.
6164
6165         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
6166         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
6167         (try_optimize_cfg): clear all AUX fields.
6168
6169         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
6170         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
6171         (ix86_address_cost): Be prepared for SUBREGed registers.
6172         (legitimate_address_p): Accept SUBREGed registers.
6173
6174 2002-03-29  Richard Henderson  <rth@redhat.com>
6175
6176         PR target/5672
6177         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
6178
6179 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6180
6181         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
6182         for aggregate and TFmode types.
6183
6184 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6185
6186         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
6187
6188 2002-03-29  Richard Henderson  <rth@redhat.com>
6189
6190         PR target/5886
6191         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
6192         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
6193
6194 2002-03-29  Richard Henderson  <rth@redhat.com>
6195
6196         PR target/6041
6197         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
6198         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
6199         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
6200         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
6201         conditional.
6202         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
6203
6204 2002-03-29  Dale Johannesen <dalej@apple.com>
6205
6206         * loop.c (combine_movables): Do allow combination of pseudos.
6207
6208 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
6209
6210         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
6211         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
6212         No functional change except ...
6213         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
6214         * doc/install.texi (*-*-freebsd*): Document port configuration.
6215
6216 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6217
6218         * Makefile.in (convert.o, calls.o, expmed.o): Update.
6219         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
6220         Use new hooks.
6221         * builtin-types.def (BT_PTRMODE): Update.
6222         * c-common.c (type_for_size): Rename c_common_type_for_size.
6223         (type_for_mode): Similarly.
6224         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
6225         Use new hook.
6226         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
6227         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
6228         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
6229         Redefine.
6230         * c-typeck.c (common_type, comptypes, default_conversion):
6231         Use new hooks.
6232         * calls.c: Include langhooks.h.
6233         (emit_library_call_value_1): Use new hooks.  Avoid redundant
6234         calls.
6235         * convert.c: Include langhooks.h
6236         (convert_to_pointer, convert_to_integer): Use new hooks.
6237         * except.c (init_eh): Similarly.
6238         * expmed.c: Include langhooks.h.
6239         (expand_mult_add): Use new hooks.
6240         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
6241         try_casesi): Similarly.
6242         * fold-const.c (optimize_bit_field_compare, make_range,
6243         decode_field_reference, fold_truthop, fold): Similarly.
6244         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
6245         put_var_into_stack): Similarly.
6246         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
6247         LANG_HOOKS_TYPE_FOR_SIZE): New.
6248         (LANG_HOOKS_TYPES_INITIALIZER): Update.
6249         * langhooks.h (lang_hooks_for_types): New hooks.
6250         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
6251         * tree.c (get_unwidened, get_narrower): Similarly.
6252         * tree.h (type_for_mode, type_for_size): Remove.
6253         * varasm.c (force_const_mem): Use new hooks.
6254         * utils2.c (nonbinary_modular_operation): Update.
6255 objc:
6256         * objc-act.c (handle_impent): Update.
6257         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
6258         Redefine.
6259
6260 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
6261
6262         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
6263         * config/ia64/ia64.c (basereg_operand): New.
6264         * config/ia64/ia64-protos.h (basereg_operand): Declare.
6265         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
6266
6267 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6268
6269         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
6270         unwind information when frame_pointer_needed.
6271         (mmix_assemble_integer): Tweak wording in comment.
6272
6273 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6274
6275         * Makefile.in (except.o): Update.
6276         * except.c: Include langhooks.h.
6277         (init_eh): Use langhook.
6278         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
6279         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
6280         (LANG_HOOKS_INITIALIZER): Update.
6281         * langhooks.h (lang_hooks_for_types): New.
6282         (struct lang_hooks): Add it.
6283         * tree.c (make_lang_type_fn, make_lang_type): Remove.
6284         * tree.h (make_lang_type_fn, make_lang_type): Remove.
6285 config:
6286         * alpha/alpha.c: Include langhooks.h.
6287         (alpha_build_va_list): Use langhook.
6288         * d30v/d30v.c: Include langhooks.h.
6289         (d30v_build_va_list): Use langhook.
6290         * i386/i386.c: Include langhooks.h.
6291         (ix86_build_va_list): Use langhook.
6292         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
6293         * s390/s390.c: Include langhooks.h.
6294         (s390_build_va_list): Use langhook.
6295         * stormy16/stormy16.c: Include langhooks.h.
6296         (stormy16_build_va_list): Use langhook.
6297
6298 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6299
6300         PR c++/5964
6301         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
6302         attributes.
6303         (length): Compute variable length for branches/calls/jumps here.
6304         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
6305         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
6306         define branch_type attribute.
6307         (divsi3_sp32): Maximum length is 6 not 7.
6308         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
6309         call_address_untyped_struct_value_sp32,
6310         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
6311         * config/sparc/sparc.c (empty_delay_slot): New function.
6312         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
6313         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
6314
6315 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6316
6317         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
6318         nonzero_bits if not needed.
6319         (nonzero_bits) [XOR]: Likewise.
6320         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
6321         reg_last_set_mode and mode are both MODE_INT, but not equal.
6322         (record_value_for_reg): Compute reg_last_set_nonzero_bits
6323         in nonzero_bits_mode for MODE_INT modes.
6324
6325 2002-03-28  Richard Henderson  <rth@redhat.com>
6326
6327         PR target/5715
6328         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
6329         to GAS.  Correct drift between alternatives.
6330
6331 2002-03-28  Richard Henderson  <rth@redhat.com>
6332
6333         PR target/6087
6334         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
6335
6336 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
6337
6338         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
6339         emulation to the linker.
6340
6341 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
6342
6343         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
6344         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
6345
6346 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
6347
6348         * combine.c (simplify_and_const_int): Make sure to apply mask
6349         when force_to_mode returns a constant integer.  PR3311.
6350
6351 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6352
6353         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
6354
6355 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6356
6357         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
6358         and Objective-C Dialect Options.
6359
6360 2002-03-28  Richard Henderson  <rth@redhat.com>
6361
6362         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
6363         comparison should be done vs !=0 not >0 return code.  Tidy cases.
6364
6365 2002-03-28  Richard Henderson  <rth@redhat.com>
6366
6367         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
6368         on to c_expand_body.
6369         * c-tree.h (finish_function): Update decl.
6370         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
6371
6372 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6373
6374         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
6375
6376 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
6377
6378         * rtlanal.c: Include flags.h
6379         (may_trap_p): Do not mark FP operations if trapping
6380         if !flag_trapping_math
6381         * Makefile.in (rtlanal.o): Add dependency on flag.h
6382         * ifcvt.c (noce_operand_ok): Avoid the lameness.
6383
6384 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
6385
6386         * mips.md: Use dconst1, not 1.0, as first argument of
6387         REAL_VALUE_LDEXP.  Don't use union real_extract.
6388
6389 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
6390
6391         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
6392         rather than $target.  Heed program_prefix and
6393         program_transform_name.  Search for gas in cross-compiler case too.
6394         "test -x" rather than "test -f".
6395         (gcc_cv_ld): Likewise.
6396         (gcc_cv_nm): Heed program_prefix and program_transform_name.
6397         (gcc_cv_objdump): Likewise.
6398         * configure: Regenerate.
6399
6400 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6401
6402         * Makefile.in (attribs.o): Update.
6403         * attribs.c: Include langhooks.h.
6404         (decl_attributes): Use langhook.
6405         * c-decl.c (insert_default_attributes): Rename.
6406         * c-tree.h (c_insert_default_attributes): New.
6407         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
6408         (LANG_HOOKS_INITIALIZER): Update.
6409         * langhooks.h (struct lang_hooks): New hook.
6410         * tree.h (insert_default_attributes): Remove.
6411 objc:
6412         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
6413
6414 2002-03-27  Andreas Schwab  <schwab@suse.de>
6415
6416         * config/i386/i386.c (classify_argument): Also check for
6417         QUAL_UNION_TYPE.
6418
6419 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6420
6421         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
6422         any more.
6423
6424 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6425
6426         * i960.md (ret): Set PC.
6427         (nonlocal_goto): Fix expander.
6428         * builtins.c (epxand_builin_longjmp): Check that we've emitted
6429         some jump or call.
6430
6431 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
6432
6433         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
6434         of libcall regions.
6435
6436 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6437
6438         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
6439         assigning to BLOCK_FOR_INSN directly.
6440
6441 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
6442
6443         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
6444
6445 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6446
6447         * c-common.c (c_expand_expr): Fix prototype.
6448         * c-common.h (c_expand_expr): Always declare, update.
6449         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
6450         * c-objc-common.c (c_objc_common_init): No global hook.
6451         * expr.c (expand_expr): Use langhook.
6452         * expr.h (enum expand_modifier): Conditionally declare.
6453         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
6454         (LANG_HOOKS_INITIALIZER): Update.
6455         * langhooks.c (lhd_expand_expr): New.
6456         * langhooks.h (struct lang_hooks): New hook.
6457         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
6458         (lang_independent_init): Don't default hook.
6459 objc:
6460         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
6461
6462 2002-03-27  Richard Henderson  <rth@redhat.com>
6463
6464         PR target/6054
6465         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
6466         TARGET_CONST_GP.  Simplify conditions.
6467
6468 2002-03-27  Richard Henderson  <rth@redhat.com>
6469
6470         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6471         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
6472         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
6473
6474 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
6475
6476         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
6477         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
6478         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
6479         Remove unnecessary masks.
6480         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
6481         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
6482         -mwindows, -mdll switches and their negations.
6483
6484 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6485
6486         * gcc-common.c (lang_mark_false_label_stack): Remove.
6487         * ggc.h (lang_mark_false_label_stack): Similarly.
6488
6489 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
6490
6491         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
6492
6493         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
6494         or __rtems_ is defined.
6495
6496 2002-03-26  Richard Henderson  <rth@redhat.com>
6497
6498         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
6499         if a non-trivial load was emitted.
6500         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
6501         in high+extra+low case.
6502
6503 2002-03-26  Richard Henderson  <rth@redhat.com>
6504
6505         * config.gcc (sparc*-solaris): Use float_format=sparc.
6506
6507 2002-03-26  Richard Henderson  <rth@redhat.com>
6508
6509         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6510         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
6511         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
6512         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
6513         (WINT_TYPE_SIZE): Fix at 32.
6514
6515 2002-03-26  Richard Henderson  <rth@redhat.com>
6516
6517         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
6518         until after eh landing pad generation.
6519         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
6520         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
6521
6522 2002-03-26  Richard Henderson  <rth@redhat.com>
6523
6524         * expr.h (ADD_PARM_SIZE): One more convert for INC.
6525
6526 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
6527
6528         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
6529         and warning switches.
6530         (cc1_options):  Likewise.
6531
6532 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
6533
6534         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
6535         Restore more of the signal context.  Set no_reg_stack_frame.
6536         * config/ia64/unwind-ia64.c (unw_state_record):
6537         Add no_reg_stack_frame, comments.
6538         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
6539         (uw_update_context): Adjust bsp when unwinding from leaf,
6540         but not signal frame.
6541
6542 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
6543
6544         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
6545
6546 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
6547
6548         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
6549
6550 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
6551
6552         PR target/5621
6553         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
6554         "Add a pool_range attribute", which was lost during the ARM/Thumb
6555         merge.
6556
6557 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
6558
6559         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
6560         a register into the MAC16 accumulator.
6561
6562 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
6563
6564         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
6565         (Warning Options): Document -Wswitch-enum.
6566         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
6567         -Wswitch.
6568         (warn_switch_enum): Define variables.
6569         * flags.h (warn_switch_enum): Declare variables.
6570         * stmt.c (expand_end_case_type): When warn_switch_enum /
6571         -Wswitch-enum, perform switch checks.
6572         Fix PR c/5044.
6573
6574 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
6575
6576         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
6577         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
6578         (reload_muladdsi_compare0_scratch): Delete.
6579
6580 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
6581
6582         * doc/install.texi (*-*-freebsd*): Update.
6583
6584 2002-03-26  Richard Henderson  <rth@redhat.com>
6585
6586         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
6587         (SUB_PARM_SIZE): Cast DEC to ssizetype.
6588
6589         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
6590         types from the normal argument frame.
6591
6592         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
6593         variable sized objects by reference.
6594         (sparc_va_arg): Receive them by reference too.
6595
6596 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
6597
6598         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
6599         code to not restoring global registers.
6600
6601 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6602
6603         * Makefile.in (ggc-common.o): Update.
6604         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
6605         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
6606         * c-tree.h (c_mark_tree): New.
6607         * ggc-common.c: Include langhooks.h.
6608         (gcc_mark_trees): Use new langhook.
6609         * ggc-callbacks.c: Delete file.
6610         * ggc.h (lang_mark_tree): Remove.
6611         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
6612         (LANG_HOOKS_INITIALIZER): Update.
6613         * langhooks.h (struct lang_hooks): New hook.
6614 objc:
6615         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
6616
6617 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
6618
6619         * doc/cpp.texi: Exclude entire Top node from printed manual.
6620         Move option index after directive index.  Insert page breaks
6621         before GFDL and concept index.  Index environment variables
6622         with command line options.
6623         * doc/cppenv.texi: Use @vtable for environment variable list.
6624         Add paragraph explaining semantics of empty elements in path
6625         variables.  Exclude a cross-reference to Fishkill from the
6626         manpage.  Remove an unnecessary cross-reference of the entry
6627         right above the referer.  Don't use @anchor in text that goes
6628         into manpage.
6629         * doc/cppopts.texi: Cross-reference the environment variables
6630         section, not the specific environment variable, for consistency.
6631
6632 2002-03-25  Richard Henderson  <rth@redhat.com>
6633
6634         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
6635         anywhere in the block.  Don't refer to insns that have been
6636         removed from the chain.  Iterate backward through the new insns.
6637         Don't refer to edges that have been removed.
6638
6639 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
6640
6641         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
6642         test for overflow of constant.
6643
6644 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
6645
6646         PR target/2623
6647         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
6648         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
6649         these patterns on arm_archv4.
6650
6651 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
6652
6653         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
6654         int".
6655
6656 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
6657
6658         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
6659         float_handled, float_handler, float_signal, set_float_handler,
6660         and do_float_handler.  Set handler for SIGFPE to crash_signal.
6661         * toplev.h: Don't prototype do_float_handler.
6662
6663         * c-lex.c: Fold parse_float into lex_number.  Make warning
6664         about portability of hex float constants more informative, and
6665         don't issue it on top of a syntax error.
6666         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
6667         their callers.
6668         * real.h: Define REAL_VALUE_ABS here...
6669         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
6670         simplify_unary_real, simplify_binary_real, and
6671         simplify_binary_is2orm1 into their callers.
6672         * tree.c: Fold build_real_from_int_cst_1 into caller.
6673
6674         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
6675
6676         * tsystem.h: Include float.h here...
6677         * libgcc2.c: ... not here.
6678
6679 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
6680
6681         Fixes for: PR bootstrap/3591, target/5676
6682         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
6683         defined.  Do not disable exceptions or rtti.
6684         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
6685         mcore.h.  Disable exceptions and rtti, since they are not
6686         supported by EPOC.
6687
6688 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
6689
6690         * c-decl.c (maybe_build_cleanup): Remove.
6691         * expr.c (expand_expr): Use langhook.
6692         * langhooks-def.h (lhd_return_null_tree,
6693         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
6694         (LANGHOOKS_INITIALIZER): Update.
6695         * langhooks.c (lhd_return_null_tree): New.
6696         * langhooks.h (struct lang_hooks): New hook.
6697         * tree-inline.c (initialize_inlined_parameters): Use langhook.
6698         * tree.h (maybe_build_cleanup): Remove.
6699
6700 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
6701
6702         * regrename.c (build_def_use): Move recog_memoized
6703         before extract_insn.
6704
6705 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
6706
6707         PR target/6043
6708         * expr.c (emit_group_store): Handle storing into CONCAT.
6709
6710 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
6711
6712         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
6713         corresponding MATCH_DUP.
6714
6715 2002-03-24  Richard Henderson  <rth@redhat.com>
6716
6717         * unroll.c (unroll_loop): Zero label_map.
6718
6719         * gcse.c: Include except.h.
6720         * Makefile.in (gcse.o): Update.
6721
6722 2002-03-24  Richard Henderson  <rth@redhat.com>
6723
6724         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
6725         Do resolve_unique_section before shared data clause.
6726
6727 2002-03-24  Richard Henderson  <rth@redhat.com>
6728
6729         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
6730
6731 2002-03-24  Richard Henderson  <rth@redhat.com>
6732
6733         * recog.c (peephole2_optimize): Split blocks when EH insns are
6734         generated in the middle of a block.  Do global life update if
6735         zapped EH edges.
6736
6737 2002-03-24  Richard Henderson  <rth@redhat.com>
6738
6739         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
6740
6741 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6742
6743         preprocessor/3951
6744         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
6745         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
6746         (init_dependency_output): Don't make no_output decision here.
6747
6748 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
6749
6750         * stmt.c (check_for_full_enumeration_handling): Remove tests of
6751         warn_switch.  Update description.
6752         (expand_end_case_type): Call check_for_full_enumeration_handling
6753         when warn_switch.
6754
6755 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6756
6757         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
6758         (m68hc11_split_move): Call it to see if the source and destination
6759         operands use the same direction auto inc/dec mode, otherwise make the
6760         source an offsetable memory operand and generate an add.
6761
6762 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6763
6764         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
6765         register for operand 2.
6766         ("*subsi3_zero_extendqi"): Likewise.
6767         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
6768         bits so that it is compatible with a pop.
6769         ("*andhi3_gen"): Likewise.
6770         ("xorhi3"): Likewise.
6771
6772 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6773
6774         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
6775         -pedantic here...
6776         (cpp_post_options): ... not here.
6777
6778 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6779             Aldy Hernandez  <aldyh@redhat.com>
6780
6781         Removal of separate preprocessor cpp0.
6782
6783         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
6784         cpp0, install-common): Update.
6785         * c-common.c (flag_preprocess_only): New.
6786         (c_common_init): Preprocess for -E.
6787         * c-common.h (flag_preprocess_only): New.
6788         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
6789         * c-objc-common.c (c_init_decl_processing): Exit quickly
6790         for NULL return from c_common_init.
6791         * cpplib.h (cpp_preprocess_file): New.
6792         * cppmain.c (main, general_init, pfile, progname): Remove.
6793         (do_preprocessing): Rename cpp_preprocess_file, don't call
6794         cpp_finish.  Don't close stdout here.
6795         (setup_callbacks): Update prototype.
6796         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
6797         Update.
6798         * tradcpp.c (main): Ignore -quiet.
6799 objc:
6800         * lang-specs.h (default_compilers): Preprocess with cc1obj.
6801
6802 2002-03-24  Richard Henderson  <rth@redhat.com>
6803
6804         PR optimization/5742
6805         * machmode.def: Add inner mode field to complex modes.
6806         * config/mips/mips.c (mips_function_value): Always define.  Add
6807         new argument to handle libcalls.
6808         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
6809         (FUNCTION_VALUE): Likewise.
6810         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
6811         * config/mips/mips-protos.h: Update.
6812
6813 2002-03-23  Richard Henderson  <rth@redhat.com>
6814
6815         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
6816         * config/sparc/sparc-protos.h: Update.
6817         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
6818
6819 2002-03-23  Richard Henderson  <rth@redhat.com>
6820
6821         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
6822         _start or _init begins the text segment.
6823
6824 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
6825
6826         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
6827         not HOST_WIDEST_INT.
6828         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
6829
6830 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
6831
6832         PR java/5489
6833         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
6834         operand argument to output_return_instruction.
6835         * arm.c (arm_print_operand, case 'd'): If the operand is
6836         const_true_rtx then just return.
6837         (arm_print_operand, case 'D'): If the operand is const_true_rtx
6838         then abort.
6839
6840 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
6841
6842         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
6843         (Warning Options): Document -Wswitch-default.
6844         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
6845         -Wswitch.
6846         (warn_switch_default): Define variable.
6847         (warn_switch): Update comment.
6848         * flags.h (warn_switch_default): Declare variable.
6849         (warn_switch): Update comment.
6850         * stmt.c (expand_end_case): Check for and, when
6851         warn_switch_no_default, warn of a missing default case.
6852
6853 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
6854
6855         * real.h (N): Special case 128 bit doubles.
6856
6857         * combine.c (simplify_comparison): When widening modes, ignore
6858         sign extension on CONST_INTs.
6859
6860 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
6861
6862         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
6863         passed to adjust_address.  Fix comment formatting.
6864
6865
6866 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
6867
6868         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
6869         Always make REAL_VALUE_TYPE a struct containing an array of
6870         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
6871         big it is.  Don't declare or use union real_extract.
6872
6873         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
6874         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
6875         (print_operand), config/arm/arm.c (output_move_double),
6876         config/arm/arm.md (consttable_4, consttable_8),
6877         config/romp/romp.c (output_fpops), config/s390/s390.h
6878         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
6879         (xtensa_output_literal): Don't use union real_extract.
6880
6881         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
6882         (sfmode_constant_to_ulong), config/ns32k/merlin.h
6883         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
6884         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
6885         (PRINT_OPERAND): Don't use local version of union
6886         real_extract.
6887
6888         * config/convex/convex.c (check_float_value), config/vax/vax.c
6889         (vax_float_literal), config/m88k/m88k.md (divdf3),
6890         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
6891         config/pdp11/pdp11.c (output_move_quad): Don't do host
6892         arithmetic on target floating point quantities.
6893
6894         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
6895         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
6896
6897         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
6898         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
6899
6900         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
6901         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
6902         INFINITY.
6903         * print-rtl.c (print_rtx): Disable code which needs
6904         floating-point emulator.
6905         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
6906         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
6907         depending on HOST_FLOAT_FORMAT to be defined properly.
6908
6909         * config/1750a/1750a.c (get_double, float_label): Delete.
6910         (print_operand): Delete huge commented-out chunk.  Use
6911         REAL_VALUE_TO_DECIMAL.
6912         * config/1750a/1750a-protos.h: Delete prototypes of deleted
6913         functions.
6914         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
6915         IEEE_FLOAT_FORMAT.
6916         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
6917         Use REAL_VALUE_TO_DECIMAL as ELF version does.
6918         * config/m88k/m88k.c (real_power_of_2_operand,
6919         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
6920         real_extract out of the union; run the input through
6921         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
6922         from that into the union.
6923         * config/pdp11/pdp11.c (output_move_double): Rearrange
6924         parentheses to make automatic indenter happy.
6925
6926         * doc/tm.texi (Cross-compilation): Rename node to "Floating
6927         Point" and rewrite to describe current situation.  Also adjust
6928         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
6929         match code.
6930         * doc/rtl.texi: Adjust cross reference.
6931
6932 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
6933
6934         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
6935         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
6936         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
6937         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
6938         prevent use of sp as a reload register.
6939         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
6940         non_acc_reg_operand.
6941         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
6942         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
6943         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
6944         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
6945
6946 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6947
6948         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
6949         * cpplex.c (unterminated): Delete.
6950         (parse_string): No string literal may extend over multiple
6951         lines.  Suppress the error when preprocessing assembly.
6952         * cppmain.c (scan_translation_unit): Strings are single-line.
6953
6954         * doc/cpp.texi: Update to match.
6955
6956 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
6957
6958         PR optimization/5854
6959         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
6960         Shut up warnings.
6961         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
6962         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
6963         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
6964         const0 if scratch register was not allocated.
6965         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
6966         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
6967         with GEN_INT (...).
6968         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
6969         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
6970         with GEN_INT (...) everywhere.  Remove constraints in define_split
6971         patterns.
6972         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
6973         require scratch register for setting 0 into regs/non-pushable memory.
6974
6975 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
6976
6977         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
6978         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
6979
6980 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
6981
6982         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
6983         * cppinit.c (cpp_create_reader):  On by default.
6984         (cpp_handle_option):  Handle -W[no-]endif-labels.
6985         (cpp_post_options):  Also enable if -pedantic.
6986         * cpplib.c (do_else):  Use it.
6987         (do_endif):  Likewise.
6988         * doc/cppopts.texi:  Document new option.
6989         * doc/invoke.texi:  Document new option.
6990
6991 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
6992
6993         * config/i386/i386.c, config/i386/i386.md: Change all occurences
6994         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
6995
6996 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
6997
6998         * flow.c (calculate_global_regs_live): Clear aux fields of
6999         ENTRY and EXIT.
7000
7001 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7002
7003         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
7004         REG or MEM subregs, pass rtx * instead of rtx to it.
7005         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
7006         rtx * instead of rtx to alter_subreg.
7007         * config/m32r/m32r.c (gen_split_move_double): Likewise.
7008         * config/pj/pj.c (pj_output_rval): Likewise.
7009
7010 2002-03-22  Richard Henderson  <rth@redhat.com>
7011
7012         PR target/3177
7013         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
7014         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
7015         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
7016         (ia64_expand_prologue): Look at int_regs, not words, for number
7017         of incomming int regs.
7018
7019 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
7020
7021         * expr.c (expand_expr): A RESULT_DECL is part of a call.
7022
7023 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
7024
7025         * toplev.c (flag_loop_optimize, flag_crossjumping):
7026         New static variables.
7027         (rest_of_compilation): Conditionalize crossjumping and
7028         loop optimizer.
7029         (parse_options_and_default_flags): Default loop_optimize and
7030         crossjumping.
7031         (lang_independent_options): Add -fcrossjumping and -floop-optimize
7032         * invoke.texi (crossjumping, loop-optimize): Document.
7033
7034 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7035
7036         * real.c (eiisneg): Move outside #ifdef NANS.
7037
7038 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7039
7040         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
7041         frequencies match; avoid match on different loop depths.
7042         (try_crossjump_to_bb): Kill tests that no longer brings time
7043         savings.
7044         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
7045         updating code.
7046         (split_edge): Likewise.
7047
7048         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
7049         variable.
7050
7051         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
7052         * cfgrtl.c: Include insn-config.h
7053         (split_block) Dirtify block in presence of conditional execution
7054
7055 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7056
7057         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
7058         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
7059         (function_arg): Constify CUMULATIVE_ARGS.
7060         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
7061         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
7062         (UNITS_PER_DOUBLE): New macro.
7063         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
7064         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
7065         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
7066         fp_regs and stack_words.
7067         (EABI_FLOAT_VARARGS_P): New macro.
7068         * config/mips/mips.c (struct mips_arg_info): New.
7069         (mips_arg_info): New function.
7070         (function_arg_advance): Use it.  Add adjustment instructions here
7071         rather than in function_arg.
7072         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
7073         for VOIDmode at the beginning of the function.
7074         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
7075         (function_arg_pass_by_reference): Likewise.
7076         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
7077         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
7078         (mips_va_start): Likewise.  Use the new stack_words field of
7079         CUMULATIVE_ARGS to set up overflow area.  Reformat.
7080         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
7081         doubles and other types, aligning the overflow pointer for non-doubles
7082         too.  Remove some code duplication.  Replace hard-coded constants.
7083
7084 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7085
7086         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
7087         (CLASS_UNITS): Undefine.
7088         (CLASS_MAX_NREGS): Use FP_INC.
7089         * config/mips/mips.c (compute_frame_size): Likewise.
7090         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
7091
7092 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7093
7094         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
7095         prototype, and handle lexing numbers and identifiers.
7096         (parse_identifier): Update to new form of parse_slow.
7097         (parse_number): Fast path only, use parse_slow otherwise.
7098         (_cpp_lex_direct): Update calls to parse_number.
7099
7100 2002-03-21  DJ Delorie  <dj@redhat.com>
7101
7102         * bb-reorder.c (make_reorder_chain_1): Protect against
7103         when redundant edges are omitted.
7104         * predict.c (dump_prediction): Likewise.
7105
7106 2002-03-21  Richard Henderson  <rth@redhat.com>
7107
7108         PR target/5996
7109         * fixinc/inclhack.def (solaris_stdio_tag): New.
7110         * fixinc/fixincl.x: Regenerate.
7111
7112 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7113
7114         PR c/5597
7115         * c-typeck.c (process_init_element): Flag non-static
7116         initialization of a flexible array member as illegal.
7117
7118 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
7119
7120         * config/rs6000/t-linux64: New.
7121         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
7122         t-ppccomm.  Use t-rs6000 and t-linux64.
7123         (powerpc64-*-gnu* <tmake_file>): Likewise.
7124         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
7125         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
7126         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
7127
7128 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
7129
7130         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
7131         flag_really_no_inline instead of optimize == 0.
7132
7133         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
7134
7135         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
7136
7137         * flags.h (flag_really_no_inline): New.
7138
7139         * c-common.c (c_common_post_options): Initialize
7140         flag_really_no_inline.
7141
7142         * toplev.c (flag_really_no_inline): New.
7143
7144 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7145
7146         * config/avr/avr.md (length): Fix length computation for
7147         conditional branches.
7148
7149 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7150
7151         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
7152         sdbout.o, profile.o): Update.
7153         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
7154         langhook.
7155         * c-common.h (gettags): Move here from tree.h.
7156         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
7157         insert_block, getdecls, kept_level_p, global_bindings_p): New.
7158         * dbxout.c (dbxout_init): Use getdecls langhook.
7159         * expr.c (expand_expr): Use insert_block langhook.
7160         * fold-const.c: Include langhooks.h.
7161         (fold_range_test, fold_binary_op_with_conditional_arg,
7162         fold): Use global_bindings_p langhook.
7163         * integrate.c (expand_inline_function): Use insert_block langhook.
7164         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
7165         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
7166         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
7167         LANG_HOOKS_GETDECLS): New.
7168         (LANG_HOOKS_INITIALIZER): Update.
7169         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
7170         langhook.
7171         * langhooks.h (struct lang_hooks_for_decls): New.
7172         (struct lang_hooks): Update.
7173         * profile.c: Include langhooks.h.
7174         (output_func_start_profiler): Use new langhooks.
7175         * sdbout.c: Include langhooks.h.
7176         (sdbout_init, sdbout_finish): Use getdecls langhook.
7177         * stmt.c: Include langhooks.h.
7178         (expand_fixup, fixup_gotos): Use new langhooks.
7179         * stor-layout.c: Include langhooks.h.
7180         (variable_size): Use global_bindings_p langhook.
7181         * toplev.c (compile_file): Use getdecls langhook.
7182         * tree-inline.c (remap_block): Use insert_block langhook.
7183         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
7184         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
7185
7186 2002-03-21  Richard Henderson  <rth@redhat.com>
7187
7188         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
7189         constants in .data when -fpic.
7190
7191 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7192
7193         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
7194         where appropriate.
7195
7196 2002-03-21  Tom Tromey  <tromey@redhat.com>
7197
7198         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
7199
7200 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7201
7202         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
7203
7204         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
7205
7206 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7207             Richard Henderson  <rth@redhat.com>
7208
7209         PR c/5354
7210         * c-common.c (c_expand_expr): Preserve result of a statement
7211         expression if needed.
7212
7213 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7214
7215         PR bootstrap/4195
7216         * genrecog.c (maybe_both_true_mode): Remove.
7217         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
7218         * machmode.def (Pmode): Likewise.
7219
7220 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
7221
7222         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
7223         (nonlocal_mentioned_p_1): New function.
7224         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
7225         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
7226         (mark_constant_function): Recognize pure functions.
7227         * rtl.h (global_reg_mentioned_p): New prototype.
7228         * rtlanal.c (global_reg_mentioned_p,
7229         global_reg_mentioned_p_1): New function.
7230
7231 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7232
7233         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
7234         UNIX assert.h.
7235         * fixinc/fixincl.x: Regenerate.
7236
7237 2002-03-20  Jason Merrill  <jason@redhat.com>
7238
7239         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
7240
7241 2002-03-20  Michael Meissner  <meissner@redhat.com>
7242
7243         * doc/invoke.texi (Optimize Options): Document that -O2 sets
7244         -fstrict-aliasing.
7245
7246 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7247
7248         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
7249         ".literal_position" directive before the constant pool.
7250
7251 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7252
7253         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
7254         Add Craig Rodrigues.
7255         Add Brad Lucier to testers.
7256
7257 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7258
7259         PR target/4792
7260         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
7261         to if_then_else.
7262         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
7263         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
7264         instead of insn_extract.
7265
7266 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7267
7268         PR bootstrap/4192
7269         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
7270
7271         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
7272         stmt if some case has been output.
7273
7274 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7275
7276         PR c/5972
7277         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
7278         movsfcc_1, movdfcc_1): Add %O2.
7279         * config/i386/i386.c (print_operand): Handle %ON.
7280         Print . before float condition codes in Sun as cmov syntax.
7281         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
7282         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
7283         no longer true.
7284
7285 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
7286
7287         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
7288         return instruction if PC was popped.
7289
7290 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7291
7292         * config/xtensa/xtensa.md: Remove unused type attributes.
7293         (adddi_carry, subddi_carry): Change type attribute to "multi".
7294
7295 2002-03-19  Dale Johannesen  <dalej@apple.com>
7296
7297         PR optimization/5999, middle-end/5731
7298         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
7299         multiplications by reciprocals.
7300
7301 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7302
7303         * Makefile.in: Update.
7304         * c-common.c: Include langhooks.h.
7305         (inline_forbidden_p): Use new hook.
7306         * diagnostic.c: Include langhooks.h.
7307         (format_with_decl, announce_function,
7308         default_print_error_function): Use new hook.
7309         * dwarf2out.c (dwarf2_name): Use new hook.
7310         * function.c: Include langhooks.h.
7311         (init_function_start): Use new hook.
7312         * langhooks-def.h (lhd_decl_printable_name): New.
7313         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
7314         (LANGHOOKS_INITIALIZER): Update.
7315         * langhooks.c (lhd_decl_printable_name): New.
7316         * langhooks.h (struct lang_hooks): New hook.
7317         * toplev.c (decl_name, decl_printable_name): Remove.
7318         (open_dump_file): Use new hook.
7319         (process_options): Remove old hook.
7320         * tree.h (decl_printable_name): Remove.
7321 objc:
7322         * objc-act.c (objc_init): Remove old hook.
7323         (objc_printable_name): Export.
7324         * objc-act.h (objc_printable_name): New.
7325         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
7326
7327 2002-03-19  Jim Blandy  <jimb@redhat.com>
7328
7329         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
7330         the start_source_file debug hook, not the current line number.
7331
7332 2002-03-19  Richard Henderson  <rth@redhat.com>
7333
7334         * flow.c (EH_USES): Provide default.
7335         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
7336         * doc/tm.texi (EH_USES): New.
7337
7338         * config/ia64/ia64.c (ia64_eh_uses): New.
7339         * config/ia64/ia64-protos.h: Update.
7340         * config/ia64/ia64.h (EH_USES): New.
7341
7342 2002-03-19  Richard Henderson  <rth@redhat.com>
7343
7344         * varasm.c (output_constant_def): Fix stupid typo.
7345
7346 2002-03-19  Richard Henderson  <rth@redhat.com>
7347
7348         PR 5879
7349         * except.c (current_function_has_exception_handlers): New.
7350         * except.h: Declare it.
7351         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
7352         Combine tests that disable all sibcalls for the function.
7353
7354 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
7355
7356         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
7357         for INTEGER_CST.
7358
7359 2002-03-19  Richard Henderson  <rth@redhat.com>
7360
7361         PR 5977, 5991
7362         * config/ia64/ia64.c: Revert 2002-03-01 patch.
7363         * config/ia64/ia64.h (INIT_EXPANDERS): New.
7364
7365 2002-03-19  Jim Blandy  <jimb@redhat.com>
7366
7367         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
7368         name, even if the replacement list contains no tokens, as required
7369         by Dwarf.
7370
7371 2002-03-19  Jason Merrill  <jason@redhat.com>
7372
7373         * varasm.c (globalize_decl): Get the name from the RTL, not
7374         DECL_ASSEMBLER_NAME.
7375
7376         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
7377
7378 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
7379
7380         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
7381         subdi_carry): Define.
7382
7383 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7384
7385         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
7386         about -fpic/-fPIC if extra_warnings set.
7387
7388 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7389
7390         * expr.c (expand_expr): Sign-extend CONST_INT generated from
7391         TREE_STRING_POINTER.
7392         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
7393
7394 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7395
7396         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
7397         in favor of SP if FRAME_POINTER_REQUIRED is false.
7398
7399 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
7400
7401         * emit-rtl.c (gen_int_mode): New function.
7402         * rtl.h: Prototype for it.
7403         * combine.c (make_extraction, simplify_comparison), expmed.c
7404         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
7405         (convert_modes, store_field), optabs.c (expand_fix),
7406         simplify-rtx.c (neg_const_int, simplify_unary_real),
7407
7408         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
7409         Use it instead of GEN_INT (trunc_int_for_mode (...)).
7410
7411 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
7412
7413         PR c/5656
7414         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
7415         convert_parm_for_inlining.
7416         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
7417         Define.
7418         * langhooks-def.h: Likewise.
7419         * objc/objc-lang.c: Likewise.
7420         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
7421         function.
7422         * tree-inline.c (initialize_inlined_parameters):
7423         Call convert_parm_for_inlining lang hook if needed.
7424         * c-typeck.c (c_convert_parm_for_inlining): New function.
7425         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
7426
7427 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
7428
7429         * calls.c (precompute_arguments): Do not assume that temporaries
7430         can be destroyed after expanding the argument.
7431         (expand_call): Likewise.
7432
7433 2002-03-15  Eric Christopher  <echristo@redhat.com>
7434
7435         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
7436         Fix register preference on last change.
7437         * config/mips/mips.c (mips_return_in_memory): New function.
7438         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
7439         * config/mips/mips-protos.h: Declare.
7440         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
7441         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
7442
7443 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
7444
7445         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
7446         a register too.
7447         (anddi3, iorsi3): Likewise.
7448
7449         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
7450         use %gprel for symbols that are going to be placed in linkonce
7451         sections.
7452
7453         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
7454         RETURN_ADDRESS_POINTER_REGNUM to $ra.
7455         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
7456         not needed.  Disregard leaf_function_p().
7457         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
7458         mips16 frame pointer.
7459         * config/mips/mips.md (store ra): Only to small SP offsets.
7460         2001-08-22  Graham Stott  <grahams@redhat.com>
7461         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
7462         return a REG rtx for the return address register.
7463
7464 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
7465
7466         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
7467         constant-pool addresses as "mode-dependent".
7468         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
7469
7470 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
7471
7472         PR target/5740
7473         * expr.c (emit_group_load): Use extract_bit_field if
7474         needed for CONCAT arguments.
7475
7476 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
7477
7478         PR target/4863
7479         * arm.md (tablejump): Make this a define_expand.  For PIC add the
7480         offset to the base of the table.
7481         (thumb_tablejump): Matcher for Thumb tablejump insn.
7482         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
7483         as the difference of two labels.
7484         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7485         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
7486         tables in the code.
7487         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
7488         * arm.c (get_jump_table_size): If the table is not in the text
7489         section, return zero.
7490
7491 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
7492
7493         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
7494         of gen_rtx_SUBREG.
7495         (arm_reload_out_hi): Use gen_lowpart instead of
7496         gen_rtx_SUBREG to access QImode components.
7497         * config/arm/arm.md: Disable zero_extend split for QImode
7498         subregs in BIG_ENDIAN mode.
7499         (storehi_bigend): Match use of least significant byte.
7500         (storeinthi): Remove extraneous SUBREG.
7501         Add missing construction of operands[2].
7502         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
7503         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
7504         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
7505
7506 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
7507
7508         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
7509         any_operand.
7510
7511 2002-03-17  Richard Henderson  <rth@redhat.com>
7512
7513         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
7514         explicitly.
7515
7516 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
7517
7518         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
7519         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
7520
7521 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7522
7523         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
7524
7525         * predict.c (estimate_bb_frequencies): Delete unused variables.
7526
7527 2002-03-17  Richard Henderson  <rth@redhat.com>
7528
7529         * config/ia64/ia64.c (ia64_attribute_table): Move before
7530         targetm definition.  Make static.
7531
7532 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7533
7534         * c-common.h (yyparse, c_common_parse_file): New.
7535         * c-lang.c: Include c-common.h.
7536         (LANG_HOOKS_PARSE_FILE): Redefine.
7537         * c-lex.c: Include c-common.h.
7538         (yyparse): Rename c_common_parse_file.  Call yyparse.
7539         * c-parse.in (yyparse): Remove macro.
7540         * c-tree.h (yyparse_1): Remove.
7541         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
7542         (LANG_HOOKS_INITIALIZER): Update.
7543         * langhooks.h (struct lang_hoooks): New hook parse_file.
7544         * toplev.c (compile_file): Use parse_file hook.
7545         * tree.h (yyparse): Remove.
7546         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
7547
7548 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
7549
7550         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
7551         float_truncate, not fix.
7552         ("*truncdfsf2_real"): Ditto.
7553         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
7554
7555         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
7556
7557 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
7558
7559         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
7560         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
7561         where appropriate.  Make the second reference to
7562         leaf_function_p a function call, as intended.  Reindented.
7563
7564         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
7565         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
7566
7567         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
7568         add register to non-constant into sp.
7569
7570         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
7571         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
7572         (mips16_gp_pseudo_rtx): Lose.
7573         (INIT_EXPANDERS): Deleted.
7574         * config/mips/mips.c (mips_init_machine_status): New.
7575         (mips_free_machine_status): New.
7576         (mips_mark_machine_status): New.
7577         (override_options): Set them.
7578         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
7579         (struct machine_function): ... new.  Replaced all references.
7580         (mips_add_gc_roots): Don't mark them.
7581         (embedded_pic_fnaddr_reg): New, extracted from...
7582         (embedded_pic_offset): ... here.
7583         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
7584         (movsi): Likewise.
7585
7586 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7587
7588         * cppinit.c: Revert -MD removal.
7589
7590 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7591
7592         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
7593         soft registers by default for 68HC12.
7594         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
7595         when compiling with -fomit-frame-pointer.
7596         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
7597         (expand_epilogue): Likewise.
7598         (m68hc11_gen_rotate): Use exg when rotating by 8.
7599
7600 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7601
7602         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
7603         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
7604         (splits): Remove unused add splits.
7605         ("*addhi3_68hc12"): Tune constraints.
7606         ("addhi_sp"): Try to use X instead of Y in all cases and if the
7607         constant fits in 8-bits and D is dead use abx/aby instructions.
7608         ("*addhi3"): Remove extern declaration of ix_reg.
7609         ("*subsi3"): Optimize and provide new split.
7610         ("subhi3"): Cleanup.
7611         ("*subhi3_sp"): Avoid saving X if we know it is dead.
7612         (arith splits): For 68hc12 save the address register on the stack
7613         and do the arithmetic operation with a pop.
7614
7615 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7616
7617         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
7618         allocating QImode in address registers.
7619         ("*movqi_m68hc11"): Likewise.
7620
7621 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
7622
7623         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
7624
7625 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7626
7627         * cppinit.c (print_help): Display -MD and -MMD.
7628         Don't display usage string.  Update assertion syntax and
7629         typo.
7630         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
7631         (cpp_handle_option): Update.
7632
7633 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
7634
7635         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
7636         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
7637         and define it so that regardless of target CPU size,
7638         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
7639         of "int" rather than "long."
7640
7641 2002-03-15  Richard Henderson  <rth@redhat.com>
7642
7643         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
7644         size as a tree.
7645
7646 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7647
7648         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
7649         ("tstqi" split): Avoid using memory for tstqi on address register.
7650         (splits): Remove constraints.
7651         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
7652         ("cmpdf", "cmpsf"): Remove since not used.
7653         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
7654         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
7655
7656 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7657
7658         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
7659         ("neghi2"): Tighten constraints.
7660         ("one_cmplsi2"): Optimize and simplify split.
7661         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
7662
7663 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7664
7665         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
7666         and split of AND operation to clear the upper bits.
7667         ("*logicalsi3_zextqi"): Likewise.
7668         ("*logicallhi3_zexthi_ashift8"): Likewise.
7669         ("*logicalsi3_silshr16"): Likewise.
7670         ("logicalsi3_silshl16"): Likewise.
7671         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
7672
7673 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7674
7675         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
7676         (m68hc11_indirect_p): New function.
7677         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
7678         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
7679         TARGET_M6812.
7680         (asm_print_register): Likewise.
7681         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
7682         (m68hc11_indirect_p): Declare.
7683         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
7684         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
7685         (TARGET_SWITCHES): New option -mrelax.
7686         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
7687         destination.
7688         ("iorsi3", "xorsi3"): Likewise.
7689         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
7690         ("*andhi3_mem"): New to handle destination in memory with bclr
7691         and a scratch register.
7692         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
7693         ("*andhi3_const"): New when operand2 is constant.
7694         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
7695         ("*andhi3_gen"): Cleanup of the old "andhi3".
7696         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
7697         ("xorqi3"): Update constraints.
7698
7699 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7700
7701         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
7702         for reg_equiv_memory_loc when the operand is a register that does
7703         not get a hard register (stack location).
7704         (tst_operand): After reload, accept all memory operand.
7705         (symbolic_memory_operand): Fix detection of symbolic references.
7706         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
7707         accept symbols and any constant.
7708
7709 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7710
7711         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
7712         note on the insn that sets the soft frame register.
7713         (must_parenthesize): ix and iy are also reserved names.
7714         (print_operand_address): One more place where parenthesis are required
7715         to avoid confusion with register names.
7716         (m68hc11_gen_movhi): Allow push of stack pointer.
7717         (m68hc11_check_z_replacement): Fix handling of parallel with a
7718         clobber.
7719         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
7720         the replacement register is.
7721         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
7722         and D8_REGS classes.
7723         (MODES_TIEABLE_P): All modes are tieable except QImode.
7724
7725 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7726
7727         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
7728         (___subdi3): Likewise.
7729         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
7730         (__map_data_section): Optimize 68hc11 case.
7731
7732 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7733
7734         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
7735         than a shift to avoid adding a register with itself.
7736         (m68hc11_memory_move_cost): Take into account NO_REGS.
7737         (m68hc11_register_move_cost): Update and use memory move cost
7738         for soft registers.
7739         (m68hc11_address_cost): Make cost of valid offset not 0 so that
7740         it gives more opportunities to cse to optimize.
7741         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
7742         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
7743
7744 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
7745
7746         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
7747         * c-common.def (CLEANUP_STMT): New tree node.
7748         * c-common.h (CLEANUP_DECL): New macro.
7749         (CLEANUP_EXPR): Likewise.
7750         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
7751         * expr.c (expand_expr): Tidy.
7752         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
7753         * tree-inline.c (initialize_inlined_parameters): Clean up
7754         new local variables.
7755
7756 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
7757
7758         PR bootstrap/4128
7759         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
7760         before movrXX only, use reg_overlap_mentioned_p.
7761         Only special case NE if just one insn can be generated.
7762
7763 2002-03-15  Jason Merrill  <jason@redhat.com>
7764
7765         * varasm.c (assemble_variable): Call resolve_unique_section before
7766         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
7767         of error_mark_node.
7768
7769 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
7770
7771         PR target/5170
7772         * arm.md (split pattern for thumb shiftable immediates): Add comment
7773         explaining non-obvious test.
7774
7775 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
7776
7777         PR target/5712
7778         * arm.md (movaddr, movaddr_insn): Delete.
7779
7780 2002-03-15  Jason Merrill  <jason@redhat.com>
7781
7782         * toplev.c (wrapup_global_declarations): Clarify variable handling.
7783         -fkeep-static-consts doesn't apply to comdats.
7784
7785 2002-03-14  Richard Henderson  <rth@redhat.com>
7786
7787         * c-decl.c: Include c-pragma.h.
7788         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
7789         (finish_function): Tidy.
7790         * c-pragma.c: Include c-common.h.
7791         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
7792         (handle_pragma_weak): Use them.
7793         (init_pragma): Register pending_weaks.
7794         * c-pragma.h (maybe_apply_pragma_weak): Declare.
7795         * print-tree.c (print_node): Print DECL_WEAK.
7796         * varasm.c (mark_weak_decls): Remove.
7797         (remove_from_pending_weak_list): Remove.
7798         (add_weak): Remove.
7799         (asm_emit_uninitialised): Call globalize_decl for weak commons.
7800         (weak_decls): Make a tree_list.
7801         (declare_weak): Cons weak_decls directly.
7802         (globalize_decl): Remove weak_decls elements directly.
7803         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
7804         symbols.  Don't pretend to handle aliases.
7805         (init_varasm_once): Update weak_decls registry.
7806         * Makefile.in: Update dependencies.
7807
7808 2002-03-14  Richard Henderson  <rth@redhat.com>
7809
7810         PR target/5312
7811         * config/ia64/ia64.c: Include tm_p.h last.
7812         (gen_nop_type): Remove duplicate definition.
7813         (cycle_end_fill_slots): Set sched_data for second L slot.
7814         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
7815         (nop_cycles_until): Fix typos.
7816
7817 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR optimization/5891
7820         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
7821
7822 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
7823
7824         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
7825           descriptors correctly.
7826
7827 2002-03-14  Michael Meissner  <meissner@redhat.com>
7828
7829         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
7830         100, allowing MAX_UNROLLED_INSNS to be overridden.
7831
7832         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
7833         --param.
7834
7835         * unroll.c (params.h): Include.
7836         (MAX_UNROLLED_INSNS): Delete, now in params.h.
7837
7838         * doc/invoke.texi (--param max-unroll-insns): Document.
7839
7840         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
7841
7842 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
7843
7844         * arm.md: Fix warnings about constraints in peepholes and splits.
7845
7846 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
7847
7848         * cpphash.h (struct lexer_state): Remove line_extension member.
7849         * cpplib.c (dequote_string, do_linemarker): New functions.
7850         (linemarker_dir): New data object.
7851         (DIRECTIVE_TABLE): No longer need to interpret #line in
7852         preprocessed source.  Delete obsolete comment about return
7853         values of handlers.
7854         (end_directive, directive_diagnostics, _cpp_handle_directive):
7855         Don't muck with line_extension.
7856         (directive_diagnostics): No need to issue warnings for
7857         linemarkers here.
7858         (_cpp_handle_directive): Issue warnings for linemarkers here,
7859         when appropriate.  Dispatch linemarkers to do_linemarker, not
7860         do_line.
7861         (do_line): Code to handle linemarkers split out to do_linemarker.
7862         Convert escape sequences in filename argument, both places.
7863
7864         * cppmacro.c (quote_string): Rename cpp_quote_string and
7865         export.  All callers changed.
7866         * cpplib.h (cpp_quote_string): Prototype.
7867         * cppmain.c (print_line): Call cpp_quote_string on to_file
7868         before printing it.
7869
7870         * doc/cpp.texi: Document that escapes are now interpreted in
7871         #line and in linemarkers, and that non-printing characters are
7872         converted to octal escapes when linemarkers are generated.
7873
7874 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
7875
7876         * emit-rtl.c (try_split): Use delete_insns.
7877         * recog.c (split_all_insns): Fix terminating condition.
7878
7879 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
7880             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
7881
7882         PR target/5828
7883         * arm.c (arm_output_epilogue): Fix floating-point register save
7884         adjustment when using a frame pointer.
7885
7886 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
7887
7888         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
7889         * config/mips/mips.c (compute_frame_size): Retrofit them here.
7890         (save_restore_insns, mips_expand_epilogue): And here.
7891         (build_mips16_call_stub): And here.
7892         (mips_function_value): Use the new macros to decide whether a single
7893         or complex float can be returned in floating-point registers.  Return
7894         a parallel rtx in the complex case.
7895
7896 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
7897
7898         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
7899         call after liveness analysis.
7900
7901         * recog.c (split_insn): Use delete_insn_and_edges.
7902
7903         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
7904         instructions to have branch prediction notes.
7905         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
7906
7907 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
7908
7909         * configure.in: Don't pass -Wno-long-long to a ADA compiler
7910         that doesn't support it.
7911         * configure: Regenerate.
7912
7913 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7914
7915         PR target/5626
7916         * config/sparc/sparc.md (normal_branch, inverted_branch,
7917         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
7918         inverted_fp_branch): Adjust calls to output_cbranch.
7919         Set length attribute.
7920         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
7921         output_v9branch.  Set length attribute.
7922         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
7923         predicates.
7924         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
7925         (output_cbranch): Likewise.  Handle far branches.
7926         (output_v9branch): Handle far branches.
7927         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
7928         Adjust prototypes.
7929         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
7930         noov_compare64_op predicates.
7931
7932 2002-03-13  Jason Merrill  <jason@redhat.com>
7933
7934         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
7935         into the function and constify it.
7936         * gthr-dce.h, gthr-solaris.h: Likewise.
7937
7938 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
7939
7940         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
7941         * config/rs6000/rs6000.c (rs6000_va_arg): Use
7942         std_expand_builtin_va_arg if not ABI_V4.
7943
7944 2002-03-13  Jason Merrill  <jason@redhat.com>
7945
7946         * varasm.c (globalize_decl): New fn.
7947         (assemble_start_function): Use it.
7948         (asm_emit_uninitialized): Use it.
7949         (assemble_alias): Use it.
7950         (assemble_variable): Use it.
7951
7952 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
7953
7954         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
7955         2002-03-12 internal visibility change.
7956         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
7957         visibility into SYMBOL_REF_FLAG.
7958
7959 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
7960
7961         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
7962         VOIDmode operand.  Add compile-time optimization for constant results.
7963
7964 2002-03-12  Jason Merrill  <jason@redhat.com>
7965
7966         * c-typeck.c (convert_for_assignment): Don't allow conversions
7967         between pointers and references.  Only allow lvalues to convert to
7968         reference.
7969
7970 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
7971
7972         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
7973         before prologue, to avoid scheduling problems.
7974
7975 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7976
7977         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
7978         (ELIMINABLE_REGS): Add sfp->sp.
7979         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
7980
7981 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7982
7983         PR optimization/5892
7984         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
7985
7986 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7987
7988         * loop.c (basic_induction_var): Don't call convert_modes if mode
7989         classes are different.
7990
7991 2002-03-12  Richard Henderson  <rth@redhat.com>
7992
7993         PR optimization/5901
7994         * function.c (reposition_prologue_and_epilogue_notes): Position
7995         the markers after/before the last/first insn not deleted.
7996
7997 2002-03-12  Richard Henderson  <rth@redhat.com>
7998
7999         PR optimization/5878
8000         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
8001         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
8002         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8003
8004         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
8005         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
8006         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
8007
8008         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
8009         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
8010         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
8011         also.  Don't set it if not flag_pic.
8012         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
8013         to be INVALID_REGNUM when not used.
8014
8015 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
8016
8017         * expmed.c (store_bit_field): Reset alias set for memory.
8018         (extract_bit_field): Same.
8019
8020 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8021
8022         * c-common.c (c_tree_code_type, c_tree_code_length,
8023         c_tree_code_name, add_c_tree_codes): Delete.
8024         * c-common.h (add_c_tree_codes): Delete.
8025         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
8026         Define.
8027         * c-objc-common.c (c_objc_common_init): Don't call
8028         add_c_tree_codes, instead set lang_unsafe_for_reeval.
8029         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8030         objc_tree_code_name, add_objc_tree_codes): Delete.
8031         (objc_init): Don't call add_objc_tree_codes.
8032         * objc/objc-lang.c (tree_code_type, tree_code_length,
8033         tree_code_name): Define.
8034         * toplev.c (lang_independent_init): Don't set
8035         tree_code_length[IDENTIFIER_NODE].
8036         * tree.c (tree_code_type, tree_code_length, tree_code_name):
8037         Delete definitions, moved to language front-ends.
8038         * tree.def (IDENTIFIER_NODE): Hardwire the length.
8039         * tree.h (tree_code_type, tree_code_length, tree_code_name):
8040         Const-ify.
8041         (tree_code_length): Change type to unsigned char.
8042
8043 2002-03-12  Richard Henderson  <rth@redhat.com>
8044
8045         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
8046         internal visibility change.
8047
8048 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8049
8050         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
8051         validize_mem() instead of change_address to avoid clobbering
8052         memory attributes.
8053
8054 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8055
8056         * c-lex.h (position_after_whitespace): Remove.
8057
8058 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
8059
8060         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
8061         (lex_string): Use unsigned char pointers.
8062
8063 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8064
8065         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
8066         is not a valid memory_operand.
8067
8068 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8069
8070         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
8071         * config/xtensa/lib1funcs.asm: Fix copyright to include
8072         special case for libgcc files.
8073         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
8074         (__divsi3): Likewise.
8075         (__umodsi3): Likewise.
8076         (__modsi3): Likewise.
8077         * config/xtensa/lib2funcs.S: Fix copyright to include
8078         special case for libgcc files.
8079
8080 2002-03-12  Tom Rix  <trix@redhat.com>
8081
8082         * collect2.c (resolve_lib_name): Move outside of
8083         OBJECT_FORMAT_COFF ifdef.
8084         (ignore_library): Same.
8085
8086 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8087
8088         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
8089
8090 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8091
8092         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
8093         to function_section before writing out the constant pool.
8094
8095 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
8096
8097         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
8098         zero_constant.
8099         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
8100
8101 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
8102
8103         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
8104         (adddi3): Likewise.
8105         (movdf): Likewise.
8106         (movdi): Likewise.
8107         (cmpsi splitter): Likewise.
8108         (modsi3): Fail if <= 0.
8109         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
8110         redundant test when HOST_BITS_PER_WIDE_INT != 32.
8111         (reg_or_sub_cint64_operand): Likewise.
8112         (num_insns_constant_wide): Optimize sign extension.
8113         (rs6000_legitimize_address): Likewise.
8114
8115 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8116
8117         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8118         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8119
8120 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8121
8122         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
8123         address calculation.
8124
8125 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8126
8127         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
8128         scratch register to DImode / TImode.
8129         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
8130         register used does not overlap the target.
8131
8132 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8133
8134         * Makefile.in (debug.o): Depend on debug.h.
8135         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
8136         * debug.c (do_nothing_debug_hooks): Likewise.
8137         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
8138         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
8139         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
8140         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8141         * dwarfout.c (dwarf_debug_hooks): Likewise.
8142         * integrate.c (output_inline_function): Likewise.
8143         * objc/objc-act.c (synth_module_prologue): Likewise.
8144         * sdbout.c (sdb_debug_hooks): Likewise.
8145         * toplev.c (debug_hooks): Likewise.
8146         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8147
8148 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8149
8150         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
8151         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
8152         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
8153         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
8154         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
8155         * defaults.h (POINTER_SIZE): Define.
8156         * doc/tm.texi (POINTER_SIZE): Document default.
8157
8158 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8159
8160         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
8161
8162 2002-03-11  Richard Henderson  <rth@redhat.com>
8163
8164         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
8165         if rebuild_label_notes_after_reload.
8166
8167 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
8168
8169         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
8170         emit pic register load if "internal" visibility.
8171         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
8172         (cris_expand_builtin_va_arg): Do all computations on trees.
8173
8174 2002-03-11  Richard Henderson  <rth@redhat.com>
8175
8176         * rtlanal.c: Include recog.h.
8177         (keep_with_call_p): Fix thinko.
8178         * Makefile.in (rtlanal.o): Update dependencies.
8179
8180 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
8181
8182         * genflags.c (gen_insn): Use IS_VSPACE.
8183         * genoutput.c (output_insn_data): Likewise.
8184         (process_template): Likewise.
8185
8186 2002-03-11  Richard Henderson  <rth@redhat.com>
8187
8188         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
8189
8190 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8191
8192         * Makefile.in: Update.
8193         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
8194         Update documentation.
8195         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
8196         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
8197
8198 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
8199
8200         * Makefile.in: Give texi2pod its input file as a command line
8201         argument, not on stdin.
8202
8203 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
8204             Daniel Berlin  <dan@dberlin.org>
8205
8206         C++ alias analysis improvement.
8207         * alias.c (record_component_aliases): Record aliases for base
8208         classes too.
8209
8210 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8211
8212         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
8213
8214 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
8215
8216         * toplev.c (vms_fopen): Remove, not needed.
8217
8218         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
8219
8220         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
8221
8222         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
8223         for FP, already done later.
8224
8225         * toplev.c (debug_args): Add entry for VMS_DEBUG.
8226         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
8227
8228 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
8229
8230         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
8231         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
8232         LARGEST_EXPONENT_IS_NORMAL for the given mode.
8233         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
8234         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
8235         (ediv, emul, eldexp, esqrt): Likewise.
8236         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
8237         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
8238         (saturate): New function.
8239         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
8240         (make_nan): Use a saturation value instead of a NaN if
8241         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
8242         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
8243         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
8244         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
8245         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
8246         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
8247         !ROUND_TOWARDS_ZERO.
8248         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
8249         (ROUND_TOWARDS_ZERO): Document.
8250
8251 2002-03-11  Andreas Jaeger  <aj@suse.de>
8252
8253         * cfg.c (dump_flow_info): Remove unused variable.
8254
8255 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
8256
8257         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
8258         computations on trees.
8259
8260 2002-03-10  Richard Henderson  <rth@redhat.com>
8261
8262         PR 5693:
8263         * reload.c (copy_replacements_1): New.
8264         (copy_replacements): Use it to recurse through the rtx.
8265
8266 2002-03-10  Richard Henderson  <rth@redhat.com>
8267
8268         * loop.c (strength_reduce): Compute number of iterations as
8269         unsigned HOST_WIDE_INT.
8270
8271 2002-03-10  Richard Henderson  <rth@redhat.com>
8272
8273         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
8274         to move away from the end of the block.
8275
8276 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8277
8278         PR preprocessor/5899
8279         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
8280
8281 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8282
8283         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
8284
8285         * attribs.c (decl_attributes): Fix signed/unsigned warning.
8286
8287 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
8288
8289         * config/mmix/mmix.c: Improve comments.
8290         (mmix_target_asm_function_prologue): Drop variable
8291         empty_stack_frame.  Don't allocate unused slot above fp.
8292         (mmix_target_asm_function_epilogue): Mirror prologue changes.
8293         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
8294         brace in first column.
8295         (enum reg_class): Ditto.
8296         (FIRST_PARM_OFFSET): Now 0.
8297         (USER_LABEL_PREFIX): Remove #if 0:d definition.
8298
8299 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8300
8301         * combine.c (make_extraction): Fix error in last change.
8302
8303 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8304
8305         * c4x.c (c4x_fp_reglist): Const-ify.
8306         * cris.c (cris_print_operand): Likewise.
8307         * i386.c (ix86_va_arg): Likewise.
8308         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
8309         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
8310         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
8311         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
8312         * mcore.h (regno_reg_class): Likewise.
8313         * mips.c (gen_int_relational): Likewise.
8314         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
8315         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
8316         * pdp11.c (move_costs): Likewise.
8317         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
8318         * s390.c (s390_branch_condition_mnemonic, regclass_map):
8319         Likewise.
8320         * s390.h (regclass_map): Likewise.
8321         * sh.c (shift_amounts): Likewise.
8322         * sh.md (rotlsi3): Likewise.
8323
8324 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8325
8326         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
8327         (ne0+5): Use new clobber to generate proper shift pattern.
8328         Patch by Michael Matz <matz@kde.org>.
8329
8330 2002-03-09  Andreas Schwab  <schwab@suse.de>
8331
8332         * gcc.c (validate_all_switches): Also handle `%W{...}'.
8333
8334 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8335
8336         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
8337
8338 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8339
8340         PR middle-end/5877
8341         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
8342         even for non-representable constants.
8343
8344 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8345
8346         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
8347         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
8348         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
8349         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
8350         (pop_function_context): Compute MAY_SHARE parameter for
8351         fixup_var_refs.
8352         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
8353         (gen_mem_addressof): Call fixup_var_refs with new parm.
8354
8355         * combine.c (make_extraction): Don't make extension of CONST_INT.
8356
8357 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8358
8359         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
8360         in o32 and o64 ABIs.
8361         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
8362         but getting fixed-size structs passed in registers regardless of
8363         padding in o32 and o64 ABIs.
8364
8365         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
8366         offset before loading address of argument passed by transparent
8367         reference.
8368
8369 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8370
8371         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
8372
8373 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8374
8375         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
8376         marker such that registers after it are saved.
8377
8378 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8379
8380         * sparc.c (arith_4096_operand): Fix error in last change.
8381
8382 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
8383
8384         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
8385         defaults for MEABI.
8386
8387 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
8388
8389         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
8390         vectors.
8391
8392 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
8393
8394         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
8395
8396 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8397
8398         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
8399         removed; fix return value.
8400         * combine.c (combine_instructions): Dirtify blocks where we failed to
8401         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
8402         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
8403
8404 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8405
8406         * gcse.c (insert_insn_end_bb): Fix typo in last change.
8407
8408 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
8409
8410         * recog.c (peephole2_optimize): Re-distribute EH edges.
8411
8412 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8413
8414         * expr.c (expand_expr): Use unsave lang hook.
8415         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
8416         (LANG_HOOKS_INITIALIZER): Update.
8417         * langhooks.h (struct lang_hooks): New hook unsave.
8418         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
8419         (unsave_expr_1): Remove unused lang_unsave_expr_now.
8420         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
8421         (unsave_expr_now): Remove.
8422         * tree.h (unsave_expr_now, lang_unsave,
8423         lang_unsave_expr_now): Remove.
8424         (lhd_unsave): New.
8425
8426 2002-03-08  Andreas Jaeger  <aj@suse.de>
8427
8428         * flow.c (propagate_block_delete_insn): Remove unused variable.
8429
8430 2002-03-08  Kazu Hirata  <kazu@hxi.com>
8431
8432         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
8433         insn length for memory load/store.
8434
8435 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8436
8437         * doc/install.texi (--with-libiconv-prefix): Document.
8438
8439 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
8440
8441         * doc/sourcebuild.texi: Fix typo.
8442
8443 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
8444
8445         PR c/3711
8446         * builtins.c (std_expand_builtin_va_arg): Do all computations on
8447         trees.
8448
8449 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8450
8451         * rtl.c (copy_most_rtx): Move from here ...
8452         * emit-rtl.c (copy_most_rtx): ... to here.
8453
8454 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
8455
8456         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
8457         SUBTARGET_CPP_SIZE_SPEC.
8458         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
8459
8460         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
8461
8462 2002-03-07  Matt Hiller  <hiller@redhat.com>
8463
8464         * gensupport.c (first_dir_md_include): Renamed from include;
8465         change all references.
8466         (last_dir_md_include): Renamed from last_include; change all
8467         references.
8468         (init_md_reader): Unconditionally initialize base_dir whether or
8469         not filename is a relative path.
8470
8471 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
8472
8473         * config/fp-bit.c (_unord_f2): Compile it in even if
8474         US_SOFTWARE_GOFAST is enabled.
8475
8476         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
8477         NULL_RTX.  Set all HFmode operations as NULL_RTX.
8478         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
8479         NULL_RTX, try reversing the comparison and the operands.
8480
8481 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8482
8483         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
8484         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
8485         and MATCH_OP_DUP.
8486
8487 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
8488
8489         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
8490
8491 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
8492
8493         * basic-block.h (fixup_abnormal_edges): Declare.
8494         * reload1.c (fixup_abnormal_edges): New function.
8495         * reg-stack.c (convert_regs): Use it.
8496
8497         * gcse.c (insert_insn_end_bb): Handle trapping insns.
8498
8499         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
8500
8501 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
8502
8503         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
8504         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
8505         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
8506         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
8507         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
8508         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
8509         unless x and y could be infinite.
8510         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
8511         Check that the common type of both arguments is a real, even for
8512         targets without unordered comparisons.  Allow an integer argument
8513         to be compared against a real.
8514         (expand_tree_builtin): Use expand_unordered_cmp.
8515         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
8516         * cse.c (fold_rtx): Likewise.  Fix indentation.
8517         * fold-const.c (fold_real_zero_addition_p): New.
8518         (fold): Use it, and the new HONOR_... macros.
8519         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
8520         * jump.c (reversed_comparison_code_parts): After searching for
8521         the true comparison mode, use HONOR_NANS to decide whether it
8522         can be safely reversed.
8523         (reverse_condition_maybe_unordered): Remove IEEE check.
8524         * simplify-rtx.c (simplify_binary_operation): Use the new macros
8525         to decide which simplifications are valid.  Allow the following
8526         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
8527         and (a - -b) to (a + b).
8528         (simplify_relational_operation): Use HONOR_NANS.
8529         * doc/tm.texi: Document the MODE_HAS_... macros.
8530
8531 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
8532
8533         * combine.c (simplify_comparison): If simplifying a logical shift
8534         right and compare with constant, force the comparison to unsigned.
8535
8536 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
8537
8538         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
8539
8540         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
8541         -mabi=no-altivec
8542         (alt_reg_names): Remove % for vrsave.
8543
8544 2002-03-06  Richard Henderson  <rth@redhat.com>
8545
8546         PR optimization/5844
8547         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
8548         if used indicates we've already emitted one copy of an operand.
8549         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
8550         (gen_split): Supply a non-null used.
8551
8552 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8553
8554         * reload1.c (reload): Unshare all rtl after reload is done.
8555
8556         * simplify-rtx.c (simplify_plus_minus): Do not abort,
8557         but simply fail if the expression is too complex to simplify.
8558         (simplify_gen_binary): Handle simplify_plus_minus failures.
8559
8560 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
8561
8562         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
8563         consistently call delete_trivially_dead_insns after CSE and GCSE;
8564         fix DFI_life dumping; do jump threading after liveness; do crossjumping
8565         after liveness2; update comment in last crossjumping.
8566         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
8567
8568 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
8569
8570         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
8571         after completing fast dead code elimination.
8572
8573         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
8574         COMPARE operator.
8575
8576 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
8577
8578         * version.c:  Fix misplaced leading blanks on first line.
8579
8580 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
8581
8582         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
8583
8584 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
8585
8586         * cfgcleanup.c (mentions_nonequal_regs): New function.
8587         (thread_jump): Use it.
8588         * toplev.c (rest_of_compilation): Run jump threading after
8589         liveness.
8590
8591 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
8592
8593         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
8594         patch.
8595
8596 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
8597
8598         * predict.c (estimate_bb_frequencies): Do not reload the
8599         frequencies from notes.
8600
8601 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
8602
8603         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
8604         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
8605
8606         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
8607         delete_noop_moves): Return indeger.
8608         * flow.c (ndead): New variable.
8609         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
8610         BB argument; update callers.
8611         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
8612         (life_analysis): Do not call purge_all_dead_edges.
8613         (update_life_info): Return number of deleted insns; print statistics.
8614         (update_life_info_in_dirty_blocks): likewise.
8615         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
8616         return number of insns deleted.
8617
8618         * cse.c: Include timevar.h
8619         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
8620         iterate until stabilizes; print statistics; return number of killed
8621         insns.
8622         * Makefile.in: (cse.o): Add timevar.h dependency
8623         * rtl.h (delete_trivially_dead_insns): New.
8624         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
8625         * toplev.c (rest_of_compilation): Update callers.
8626
8627         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
8628         (try_optimize_cfg): Do not update liveness.
8629         (cleanup-cfg): Loop until try_optimize_cfg and dead code
8630         removal stabilizes; use delete_trivially_dead_insns.
8631
8632         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
8633
8634 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
8635
8636         * cppmain.c (setup_callbacks): Disable #pragma and #ident
8637         callbacks when processing assembly language.
8638
8639 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8640
8641         * pa.h (ASM_FILE_END): Define.
8642         * som.h (ASM_FILE_END): Delete.
8643
8644         * pa.c (function_arg): Don't pass floats in general registers in
8645         indirect calls if TARGET_ELF32.
8646
8647 2002-03-05  Richard Henderson  <rth@redhat.com>
8648
8649         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
8650
8651 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
8652
8653         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
8654
8655 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
8656
8657         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
8658         -r command line.  Don't hide any symbols if not building
8659         shared libgcc.
8660
8661 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
8662
8663         * cfg.c (dump_flow_info): Warn about profile mismatches.
8664         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
8665         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
8666
8667 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
8668
8669         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
8670         wide volatile memory by parts.
8671
8672 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
8673
8674         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
8675         is NULL.
8676
8677 2002-03-05  Richard Henderson  <rth@redhat.com>
8678
8679         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
8680
8681 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
8682
8683         * toplev.c (documented_lang_options): Document more
8684         language-specific options.
8685         * doc/invoke.texi (Warning Options): Correct documentation for
8686         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
8687         * c-decl.c (c_decode_option): Use a table to handle warning options.
8688
8689 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
8690
8691         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
8692         parameter to mmix_encode_section_info.
8693         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
8694         relocatably.  Always produce ELF, not mmo if linking relocatably.
8695         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
8696         first is non-zero, don't add symbol prefix.
8697         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
8698         prototype accordingly.
8699
8700 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
8701
8702         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
8703
8704 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
8705
8706         * configure.in: Increase required makeinfo version to 4.1.
8707         * configure: Regenerate.
8708
8709 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
8710
8711         * .cvsignore: Remove *.info* and genrtl*; these files are generated
8712         elsewhere now.
8713
8714 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
8715
8716         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
8717         * doc/invoke.texi: Fix @math uses.
8718
8719 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
8720
8721         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
8722         removal
8723
8724 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
8725
8726         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
8727         (powerpc-*-eabisimaltivec*): Same.
8728
8729         * config/rs6000/t-ppcendian: New.
8730
8731 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8732
8733         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
8734         nonimmediate_src_operand and nonimmediate_lsrc_operand to
8735         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
8736
8737 2002-03-03  Richard Henderson  <rth@redhat.com>
8738
8739         * toplev.c (rest_of_decl_compilation): Revert last two changes.
8740
8741 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
8742
8743         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
8744         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
8745         tree.c, config/m68k/m68k.c:
8746         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8747         REAL_ARITHMETIC blocks unconditional.  Delete some further
8748         #ifdef blocks predicated on REAL_ARITHMETIC.
8749         * flags.h, toplev.c: Delete remaining references to
8750         flag_pretend_float.
8751
8752         * doc/invoke.texi: Remove documentation of -fpretend-float.
8753         * doc/tm.texi: Describe the various REAL_* macros as provided by
8754         real.h, not by the target configuration files.
8755
8756         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
8757         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
8758         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8759         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
8760         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
8761         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
8762         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
8763         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
8764         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
8765         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
8766         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
8767         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
8768         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
8769         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
8770         config/xtensa/xtensa.h:
8771         Do not define, undefine, or mention in comments any of
8772         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
8773         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
8774         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
8775         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
8776         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
8777         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
8778         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
8779         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
8780         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
8781
8782 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8783
8784         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
8785         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
8786         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
8787         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
8788         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
8789         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
8790         Delete.
8791         * defaults.h (BITS_PER_WORD): Define.
8792         * doc/tm.texi (BITS_PER_WORD): Document default value.
8793
8794         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
8795         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
8796         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
8797
8798 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8799
8800         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
8801         lieu of explicit sizeof/sizeof.
8802         * i386.c (override_options, ix86_init_mmx_sse_builtins,
8803         ix86_expand_builtin): Likewise.
8804         * mips.c (mips_add_gc_roots): Likewise.
8805         * mmix.c (mmix_output_condition): Likewise.
8806         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
8807         altivec_init_builtins): Likewise.
8808         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
8809         * cppexp.c (Nsuff, parse_number): Likewise.
8810         * cppinit.c (builtin_array_end): Likewise.
8811         * gcc.c (n_default_compilers, process_command): Likewise.
8812         * genpreds.c (output_predicate_decls): Likewise.
8813         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
8814         * lcm.c (N_ENTITIES): Likewise.
8815         * stor-layout.c (set_sizetype): Likewise.
8816
8817 2002-03-03  Richard Henderson  <rth@redhat.com>
8818
8819         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
8820         for types or labels.
8821
8822 2002-03-03  Richard Henderson  <rth@redhat.com>
8823
8824         * c-decl.c (start_decl): Initialized variables are not common.
8825
8826 2002-03-02  Per Bothner  <per@bothner.com>
8827
8828         * gcc.c (option_map):  Suport new --bootclasspath option.
8829         --CLASSPATH is now just an alias for --classpath.
8830
8831 2002-03-02  Richard Henderson  <rth@redhat.com>
8832
8833         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
8834         load if "internal" visibility.
8835         * doc/extend.texi: Document visibility meanings.
8836
8837 2002-03-02  Richard Henderson  <rth@redhat.com>
8838
8839         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
8840         to functions as well.
8841
8842 2002-03-02  Richard Henderson  <rth@redhat.com>
8843
8844         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
8845         (handle_visibility_attribute): Don't call assemble_visibility.
8846         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
8847         without asmspec.  Invoke assemble_alias when needed.
8848         * varasm.c (maybe_assemble_visibility): New.
8849         (assemble_start_function, assemble_variable, assemble_alias): Use it.
8850
8851 2002-03-02  Richard Henderson  <rth@redhat.com>
8852
8853         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
8854         invoke ENCODE_SECTION_INFO with first call flag.
8855
8856         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
8857         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
8858         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
8859         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
8860         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
8861         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
8862         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
8863         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
8864         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
8865         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
8866         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8867         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
8868         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
8869         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
8870         config/mcore/mcore-protos.h, config/mcore/mcore.c,
8871         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
8872         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
8873         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
8874         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
8875         config/sh/sh.h, config/sparc/sparc.h,
8876         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
8877         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
8878         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
8879         FIRST argument.  As needed, examine it and do nothing.
8880
8881         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
8882         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8883         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
8884
8885         * config/arm/t-pe (pe.o): Add dependencies.
8886
8887 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8888
8889         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
8890         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
8891         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
8892         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
8893         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
8894         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
8895         * defaults.h (BITS_PER_UNIT): Define.
8896         * doc/tm.texi (BITS_PER_UNIT): Document default value.
8897
8898 2002-03-02  Kazu Hirata  <kazu@hxi.com>
8899
8900         * config/h8300/h8300-protos.h: Add a prototype for
8901         compute_a_shift_length.
8902         * config/h8300/h8300.c (h8300_asm_insn_count): New.
8903         (compute_a_shift_length): Likewise.
8904         (h8300_adjust_insn_length): Do not adjust insn length of shift
8905         insns.
8906         * config/h8300/h8300.md (anonymous shift patterns): Use
8907         compute_a_shift_length.
8908
8909 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8910
8911         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
8912         trunc_int_for_mode.
8913
8914         * emit-rtl.c (offset_address): Call update_temp_slot_address.
8915
8916 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8917
8918         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
8919         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
8920         * flags.h (flag_zero_initialized_in_bss): Declare.
8921         * toplev.c (flag_zero_initialized_in_bss): New flag.
8922         (lang_independent_options): Add flag_zero_initialized_in_bss.
8923         * tree.c (initializer_zerop): New function.
8924         * tree.h (initializer_zerop): Declare.
8925         * varasm.c (assemble_variable): If we can emit bss, put zero
8926         initializers in the bss section.
8927
8928 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
8929
8930         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
8931         like more than one symbol per .weak directive.
8932
8933 2002-03-01  Richard Henderson  <rth@redhat.com>
8934
8935         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
8936         adjust argument_pointer by pretend_args_size.
8937         (ia64_va_start): Adjust va_start address by -pretend_args_size.
8938
8939 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8940
8941         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
8942
8943 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
8944
8945         * toplev.c (rest_of_compilation): Delete dead jumptables before
8946         loop.
8947         * flow.c (delete_dead_jumptables): Make global.
8948         * rtl.h (delete_dead_jumptables): Declare.
8949
8950 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
8951
8952         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
8953         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
8954         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
8955
8956 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8957
8958         * config/h8300/h8300-protos.h: Fix formatting.
8959         * config/h8300/h8300.c: Likewise.
8960         * config/h8300/h8300.h: Likewise.
8961
8962 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8963
8964         * config/h8300/h8300.c (print_operand): Support 16-bit
8965         constant addresses.
8966         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
8967
8968 2002-02-28  Richard Henderson  <rth@redhat.com>
8969
8970         * expmed.c (store_bit_field): Prevent generation of CONCATs;
8971         pun complex values as integers; use gen_lowpart instead of
8972         gen_rtx_SUBREG.
8973         (extract_bit_field): Likewise.
8974
8975 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
8976             David Edelsohn  <edelsohn@gnu.org>
8977
8978         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
8979         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
8980         (SUPPORTS_WEAK): Likewise.
8981         * output.h (add_weak): Add tree param.
8982         * varasm.c (add_weak): Likewise.  Save decl.
8983         (struct weak_syms): Add decl field.
8984         (mark_weak_decls): New function.
8985         (init_varasm_once): ggc_add_root mark_weak_decls.
8986         (assemble_start_function): Use ASM_WEAKEN_DECL.
8987         (assemble_variable): Likewise.
8988         (assemble_alias): Likewise.
8989         (declare_weak): Pass decl to add_weak.
8990         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
8991         (remove_from_pending_weak_list): Declare and define for
8992         ASM_WEAKEN_DECL.
8993         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
8994         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
8995         * defaults.h (SUPPORTS_WEAK): Likewise.
8996         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
8997         .weak for code sym.  Do emit .size for descriptor sym.
8998         (ASM_DECLARE_FUNCTION_SIZE): Define.
8999         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
9000         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
9001         .lglobl unless TARGET_XCOFF.  Formatting fixes.
9002         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9003         .weak for code sym.
9004         (HANDLE_PRAGMA_WEAK): Remove.
9005         (ASM_WEAKEN_LABEL): Remove.
9006         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
9007
9008 2002-03-01  Jason Merrill  <jason@redhat.com>
9009
9010         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
9011         (TARGET_EXPR_CLEANUP): New macro.
9012
9013 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
9014
9015         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
9016         to take ptr_extend into account as third type of extension.
9017         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
9018         fields used by SUBREG_PROMOTED_UNSIGNED_P.
9019         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
9020         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
9021         * calls.c (precompute_arguments): Use new macro.
9022         (expand_call): Ditto.
9023         * combine.c (nonzero_bits): Ditto.
9024         (record_promoted_value): Ditto.
9025         * expr.c (store_expr): Ditto.
9026         (expand_expr): Ditto.
9027         * function.c (assign_parms): Ditto.
9028
9029 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
9030
9031         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
9032         override -shared and -shared-libgcc.
9033
9034 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
9035
9036         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
9037         of "ultrasparc".
9038         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
9039         to be broken.
9040
9041 2002-02-28  Richard Henderson  <rth@redhat.com>
9042
9043         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
9044         4 cycle latency from MM producers.
9045         (ia64_internal_sched_reorder): Likewise with pipeline flush.
9046
9047 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
9048
9049         * mklibgcc.in: Don't use GNU make extension.
9050
9051 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9052
9053         * c-parse.in (STATIC): New terminal.
9054         (scspec): New non-terminal.  Update productions accordingly.
9055         (program): Remove bogus ifc / end ifc.
9056         (array_declarator): Simplify production using STATIC.
9057
9058 2002-02-28  Jim Meyering  <meyering@lucent.com>
9059
9060         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
9061         \a still means TARGET_BELL.
9062
9063 2002-02-28  Richard Henderson  <rth@redhat.com>
9064
9065         * haifa-sched.c (sched_emit_insn): New.
9066         (schedule_block): Use last_scheduled_insn to track last insn.
9067         * sched-int.h (sched_emit_insn): Prototype.
9068         * config/ia64/ia64.c (last_issued): Remove.
9069         (ia64_variable_issue): Don't set it.
9070         (nop_cycles_until): Use sched_emit_insn.
9071
9072 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
9073
9074         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
9075         extended constants.
9076
9077 2002-02-28  Kazu Hirata  <kazu@hxi.com>
9078
9079         * config/h8300/h8300.c: Fix formatting.
9080         * config/h8300/h8300.h: Likewise.
9081
9082 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9083
9084         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
9085         which may overwrite the high byte of the frame pointer.
9086
9087 2002-02-28  Bo Thorsen  <bo@suse.de>
9088
9089         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
9090         (STARTFILE_SPEC): Add 64 bit files.
9091         (ENDFILE_SPEC): Likewise.
9092
9093 2002-02-28  Jason Merrill  <jason@redhat.com>
9094
9095         * c-decl.c (finish_function): Only warn about missing return
9096         statement with -Wreturn-type.
9097
9098 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9099
9100         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
9101
9102         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
9103         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
9104
9105 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9106
9107         * basic-block.h (BB_REACHABLE): Renumber.
9108         (BB_DIRTY, BB_NEW): New flags.
9109         (clear_bb_flags): Declare.
9110         (update_life_info_in_dirty_blocks): Declare.
9111         * cfg.c (clear_bb_flags): New function.
9112         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
9113         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
9114         reorder_insns, emit_insn_after): Mark block as dirty.
9115         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
9116         (update_life_info_in_dirty_blocks): New function.
9117         * recog.c (apply_change_group): Dirtify block.
9118
9119         * cse.c (cse_insn): Reorder emitting of jump insn to keep
9120         cfg consistent.
9121         * gcse.c (delete_null_pointer_checks): Likewise.
9122
9123         * toplev.c (dump_file_index): Move cse2 after bp,
9124         add DFI_null
9125         (dump_file_info): Similary.
9126         (rest_of_compilation): Avoid most of CFG rebuilds;
9127         do first if converision after null pointer checks, do cse2
9128         after branch prediction; avoid full liveness rebuild after
9129         initializing subregs.
9130         * invoke.texi (-d options): Document -du, renumber.
9131
9132         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
9133         (notice_new_block): Do not set BB_UPDATE_LIFE.
9134         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
9135          merge_blocks_move_successor_nojumps, merge_blocks,
9136          try_crossjump_to_edge): Likewise.
9137         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
9138         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
9139         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
9140         (merge_of_block): Do not use life_data_ok.
9141         (find_if_case_1): Do not use SET_UPDATE_LIFE.
9142         (if_convert): Use BB_DIRTY mechanizm to update life.
9143         * lcm.c (optimize_mode_switching): Update
9144         update_life_info_in_dirty_blocks
9145
9146 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9147
9148         * Makefile.in (integrate.o): Update.
9149         * c-decl.c (copy_lang_decl): Rename.
9150         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9151         * integrate.c: Include langhooks.h.
9152         (copy_decl_for_inlining): Update to use langhook.
9153         * langhooks-def.h (lhd_do_nothing_t,
9154         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
9155         (LANG_HOOKS_INITIALIZER): Update.
9156         * langhooks.c (lhd_do_nothing_t): New.
9157         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
9158         * tree.h (copy_lang_decl): Remove.
9159 objc:
9160         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9161
9162 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
9163
9164         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
9165         POST_DEC, and POST_MODIFY.
9166
9167 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9168
9169         * c-typeck.c (digest_init): Remove unused parameter; all
9170         callers changed.
9171
9172 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
9173
9174         * expmed.c (expand_shift): Correctly test for low part of a
9175         subreg.
9176
9177 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
9178
9179         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
9180         insn UIDs with insn addresses.
9181
9182 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9183
9184         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
9185         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
9186         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
9187         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
9188         gcc.c, toplev.c: Delete code implementing -traditional mode.
9189
9190         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
9191         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
9192         Document removal of -traditional mode for compilation, and
9193         remove documentation only relevant to that mode.
9194
9195         * config/nextstep.h, config/ptx4.h, config/svr4.h,
9196         config/convex/convex.h, config/d30v/d30v.h,
9197         config/i386/dgux.h, config/i386/osf1elf.h,
9198         config/i386/osfelf.h, config/i386/osfrose.h,
9199         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
9200         config/m68k/hp310.h, config/m88k/dgux.h,
9201         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
9202         config/m88k/m88k.h, config/m88k/openbsd.h,
9203         config/mips/abi64.h, config/mips/osfrose.h,
9204         config/mips/svr4-5.h, config/mips/svr4-t.h,
9205         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9206         config/stormy16/stormy16.h: Remove all references to
9207         -traditional from target specs.  Delete all mention of the
9208         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
9209         delete a couple of commented-out definitions of
9210         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
9211         to -traditional.
9212
9213         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
9214         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
9215
9216 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9217
9218         * mklibgcc.in: Don't use \n in a line subject to
9219         interpretation by echo.
9220
9221 2002-02-27  Graham Stott  <grahams@redhat.com>
9222
9223         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
9224         Constify NAME.
9225
9226         * loop.c (prescan_loop): Handle PARALLEL.
9227
9228         * unroll.c (loop_iterations): Return 0 if the add_val for
9229         a BIV is REG.
9230
9231         * final.c (output_operand_lossage): Constify PFX_STR.
9232
9233         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
9234
9235 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9236
9237         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
9238         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
9239
9240 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
9241
9242         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9243
9244 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
9245
9246         * cpplex.c (_cpp_lex_token): Handle directives in macro
9247         arguments.
9248         * cpplib.c (_cpp_handle_directive): Save and restore state
9249         if parsing macro args when entering a directive.
9250         * cppmacro.c (collect_args): No need to handle directives
9251         in macro arguments.
9252         (enter_macro_context, replace_args): Use the original macro
9253         definition in case it was redefined whilst collecting arguments.
9254 doc:
9255         * cpp.texi: Update.
9256
9257 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
9258
9259         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
9260         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
9261         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
9262         method on AIX.
9263         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
9264         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
9265         (load_toc_v4_PIC_2): Same.
9266
9267 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
9268
9269         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
9270
9271 2002-02-26  Richard Henderson  <rth@redhat.com>
9272
9273         * config/alpha/alpha.md (ashldi_se): Re-enable.
9274
9275 2002-02-26  Richard Henderson  <rth@redhat.com>
9276
9277         * config/alpha/alpha.c (alpha_encode_section_info): Examine
9278         MODULE_LOCAL_P; improve commentary.
9279
9280 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
9281
9282         * doc/cpp.texi: Clarify documentation of relationship between
9283         #line and #include.
9284
9285 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9286
9287         * config/h8300/h8300-protos.h: Update the prototype for
9288         compute_logical_op_length.  Add the prototype for
9289         compute_logical_op_cc.
9290         * config/h8300/h8300.c (compute_logical_op_length): Figure out
9291         code from operands.
9292         (compute_logical_op_cc): New.
9293         * config/h8300/h8300.md: Combine all the logical op patterns
9294         in HImode and SImode.  Use compute_logical_op_cc.
9295
9296 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
9297
9298         * config/i386/i386.c (print_operand): Don't append ATT-style
9299         length suffixs to x87 opcodes when in Intel mode.
9300
9301 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
9302
9303         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
9304         (init_emit_once): Update calls.
9305         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
9306         (init_syntax_once): Prototype.
9307
9308 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9309
9310         * pa-linux.h (LIB_SPEC): Update definition.
9311         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
9312
9313 2002-02-26  Richard Henderson  <rth@redhat.com>
9314
9315         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
9316         if we emitted a stop bit.
9317
9318 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9319
9320         * configure.in (libgcc_visibility): Substitute.
9321         * configure: Rebuilt.
9322         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
9323         defined symbols .hidden.
9324
9325 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9326
9327         * attribs.c (c_common_attribute_table): Add visibility.
9328         (handle_visibility_attribute): New function.
9329         * varasm.c (assemble_visibility): New function.
9330         * output.h (assemble_visibility): Add prototype.
9331         * tree.h (MODULE_LOCAL_P): Define.
9332         * crtstuff.c (__dso_handle): Use visibility attribute.
9333         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
9334         for MODULE_LOCAL_P symbols too.
9335         * config/ia64/ia64.c (ia64_encode_section_info): Handle
9336         MODULE_LOCAL_P symbols the same way as local symbols.
9337         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
9338         into .sdata/.sbss by the user.
9339         * doc/extend.texi (Function Attributes): Document visibility
9340         attribute.
9341
9342 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9343
9344         PR debug/5770
9345         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
9346         STRING_CST initializer spanning the whole variable without
9347         embedded zeros.
9348         If expand_expr returned MEM, don't use it.
9349
9350 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
9351
9352         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
9353         generate a die for the lexical block.
9354
9355 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9356
9357         * config/h8300/h8300-protos.h: Add a prototype for
9358         compute_logical_op_length.
9359         * config/h8300/h8300.c (compute_logical_op_length): New.
9360         * config/h8300/h8300.md (anonymous logical patterns): Use
9361         compute_logical_op_length for length.
9362
9363 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9364
9365         * dwarf2out.c (modified_type_die): Do not call type_main_variant
9366         for vectors.
9367         (gen_type_die): Same.
9368
9369         * attribs.c (handle_vector_size_attribute): Set debug information.
9370
9371 2002-02-26  Daniel Egger  <degger@fhm.edu>
9372
9373         * config/rs6000/rs6000.md: Swap define_insn attributes to
9374         fix incorrect generation of merge high instructions instead
9375         of merge low.
9376
9377 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9378
9379         * c-typeck.c (really_start_incremental_init): Use
9380         bitsize_zero_node for vectors.
9381
9382 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9383
9384         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
9385         ("*set_vrsave_internal"): Same.
9386
9387 2002-02-25  Richard Henderson  <rth@redhat.com>
9388
9389         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
9390         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
9391
9392 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
9393
9394         PR target/5755
9395         * config/i386/i386.c (ix86_return_pops_args): Only pop
9396         fake structure return argument if it was passed on the stack.
9397
9398 2002-02-25  Jason Merrill  <jason@redhat.com>
9399
9400         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
9401         RESULT_DECL.
9402
9403 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
9404
9405         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
9406         link with shared_name only.
9407         * doc/invoke.texi (Link Options): Document new behavior.
9408
9409 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
9410
9411         * c-typeck.c (push_init_level): Handle vectors.
9412
9413 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
9414
9415         * config/sparc/sparc.c (const64_high_operand): Zero-extend
9416         operands of SPARC_SETHI_P.
9417         (input_operand): Likewise.
9418         (sparc_emit_set_const32): Likewise.
9419         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
9420         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
9421         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
9422         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
9423         (movdi_insn_sp64_vis): Likewise.
9424         (movdi split, movdf split): Use SETHI32.
9425         * doc/md.texi: Document SPARC constraints L, M and N.
9426
9427 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
9428
9429         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
9430         ("*set_vrsave_internal"): use mfspr for Darwin.
9431
9432         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
9433         gen_get_vrsave_internal.
9434
9435 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9436
9437         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
9438
9439 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
9440
9441         * cpplex.c (cpp_interpret_charconst): Get signedness or
9442         otherwise of wide character constants correct.
9443         * cppexp.c (lex): Get signedness of wide charconsts correct.
9444
9445 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9446
9447         * optabs.c (widen_operand): Only call convert_modes for
9448         promoted SUBREG if signedness matches.
9449         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
9450
9451 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9452
9453         * cpplib.c (glue_header_name): Use local buffer to build up
9454         header name.
9455
9456 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9457
9458         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
9459
9460 2002-02-23  Kazu Hirata  <kazu@hxi.com>
9461
9462         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
9463         H8/300[HS] separately.
9464         * config/h8300/h8300.md: Remove the early clobber constraint
9465         from bit field patterns.
9466
9467 2002-02-23  Kazu Hirata  <kazu@hxi.com>
9468
9469         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
9470         register_operand.
9471         (mulhisi3): Likewise.
9472         (umulqisi3): Likewise.
9473         (umulhisi3): Likewise.
9474
9475 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9476
9477         * cppinit.c (output_deps): Correct test for stdout output.
9478         (init_dependency_output): Cure warning.
9479
9480 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9481
9482         * expr.c (store_expr): When converting expression to promoted
9483         equivalent type, allow using SUBREG_REG of TARGET as the target
9484         of the expansion of EXP.
9485         * loop.c (basic_induction_var, case SUBREG): Always look inside.
9486         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
9487         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
9488         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
9489         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
9490
9491 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
9492
9493         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
9494         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
9495         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
9496
9497 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
9498
9499         PR optimization/5747
9500         * loop.c (scan_loop): Update reg info if move_movables created new
9501         pseudos.
9502
9503 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
9504
9505         * gcc.c (init_gcc_spec): Revert last change.
9506
9507 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
9508
9509         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
9510         gpc_reg_operand constraint.
9511
9512 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
9513
9514         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
9515         Simplify comparison of `low'.
9516         (add_operand): Fix formatting.
9517         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
9518         (mask_operand): Disallow mask to wrap in 64-bit mode.
9519         (rs6000_stack_info): Remove redundant test setting push_p.
9520         (output_toc): Fix formatting.
9521         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
9522         cc_reg_not_cr0_operand constraint.
9523         (booldi3, boolcdi3 splitters): Same.
9524
9525 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
9526
9527         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
9528
9529 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
9530
9531         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
9532         gcc invoked with -shared-libgcc.
9533
9534 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
9535
9536         PR c++/5748
9537         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
9538         decl if any of elements was TREE_USED.
9539
9540 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
9541
9542         * config/sparc/sol2.h: Don't include sys/mman.h.
9543         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
9544         (arith_4096_operand): Don't throw high bits away.
9545         (const64_operand): Take sign extension of CONST_INTs into account.
9546         (const64_high_operand, sparc_emit_set_const32): Likewise.
9547         (GEN_HIGHINT64): Likewise.
9548         (sparc_emit_set_const64_quick1): Likewise.
9549         (const64_is_2insns): Likewise.
9550         (print_operand): Use trunc_int_for_mode for sign extension.
9551         * config/sparc/sparc.h (SMALL_INT32): Likewise.
9552         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
9553         chars.  Assume CONST_INT is already properly sign-extended.
9554         (movdi split): Sign-extend each SImode part.
9555         (andsi3 split): Don't mask high bits off, so that result
9556         remains properly sign-extend.
9557         (iorsi3 split): Likewise.
9558         (xorsi3 split): Likewise.
9559
9560 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
9561
9562         * fold-const.c (fold): Fix typo in comments.
9563
9564 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
9565
9566         * Makefile.in (langhooks.o): Update dependencies.
9567
9568 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
9569
9570         * langhooks.c: Include flags.h.
9571
9572 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
9573
9574         * testsuite/gcc.dg/attr-alwaysinline.c: New.
9575
9576         * c-common.c (c_common_post_options): Set inline trees by
9577         default.
9578
9579         * doc/extend.texi (Function Attributes): Document always_inline
9580         attribute.
9581         Update documentation about inlining when not optimizing.
9582
9583         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
9584
9585         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
9586         unless DECL_ALWAYS_INLINE.
9587
9588         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
9589         unless DECL_ALWAYS_INLINE.
9590         (c_disregard_inline_limits): Disregard if always_inline set.
9591
9592         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
9593         Disregard if always_inline set.
9594         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
9595         unless DECL_ALWAYS_INLINE.
9596
9597         * attribs.c (handle_always_inline_attribute): New.
9598         (c_common_attribute_table): Add always_inline.
9599
9600         * config/rs6000/altivec.h: Add prototypes for builtins
9601         requiring the always_inline attribute.
9602
9603 2002-02-21  Eric Christopher  <echristo@redhat.com>
9604
9605         * expmed.c (store_bit_field): Try to simplify the subreg
9606         before generating a new one when when the mode size of
9607         value is less than maxmode.
9608
9609 2002-02-21  Richard Henderson  <rth@redhat.com>
9610
9611         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
9612         than gen_rtx_PLUS to form the sum.
9613         * explow.c (force_reg): Rearrange to not allocate new pseudo
9614         when force_operand returns a register.
9615         * expr.c (expand_assignment): Allow offset_rtx expansion to
9616         return a sum.  Do not force addresses into registers.
9617         (expand_expr): Likewise.
9618         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
9619         to canonicalize arithmetic that didn't simpify.
9620         (simplify_plus_minus): New argument force; update
9621         all callers.  Don't split CONST unless we can do something with it,
9622         and wouldn't lose the constness of the operands.
9623
9624         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
9625         that we generated earlier.
9626
9627 2002-02-21  Tom Tromey  <tromey@redhat.com>
9628
9629         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9630         (output_line_info): Use constant `1', with a long explanatory
9631         comment.
9632         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
9633
9634 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
9635
9636         * jump.c (redirect_jump): If old label has no UID, don't try to
9637         delete it.
9638
9639 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
9640
9641         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
9642         If input is constant, do shifts at compile time.
9643
9644 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
9645
9646         * doc/extend.texi: Fix some more overfull hboxes.
9647
9648 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
9649
9650         PR optimization/4994
9651         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
9652         register moves.
9653
9654 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
9655
9656         PR c++/4574
9657         * expr.h (expand_and): Add mode argument.
9658         * expmed.c (expand_and): Add mode argument.
9659         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
9660         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
9661         * except.c (expand_builtin_extract_return_addr): Likewise.
9662         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
9663         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
9664         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
9665         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
9666         * config/c4x/c4x.md: Use GEN_INT (x) instead of
9667         gen_rtx (CONST_INT, VOIDmode, x).
9668
9669 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
9670
9671         PR c/4697:
9672         * stmt.c (warn_if_unused_value): Move side effects test once more.
9673
9674 2002-02-20  Torbjorn Granlund  <tege@swox.com>
9675
9676         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
9677         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
9678
9679 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
9680
9681         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
9682         SUBREG or ZERO_EXTEND.
9683
9684 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
9685
9686         * sh.h (current_function_anonymous_args): Remove.
9687         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
9688         of current_function_varargs and current_function_stdarg is set.
9689         * sh.c (sh_expand_prologue): Check current_function_varargs /
9690         current_function_stdarg / TARGET_SH5 instead of
9691         current_function_anonymous_args.
9692
9693         * sh64.h (TARGET_VERSION): Define.
9694
9695 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
9696
9697         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
9698         VRSAVE_REGNO on TARGET_ALTIVEC.
9699
9700 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
9701
9702         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
9703         bits of SImode const_int.
9704         (includes_rshift_p): Likewise.
9705         (print_operand): Call mask_operand and mask64_operand with correct
9706         mode.
9707         (rs6000_output_function_epilogue): Pad traceback table to word.
9708         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
9709         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
9710         mask64_operand with correct mode.
9711         (FUNCTION_ARG_REGNO_P): Correct parentheses.
9712
9713 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
9714
9715         PR debug/4461
9716         * varasm.c (get_pool_constant_mark): New.
9717         * rtl.h (get_pool_constant_mark): Add prototype.
9718         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
9719         be represented if it has not been output.
9720
9721 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
9722
9723         * combine.c (do_SUBST): Sanity check substitutions of
9724         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
9725         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
9726         CONST_INT into its operand.
9727         (known_cond): Likewise, for ZERO_EXTEND.
9728         * simplify-rtx.c (simplify_unary_operation): Fix condition to
9729         allow for simplification of wide modes.  Reject CONST_INTs in
9730         ZERO_EXTEND when their actual mode is not given.
9731
9732 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
9733
9734         * c-decl.c (pushdecl): If no global declaration is found for an
9735         extern declaration in block scope, try a limbo one.
9736
9737 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
9738
9739         PR c++/4401
9740         * c-common.c (pointer_int_sum): Moved from...
9741         * c-typeck.c (pointer_int_sum): ...here.
9742         * c-common.h (pointer_int_sum): Add prototype.
9743
9744 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
9745
9746         PR c++/5713
9747         * c-decl.c (duplicate_decls): Return 0 if issued error about
9748         redeclaration.
9749
9750 2002-02-20  Roger Sayle  <roger@eyesopen.com>
9751             Jakub Jelinek  <jakub@redhat.com>
9752
9753         PR c/4389
9754         * tree.c (host_integerp): Ensure that the constant integer is
9755         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
9756         when pos is zero or non-zero respectively.  Clarify comment.
9757         * c-format.c (check_format_info_recurse): Fix host_integerp
9758         usage; the pos argument should be zero when assigning to a
9759         signed HOST_WIDE_INT.
9760
9761 2002-02-20  Richard Henderson  <rth@redhat.com>
9762
9763         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
9764         of the operand, rather than assuming TImode.
9765         (ix86_expand_binop_builtin): Cope with commutative patterns
9766         using nonimmediate_operand for both operands.
9767         (ix86_expand_timode_binop_builtin): Likewise.
9768         (ix86_expand_store_builtin): Validate operand 1.
9769         (ix86_expand_unop1_builtin): Likewise.
9770
9771 2002-02-20  Philip Blundell  <philb@gnu.org>
9772
9773         PR 5705
9774         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
9775
9776 2002-02-20  Richard Henderson  <rth@redhat.com>
9777
9778         PR c/5615
9779         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
9780
9781 2002-02-20  Tom Tromey  <tromey@redhat.com>
9782
9783         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9784         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9785         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9786         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9787         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
9788         unconditionally.
9789
9790 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
9791
9792         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
9793           for (const_int 0) in X not just INTVAL.
9794
9795 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9796
9797         * doc/extend.texi: Avoid or reduce overfull hboxes.
9798
9799 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
9800
9801         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
9802         operations if the field does not start at a mode boundary.
9803
9804 2001-02-20      Joel Sherrill <joel@OARcorp.com>
9805
9806         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
9807         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
9808         Also done for -Acpu and -Amachine.
9809
9810 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9811
9812         * cppinit.c (init_dependency_output): Take deps output file
9813         from -o if none given with -MF.  Suppress normal output.
9814         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
9815         * doc/cpp.texi, doc/invoke.texi: Update.
9816
9817 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
9818
9819         * toplev.c (output_quoted_string): Write unprintable
9820         characters with octal escapes.
9821
9822 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
9823
9824         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
9825         really_call_used[VRSAVE_REGNO] if not Altivec.
9826
9827 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
9828
9829         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
9830         MODE_MASK.
9831         (constant_pool_expr_1): Fix formatting.
9832         (rs6000_legitimize_reload_address): Likewise.
9833
9834 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9835
9836         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
9837         now that we have one.
9838
9839 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
9840
9841         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
9842         end of first block of bitfields (which was only seven bits);
9843         rename dummy to unused_1; remove comment which is no longer true.
9844
9845 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
9846
9847         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
9848
9849 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
9850
9851         PR 5399
9852         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
9853         if generating PIC.
9854
9855         PR 5054
9856         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
9857         arm_is_longcall_p rather than inspecting call-type cookie
9858         directly.
9859         (call_value_insn) [TARGET_THUMB]: Likewise.
9860
9861 2002-02-19  Graham Stott  <grahams@redhat.com>
9862
9863         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
9864
9865 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
9866
9867         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
9868         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
9869         (FP_SAVE_INLINE): Delete.
9870
9871         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
9872         * config/rs6000/eabi.asm: Remove ABI save restore routines.
9873         * config/rs6000/t-ppccomm: Build crtsavres.o.
9874         * config/rs6000/crtsavres.asm: New file.
9875
9876 2002-02-19  Philip Blundell  <philb@gnu.org>
9877
9878         * config/arm/arm.c (use_return_insn): Don't reject interrupt
9879         functions.
9880         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
9881         (output_return_instruction): Allow interrupt functions to return with
9882         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
9883         (arm_expand_prologue): Subtract 4 before stacking LR in an
9884         interrupt function.
9885
9886 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
9887
9888         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
9889         decl, not just FUNCTION_DECL.
9890         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
9891         (arm_assemble_integer): Likewise.
9892         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
9893         marked local.
9894
9895 2002-02-19  matthew green  <mrg@eterna.com.au>
9896
9897         * config.gcc (sparc-*-netbsdelf*): Enable target.
9898         (sparc64-*-netbsd*): New target.
9899         * config/sparc/netbsd-elf.h: New file.
9900         * config/sparc/t-netbsd64: New file.
9901
9902 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
9903
9904         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
9905
9906 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
9907
9908         * doc/invoke.texi: explicitly list the style guidelines that
9909         -Weffc++ checks for.
9910
9911 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
9912
9913         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
9914
9915 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9916
9917         PR other/5718
9918         * gcc.c (cpp_unique_options): Treat -o as indicating object file
9919         only if not -E.  If -E, pass -o through to the preprocessor.
9920
9921 2002-02-19  Kazu Hirata  <kazu@hxi.com>
9922
9923         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
9924         register number with an appropriate macro.
9925
9926 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9927
9928         * doc/rtl.texi (Constants): Close @code tag.
9929
9930 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
9931
9932         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
9933         ("mmx_uavgv4hi3"): Same.
9934         ("pmulhrwv4hi3"): Same.
9935
9936         * tree-inline.c (walk_tree): Handle vectors.
9937
9938         * c-common.c (constant_expression_warning): Handle vectors.
9939         (overflow_warning): Same.
9940
9941         * sched-deps.c (sched_analyze_2): Handle vectors.
9942
9943         * rtlanal.c (rtx_unstable_p): Handle vectors.
9944         (rtx_varies_p): Same.
9945         (count_occurrences): Same.
9946         (regs_set_between_p): Same.
9947         (modified_between_p): Same.
9948         (modified_in_p): Same.
9949         (volatile_insn_p): Same.
9950         (volatile_refs_p): Same.
9951         (side_effects_p): Same.
9952         (may_trap_p): Same.
9953         (inequality_comparisons_p): Same.
9954         (replace_regs): Same.
9955         (computed_jump_p_1): Same.
9956
9957         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
9958         argument.
9959         (inner_mode_array): New.
9960         (copy_rtx): Handle vectors.
9961         (copy_most_rtx): Same.
9962         (rtx_equal_p): Same.
9963         (get_mode_alignment): Adjust for vectors.
9964
9965         * resource.c (mark_referenced_resources): Handle vectors.
9966         (mark_set_resources): Same.
9967
9968         * reload1.c (eliminate_regs): Handle vectors.
9969         (elimination_effects): Same.
9970         (scan_paradoxical_subregs): Same.
9971
9972         * reload.c (subst_reg_equivs): Handle vectors.
9973
9974         * regrename.c (scan_rtx): Handle vectors.
9975
9976         * regclass.c (reg_scan_mark_refs): Handle vectors.
9977
9978         * recog.c (find_single_use_1): Handle vectors.
9979
9980         * local-alloc.c (equiv_init_varies_p): Handle vectors.
9981         (contains_replace_regs): Same.
9982         (memref_referenced_p): Same.
9983
9984         * integrate.c (copy_rtx_and_substitute): Handle vectors.
9985         (subst_constants): Same.
9986
9987         * genattrtab.c (attr_copy_rtx): Handle vectors.
9988         (encode_units_mask): Same.
9989         (clear_struct_flag): Same.
9990         (count_sub_rtxs): Same.
9991
9992         * gcse.c (want_to_gcse_p): Handle vectors.
9993         (oprs_unchanged_p): Same.
9994         (hash_expr_1): Same.
9995         (oprs_not_set_p): Same.
9996         (expr_killed_p): Same.
9997         (compute_transp): Same.
9998         (store_ops_ok): Same.
9999
10000         * function.c (purge_addressof_1): Do not allow paradoxical subregs
10001         of vectors.
10002         (fixup_var_refs_1): Same.
10003         (instantiate_virtual_regs_1): Same.
10004
10005         * fold-const.c (operand_equal_p): Handle vectors.
10006         (fold): Same.
10007         (rtl_expr_nonnegative_p): Same.
10008
10009         * flow.c (mark_used_regs): Handle vectors.
10010
10011         * df.c (df_uses_record): Handle vectors.
10012
10013         * cselib.c (cselib_subst_to_values): Handle vectors.
10014         (cselib_mem_conflict_p): Same.
10015         (hash_rtx): Same.
10016
10017         * cse.c (canon_reg): Handle vectors.
10018         (fold_rt): Same.
10019         (cse_process_notes): Same.
10020         (count_reg_usage): Same.
10021         (canon_hash): Same.
10022
10023         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
10024
10025         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
10026
10027         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
10028         (gen_rtx): Handle CONST_VECTOR.
10029         (gen_const_vector_0): New.
10030         (copy_rtx_if_shared): CONST_VECTORs can be shared.
10031         (reset_used_flags): Same.
10032         (copy_insn_1): Same.
10033         (initializer_constant_valid_p): Handle VECTOR_CST.
10034
10035         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
10036
10037         * doc/rtl.texi (Constants): Document const_vector.
10038         (CONST0_RTX): Update for vectors.
10039         (RTL sharing): Same.
10040
10041         * print-tree.c (print_node): Add case for VECTOR_CST.
10042
10043         * tree.h (TREE_VECTOR_CST_ELTS): New.
10044         (struct tree_vector): New.
10045         (union tree_node): Add vector node.
10046         (build_vector): Add prototype.
10047
10048         * tree.def (VECTOR_CST): New.
10049
10050         * tree.c (build_vector): New.
10051
10052         * expmed.c (make_tree): Handle CONST_VECTOR.
10053
10054         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
10055         (CONST_VECTOR_ELT): New.
10056         (CONST_VECTOR_NUNITS): New.
10057
10058         * machmode.h (GET_MODE_INNER): New.
10059         (DEF_MACHMODE): Accept 8th arg.
10060
10061         * machmode.def: Add 8th argument for vector inner mode.
10062         Add inner vector modes for vectors.
10063
10064         * rtl.def (VEC_CONST): Remove.
10065         (CONST_VECTOR): New.
10066
10067         * expr.c (clear_storage): Allow vectors.
10068         (is_zeros_p): Handle VECTOR_CST.
10069
10070         * varasm.c (output_constant_pool): Handle vectors.
10071         (rtx_const): Add veclo and vechi fields.
10072         (kind): Add RTX_VECTOR.
10073         (decode_rtx_const): Add case for vector.
10074
10075         * config/rs6000/rs6000-protos.h: Add zero_constant.
10076
10077         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
10078         constants.  Force easy vector constants into memory.
10079         (easy_vector_constant): New.
10080         (emit_easy_vector_constant): New.
10081         (rs6000_legitimize_reload_address): Do not generate bad reloads on
10082         darwin.
10083
10084         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
10085         instruction does.
10086         ("altivec_lvxl"): Same.
10087         (altivec_lvebx): Same.
10088         (altivec_lvehx): Same.
10089         (altivec_lvewx): Same.
10090         ("*movv4si_const0"): New.
10091         ("*movv4sf_const0"): New.
10092         ("*movv8hi_const0"): New.
10093         ("*movv16qi_const0"): New.
10094
10095 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10096
10097         * config/h8300/h8300.c (notice_update_cc): Use
10098         cc_status.value2.
10099
10100 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10101
10102         * config/h8300/h8300.md (divmod patterns): Change the
10103         constraints for operands[1] to register_operand.
10104
10105 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10106
10107         * config/h8300/h8300-protos.h: Remove the prototype for
10108         p_operand.
10109         * config/h8300/h8300.c (p_operand): Remove.
10110         * config/h8300/h8300.md: Replace p_operand with
10111         const_int_operand.
10112
10113 2002-02-18 Philip Blundell <pb@nexus.co.uk>
10114
10115         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
10116         comment.
10117         (output_return_instruction): Allow use of LDR to unstack
10118         return addresss even for interrupt handlers or when
10119         interworking.  If compiling for ARMv5, use interworking-safe
10120         return instructions by default.  Remove duplicated code and
10121         lengthy "strcat" sequences.
10122
10123 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10124
10125         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
10126         (LINK_EH_SPEC): Define.
10127         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
10128
10129 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10130
10131         * config/s390/s390.c (s390_emit_prologue): Do not set the
10132         frame_related flag for call-clobbered registers.
10133
10134 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10135
10136         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
10137         (construct_container): Fix handling of SSE operands.
10138         (ix86_expand_builtin): Fix handling of 64bit pointers.
10139         (mmx_maskmovq_rex): New pattern.
10140
10141 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10142
10143         * regrename.c (kill_set_value): Handle subregs properly.
10144
10145 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
10146
10147         * objc/objc-act.c (handle_impent): Remove leading '*'
10148         from objc_class_name.
10149
10150 2002-02-17  Richard Henderson  <rth@redhat.com>
10151
10152         * config/alpha/alpha.c (some_small_symbolic_operand,
10153         some_small_symbolic_operand_1, split_small_symbolic_operand,
10154         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
10155         Handle small SYMBOL_REFs anywhere, not just inside memories.
10156         * config/alpha/alpha-protos.h: Update.
10157         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10158         * config/alpha/alpha.md (small symbolic operand splitter): Update.
10159
10160 2002-02-17  Roland McGrath  <roland@frob.com>
10161
10162         * config.gcc (powerpc-*-gnu-gnualtivec*,
10163         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
10164         * config/rs6000/gnu.h: New file.
10165         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
10166         Grok "gnu" in rs6000_abi_name.
10167         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
10168         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
10169         Grok -mcall-gnu analogous to -mcall-linux et al.
10170         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10171         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
10172         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
10173
10174 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
10175
10176         PR c/3444:
10177         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
10178         shortening.
10179
10180 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10181
10182         * config/cris/cris.h: Undefine STARTFILE_SPEC and
10183         ENDFILE_SPEC before (re)defining them.
10184
10185 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10186
10187         * config/h8300/h8300.c: Fix formatting.
10188         * config/h8300/h8300.h: Likewise.
10189
10190 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10191
10192         * doc/tm.texi: Explain why empty strings should not be
10193         marked for translation.
10194
10195 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10196
10197         * final.c (output_operand_lossage): Changed to accept
10198         printf style arguments. Change calls where necessary.
10199         * output.h (output_operand_lossage): Change declaration
10200         accordingly. Update copyright.
10201         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
10202         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
10203         Update copyright date where necessary.
10204
10205         * config/i386/i386.c (print_operand): Likewise. Remove use of
10206         sprintf.
10207
10208         * config/cris/cris.c (cris_operand_lossage): Likewise.
10209         Rename parameter so that exgettext recognizes it as
10210         translatable message.
10211         (LOSE_AND_RETURN): Rename parameter to msgid.
10212
10213 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10214
10215         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
10216         hard coded register number with an appropriate macro.
10217         (HARD_REGNO_MODE_OK): Likewise.
10218         (ARG_POINTER_REGNUM): Likewise.
10219         (STATIC_CHAIN_REGNUM): Likewise.
10220         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
10221         * config/h8300/h8300.md (define_constants): Define more
10222         register numbers.
10223
10224 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10225
10226         * config/i386/i386.h: Don't mark empty strings for translation.
10227
10228 2002-02-16  H.J. Lu <hjl@gnu.org>
10229
10230         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
10231
10232 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
10233
10234         * cppinit.c (merge_include_chains): Check for brack being
10235         NULL before attempting to merge it with qtail.
10236
10237 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
10238
10239         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
10240         DBX_DEBUG.
10241
10242 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10243
10244         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
10245
10246 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10247
10248         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
10249         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
10250         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
10251
10252 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10253
10254         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
10255         now only if !TARGET_FIX.
10256         (*movsi_nt_vms_fix): New pattern.
10257
10258 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
10259
10260         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
10261         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
10262         (alpha_sa_mask, alpha_sa_size): Reflect above change.
10263         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
10264         (alpha_start_function, alpha_expand_epilogue): Likewise.
10265         (unicosmk_gen_dsib): Likewise.
10266
10267 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10268
10269         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
10270
10271 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
10272
10273         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
10274         check_and_change_labels, s390_final_chunkify): Delete.
10275         (s390_split_branches, s390_chunkify_pool): New functions.
10276         (s390_function_prologue): Call them.
10277
10278         * config/s390/s390.h (S390_REL_MAX): Delete.
10279         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
10280
10281         * config/s390/s390.md (cjump, icjump, jump): Fix length
10282         attribute calculation.
10283
10284
10285 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
10286
10287         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
10288         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
10289
10290 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10291
10292         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
10293         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
10294         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
10295
10296 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10297
10298         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
10299
10300 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10301
10302         * reload.c (find_dummy_reload): Check that an output register
10303         is valid for its mode.
10304
10305 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
10306
10307         * combine.c (known_cond): After replacing the REG of a SUBREG, try
10308         to simplify it.
10309
10310         * function.c (assign_parms): Demote promoted argument passed by
10311         transparent reference.
10312
10313 2001-02-14      Joel Sherrill <joel@OARcorp.com>
10314
10315         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
10316         -Acpu() and -Amachine() to eliminate warnings.
10317
10318 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
10319
10320         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
10321
10322 2002-02-14  Kazu Hirata  <kazu@hxi.com>
10323
10324         * config/h8300/h8300-protos.h: Update the prototype for
10325         const_costs.
10326         * config/h8300/h8300.c (const_costs): Treat SET as a little
10327         more expensive operation.
10328         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
10329         reference to const_costs.
10330
10331 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
10332
10333         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
10334
10335 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
10336
10337         PR c/5503:
10338         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
10339         use arguments from newtype.
10340
10341 2002-02-13  Eric Christopher  <echristo@redhat.com>
10342
10343         * config/mips/mips.c (override_options): Add check for march/mipsX
10344         on the same command line. Fix error message in cpu processing.
10345         Remove architecture and ISA checks.
10346
10347 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10348
10349         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
10350
10351         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
10352
10353 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10354
10355         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
10356         alternatives.
10357         ("*movv8hi_internal1"): Same.
10358         ("*movv16qi_internal1"): Same.
10359         ("*movv4sf_internal1"): Same.
10360
10361         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
10362         not push_reload for altivec modes.
10363
10364 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
10365
10366         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
10367         all RTEMS targets including removal of #includes from config/*/rtems*.h
10368         file and adding them to tm_file setting. Added xm_defines=POSIX to
10369         many targets.
10370         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
10371         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
10372         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
10373         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
10374         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
10375         config/m68k/rtemself.h: Ditto.
10376         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
10377         config/mips/rtems64.h: Ditto.
10378         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
10379         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
10380         Ditto.
10381         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
10382         config/sparc/rtemself.h: Ditto.
10383         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
10384         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
10385         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
10386         more like arm-elf.
10387         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
10388         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
10389         target made more similar to i386-elf.
10390         * config/i386/t-rtems-i386: Added soft float support and multilibs.
10391         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
10392         be similar to config/m68k/t-m68kelf.
10393         * gthr-rtems.h: Encapsulate with extern "C" for C++.
10394
10395 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
10396
10397         * regmove.c (kill_value): Handle subregs.
10398
10399 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10400
10401         * i386.md (mul patterns): Allow memory operand to be first;
10402         add expanders where needed; fix constraints.
10403         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
10404         Allow memory operand to be the first.
10405
10406         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
10407         operands.
10408
10409 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
10410
10411         PR c/5681:
10412         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
10413         GET_MODE (x).
10414
10415 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR optimization/5547:
10418         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
10419         all valid IA-32 address modes involving non-scaled %ebx and
10420         GOT/GOTOFF as displacement.
10421
10422 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10423
10424         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
10425         after emitting ltorg insns.
10426
10427         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
10428         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
10429         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
10430         *abssf2): Fix "op_type" attribute.
10431
10432 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
10433
10434         * mkconfig.sh: Avoid using a subshell redirect.
10435         ($output.T): Change to $(output)T.
10436         (ENABLE_NLS): Remove unneeded undef.
10437
10438         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
10439         * config/alpha/x-vms (libsubdir): Define.
10440
10441         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
10442         register frame procedures. Optimize retrieving context.
10443
10444         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
10445         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
10446         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
10447
10448 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10449
10450         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
10451         Make same change as for find_base_value.
10452
10453 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10454
10455         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
10456         of QImode and SImode.
10457
10458 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10459
10460         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
10461         length computation of movsi.
10462         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
10463
10464 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10465
10466         * config/h8300/h8300.md (subqi3): Tighten the predicate for
10467         operands[2] to register_operand.
10468
10469 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10470
10471         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
10472
10473 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
10474
10475         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
10476         for altivec_lvx* and altivec_stvx*.
10477         ("*movv4si_internal"): Add constraint for loading from GPRs.
10478         ("*movv8hi_internal1"): Same.
10479         ("*movv16qi_internal1"): Same.
10480         ("*movv4sf_internal1"): Same.
10481
10482         * config/rs6000/rs6000.c (altivec_register_operand): New.
10483
10484         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
10485         altivec_register_operand.
10486
10487 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
10488
10489         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
10490         handle SYMBOL_REF.
10491
10492 2002-02-13  Stan Shebs  <shebs@apple.com>
10493
10494         * c-typeck.c (digest_init): Handle vectors.
10495         (really_start_incremental_init): Same.
10496         (pop_init_level): Same.
10497         (process_init_element): Same.
10498
10499         * varasm.c (output_constant): Same.
10500
10501         * expr.c (clear_storage): Same.
10502         (store_constructor): Same.
10503
10504 2002-02-12  Eric Christopher  <echristo@redhat.com>
10505
10506         * explow.c (hard_function_value): Add comment explaining
10507         signed/unsigned comparison.
10508
10509 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
10510
10511         * jump.c (never_reached_warning): Add finish argument.
10512         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
10513         real insn after end.
10514         * rtl.h (never_reached_warning): Adjust prototype.
10515         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
10516         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
10517         never_reached_warning.
10518
10519 2002-02-12  Graham Stott  <grahams@redhat.com>
10520
10521         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
10522
10523 2002-02-12  Kazu Hirata  <kazu@hxi.com>
10524
10525         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
10526         logical shifts on H8/300.
10527         (shift_alg_si): Improve several shifts on H8/300.
10528         (get_shift_alg): Likewise.
10529
10530 2002-02-12  Graham Stott  <grahams@redhat.com>
10531
10532         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
10533
10534 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10535
10536         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
10537         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
10538
10539 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
10540
10541         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
10542         non-CONST_INT through default_assemble_integer.
10543         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
10544         <case 8>: Abort for CONST_DOUBLE.
10545
10546 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10547
10548         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
10549         is specified.
10550         * config/pa/pa-linux.h (LIB_SPEC): Delete.
10551         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
10552
10553 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
10554
10555         * config/stormy16/stormy16.md (zero_extendqihi2): New.
10556
10557 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
10558
10559         * regrename.c (regrename_optimize): Don't accept a
10560         part-clobbered register if the replaced register is not part
10561         clobbered.
10562
10563         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
10564         take padding into account when computing the argument value.
10565
10566         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
10567
10568         * combine.c (try_combine): Apply substitutions in
10569         CALL_INSN_FUNCTION_USAGE too.
10570
10571 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
10572
10573         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
10574         __builtin_altivec_abs*.
10575         (bdesc_abs): New.
10576
10577         * config/rs6000/rs6000.h (rs6000_builtins): Add
10578         ALTIVEC_BUILTIN_ABS*.
10579
10580         * config/rs6000/altivec.h: Use const char for builtins expecting
10581         literals.
10582         (vec_abs): New versions for C and C++.
10583         (vec_abss): Same.
10584
10585 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10586
10587         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
10588         using Pmode.
10589
10590 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10591
10592         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
10593         constant definition from h8300.md.
10594         (FRAME_POINTER_REGNUM): Likewise.
10595         * config/h8300/h8300.md (define_constants): Add FP_REG.
10596
10597 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10598
10599         * config/h8300/h8300.c (print_operand): Remove redundant code.
10600
10601 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10602
10603         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
10604         * config/h8300/h8300.c (byte_reg): Make it static.
10605
10606 2002-02-10  Richard Henderson  <rth@redhat.com>
10607
10608         PR c/5623
10609         * c-typeck.c (incomplete_type_error): Handle flexible array members.
10610
10611 2002-02-10  Richard Henderson  <rth@redhat.com>
10612
10613         PR c++/5624
10614         * tree.c (append_random_chars): Don't abort if main_input_filename
10615         does not exist.
10616
10617 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
10618
10619         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
10620
10621 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10622
10623         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
10624         (pushhi1): Likewise.
10625
10626 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10627
10628         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
10629         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
10630
10631 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
10632
10633         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
10634         remove MASK_VIS.
10635         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
10636
10637 2002-02-09  Kazu Hirata  <kazu@hxi.com>
10638
10639         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
10640         a half of an SImode register on H8/300.
10641
10642 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
10643
10644         * i386.md (movdi_2): Add missing '!'.
10645
10646 2002-02-09  Kazu Hirata  <kazu@hxi.com>
10647
10648         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
10649         definitions.
10650
10651 2002-02-09  Kazu Hirata  <kazu@hxi.com>
10652
10653         * config/h8300/h8300.md (length): Correct the distance valid
10654         for the short branch.
10655
10656 2002-02-09  Kazu Hirata  <kazu@hxi.com>
10657
10658         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
10659
10660 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
10661
10662         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
10663         registers in SImode.
10664         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
10665         part-clobbered.
10666
10667         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
10668         patch.
10669
10670         Contribute sh64-elf.
10671         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
10672         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
10673         (sh_cannot_modify_jumps_p): New function.
10674         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
10675         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
10676         (sh_ms_bitfield_layout_p): New function.
10677         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
10678                     Zack Weinberg  <zack@codesourcery.com>
10679         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
10680         expand_simple_binop instead of expand_binop.
10681         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
10682         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
10683         use of .quad and .uaquad.
10684         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
10685         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
10686         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10687         * config/sh/sh.md (movdi_const, movdi_const_32bit,
10688         movdi_const_16bit): Make sure all CONSTs have modes.
10689         (sym2PIC): Ditto, but by adjusting all callers.
10690         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
10691         if the prologue calls the SHmedia argument decoder or register
10692         saver.
10693         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10694         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
10695         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
10696         (sh_expand_epilogue): Don't emit USE of return target register.
10697         (prepare_move_operands): Legitimize DImode PIC addresses.
10698         (sh_media_register_for_return): Skip tr0, used to initialize the
10699         PIC register.
10700         (sh_expand_prologue): Remove explicit USE of return register.
10701         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
10702         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
10703         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
10704         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
10705         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
10706         EXTRA_CONSTRAINT_T.
10707         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
10708         (MOVI_SHORI_BASE_OPERAND_P): New.
10709         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
10710         (EXTRA_CONSTRAINT_T): Define in terms of them.
10711         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
10712         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
10713         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
10714         alternatives supporting TARGET_REGS.
10715         (UNSPEC_GOTPLT): New constant.
10716         (movdi split): Move incrementing of LABEL_NUSES...
10717         (movdi_const, movdi_const_32bit): Here.  Use
10718         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
10719         (movdi_const_16bit): New.
10720         (call, call_value) [flag_pic]: Use GOTPLT.
10721         (call_pop, call_value_pop): New expands.
10722         (call_pop_compact, call_pop_rettramp): New insns.
10723         (call_value_pop_compact, call_value_pop_rettramp): New insns.
10724         (sibcall) [flag_pic]: Use GOT.
10725         (builtint_setjmp_receiver): Remove bogus, unused expand.
10726         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
10727         (*pt, *ptb, ptrel): New insns.
10728         (sym2GOT): Handle DImode GOT.
10729         (sym2GOTPLT, symGOTPLT2reg): New expands.
10730         (sym2PIC): New expand.
10731         (shcompact_return_tramp): Use GOTPLT to return trampoline.
10732         (shcompact_return_tramp_i): Use return register explicitly.
10733         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
10734         disable flag_reorder_blocks.
10735         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
10736         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
10737         clobbers, for clarity.
10738         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
10739         restoring of r0 in macl as MAYBE_DEAD.
10740         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
10741         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
10742         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
10743         alter_subreg all over.
10744         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
10745         reload, instead of emitting instructions that would require
10746         reloading.
10747         (casesi_load_media): Add missing modes.
10748         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
10749         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
10750         as used if the argument decoder is called.
10751         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
10752         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
10753         Pmode, then extend it to DImode if necessary.
10754         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
10755         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
10756         constants in FPU-enabled SHmedia, let them be loaded from memory.
10757         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
10758         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
10759         Adjust whitespace in assembly output templates.
10760         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
10761         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
10762         mode of if_then_else.
10763         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
10764         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
10765         sh.h.
10766         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
10767                     Joern Rennecke <amylaar@redhat.com>
10768         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
10769         (SUBTARGET_CPP_PTR_SPEC): New.
10770         (SUBTARGET_CPP_SPEC): Remove.
10771         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
10772         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
10773         Fix typo in previous checkin.
10774         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
10775         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
10776         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
10777                     Alexandre Oliva  <aoliva@redhat.com>
10778         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
10779         what single FP register can hold for SHmedia target.
10780         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
10781                     Alexandre Oliva  <aoliva@redhat.com>
10782         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
10783         Do not split into SUBREG.
10784         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
10785         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
10786         and added new functions as specified in SH5 ABI r9.
10787         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
10788         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
10789         8-byte boundary.
10790         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
10791         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
10792         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
10793         and consttable_window_ends.
10794         2001-06-03  Graham Stott  <grahams@redhat,com>
10795         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
10796         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
10797         * config/sh/sh.c (print_operand): Handle floating-point pair,
10798         vector and matrix registers.
10799         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
10800         vector modes into account.
10801         * config/sh/sh.md (movv2sf): Split move between registers into
10802         movdf.
10803         (movv4sf, movv16sf): Introduce insns that get split only after
10804         reload.
10805         * config/sh/shmedia.h: Fix Copyright dates.
10806         * config/sh/ushmedia.h: Likewise.  Move loop counter
10807         declarations into conditionals that uses them.
10808         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
10809         loop boundary.
10810         * config/sh/sshmedia.h: Fix Copyright dates.
10811         (sh_media_PUTCFG): Fix constraints.
10812         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
10813         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
10814         ptrmemfunc_vbit_in_delta for SH5.
10815         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
10816         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
10817         * invoke.texi: Likewise.
10818         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
10819         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
10820         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
10821         GCC_pop_shmedia_regs_nofpu): New global symbols.
10822         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
10823         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
10824         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
10825         compact function with nonlocal labels.
10826         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
10827         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
10828         (initial_elimination_offset): Account for their stack space.
10829         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
10830         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
10831         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
10832         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
10833         least one of the operands to be a register.
10834         (movv2sf): Likewise.  Renamed to movv2sf_i.
10835         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
10836         prepare_move_operands() before emitting SHmedia insns.
10837         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
10838         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
10839         Don't save nor initialize r12.  Don't mis-align the stack.
10840         Pad the code with a nop.
10841         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
10842         stack.
10843         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
10844         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
10845         [__SHMEDIA__]: Implement.
10846         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
10847         * config/sh/sh.md: Set latency of `pt' closer to reality.
10848         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
10849         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
10850         Set move, load and store type attributes.
10851         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
10852         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
10853         profiling.
10854         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
10855         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
10856         * config/sh/sh.c (sh_media_register_for_return): New function.
10857         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
10858         branch-target register.
10859         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
10860         * config/sh/sh.md (return_media_i): Use any call-clobbered
10861         branch-target register.
10862         (return_media): If r18 wasn't copied in the prologue, copy it
10863         here.
10864         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
10865         Clear class FP0_REGS.
10866         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
10867         from elf.h.
10868         2001-03-08  DJ Delorie  <dj@redhat.com>
10869         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
10870         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
10871         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
10872         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
10873         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
10874         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
10875         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
10876         return value correctly for call_cookie.
10877         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
10878         * config/sh/crt1.asm (start): Modified so as to call
10879         ___setup_argv_and_call_main.
10880         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
10881         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
10882         SHmedia mode.
10883         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
10884         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
10885         (STRIP_NAME_ENCODING): Use it.
10886         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
10887         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
10888         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
10889         prepare_scc_operands().
10890         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
10891         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
10892         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
10893         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
10894         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
10895         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
10896         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
10897         used in shcompact_incoming_args.
10898         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
10899         change.
10900         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
10901         mode.
10902         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
10903         Adjust accordingly.
10904         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10905         Simplify.  Adjust.  Add sanity check.
10906         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
10907         FPU_SINGLE_BIT.
10908         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
10909         TARGET_SHCOMPACT.
10910         (udivsi3, divsi3): Use them.
10911         (force_mode_for_call): New insn.
10912         (call, call_value, sibcall_value): Emit it before SHcompact
10913         calls.
10914         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
10915         * config/sh/sh.md (call, call_value, sibcall): Make sure the
10916         call cookie is non-NULL before taking its value.
10917         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
10918         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
10919         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
10920         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
10921         block.
10922         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
10923         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
10924         temporary for stack adjusts.  Use MACL and MACH to pass
10925         arguments to shcompact_incoming_args.
10926         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
10927         clobber r1.
10928         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
10929         (nested_trampoline): Load static chain address into r1.
10930         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
10931         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
10932         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
10933         fp_arith_reg_operand().
10934         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
10935         * config/sh/sh.md (casesi): Sign-extend the first two operands,
10936         and use signed compares for them.
10937         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
10938         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
10939         ones properly aligned.
10940         (find_barrier): Account for extra alignment needed for 8-byte wide
10941         constants.
10942         (machine_dependent_reorg): Require a label for the second 4-byte
10943         constant after an 8-byte one.
10944         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
10945         change.
10946         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10947         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
10948         last_float when switching float modes.
10949         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
10950         auto-increment for general-purpose registers.
10951         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
10952         result.
10953         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
10954         for stack adjust.
10955         * config/sh/sh.c (sh_builtin_saveregs): Support using all
10956         registers for varargs.
10957         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
10958         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
10959         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
10960         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
10961         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
10962         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
10963         call_cookie accordingly.
10964         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
10965         (SHCOMPACT_BYREF): Likewise.
10966         (SHCOMPACT_FORCE_ON_STACK): New macro.
10967         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
10968         (sh_builtin_saveregs): Likewise.
10969         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
10970         shcompact_incoming_args): Use new shift values.  Support
10971         sequences of consecutive and non-consecutive pushes/pops.
10972         * config/sh/sh.md (return): Don't explicitly use PR_REG.
10973         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
10974         * config/sh/sh.h (TEXT_SECTION): Define.
10975         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
10976         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10977         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
10978         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
10979         return values on FPU-enabled SHmedia.
10980         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
10981         FPU-enabled SHmedia.
10982         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
10983         value is returned in a non-FP reg and is not returned by
10984         reference.
10985         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
10986         jump_ind.
10987         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
10988         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
10989         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
10990         quad-aligned to be passed by callee-copy reference.
10991         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
10992         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
10993         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
10994         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
10995         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
10996         copying low-numbered FP regs to r7 and r8.
10997         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
10998         FP regs to general-purpose regs only if the copy was passed on the
10999         stack.
11000         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
11001         copying FP reg to r9.
11002         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
11003         copy FP regs to general-purpose regs only in outgoing calls.
11004         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
11005         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
11006         HOST_WIDE_INT.
11007         * config/sh/sh.h (struct sh_args): Document all fields.
11008         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
11009         passed partially on the stack should not consider making
11010         sibcalls.
11011         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
11012         stack_regs only for incoming calls.  When passing FP args,
11013         make sure there are FP regs available before modifying
11014         call_cookie.
11015         (SHCOMPACT_BYREF): Pass double args in general-purpose
11016         registers by reference.
11017         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
11018         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
11019         attempt to generate sibcalls if the caller got any arguments
11020         by reference.
11021         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
11022         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
11023         to 8-byte boundaries.
11024         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
11025         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
11026         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
11027         stored in the stack.
11028         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
11029         for the offsets to have the ISA bit set.
11030         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
11031         invocation.  Use beq instead of bgt to mark end of sequence of
11032         loads.
11033         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
11034         bgt to mark end of sequence of stores.
11035         * config/sh/sh.c (arith_operand): Don't check whether
11036         CONST_OK_FOR_J for now.
11037         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
11038         instead of long for conversion.
11039         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
11040         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
11041         before passing it to fprintf.
11042         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
11043         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
11044         Call set_fpscr before reading/writing SR.
11045         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
11046         Call set_fpscr.
11047         * config/sh/lib1funcs.asm: Add `.align 2' directives before
11048         SHmedia code.
11049         (FMOVD_WORKS): Define on SH5 with FPU.
11050         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
11051         setting.
11052         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
11053         _fpscr_values.
11054         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
11055         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
11056         address.
11057         (ia_main_table): Ditto.
11058         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
11059         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11060         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
11061         the definitions from sh.h.
11062         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
11063         TARGET_SH5.
11064         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
11065         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
11066         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11067         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
11068         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
11069         Increment LABEL_NUSES.
11070
11071         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
11072         TARGET_SH5.
11073         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
11074         defined.
11075         * config/sh/elf.h (SIZE_TYPE): Likewise.
11076         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11077         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11078         shcompact_incoming_args): Load switch table addresses using
11079         datalabel.
11080         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11081         (NO_BUILTIN_SIZE_TYPE): Define.
11082         (SIZE_TYPE): Don't define.
11083         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11084         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
11085         definition of __SH5__=32 for -m5-compact-nofpu.
11086         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
11087         ADDR_DIFF_VEC.
11088         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
11089         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
11090         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
11091         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
11092         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
11093         (INSN_LENGTH_ALIGNMENT): Likewise.
11094         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11095         * config/sh/sh.md (call, call_value, sibcall): Simplify
11096         copying of non-branch-target register.
11097         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11098         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
11099         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
11100         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11101         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
11102         floating-point values as structs.
11103         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
11104         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
11105         general-purpose register.
11106         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
11107         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11108         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
11109         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
11110         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
11111         (ENCODE_SECTION_INFO): Enclose variables and constants in
11112         DATALABEL unspecs.
11113         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
11114         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
11115         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
11116         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
11117         only for LABEL_REFs.  For SYMBOL_REFs, prepend
11118         SH_DATALABEL_ENCODING to the symbol name.
11119         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
11120         convert_mode().
11121         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11122         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
11123         UNSPEC_DATALABEL.
11124         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
11125         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
11126         (DATALABEL_REF_P): Don't require CONST.
11127         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
11128         REL label.
11129         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
11130         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
11131         right.
11132         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11133         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
11134         Use shallow_copy_rtx and PUT_MODE to change the mode of
11135         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
11136         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
11137         on SHmedia using GENERAL_REGs.
11138         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11139         bltu_media_i): Fix reversion of conditions.
11140         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11141         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
11142         * config/sh/sh.c (output_far_jump): Save r13 in macl.
11143         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
11144         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
11145         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
11146         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
11147         (GCC_nested_trampoline): Likewise.
11148         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
11149         * config/sh/sh.c (gen_datalabel_ref): Define.
11150         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
11151         (INITIALIZE_TRAMPOLINE): Likewise.
11152         (TRAMPOLINE_ADJUST_ADDRESS): Define.
11153         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
11154         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
11155         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
11156         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
11157         (ic_invalidate): Adjust for SH5.
11158         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
11159         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
11160         _nested_trampoline.
11161         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
11162         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
11163         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
11164         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11165         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
11166         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
11167         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11168         * config/sh/sh.c (target_reg_operand): Match only target-branch
11169         registers and pseudos that aren't virtual registers.
11170         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11171         Copy operands that don't match target_reg_operand to pseudos.
11172         (call_media, call_value_media, sibcall_media): Use
11173         target_reg_operand instead of target_operand.
11174         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
11175         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
11176         * config/sh/sh.c (target_reg_operand): Match hardware registers
11177         other than branch-target registers.
11178         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
11179         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
11180         (fpscr_values) [SH5 == 32]: Define.
11181         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
11182         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11183         Handle function addresses coming in SUBREGs.
11184         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
11185         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11186         shcompact_return_trampoline): Use datalabel where appropriate.
11187         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
11188         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
11189         general-purpose register to copy one branch-target register to
11190         another.
11191         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11192         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
11193         SYMBOL_REFs with VOIDmode.
11194         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11195         bltu_media_i): New insns.
11196         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11197         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
11198         (INIT_CUMULATIVE_ARGS): Likewise.
11199         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
11200         * machmode.def (V16SFmode): New mode.
11201         * c-common.c (type_for_mode): Support V2SF and V16SF.
11202         * tree.c (build_common_tree_nodes_2): Likewise.
11203         * tree.h (tree_index): Likewise.
11204         * calls.c (emit_call_1): Take args_so_far.  Adjust all
11205         callers.  Introduce CALL_POPS_ARGS.
11206         * tm.texi (CALL_POPS_ARGS): Document.
11207         * config/sh/crt1.asm: Implement in SHmedia mode.
11208         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
11209         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
11210         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
11211         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
11212         Implement divsi and udivsi in SHmedia mode.  Introduce
11213         SHcompact trampolines.
11214         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
11215         only in SHmedia64.
11216         (regno_reg_class): Rewrite.
11217         (fp_reg_names): Remove.
11218         (sh_register_names, sh_additional_register_names): New.
11219         (print_operand): Added `u'.  Support SUBREGs in addresses.
11220         Add parentheses around shifted CONSTs.
11221         (output_file_start): Output .mode and .abi directives.
11222         (shiftcosts, addsubcosts, multcosts): Adjust.
11223         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
11224         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
11225         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
11226         bytes, not registers.  Take into account the need for the
11227         SHcompact incoming args trampoline.  Adjust all callers.
11228         (sh_expand_prologue): Take stack_regs into account.  Call
11229         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
11230         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
11231         stack aligned as per SH5 ABI.
11232         (sh_builtin_saveregs): Support SH5 ABI.
11233         (sh_build_va_list, sh_va_start): Likewise.
11234         (initial_elimination_offset): Take alignment into account.
11235         Compute location of PR according to the SH5 stack frame.
11236         (arith_reg_operand): Reject branch-target registers.
11237         (shmedia_6bit_operand): New.
11238         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
11239         (target_reg_operand): Match DImode only.  Accept SUBREGs.
11240         (target_operand): New.
11241         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
11242         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
11243         SIBCALL_REGS for SHmedia.
11244         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
11245         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
11246         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
11247         (TARGET_SWITCHES): New SH5 flags.
11248         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
11249         VALID_REGISTER_P to disable unsupported registers.
11250         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
11251         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
11252         (FUNCTION_ARG_PADDING): Define.
11253         (FASTEST_ALIGNMENT): Adjust.
11254         (SH_REGISTER_NAMES_INITIALIZER): New.
11255         (sh_register_names): Declare.
11256         (DEBUG_REGISTER_NAMES): Define.
11257         (REGISTER_NAMES): Define based on sh_register_names.
11258         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
11259         (sh_additional_register_names): Declare.
11260         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
11261         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
11262         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
11263         (REGISTER_NATURAL_MODE): Define.
11264         (FIRST_PSEUDO_REGISTER): Adjust.
11265         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
11266         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
11267         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
11268         (VECTOR_MODE_SUPPORTED_P): Define.
11269         (REG_CLASS_CONTENTS): Adjust.
11270         (SMALL_REGISTER_CLASSES): Adjust.
11271         (REG_ALLOC_ORDER): Adjust.
11272         (INDEX_REG_CLASS): Adjust.
11273         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
11274         (CONST_OK_FOR_LETTER_P): Adjust.
11275         (PREFERRED_RELOAD_CLASS): Adjust.
11276         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
11277         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
11278         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
11279         (FIRST_FP_PARM_REG): Adjust.
11280         (CALL_POPS_ARGS): Define.
11281         (FUNCTION_ARG_REGNO_P): Adjust.
11282         (struct sh_args): New fields.
11283         (GET_SH_ARG_CLASS): Adjust.
11284         (INIT_CUMULATIVE_ARGS): Adjust.
11285         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
11286         (FUNCTION_ARG_ADVANCE): Adjust.
11287         (FUNCTION_ARG): Adjust.
11288         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
11289         (FUNCTION_ARG_CALLEE_COPIES): Define.
11290         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
11291         (STRICT_ARGUMENT_NAMING): Define.
11292         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
11293         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
11294         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
11295         (SETUP_INCOMING_VARARGS): Adjust.
11296         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
11297         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
11298         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
11299         (SUBREG_OK_FOR_INDEX_P): Adjust.
11300         (EXTRA_CONSTRAINT_S): Update.
11301         (EXTRA_CONSTRAINT_T): New.
11302         (EXTRA_CONSTRAINT): Adjust.
11303         (GO_IF_LEGITIMATE_INDEX): Adjust.
11304         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
11305         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
11306         (MOVE_MAX): Adjust.
11307         (MAX_MOVE_MAX): Define.
11308         (Pmode): Adjust.
11309         (CONST_COSTS): Adjust.
11310         (REGISTER_MOVE_COST): Adjust.
11311         (BRANCH_COST): Adjust.
11312         (TEXT_SECTION_ASM_OP): Adjust.
11313         (DBX_REGISTER_NUMBER): Adjust.
11314         (ASM_OUTPUT_DOUBLE_INT): New.
11315         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
11316         (PREDICATE_CODES): Adjust.
11317         (PROMOTE_MODE): Adjust.
11318         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
11319         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
11320         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
11321         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
11322         (DR0_REG, DR2_REG, DR4_REG): Renumber.
11323         (TR0_REG, TR1_REG, TR2_REG): New.
11324         (XD0_REG): Renumber.
11325         (UNSPEC_COMPACT_ARGS): New.
11326         (type): Added pt and ptabs.
11327         (length): Default to 4 on SHmedia.  Default pt length to 12
11328         and     20 on SHmedia32 and SHmedia64, respectively.
11329         (pt): New function unit.
11330         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
11331         Add whitespace between operands of SHmedia instructions.
11332         (movdicc): Fix.
11333         (adddi3_media, addsi3_media): Adjust constraints.
11334         (subsi3) [SHmedia]: Force operand 1 into a register.
11335         (udivsi3_i1_media, udivsi3_i4_media): New.
11336         (udivsi3): Support SHmedia.
11337         (divsi3_i1_media, divsi3_i4_media): New.
11338         (divsi3): Support SHmedia.
11339         (anddi3, iordi3, xordi3): Adjust constraints.
11340         (zero_extendhidi2, zero_extendqidi2): New.
11341         (extendsidi2, extendhidi2, extendqidi2): New.
11342         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
11343         (pop_e, pop_fpul, pop_4): Likewise.
11344         (movsi_media): Support FP and BT registers.
11345         (movsi_media_nofpu): New.  Adjust splits to DImode.
11346         (lduw, ldub): Renamed to zero_extend* above.
11347         (movqi_media): Fix typo.
11348         (movdi_media): Support FP and BT registers.
11349         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
11350         (movdi_const_32bit): New.
11351         (shori_media): Require immediate operand.  Use `u' for output.
11352         (movdf_media, movsf_media): Simplified.
11353         (movdf_media_nofpu, movsf_media_nofpu): New.
11354         (movdf, movsf): Adjust
11355         (movv2sf, movv2sf, movv16sf): New.
11356         (beq_media, beq_media_i): Adjust constraints.  Don't use
11357         scratch BT register.
11358         (bne_media, bne_media_i): Likewise.
11359         (bgt_media, bgt_media_i): Likewise.
11360         (bge_media, bge_media_i): Likewise.
11361         (bgtu_media, bgtu_media_i): Likewise.
11362         (bgeu_media, bgeu_media_i): Likewise.
11363         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
11364         bunordered): Emit jump insn.  Force operands to registers when
11365         needed.
11366         (jump_media, jump): Simplify.
11367         (call_compact, call_compact_rettramp): New.
11368         (call_value_compact, call_value_compact_rettramp): New.
11369         (call_media, call_value_media): Simplify.
11370         (sibcall_compact, sibcall_media): New.
11371         (call, call_value): Adjust for SHmedia and SHcompact.
11372         (sibcall, sibcall_value, untyped_call): Likewise.
11373         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
11374         (indirect_jump): Adjust for SHmedia.
11375         (casesi_jump_media): New.
11376         (nop): Re-enable for SHmedia.
11377         (call_site): Restrict to SH1.
11378         (casesi): Adjust for SHmedia.
11379         (casesi_shift_media, casesi_load_media): New.
11380         (return): Explicitly use PR register.  Call return trampoline
11381         on SHcompact.
11382         (return_i): Explicitly use PR register.
11383         (shcompact_return_tramp, shcompact_return_tramp_i): New.
11384         (return_media): Adjust.
11385         (shcompact_incoming_args): New.
11386         (epilogue): Adjust.
11387         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
11388         (movstrsi): Disable on SH5.
11389         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
11390         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
11391         (subsf3, subsf3_media): Likewise.
11392         (mulsf3, mulsf3_media, mac_media): Likewise.
11393         (divsf3, divsf3_media): Likewise.
11394         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
11395         (floatsisf2, fux_truncsfsi2): Likewise.
11396         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
11397         constraints.
11398         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
11399         (cmpunsf_media, cmpsf): Likewise.
11400         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
11401         (abssf2, abssf2_media): Likewise.
11402         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
11403         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
11404         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
11405         (floatsidf2, fix_truncdfsi2): Likewise.
11406         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
11407         constraints.
11408         (cmpeqdf_media, cmpgtdf_media): Likewise.
11409         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
11410         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
11411         (absdf2, absdf2_media): Likewise.
11412         (extendsfdf2, extendsfdf2_media): Likewise.
11413         (truncsfdf2, truncsfdf2_media): Likewise.
11414         * config/sh/sh64.h: New file.
11415         * config/sh/t-sh64: New file.
11416         * config/sh/shmedia.h: New file.
11417         * config/sh/ushmedia.h: New file.
11418         * config/sh/sshmedia.h: New file.
11419         * configure.in: Added sh64-*-elf.
11420         * configure: Rebuilt.
11421         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
11422         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
11423         (reg_class_from_letter): Use `b' for TARGET_REGS.
11424         (print_operand): Support `%M', `%m', `AND' and
11425         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
11426         (andcosts): Adjust for SHmedia.
11427         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
11428         Likewise.
11429         (target_reg_operand): New function.
11430         * config/sh/sh-protos.h (target_reg_operand): Declare.
11431         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
11432         FP registers on SH5.
11433         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
11434         on SH4.
11435         (TARGET_REGISTER_P): New macro.
11436         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
11437         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
11438         (EXTRA_CONSTRAINT_S): New macro.
11439         (EXTRA_CONSTRAINT): Adjust.
11440         (FLOAT_TYPE_SIZE): Define to 32.
11441         (Pmode): DImode on SHmedia.
11442         (CONST_COSTS): Adjust for SHmedia literals.
11443         (PREDICATE_CODES): Added target_reg_operand.
11444         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
11445         * config/sh/sh.md: Remove all attrs from SHmedia insns.
11446         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
11447         (cmpdi): Accept SHmedia.
11448         (movdicc_false, movdicc_true): New insns.
11449         (movdicc): New expand.
11450         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
11451         no_new_pseudos.
11452         (addsi3_media): Match `S' constraint.
11453         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
11454         (negdi2): Expand for SHmedia.
11455         (one_cmpldi2): New expand.
11456         (zero_extendsidi2): Change from expand to insn.
11457         (extendsidi2): Add constraints.
11458         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
11459         LD/ST address.  Fix SI immediate loading split.
11460         (movhi_media, movqi_media, lduw, ldub): New insns.
11461         (movhi, movqi): Accept SHmedia.
11462         (shori_media, movdi_media): Relax input constraints.  Split
11463         symbolic constants.
11464         (movdf_media, movsf_media): New insn.  New split to movdi.
11465         (movdf, movsf): Match on SHmedia.
11466         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
11467         bgeu_media): New insns and splits.  New insns with `_i' suffix.
11468         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
11469         (bunordered): New expand.
11470         (jump_compact): Renamed from `jump'.
11471         (jump_media): New insn.
11472         (jump): New expand.
11473         (call_media, call_value_media): New insns.
11474         (call, call_value): Adjust.
11475         (indirect_jump_compact): Renamed from `indirect_jump'.
11476         (indirect_jump_media): New insn.
11477         (indirect_jump): New expand.
11478         (untyped_call, return): Accept SHmedia.
11479         (return_media): New insn.
11480         (prologue, epilogue, blockage): Accept SHmedia.
11481         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
11482         (sunordered): New expand.
11483         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
11484         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
11485         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
11486         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
11487         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
11488         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
11489         abssf2_media): New insns.
11490         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
11491         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
11492         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
11493         floatdidf2, floatsidf2_media, fix_truncdfdi2,
11494         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
11495         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
11496         absdf2_media): New insns.
11497         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
11498         (extendsfdf2_media, truncdfsf2_media): New insns.
11499         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
11500         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
11501         * config/sh/sh.h (CONST_OK_FOR_J): Document.
11502         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
11503         * config/sh/sh.md (adddi3): New expand.
11504         (adddi3_media, adddi3z_media): New insns.
11505         (adddi3_compact): Renamed from adddi3.
11506         (addsi3_media): Use add.l r63 to add constant zero.
11507         (subdi3): New expand.
11508         (subdi3_media): New insn.
11509         (subdi3_compact): Renamed from subdi3.
11510         (mulsidi3): New expand.
11511         (mulsidi3_media): New insn.
11512         (mulsidi3_compact): Renamed from mulsidi3.
11513         (umulsidi3): New expand.
11514         (umulsidi3_media): New insn.
11515         (umulsidi3_compact): Renamed from umulsidi3.
11516         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
11517         (ashlsi3, ashrsi3, lshrsi3): Use them.
11518         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
11519         (ashldi3, ashrdi3, lshrdi3): Use them.
11520         (zero_extendsidi2): New expand.
11521         (extendsidi2): New insn.
11522         (movsi_media): New insn.  Split to movdi to load constants.
11523         (movsi): Enable for shmedia.
11524         (movdi_media): New insn.  Use shori_media to load wide constants.
11525         (short_media): New insn.
11526         (movdi): Enable for shmedia.
11527         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
11528         * config/sh/sh.h (CPP_SPEC): Added `m5'.
11529         (SUBTARGET_CPP_SPEC): Added `!m5'.
11530         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
11531         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
11532         to all other SH variants.
11533         (TARGET_DEFAULT): Set to SH1_BIT.
11534         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
11535         (BITS_PER_WORD): Raise to 64 on shmedia.
11536         (MAX_BITS_PER_WORD): Change to 64.
11537         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
11538         (INT_TYPE_SIZE): Keep as 32.
11539         (UNITS_PER_WORD): Raise to 8 on shmedia.
11540         (MIN_UNITS_PER_WORD): Keep as 4.
11541         (POINTER_SIZE): Raise to 64 on shmedia.
11542         (CONST_OK_FOR_J): New macro.
11543         (CONST_OK_FOR_LETTER_P): Use it.
11544         (processor_type): Add PROCESSOR_SH5.
11545         * config/sh/sh.md: Conditionalize all expands, insns and
11546         splits to TARGET_SH1.
11547         (cpu): Added sh5.
11548         (addsi3_compact): Renamed from...
11549         (addsi3): Now an expand.
11550         (addsi3_media, subsi3_media): New insns.
11551         (subsi3): Don't negate constants with SHmedia.
11552
11553         * hooks.c: New file.
11554         * hooks.h: New file.
11555         * Makefile.in (HOOKS_H): New.
11556         (TARGET_DEF_H): Added $(HOOKS_H).
11557         (OBJS): Added hooks.o.
11558         (cfgcleanup.o, bb-reorder.o): Added target.h.
11559         (hooks.o): Added dependencies.
11560         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
11561         (TARGET_INITIALIZER): this.
11562         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
11563         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
11564         * bb-reorder.c: Include target.h.
11565         (reorder_basic_blocks): Skip if cannot modify jumps.
11566         * cfgcleanup.c: Include target.h.
11567         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
11568
11569 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
11570
11571         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11572         Protect jump delay slot instructions with .set noreorder and
11573         .set nomacro.
11574
11575 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
11576
11577         * config/mips/mips.md (casesi_internal_di): Calculate
11578         the index into the target offset table correctly.
11579
11580 2002-02-08  Richard Henderson  <rth@redhat.com>
11581
11582         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
11583         * final.c (output_addr_const): Accept and discard SUBREG.
11584         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
11585         mark them unknown instead.
11586         (simplify_subtraction): Handle RTX_UNKNOWN.
11587         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
11588
11589 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
11590
11591         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
11592
11593 2002-02-08  Richard Henderson  <rth@redhat.com>
11594
11595         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
11596
11597 2002-02-08  Andreas Jaeger  <aj@suse.de>
11598
11599         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
11600         * config/i386/t-linux64: New file.
11601
11602 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
11603
11604         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
11605         * c-parse.in (compstmt): Clear last_expr_type.
11606
11607 2002-02-07  Richard Henderson  <rth@redhat.com>
11608
11609         * loop.c (strength_reduce): Sink final_value when not
11610         eliminating a biv.
11611
11612 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
11613
11614         * config/sparc/freebsd.h: Fix mismatched spec {.
11615
11616 2002-02-07  Richard Henderson  <rth@redhat.com>
11617
11618         * cfgrtl.c: Include recog.h and insn-config.h.
11619         (keep_with_call_p): Fix general_operand invocation.
11620         * Makefile.in (cfgrtl.o): Update dependencies.
11621
11622 2002-02-07  Kazu Hirata  <kazu@hxi.com>
11623
11624         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
11625         comment.  Accept HImode only if TARGET_H8300.
11626
11627 2002-02-07  Eric Christopher  <echristo@redhat.com>
11628
11629         * config/mips/crtn.asm: Cleanup #ifdefs.
11630
11631 2002-02-07  Eric Christopher  <echristo@redhat.com>
11632
11633         * config/mips/crti.asm: Add changes for mips16. mips16 uses
11634         register 7 as RA instead of $31.
11635         * config/mips/crtn.asm: Ditto.
11636         * config/mips/mips.c (mips_move_2words): Add case for
11637         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
11638         (compute_frame_size): Fix typo.
11639         (save_restore_insns): Ditto.  Make documentation about using
11640         register $7 as return register more precise.
11641         (mips_expand_epilogue): Fix comment. Add code to work around not
11642         being able to add to the stack pointer directly.
11643         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
11644         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
11645         epilogue.
11646
11647 2002-02-07  Tom Rix  <trix@redhat.com>
11648
11649         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
11650         immediates in ldu and stdu DS opcode field.
11651         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
11652         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
11653         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
11654
11655 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
11656
11657         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
11658         offset for stack bias.
11659
11660 2002-02-07  H.J. Lu <hjl@gnu.org>
11661
11662         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
11663
11664 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
11665
11666         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
11667
11668 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
11669
11670         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
11671         * i386.c (x86_order_regs_for_local_alloc): New global function.
11672         * i386.h (REG_ALLOC_ORDER): CLeanup.
11673         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
11674
11675 2002-02-07  Richard Henderson  <rth@redhat.com>
11676
11677         PR optimization/2463
11678         * alias.c (find_base_value): Recall base values for fixed hard regs.
11679         * loop.c (loop_regs_update): Don't use single_set on non-insns.
11680
11681 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
11682
11683         * config/mips/mips.md (define_delay) [mips16]: Adjust required
11684         length.
11685
11686 2002-02-06  Richard Henderson  <rth@redhat.com>
11687
11688         PR c/5609
11689         * stmt.c (resolve_operand_name_1): Take more care with mixed
11690         named and unnamed operands.
11691
11692 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
11693             Jan Hubicka  <jh@suse.cz>
11694
11695         * loop.c (remove_constant_addition): Avoid clobbering a shared
11696         CONST expression.
11697
11698 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11699
11700         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
11701         * config/s390/t-linux64: New file.
11702         * config/s390/libgcc-glibc.ver: New file.
11703
11704 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11705
11706         * config/s390/linux64.h: Delete file.
11707         * config/s390/s390x.h: New file.
11708         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
11709         as target header file.
11710         * config/s390/linux.h (TARGET_VERSION): Define depending on
11711         DEFAULT_TARGET_64BIT.
11712         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
11713         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
11714         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
11715         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
11716         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
11717         (EXTRA_SPEC): New define.
11718         * config/s390/s390.h (TARGET_VERSION): Define depending on
11719         DEFAULT_TARGET_64BIT.
11720         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
11721
11722 2002-02-06  Jason Merrill  <jason@redhat.com>
11723
11724         * c-decl.c (finish_function): Warn about a non-void function with
11725         no return statement and no abnormal exit.
11726         (current_function_returns_abnormally): New variable.
11727         (start_function): Clear it.
11728         (struct c_language_function): Add returns_abnormally.
11729         (push_c_function_context): Save it.
11730         (pop_c_function_context): Restore it.
11731         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
11732         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
11733         an explicit return type.
11734         * c-tree.h: Declare current_function_returns_abnormally.
11735         (C_FUNCTION_IMPLICIT_INT): New macro.
11736         * c-typeck.c (build_function_call): Set it.
11737         (c_expand_return): Set current_function_returns_value even if the
11738         value is erroneous.
11739
11740 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
11741
11742         PR c/5420:
11743         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
11744         unsafe for reevaluation.
11745
11746 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
11747
11748         PR c/5482:
11749         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
11750         EXPR_STMT, but COMPOUND_STMT, recurse into it.
11751
11752 2002-02-06  Richard Henderson  <rth@redhat.com>
11753
11754         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
11755         be a general_operand.  Dest for function value must be a pseudo.
11756
11757 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
11758
11759         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
11760         as SYMBOL_REFs from the constant pool.
11761
11762 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
11763
11764         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
11765         passed by invisible reference.
11766
11767 2002-02-05  Richard Henderson  <rth@redhat.com>
11768
11769         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
11770
11771 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
11772
11773         Implement using "base addresses" in insn operands as default.
11774         * config/mmix/mmix.c (mmix_conditional_register_usage): if
11775         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
11776         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
11777         used to read the rtx value.
11778         (mmix_target_asm_function_epilogue): Fix spacing.
11779         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
11780         (mmix_legitimate_address): Ditto.
11781         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
11782         should be loaded with a GETA insn.  Don't allocate needless extra
11783         char for nul termination and fix misleading comment.
11784         (mmix_print_operand_address): Handle constants if
11785         TARGET_BASE_ADDRESSES.
11786         (mmix_output_register_setting): Use base addressing if
11787         TARGET_BASE_ADDRESSES and the number of insns is 3.
11788         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
11789         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
11790         to use R as constraint, add LDA to match s.
11791         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
11792         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
11793         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
11794         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
11795         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
11796         order with other fixed registers.
11797         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
11798         other parameter/call-clobbered registers.
11799         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
11800         -mbase-addresses, -mno-base-addresses.
11801         (MMIX Options): Ditto.
11802
11803 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11804
11805         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
11806
11807 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
11808
11809         * config/rs6000/altivec.h: Change elem to _S_elem.
11810
11811 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
11812
11813         * config/netbsd.h (WCHAR_TYPE): Define.
11814         (WCHAR_TYPE_SIZE): Ditto.
11815         (WINT_TYPE): Ditto.
11816         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
11817         (WCHAR_UNSIGNED): Ditto.
11818         (WCHAR_TYPE_SIZE): Ditto.
11819         (WINT_TYPE): Ditto.
11820         * config/arm/netbsd.h: Likewise.
11821         * config/i386/netbsd-elf.h: Likewise.
11822         * config/i386/netbsd.h: Likewise.
11823         * config/m68k/netbsd-elf.h: Likewise.
11824         * config/m68k/netbsd.h: Likewise.
11825         * config/ns32k/netbsd.h: Likewise.
11826         * config/sparc/netbsd.h: Likewise.
11827         * config/vax/netbsd.: Likewise.
11828
11829 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11830
11831         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
11832         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
11833         (TARGET_INITIALIZER): this.
11834         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
11835         (BITFIELD_NBYTES_LIMITED): Markup fix.
11836         * tree.h (default_ms_bitfield_layout_p): Declare.
11837         (record_layout_info): Added prev_field.
11838         * tree.c (default_ms_bitfield_layout_p): New fn.
11839         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
11840         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
11841         * stor-layout.c: Include target.h.
11842         (start_record_layout): Initialize prev_field.
11843         (place_field): Handle MS bit-field layout, and disregard
11844         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
11845         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
11846         * Makefile.in (stor-layout.o): Adjust dependencies.
11847
11848 2002-02-05  Jason Merrill  <jason@redhat.com>
11849
11850         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
11851
11852 2002-02-05  Andreas Jaeger  <aj@suse.de>
11853
11854         * crtstuff.c: Fix comments.
11855
11856 2002-02-05  Richard Henderson  <rth@redhat.com>
11857
11858         PR fortran/3393
11859         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
11860         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
11861
11862         PR fortran/3392
11863         * config/mips/mips.c (function_arg): Handle TImode.
11864         (function_arg_advance): Likewise.
11865
11866 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11867
11868         * config/rs6000/altivec.h (vec_step_help): Rename to
11869         __vec_step_help.
11870
11871 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11872
11873         * config/rs6000/altivec.h: Fix typos.
11874
11875 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
11876
11877         * config/arm/netbsd.h: Correct a comment.
11878
11879 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11880
11881         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
11882         building void typed builtins.
11883
11884         * config/rs6000/altivec.h (vec_ld*): Fix typos.
11885         (vec_step): Implement for C++.
11886
11887 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11888
11889         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
11890
11891 2002-02-04  Richard Henderson  <rth@redhat.com>
11892
11893         * combine.c (nonzero_bits): Re-introduce special case for
11894         sp/fp/ap wrt REGNO_POINTER_ALIGN.
11895
11896 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11897
11898         * doc/extend.texi: Warn about unsupported usage of altivec
11899         builtins.
11900
11901         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
11902         (altivec_predicate_*): New.
11903
11904         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
11905         Add C++ version of vec_*() functions.
11906
11907         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
11908         (bdesc_2arg): Remove altivec predicates.
11909         (altivec_expand_builtin): Handle predicates.
11910         (altivec_init_builtins): Handle predicates.
11911         (altivec_expand_predicate_builtin): New.
11912
11913 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11914
11915         * pa.c (DO_FRAME_NOTES): Move forward.
11916         (store_reg): Revise handling of frame notes.
11917         (load_reg): Likewise.
11918         (set_reg_plus_d): Likewise.
11919         (hppa_expand_prologue): Likewise.
11920         (hppa_expand_epilogue): Likewise.
11921
11922 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11923
11924         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
11925
11926 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
11927
11928         PR c/4475, c++/3780:
11929         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
11930         * c-common.h (SWITCH_TYPE): Define.
11931         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
11932         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
11933         Rename spareness variable to sparseness.
11934         (expand_end_case_type): Renamed from expand_end_case, use orig_type
11935         if non-NULL instead of TREE_TYPE (orig_index).
11936         * tree.h (expand_end_case_type): Renamed from expand_end_case.
11937         (expand_end_case): Define using expand_end_case_type.
11938         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
11939         to expand_end_case_type.
11940         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
11941
11942 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11943
11944         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
11945         (BIGGEST_ALIGNMENT): Change to 128.
11946
11947 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11948
11949         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
11950
11951 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11952
11953         * pa.md (call_internal_reg_64bit): Remove unused variable.
11954
11955 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
11956
11957         * config/arm/arm.h (machine_function): Add uses_anonymous_args
11958         field.
11959         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
11960         * config/arm/arm.c (current_function_anonymous_args): Delete,
11961         replace uses with cfun->machine->uses_anonymous_args.
11962         (arm_reorg): Do not reset uses_anonymous_args.
11963
11964         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
11965         any geenral register.
11966
11967 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
11968
11969         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
11970         the entry block.
11971
11972 2002-02-04  Richard Henderson  <rth@redhat.com>
11973
11974         * combine.c (force_to_mode): Remove STACK_BIAS code.
11975         (nonzero_bits): Likewise.  Replace sp/fp special case with
11976         REGNO_POINTER_ALIGN.
11977
11978         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
11979         (HARD_FRAME_POINTER_REGNUM): New.
11980         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
11981         (FIXED_REGS, CALL_USED_REGS): Update.
11982         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
11983         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
11984         (HARD_REGNO_NREGS): Update for SFP.
11985         (STACK_POINTER_OFFSET): Include bias here ...
11986         (FIRST_PARM_OFFSET): ... not here.
11987         (STACK_BIAS): Remove.
11988         (INIT_EXPANDERS): New.
11989         (STARTING_FRAME_OFFSET): Do not include bias.
11990         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
11991         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
11992         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
11993         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
11994         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
11995         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
11996         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
11997         (MUST_SAVE_REGISTER): Likewise.
11998         (sparc_flat_function_prologue): Likewise.
11999         (sparc_flat_function_epilogue): Likewise.
12000         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
12001         (sparc_init_modes): SFP is GENERAL_REGS.
12002         (sparc_builtin_saveregs): SFP does not have bias applied.
12003
12004 2002-02-04  Richard Henderson  <rth@redhat.com>
12005
12006         * config/alpha/alpha.c (current_function_is_thunk): Don't check
12007         current_function_is_thunk.
12008         (alpha_sa_mask): Distinguish between current_function_is_thunk
12009         called from ASM_OUTPUT_MI_THUNK and not.
12010         (alpha_does_function_need_gp): Thunks always need gp.
12011         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12012         (alpha_output_mi_thunk_osf): New.
12013         * config/alpha/alpha-protos.h: Update.
12014         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
12015
12016 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
12017
12018         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
12019         function types, not when they're taken away.
12020
12021 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
12022
12023         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
12024         CODE_LABEL and jump table when replacing a table jump with a
12025         simple jump.
12026
12027 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12028
12029         * config/s390/s390-protos.h (legitimize_la_operand,
12030         s390_secondary_input_reload_class, s390_plus_operand,
12031         s390_expand_plus_operand): Add prototypes.
12032
12033         config/s390/s390.c (s390_secondary_input_reload_class,
12034         s390_plus_operand, s390_expand_plus_operand): New functions.
12035
12036         (struct s390_address): New member 'pointer'.
12037         (s390_decompose_address): Compute it.
12038         (legitimate_la_operand_p): Use it.
12039         (legitimize_la_operand): New function.
12040         (movti, movdi, movdf splitters): Call it.
12041
12042         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
12043         (PREDICATE_CODES): Add s390_plus_operand.
12044
12045         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
12046         (la_ccclobber): Allow GENERAL_REGS as output operand.
12047
12048         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
12049         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
12050         (*la_64, *la_31, reload_indi, reload_insi): ... these.
12051
12052 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12053
12054         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
12055         register names for regular asm () construct.
12056
12057 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12058
12059         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
12060         registers.
12061
12062 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12063
12064         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
12065         pat for recog.
12066
12067 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
12068
12069         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
12070         constant pool to be identical by string address and index.
12071
12072 2002-02-04  Anthony Green  <green@redhat.com>
12073
12074         * output.h (SECTION_OVERRIDE): Define.
12075         * varasm.c (named_section): Obey SECTION_OVERRIDE.
12076
12077 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12078
12079         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
12080         by existing arm*-*-netbsd* (a.out) target.
12081         (ns32k-*-netbsdelf*): Likewise.
12082         (sparc-*-netbsdelf*): Likewise.
12083         (vax-*-netbsdelf*): Likewise.
12084
12085 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
12086
12087         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
12088         headers and libobjc headers.
12089
12090 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
12091
12092         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
12093         (_mingw.h): Remove duplicate include.
12094
12095 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12096
12097         * config.gcc: Set cpu_type to m68k for 68010, as well.
12098         (m68010-*-netbsdelf*): New...
12099         (m68k*-*-netbsdelf*): ...targets.
12100         * config/m68k/netbsd-elf.h: New file.
12101
12102 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12103
12104         * config/h8300/h8300.c (hand_list): Move inside function_arg.
12105
12106 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12107
12108         * config/h8300/h8300.c (h8_push_ops): Move inside
12109         h8300_init_once.
12110         (h8_pop_ops): Likewise.
12111         (h8_move_ops): Likewise.
12112
12113 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12114
12115         * config/h8300/h8300.c (os_task): Make it static.
12116         (monitor): Likewise.
12117         (pragma_saveall): Likewise.
12118
12119 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
12120
12121         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
12122         constant is a valid sign-extension for Pmode.
12123
12124 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12125
12126         * config/h8300/h8300.c: Fix formatting.
12127
12128 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12129
12130         * config/h8300/h8300.md: Fix formatting.
12131
12132 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12133
12134         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
12135         predicates of operands[1].  Split the patterns for each
12136         processor variant.
12137
12138 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12139
12140         * config/h8300/h8300.md (xor patterns): Tighten the predicates
12141         of operands[1] to register_operand.
12142
12143 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12144
12145         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
12146         * cpphash.c (_cpp_init_hashtable): Similarly.
12147         * cppinit.c (cpp_create_reader): Default the signed_char flag.
12148         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
12149         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
12150         (cpp_handle_option): Handle the new options.
12151         * cpplex.c (cpp_interpret_charconst): Use new flag.
12152         * cpplib.h (struct cpp_options): New member signed_char.
12153         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
12154         (cpp_options): Handle -fsigned-char and -funsigned-char.
12155         (static_specs): Remove signed_char_spec.
12156         (do_spec1): Don't handle %c.
12157         * system.h: Poison SIGNED_CHAR_SPEC.
12158         * tradcif.y (yylex): Use flag_signed_char.
12159         * tradcpp.h (flag_signed_char): New.
12160         * tradcpp.c (flag_signed_char): New.
12161         (main): Handle new command-line options.
12162         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
12163 config:
12164         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
12165         * avr/avr.h: Remove old comments.
12166         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
12167         (CC1_SPEC): Pass -fsigned-char if -mic*.
12168         (SIGNED_CHAR_SPEC): Remove.
12169 doc:
12170         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
12171
12172 2002-02-01  Eric Christopher  <echristo@redhat.com>
12173
12174         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
12175         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
12176         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
12177         (ASM_OUTPUT_REG_POP): Ditto.
12178
12179 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12180
12181         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
12182         patch.
12183
12184 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12185
12186         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
12187
12188 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12189
12190         PR c/5304:
12191         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
12192         unconditionally.
12193
12194 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12195
12196         * cfganal.c: Include tm_p.h.
12197         (keep_with_call_p): Fix the test that determines if a register holds
12198         the return value of a call.
12199
12200 2002-02-01  DJ Delorie  <dj@redhat.com>
12201
12202         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
12203         we are given conflicting registers, switch to the other one we
12204         had allocated for us.
12205         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
12206         as TImode so we know when the "other" register is available.
12207
12208 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
12209
12210         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
12211         sparc/sparc_bi.h.
12212
12213 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12214
12215         * cfganal.c (keep_with_call_p): New function.
12216         (flow_call_edges_add): Prevent splitting a block between a call and
12217         a single-set instruction that should be kept in the same block.
12218
12219 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12220
12221         * doc/install.texi (avr): Update outdated URL.
12222
12223 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
12224
12225         * config/stormy16/stormy16.md (pushqi): New.
12226         (popqi): New.
12227         (pushhi): New.
12228         (pophi): New.
12229         (movhi): Remove stack operands.
12230         (movqi): Likewise.
12231         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
12232         nonimmediate_nonstack_operand.
12233         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
12234         New.
12235         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
12236         New.
12237
12238 2002-01-31  Jason Merrill  <jason@redhat.com>
12239
12240         * Makefile.in (c-parse.c): Handle .output file.
12241         * objc/Make-lang.in (objc-parse.c): Likewise.
12242
12243 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
12244
12245         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
12246         the -me[lb] option is given.  Don't output the default flag
12247         twice.
12248
12249 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
12250
12251         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
12252         the primary source file; this has not been done yet.
12253         * c-decl.c (c_expand_body): Reset input_filename from
12254         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
12255
12256 2002-01-31  Kazu Hirata  <kazu@hxi.com>
12257
12258         * rtlanal.c (subreg_regno_offset): Do not use
12259         SUBREG_REGNO_OFFSET.
12260         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
12261         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
12262
12263 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12264
12265         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
12266         version rather than GNATS version in --version output.
12267
12268 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
12269
12270         * ifcvt.c (noce_process_if_block): Make a copy of the destination
12271         when copying back from a temporary.
12272
12273 2002-01-30  Richard Henderson  <rth@redhat.com>
12274
12275         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
12276         and new_dest are the same.
12277
12278 2002-01-30  Richard Henderson  <rth@redhat.com>
12279
12280         PR opt/5076
12281         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
12282         * rtl.c (note_insn_name): Update.
12283         * emit-rtl.c (remove_unnecessary_notes): Kill it.
12284         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
12285         to perform loop rotation.
12286         (expand_exit_loop_top_cond): New.
12287         * tree.h (expand_exit_loop_top_cond): Declare it.
12288         * c-semantics.c (genrtl_while_stmt): Use it.
12289         (genrtl_for_stmt): Likewise.
12290
12291 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
12292
12293         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
12294         arguments to 64-bit boundaries on 64-bit ABIs.
12295
12296 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
12297
12298         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
12299
12300 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12301
12302         * c-decl.c (grokdeclarator): Handle type being a typedef for an
12303         invalid type.
12304
12305 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
12306
12307         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
12308         * config/sparc/sparc_bi.h: Remove file.
12309         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
12310
12311 2002-01-30  Richard Henderson  <rth@redhat.com>
12312
12313         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
12314
12315 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
12316
12317         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
12318
12319 2002-01-30  Jason Merrill  <jason@redhat.com>
12320
12321         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
12322         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
12323         (reg_save): Use DW_CFA_offset_extended_sf instead.
12324
12325         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
12326
12327 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12328
12329         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
12330         in cselib_lookup.
12331
12332 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
12333
12334         * rs6000.md ("*call_value_local32"): Remove constraints.
12335         ("*call_value_local64"): Same.
12336         ("*call_value_indirect_nonlocal_aix32"): Same.
12337         ("*call_value_nonlocal_aix32"): Same.
12338         ("*call_value_indirect_nonlocal_aix64"): Same.
12339         ("*call_value_nonlocal_aix64"): Same.
12340         ("*call_value_nonlocal_sysv"): Same.
12341
12342 2002-01-29  Richard Henderson  <rth@redhat.com>
12343
12344         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
12345
12346 2002-01-29  Richard Henderson  <rth@redhat.com>
12347
12348         * expr.c (force_operand): Ignore flag_pic for detecting pic
12349         address loads.
12350         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
12351         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
12352         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
12353         instead of open-coded loop.
12354         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
12355         be fixed when in use.
12356
12357 2002-01-29  Richard Henderson  <rth@redhat.com>
12358
12359         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
12360         * sched-rgn.c (propagate_deps): Update them.
12361         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
12362         clobbers list when either gets too long.
12363
12364 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12365
12366         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
12367         and INDEX_REGS the same as GENERAL_REGS.
12368         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
12369
12370 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12371
12372         * tree.c (build_nonstandard_integer_type): Correct prototype.
12373
12374 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
12375
12376         * config/s390/s390.md (movstrsico, movstrdix_64,
12377         movstrsix_31): Remove, replace by ...
12378         (movstrdi_short, movstrsi_short, movstrdi_long,
12379         movstrsi_long): ... these.  New.
12380         (movstrdi, movstrsi): Adapt.
12381
12382         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
12383         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
12384         Remove unnecessary CC clobber.
12385         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
12386         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
12387
12388         (divmoddi4): Don't partially initialize TImode register.
12389
12390 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
12391
12392         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
12393
12394 2002-01-29  Richard Henderson  <rth@redhat.com>
12395
12396         * flow.c (print_rtl_and_abort): Remove.
12397         (print_rtl_and_abort_fcn): Remove.
12398         (verify_local_live_at_start): Use dump_bb instead.
12399         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
12400         (verify_wide_reg_1): Return 2 on mode test failure.
12401
12402 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12403
12404         PR c/3325, c/3326, c/2511, c/3347
12405         * c-decl.c (enum_decl_context): Remove BITFIELD.
12406         (grokdeclarator): Take bitfield width as an input.
12407         Ensure bitfields are given the correct type.  Perform
12408         bitfield width validation with build_bitfield_integer_type
12409         rather than waiting for finish_struct.
12410         (grok_typename, grok_typename_in_parm_context, start_decl,
12411         push_parmdecl, grokfield, start_function): Update calls to
12412         grokdeclarator.
12413         (build_bitfield_integer_type): New function.
12414         (finish_struct): Move bitfield validation to grokdeclarator
12415         and build_bitfield_integer_type.
12416         * tree.c (build_nonstandard_integer_type): New function.
12417         * tree.h (build_nonstandard_integer_type): New prototype.
12418 objc:
12419         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
12420
12421 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12422
12423         PR other/1502:
12424         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
12425         don't ignore unrecognized -W* options.
12426         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
12427         * cpplib.h (cpp_handle_option): Adjust prototype.
12428         * c-decl.c (c_decode_options): Pass 0 as last argument to
12429         cpp_handle_option.
12430
12431         PR c/2896:
12432         * gcc.c (cpp_unique_options): Split from cpp_options.
12433         (cpp_options): Source cpp_unique_options.
12434         (default_compilers): Use cpp_unique_options instead of cpp_options
12435         when used together with cc1_options.
12436         (static_specs): Add cpp_unique_options.
12437         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
12438         when used together with cc1_options.
12439
12440 2002-01-29  Kazu Hirata  <kazu@hxi.com>
12441
12442         * config/h8300/h8300-protos.h: Update the prototype of
12443         output_a_shift.
12444         * config/h8300/h8300.c (output_a_shift): Remove an unused
12445         argument 'insn'.  Remove redundant code.
12446         * config/h8300/h8300.md: Adust to the new prototype of
12447         output_a_shift.
12448
12449 2002-01-29  Kazu Hirata  <kazu@hxi.com>
12450
12451         * config/h8300/h8300-protos.h: Update the prototypes of
12452         emit_a_rotate and expand_a_rotate.
12453         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
12454         first argument to 'enum rtx_code'.
12455         (expand_a_rotate): Likewise.
12456
12457 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12458
12459         * config/h8300/h8300-protos.h: Update the prototype of
12460         output_simode_bld.
12461         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
12462         'log2'.
12463         * config/h8300/h8300.md: Adjust to the new prototype.
12464
12465 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12466
12467         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
12468         redundant code.
12469
12470 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12471
12472         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
12473         is a fixed register before returning pic_offset_table_rtx.
12474         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
12475         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
12476
12477 2002-01-28  Jason Merrill  <jason@redhat.com>
12478
12479         * dwarf2.h: Sync with src version.
12480
12481 2002-01-28  Paul Koning  <pkoning@equallogic.com>
12482
12483         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
12484         BT_FN_VOID_PTR_VAR.
12485         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
12486         * doc/extend.texi (__builtin_prefetch): Update documentation:
12487         first argument is now const void ptr.
12488
12489 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12490
12491         * config/h8300/h8300-protos.h: Remove an unused prototype.
12492
12493 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
12494
12495         * toplev.c (lang_independent_init): Round up identifier size.
12496
12497 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
12498
12499         * config.gcc: Revert previous change.
12500
12501 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
12502
12503         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
12504
12505 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
12506
12507         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
12508         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
12509         other non-elf netbsd config frags.
12510         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
12511         collect2 will does that.
12512         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
12513         shared-lib frobbing will work.
12514
12515 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12516
12517         * config/h8300/h8300.h: Fix formatting.
12518         * config/h8300/h8300.md: Likewise.
12519
12520 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
12521
12522         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
12523         the old, removed AAA_standards fix.
12524         * fixinc/fixincl.x: Rebuilt.
12525
12526 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
12527
12528         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
12529         atexit call in crtbegin, hooked in after call to frame_dummy;
12530         register EH before registering __fini__start.
12531
12532 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
12533
12534         * config/rs6000/altivec.h: Remove spurious semicolons.
12535
12536 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12537
12538         * config/h8300/h8300.md: Replace dead bit extraction patterns
12539         with ones that work.
12540
12541 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12542
12543         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
12544         if not STRICT_ALIGNMENT.
12545         * rtl.h (MEM_ALIGN): Likewise.
12546
12547 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12548
12549         * doc/invoke.texi (-fdump-translation-unit): Revert this
12550         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12551
12552 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12553
12554         * config/h8300/h8300.md (define_constants): New.
12555         (anonymous patterns) Use defined constants appropriately.
12556
12557 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12558
12559         * config/h8300/h8300.c (function_arg): Remove redundant code.
12560
12561 2002-01-26  Richard Henderson  <rth@redhat.com>
12562
12563         * sched-deps.c (reg_pending_uses_head): New.
12564         (reg_pending_barrier): Rename from reg_pending_sets_all.
12565         (find_insn_list): Don't mark inline.
12566         (find_insn_mem_list): Remove.
12567         (add_dependence_list, add_dependence_list_and_free): New.
12568         (flush_pending_lists): Replace only_write param with separate
12569         for_read and for_write parameters.  Update all callers.  Use
12570         add_dependence_list_and_free.
12571         (sched_analyze_1): Do not add reg dependencies here; just set
12572         the pending bits.  Use add_dependence_list.
12573         (sched_analyze_2): Likewise.
12574         (sched_analyze_insn): Replace schedule_barrier_found with
12575         reg_pending_barrier.  Add all dependencies for pending reg
12576         uses, sets, and clobbers.
12577         (sched_analyze): Don't add reg dependencies for calls, just
12578         set pending bits.  Use regs_invalidated_by_call.  Treat
12579         sched_before_next_call as a normal list, not a fake insn.
12580         (init_deps): No funny init for sched_before_next_call.
12581         (free_deps): Free pending mems lists.  Don't zero reg_last.
12582         (init_deps_global): Init reg_pending_uses.
12583         (finish_deps_global): Free it.
12584         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
12585         (find_insn_mem_list): Remove.
12586         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
12587         (propagate_deps): Use them.  Zero temp mem lists.
12588
12589 2002-01-26  Richard Henderson  <rth@redhat.com>
12590
12591         * Makefile.in (CRTSTUFF_CFLAGS): New.
12592         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
12593         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
12594         crtstuff.c instead of alpha assembly version.
12595         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
12596         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
12597         not FORCE_{INIT,FINI}_SECTION_ALIGN.
12598         (__do_global_dtors_aux): Mark used.
12599         (frame_dummy, __do_global_ctors_aux): Mark used.
12600         (fini_dummy, init_dummy): Remove.
12601
12602         * config/alpha/crtbegin.asm: Remove file.
12603         * config/alpha/crtend.asm: Remove file.
12604         * config/alpha/t-crtbe: Remove file.
12605         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
12606         (LINK_EH_SPEC): New.
12607
12608         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
12609         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
12610         calling constructors.
12611         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
12612
12613         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
12614         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
12615         CRT_END_INIT_DUMMY hack.
12616         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
12617         FORCE_{INIT,FINI}_SECTION_ALIGN.
12618
12619         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
12620         FORCE_{INIT,FINI}_SECTION_ALIGN.
12621
12622         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
12623         invocation sequence.
12624         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
12625
12626         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
12627         (FORCE_CODE_SECTION_ALIGN): New.
12628
12629 2002-01-26  Richard Henderson  <rth@redhat.com>
12630
12631         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
12632
12633 2002-01-26  Richard Henderson  <rth@redhat.com>
12634
12635         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
12636         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
12637
12638 2002-01-26  Kazu Hirata  <kazu@hxi.com>
12639
12640         * config/h8300/h8300.md: Remove bit extraction patterns that
12641         cannot be triggered.
12642         Restrict each bit extraction pattern to a variant on which the
12643         pattern is tested.
12644
12645 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
12646
12647         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
12648
12649 2002-01-26  Kazu Hirata  <kazu@hxi.com>
12650
12651         * config/h8300/h8300.md: Remove bit test patterns that cannot
12652         be triggered.
12653         Restrict each bit test pattern to a variant on which the
12654         pattern is tested.
12655
12656 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12657
12658         * builtins.c (expand_builtin_strncat): Remove redundant check for
12659         INTEGER_CST.
12660
12661 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
12662
12663         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
12664         default setting.
12665         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
12666         existing setting.
12667
12668 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
12669
12670         * dbxout.c (dbxout_init): Use assemble_name rather than just
12671         stripping off the first character.
12672         (dbxout_source_file): Likewise.
12673
12674 2002-01-25  DJ Delorie  <dj@redhat.com>
12675
12676         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
12677         using rtx_equal_p, not by comparing pointers.
12678
12679 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
12680
12681         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
12682         for PIC_OFFSET_TABLE_REGNUM.
12683         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
12684
12685 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
12686
12687         * config.gcc (x86_64-*-freebsd*): New target.
12688         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
12689         value.
12690         (i[34567]86-*-freebsd*): Don't include svr4.h.
12691         * config/i386/freebsd64.h: New file.
12692
12693 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
12694
12695         * config/alpha/x-vms (version): Make static.
12696
12697         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
12698         in previous checkin.
12699
12700         * Makefile.in (install-headers-cp): New target.
12701         * config.gcc (alpha-dec-*vms*): Install headers with
12702         install-headers-cp
12703
12704 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
12705
12706         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
12707         avoid it's copies.
12708
12709 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12710
12711         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
12712         of compare_tree_int.
12713         (expand_builtin_strncat): Likewise.
12714         * c-decl.c (finish_struct): Use tree_low_cst.
12715         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
12716         * tree.c (compare_tree_int): Likewise.
12717
12718 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
12719
12720         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
12721         adjustments even if they are implemented by more than two insns.
12722
12723 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
12724
12725         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
12726         * df.h (struct ref): Kill B.
12727         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
12728
12729         * basic-block.h (PROP_EQUAL_NOTES): New flag.
12730         * flow.c (propagate_one_insn): Use it.
12731         (mark_used_regs): Handle NIL.
12732
12733 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
12734
12735         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
12736         to help folding.
12737
12738 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
12739
12740         * rs6000.md (prefetch): Make address V4SI mode so that the address
12741         is restricted to legitimate form for instruction.
12742
12743 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
12744
12745         * doc/install.texi (xtensa-*-elf): New target.
12746         (xtensa-*-linux*): New target.
12747         * doc/contrib.texi: Add myself.
12748
12749 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
12750
12751         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
12752         purpose register to hold an SImode (or smaller) value.
12753
12754 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
12755
12756         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
12757         registry only.
12758         * crtstuff.c: Likewise.
12759
12760 2002-01-25  Kazu Hirata  <kazu@hxi.com>
12761
12762         * config/h8300/h8300.md (negation patterns): Tighten
12763         predicates to register_operand.
12764
12765 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
12766
12767         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
12768         mode, not Pmode.
12769
12770         * builtins.c (expand_builtin_prefetch): Same.
12771
12772 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12773
12774         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
12775         modes.
12776
12777 2002-01-24  Kazu Hirata  <kazu@hxi.com>
12778
12779         * config/h8300/h8300.c (print_operand): Remove support for
12780         operand character 'A'.
12781         * config/h8300/h8300.md (three anonymous patterns): Replace
12782         operand character 'A' with either 'T' or 'S'.
12783
12784 2002-01-24  Kazu Hirata  <kazu@hxi.com>
12785
12786         * config/h8300/h8300.c (print_operand): Remove support for
12787         operand character 'U'.
12788
12789 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
12790
12791         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
12792
12793 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
12794
12795         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
12796         values to be assigned to the stack pointer.
12797
12798 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12799
12800         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
12801         to const_double needs to be done right for big-endian systems.
12802
12803 2002-01-24  Jason Merrill  <jason@redhat.com>
12804
12805         PR c++/2432
12806         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
12807         to can_throw_internal.
12808
12809 2002-01-23  Richard Henderson  <rth@redhat.com>
12810
12811         * fold-const.c (fold): Change UINT_MAX test to check vs precision
12812         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
12813
12814 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12815
12816         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
12817         (symGOT2reg): Use them, then set as GOT value as unchanging.
12818         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
12819         as a temporary, if possible.
12820         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
12821         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
12822
12823 2002-01-23  Kazu Hirata  <kazu@hxi.com>
12824
12825         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
12826         accept to accept 0x80 as operands[2].
12827
12828 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12829
12830         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
12831
12832 2002-01-23  Richard Henderson  <rth@redhat.com>
12833
12834         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
12835
12836 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
12837
12838         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
12839         (parmlist_or_identifiers_1): Verify that only a parmlist follows
12840         an attribute.
12841
12842 2002-01-23  Richard Henderson  <rth@redhat.com>
12843
12844         * expr.c (move_by_pieces_1): Extend size before negation.
12845
12846         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
12847         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
12848         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
12849         * config/m68k/t-m68kelf: Likewise.
12850
12851 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
12852
12853         * config/xtensa/elf.h: New file.
12854         * config/xtensa/lib1funcs.asm: New file.
12855         * config/xtensa/lib2funcs.S: New file.
12856         * config/xtensa/linux.h: New file.
12857         * config/xtensa/t-xtensa: New file.
12858         * config/xtensa/xtensa-config.h: New file.
12859         * config/xtensa/xtensa-protos.h: New file.
12860         * config/xtensa/xtensa.c: New file.
12861         * config/xtensa/xtensa.h: New file.
12862         * config/xtensa/xtensa.md: New file.
12863         * config.gcc (xtensa-*-elf*): New target.
12864         (xtensa-*-linux*): New target.
12865         * cse.c (canon_hash): Compare rtx pointers instead of register
12866         numbers.  This is required for the Xtensa port.
12867         * integrate.c (copy_insn_list): Handle case where the static
12868         chain is in memory and the memory address has to be copied to
12869         a register.
12870         * doc/invoke.texi (Option Summary): Add Xtensa options.
12871         (Xtensa Options): New node.
12872         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
12873
12874 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
12875
12876         * diagnostic.c (internal_error): Do ICE suppression only
12877         when ENABLE_CHECKING is not defined.
12878
12879         * c-typeck.c (require_complete_type): Return error_mark_node
12880         if type is error_mark_node.
12881
12882 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
12883
12884         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
12885         -Os and issue a warning.
12886
12887 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
12888
12889         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
12890         current (lack of) need for host configuration by hand.
12891
12892         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
12893         references.  Documentation of some target macros moved from
12894         hostconfig.texi to tm.texi.
12895
12896 2002-01-23  Will Cohen  <wcohen@redhat.com>
12897
12898         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
12899         defined.
12900
12901 2002-01-23  Kazu Hirata  <kazu@hxi.com>
12902
12903         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
12904         operand[3].
12905
12906 2002-01-23  Jason Merrill  <jason@redhat.com>
12907
12908         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
12909
12910         * function.c (assign_parms): Don't put args of inline functions
12911         into registers when not optimizing.
12912
12913 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
12914
12915         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
12916         (prologue_use): New pattern.
12917         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
12918         preference to gen_rtx_USE.
12919         (thumb_expand_prologue): Use gen_prologue_use in preference to
12920         gen_rtx_USE.
12921         (thumb_expand_epilogue): Use gen_prologue_use in preference to
12922         gen_rtx_USE.
12923
12924 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
12925
12926         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
12927
12928 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
12929
12930         PR c/3504
12931         * doc/extend.texi: Correct documentation of __alignof__.
12932
12933 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
12934
12935         * params.h: Rename arguments of DEFPARAM so that it will be
12936         recognized as a translation keyword.
12937
12938 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
12939
12940         * extend.texi: Document altivec functions.
12941         Fix N-bit adjectives in X86 builtin documentation.
12942
12943 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
12944
12945         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
12946         auto_inc_dec values.
12947
12948 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
12949
12950         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
12951         after backslash.
12952         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
12953
12954 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
12955
12956         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
12957
12958 2002-01-22  Richard Henderson  <rth@redhat.com>
12959
12960         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
12961         copy_insn not copy_rtx.
12962
12963 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
12964
12965         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
12966         "nonzero" as that might add "1" bits.  Ensure "constop" is
12967         properly sign extened.
12968         (force_to_mode): Tweak for sign extended constop.
12969
12970 2002-01-22  Richard Henderson  <rth@redhat.com>
12971
12972         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
12973         for_each_rtx instead of assuming we're already looking at the MEM.
12974         (split_small_symbolic_mem_operand): Likewise.
12975         * config/alpha/alpha.h (PREDICATE_CODES): Update.
12976         * config/alpha/alpha.md (small symbolic memory splitters): Update.
12977
12978 2002-01-22  Richard Henderson  <rth@redhat.com>
12979
12980         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
12981         sequence number for the literal.
12982         (divmoddi_internal_er): Likewise.
12983
12984 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12985
12986         PR java/4972
12987         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
12988         in LIBICONV variable.
12989         * configure: Regenerated.
12990
12991 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
12992
12993         * dependence.c (build_def_use): Remove array_idx.
12994
12995         * dwarfout.c (last_filename): Remove.
12996         (output_compile_unit_die): Remove last_filename.
12997
12998 2002-01-22  Roger Sayle  <roger@eyesopen.com>
12999             Richard Henderson  <rth@redhat.com>
13000
13001         PR opt/3640
13002         * fold-const.c (fold): Optimize unsigned comparisons against
13003         UINT_MAX (and similar unsigned constants).
13004
13005 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
13006
13007         * Makefile.in (loop.o): Depend on OPTABS_H.
13008         * loop.c (emit_prefetch_instructions): Check the prefetch operand
13009         against the predicate.
13010
13011         PR target/5379
13012         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
13013         for the address operand.
13014
13015 2002-01-22  Richard Henderson  <rth@redhat.com>
13016
13017         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
13018
13019 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13020
13021         PR other/5450
13022         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
13023         preprocessor flags.
13024
13025 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
13026
13027         * config.gcc (x86_64-*-netbsd*): New target.
13028         * config/i386/netbsd64.h: New file.
13029
13030 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13031
13032         * regrename.c (kill_value): Fix typo.
13033
13034 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13035
13036         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
13037
13038         * config/rs6000/rs6000.h: Same.
13039
13040         * function.c (instantiate_virtual_regs): Remove
13041         STARTING_FRAME_PHASE.
13042         (assign_stack_local_1): Same.
13043         Calculate frame phase.
13044
13045 2002-01-22  Nick Clifton  <nickc@redhat.com>
13046
13047         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
13048         variable declaration to outer scope in order to simplify
13049         future extensions.
13050         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
13051         arm_hard_regno_mode_ok.
13052         * config/arm/arm-protos.h: Add a prototype for
13053         arm_hard_regno_mode_ok.
13054         * config/arm/arm.c (soft_df_operand): Remove now redundant
13055         check for DImode values using IP_REGNUM.
13056         (nonimmediate_soft_df_operand): Remove now redundant check for
13057         DImode values using IP_REGNUM.
13058         (arm_hard_regno_mode_ok): New function. New check: make sure
13059         that DImode values are not stored in IP_REGNUM.
13060
13061         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
13062         note with a USE.
13063         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
13064
13065 2002-01-22  Jason Merrill  <jason@redhat.com>
13066
13067         * c-semantics.c (genrtl_compound_stmt): Only check nesting
13068         consistency if this COMPOUND_STMT is scoped.
13069
13070 2002-01-22  Kazu Hirata  <kazu@hxi.com>
13071
13072         * predict.c: Fix formatting.
13073         * print-tree.c: Likewise.
13074         * protoize.c: Likewise.
13075         * real.h: Likewise.
13076         * rtl.h: Likewise.
13077         * sbitmap.h: Likewise.
13078         * scan.c: Likewise.
13079         * sched-deps.c: Likewise.
13080         * sched-vis.c: Likewise.
13081         * sdbout.c: Likewise.
13082         * sibcall.c: Likewise.
13083         * ssa.c: Likewise.
13084         * ssa-ccp.c: Likewise.
13085         * ssa-dce.c: Likewise.
13086         * stmt.c: Likewise.
13087         * stor-layout.c: Likewise.
13088         * system.h: Likewise.
13089
13090 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13091
13092         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
13093         if fits in bounds of base type.
13094
13095         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
13096         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
13097         (add_bound_info, default): If can't find a context, make a
13098         SAVE_EXPR.
13099         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
13100
13101 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
13102
13103         * c-typeck.c (parser_build_binary_op): If result from
13104         build_binary_op is ERROR_MARK just return error_mark_node without
13105         further processing.
13106
13107 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
13108
13109         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
13110         Split a.out-specific bits into...
13111         * config/netbsd-aout.h: ...this.
13112         * config/netbsd-elf.h: New file.
13113         * config/alpha/netbsd-elf.h: Remove.
13114         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
13115         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
13116         (STARTFILE_SPEC): Remove redundant definition.
13117         (ENDFILE_SPEC): Likewise.
13118         (LINK_SPEC): Likewise.
13119         (CPP_SPEC): Likewise.
13120         (ASM_SPEC): Likewise.
13121         (LIB_SPEC): Likewise.
13122         (SWITCH_TAKES_ARG): Likewise.
13123         (TARGET_MEM_FUNCTIONS): Likewise.
13124         (CPP_PREDEFINES): Redefine.
13125         (ASM_FINAL_SPEC): Remove redefinition.
13126         (ASM_COMMENT_START): Redefine.
13127         (FUNCTION_PROFILER): Define.
13128         (TARGET_VERSION): Redefine.
13129         Comment and formatting cleanup.
13130         * config/i386/netbsd.h: Include <netbsd-aout.h>.
13131         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
13132         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
13133         big- or little-endian.
13134         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
13135         * config.gcc (*-*-netbsd*): Add definitions common to all
13136         NetBSD configs.
13137         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
13138         gnu_ld definitions.  Add netbsd-elf.h to and remove
13139         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
13140         tmake_file, and don't lose previous tmake_file contents.
13141         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
13142         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
13143         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
13144         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
13145         (mipsel-*-netbsd*): Rename this to...
13146         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
13147         mips/little.h to tm_file for mips*el-*.
13148         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
13149         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
13150         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
13151
13152 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13153
13154         * pa-protos.h (reg_before_reload_operand): New function prototype.
13155         * pa.c (reg_before_reload_operand): New function implementation.
13156         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
13157         contraints to "*m".
13158
13159 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13160
13161         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
13162
13163 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13164
13165         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
13166         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
13167         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
13168         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
13169         (ENDFILE_SPEC): Undefine.
13170         (STARTFILE_SPEC): Redefine for PA.
13171
13172 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13173
13174         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
13175
13176 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
13177
13178         * config.gcc: Add entries to supported PowerPC --with-cpu
13179         types.
13180
13181 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
13182
13183         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
13184         true for 64-bit mode only SSE registers in 32-bit mode.
13185
13186 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13187
13188         * unwind-dw2.c: Fix formatting.
13189         * unwind-dw2-fde.c: Likewise.
13190         * unwind-dw2-fde.h: Likewise.
13191         * unwind-pe.h: Likewise.
13192         * varasm.c: Likewise.
13193         * varray.h: Likewise.
13194
13195 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
13196
13197         Remove workaround for register stack overwrite bug in mmix.
13198         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
13199         support for TARGET_REG_STACK_FILL_BUG.
13200         * config/mmix/mmix.h: Remove member has_call_without_parameters.
13201         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
13202         Delete.
13203         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
13204         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
13205         -mno-reg-stack-fill-bug-workaround.
13206         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
13207         machine member has_call_without_parameters.
13208         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
13209         -mreg-stack-fill-bug-workaround and
13210         -mno-reg-stack-fill-bug-workaround.
13211         (MMIX Options): Ditto.
13212
13213 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13214
13215         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
13216         as appropriate.
13217         Remove redundant code.
13218
13219 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13220
13221         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
13222         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13223         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13224         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
13225         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
13226         out target macro definitions and non-target-specific comments
13227         mostly taken from old versions of the manual.
13228
13229 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13230
13231         * config/h8300/h8300.h: Fix comment formatting.
13232         * config/ia64/aix.h: Likewise.
13233         * config/ia64/ia64-protos.h: Likewise.
13234         * config/ia64/ia64.c: Likewise.
13235         * config/ia64/ia64.h: Likewise.
13236         * config/ia64/ia64intrin.h: Likewise.
13237         * config/ia64/linux.h: Likewise.
13238         * config/ia64/unwind-aix.c: Likewise.
13239         * config/ia64/unwind-ia64.c: Likewise.
13240
13241 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13242
13243         * config/h8300/h8300.c: Revise comments about shift code.
13244
13245 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13246
13247         * config/h8300/h8300.c (function_arg): Update a comment.
13248
13249 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13250
13251         * config/h8300/h8300.md: Update the comments at the beginning
13252         of the file.
13253
13254 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13255
13256         * config/i370/i370.c: Fix comment formatting.
13257         * config/i370/i370.h: Likewise.
13258         * config/i370/i370.md: Likewise.
13259         * config/i370/linux.h: Likewise.
13260
13261 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13262
13263         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
13264
13265         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
13266         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
13267         in incomplete case.
13268
13269 2002-01-20  Graham Stott  <grahams@redhat.com>
13270
13271         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
13272
13273 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13274
13275         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
13276
13277 2002-01-19  Tom Rix  <trix@redhat.com>
13278
13279         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
13280
13281 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
13282
13283         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
13284
13285         * function.c (assign_stack_local_1): Adjust x_frame_offset with
13286         STARTING_FRAME_PHASE.
13287         (STARTING_FRAME_PHASE): New.
13288         (instantiate_virtual_regs): Check saneness of
13289         STARTING_FRAME_PHASE.
13290
13291         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
13292
13293 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
13294
13295         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
13296
13297 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13298
13299         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
13300         be used for bootstrapping GCC 3.0.
13301
13302 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13303
13304         * config/h8300/h8300.md: Fix an insn length.
13305
13306 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13307
13308         * bitmap.h: Fix comment formatting.
13309         * combine.c: Likewise.
13310         * cppfiles.c: Likewise.
13311         * c-pragma.h: Likewise.
13312         * c-typeck.c: Likewise.
13313         * df.c: Likewise.
13314         * dwarf2out.c: Likewise.
13315         * function.c: Likewise.
13316         * gcc.c: Likewise.
13317         * genattrtab.c: Likewise.
13318         * gthr-win32.h: Likewise.
13319         * haifa-sched.c: Likewise.
13320         * predict.c: Likewise.
13321         * rtlanal.c: Likewise.
13322         * rtl.h: Likewise.
13323         * unwind-dw2-fde.h: Likewise.
13324         * unwind-pe.h: Likewise.
13325         * vmsdbgout.c: Likewise.
13326
13327 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13328
13329         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
13330         if type_required and passed decl.
13331
13332 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
13333
13334         * config.gcc (cpu_type): Include altivec.h in powerpc
13335         extra_headers.
13336         Same for darwin.
13337
13338         * config/rs6000/altivec.h: New.
13339
13340 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
13341
13342         * doc/install.texi (*-ibm-aix*): Update assembler and exception
13343         handling information.
13344         * doc/trouble.texi (Interoperation): Add libstdc++ information
13345         for AIX.
13346         (Misunderstandings): Add template instantiation and static template
13347         member information for AIX.
13348
13349 2002-01-17  Jason Merrill  <jason@redhat.com>
13350
13351         * dbxout.c (dbxout_type): Support const and volatile.
13352
13353         * except.c (add_partial_entry): Remove backwards compatibility code.
13354         (end_protect_partials): Likewise.
13355
13356 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
13357
13358         * config/ia64/ia64.md (prologue_use): New.
13359         * config/ia64/ia64.c (ia64_expand_prologue): Use
13360         gen_prologue_use instead of gen_rtx_USE.
13361         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
13362         as CODE_FOR_pred_rel_mutex.
13363         (ia64_sched_reorder2): Likewise.
13364
13365 2002-01-16  Eric Christopher  <echristo@redhat.com>
13366
13367         * config/mips/r3900.h: Reformat.
13368         (SUBTARGET_CPP_SIZE_SPEC): Remove.
13369         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
13370         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
13371         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
13372         * config/mips/t-elf: Remove mips3 multilib.
13373
13374 2002-01-16  H.J. Lu <hjl@gnu.org>
13375
13376         * config/mips/linux.h: Include "mips/abi64.h".
13377
13378 2002-01-16  H.J. Lu <hjl@gnu.org>
13379
13380         * config/mips/t-linux: New.
13381
13382         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
13383
13384         * config/mips/linux.h: Don't include "gofast.h".
13385         (INIT_SUBTARGET_OPTABS): Removed.
13386
13387 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13388
13389         * config/h8300/h8300-protos.h: Replace emit_a_shift with
13390         output_a_shift.
13391         * config/h8300/h8300.c: Likewise.
13392         * config/h8300/h8300.md: Likewise.
13393
13394 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13395
13396         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
13397         spaces after an opcode name.
13398         (pushqi1_h8300hs): Likewise.
13399         (pushhi1_h8300hs): Likewise.
13400
13401 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13402
13403         * doc/extend.texi: Replace "option" with "attribute"
13404         appropriately.
13405
13406 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13407
13408         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
13409         (and:DI () (const_int -8)).
13410         (split_small_symbolic_mem_operand): Split
13411         (mem (and:DI () (const_int -8)).
13412
13413 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13414
13415         PR target/5309:
13416         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
13417         same way as TYPE_IMUL.
13418         (ultrasparc_sched_reorder): Likewise.
13419         * config/sparc/sparc.md (type): Add comment to update
13420         ultrasparc_sched_reorder when making changes.
13421
13422 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13423
13424         * doc/invoke.texi: Change the dump file name of block
13425         reordering pass from 28.bbro to 29.bbro.
13426         Mention -dk option.
13427
13428 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
13429
13430         * i386.md (minsf splitter): Fix pasto.
13431
13432 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
13433
13434         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
13435         to frame pointer initialisation instruction.
13436         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
13437         initialisation instruction.
13438         (soft_df_operand): Do not accept the IP register.
13439         (nonimmediate_soft_df_operand): Do not accept the IP register.
13440
13441 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13442
13443         PR target/5357:
13444         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
13445         MASK_V8 being both set.
13446
13447 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
13448
13449         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
13450         insn for GOT register; add REG_MAYBE_DEAD notes instead.
13451         config/s390/s390.md (call, call_value): Add GOT register to
13452         CALL_INSN_FUNCTION_USAGE where needed.
13453         (call_exp, call_value_exp): New.
13454
13455 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
13456
13457         * config/arm/arm.c: General formatting tidy up.
13458
13459 2002-01-16  Graham Stott  <grahams@redhat.com>
13460
13461         * calls.c (try_to_integrate): Use "(size_t)" intermediate
13462         cast and when casting an integer literal to "rtx" pointer.
13463         (expand_call): Likewise.
13464         * flow.c (try_pre_increment): Likewise.
13465         (find_use_as_address): Likewise.
13466         * integrate.c (expand_iline_function): Likewise.
13467         * regmove.c (try_auto_increment): Likewise.
13468
13469 2002-01-16  Graham Stott  <grahams@redhat.com>
13470
13471         * sched-rgn.c (passed): Use sbitmap_free.
13472         (header): Likewise.
13473         (inner): Likewise.
13474         (in_queue): Likewise.
13475         (in_stack): Likewise.
13476
13477 2002-01-15  Eric Christopher  <echristo@redhat.com>
13478
13479         * flow.c (propagate_one_insn): Change to use fatal_insn.
13480
13481 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13482
13483         * expmed.c (extract_fixed_bit_field): Remove unused code.
13484         * system.h: Poison SLOW_ZERO_EXTEND.
13485         * doc/tm.texi: Remove.
13486         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
13487         * config/arm/arm.h: Likewise.
13488         * config/avr/avr.h: Likewise.
13489         * config/clipper/clipper.h: Likewise.
13490         * config/convex/convex.h: Likewise.
13491         * config/d30v/d30v.h: Likewise.
13492         * config/dsp16xx/dsp16xx.h: Likewise.
13493         * config/elxsi/elxsi.h: Likewise.
13494         * config/fr30/fr30.h: Likewise.
13495         * config/h8300/h8300.h: Likewise.
13496         * config/i370/i370.h: Likewise.
13497         * config/i386/i386.h: Likewise.
13498         * config/m68k/m68k.h: Likewise.
13499         * config/mips/mips.h: Likewise.
13500         * config/ns32k/ns32k.h: Likewise.
13501         * config/pdp11/pdp11.h: Likewise.
13502         * config/pj/pj.h: Likewise.
13503         * config/s390/s390.h: Likewise.
13504         * config/sh/sh.h: Likewise.
13505         * config/stormy16/stormy16.h: Likewise.
13506         * config/v850/v850.h: Likewise.
13507         * config/vax/vax.h: Likewise.
13508         * config/we32k/we32k.h: Likewise.
13509
13510 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
13511
13512         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
13513         (altivec_lvsl): Change constraint to b.
13514         (altivec_lvsr): Same.
13515         (altivec_lvebx): Same.
13516         (altivec_lvehx): Same.
13517         (altivec_lvewx): Same.
13518         (altivec_lvxl): Same.
13519         (altivec_lvx): Same.
13520         (altivec_stvx): Add parallel.
13521         (altivec_stvxl): Same.
13522         (altivec_stvehx): Same.
13523         (altivec_stvebx): Same.
13524         (altivec_stvebx): Same.
13525
13526 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
13527
13528         * config.gcc: Change altivec.h to altivec-defs.h.
13529
13530         * config/rs6000/altivec.h: Delete.
13531
13532         * config/rs6000/altivec-defs.h: Add.
13533
13534 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13535
13536         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
13537         and UMOD modes.
13538
13539         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
13540         less than or equal to eight bytes.
13541
13542         * vax.md (andsi3): Remove constraints and change SET destination
13543         operand type to nonimmediate_operand.
13544         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
13545         when it is a CONST_INT.
13546
13547 2002-01-15  Jason Merrill  <jason@redhat.com>
13548
13549         * c-common.def (FILE_STMT): New code.
13550         * c-common.c (statement_code_p): It's a statement.
13551         * c-common.h (stmt_tree_s): Add x_last_filename.
13552         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
13553         (last_expr_filename): New macro.
13554         * c-semantics.c (begin_stmt_tree): Initialize it.
13555         (add_stmt): If the filename changed, also insert a
13556         FILE_STMT.
13557         (expand_stmt): Handle seeing one.
13558
13559 2002-01-15  Eric Christopher  <echristo@redhat.com>
13560
13561         * flow.c (propagate_one_insn): Add error message and print out
13562         insn for debugging.
13563
13564 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
13565
13566         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
13567         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
13568         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
13569         TRAMPOLINE_ALIGNMENT.
13570         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
13571         to be in bits.
13572         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
13573         PCC_BITFIELD_TYPE_MATTERS.
13574         * config/interix.h (STDC_VALUE): Remove.  Use
13575         STDC_0_IN_SYSTEM_HEADERS.
13576         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
13577         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
13578         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
13579
13580 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13581
13582         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
13583         not work on this platform currently.
13584
13585 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
13586
13587         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
13588         readonly_warning in _().
13589
13590 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
13591
13592         * gcc.c (delete_if_ordinary): Backout previous change.
13593
13594 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13595
13596         * config/h8300/h8300.c (print_operand): Remove support for
13597         unused operand characters.
13598
13599         * read-rtl.c: Fix formatting.
13600         * real.c: Likewise.
13601         * recog.c: Likewise.
13602         * regclass.c: Likewise.
13603         * regmove.c: Likewise.
13604         * reg-stack.c: Likewise.
13605         * reload1.c: Likewise.
13606         * rtlanal.c: Likewise.
13607
13608 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13609
13610         * config/i386/i386.c: Fix formatting.
13611
13612 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
13613
13614         * c-typeck.c (process_init_element): Don't save_expr
13615         COMPOUND_LITERAL_EXPR if just its initializer will be used.
13616
13617 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
13618
13619         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
13620         emit optional traceback table if optimize_size or TARGET_ELF.
13621         * config/rs6000/rs6000.md (prefetch): New.
13622
13623 2002-01-15  Andreas Jaeger  <aj@suse.de>
13624
13625         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
13626
13627 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13628
13629         * mips-tfile.c: Fix formatting.
13630
13631 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
13632
13633         * unroll.c (final_reg_note_copy): Fix previous commit.
13634
13635 2002-01-14  Kazu Hirata  <kazu@hxi.com>
13636
13637         * config/h8300/h8300-protos.h: Remove the prototype for
13638         eq_operator.
13639         * config/h8300/h8300.c (eq_operator): Remove.
13640
13641 2002-01-14  Richard Henderson  <rth@redhat.com>
13642
13643         * config/i386/i386.md (prefetch): Tidy.
13644         (prefetch_3dnow): Fix locality operand.
13645
13646 2002-01-14  Richard Henderson  <rth@redhat.com>
13647
13648         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
13649         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
13650
13651 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
13652
13653         * reload1.c (reload_combine): Pass reg_sum replacement through
13654         copy_rtx in loop performing multiple changes.
13655
13656 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
13657
13658         * except.c (remove_unreachable_regions): New.
13659         (free_eh_status): Clear exception_handler_labels.
13660         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
13661         (find_exception_handler_labels): Don't add the same label more than
13662         once.
13663         (remove_exception_handler_label): Don't die if
13664         find_exception_handler_labels hasn't been called for the current
13665         function yet.
13666
13667 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
13668
13669         * toplev.c (rest_of_compilation): Rebuild jump labels after
13670         gcse.
13671
13672 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
13673
13674         * doc/extend.texi: Move documentation of X86 built-in functions
13675         here.
13676         * doc/invoke.texi: From here.
13677         * doc/sourcebuild.texi: Document location of documentation for
13678         machine built-in functions.
13679
13680 2002-01-13  Christopher Faylor  <cgf@redhat.com>
13681
13682         * cppfiles.c (TEST_THRESHOLD): New macro.
13683         (SHOULD_MMAP): Ditto.
13684         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
13685         be used.
13686
13687 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
13688
13689         * unroll.c (final_reg_note_copy): Properly handle
13690         REG_LABEL
13691         (unroll_loops): Fix LOOP_CONDITION heuristics.
13692
13693 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
13694
13695         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
13696         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
13697
13698 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13699
13700         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
13701         threaded loop.
13702
13703 2002-01-14  Tom Rix  <trix@redhat.com>
13704
13705         * config/rs6000/rs6000.md: Fix typo with sradi.
13706
13707 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
13708
13709         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
13710         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
13711         (clrstrdi, clrstrsi): Adapt callers.
13712
13713         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
13714
13715         (movti splitter): Never use register 0 as base register.
13716
13717 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13718
13719         * combine.c (simplify_shift_const): Always generate new rtx
13720         for shift expression instead of reusing given expression.
13721
13722 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13723
13724         * config/alpha/alpha.c (alpha_expand_mov): Don't call
13725         alpha_legitimize_address unless mode is Pmode.
13726
13727 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
13728
13729         * doc/md.texi (Modifiers): Document the '*' constraint for the
13730         user.
13731
13732         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
13733         * doc/extend.texi (Function Attributes): 'interrupt' is valid
13734         for xstormy16 too.
13735
13736 2002-01-13  Richard Henderson  <rth@redhat.com>
13737
13738         * reload.c (find_reloads): Use a hard reg destination as reload reg
13739         for an input reload of the source.
13740
13741 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13742
13743         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
13744         more generic.
13745
13746 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
13747
13748         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
13749         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
13750
13751         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
13752
13753 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13754
13755         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
13756
13757 2002-01-12  Tom Rix  <trix@redhat.com>
13758
13759         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
13760         TARGET_POWERPC64.
13761
13762 2002-01-12  Richard Henderson  <rth@redhat.com>
13763
13764         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
13765
13766         * doc/invoke.texi: Update Alpha options.
13767
13768         * doc/invoke.texi: Update i386 built-in function lists.
13769
13770 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
13771
13772         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
13773         referencing outside.
13774
13775 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13776
13777         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
13778         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
13779         offsets, and change line folding.
13780         * optabs.c (expand_binop): Remove warnings.
13781         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
13782
13783 2002-01-12  Graham Stott <grahams@redhat.com>
13784
13785         * attribs.c (handle_deprecated_attribute): constify WHAT.
13786         * diagnostic.c (warn_deprecated_use): Add braces, fixes
13787         dangling else warning and constify WHAT.
13788         * except.h (struct function, struct inline_remap): Move
13789         struct tag forward defs before all prototypes.
13790         (duplicate_eh_regions): Whitespace.
13791
13792 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
13793
13794         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13795         MODE_BASE_REG_CLASS.
13796         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
13797
13798 2002-01-12  Richard Henderson  <rth@redhat.com>
13799
13800         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
13801         (ix86_expand_vector_move): New.
13802         (bdesc_2arg): Remove andps, andnps, orps, xorps.
13803         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
13804         Remove old prefetch builtins.  Special case the logicals removed above.
13805         (ix86_expand_builtin): Likewise.
13806         (safe_vector_operand): Use V4SFmode, not TImode.
13807         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
13808         (ix86_expand_timode_binop_builtin): New.
13809         * config/i386/i386-protos.h: Update.
13810         * config/i386/i386.h (enum ix86_builtins): Update.
13811         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
13812         Use ix86_expand_vector_move in vector move expanders.
13813         (movti_internal, movti_rex64): Add xorps alternative.
13814         (sse_clrv4sf): Rename and adjust from sse_clrti.
13815         (prefetch): Don't work so hard.
13816         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
13817         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
13818         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
13819
13820 2002-01-11  Richard Henderson  <rth@redhat.com>
13821
13822         * config/i386/mmintrin.h: New file.
13823         * config/i386/xmmintrin.h: New file.
13824         * config.gcc (i?86-*-*): Add extra_headers.
13825         * simplify-rtx.c (simplify_unary_operation): Handle saturating
13826         truncation codes.
13827         (simplify_binary_operation): Handle saturating arithmetic codes.
13828         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
13829         not the lowpart subreg.
13830         (ix86_expand_builtin): Return a TImode dummy register instead of 0
13831         on error.
13832         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
13833
13834 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13835
13836         * conflict.c (conflict_graph_compute): Free regsets when finished.
13837         * ssa.c (compute_coalesced_reg_partition): Likewise.
13838
13839 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13840
13841         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
13842         every where we allocate a register.
13843
13844 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13845
13846         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
13847         * lcm.c (compute_earliest, compute_farthest): Likewise.
13848
13849 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
13850
13851         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
13852
13853 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
13854
13855         * doc/rtl.texi (Insns): Fix 2 typos.
13856
13857 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
13858
13859         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
13860         options.  Use @table @gcctabopt for MMIX options.  Add index
13861         entries for MMIX options.  Start new paragraph with first
13862         heading of the machine-dependent options.
13863
13864 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13865
13866         PR other/5299
13867         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
13868         * combine.c (force_to_mode): Same.
13869         * reload1.c (clear_reload_reg_in_use): Same.
13870
13871 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
13872
13873         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
13874         and 'subtargets'.
13875
13876 2002-01-11  Andreas Jaeger  <aj@suse.de>,
13877             Brad Lucier <lucier@math.purdue.edu>
13878
13879         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
13880         mcpu.
13881
13882 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
13883
13884         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
13885         Protect with IN_LIBGCC.
13886         (LINK_EH_SPEC): Add required trailing space.
13887
13888 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
13889
13890         * c-tree.h: Move function declarations so that they are listed
13891         under the filename which contains them.
13892         (check_identifier, finish_decl_top_level,
13893         lookup_name_current_level_global, shadow_record_fields): Remove.
13894
13895 2002-01-11  Andreas Jaeger  <aj@suse.de>
13896
13897         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
13898         march.
13899
13900 2002-01-10  Richard Henderson  <rth@redhat.com>
13901
13902         * config/alpha/alpha.c (print_operand): Add 'J'.
13903         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
13904         new operand with the sequence number for the lituse.  When splitting
13905         the insns, use gen_movdi_er_high_g and generate a sequence number.
13906         (gen_movdi_er_high_g): Print the sequence number if non-zero.
13907
13908 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
13909
13910         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
13911         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
13912         stvxl.
13913         (altivec_expand_builtin): Same.
13914         (altivec_expand_stv_builtin): New.
13915
13916         * config/rs6000/rs6000.h (rs6000_builtins): Same.
13917
13918         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
13919         ("altivec_lvehx"): New.
13920         ("altivec_lvewx"): New.
13921         ("altivec_lvxl"): New.
13922         ("altivec_lvx"): New.
13923         ("altivec_stvx"): New.
13924         ("altivec_stvebx"): New.
13925         ("altivec_stvehx"): New.
13926         ("altivec_stvewx"): New.
13927         ("altivec_stvxl"): New.
13928
13929 2002-01-10  Richard Henderson  <rth@redhat.com>
13930
13931         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
13932         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
13933         care not to delete instructions twice.
13934
13935 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
13936
13937         * toplev.c: Don't declare environ (it's not used anywhere).
13938         * configure.in: Don't check for declaration of environ.
13939         * config/i386/xm-mingw32.h: Don't #define environ.
13940         * config.in, configure: Regenerate.
13941
13942 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
13943
13944         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
13945         * configure: Regenerate.
13946
13947         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
13948         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
13949         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
13950         alpha/xm-vms.h.
13951         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
13952         LIMITS_H_TEST here, not in m68k/x-next.
13953         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
13954         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
13955
13956         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
13957         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
13958         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
13959
13960         * config/i386/x-djgpp: Renamed i386/t-djgpp.
13961         * config/m88k/x-dolph: Renamed m88k/t-dolph.
13962         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
13963         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
13964         replacement of quadlib.asm with quadlib.c.
13965
13966         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
13967         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
13968         config/rs6000/xm-beos.h: Delete file.
13969
13970         * config.gcc: Update to match above changes.
13971
13972 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13973
13974         * config/h8300/h8300.h: Fix comment typos.
13975         * config/h8300/h8300.md: Likewise.
13976         * config/h8300/lib1funcs.asm: Likewise.
13977
13978 2002-01-10  Dale Johannesen  <dalej@apple.com>
13979
13980         PR optimization/5269
13981         * unroll.c (precondition_loop_p): Make *increment be the correct
13982         sign when n_iterations known, to avoid confusing caller.
13983
13984 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13985
13986         * doc/extend.texi (deprecated): Fix a typo.
13987
13988 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13989
13990         * basic-block.h (update_br_prob_note): Declare.
13991         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
13992         (try_forward_edges): Care negative frequencies and update note.
13993         (outgoing_edges_match): Tweek conditional merging heuristics.
13994         (try_crossjump_to_edge): use update_br_prob_note.
13995         * cfglayout.c (fixup_reorder_chain): Likewise.
13996         * cfrtl.c (update_br_prob_note): New.
13997         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
13998
13999         * i386.c (ix86_decompose_address): Return -1 if address contains
14000         shift.
14001         (legitimate_address_p): Require ix86_decompose_address to return 1.
14002
14003         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
14004         (cprop_insn): Likewise.
14005
14006 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14007
14008         * toplev.c: Fix formatting.
14009         * tree.c: Likewise.
14010         * tree-dump.c: Likewise.
14011         * unroll.c: Likewise.
14012         * unwind-dw2.c: Likewise.
14013         * unwind-dw2-fde.c: Likewise.
14014         * unwind-dw2-fde-glibc.c: Likewise.
14015         * unwind-sjlj.c: Likewise.
14016
14017 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14018
14019         * doc/invoke.texi: Document PDP-11 options.
14020
14021 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14022
14023         * config/h8300/h8300.h: Fix formatting.
14024
14025 2002-01-10  Ira Ruben   <ira@apple.com>
14026
14027         Add __attribute__ ((deprecated)).
14028         * extend.texi: Document __attribute__ ((deprecated)).
14029         * invoke.texi: Document -Wno-deprecated-declarations.
14030         * testsuite/g++.dg/other/deprecated.C: New C++ test.
14031         * testsuite/gcc.dg/deprecated.c: New C test.
14032         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
14033         (c_common_attribute_table): Add "deprecated" entry.
14034         (handle_deprecated_attribute): New function.
14035         * c-decl.c (deprecated_states): New enum.
14036         deprecated_state: State of "deprecated" handling.
14037         (start_decl): Set deprecated_state based on attributes.
14038         (grokdeclarator): Test for deprecated uses, propagate attribute.
14039         * c-typeck.c (build_component_ref): Test for deprecated fields.
14040         (build_external_ref): Test for deprecated primaries.
14041         * diagnostic.c (warn_deprecated_use) New function to issue
14042         warnings about __attribute__ ((depricated)) references.
14043         * flags.h (warn_deprecated_decl): Extern declared for
14044         -W[no-]deprecated-declarations option.
14045         * print-tree.c (print_node): Show deprecated flag status.
14046         * toplev.c (warn_deprecated_decl): Defined.
14047         (W_options): Added "deprecated-declaration".
14048         * toplev.h (warn_deprecated_use): Extern declared.
14049         * tree.h (struct tree_common): Define deprecated_flag.
14050         (TREE_DEPRECATED): New macro to access flag.
14051         * cp/call.c (build_call): Test for deprecated calls.
14052         * cp/class.c (add_implicitly_declared_members): Set global
14053         flag to tell grokdeclarator to not issue deprecated warnings.
14054         * cp/cp-tree.h: Add extern for adding_implicit_members.
14055         * cp/decl.c (deprecated_states): New enum.
14056         (start_decl): Set deprecated_state based on attributes.
14057         (grokdeclarator): Test for deprecated uses, propagate attribute.
14058         * cp/lex.c (do_identifier): Test for deprecated primaries.
14059         * cp/typeck.c (build_component_ref): Test for deprecated fields.
14060
14061 2002-01-10  Ira Ruben   <ira@apple.com>
14062
14063         Fix to assign attributes to inline member functions.
14064         * cp/decl.c (start_method): Handle attrlist.
14065
14066 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14067
14068         * combine.c (expand_field_assignment): Use subreg_lsb().
14069
14070 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
14071
14072         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
14073         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
14074         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
14075         Recurse for any operand of AND as long as constant is non-zero.
14076
14077 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14078
14079         * config/h8300/h8300.md: Remove constraints from expanders.
14080
14081 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14082
14083         * varasm.c: Fix formatting.
14084         * varray.c: Likewise.
14085         * vmsdbgout.c: Likewise.
14086         * xcoffout.c: Likewise.
14087
14088 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
14089
14090         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
14091         update edge probabilities to match.
14092
14093 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14094
14095         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
14096         dependencies.
14097         * doc/languages.texi, doc/sourcebuild.texi: New files.
14098         * doc/configfiles.texi: Make a subsubsection.  Update.
14099         * doc/configterms.texi: Add @node.  Remove warning that this isn't
14100         instructions for building GCC.
14101         * doc/makefile.texi: Make a subsection.
14102         * doc/gccint.texi: Update.
14103
14104 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
14105
14106         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
14107
14108 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14109
14110         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
14111
14112 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
14113
14114         * optabs.c (expand_fix): Look for wider integer modes first.
14115
14116         * i386.md (mov?f): Avoid the fake const double trick for medium
14117         memory model.
14118         (min?f*/max?f*): Prohibit memory operands for i387 variant.
14119         (fop_df_4): Disable for SSE compilation.
14120
14121 2002-01-10  Graham Stott  <grahams@redhat.com>
14122
14123         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
14124         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
14125
14126 2002-01-10  Richard Henderson  <rth@redhat.com>
14127
14128         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
14129
14130 2002-01-10  Richard Henderson  <rth@redhat.com>
14131
14132         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
14133         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
14134
14135 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14136
14137         * combine.c (can_combine_p): Fix a comment typo.
14138
14139 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
14140
14141         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
14142         empty list correctly.  Change loop index $t to $f for
14143         consistency with rest of Makefile.
14144
14145 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
14146
14147         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
14148         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14149
14150         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
14151         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
14152         (altivec_init_builtins): Same.
14153         (altivec_expand_unop_builtin): Return NULL_RTX on error.
14154         (altivec_expand_binop_builtin): Same.
14155         (altivec_expand_ternop_builtin): Same.
14156         (bdesc_dst): New.
14157
14158         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
14159         ("altivec_vctuxs"): Fix typo.
14160         ("altivec_vnmsubfp"): Same.
14161         ("altivec_dssall"): New.
14162         ("altivec_mfvscr"): New.
14163         ("altivec_dss"): New.
14164         ("altivec_lvsl"): New.
14165         ("altivec_lvsr"): New.
14166         ("altivec_dstt"): New.
14167         ("altivec_dstst"): New.
14168         ("altivec_dststt"): New.
14169         ("altivec_dst"): New.
14170
14171         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
14172         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14173
14174 2002-01-09  Richard Henderson  <rth@redhat.com>
14175
14176         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
14177
14178 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
14179
14180         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
14181         function.
14182         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
14183         prototype.
14184         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
14185
14186 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14187
14188         * read-rtl.c: Fix formatting.
14189         * real.c: Likewise.
14190         * regclass.c: Likewise.
14191         * regrename.c: Likewise.
14192         * reg-stack.c: Likewise.
14193         * reload1.c: Likewise.
14194         * reload.c: Likewise.
14195         * rtl.c: Likewise.
14196
14197 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14198
14199         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
14200         to extract items in the expr_list chain.
14201
14202 2002-01-09  Richard Henderson  <rth@redhat.com>
14203
14204         * config/vax/vax.c (vax_rtx_cost): Never abort.
14205
14206         * config/vax/vax.h (REAL_ARITHMETIC): Define.
14207
14208 2002-01-09  Jan Hubicka  <jh@suse.cz>
14209
14210         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
14211
14212 2002-01-09  Richard Henderson  <rth@redhat.com>
14213
14214         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
14215         Unify code from various alternatives.
14216
14217 2002-01-09  Richard Henderson  <rth@redhat.com>
14218
14219         * regrename.c (copy_value): Ignore the copy if the source register
14220         is present in the value chain with a narrower mode.
14221
14222 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14223
14224         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
14225         for the c4x target. Also improve layout.
14226
14227 2002-01-09  Richard Henderson  <rth@redhat.com>
14228
14229         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
14230         * config/m32r/m32r.md (and ior xor splitters): Swap operands
14231         to match insn patterns.
14232
14233 2002-01-09  Richard Henderson  <rth@redhat.com>
14234
14235         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
14236         (copyprop_hardreg_forward_1): Likewise.
14237
14238 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14239
14240         * pa.md (decrement_and_branch_until_zero): Change predicate for
14241         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
14242
14243 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14244
14245         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
14246         gets undefined. For Darwin.
14247
14248 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14249
14250         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
14251
14252 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14253
14254         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
14255
14256 2002-01-08  Richard Henderson  <rth@redhat.com>
14257
14258         * regrename.c (copy_value): Ignore overlapping copies.
14259
14260 2002-01-08  Richard Henderson  <rth@redhat.com>
14261
14262         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
14263         as needed to avoid shared structure.
14264
14265 2002-01-08  Kazu Hirata  <kazu@hxi.com>
14266
14267         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
14268         H8/300H and H8/S.
14269
14270 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14271
14272         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
14273         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
14274         documentation of obsolete macros.
14275         * system.h: Poison these macros.
14276         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
14277         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
14278         config/c4x/c4x.h, config/clipper/clipper.h,
14279         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
14280         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
14281         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
14282         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
14283         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14284         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
14285         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
14286         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
14287         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
14288         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
14289         config/sparc/sparc.h, config/stormy16/stormy16.h,
14290         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
14291         definitions and commented out definitions of obsolete macros.
14292         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
14293         of MAX_INT_TYPE_SIZE.
14294
14295 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14296
14297         * config/s390/s390.c (s390_preferred_reload_class): Never
14298         return ADDR_REGS if it isn't a subset of the given class.
14299         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
14300         FP_REGS, but all superclasses as well.
14301
14302         * config/s390/s390.c (s390_function_profiler): Fix thinko.
14303
14304         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
14305         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
14306         must not be a const_int.
14307
14308 2002-01-08  Richard Henderson  <rth@redhat.com>
14309
14310         * Makefile.in (toplev.o): Depend on options.h.
14311         (gcc.o): Depend on specs.h.
14312
14313 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
14314
14315         * expr.c (store_expr): Convert VOIDmode constants back to target's
14316         mode.
14317
14318 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14319
14320         * doc/invoke.texi: Markup gcc as @command.  Refer to
14321         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
14322         of http://gcc.gnu.org/thanks.html.
14323
14324 2002-01-08  Dale Johannesen  <dalej@apple.com>
14325
14326         * config/rs6000/rs6000.md: Add missing int register
14327         target case to movdf_low.
14328
14329 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
14330
14331         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
14332         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
14333         (cppinit.o): Depend on except.h.
14334         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
14335         s-specs): New rules.
14336
14337         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
14338         Don't create specs.h/options.h/gencheck.h here.  Remove
14339         unnecessary variable settings from last argument of AC_OUTPUT.
14340         * config.in, configure: Regenerate.
14341         * intl.c: Hardcode package name as "gcc".
14342
14343         * cppinit.c: Include except.h.
14344         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
14345         appropriate.
14346         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
14347         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
14348         (!)USING_SJLJ_EXCEPTIONS.
14349         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
14350
14351 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14352
14353         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
14354         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
14355         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
14356         documentation of obsolete macros.
14357         * system.h: Poison these macros.
14358         * config/d30v/d30v.h, config/ns32k/encore.h,
14359         config/stormy16/stormy16.h: Remove definitions and commented out
14360         definitions of obsolete macros.
14361
14362 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
14363
14364         * objc/objc-act.c (handle_class_ref): Mark the declaration of
14365         %sobjc_class_ref_%s as used - to prevent unwanted compiler
14366         warnings.
14367
14368 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14369
14370         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
14371         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
14372         to insn adjusting stack/frame pointer.
14373         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
14374         accept operands that cause the insn to be non-splittable.
14375
14376 2002-01-08  Graham Stott  <grahams@redhat.com>
14377
14378         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
14379         (C_TYPE_FIELDS_VOLATILE): Likewise.
14380         (C_TYPE_BEING_DEFINED): Likewise.
14381         (C_IS_RESERVED_WORD): Likewise.
14382         (C_TYPE_VARIABLE_SIZE): Likewise.
14383         (C_DECL_VARIABLE_SIZE): Likewise.
14384         (C_MISSING_PROTOTYPE_WARNED): Likewise.
14385         (C_SET_EXP_ORIGINAL_CODE): Likewise.
14386         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
14387         parenthesis.
14388         (C_DECL_ANTICIPATED): Likewise.
14389         (c_build_type_variant): Add parenthesis.
14390
14391 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14392
14393         * gcc.c (option_map): Remove --version.
14394         (process_command): Handle -fversion following the GNU Coding
14395         Standards.  Partially addresses PR other/704.
14396
14397 2002-01-08  Graham Stott  <grahams@redhat.com>
14398
14399         * combine.c (combine_instructions): Fix typo.
14400
14401 2002-01-08  Graham Stott  <grahams@redhat.com>
14402
14403         * debug.h: Use "tree" and "rtx" throughout.
14404
14405         * debug.c: Likewise.
14406
14407 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
14408
14409         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
14410         constant pool, use the pool's version of the symbol instead.
14411
14412 2002-01-07  Richard Henderson  <rth@redhat.com>
14413
14414         * regrename.c (find_oldest_value_reg): Ignore the value chain if
14415         the original register was copied in a mode with a fewer number of
14416         hard registers than the desired mode.
14417         (copyprop_hardreg_forward_1): Likewise.
14418         (debug_value_data): Fix loop test.
14419         * toplev.c (parse_options_and_default_flags): Reenable
14420         -fcprop-registers at -O1.
14421
14422 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14423
14424         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
14425         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
14426
14427         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
14428         predicates.
14429
14430         * config/rs6000/rs6000.md: Add altivec predicate patterns.
14431
14432 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14433
14434         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
14435         (pa_output_function_prologue): Output local label at the beginning of
14436         the prologue when profiling.
14437         (hppa_profile_hook): Use the local label rather than the function label.
14438         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
14439
14440 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14441
14442         * config/rs6000/rs6000.c (print_operand): Remove extra space.
14443         (altivec_expand_unop_builtin): Fix thinko.
14444         (altivec_expand_binop_builtin): Same.
14445         (altivec_expand_ternop_builtin): Same.
14446         (altivec_expand_builtin): Same.
14447
14448 2002-01-07  Richard Henderson  <rth@redhat.com>
14449
14450         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
14451
14452 2002-01-07  Jason Merrill  <jason@redhat.com>
14453
14454         * unwind-dw2.c (execute_cfa_program): Use < again.
14455
14456 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
14457
14458         * predict.c (combine_predictions_for_insn): Avoid division by zero.
14459
14460 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
14461
14462         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
14463         Don't allow -1 - x -> ~x simplifications in the first pass.
14464
14465 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14466
14467         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
14468         arguments.
14469         (altivec_expand_binop_builtin): Same.
14470         (altivec_expand_unop_builtin): Same.
14471         (print_operand): Fix typo.
14472         (bdesc_1arg): Add vupk* variants.
14473
14474         * rs6000.h (rs6000_builtins): Add vupk* enums.
14475
14476         * rs6000.md: Add altivec_vupk* variants.
14477
14478 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
14479
14480         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
14481         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
14482         and last update dates.
14483
14484 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
14485
14486         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
14487
14488 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14489
14490         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
14491         * config/avr/avr.h (CPP_SPEC): Likewise.
14492         (LINK_SPEC): Likewise.
14493         (CRT_BINUTILS_SPECS): Likewise.
14494         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14495         * doc/invoke.texi (AVR Options): Document them.
14496
14497 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14498
14499         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
14500         LABEL_NUSES.
14501
14502 2002-01-07  Graham Stott  <grahams@redhat.com>
14503
14504         * config/i386/i386.h: Update copyright date.
14505         (HALF_PIC_PTR): Add parenthesis.
14506         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
14507         (CONSTANT_ALIGNMENT): Add parenthesis.
14508         (DATA_ALIGNMENT): Likewise.
14509         (LOCAL_ALIGNMENT): Likewise.
14510         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
14511         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
14512         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
14513         (HARD_REGNO_NREGS): Add paranethesis.
14514         (VALID_SSE_REG_MODE): Whitespace.
14515         (VALID_MMX_REG_MODE): Whitespace.
14516         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
14517         (ix86_hard_regno_mode_ok): Add parenthesis.
14518         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
14519         (RETURN_IN_MEMORY): Whitespace.
14520         (N_REG_CLASSES): Add parenthesis.
14521         (INTEGER_CLASS_P): Add parenthesis and wrap.
14522         (FLOAT_CLASS_P): Likewise.
14523         (SSE_CLASS_P): Likewise.
14524         (MMX_CLASS_P): Likewise.
14525         (MAYBE_INTEGER_CLASS_P): Likewise.
14526         (MAYBE_FLOAT_CLASS_P): Likewise.
14527         (MAYBE_SSE_CLASS_P): Likewise.
14528         (MAYBE_MMX_CLASS_P): Likewise.
14529         (Q_CLASS_P): Likewise.
14530         (GENERAL_REGNO_P): Uppercase macro parameter.
14531         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
14532         (FP_REGNO_P): Likewise.
14533         (ANY_FP_REGNO_P): Uppercase macro parameter.
14534         (SSE_REGNO_P): Likewise.
14535         (SSE_REGNO): Likewise.
14536         (SSE_REG_P): Likewise.
14537         (SSE_FLOAT_MODE_P): Likewise.
14538         (MMX_REGNO_P): Likewise.
14539         (MMX_REG_P):Likewise.
14540         (STACK_REG_P): Likewise.
14541         (NON_STACK_REG_P): Likewise.
14542         (STACK_TOP_P): Likewise.
14543         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
14544         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
14545         (SECONDARY_MEMORY_NEEDED): Likewise.
14546         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
14547         (MD_ASM_CLOBBERS): Whitespace and wrap.
14548         (MUST_PASS_IN_STACK): Whitespace and wrap.
14549         (RETURN_POPS_ARGS): Add parenthesis.
14550         (INIT_CUMULATIVE_ARGS): Likewise.
14551         (FUNCTION_ARG): Likewise.
14552         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
14553         (SETUP_INCOMING_VARARGS): Likewise.
14554         (BUILD_VA_LIST_TYPE):  Add parenthesis.
14555         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
14556         parenthsis.
14557         (EXPAND_BUILTIN_VA_ARG): Likewise.
14558         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
14559         (INITIALIZE_TRAMPOLINE): Add parenthesis.
14560         (INITIAL_ELIMINATION_OFFSET): Likewise.
14561         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
14562         (REGNO_OK_FOR_BASE_P): Likewise.
14563         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
14564         (REGNO_OK_FOR_DIREG_P): Likewise.
14565         (REG_OK_FOR_INDEX_P): Whitespace.
14566         (REG_OK_FOR_BASE_P): Whitespace.
14567         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
14568         parenthesis.
14569         (FIND_BASE_TERM): Fix typo.
14570         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
14571         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
14572         (SYMBOLIC_CONST; Whitespace.
14573         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
14574         (ENCODE_SECTION_INFO): Whitespace.
14575         (FINALIZE_PIC): Remove do { ... } while (0).
14576         (PROMOTE_MODE): Wrap in do { ... } while (0).
14577         (CONST_COSTS): Whitespace.
14578         (RTX_COSTS): Add paramethesis, whitespace and wrap.
14579         (REGISTER_MOVE_COST): Add parenthesis.
14580         (MEMORY_MOVE_COST): Likewise.
14581         (EXTRA_CC_MODES): Whitespace.
14582         (SELECT_CC_MODE): Add parenthesis and whitespace.
14583         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
14584         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
14585         (ASM_OUTPUT_LABEL): Add paramethesis.
14586         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
14587         (ASM_OUTPUT_REG_POP): Likewise.
14588         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
14589         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
14590
14591         * config/i386/i386.c: Update copyright.
14592         (CHECK_STACK_LIMIT): Add parenthesis.
14593         (AT_BP): Uppercase macro parameter.
14594         (x86_64_int_parameter_registers): Constify.
14595         (x86_64_int_return_registers): Likewise.
14596         (ix86_compare_op0): Use rtx.
14597         (construct_container): Constify INTREG parameter.
14598         (function_arg): Use rtx.
14599
14600         * diagnostic.h: Update copyright date.
14601         (output_buffer_state): Add parenthesis.
14602         (output_buffer_format_args): Likewise.
14603
14604         * combine.c (combine_instructions): Replace XEXP (links, 0)
14605         with link.
14606
14607 2002-01-06  H.J. Lu <hjl@gnu.org>
14608
14609         * cfgcleanup.c (thread_jump): Fix 2 typos.
14610
14611 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
14612
14613         * config.gcc: Add support for --enable-altivec.
14614
14615 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14616
14617         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
14618
14619 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
14620
14621         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
14622         __objc_class_name_*.
14623
14624 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14625
14626         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
14627
14628 2002-01-06  Richard Henderson  <rth@redhat.com>
14629
14630         * reorg.c (emit_delay_sequence): Remove death notes, not merely
14631         nop them out.  Increment label reference count for REG_LABEL.
14632         (fill_slots_from_thread): Frob label reference count around
14633         delete_related_insns.
14634
14635 2002-01-05  Richard Henderson  <rth@redhat.com>
14636
14637         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
14638         jump threading.
14639
14640 2002-01-05  Richard Henderson  <rth@redhat.com>
14641
14642         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
14643         * integrate.c (output_inline_function): Likewise.
14644         * toplev.c (rest_of_compilation): Do it here instead.  Move call
14645         to remove_unnecessary_notes after emitting abstract instance.
14646         Force an emitted nested function to have its parent emited as well.
14647         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
14648         for null.
14649         (rtl_for_decl_location): Do not look at reload data structures
14650         before reload has run.
14651
14652 2002-01-05  Kazu Hirata  <kazu@hxi.com>
14653
14654         * cse.c: Fix formatting.
14655         * dwarf2asm.c: Likewise.
14656         * dwarf2out.c: Likewise.
14657         * explow.c: Likewise.
14658         * expmed.c: Likewise.
14659         * function.c: Likewise.
14660         * gcov.c: Likewise.
14661         * gencheck.c: Likewise.
14662         * genrecog.c: Likewise.
14663         * ggc-common.c: Likewise.
14664         * ggc-page.c: Likewise.
14665         * global.c: Likewise.
14666
14667 2002-01-05  Kazu Hirata  <kazu@hxi.com>
14668
14669         * combine.c: Fix formatting.
14670
14671 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
14672
14673         PR middle-end/1557
14674         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
14675
14676 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
14677
14678         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
14679         as 1 for __powerpc64__ as well.
14680
14681         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
14682
14683         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
14684         return it.
14685
14686 2002-01-05  Daniel Berlin  <dan@dberlin.org>
14687
14688         * lcm.c: Revert change, due to performance regression it causes on
14689         SPEC because it's slightly more conservative (sigh, I hate
14690         edge-based LCM).
14691
14692 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
14693
14694         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
14695
14696 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
14697
14698         * doc/cppinternals.texi: Update.
14699
14700 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
14701
14702         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
14703         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
14704         negatives.
14705         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
14706         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
14707         kludge for pre-october-14th mmix versions to handle new-found bug
14708         with PUSHJ/PUSHGO and the register stack.
14709         * config/mmix/mmix.h (struct machine_function): Rename member
14710         has_call_value_without_parameters to has_call_without_parameters.
14711         All referers changed.
14712         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
14713         TARGET_MASK_BRANCH_PREDICT): New macros.
14714         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
14715         -mno-reg-stack-fill-bug-workaround.
14716         * config/mmix/mmix.md ("call"): Set struct machine member
14717         has_call_without_parameters.
14718
14719 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
14720
14721         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
14722
14723 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
14724
14725         * cfgcleanup.c: Include tm_p.h
14726         (mark_effect): Fix handling of hard register; fix handling of SET
14727
14728 2002-01-04  Kazu Hirata  <kazu@hxi.com>
14729
14730         * config/h8300/h8300.md (anonymous patterns): Check that
14731         operands are registers before using REGNO on them.
14732
14733 2002-01-03  Roland McGrath  <roland@frob.com>
14734
14735         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
14736
14737 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
14738
14739         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
14740         * c-common.h (genrtl_expr_stmt_value): Likewise.
14741         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
14742         (expand_expr_stmt_value): Add maybe_last argument.
14743         Don't warn about statement with no effect if it is the last statement
14744         in expression statement.
14745         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
14746         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
14747         expand_expr_stmt_value.
14748         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
14749         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
14750         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
14751         as maybe_last to expand_expr_stmt_value.
14752
14753 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
14754
14755         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
14756         be passed in, do not build it.
14757         (c_begin_if_stmt): New function.
14758         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
14759         * c-common.h (c_expand_start_cond): Update prototype.
14760         (c_begin_if_stmt): Prototype new function.
14761         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
14762         * c-parse.in (if_prefix): Use c_begin_if_stmt,
14763         c_begin_while_stmt and c_finish_while_stmt_cond.
14764
14765 2002-01-04  William Cohen  <wcohen@redhat.com>
14766
14767         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
14768         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
14769         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
14770         * config/pa/som.h (ASM_FILE_START): Likewise.
14771
14772 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
14773
14774         * lcm.c: Include df.h.
14775         Add available_transfer_function prototype.
14776         (compute_available): Rework to use iterative dataflow framework.
14777         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
14778         with bb_info in df.h
14779         (available_transfer_function): New function.
14780
14781         * Makefile.in (lcm.o): add df.h to dependencies.
14782
14783 2002-01-04  Richard Henderson  <rth@redhat.com>
14784
14785         * config/alpha/alpha.c (some_operand): Accept HIGH.
14786         (input_operand): Likewise; accept simple references to globals.
14787         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
14788         (alpha_const_double_ok_for_letter_p): Likewise.
14789         (alpha_extra_constraint): Likewise.
14790         (alpha_preferred_reload_class): Likewise.  Do not force
14791         symbolic constants to memory.
14792         (alpha_legitimate_address_p): Accept simple references
14793         to small_symbolic_operand.
14794         (alpha_legitimize_address): New arg scratch.  Be prepared to be
14795         called when no_new_pseudos.  Emit simple symbolic references.
14796         Split integers into low, high, and rest.
14797         (alpha_expand_mov): Use alpha_legitimize_address.
14798         (some_small_symbolic_mem_operand): New.
14799         (split_small_symbolic_mem_operand): New.
14800         * config/alpha/alpha-protos.h: Update.
14801         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
14802         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
14803         (EXTRA_CONSTRAINT): Likewise.
14804         (PREFERRED_RELOAD_CLASS): Likewise.
14805         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
14806         (PREDICATE_CODES): Update.
14807         * config/alpha/alpha.md: New post-reload splitters to convert
14808         simplfied symbolic operands to the form that references $29.
14809         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
14810         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
14811
14812 2002-01-03  Richard Henderson  <rth@redhat.com>
14813
14814         * local-alloc.c (function_invariant_p): Update commentary.
14815
14816 2002-01-04  H.J. Lu <hjl@gnu.org>
14817
14818         * toplev.c (rest_of_compilation): Fix a typo when calling
14819         cleanup_cfg.
14820
14821 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14822
14823         * c-common.c: Fix formatting.
14824         * diagnostic.c: Likewise.
14825         * doloop.c: Likewise.
14826         * dwarf2out.c: Likewise.
14827
14828 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14829
14830         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
14831         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
14832
14833 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14834
14835         * cpperror.c: Update comments and copyright.
14836         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
14837         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
14838
14839 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14840
14841         * collect2.c (main): Use strcmp when testing for "-shared".
14842
14843 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14844
14845         * cppmacro.c: Don't include intl.h.  Update comments.
14846         (new_number_token): Allocate enough buffer for 64-bit unsigned
14847         integers; update prototype.
14848         * cppmain.c: Update comments.
14849
14850 2002-01-03  William Cohen  <wcohen@redhat.com>
14851
14852         * function.h (struct function): Add profile.
14853         (current_function_profile): New.
14854         doc/extend.texi: Update documentation.
14855         * final.c (final_start_function): Use current_function_profile
14856         instead of profile_flag.
14857         (profile_after_prologue): Likewise.
14858         * function.c (expand_function_start): Likewise.
14859         (expand_function_start): Likewise.
14860         * config/alpha/alpha.c (direct_call_operand):
14861         (alpha_does_function_need_gp): Likewise.
14862         (alpha_expand_prologue): Likewise.
14863         * config/arm/arm.c (arm_expand_prologue): Likewise.
14864         thumb_expand_prologue: Likewise.
14865         * config/d30v/d30v.c (d30v_stack_info): Likewise.
14866         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
14867         (fr30_expand_prologue): Likewise.
14868         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
14869         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
14870         * config/i386/i386.h (FINALIZE_PIC): Likewise.
14871         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
14872         * config/i960/i960.c (i960_output_function_prologue): Likewise.
14873         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
14874         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
14875         (m32r_expand_prologue): Likewise.
14876         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
14877         (m88k_expand_prologue): Likewise.
14878         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
14879         * config/mips/mips.c (compute_frame_size): Likewise.
14880         (mips_expand_prologue): Likewise.
14881         (mips_can_use_return_insn): Likewise.
14882         * config/pa/elf.h (ASM_FILE_START): Likewise.
14883         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
14884         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
14885         * config/pa/som.h (ASM_FILE_START): Likewise.
14886         * config/romp/romp.c (romp_using_r14): Likewise.
14887         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
14888         (rs6000_stack_info): Likewise.
14889         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14890         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
14891         * config/v850/v850.c (compute_register_save_size): Likewise.
14892
14893 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
14894
14895         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
14896         gen_lowpart_common fails, use gen_lowpart_SUBREG.
14897
14898 2002-01-03  Turly O'Connor  <turly@apple.com>
14899
14900         * darwin.c (machopic_output_possible_stub_label): Don't generate
14901         stub routines for pseudo-stubs which we've just defined.
14902
14903 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14904
14905         * builtins.c: Fix formatting.
14906         * c-typeck.c: Likewise.
14907         * combine.c: Likewise.
14908         * expr.c: Likewise.
14909         * loop.c: Likewise.
14910
14911 2002-01-03  Andreas Schwab  <schwab@suse.de>
14912
14913         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
14914         and return true if _cpp_push_next_buffer pushed a new include
14915         file.
14916         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
14917         _cpp_pop_file_buffer did not push a new file.
14918         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
14919
14920 2002-01-02  Eric Christopher  <echristo@redhat.com>
14921
14922         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
14923         FIND_REG_INC_NOTE call. Update copyright.
14924         * loop.c (canonicalize_condition): Ditto.
14925         * reorg.c (delete_scheduled_jump): Ditto.
14926
14927 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14928
14929         * gcse.c: Fix formatting.
14930
14931 2002-01-03  Graham Stott  <grahams@redhat.com>
14932
14933         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
14934         forward defs for struct tags rtx_def, union_tree, rtvec_def
14935         also output corresponding typedefs for rtx, tree, and rtvec.
14936
14937         * system.h: Move forward defs for struct tags rtx_def, union_tree,
14938         rtvec_def along with corresponding typedefs for rtx, tree, and
14939         rtvec to config.h, hconfig.h, tconfig.h.
14940
14941 2002-01-03  Graham Stott  <grahams@redhat.com>
14942
14943         * tree.h: Update copyright date.
14944         (IS_EXPR_CODE_CLASS): Add parenthesis.
14945         (TREE_SET_CODE): Add whitespace.
14946         (TREE_CHECK): Add parenthesis.
14947         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
14948         (CST_OR_CONSTRUCTOR_CHECK):
14949         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
14950         (TREE_SYMBOL_REFERENCED): Whitespace.
14951         (INT_CST_LT): Likewise.
14952         (INT_CST_LT_UNSIGNED): Likewise.
14953         (tree_real_cst): Unwrap comment.
14954         (tree_string): Likewise.
14955         (tree_complex): Likewise.
14956         (IDENTIFIER_POINTER): correct cast.
14957         (SAVE_EXPR_CONTEXT): Whitespace.
14958         (EXPR_WFL_FILENAME_NODE): Likewise.
14959         (EXPR_WFL_FILENAME): Remove parenthesis.
14960         (DECL_ORIGIN): Add parenthesis.
14961         (DECL_FROM_INLINE): Use NULL_TREE.
14962         (build_int_2): Whitespace.
14963         (build_type_variant): Add parenthesis.
14964
14965         * gcc/jcf-parse.c: Update copyright date.
14966         (yyparse): Constify resource_filename.
14967
14968 2002-01-03  Graham Stott  <grahams@redhat.com>
14969
14970         * rtl.h: Update copyright date.
14971         (RTL_CHECK1): Wrap long line.
14972         (RTL_CHECK2): Likewise.
14973         (RTL_CHECKC1): Wrap long line and whitespace.
14974         (RTL_CHECKC2): Likewise.
14975         (XWINT): Whitespace.
14976         (XINT): Likewise.
14977         (XSTR): Likewise.
14978         (XEXP): Likewise.
14979         (XVEC): Likewise.
14980         (XMODE): Likewise.
14981         (XBITMAP): Likewise.
14982         (XTREE): Likewise.
14983         (XBBDEF): Likewise.
14984         (XTMPL): Likewise.
14985         (X0WINT): Likewise.
14986         (X0INT):Likewise.
14987         (X0UINT): Likewise.
14988         (X0STR): Likewise.
14989         (X0EXP): Likewise.
14990         (X0VEC): Likewise.
14991         (X0MODE): Likewise.
14992         (X0BITMAP): Likewise.
14993         (X0TREE): Likewise.
14994         (X0BBDEF): Likewise.
14995         (X0ADVFLAGS): Likewise.
14996         (X0CSELIB): Likewise.
14997         (X0MEMATTR): Likewise.
14998         (XCWINT): Likewise.
14999         (XCINT): Likewise.
15000         (XCUINT): Likewise.
15001         (XCSTR): Likewise.
15002         (XCEXP): Likewise.
15003         (XCVEC): Likewise.
15004         (XCMODE): Likewise.
15005         (XCBITMAP): Likewise.
15006         (XCTREE): Likewise.
15007         (XCBBDEF): Likewise.
15008         (XCADVFLAGS): Likewise.
15009         (XCCSELIB): Likewise.
15010         (XC2EXP): Likewise.
15011         (INSN_UID): Likewise.
15012         (PREV_INSN): Likewise.
15013         (PATTERN): Likewise.
15014         (INSN_CODE): Likewise.
15015         (PUT_REG_NOTE_KIND): Likewise.
15016         (CODE_LABEL_NUMBER): Likewise.
15017         (NOTE_SOURCE_FILE): Likewise.
15018         (NOTE_BLOCK): Likewise.
15019         (NOTE_EH_HANDLER): Likewise.
15020         (NOTE_RANGE_INFO): Likewise.
15021         (NOTE_LIVE_INFO): Likewise.
15022         (NOTE_BASIC_BLOCK): Likewise.
15023         (NOTE_EXPECTED_VALUE): Likewise.
15024         (NOTE_LINE_NUMBER): Likewise.
15025         (LABEL_NAME): Likewise.
15026         (LABEL_NUSES): Likewise.
15027         (LABEL_ALTERNATE_NAME): Likewise.
15028         (ADDRESSOF_DECL): Likewise.
15029         (JUMP_LABEL): Likewise.
15030         (LABEL_NEXTREF): Likewise.
15031         (REGNO): Likewise.
15032         (ORIGINAL_REGNO: Likewise.
15033         (HARD_REGISTER_NUM_P): Add parenthesis.
15034         (SUBREG_REG): Whitespace.
15035         (SUBREG_BYTE): Likewise.
15036         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
15037         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
15038         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
15039         (ASM_OPERANDS_INPUT_VEC): Likewise.
15040         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
15041         (ASM_OPERANDS_INPUT): Likewise.
15042         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
15043         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
15044         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
15045         (ASM_OPERANDS_INPUT_MODE): Likewise.
15046         (ASM_OPERANDS_SOURCE_FILE): Likewise.
15047         (ASM_OPERANDS_SOURCE_LINE): Likewise.
15048         (MEM_SET_IN_STRUCT_P): Minor reformat.
15049         (TRAP_CONDITION): Whitespace.
15050         (TRAP_CODE): Likewise.
15051         (COND_EXEC_TEST): Likewise.
15052         (COND_EXEC_CODE): Likewise.
15053         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
15054         (PHI_NODE_P): Add parenthesis.
15055         (plus_constant): Whitespace and add parenthesis.
15056
15057 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15058
15059         * config/avr/avr.c: Fix comment typos.
15060         * config/c4x/c4x.md: Likewise.
15061         * config/dsp16xx/dsp16xx.h: Likewise.
15062         * config/dsp16xx/dsp16xx.md: Likewise.
15063         * config/i386/i386.md: Likewise.
15064         * config/ia64/ia64.c: Likewise.
15065         * config/m32r/m32r.h: Likewise.
15066         * config/m68hc11/m68hc11.md: Likewise.
15067         * config/mmix/mmix.c: Likewise.
15068         * config/mn10200/mn10200.c: Likewise.
15069         * config/romp/romp.c: Likewise.
15070         * config/sh/sh.c: Likewise.
15071         * config/stormy16/stormy16.c: Likewise.
15072         * config/stormy16/stormy16.h: Likewise.
15073         * config/stormy16/stormy16.md: Likewise.
15074
15075 2002-01-03  Graham Stott  <grahams@redhat.com>
15076
15077         * loop.h: Update copyright date.
15078         (LOOP_MOVABLES): Fix typo.
15079         (LOOP_REGS): Likewise.
15080         (LOOP_IVS): Likewise.
15081
15082 2002-01-03  Graham Stott  <grahams@redhat.com>
15083
15084         * cppinit.c: Update copyright date.
15085         Don't include output.h
15086         * Makefile.in: Update copyright date.
15087         Update dependency.
15088
15089 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15090
15091         PR c/5226
15092         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
15093         (-pthread) Add to RS/6000 options.
15094
15095 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15096
15097         * except.c: Fix comment typos.
15098         * loop.c: Likewise.
15099         * varasm.c: Likewise.
15100         * doc/tm.texi: Fix a typo.
15101
15102 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
15103
15104         * c-typeck.c (output_init_element): Allow initializing static storage
15105         duration objects with compound literals.
15106
15107 2002-01-02  Richard Henderson  <rth@redhat.com>
15108
15109         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
15110         after abusing it.
15111
15112 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15113
15114         * gcc.c (default_compilers): Const-ify.
15115         * mips-tdump.c (stab_names): Likewise.
15116         * mips-tfile.c (map_coff_types, map_coff_storage,
15117         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
15118         pseudo_ops_t, pseudo_ops): Likewise.
15119         * protoize.c (default_include): Likewise
15120
15121         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
15122         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
15123         Add array size in declaration.
15124         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
15125         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
15126         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
15127         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
15128         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
15129         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
15130         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
15131         emtens, make_nan): Const-ify.
15132         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
15133         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
15134
15135 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
15136
15137         * config.gcc (ia64-*-*): Set extra_headers.
15138         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
15139         * config/alpha/t-osf: Remove.
15140         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
15141
15142 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
15143
15144         * config/rs6000/t-aix43: Revert previous change.
15145
15146 2002-01-02  Jason Merrill  <jason@redhat.com>
15147
15148         * c-decl.c (c_expand_body): Call outlining_inline_function when
15149         emitting an inline function out of line.
15150
15151 2002-01-02  Richard Henderson  <rth@redhat.com>
15152
15153         * dwarf2out.c (limbo_die_node): Add created_for member.
15154         (new_die): New argument created_for.  Update all callers.
15155         (mark_limbo_die_list): New.
15156         (dwarf2out_init): Register limbo_die_list as a root.
15157         (dwarf2out_finish): Force insert limbo dies into their function
15158         context.
15159
15160 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
15161
15162         PR c++/5089
15163         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
15164
15165 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15166
15167         * config/h8300/fixunssfsi.c: Update copyright.
15168         Fix comment typos.
15169         Fix formatting.
15170         * config/h8300/h8300.c: Update copyright.
15171         Eliminate warnings.
15172
15173 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15174
15175         * config/romp/romp.c: Fix comment formatting.
15176         * config/romp/romp.h: Likewise.
15177         * config/romp/romp.md: Likewise.
15178         * config/s390/s390.c: Likewise.
15179         * config/stormy16/stormy16.c: Likewise.
15180         * config/stormy16/stormy16.h: Likewise.
15181
15182 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
15183
15184         * c-common.h (genrtl_expr_stmt_value): Declare.
15185         * c-semantics.c (genrtl_goto_stmt): Redirect to...
15186         (genrtl_goto_stmt_value): ... this new function.  Pass new
15187         argument down to expand_expr_stmt_value, taking
15188         TREE_ADDRESSABLE into account.
15189         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
15190         STMT_EXPR as addressable, i.e., one whose result we want.
15191         * expr.c (expand_expr): Don't save expression statement value
15192         of labeled_blocks or loop_exprs.
15193         * stmt.c (expand_expr_stmt): Redirect to...
15194         (expand_expr_stmt_value): ... this new function.  Use new
15195         argument to tell whether to save expression value.
15196         (expand_end_stmt_expr): Reset last_expr_type and
15197         last_expr_value if we don't have either.
15198         * tree-inline.c (declare_return_variable): Mark its use
15199         statement as addressable.
15200         * tree.h: Document new use of TREE_ADDRESSABLE.
15201         (expand_expr_stmt_value): Declare.
15202
15203 2002-01-01  Tom Rix  <trix@redhat.com>
15204
15205         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
15206         rs6000_emit_allocate_stack.
15207
15208 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
15209
15210         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
15211         ${srcdir}/ginclude/ to every entry in extra_headers.
15212         * configure: Regenerate.
15213         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
15214         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
15215         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
15216         * ginclude/proto.h: Rename to config/convex/proto.h.
15217
15218 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15219
15220         * attribs.c (handle_vector_size_attribute): Use host_integerp
15221         and tree_int_cst; remove warnings.
15222         * caller-save.c (insert_restore): Add cast to get rid of warning.
15223         (insert_save): Likewise.
15224         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
15225         * regmove.c (find_matches): Add temporary var to kill a warning.
15226
15227 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
15228
15229         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
15230         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
15231         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
15232         (vms-dwarf2eh.o): Add Makefile rule.
15233         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
15234         * config/alpha/vms-dwarf2eh.asm: New file.
15235
15236         * gcc.c (delete_if_ordinary): Delete all versions.
15237
15238 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
15239
15240         * config/mmix/mmix.md: Update FIXME to not mention
15241         define_constants.
15242         (MMIX_rJ_REGNUM): New define_constants constant.
15243         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
15244         "*movdicc_real"): Adjust contraints formatting.
15245         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
15246         for branch prediction.
15247         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
15248         output template.
15249         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
15250         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
15251         number.  Delete related FIXMEs.
15252         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
15253         from number to MMIX_rJ_REGNUM.
15254         (TARGET_MASK_BRANCH_PREDICT): New.
15255         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
15256         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
15257         value.  Add -mbranch-predict and -mno-branch-predict.
15258         (TARGET_VERSION): Drop date.
15259         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
15260         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
15261         for finding out global symbols.
15262         (mmix_asm_output_labelref): Revert condition for global symbol.
15263         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
15264         (mmix_print_operand_punct_valid_p): A '+' is valid.
15265
15266 See ChangeLog.6 for earlier changes.